19 #ifndef INC_C4ConsoleQtDefinitionListViewer
20 #define INC_C4ConsoleQtDefinitionListViewer
29 class C4ConsoleQtDefinitionListModel :
public QAbstractItemModel
33 mutable int32_t last_row_count{0};
38 std::vector<std::unique_ptr<DefListNode> > items;
42 DefListNode *parent{
nullptr};
44 DefListNode() =
default;
47 std::unique_ptr<DefListNode> root;
50 C4ConsoleQtDefinitionListModel();
51 ~C4ConsoleQtDefinitionListModel()
override;
56 void OnItemRemoved(
class C4Def *def);
59 void SetSelection(
C4Def *new_selection);
61 class C4Def *GetDefByModelIndex(
const QModelIndex &idx);
62 const char *GetNameByModelIndex(
const QModelIndex &idx);
63 QModelIndex GetModelIndexByItem(
class C4Def *def)
const;
66 int rowCount(
const QModelIndex & parent = QModelIndex())
const override;
67 int columnCount(
const QModelIndex & parent = QModelIndex())
const override;
68 QVariant data(
const QModelIndex & index,
int role = Qt::DisplayRole)
const override;
69 QModelIndex index(
int row,
int column,
const QModelIndex &parent)
const override;
70 QModelIndex parent(
const QModelIndex &index)
const override;
73 void OnSelectionChanged(
const QItemSelection & selected,
const QItemSelection & deselected);