*/
+#include <QtGlobal>
#include <QSortFilterProxyModel>
#include <QGeoCoordinate>
#include <QGeoPositionInfoSource>
+#include <QMetaType>
#include <QStringList>
+#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))
QTM_USE_NAMESPACE
+#endif
class StationListProxyModel : public QSortFilterProxyModel
{
explicit StationListProxyModel(QObject *parent = 0);
+ Q_INVOKABLE Qt::ItemFlags flags(const QModelIndex &index) const;
+ Q_INVOKABLE bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+
QString searchPattern() const;
void setSearchPattern(const QString &pattern);
Q_INVOKABLE void setUserPosition(const QGeoCoordinate &pos);
Q_INVOKABLE void setRecentStations(const QStringList &stations);
Q_INVOKABLE void setRecentOnlyFilter(bool);
+ Q_INVOKABLE void setFavoriteStations(const QStringList &stations);
signals:
void sortingModeChanged(SortingMode mode);
virtual bool filterAcceptsRow(int sourceRow,
const QModelIndex &sourceParent) const;
+private:
+ void forceSortingMode(SortingMode mode);
+
private slots:
void updatePosition(const QGeoPositionInfo &update);
-
+ void updateRecentStations(void);
+ void updateFavoriteStations(void);
private:
QString m_searchPattern;
QGeoPositionInfoSource *positionInfoSource;
bool m_filterRecentOnly;
};
+Q_DECLARE_METATYPE(StationListProxyModel::SortingMode)
+
#endif // STATIONLISTPROXYMODEL_H