From bac7fe13512b55442ff90ed58f9d920096797d06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 24 Jan 2016 17:41:26 +0100 Subject: [PATCH] updated Folder class --- YACReaderLibrary/db_helper.cpp | 22 +++-- .../controllers/foldercontentcontroller.cpp | 2 +- common/comic_db.cpp | 2 +- common/comic_db.h | 2 +- common/folder.cpp | 30 +++++++ common/folder.h | 89 ++++++++++++++++--- common/library_item.h | 4 +- 7 files changed, 125 insertions(+), 26 deletions(-) diff --git a/YACReaderLibrary/db_helper.cpp b/YACReaderLibrary/db_helper.cpp index 10829cd5..14277d91 100644 --- a/YACReaderLibrary/db_helper.cpp +++ b/YACReaderLibrary/db_helper.cpp @@ -733,7 +733,13 @@ QList DBHelper::getFoldersFromParent(qulonglong parentId, QSqlDat data << record.value(i); //TODO sort by sort indicator and name currentItem = new Folder(record.value("id").toULongLong(),record.value("parentId").toULongLong(),record.value("name").toString(),record.value("path").toString()); - int lessThan = 0; + + if(!record.value("numChildren").isNull() && record.value("numChildren").isValid()) + currentItem->setNumChildren(record.value("numChildren").toInt()); + currentItem->setFirstChildId(record.value("firstChildId").toULongLong()); + currentItem->setCustomImage(record.value("customImage").toString()); + + int lessThan = 0; if(list.isEmpty() || !sort) list.append(currentItem); @@ -930,9 +936,10 @@ Folder DBHelper::loadFolder(qulonglong id, QSqlDatabase & db) folder.setFinished(record.value("finished").toBool()); folder.setCompleted(record.value("completed").toBool()); //new 8.6 - folder.numChildren = record.value("numChildren").isNull() ? -1 : record.value("numChildren").toInt(); - folder.firstChildId = record.value("firstChildId").toULongLong(); - folder.customImage = record.value("customImage").toString(); + if(!record.value("numChildren").isNull() && record.value("numChildren").isValid()) + folder.setNumChildren(record.value("numChildren").toInt()); + folder.setFirstChildId(record.value("firstChildId").toULongLong()); + folder.setCustomImage(record.value("customImage").toString()); } return folder; @@ -962,9 +969,10 @@ Folder DBHelper::loadFolder(const QString &folderName, qulonglong parentId, QSql folder.setFinished(record.value("finished").toBool()); folder.setCompleted(record.value("completed").toBool()); //new 8.6 - folder.numChildren = record.value("numChildren").isNull() ? -1 : record.value("numChildren").toInt(); - folder.firstChildId = record.value("firstChildId").toULongLong(); - folder.customImage = record.value("customImage").toString(); + if(!record.value("numChildren").isNull() && record.value("numChildren").isValid()) + folder.setNumChildren(record.value("numChildren").toInt()); + folder.setFirstChildId(record.value("firstChildId").toULongLong()); + folder.setCustomImage(record.value("customImage").toString()); QLOG_DEBUG() << "FOUND!!"; } diff --git a/YACReaderLibrary/server/controllers/foldercontentcontroller.cpp b/YACReaderLibrary/server/controllers/foldercontentcontroller.cpp index 2fcaf8a4..a9eae52f 100644 --- a/YACReaderLibrary/server/controllers/foldercontentcontroller.cpp +++ b/YACReaderLibrary/server/controllers/foldercontentcontroller.cpp @@ -54,7 +54,7 @@ void FolderContentController::serviceContent(const int &library, const qulonglon if((*itr)->isDir()) { currentFolder = (Folder *)(*itr); - response.writeText(QString("f:%1:%2:%3:%4\r\n").arg(library).arg(currentFolder->id).arg(currentFolder->name).arg(currentFolder->numChildren)); + response.writeText(QString("f:%1:%2:%3:%4\r\n").arg(library).arg(currentFolder->id).arg(currentFolder->name).arg(currentFolder->getNumChildren())); } else { diff --git a/common/comic_db.cpp b/common/comic_db.cpp index 6e92b85a..2cefa5d5 100644 --- a/common/comic_db.cpp +++ b/common/comic_db.cpp @@ -11,7 +11,7 @@ ComicDB::ComicDB() } -bool ComicDB::isDir() +bool ComicDB::isDir() const { return false; } diff --git a/common/comic_db.h b/common/comic_db.h index 417efa4d..e396e718 100644 --- a/common/comic_db.h +++ b/common/comic_db.h @@ -124,7 +124,7 @@ class ComicDB : public LibraryItem public: ComicDB(); - bool isDir(); + bool isDir() const; bool _hasCover; diff --git a/common/folder.cpp b/common/folder.cpp index e69de29b..9a7d3eba 100644 --- a/common/folder.cpp +++ b/common/folder.cpp @@ -0,0 +1,30 @@ +#include "folder.h" + +Folder::Folder() + :knownParent(false), + knownId(false), + numChildren(-1), + firstChildId(0) +{} + +Folder::Folder(qulonglong folderId, qulonglong parentId, const QString &folderName, const QString &folderPath) + :knownParent(true), + knownId(true), + numChildren(-1), + firstChildId(0) +{ + this->id = folderId; + this->parentId = parentId; + this->name = folderName; + this->path = folderPath; +} + +Folder::Folder(const QString & folderName, const QString & folderPath) + :knownParent(false), + knownId(false), + numChildren(-1), + firstChildId(0) +{ + this->name = folderName; + this->path = folderPath; +} diff --git a/common/folder.h b/common/folder.h index 22db77e5..9739a6d6 100644 --- a/common/folder.h +++ b/common/folder.h @@ -10,25 +10,86 @@ class Folder : public LibraryItem public: bool knownParent; bool knownId; - - qint32 numChildren; //-1 for unknown number of children - qulonglong firstChildId; //0 for unknown first child - QString customImage; //empty for none custom image - Folder():knownParent(false), knownId(false){}; - Folder(qulonglong sid, qulonglong pid,QString fn, QString fp):knownParent(true), knownId(true){id = sid; parentId = pid;name = fn; path = fp;}; - Folder(QString fn, QString fp):knownParent(false), knownId(false){name = fn; path = fp;}; - void setId(qulonglong sid){id = sid;knownId = true;}; - void setFather(qulonglong pid){parentId = pid;knownParent = true;}; - bool isDir() {return true;}; - bool isFinished() const {return finished;}; - bool isCompleted() const {return completed;}; - void setFinished(bool b) {finished = b;}; - void setCompleted(bool b) {completed = b;}; + Folder(); + Folder(qulonglong folderId, qulonglong parentId,const QString & folderName, const QString & folderPath); + Folder(const QString & folderName, const QString & folderPath); + + inline void setId(qulonglong sid) + { + id = sid; + knownId = true; + } + + inline void setFather(qulonglong pid) + { + parentId = pid; + knownParent = true; + } + + inline bool isDir() const + { + return true; + } + + inline bool isFinished() const + { + return finished; + } + + inline bool isCompleted() const + { + return completed; + } + + inline void setFinished(bool b) + { + finished = b; + } + + inline void setCompleted(bool b) + { + completed = b; + } + + inline qint32 getNumChildren() const + { + return numChildren; + } + + inline void setNumChildren(const qint32 v) + { + numChildren = v; + } + + inline qulonglong getFirstChildId() const + { + return firstChildId; + } + + inline void setFirstChildId(const qulonglong v) + { + firstChildId = v; + } + + inline qulonglong getCustomImage() const + { + return firstChildId; + } + + inline void setCustomImage(const QString & s) + { + customImage = s; + } private: bool finished; bool completed; + + qint32 numChildren; //-1 for unknown number of children + qulonglong firstChildId; //0 for unknown first child + QString customImage; //empty for none custom image + }; #endif diff --git a/common/library_item.h b/common/library_item.h index 2f6b8d9f..fcc194eb 100644 --- a/common/library_item.h +++ b/common/library_item.h @@ -6,11 +6,11 @@ class LibraryItem { public: - virtual bool isDir() = 0; + virtual bool isDir() const = 0; QString name; QString path; qulonglong parentId; qulonglong id; }; -#endif \ No newline at end of file +#endif