diff --git a/src/contentmanager.cpp b/src/contentmanager.cpp index 83370c9..9517957 100644 --- a/src/contentmanager.cpp +++ b/src/contentmanager.cpp @@ -77,10 +77,10 @@ ContentManager::ContentManager(Library* library, kiwix::Downloader* downloader, setLanguages(); } -QList> ContentManager::getBooksList() +ContentManager::BookInfoList ContentManager::getBooksList() { const auto bookIds = getBookIds(); - QList> bookList; + BookInfoList bookList; QStringList keys = {"title", "tags", "date", "id", "size", "description", "faviconUrl"}; QIcon bookIcon; for (auto bookId : bookIds) { @@ -216,9 +216,9 @@ void ContentManager::setLanguages() } #define ADD_V(KEY, METH) {if(key==KEY) values.insert(key, QString::fromStdString((b->METH())));} -QMap ContentManager::getBookInfos(QString id, const QStringList &keys) +ContentManager::BookInfo ContentManager::getBookInfos(QString id, const QStringList &keys) { - QMap values; + BookInfo values; const kiwix::Book* b = [=]()->const kiwix::Book* { try { return &mp_library->getBookById(id); diff --git a/src/contentmanager.h b/src/contentmanager.h index 84a75ba..f4d3b14 100644 --- a/src/contentmanager.h +++ b/src/contentmanager.h @@ -17,9 +17,13 @@ class ContentManager : public QObject Q_PROPERTY(QStringList downloadIds READ getDownloadIds NOTIFY downloadsChanged) Q_PROPERTY(bool isLocal MEMBER m_local READ isLocal WRITE setLocal NOTIFY localChanged) -public: +public: // types typedef QList> LanguageList; typedef QList> FilterList; + typedef ContentManagerModel::BookInfo BookInfo; + typedef ContentManagerModel::BookInfoList BookInfoList; + +public: // functions explicit ContentManager(Library* library, kiwix::Downloader *downloader, QObject *parent = nullptr); virtual ~ContentManager() {} @@ -51,7 +55,7 @@ private: QStringList getBookIds(); void eraseBookFilesFromComputer(const QString dirPath, const QString filename, const bool moveToTrash); - QList> getBooksList(); + BookInfoList getBooksList(); ContentManagerModel *managerModel; QMutex remoteLibraryLocker; void setCategories(); @@ -71,7 +75,7 @@ signals: public slots: QStringList getTranslations(const QStringList &keys); - QMap getBookInfos(QString id, const QStringList &keys); + BookInfo getBookInfos(QString id, const QStringList &keys); void openBook(const QString& id); QMap updateDownloadInfos(QString id, const QStringList& keys); QString downloadBook(const QString& id); diff --git a/src/contentmanagermodel.cpp b/src/contentmanagermodel.cpp index db15d72..af0ffd0 100644 --- a/src/contentmanagermodel.cpp +++ b/src/contentmanagermodel.cpp @@ -102,7 +102,7 @@ QVariant ContentManagerModel::headerData(int section, Qt::Orientation orientatio } } -void ContentManagerModel::setBooksData(const QList>& data) +void ContentManagerModel::setBooksData(const BookInfoList& data) { m_data = data; rootNode = std::shared_ptr(new RowNode({tr("Icon"), tr("Name"), tr("Date"), tr("Size"), tr("Content Type"), tr("Download")}, "", std::weak_ptr())); @@ -124,7 +124,7 @@ QString convertToUnits(QString size) return preciseBytes + " " + units[unitIndex]; } -std::shared_ptr ContentManagerModel::createNode(QMap bookItem, QMap iconMap) const +std::shared_ptr ContentManagerModel::createNode(BookInfo bookItem, QMap iconMap) const { auto faviconUrl = "https://" + bookItem["faviconUrl"].toString(); QString id = bookItem["id"].toString(); diff --git a/src/contentmanagermodel.h b/src/contentmanagermodel.h index 92f2da2..55404bb 100644 --- a/src/contentmanagermodel.h +++ b/src/contentmanagermodel.h @@ -16,7 +16,11 @@ class ContentManagerModel : public QAbstractItemModel { Q_OBJECT -public: +public: // types + typedef QMap BookInfo; + typedef QList BookInfoList; + +public: // functions explicit ContentManagerModel(QObject *parent = nullptr); ~ContentManagerModel(); @@ -29,13 +33,13 @@ public: QModelIndex parent(const QModelIndex &index) const override; int rowCount(const QModelIndex &parent = QModelIndex()) const override; int columnCount(const QModelIndex &parent = QModelIndex()) const override; - void setBooksData(const QList>& data); + void setBooksData(const BookInfoList& data); void setupNodes(); bool hasChildren(const QModelIndex &parent) const override; void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override; void refreshIcons(); - std::shared_ptr createNode(QMap bookItem, QMap iconMap) const; + std::shared_ptr createNode(BookInfo bookItem, QMap iconMap) const; public slots: void updateImage(QModelIndex index, QString url, QByteArray imageData); @@ -44,12 +48,12 @@ public slots: void resumeDownload(QModelIndex index); void cancelDownload(QModelIndex index); -protected: +protected: // functions bool canFetchMore(const QModelIndex &parent) const override; void fetchMore(const QModelIndex &parent) override; -private: - QList> m_data; +private: // data + BookInfoList m_data; std::shared_ptr rootNode; int zimCount = 0; ThumbnailDownloader td; diff --git a/src/rownode.h b/src/rownode.h index d1edbaa..b8f97f9 100644 --- a/src/rownode.h +++ b/src/rownode.h @@ -3,7 +3,6 @@ #include "node.h" #include -#include "contentmanagermodel.h" #include #include "kiwix/book.h"