1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-04-20 11:28:40 +02:00

70 lines
1.7 KiB
C++
Raw Normal View History

2016-12-10 22:39:53 +00:00
#include "models/folder.h"
2017-01-05 18:59:01 +01:00
#include "dispatcher.h"
2017-01-01 23:20:06 +01:00
#include "database.h"
#include "uuid.h"
2016-12-10 22:39:53 +00:00
using namespace jop;
2017-01-02 15:04:27 +01:00
Folder::Folder() : Item() {}
2016-12-10 22:39:53 +00:00
2017-01-02 15:04:27 +01:00
Table Folder::table() const {
return jop::FoldersTable;
2016-12-10 22:39:53 +00:00
}
2017-01-01 23:20:06 +01:00
2017-01-02 15:04:27 +01:00
bool Folder::primaryKeyIsUuid() const {
return true;
}
2017-01-02 15:04:27 +01:00
bool Folder::trackChanges() const {
return true;
}
2017-01-01 23:20:06 +01:00
2017-01-12 17:59:19 +01:00
int Folder::noteCount() const {
QSqlQuery q = jop::db().prepare(QString("SELECT count(*) AS row_count FROM %1 WHERE parent_id = :parent_id").arg(BaseModel::tableName(jop::NotesTable)));
q.bindValue(":parent_id", id().toString());
jop::db().execQuery(q);
q.next();
return q.value(0).toInt();
}
QVector<Note> Folder::notes(const QString &orderBy, int limit, int offset) const {
QVector<Note> output;
QSqlQuery q = jop::db().prepare(QString("SELECT %1 FROM notes WHERE parent_id = :parent_id ORDER BY %2 LIMIT %3 OFFSET %4")
.arg(BaseModel::sqlTableFields(jop::NotesTable))
.arg(orderBy)
.arg(limit)
.arg(offset));
q.bindValue(":parent_id", id().toString());
jop::db().execQuery(q);
if (!jop::db().errorCheck(q)) return output;
while (q.next()) {
Note note;
note.loadSqlQuery(q);
output.push_back(note);
}
return output;
}
2017-01-01 23:20:06 +01:00
int Folder::count() {
return BaseModel::count(jop::FoldersTable);
2017-01-01 23:20:06 +01:00
}
QVector<Folder> Folder::all(const QString &orderBy) {
2017-01-02 16:28:03 +01:00
QSqlQuery q("SELECT " + BaseModel::tableFieldNames(jop::FoldersTable).join(",") + " FROM " + BaseModel::tableName(jop::FoldersTable) + " ORDER BY " + orderBy);
2017-01-02 15:17:03 +01:00
jop::db().execQuery(q);
2017-01-01 23:20:06 +01:00
QVector<Folder> output;
while (q.next()) {
Folder folder;
folder.loadSqlQuery(q);
2017-01-01 23:20:06 +01:00
output.push_back(folder);
}
return output;
}