Moved SortingMode enum to StationListProxyModel
authorLuciano Montanaro <mikelima@cirulla.net>
Sun, 17 Jul 2011 12:37:20 +0000 (14:37 +0200)
committerLuciano Montanaro <mikelima@cirulla.net>
Tue, 27 Dec 2011 22:16:45 +0000 (23:16 +0100)
Refactoring to help the QML port.

application/stationlistproxymodel.h
application/stationlistview.cpp
application/stationlistview.h

index f228752..e0f14c2 100644 (file)
@@ -11,8 +11,16 @@ class StationListProxyModel : public QSortFilterProxyModel
 {
     Q_OBJECT
     Q_PROPERTY(QString searchPattern READ searchPattern WRITE setSearchPattern)
-
+    Q_ENUMS(SortingMode)
 public:
+
+    enum SortingMode {
+        NoSorting,
+        AlphaSorting,
+        DistanceSorting,
+        RecentUsageSorting
+    };
+
     explicit StationListProxyModel(QObject *parent = 0);
 
     QString searchPattern() const;
index 6d7c100..f8dfc78 100644 (file)
@@ -41,7 +41,7 @@ StationListView::StationListView(StationListModel *model, QWidget *parent) :
     filterModel(new StationListProxyModel(this)),
     keyPressForwarder(new KeyPressForwarder(this)),
     positionInfoSource(QGeoPositionInfoSource::createDefaultSource(this)),
-    m_sortingMode(NoSorting)
+    m_sortingMode(StationListProxyModel::NoSorting)
 
 {
     ui->setupUi(this);
@@ -83,9 +83,10 @@ StationListView::StationListView(StationListModel *model, QWidget *parent) :
     }
 
     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);
@@ -123,15 +124,15 @@ void StationListView::updatePosition(const QtMobility::QGeoPositionInfo &update)
 
 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";
     }
 
@@ -141,7 +142,7 @@ void StationListView::handleSortingChange(QAction *action)
     setSortingMode(mode);
 }
 
-void StationListView::setSortingMode(StationListView::SortingMode mode)
+void StationListView::setSortingMode(StationListProxyModel::SortingMode mode)
 {
     qDebug() << "setSorting Mode" << mode << "called";
     if (mode != m_sortingMode) {
@@ -149,23 +150,23 @@ void StationListView::setSortingMode(StationListView::SortingMode mode)
         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();
@@ -176,7 +177,7 @@ void StationListView::setSortingMode(StationListView::SortingMode mode)
     }
 }
 
-StationListView::SortingMode StationListView::sortingMode()
+StationListProxyModel::SortingMode StationListView::sortingMode()
 {
     return m_sortingMode;
 }
index 88c47ca..409ad9d 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef STATIONLISTVIEW_H
 #define STATIONLISTVIEW_H
 
+#include "stationlistproxymodel.h"
+
 #include <QMainWindow>
 #include <QModelIndex>
 #include <QGeoPositionInfoSource>
@@ -23,26 +25,18 @@ QTM_USE_NAMESPACE
 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);
@@ -61,7 +55,7 @@ private slots:
     StationListProxyModel *filterModel;
     KeyPressForwarder *keyPressForwarder;
     QGeoPositionInfoSource *positionInfoSource;
-    SortingMode m_sortingMode;
+    StationListProxyModel::SortingMode m_sortingMode;
 };
 
 #endif // STATIONLISTVIEW_H