The keyword "virtual" signalizes that the function is virtual, i.e. the function of the derived class is called, even if the call is on the parent class. It is not necessary to repeat the "virtual" keyword in derived classes. To highlight derived virtual functions, the keyword "override" should be used instead. It results in a hard compile- error, if no function is overridden, thus avoiding subtle bugs. Replace "virtual" by "override" where appropriate. Moreover, replace Q_DECL_OVERRIDE by override, since we require reasonably recent compilers anyway. Likewise, replace /* reimp */ by "override" for consistency and compiler support. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
56 lines
1.4 KiB
C++
56 lines
1.4 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#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 "core/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);
|
|
~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:
|
|
void showEvent(QShowEvent *) override;
|
|
void resizeEvent(QResizeEvent *) override;
|
|
|
|
signals:
|
|
void addButtonClicked();
|
|
|
|
private:
|
|
Ui::TableView ui;
|
|
QPushButton *plusBtn;
|
|
TableMetrics metrics;
|
|
};
|
|
|
|
#endif // TABLEVIEW_H
|