]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinviewactionhandler.cpp
Merge remote-tracking branch 'origin/KDE/4.10'
[dolphin.git] / src / views / dolphinviewactionhandler.cpp
index aead11d2502854e4631bac8e23a11609eda854b3..9a9718c3336869693105866c5622200ad0c508b4 100644 (file)
@@ -20,6 +20,8 @@
 
 #include "dolphinviewactionhandler.h"
 
+#include <config-nepomuk.h>
+
 #include "settings/viewpropertiesdialog.h"
 #include "views/dolphinview.h"
 #include "views/zoomlevelinfo.h"
 #include <KNewFileMenu>
 #include <KSelectAction>
 #include <KToggleAction>
-#include <KRun>
 #include <KPropertiesDialog>
+#include <KIcon>
+
+#ifdef HAVE_NEPOMUK
+    #include <Nepomuk2/ResourceManager>
+#endif
 
 #include <KDebug>
 
@@ -131,7 +137,7 @@ void DolphinViewActionHandler::createActions()
     // Well, it's the File menu in dolphinmainwindow and the Edit menu in dolphinpart... :)
     propertiesAction->setText( i18nc("@action:inmenu File", "Properties") );
     propertiesAction->setIcon(KIcon("document-properties"));
-    propertiesAction->setShortcut(Qt::ALT | Qt::Key_Return);
+    propertiesAction->setShortcuts(QList<QKeySequence>() << Qt::ALT + Qt::Key_Return << Qt::ALT + Qt::Key_Enter);
     connect(propertiesAction, SIGNAL(triggered()), SLOT(slotProperties()));
 
     // View menu
@@ -228,10 +234,20 @@ QActionGroup* DolphinViewActionHandler::createFileItemRolesActionGroup(const QSt
     KActionMenu* groupMenu = 0;
     QActionGroup* groupMenuGroup = 0;
 
+    bool nepomukRunning = false;
+    bool indexingEnabled = false;
+#ifdef HAVE_NEPOMUK
+    nepomukRunning = (Nepomuk2::ResourceManager::instance()->initialized());
+    if (nepomukRunning) {
+        KConfig config("nepomukserverrc");
+        indexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", true);
+    }
+#endif
+
     const QList<KFileItemModel::RoleInfo> rolesInfo = KFileItemModel::rolesInformation();
     foreach (const KFileItemModel::RoleInfo& info, rolesInfo) {
-        if (!isSortGroup && info.role == "name") {
-            // It should not be possible to hide the "name" role
+        if (!isSortGroup && info.role == "text") {
+            // It should not be possible to hide the "text" role
             continue;
         }
 
@@ -265,6 +281,11 @@ QActionGroup* DolphinViewActionHandler::createFileItemRolesActionGroup(const QSt
         action->setText(info.translation);
         action->setData(info.role);
 
+        const bool enable = (!info.requiresNepomuk && !info.requiresIndexer) ||
+                            (info.requiresNepomuk && nepomukRunning) ||
+                            (info.requiresIndexer && indexingEnabled);
+        action->setEnabled(enable);
+
         if (isSortGroup) {
             m_sortByActions.insert(info.role, action);
         } else {
@@ -293,14 +314,7 @@ void DolphinViewActionHandler::slotRename()
 void DolphinViewActionHandler::slotTrashActivated(Qt::MouseButtons, Qt::KeyboardModifiers modifiers)
 {
     emit actionBeingHandled();
-    // Note: kde3's konq_mainwindow.cpp used to check
-    // reason == KAction::PopupMenuActivation && ...
-    // but this isn't supported anymore
-    if (modifiers & Qt::ShiftModifier) {
-        m_currentView->deleteSelectedItems();
-    } else {
-        m_currentView->trashSelectedItems();
-    }
+    m_currentView->trashSelectedItems();
 }
 
 void DolphinViewActionHandler::slotDeleteItems()
@@ -507,8 +521,10 @@ void DolphinViewActionHandler::slotSortRoleChanged(const QByteArray& role)
     if (action) {
         action->setChecked(true);
 
-        QAction* sortByMenu =  m_actionCollection->action("sort");
-        sortByMenu->setIcon(KIcon(action->icon()));
+        if (!action->icon().isNull()) {
+            QAction* sortByMenu = m_actionCollection->action("sort");
+            sortByMenu->setIcon(KIcon(action->icon()));
+        }
     }
 }