void ActionManager::parseNavigationActions(const QString &result) { if (result== Settings::startNavigationTrigger()) { qDebug() << "Starting navigation"; emit enterNavigationMode(); } if (result== Settings::stopNavigationTrigger()) { qDebug() << "Stopping current navigation..."; QDBusMessage m = QDBusMessage::createMethodCall("com.nokia.Drive", "/org/maemo/m", "com.nokia.MApplicationIf", "exit"); QDBusConnection::sessionBus().send(m); } if (currentMode != Navigation) return; Command *c = destinations->getCommand(result); if (c) { //navigation QString destination = static_cast<DestinationCommand*>(c)->destination(); qDebug() << "Navigating to: " << destination; QProcess::startDetached("drive-qml", QStringList() << "geo:0,0?searchTerm="+destination+"&action=driveTo"); } }
void HierarchicalDocumentLauncherView::resetSelection() { if (icons && model && icons->model()->rowCount()) { LauncherView::resetSelection(); selectedFilterLabel->setText(QString()); selectedFilters.clear(); icons->setModel(modelTypes); enterNavigationMode(); } }
// performs the navigation i.e. goes from mime type view to category view to document view and back void HierarchicalDocumentLauncherView::filterNavigate(FilterNavigation navigation, QModelIndex selectedItem) { QContentFilter lastFilter; if (navigation == NavigateBackward) { if (!selectedFilters.isEmpty()) { // pop the last filter from the list lastFilter = selectedFilters.takeLast(); enterNavigationMode(); } else exitNavigationMode(); } else if (navigation == NavigateForward) { if (selectedItem.isValid()) { // push the newly selected filter to the list AbstractContentFilterPropertyListModel *model = qobject_cast<AbstractContentFilterPropertyListModel *>(icons->model()); if (model) selectedFilters.append(model->value(selectedItem.row())); } } switch (selectedFilters.count()) { case 0: // show types icons->setModel(modelTypes); selectedFilterLabel->setText(QString()); break; case 1: // show categories icons->setModel(modelCategories); selectedFilterLabel->setText(modelTypes->findPropertyName(selectedFilters.first())); break; default: // both type and category have been selected selectedFilterLabel->setText(modelTypes->findPropertyName(selectedFilters.first()) + " / " + modelCategories->findPropertyName(selectedFilters.at(1))); // refresh filters of contentset QContentFilter newFilter(QContent::Document); foreach (QContentFilter filter, selectedFilters) { if (!filter.isValid()) continue; newFilter &= filter; } // filter the content set contentSet->setCriteria(newFilter); // show filtered docs icons->setModel(bpModel); exitNavigationMode(); break; } setCurrentItem(lastFilter); }