subsurface/qt-models/cleanertablemodel.h
Berthold Stoeger df156a56c0 Cleanup: replace virtual by override where appropriate
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>
2018-07-31 11:02:34 +02:00

42 lines
1.3 KiB
C++

// SPDX-License-Identifier: GPL-2.0
#ifndef CLEANERTABLEMODEL_H
#define CLEANERTABLEMODEL_H
#include <QAbstractTableModel>
#include <QStringList>
#include <QPixmap>
/* Retrieve the trash icon pixmap, common to most table models */
const QPixmap &trashIcon();
const QPixmap &trashForbiddenIcon();
/* When using a QAbstractTableModel, consider using this instead
* of the default implementation, as it's easyer to setup the columns
* and headers.
* Most subsurface classes uses this one to save loads of lines
* of code and share a consistent layout. */
class CleanerTableModel : public QAbstractTableModel {
Q_OBJECT
public:
explicit CleanerTableModel(QObject *parent = 0);
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
protected:
void setHeaderDataStrings(const QStringList &headers);
signals:
/* instead of using QMessageBox directly, wire a QWidget to this signal and display the result.
* This is because the QModels will be used from the Mobile version and the desktop version. */
void warningMessage(const QString& title, const QString& message);
private:
QStringList headers;
};
/* Has the string value changed */
#define CHANGED() \
(vString = value.toString()) != data(index, role).toString()
#endif