9#ifndef REMOTEREPLAYLIST_TREEWIDGET_H
10#define REMOTEREPLAYLIST_TREEWIDGET_H
14#include <libcockatrice/protocol/pb/serverinfo_replay.pb.h>
15#include <libcockatrice/protocol/pb/serverinfo_replay_match.pb.h>
19class QSortFilterProxyModel;
33 explicit Node(
const QString &_name) :
name(_name)
48 explicit MatchNode(
const ServerInfo_ReplayMatch &_matchInfo);
65 :
Node(QString::fromStdString(_replayInfo.replay_name())),
parent(_parent),
replayInfo(_replayInfo)
93 [[nodiscard]]
int rowCount(
const QModelIndex &
parent = QModelIndex())
const override;
94 [[nodiscard]]
int columnCount(
const QModelIndex & = QModelIndex())
const override
98 [[nodiscard]] QVariant
data(
const QModelIndex &
index,
int role)
const override;
99 [[nodiscard]] QVariant
100 headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole)
const override;
101 [[nodiscard]] QModelIndex
index(
int row,
int column,
const QModelIndex &
parent = QModelIndex())
const override;
102 [[nodiscard]] QModelIndex
parent(
const QModelIndex &
index)
const override;
103 [[nodiscard]] Qt::ItemFlags
flags(
const QModelIndex &
index)
const override;
106 [[nodiscard]] ServerInfo_Replay
const *
getReplay(
const QModelIndex &
index)
const;
107 [[nodiscard]] ServerInfo_ReplayMatch
const *
getReplayMatch(
const QModelIndex &
index)
const;
109 void addMatchInfo(
const ServerInfo_ReplayMatch &matchInfo);
110 void updateMatchInfo(
int gameId,
const ServerInfo_ReplayMatch &matchInfo);
122 [[nodiscard]] ServerInfo_Replay
const *
getReplay(
const QModelIndex &ind)
const;
123 [[nodiscard]] ServerInfo_ReplayMatch
const *
getReplayMatch(
const QModelIndex &ind)
const;
140 treeModel->updateMatchInfo(gameId, matchInfo);
Definition abstract_client.h:51
Definition remote_replay_list_tree_widget.h:43
MatchNode(const ServerInfo_ReplayMatch &_matchInfo)
Definition remote_replay_list_tree_widget.cpp:14
~MatchNode() override
Definition remote_replay_list_tree_widget.cpp:21
void updateMatchInfo(const ServerInfo_ReplayMatch &_matchInfo)
Definition remote_replay_list_tree_widget.cpp:27
const ServerInfo_ReplayMatch & getMatchInfo()
Definition remote_replay_list_tree_widget.h:51
ServerInfo_ReplayMatch matchInfo
Definition remote_replay_list_tree_widget.h:45
QString name
Definition remote_replay_list_tree_widget.h:30
Node(const QString &_name)
Definition remote_replay_list_tree_widget.h:33
QString getName() const
Definition remote_replay_list_tree_widget.h:37
Definition remote_replay_list_tree_widget.h:58
ReplayNode(const ServerInfo_Replay &_replayInfo, MatchNode *_parent)
Definition remote_replay_list_tree_widget.h:64
const ServerInfo_Replay & getReplayInfo()
Definition remote_replay_list_tree_widget.h:72
MatchNode * parent
Definition remote_replay_list_tree_widget.h:60
ServerInfo_Replay replayInfo
Definition remote_replay_list_tree_widget.h:61
MatchNode * getParent() const
Definition remote_replay_list_tree_widget.h:68
Definition remote_replay_list_tree_widget.h:22
void removeMatchInfo(int gameId)
Definition remote_replay_list_tree_widget.cpp:287
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Definition remote_replay_list_tree_widget.cpp:132
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition remote_replay_list_tree_widget.cpp:196
QVariant data(const QModelIndex &index, int role) const override
Definition remote_replay_list_tree_widget.cpp:58
static const int numberOfColumns
Definition remote_replay_list_tree_widget.h:84
void clearAll()
Definition remote_replay_list_tree_widget.cpp:245
int columnCount(const QModelIndex &=QModelIndex()) const override
Definition remote_replay_list_tree_widget.h:94
~RemoteReplayList_TreeModel() override
Definition remote_replay_list_tree_widget.cpp:41
AbstractClient * client
Definition remote_replay_list_tree_widget.h:78
void refreshTree()
Definition remote_replay_list_tree_widget.cpp:252
ServerInfo_ReplayMatch const * getReplayMatch(const QModelIndex &index) const
Definition remote_replay_list_tree_widget.cpp:215
ServerInfo_ReplayMatch const * getEnclosingReplayMatch(const QModelIndex &index) const
Definition remote_replay_list_tree_widget.cpp:227
QIcon dirIcon
Definition remote_replay_list_tree_widget.h:81
ServerInfo_Replay const * getReplay(const QModelIndex &index) const
Definition remote_replay_list_tree_widget.cpp:204
QModelIndex parent(const QModelIndex &index) const override
Definition remote_replay_list_tree_widget.cpp:185
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition remote_replay_list_tree_widget.cpp:46
QList< MatchNode * > replayMatches
Definition remote_replay_list_tree_widget.h:79
RemoteReplayList_TreeModel(AbstractClient *_client, QObject *parent=nullptr)
Definition remote_replay_list_tree_widget.cpp:32
QIcon fileIcon
Definition remote_replay_list_tree_widget.h:81
void clearTree()
Definition remote_replay_list_tree_widget.cpp:260
void addMatchInfo(const ServerInfo_ReplayMatch &matchInfo)
Definition remote_replay_list_tree_widget.cpp:267
void updateMatchInfo(int gameId, const ServerInfo_ReplayMatch &matchInfo)
Definition remote_replay_list_tree_widget.cpp:276
QIcon lockIcon
Definition remote_replay_list_tree_widget.h:81
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
Definition remote_replay_list_tree_widget.cpp:168
void replayListFinished(const Response &r)
Definition remote_replay_list_tree_widget.cpp:298