]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinpart.cpp
add KCM for the services settings, so that they are also accessible in Konqueror
[dolphin.git] / src / dolphinpart.cpp
index 7fd51f76a4b6eb24d83274bf139b2fac9c4ae26f..882e2f1d3f5dd0fc0056327d37c1f027780f825f 100644 (file)
@@ -62,7 +62,9 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL
 
     m_dirLister = new KDirLister;
     m_dirLister->setAutoUpdate(true);
-    m_dirLister->setMainWindow(parentWidget->window());
+    if (parentWidget) {
+        m_dirLister->setMainWindow(parentWidget->window());
+    }
     m_dirLister->setDelayedMimeTypes(true);
 
     //connect(m_dirLister, SIGNAL(started(KUrl)), this, SLOT(slotStarted()));
@@ -94,16 +96,14 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL
             this, SLOT(slotItemTriggered(KFileItem)));
     connect(m_view, SIGNAL(tabRequested(KUrl)),
             this, SLOT(createNewWindow(KUrl)));
-    connect(m_view, SIGNAL(requestContextMenu(KFileItem,KUrl)),
-            this, SLOT(slotOpenContextMenu(KFileItem,KUrl)));
+    connect(m_view, SIGNAL(requestContextMenu(KFileItem,KUrl,QList<QAction*>)),
+            this, SLOT(slotOpenContextMenu(KFileItem,KUrl,QList<QAction*>)));
     connect(m_view, SIGNAL(selectionChanged(KFileItemList)),
             m_extension, SIGNAL(selectionInfo(KFileItemList)));
     connect(m_view, SIGNAL(selectionChanged(KFileItemList)),
             this, SLOT(slotSelectionChanged(KFileItemList)));
     connect(m_view, SIGNAL(requestItemInfo(KFileItem)),
             this, SLOT(slotRequestItemInfo(KFileItem)));
-    connect(m_view, SIGNAL(urlChanged(KUrl)),
-            this, SLOT(slotUrlChanged(KUrl)));
     connect(m_view, SIGNAL(requestUrlChange(KUrl)),
             this, SLOT(slotRequestUrlChange(KUrl)));
     connect(m_view, SIGNAL(modeChanged()),
@@ -117,7 +117,8 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL
             this, SLOT(updateStatusBar()));
     connect(m_dirLister, SIGNAL(clear()),
             this, SLOT(updateStatusBar()));
-
+    connect(m_view,  SIGNAL(selectionChanged(const KFileItemList)),
+            this, SLOT(updateStatusBar()));
 
     m_actionHandler = new DolphinViewActionHandler(actionCollection(), this);
     m_actionHandler->setCurrentView(m_view);
@@ -334,7 +335,9 @@ void DolphinPart::createNewWindow(const KUrl& url)
     emit m_extension->createNewWindow(url, args);
 }
 
-void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&)
+void DolphinPart::slotOpenContextMenu(const KFileItem& _item,
+                                      const KUrl&,
+                                      const QList<QAction*>& customActions)
 {
     KParts::BrowserExtension::PopupFlags popupFlags = KParts::BrowserExtension::DefaultPopupItems
                                                       | KParts::BrowserExtension::ShowProperties
@@ -352,6 +355,8 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&)
     KParts::BrowserExtension::ActionGroupMap actionGroups;
     QList<QAction *> editActions;
 
+    editActions += customActions;
+
     if (!_item.isNull()) { // only for context menu on one or more items
         bool sDeleting = true;
         bool sMoving = true;
@@ -395,7 +400,6 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&)
             editActions.append(actionCollection()->action("move_to_trash"));
         if (addDel)
             editActions.append(actionCollection()->action("delete"));
-        actionGroups.insert("editactions", editActions);
 
         // Normally KonqPopupMenu only shows the "Create new" subdir in the current view
         // since otherwise the created file would not be visible.
@@ -405,6 +409,8 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&)
 
     }
 
+    actionGroups.insert("editactions", editActions);
+
     // TODO: We should change the signature of the slots (and signals) for being able
     //       to tell for which items we want a popup.
     KFileItemList items = (m_view->selectedItems().count() ? m_view->selectedItems()
@@ -417,12 +423,6 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&)
                                 actionGroups);
 }
 
-// ########### not sure this is still called... seems not.
-void DolphinPart::slotUrlChanged(const KUrl& newUrl)
-{
-    slotRedirection(url(), newUrl);
-}
-
 void DolphinPart::slotRedirection(const KUrl& oldUrl, const KUrl& newUrl)
 {
     //kDebug() << oldUrl << newUrl << "currentUrl=" << url();