]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinpart.cpp
Provide the "sort by" actions in dolphinpart (konqueror); share and simplify the...
[dolphin.git] / src / dolphinpart.cpp
index b6f2698c3df018e96313a4537ffa3b536113c9a1..16caae9d69e85339bfc06ef3bdfe3f625320e73a 100644 (file)
@@ -93,8 +93,7 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QStringLi
     connect(m_view, SIGNAL(urlChanged(KUrl)),
             this, SLOT(slotUrlChanged(KUrl)));
     connect(m_view, SIGNAL(modeChanged()),
-            this, SLOT(updateViewActions()));
-    // TODO slotSortingChanged
+            this, SIGNAL(viewModeChanged())); // relay signal
 
     m_actionHandler = new DolphinViewActionHandler(actionCollection(), this);
     m_actionHandler->setCurrentView(m_view);
@@ -104,12 +103,9 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QStringLi
             this, SLOT(updatePasteAction()));
 
     createActions();
-    updateViewActions();
+    m_actionHandler->updateViewActions();
     slotSelectionChanged(KFileItemList()); // initially disable selection-dependent actions
 
-    // TODO provide the viewmode actions in the menu, merged with the existing view-mode-actions somehow
-    // [Q_PROPERTY introspection?]
-
     // TODO sort_by_* actions
 
     // TODO there was a "always open a new window" (when clicking on a directory) setting in konqueror
@@ -123,12 +119,6 @@ DolphinPart::~DolphinPart()
 
 void DolphinPart::createActions()
 {
-    QActionGroup* viewModeActions = new QActionGroup(this);
-    viewModeActions->addAction(DolphinView::iconsModeAction(actionCollection()));
-    viewModeActions->addAction(DolphinView::detailsModeAction(actionCollection()));
-    viewModeActions->addAction(DolphinView::columnsModeAction(actionCollection()));
-    connect(viewModeActions, SIGNAL(triggered(QAction*)), this, SLOT(slotViewModeActionTriggered(QAction*)));
-
     KAction *editMimeTypeAction = actionCollection()->addAction( "editMimeType" );
     editMimeTypeAction->setText( i18nc("@action:inmenu Edit", "&Edit File Type..." ) );
     connect(editMimeTypeAction, SIGNAL(triggered()), SLOT(slotEditMimeType()));
@@ -210,15 +200,6 @@ void DolphinPart::updatePasteAction()
     emit m_extension->setActionText( "paste", pasteInfo.second );
 }
 
-void DolphinPart::updateViewActions()
-{
-    m_actionHandler->updateViewActions();
-    QAction* action = actionCollection()->action(m_view->currentViewModeActionName());
-    if (action != 0) {
-        action->setChecked(true);
-    }
-}
-
 KAboutData* DolphinPart::createAboutData()
 {
     return new KAboutData("dolphinpart", "dolphin", ki18nc("@title", "Dolphin Part"), "0.1");
@@ -356,12 +337,6 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&)
     }
 }
 
-void DolphinPart::slotViewModeActionTriggered(QAction* action)
-{
-    const DolphinView::Mode mode = action->data().value<DolphinView::Mode>();
-    m_view->setMode(mode);
-}
-
 void DolphinPart::slotUrlChanged(const KUrl& url)
 {
     if (m_view->url() != url) {
@@ -408,4 +383,16 @@ void DolphinPart::slotProperties()
     }
 }
 
+void DolphinPart::setCurrentViewMode(const QString& viewModeName)
+{
+    QAction* action = actionCollection()->action(viewModeName);
+    Q_ASSERT(action);
+    action->trigger();
+}
+
+QString DolphinPart::currentViewMode() const
+{
+    return m_actionHandler->currentViewModeActionName();
+}
+
 #include "dolphinpart.moc"