]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Cut the ropes between DolphinMainWindow and DolphinNewFileMenu. Error handling is...
authorEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Fri, 16 Aug 2013 18:22:33 +0000 (20:22 +0200)
committerEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Fri, 16 Aug 2013 18:22:33 +0000 (20:22 +0200)
REVIEW: 111989

src/dolphincontextmenu.cpp
src/dolphincontextmenu.h
src/dolphinmainwindow.cpp
src/dolphinnewfilemenu.cpp
src/dolphinnewfilemenu.h

index f4b46988619e7bde82c4b6db588b2ce5f60d3386..3deeb38cd5df6274267568abed979489b486ba4c 100644 (file)
@@ -196,7 +196,7 @@ void DolphinContextMenu::openItemContextMenu()
     if (m_selectedItems.count() == 1) {
         if (m_fileInfo.isDir()) {
             // setup 'Create New' menu
     if (m_selectedItems.count() == 1) {
         if (m_fileInfo.isDir()) {
             // setup 'Create New' menu
-            DolphinNewFileMenu* newFileMenu = new DolphinNewFileMenu(m_mainWindow);
+            DolphinNewFileMenu* newFileMenu = new DolphinNewFileMenu(m_mainWindow->actionCollection(), this);
             const DolphinView* view = m_mainWindow->activeViewContainer()->view();
             newFileMenu->setViewShowsHiddenFiles(view->hiddenFilesShown());
             newFileMenu->checkUpToDate();
             const DolphinView* view = m_mainWindow->activeViewContainer()->view();
             newFileMenu->setViewShowsHiddenFiles(view->hiddenFilesShown());
             newFileMenu->checkUpToDate();
@@ -204,6 +204,7 @@ void DolphinContextMenu::openItemContextMenu()
             newFileMenu->setEnabled(selectedItemsProps.supportsWriting());
             connect(newFileMenu, SIGNAL(fileCreated(KUrl)), newFileMenu, SLOT(deleteLater()));
             connect(newFileMenu, SIGNAL(directoryCreated(KUrl)), newFileMenu, SLOT(deleteLater()));
             newFileMenu->setEnabled(selectedItemsProps.supportsWriting());
             connect(newFileMenu, SIGNAL(fileCreated(KUrl)), newFileMenu, SLOT(deleteLater()));
             connect(newFileMenu, SIGNAL(directoryCreated(KUrl)), newFileMenu, SLOT(deleteLater()));
+            connect(newFileMenu, SIGNAL(errorMessage(QString)), this, SIGNAL(errorMessage(QString)));
 
             KMenu* menu = newFileMenu->menu();
             menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New"));
 
             KMenu* menu = newFileMenu->menu();
             menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New"));
index 180f91787c0f3ccb842bc900d878185940e7f9c7..c9840eae5f9732163f0e108b0b33bab0949c2be6 100644 (file)
@@ -95,6 +95,9 @@ protected:
     virtual void keyPressEvent(QKeyEvent *ev);
     virtual void keyReleaseEvent(QKeyEvent *ev);
 
     virtual void keyPressEvent(QKeyEvent *ev);
     virtual void keyReleaseEvent(QKeyEvent *ev);
 
+signals:
+    void errorMessage(const QString& error);
+
 private:
     void openTrashContextMenu();
     void openTrashItemContextMenu();
 private:
     void openTrashContextMenu();
     void openTrashItemContextMenu();
index 73001bf54e957c967b8203fc06af7556005f8d12..5cc608fd490e4d547cb613665977f2ba68f5f4ab 100644 (file)
@@ -1297,6 +1297,8 @@ void DolphinMainWindow::openContextMenu(const QPoint& pos,
 {
     QWeakPointer<DolphinContextMenu> contextMenu = new DolphinContextMenu(this, pos, item, url);
     contextMenu.data()->setCustomActions(customActions);
 {
     QWeakPointer<DolphinContextMenu> contextMenu = new DolphinContextMenu(this, pos, item, url);
     contextMenu.data()->setCustomActions(customActions);
+    connect(contextMenu.data(), SIGNAL(errorMessage(QString)),
+            this, SLOT(showErrorMessage(QString)));
     const DolphinContextMenu::Command command = contextMenu.data()->open();
 
     switch (command) {
     const DolphinContextMenu::Command command = contextMenu.data()->open();
 
     switch (command) {
@@ -1482,13 +1484,15 @@ DolphinViewContainer* DolphinMainWindow::createViewContainer(const KUrl& url, QW
 void DolphinMainWindow::setupActions()
 {
     // setup 'File' menu
 void DolphinMainWindow::setupActions()
 {
     // setup 'File' menu
-    m_newFileMenu = new DolphinNewFileMenu(this);
+    m_newFileMenu = new DolphinNewFileMenu(actionCollection(), this);
     KMenu* menu = m_newFileMenu->menu();
     menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New"));
     menu->setIcon(KIcon("document-new"));
     m_newFileMenu->setDelayed(false);
     connect(menu, SIGNAL(aboutToShow()),
             this, SLOT(updateNewMenu()));
     KMenu* menu = m_newFileMenu->menu();
     menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New"));
     menu->setIcon(KIcon("document-new"));
     m_newFileMenu->setDelayed(false);
     connect(menu, SIGNAL(aboutToShow()),
             this, SLOT(updateNewMenu()));
+    connect(m_newFileMenu, SIGNAL(errorMessage(QString)),
+            this, SLOT(showErrorMessage(QString)));
 
     KAction* newWindow = actionCollection()->addAction("new_window");
     newWindow->setIcon(KIcon("window-new"));
 
     KAction* newWindow = actionCollection()->addAction("new_window");
     newWindow->setIcon(KIcon("window-new"));
index 9d9baabe2b6911fee5c0c3debba615e6fb242f1c..480889f727bfe6fccf7171a95b2bdc95ee0103a9 100644 (file)
 
 #include "dolphinnewfilemenu.h"
 
 
 #include "dolphinnewfilemenu.h"
 
-#include "dolphinmainwindow.h"
-#include "dolphinviewcontainer.h"
 #include "views/dolphinnewfilemenuobserver.h"
 #include "views/dolphinnewfilemenuobserver.h"
-#include "views/dolphinview.h"
 
 #include <KActionCollection>
 #include <KIO/Job>
 
 
 #include <KActionCollection>
 #include <KIO/Job>
 
-DolphinNewFileMenu::DolphinNewFileMenu(DolphinMainWindow* parent) :
-    KNewFileMenu(parent->actionCollection(), "create_new", parent),
-    m_mainWin(parent)
+DolphinNewFileMenu::DolphinNewFileMenu(KActionCollection* collection, QObject* parent) :
+    KNewFileMenu(collection, "create_new", parent)
 {
     DolphinNewFileMenuObserver::instance().attach(this);
 }
 {
     DolphinNewFileMenuObserver::instance().attach(this);
 }
@@ -43,8 +39,7 @@ DolphinNewFileMenu::~DolphinNewFileMenu()
 void DolphinNewFileMenu::slotResult(KJob* job)
 {
     if (job->error()) {
 void DolphinNewFileMenu::slotResult(KJob* job)
 {
     if (job->error()) {
-        DolphinViewContainer* container = m_mainWin->activeViewContainer();
-        container->showMessage(job->errorString(), DolphinViewContainer::Error);
+        emit errorMessage(job->errorString());
     } else {
         KNewFileMenu::slotResult(job);
     }
     } else {
         KNewFileMenu::slotResult(job);
     }
index 0d336080baac061724739a625fd346d45b6fd228..ae5881366dd8b13257f8b45d1fc50b8b09ddc296 100644 (file)
@@ -23,7 +23,6 @@
 
 #include <KNewFileMenu>
 
 
 #include <KNewFileMenu>
 
-class DolphinMainWindow;
 class KJob;
 
 /**
 class KJob;
 
 /**
@@ -39,15 +38,15 @@ class DolphinNewFileMenu : public KNewFileMenu
     Q_OBJECT
 
 public:
     Q_OBJECT
 
 public:
-    DolphinNewFileMenu(DolphinMainWindow* parent);
+    DolphinNewFileMenu(KActionCollection* collection, QObject* parent);
     virtual ~DolphinNewFileMenu();
 
     virtual ~DolphinNewFileMenu();
 
+signals:
+    void errorMessage(const QString& error);
+
 protected slots:
     /** @see KNewFileMenu::slotResult() */
     virtual void slotResult(KJob* job);
 protected slots:
     /** @see KNewFileMenu::slotResult() */
     virtual void slotResult(KJob* job);
-
-private:
-    DolphinMainWindow* m_mainWin;
 };
 
 #endif
 };
 
 #endif