Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CSheet.hpp
Go to the documentation of this file.
1#ifndef LIBS_GUI_CSHEET_HPP_
2#define LIBS_GUI_CSHEET_HPP_
3
6
7#include <bits/stdint-uintn.h>
8#include <memory>
9#include <vector>
10
11class CDialog;
12class IComponentsGUI;
13class IWidget;
14
20{
21public:
22 explicit CSheet(const std::shared_ptr<AbstractSheetModel> &model, bool isMultipleSelection = false);
23 ~CSheet() override;
24 CSheet() = delete;
25 CSheet(const CSheet &other) = delete;
26 CSheet(CSheet &&other) = delete;
27 CSheet &operator=(const CSheet &other) = delete;
28 CSheet &operator=(CSheet &&other) = delete;
29
30 void destroyWidget() override;
31 void updateWidget();
32
33 void freeze();
34 void thaw();
35
36 bool processAccept();
37
38 void clear();
39 void attachCellComponent(const iv::gui::sheets::CellDefinition &cellDefinition, uint32_t rowPosition,
40 uint32_t columnPosition);
41 void addColumnFromCSheetModel(const iv::gui::sheets::ColumnId &columnIdReference, const std::string &columnTitle);
42 void removeColumn(const iv::gui::sheets::ColumnId &columnId);
44
45 void addRowFromCSheetModel(const iv::gui::sheets::RowId &rowIdReference);
46 void removeRow(const iv::gui::sheets::RowId &rowId);
48
49 void updateCssClassToRow(uint32_t rowPosition);
50 void applyCSSClassToRow(const std::string &cssClass, uint32_t rowPosition);
51
53 bool getSelectedRows(std::vector<uint32_t> *selectedRows);
54 [[nodiscard]] std::string getCellTooltip(uint32_t row, uint32_t column) const;
55
56 void setActiveCell(uint32_t row, uint32_t column);
57 void updateCellText(uint32_t rowPosition, uint32_t columnPosition);
58 void setCellText(uint32_t rowPosition, uint32_t columnPosition, const std::string &text);
59 void setTooltipToRow(const std::string &tooltip, uint32_t rowPosition);
60
61 void updateRowTitles();
62
64 [[nodiscard]] uint32_t getVersionNumber() const;
65
66 void updateSheet();
67 void updateColumnText(const iv::gui::sheets::ColumnId &columnId);
68
69 int32_t m_previousRow {-1};
70 std::optional<uint32_t> m_updateProcessId {std::nullopt};
71
72private:
73 void setColumnTexts(const iv::gui::sheets::ColumnId &columnId, uint32_t columnPosition);
74 void setRowTexts(const iv::gui::sheets::RowId &rowId);
75 void setRowTexts(const iv::gui::sheets::RowId &rowId,
76 const std::map<iv::gui::sheets::ColumnId, std::string> &columnsTexts);
77 std::map<iv::gui::sheets::ColumnId, std::string> getRowTexts(const iv::gui::sheets::RowId &rowId);
78
80
81 void attachRowTitleComponent(iv::gui::sheets::RowCells *rowCells, uint32_t rowPosition);
82
83 void setCSSClassToRow(const std::string &cssClass, uint32_t rowPosition);
85 IWidget *createWidget(CDialog *dialogFatherRef) override;
86
87 // TODO: aag. Estudiar si serĂ­a mejor utilizar unique_ptr en vez de shared_ptr -> NO
88 std::shared_ptr<AbstractSheetModel> m_model;
90 // version number will increase with each change in CSheet. Used to compare version with external object.
92
95};
96
97#endif /* LIBS_GUI_CSHEET_HPP_ */
Definition AbstractComponentGUI.hpp:30
Definition AbstractSheetModel.hpp:17
Definition CDialog.hpp:21
Definition CSheet.hpp:20
void updateRowTitles()
Definition CSheet.cpp:823
void applyCSSClassToRow(const std::string &cssClass, uint32_t rowPosition)
Definition CSheet.cpp:726
void clear()
Definition CSheet.cpp:398
std::shared_ptr< AbstractSheetModel > m_model
Definition CSheet.hpp:88
void setCellText(uint32_t rowPosition, uint32_t columnPosition, const std::string &text)
Definition CSheet.cpp:803
CSheet(const CSheet &other)=delete
void freeze()
Definition CSheet.cpp:347
bool processAccept()
Definition CSheet.cpp:372
void setActiveCell(uint32_t row, uint32_t column)
Definition CSheet.cpp:788
void updateRowsVisibility(const iv::gui::sheets::RowsDefinitions &rowDefinitions)
Definition CSheet.cpp:708
CSheet & operator=(const CSheet &other)=delete
CSheet(CSheet &&other)=delete
uint32_t getVersionNumber() const
Definition CSheet.cpp:894
void setTooltipToRow(const std::string &tooltip, uint32_t rowPosition)
Definition CSheet.cpp:815
uint32_t m_versionNumber
Definition CSheet.hpp:91
std::optional< uint32_t > m_updateProcessId
Definition CSheet.hpp:70
void addRowFromCSheetModel(const iv::gui::sheets::RowId &rowIdReference)
Definition CSheet.cpp:661
void addColumnFromCSheetModel(const iv::gui::sheets::ColumnId &columnIdReference, const std::string &columnTitle)
Definition CSheet.cpp:440
int32_t m_previousRow
Definition CSheet.hpp:69
std::string getCellTooltip(uint32_t row, uint32_t column) const
Definition CSheet.cpp:771
void updateCssClassToRow(uint32_t rowPosition)
Definition CSheet.cpp:717
void updateColumnText(const iv::gui::sheets::ColumnId &columnId)
Definition CSheet.cpp:882
void updateCellText(uint32_t rowPosition, uint32_t columnPosition)
Definition CSheet.cpp:796
void attachCellComponent(const iv::gui::sheets::CellDefinition &cellDefinition, uint32_t rowPosition, uint32_t columnPosition)
Definition CSheet.cpp:415
bool m_isMultipleSelection
Definition CSheet.hpp:94
void removeRow(const iv::gui::sheets::RowId &rowId)
Definition CSheet.cpp:689
void updateWidget()
Definition CSheet.cpp:327
bool getSelectedRows(std::vector< uint32_t > *selectedRows)
Definition CSheet.cpp:759
CDialog * m_dialogFatherRef
Definition CSheet.hpp:89
void thaw()
Definition CSheet.cpp:362
void setRowTexts(const iv::gui::sheets::RowId &rowId)
Definition CSheet.cpp:504
void setRowsTextFromModel()
Definition CSheet.cpp:554
std::map< iv::gui::sheets::ColumnId, std::string > getRowTexts(const iv::gui::sheets::RowId &rowId)
Definition CSheet.cpp:535
CSheet()=delete
void updateColumnsVisibility(const iv::gui::sheets::ColumnsDefinitions &columnDefinitions)
Definition CSheet.cpp:480
void updateSheet()
Definition CSheet.cpp:867
IWidget * createWidget(CDialog *dialogFatherRef) override
Definition CSheet.cpp:946
void attachRowTitleComponent(iv::gui::sheets::RowCells *rowCells, uint32_t rowPosition)
Definition CSheet.cpp:595
void removeColumn(const iv::gui::sheets::ColumnId &columnId)
Definition CSheet.cpp:463
void setColumnTexts(const iv::gui::sheets::ColumnId &columnId, uint32_t columnPosition)
Definition CSheet.cpp:488
CSheet & operator=(CSheet &&other)=delete
void setInitialCSSClassToRows()
Definition CSheet.cpp:921
void destroyWidget() override
Definition CSheet.cpp:289
AbstractSheetModel * getModel()
Definition CSheet.cpp:754
IWidget * m_widgetRef
Definition CSheet.hpp:93
void setCSSClassToRow(const std::string &cssClass, uint32_t rowPosition)
Definition CSheet.cpp:913
void increaseVersionNumber()
Definition CSheet.cpp:862
~CSheet() override
Definition CSheet.cpp:284
Definition IComponentsGUI.hpp:37
Definition IWidget.hpp:5
std::map< ColumnId, ColumnDefinition > ColumnsDefinitions
Definition structs.hpp:84
std::map< RowId, RowDefinition > RowsDefinitions
Definition structs.hpp:85
Definition structs.hpp:18
Definition structs.hpp:24
Definition structs.hpp:79
Definition structs.hpp:50