1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-11-24 08:12:24 +02:00

Changed ids to text

This commit is contained in:
Laurent Cozic 2016-12-23 19:04:26 +01:00
parent d47bcdff64
commit 999a2c5ef2
12 changed files with 43 additions and 56 deletions

View File

@ -31,36 +31,30 @@ Application::Application(int &argc, char **argv) : QGuiApplication(argc, argv) {
view_.show();
}
int Application::selectedFolderId() const {
QString Application::selectedFolderId() const {
QObject* rootObject = (QObject*)view_.rootObject();
int index = rootObject->property("currentFolderIndex").toInt();
QModelIndex modelIndex = folderModel_.index(index);
return folderModel_.data(modelIndex, FolderModel::IdRole).toInt();
return folderModel_.data(modelIndex, FolderModel::IdRole).toString();
}
int Application::selectedNoteId() const {
QString Application::selectedNoteId() const {
QObject* rootObject = (QObject*)view_.rootObject();
int index = rootObject->property("currentNoteIndex").toInt();
QModelIndex modelIndex = noteModel_.index(index);
return noteModel_.data(modelIndex, NoteModel::IdRole).toInt();
return noteModel_.data(modelIndex, NoteModel::IdRole).toString();
}
void Application::view_currentFolderChanged() {
int folderId = selectedFolderId();
QString folderId = selectedFolderId();
noteCollection_ = NoteCollection(db_, folderId, "title ASC");
noteModel_.setCollection(noteCollection_);
}
void Application::view_currentNoteChanged() {
int noteId = selectedNoteId();
QString noteId = selectedNoteId();
Note note = noteCollection_.byId(noteId);
selectedQmlNote_.setNote(note);
// TODO: get note by id
//Note note = noteCollection_.by
//selectedQmlNote_ = QmlNote(noteId);
//noteCollection_ = NoteCollection(db_, folderId, "title ASC");
//noteModel_.setCollection(noteCollection_);
}

View File

@ -31,8 +31,8 @@ private:
NoteService noteService_;
FolderModel folderModel_;
NoteModel noteModel_;
int selectedFolderId() const;
int selectedNoteId() const;
QString selectedFolderId() const;
QString selectedNoteId() const;
NoteCache noteCache_;
QmlNote selectedQmlNote_;

View File

@ -5,7 +5,7 @@ using namespace jop;
Database::Database(const QString &path) {
version_ = -1;
QFile::remove(path);
// QFile::remove(path);
db_ = QSqlDatabase::addDatabase("QSQLITE");
db_.setDatabaseName(path);

View File

@ -12,12 +12,12 @@ void Item::fromSqlQuery(const QSqlQuery &q) {
int i_title = q.record().indexOf("title");
int i_created_time = q.record().indexOf("created_time");
id_ = q.value(i_id).toInt();
id_ = q.value(i_id).toString();
title_ = q.value(i_title).toString();
createdTime_ = q.value(i_created_time).toInt();
}
int Item::id() const {
QString Item::id() const {
return id_;
}
@ -29,7 +29,7 @@ int Item::createdTime() const {
return createdTime_;
}
void Item::setId(int v) {
void Item::setId(const QString& v) {
id_ = v;
}

View File

@ -11,12 +11,12 @@ public:
Item();
int id() const;
QString id() const;
QString title() const;
int createdTime() const;
bool isPartial() const;
void setId(int v);
void setId(const QString &v);
void setTitle(const QString& v);
void setCreatedTime(int v);
void setIsPartial(bool v);
@ -25,7 +25,7 @@ public:
private:
int id_;
QString id_;
QString title_;
int createdTime_;
bool isPartial_;

View File

@ -4,14 +4,14 @@ using namespace jop;
NoteCollection::NoteCollection() {}
NoteCollection::NoteCollection(Database& db, int parentId, const QString& orderBy) {
NoteCollection::NoteCollection(Database& db, const QString& parentId, const QString& orderBy) {
db_ = db;
parentId_ = parentId;
orderBy_ = orderBy;
}
Note NoteCollection::at(int index) const {
if (!parentId_) return Note();
if (parentId_ == "") return Note();
if (cache_.isset(index)) return cache_.get(index);
@ -33,7 +33,7 @@ Note NoteCollection::at(int index) const {
int noteIndex = from;
while (q.next()) {
Note note;
note.setId(q.value(0).toInt());
note.setId(q.value(0).toString());
note.setTitle(q.value(1).toString());
note.setBody(q.value(2).toString());
note.setIsPartial(true);
@ -48,7 +48,7 @@ Note NoteCollection::at(int index) const {
// TODO: cache result
int NoteCollection::count() const {
if (!parentId_) return 0;
if (parentId_ == "") return 0;
QSqlQuery q = db_.query("SELECT count(*) as row_count FROM notes WHERE parent_id = :parent_id");
q.bindValue(":parent_id", parentId_);
@ -57,7 +57,7 @@ int NoteCollection::count() const {
return q.value(0).toInt();
}
Note NoteCollection::byId(int id) const {
Note NoteCollection::byId(const QString& id) const {
std::vector<int> indexes = cache_.indexes();
for (int i = 0; i < indexes.size(); i++) {
Note note = cache_.get(indexes[i]);
@ -75,7 +75,7 @@ Note NoteCollection::byId(int id) const {
// TODO: refactor creation of note from SQL query object
Note note;
note.setId(q.value(0).toInt());
note.setId(q.value(0).toString());
note.setTitle(q.value(1).toString());
note.setBody(q.value(2).toString());
return note;

View File

@ -15,14 +15,14 @@ class NoteCollection {
public:
NoteCollection();
NoteCollection(Database& db, int parentId, const QString& orderBy);
NoteCollection(Database& db, const QString &parentId, const QString& orderBy);
Note at(int index) const;
int count() const;
Note byId(int id) const;
Note byId(const QString &id) const;
private:
int parentId_;
QString parentId_;
QString orderBy_;
Database db_;
mutable SparseVector<Note> cache_;

View File

@ -16,7 +16,7 @@ int FolderService::count() const {
return q.value(0).toInt();
}
Folder FolderService::byId(int id) const {
Folder FolderService::byId(const QString& id) const {
QSqlQuery q = database_.query("SELECT title, created_time FROM folders WHERE id = :id");
q.bindValue(":id", id);
q.exec();
@ -37,7 +37,7 @@ const QList<Folder> FolderService::overviewList() const {
q.exec();
while (q.next()) {
Folder f;
f.setId(q.value(0).toInt());
f.setId(q.value(0).toString());
f.setTitle(q.value(1).toString());
f.setIsPartial(true);
output << f;

View File

@ -14,7 +14,7 @@ public:
FolderService();
FolderService(Database& database);
int count() const;
Folder byId(int id) const;
Folder byId(const QString &id) const;
//Folder partialAt(int index) const;
const QList<Folder> overviewList() const;

View File

@ -8,7 +8,7 @@ NoteCache::NoteCache() {
void NoteCache::add(QList<Note> notes) {
foreach (Note note, notes) {
cache_[note.id()] = note;
//cache_[note.id()] = note;
}
}

View File

@ -29,7 +29,7 @@ const QList<Note> NoteService::overviewList(const QString& folderId, int from, i
while (q.next()) {
Note f;
f.setId(q.value(0).toInt());
f.setId(q.value(0).toString());
f.setTitle(q.value(1).toString());
f.setIsPartial(true);
output << f;
@ -46,7 +46,7 @@ std::pair<const Note &, bool> NoteService::overviewAt(const QString &folderId, i
if (!q.isValid()) return std::make_pair(Note(), false);
Note f;
f.setId(q.value(0).toInt());
f.setId(q.value(0).toString());
f.setTitle(q.value(1).toString());
f.setIsPartial(true);

View File

@ -165,18 +165,12 @@ xmltomd::Resource parseResource(QXmlStreamReader& reader) {
return xmltomd::Resource();
}
//qApp->exit(0);
QByteArray ba;
// qDebug() << reader.text();
// qApp->exit(0);
QString s = reader.readElementText();
s = s.replace("\n", "");
ba.append(s);
output.data = QByteArray::fromBase64(ba);
// qDebug() << output.data.toBase64();
// exit(0);
} else if (reader.name() == "mime") {
output.mime = reader.readElementText();
} else if (reader.name() == "resource-attributes") {
@ -192,10 +186,6 @@ xmltomd::Resource parseResource(QXmlStreamReader& reader) {
}
}
if (!output.id.length()) {
//output.id = createUuid(QString("%1%2%3%4").arg(output.filename).arg(output.timestamp).arg(QDateTime::currentMSecsSinceEpoch()).arg((int)qrand()));
}
return output;
}
@ -396,9 +386,11 @@ int main(int argc, char *argv[]) {
db.exec("BEGIN TRANSACTION");
QString folderId = createUuid(QString("%1%2%3%4").arg(fileInfo.baseName()).arg(fileInfo.created().toTime_t()).arg((int)qrand()).arg(QDateTime::currentMSecsSinceEpoch()));
QSqlQuery query(db);
query.prepare("INSERT INTO folders (id, title, created_time, updated_time) VALUES (?, ?, ?, ?)");
query.addBindValue(createUuid(QString("%1%2%3%4").arg(fileInfo.baseName()).arg(fileInfo.created().toTime_t()).arg((int)qrand()).arg(QDateTime::currentMSecsSinceEpoch())));
query.addBindValue(folderId);
query.addBindValue(fileInfo.baseName());
query.addBindValue(fileInfo.created().toTime_t());
query.addBindValue(fileInfo.created().toTime_t());
@ -446,21 +438,22 @@ int main(int argc, char *argv[]) {
QString markdown = xmltomd::evernoteXmlToMd(n.content, n.resources);
QString html(n.content);
html.replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "");
html.replace("<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">", "");
html = html.trimmed();
// QString html(n.content);
// html.replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "");
// html.replace("<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">", "");
// html = html.trimmed();
html = "<style>* { margin: 0; padding:0; }</style><div style=\"width: 100%\"><div style=\"float: left; width: 45%; font-family:monospace;\">" + html + "</div><div style=\"float: left; width: 45%;\"><pre style=\"white-space: pre-wrap;\">" + markdown + "</pre></div></div>";
// html = "<style>* { margin: 0; padding:0; }</style><div style=\"width: 100%\"><div style=\"float: left; width: 45%; font-family:monospace;\">" + html + "</div><div style=\"float: left; width: 45%;\"><pre style=\"white-space: pre-wrap;\">" + markdown + "</pre></div></div>";
QString generatedPath = "D:/Web/www/joplin/tests/generated";
filePutContents(QString("%1/%2_%3.html").arg(generatedPath).arg(i).arg(noteIndex), html);
// QString generatedPath = "D:/Web/www/joplin/tests/generated";
// filePutContents(QString("%1/%2_%3.html").arg(generatedPath).arg(i).arg(noteIndex), html);
QSqlQuery query(db);
query.prepare("INSERT INTO notes (id, title, body, created_time, updated_time, longitude, latitude, altitude, source, author, source_url, is_todo, todo_due, todo_completed, source_application, application_data, `order`) VALUES (:id, :title,:body,:created_time,:updated_time,:longitude,:latitude,:altitude,:source,:author,:source_url,:is_todo,:todo_due,:todo_completed,:source_application,:application_data,:order)");
query.prepare("INSERT INTO notes (id, title, body, parent_id, created_time, updated_time, longitude, latitude, altitude, source, author, source_url, is_todo, todo_due, todo_completed, source_application, application_data, `order`) VALUES (:id, :title,:body, :parent_id, :created_time,:updated_time,:longitude,:latitude,:altitude,:source,:author,:source_url,:is_todo,:todo_due,:todo_completed,:source_application,:application_data,:order)");
query.bindValue(":id", n.id);
query.bindValue(":title", n.title);
query.bindValue(":body", markdown);
query.bindValue(":parent_id", folderId);
query.bindValue(":created_time", n.created);
query.bindValue(":updated_time", n.updated);
query.bindValue(":longitude", n.longitude);