stationListModel(model),
filterModel(new StationListProxyModel(this)),
keyPressForwarder(new KeyPressForwarder(this)),
- positionInfoSource(QGeoPositionInfoSource::createDefaultSource(this)),
m_sortingMode(StationListProxyModel::NoSorting)
-
{
ui->setupUi(this);
#ifdef Q_WS_MAEMO_5
connect(viewSelectionGroup, SIGNAL(triggered(QAction*)),
SLOT(handleSortingChange(QAction*)));
- if (positionInfoSource) {
- connect(positionInfoSource, SIGNAL(positionUpdated(QGeoPositionInfo)),
- SLOT(updatePosition(QGeoPositionInfo)));
- }
-
QSettings settings;
StationListProxyModel::SortingMode mode =
static_cast<StationListProxyModel::SortingMode>(
filterModel->setRecentStations(
settings.value("RecentStations").toString().split(","));
setSortingMode(mode);
+ emit sortingModeChanged(mode);
}
qDebug() << "Filtering for" << filter;
}
-void StationListView::updatePosition(const QtMobility::QGeoPositionInfo &update)
-{
- qDebug() << "Position update received" << update;
- filterModel->setUserPosition(update.coordinate());
- filterModel->invalidate();
- filterModel->sort(0);
-}
-
void StationListView::handleSortingChange(QAction *action)
{
StationListProxyModel::SortingMode mode = StationListProxyModel::NoSorting;
{
qDebug() << "setSorting Mode" << mode << "called";
if (mode != m_sortingMode) {
- m_sortingMode = mode;
- filterModel->setRecentOnlyFilter(false);
-
switch (mode) {
case StationListProxyModel::AlphaSorting:
- filterModel->setSortRole(Qt::DisplayRole);
ui->sortByNameAction->setChecked(true);
break;
case StationListProxyModel::DistanceSorting:
- filterModel->setSortRole(StationListModel::PositionRole);
ui->sortByDistanceAction->setChecked(true);
break;
case StationListProxyModel::RecentUsageSorting:
ui->sortRecentFirstAction->setChecked(true);
- filterModel->setRecentOnlyFilter(true);
break;
case StationListProxyModel::NoSorting:
default:
break;
}
- if (mode == StationListProxyModel::DistanceSorting) {
- positionInfoSource->startUpdates();
- } else {
- positionInfoSource->stopUpdates();
- }
- filterModel->invalidate();
- filterModel->sort(0);
- emit sortingModeChanged(mode);
+ m_sortingMode = mode;
+ filterModel->setSortingMode(mode);
+
}
}