OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
Table.h
Go to the documentation of this file.
1
4// ###########################################################################################################################################################################################################################################################################################################################
5
6#pragma once
7
8// OpenTwin header
9#include "OTCore/Color.h"
10#include "OTGui/TableCfg.h"
11#include "OTGui/TableRange.h"
13
14// Qt header
15#include <QtWidgets/qtablewidget.h>
16
17// std header
18#include <vector>
19
20namespace ot {
21
22 class OT_WIDGETS_API_EXPORT Table : public QTableWidget {
23 Q_OBJECT
25 public:
26 static QRect getSelectionBoundingRect(const QList<QTableWidgetSelectionRange>& _selections);
27
28 Table(QWidget* _parentWidget = (QWidget*)nullptr);
29 Table(int _rows, int _columns, QWidget* _parentWidget = (QWidget*)nullptr);
30 virtual ~Table();
31
32 // ###########################################################################################################################################################################################################################################################################################################################
33
34 // Setter / Getter
35
36 virtual void setupFromConfig(const TableCfg& _config);
37 virtual TableCfg createConfig(void) const;
38
39 void setContentChanged(bool _changed = true);
40 bool getContentChanged(void) const { return m_contentChanged; };
41
42 void setSelectedCellsBackground(const ot::Color& _color);
43 void setSelectedCellsBackground(const QColor& _color);
44
45 void prepareForDataChange(void);
46
47 QRect getSelectionBoundingRect(void) const { return Table::getSelectionBoundingRect(this->selectedRanges()); };
48
49 Q_SIGNALS:
50 void saveRequested(void);
51 void modifiedChanged(bool _isModified);
52
53 public Q_SLOTS:
54 void slotSaveRequested(void);
55
56 // ###########################################################################################################################################################################################################################################################################################################################
57
58 protected:
59 virtual void showEvent(QShowEvent* _event) override;
60 virtual void hideEvent(QHideEvent* _event) override;
61
62 // ###########################################################################################################################################################################################################################################################################################################################
63
64 private Q_SLOTS:
65 void slotCellDataChanged(int _row, int _column);
66 void slotRestoreColumnSize(int _column);
67 void slotResizeColumnToContent(int _column);
68 void slotRestoreRowSize(int _row);
69 void slotResizeRowToContent(int _row);
70
71 private:
72 void ini(void);
73 void resizeColumnsToContentIfNeeded(void);
74 void resizeRowsToContentIfNeeded(void);
75 void setResizeRequired(void);
76
77 bool m_stopResizing;
78 bool m_resizeRequired;
79 bool m_contentChanged;
80 std::vector<int> m_columnWidthBuffer;
81 std::vector<int> m_rowHeightBuffer;
82 };
83
84}
#define OT_DECL_NOCOPY(___class)
Removes the default copy constructor and assignment operator.
Definition OTClassHelper.h:14
#define OT_WIDGETS_API_EXPORT
Definition OTWidgetsAPIExport.h:12
The Color class is used to represent RGBA colors with integer values.
Definition Color.h:72
Definition TableCfg.h:19
Definition Table.h:22
void modifiedChanged(bool _isModified)
QRect getSelectionBoundingRect(void) const
Definition Table.h:47
void saveRequested(void)
bool getContentChanged(void) const
Definition Table.h:40
Definition Connector.h:8