Ejemplo n.º 1
0
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);
}