diff options
Diffstat (limited to 'desktop-widgets/tableview.h')
-rw-r--r-- | desktop-widgets/tableview.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/desktop-widgets/tableview.h b/desktop-widgets/tableview.h new file mode 100644 index 000000000..f72b256ea --- /dev/null +++ b/desktop-widgets/tableview.h @@ -0,0 +1,54 @@ +#ifndef TABLEVIEW_H +#define TABLEVIEW_H + +/* This TableView is prepared to have the CSS, + * the methods to restore / save the state of + * the column widths and the 'plus' button. + */ +#include <QWidget> + +#include "ui_tableview.h" + +#include "metrics.h" + +class QPushButton; +class QAbstractItemModel; +class QModelIndex; +class QTableView; + +class TableView : public QGroupBox { + Q_OBJECT + + struct TableMetrics { + const IconMetrics* icon; // icon metrics + int rm_col_width; // column width of REMOVE column + int header_ht; // height of the header + }; +public: + TableView(QWidget *parent = 0); + virtual ~TableView(); + /* The model is expected to have a 'remove' slot, that takes a QModelIndex as parameter. + * It's also expected to have the column '1' as a trash icon. I most probably should create a + * proxy model and add that column, will mark that as TODO. see? marked. + */ + void setModel(QAbstractItemModel *model); + void setBtnToolTip(const QString &tooltip); + void fixPlusPosition(); + void edit(const QModelIndex &index); + int defaultColumnWidth(int col); // default column width for column col + QTableView *view(); + +protected: + virtual void showEvent(QShowEvent *); + virtual void resizeEvent(QResizeEvent *); + +signals: + void addButtonClicked(); + +private: + Ui::TableView ui; + QPushButton *plusBtn; + TableMetrics metrics; +}; + +#endif // TABLEVIEW_H |