Cleanup: turn GpsListModel into standard singleton

GpsListModel was one of those "special" singletons that could
be created explicitly with new. This would make sense if a
parameter were passed to the constructor. We only passed null,
so one might as well turn that into a classical singleton with
default constructor.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-09-28 23:23:57 +02:00 committed by Dirk Hohndel
parent 36d42a6a57
commit 2a9a3dda20
3 changed files with 5 additions and 9 deletions

View file

@ -3,11 +3,8 @@
#include "core/qthelper.h"
#include <QVector>
GpsListModel *GpsListModel::m_instance = NULL;
GpsListModel::GpsListModel(QObject *parent) : QAbstractListModel(parent)
GpsListModel::GpsListModel()
{
m_instance = this;
}
void GpsListModel::update()
@ -65,6 +62,7 @@ QHash<int, QByteArray> GpsListModel::roleNames() const
GpsListModel *GpsListModel::instance()
{
return m_instance;
static GpsListModel self;
return &self;
}

View file

@ -20,7 +20,7 @@ public:
};
static GpsListModel *instance();
GpsListModel(QObject *parent = 0);
GpsListModel();
void clear();
int rowCount(const QModelIndex &parent = QModelIndex()) const;
QHash<int, QByteArray> roleNames() const;
@ -28,7 +28,6 @@ public:
void update();
private:
QVector<gpsTracker> m_gpsFixes;
static GpsListModel *m_instance;
};
#endif // GPSLISTMODEL_H

View file

@ -97,9 +97,8 @@ void run_ui()
#endif // __APPLE__ not Q_OS_IOS
engine.addImportPath("qrc://imports");
DiveListSortModel *sortModel = new DiveListSortModel(0);
GpsListModel gpsListModel;
QSortFilterProxyModel *gpsSortModel = new QSortFilterProxyModel(nullptr);
gpsSortModel->setSourceModel(&gpsListModel);
gpsSortModel->setSourceModel(GpsListModel::instance());
gpsSortModel->setDynamicSortFilter(true);
gpsSortModel->setSortRole(GpsListModel::GpsWhenRole);
gpsSortModel->sort(0, Qt::DescendingOrder);