Prepare sync of offline changed notes
This commit is contained in:
parent
8211acbe51
commit
842ea9f699
5 changed files with 37 additions and 16 deletions
|
@ -204,6 +204,7 @@ Page {
|
|||
|
||||
TextSwitch {
|
||||
id: forceLegacyButton
|
||||
visible: debug
|
||||
text: qsTr("Enforce legacy login")
|
||||
onCheckedChanged: {
|
||||
checked != checked
|
||||
|
|
|
@ -177,6 +177,13 @@ bool NotesModel::deleteNote(const int id) {
|
|||
return success;
|
||||
}
|
||||
|
||||
bool NotesModel::syncNotes() {
|
||||
if (mp_notesApi && mp_notesStore) {
|
||||
// TODO
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void NotesModel::insert(const int id, const QJsonObject& note) {
|
||||
qDebug() << "Inserting note: " << id;
|
||||
if (m_notes.contains(id)) {
|
||||
|
@ -215,11 +222,11 @@ void NotesModel::remove(const int id) {
|
|||
qDebug() << "Removing note: " << id;
|
||||
if (m_notes.contains(id)) {
|
||||
beginRemoveRows(QModelIndex(), indexOfNoteById(id), indexOfNoteById(id));
|
||||
if (m_notes.remove(id) == 0) {
|
||||
qDebug() << "Note not found";
|
||||
if (m_notes.remove(id) > 0) {
|
||||
emit noteDeleted(id);
|
||||
}
|
||||
else {
|
||||
//emit noteRemoved(id);
|
||||
qDebug() << "Note not found";
|
||||
}
|
||||
endRemoveRows();
|
||||
}
|
||||
|
|
|
@ -80,6 +80,7 @@ public slots:
|
|||
Q_INVOKABLE bool createNote(const QJsonObject& note);
|
||||
Q_INVOKABLE bool updateNote(const int id, const QJsonObject& note);
|
||||
Q_INVOKABLE bool deleteNote(const int id);
|
||||
Q_INVOKABLE bool syncNotes();
|
||||
|
||||
void insert(const int id, const QJsonObject& note);
|
||||
void update(const int id, const QJsonObject& note);
|
||||
|
|
|
@ -76,6 +76,25 @@ const QString NotesStore::errorMessage(ErrorCodes error) const {
|
|||
return message;
|
||||
}
|
||||
|
||||
const QList<int> NotesStore::noteFileIdList() {
|
||||
QList<int> ids;
|
||||
if (m_dir.exists() && !account().isEmpty()) {
|
||||
QFileInfoList files = m_dir.entryInfoList();
|
||||
for (int i = 0; i < files.size(); ++i) {
|
||||
bool ok;
|
||||
int id = files[i].baseName().toInt(&ok);
|
||||
if (ok) {
|
||||
ids << id;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
qDebug() << errorMessage(DirNotFoundError);
|
||||
emit noteError(DirCannotReadError);
|
||||
}
|
||||
return ids;
|
||||
}
|
||||
|
||||
bool NotesStore::noteFileExists(const int id) const {
|
||||
QFileInfo fileinfo(m_dir, QString("%1.%2").arg(id).arg(m_suffix));
|
||||
return fileinfo.exists();
|
||||
|
@ -145,24 +164,16 @@ bool NotesStore::removeNoteFile(const int id) {
|
|||
|
||||
bool NotesStore::getAllNotes(const QStringList& exclude) {
|
||||
qDebug() << "Getting all notes";
|
||||
//QJsonArray notes;
|
||||
if (m_dir.exists() && !account().isEmpty()) {
|
||||
QFileInfoList files = m_dir.entryInfoList();
|
||||
for (int i = 0; i < files.size(); ++i) {
|
||||
bool ok;
|
||||
int id = files[i].baseName().toInt(&ok);
|
||||
if (ok) {
|
||||
getNote(id, exclude);
|
||||
//notes.append(QJsonValue(getNote(id, exclude)));
|
||||
}
|
||||
const QList<int> ids = noteFileIdList();
|
||||
if (!ids.empty()) {
|
||||
for (int i = 0; i < ids.size(); ++i) {
|
||||
getNote(ids.at(i), exclude);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
qDebug() << errorMessage(DirNotFoundError);
|
||||
emit noteError(DirCannotReadError);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool NotesStore::getNote(const int id, const QStringList& exclude) {
|
||||
|
|
|
@ -36,6 +36,7 @@ public:
|
|||
Q_ENUM(ErrorCodes)
|
||||
Q_INVOKABLE const QString errorMessage(ErrorCodes error) const;
|
||||
|
||||
const QList<int> noteFileIdList();
|
||||
bool noteFileExists(const int id) const;
|
||||
QJsonObject readNoteFile(const int id, const QStringList& exclude = QStringList());
|
||||
bool writeNoteFile(const int id, const QJsonObject& note);
|
||||
|
|
Loading…
Reference in a new issue