mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 13:10:19 +00:00
c4c8094e32
See https://www.kdab.com/goodbye-q_foreach/ This is reduced to the places where the container is const or can be made const without the need to always introduce an extra variable. Sadly qAsConst (Qt 5.7) and std::as_const (C++17) are not available in all supported setups. Also do some minor cleanups along the way. Signed-off-by: Rolf Eike Beer <eike@sf-mail.de>
66 lines
1.7 KiB
C++
66 lines
1.7 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef DIVELISTMODEL_H
|
|
#define DIVELISTMODEL_H
|
|
|
|
#include <QAbstractListModel>
|
|
#include <QSortFilterProxyModel>
|
|
|
|
#include "core/subsurface-qt/DiveObjectHelper.h"
|
|
|
|
class DiveListSortModel : public QSortFilterProxyModel
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
DiveListSortModel(QObject *parent = 0);
|
|
void setSourceModel(QAbstractItemModel *sourceModel);
|
|
Q_INVOKABLE void addAllDives();
|
|
Q_INVOKABLE void clear();
|
|
Q_INVOKABLE QVariant tripIdToObject(const QString &s);
|
|
Q_INVOKABLE QString tripTitle(const QVariant &trip);
|
|
Q_INVOKABLE QString tripShortDate(const QVariant &trip);
|
|
public slots:
|
|
int getIdxForId(int id);
|
|
void setFilter(QString f);
|
|
void resetFilter();
|
|
int shown();
|
|
protected:
|
|
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;
|
|
private:
|
|
QString filterString;
|
|
void updateFilterState();
|
|
};
|
|
|
|
class DiveListModel : public QAbstractListModel
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
|
|
enum DiveListRoles {
|
|
DiveRole = Qt::UserRole + 1,
|
|
DiveDateRole,
|
|
FullTextRole,
|
|
FullTextNoNotesRole
|
|
};
|
|
|
|
static DiveListModel *instance();
|
|
DiveListModel(QObject *parent = 0);
|
|
void addDive(const QList<dive *> &listOfDives);
|
|
void addAllDives();
|
|
void insertDive(int i, DiveObjectHelper *newDive);
|
|
void removeDive(int i);
|
|
void removeDiveById(int id);
|
|
void updateDive(int i, dive *d);
|
|
void clear();
|
|
int rowCount(const QModelIndex &parent = QModelIndex()) const;
|
|
int getDiveIdx(int id) const;
|
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
|
|
QHash<int, QByteArray> roleNames() const;
|
|
QString startAddDive();
|
|
void resetInternalData();
|
|
Q_INVOKABLE DiveObjectHelper* at(int i);
|
|
private:
|
|
QList<DiveObjectHelper*> m_dives;
|
|
static DiveListModel *m_instance;
|
|
};
|
|
|
|
#endif // DIVELISTMODEL_H
|