filterModel(new StationListProxyModel(this)),
keyPressForwarder(new KeyPressForwarder(this)),
positionInfoSource(QGeoPositionInfoSource::createDefaultSource(this)),
- m_sortingMode(NoSorting)
+ m_sortingMode(StationListProxyModel::NoSorting)
{
ui->setupUi(this);
}
QSettings settings;
- SortingMode mode = static_cast<SortingMode>(
+ StationListProxyModel::SortingMode mode =
+ static_cast<StationListProxyModel::SortingMode>(
settings.value("StationListView/SortingMode",
- AlphaSorting).toInt());
+ StationListProxyModel::AlphaSorting).toInt());
filterModel->setRecentStations(
settings.value("RecentStations").toString().split(","));
setSortingMode(mode);
void StationListView::handleSortingChange(QAction *action)
{
- SortingMode mode = NoSorting;
+ StationListProxyModel::SortingMode mode = StationListProxyModel::NoSorting;
if (action == ui->sortByNameAction) {
- mode = AlphaSorting;
+ mode = StationListProxyModel::AlphaSorting;
qDebug() << "sort by name";
} else if (action == ui->sortByDistanceAction) {
- mode = DistanceSorting;
+ mode = StationListProxyModel::DistanceSorting;
qDebug() << "sort by distance";
} else if (action == ui->sortRecentFirstAction) {
- mode = RecentUsageSorting;
+ mode = StationListProxyModel::RecentUsageSorting;
qDebug() << "sort by recent use";
}
setSortingMode(mode);
}
-void StationListView::setSortingMode(StationListView::SortingMode mode)
+void StationListView::setSortingMode(StationListProxyModel::SortingMode mode)
{
qDebug() << "setSorting Mode" << mode << "called";
if (mode != m_sortingMode) {
filterModel->setRecentOnlyFilter(false);
switch (mode) {
- case AlphaSorting:
+ case StationListProxyModel::AlphaSorting:
filterModel->setSortRole(Qt::DisplayRole);
ui->sortByNameAction->setChecked(true);
break;
- case DistanceSorting:
+ case StationListProxyModel::DistanceSorting:
filterModel->setSortRole(StationListModel::PositionRole);
ui->sortByDistanceAction->setChecked(true);
break;
- case RecentUsageSorting:
+ case StationListProxyModel::RecentUsageSorting:
ui->sortRecentFirstAction->setChecked(true);
filterModel->setRecentOnlyFilter(true);
break;
- case NoSorting:
+ case StationListProxyModel::NoSorting:
default:
break;
}
- if (mode == DistanceSorting) {
+ if (mode == StationListProxyModel::DistanceSorting) {
positionInfoSource->startUpdates();
} else {
positionInfoSource->stopUpdates();
}
}
-StationListView::SortingMode StationListView::sortingMode()
+StationListProxyModel::SortingMode StationListView::sortingMode()
{
return m_sortingMode;
}
#ifndef STATIONLISTVIEW_H
#define STATIONLISTVIEW_H
+#include "stationlistproxymodel.h"
+
#include <QMainWindow>
#include <QModelIndex>
#include <QGeoPositionInfoSource>
class StationListView : public QMainWindow
{
Q_OBJECT
-
- enum SortingMode {
- NoSorting,
- AlphaSorting,
- DistanceSorting,
- RecentUsageSorting
- };
-
public:
explicit StationListView(StationListModel *model, QWidget *parent = 0);
~StationListView();
- void setSortingMode(SortingMode mode);
- SortingMode sortingMode(void);
+ void setSortingMode(StationListProxyModel::SortingMode mode);
+ StationListProxyModel::SortingMode sortingMode(void);
signals:
void stationSelected(const QString &);
void aboutTriggered(void);
void settingsChangeRequested(void);
- void sortingModeChanged(SortingMode mode);
+ void sortingModeChanged(StationListProxyModel::SortingMode mode);
public slots:
void updatePosition(const QGeoPositionInfo &update);
StationListProxyModel *filterModel;
KeyPressForwarder *keyPressForwarder;
QGeoPositionInfoSource *positionInfoSource;
- SortingMode m_sortingMode;
+ StationListProxyModel::SortingMode m_sortingMode;
};
#endif // STATIONLISTVIEW_H