8#ifndef REMOTEDECKLIST_TREEWIDGET_H
9#define REMOTEDECKLIST_TREEWIDGET_H
16class QSortFilterProxyModel;
17class ServerInfo_DeckStorage_TreeItem;
51 [[nodiscard]] QString
getPath()
const;
76 template <
typename T> [[nodiscard]] T
getNode(
const QModelIndex &
index)
const
78 if (!
index.isValid()) {
79 return dynamic_cast<T
>(
root);
81 return dynamic_cast<T
>(
static_cast<Node *
>(
index.internalPointer()));
99 [[nodiscard]]
int rowCount(
const QModelIndex &
parent = QModelIndex())
const override;
100 [[nodiscard]]
int columnCount(
const QModelIndex & = QModelIndex())
const override;
101 [[nodiscard]] QVariant
data(
const QModelIndex &
index,
int role)
const override;
102 [[nodiscard]] QVariant
103 headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole)
const override;
104 [[nodiscard]] QModelIndex
index(
int row,
int column,
const QModelIndex &
parent = QModelIndex())
const override;
105 [[nodiscard]] QModelIndex
parent(
const QModelIndex &
index)
const override;
106 [[nodiscard]] Qt::ItemFlags
flags(
const QModelIndex &
index)
const override;
Definition abstract_client.h:51
Definition remote_decklist_tree_widget.h:46
void clearTree()
Definition remote_decklist_tree_widget.cpp:23
DirectoryNode(const QString &_name=QString(), DirectoryNode *_parent=nullptr)
Definition remote_decklist_tree_widget.cpp:12
QString getPath() const
Definition remote_decklist_tree_widget.cpp:31
FileNode * getNodeById(int id) const
Definition remote_decklist_tree_widget.cpp:70
~DirectoryNode() override
Definition remote_decklist_tree_widget.cpp:18
DirectoryNode * getNodeByPath(QStringList path)
Definition remote_decklist_tree_widget.cpp:45
Definition remote_decklist_tree_widget.h:56
int getId() const
Definition remote_decklist_tree_widget.h:66
int id
Definition remote_decklist_tree_widget.h:58
FileNode(const QString &_name, int _id, const QDateTime &_uploadTime, DirectoryNode *_parent=nullptr)
Definition remote_decklist_tree_widget.h:62
QDateTime uploadTime
Definition remote_decklist_tree_widget.h:59
QDateTime getUploadTime() const
Definition remote_decklist_tree_widget.h:70
Definition remote_decklist_tree_widget.h:26
QString getName() const
Definition remote_decklist_tree_widget.h:40
DirectoryNode * getParent() const
Definition remote_decklist_tree_widget.h:36
DirectoryNode * parent
Definition remote_decklist_tree_widget.h:28
QString name
Definition remote_decklist_tree_widget.h:29
Node(const QString &_name, DirectoryNode *_parent=nullptr)
Definition remote_decklist_tree_widget.h:32
Definition remote_decklist_tree_widget.h:20
int columnCount(const QModelIndex &=QModelIndex()) const override
Definition remote_decklist_tree_widget.cpp:114
~RemoteDeckList_TreeModel() override
Definition remote_decklist_tree_widget.cpp:99
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Definition remote_decklist_tree_widget.cpp:170
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
Definition remote_decklist_tree_widget.cpp:195
DirectoryNode * addNamedFolderToTree(const QString &name, DirectoryNode *parent)
Definition remote_decklist_tree_widget.cpp:261
QModelIndex nodeToIndex(Node *node) const
Definition remote_decklist_tree_widget.cpp:227
QIcon dirIcon
Definition remote_decklist_tree_widget.h:88
AbstractClient * client
Definition remote_decklist_tree_widget.h:85
void addFileToTree(const ServerInfo_DeckStorage_TreeItem &file, DirectoryNode *parent)
Definition remote_decklist_tree_widget.cpp:235
void clearTree()
Definition remote_decklist_tree_widget.cpp:288
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition remote_decklist_tree_widget.cpp:218
void removeNode(Node *node)
Definition remote_decklist_tree_widget.cpp:271
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition remote_decklist_tree_widget.cpp:104
void addFolderToTree(const ServerInfo_DeckStorage_TreeItem &folder, DirectoryNode *parent)
Definition remote_decklist_tree_widget.cpp:246
QModelIndex parent(const QModelIndex &index) const override
Definition remote_decklist_tree_widget.cpp:209
QVariant data(const QModelIndex &index, int role) const override
Definition remote_decklist_tree_widget.cpp:119
void deckListFinished(const Response &r)
Definition remote_decklist_tree_widget.cpp:295
T getNode(const QModelIndex &index) const
Definition remote_decklist_tree_widget.h:76
QIcon fileIcon
Definition remote_decklist_tree_widget.h:88
void refreshTree()
Definition remote_decklist_tree_widget.cpp:280
DirectoryNode * getRoot() const
Definition remote_decklist_tree_widget.h:108
DirectoryNode * root
Definition remote_decklist_tree_widget.h:86
RemoteDeckList_TreeModel(AbstractClient *_client, QObject *parent=nullptr)
Definition remote_decklist_tree_widget.cpp:89