Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CList.hpp
Go to the documentation of this file.
1#ifndef LIBS_GUI_CLIST_HPP_
2#define LIBS_GUI_CLIST_HPP_
3
9
10#include <memory>
11#include <optional>
12#include <set>
13
15{
16public:
17 explicit CList(IModelList **model, bool isMultipleSelection = false);
18 ~CList() override;
19 CList() = delete;
20 CList(const CList &other) = delete;
21 CList(CList &&other) = delete;
22 CList &operator=(const CList &other) = delete;
23 CList &operator=(CList &&other) = delete;
24
25 void destroyWidget() override;
26
27 bool operator==(const CList &b) const
28 {
29 return (m_data == b.m_data);
30 }
31
32 void addColumn(const CColumnList &column) const;
33 void reDraw() const;
34 void reFilter() const;
35 void updateModel();
36
37 [[nodiscard]] const std::vector<CColumnList> *getColumns() const;
38 [[nodiscard]] std::vector<CColumnList> *getColumnsNotConst() const;
39 [[nodiscard]] IFilterModel *getFilterRef() const;
40 bool getIndRowSelected(uint64_t *indexSelectedOpt) const;
41 [[nodiscard]] std::set<uint64_t> getIndRowsSelected() const;
42 bool setIndRowSelected(uint64_t indexSelected);
43 bool clearSelection() const;
44 [[nodiscard]] const IModelList *getModel() const;
45 [[nodiscard]] IModelList *getModel();
46
47 void setFilter(IFilterModel **filter);
48 void setModel(IModelList **model);
49 void setMultipleSelection(bool isMultipleSelection);
50 void setRequestMinSizeForTexts(bool requestMinSizeForTexts);
51
52 struct SDataList
53 {
54 IModelList *m_model {nullptr};
55 std::vector<CColumnList> *m_columns {nullptr};
56
57 IWidget *m_compList {nullptr};
59
60 std::optional<uint64_t> m_initialRowSelected {std::nullopt};
62
68
69 bool operator==(const SDataList &b) const = default;
70 };
71
72private:
73 IWidget *createWidget(CDialog *dialogFatherRef) override;
74
76};
77
78#endif /* LIBS_GUI_CLIST_HPP_ */
Definition AbstractSelectionComponent.hpp:10
Definition CColumnList.hpp:10
Definition CDialog.hpp:21
Definition CList.hpp:15
void reFilter() const
Definition CList.cpp:53
void addColumn(const CColumnList &column) const
Definition CList.cpp:40
CList(CList &&other)=delete
SDataList m_data
Definition CList.hpp:75
IWidget * createWidget(CDialog *dialogFatherRef) override
Definition CList.cpp:167
std::vector< CColumnList > * getColumnsNotConst() const
Definition CList.cpp:75
void setMultipleSelection(bool isMultipleSelection)
Definition CList.cpp:157
void updateModel()
Definition CList.cpp:61
void setFilter(IFilterModel **filter)
Definition CList.cpp:136
const std::vector< CColumnList > * getColumns() const
Definition CList.cpp:70
std::set< uint64_t > getIndRowsSelected() const
Definition CList.cpp:95
bool operator==(const CList &b) const
Definition CList.hpp:27
CList(const CList &other)=delete
CList()=delete
void reDraw() const
Definition CList.cpp:45
IFilterModel * getFilterRef() const
Definition CList.cpp:80
void setRequestMinSizeForTexts(bool requestMinSizeForTexts)
Definition CList.cpp:162
~CList() override
Definition CList.cpp:16
bool setIndRowSelected(uint64_t indexSelected)
Definition CList.cpp:105
const IModelList * getModel() const
Definition CList.cpp:126
CList & operator=(const CList &other)=delete
bool clearSelection() const
Definition CList.cpp:116
bool getIndRowSelected(uint64_t *indexSelectedOpt) const
Definition CList.cpp:85
void destroyWidget() override
Definition CList.cpp:34
CList & operator=(CList &&other)=delete
void setModel(IModelList **model)
Definition CList.cpp:150
Definition IFilterModel.hpp:5
Definition IModelList.hpp:14
Definition IWidget.hpp:5
Definition CList.hpp:53
std::vector< CColumnList > * m_columns
Definition CList.hpp:55
bool m_requestMinSizeForTexts
If true, the list will request the minimum size to fit all texts in the columns.
Definition CList.hpp:67
IWidget * m_compList
Definition CList.hpp:57
IModelList * m_model
Definition CList.hpp:54
std::optional< uint64_t > m_initialRowSelected
Definition CList.hpp:60
IFilterModel * m_filterModelOpt
Definition CList.hpp:58
bool operator==(const SDataList &b) const =default
bool m_isMultipleSelection
Definition CList.hpp:61