feat(browser): support display subfolders

This commit is contained in:
2024-11-10 17:10:45 +08:00
parent 15cef03f08
commit 1f7adc2a3a
11 changed files with 150 additions and 47 deletions

View File

@ -9,3 +9,15 @@ ComicItem::ComicItem(QJsonObject jsonObj, const QString &name)
setData(jsonObj["current_page"].toInt(), CurrentPageRole);
setData(jsonObj["type"].toInt(), TypeRole);
}
QHash<int, QByteArray> ComicItem::roleNames()
{
return {
{Qt::DisplayRole, "display"},
{ComicItem::IdRole, "comicId"},
{ComicItem::HashRole, "hash"},
{ComicItem::PageCountRole, "pageCount"},
{ComicItem::CurrentPageRole, "currentPage"},
{ComicItem::TypeRole, "type"},
};
}

View File

@ -18,4 +18,5 @@ public:
Q_ENUM(Roles)
explicit ComicItem(QJsonObject jsonObj, const QString &name);
static QHash<int, QByteArray> roleNames();
};

18
dataitems/folderitem.cpp Normal file
View File

@ -0,0 +1,18 @@
#include "folderitem.h"
FolderItem::FolderItem(QJsonObject jsonObj, const QString &name)
: QStandardItem(name)
{
setData(jsonObj["id"].toString(), IdRole);
setData(jsonObj["first_comic_hash"].toString(), FirstComicHashRole);
setData(jsonObj["path"].toString(), PathRole);
}
QHash<int, QByteArray> FolderItem::roleNames()
{
return {
{Qt::DisplayRole, "display"},
{FolderItem::IdRole, "folderId"},
{FolderItem::PathRole, "path"},
};
}

20
dataitems/folderitem.h Normal file
View File

@ -0,0 +1,20 @@
#pragma once
#include <QJsonObject>
#include <QStandardItem>
#include <QQmlEngine>
class FolderItem : public QStandardItem
{
Q_GADGET
public:
enum Roles {
IdRole = Qt::UserRole + 1,
FirstComicHashRole,
PathRole,
};
Q_ENUM(Roles)
explicit FolderItem(QJsonObject jsonObj, const QString &name);
static QHash<int, QByteArray> roleNames();
};

View File

@ -6,3 +6,12 @@ LibraryItem::LibraryItem(int id, const QString &name, const QString &uuid)
setData(id, IdRole);
setData(uuid, UuidRole);
}
QHash<int, QByteArray> LibraryItem::roleNames()
{
return {
{Qt::DisplayRole, "display"},
{LibraryItem::IdRole, "libraryId"},
{LibraryItem::UuidRole, "uuid"},
};
}

View File

@ -13,4 +13,5 @@ public:
Q_ENUM(Roles)
explicit LibraryItem(int id, const QString &name, const QString &uuid);
static QHash<int, QByteArray> roleNames();
};