┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuel Pescosta <[email protected]>2013-08-16 20:22:33 +0200
committerEmmanuel Pescosta <[email protected]>2013-08-16 20:22:33 +0200
commit804e83f893d04ce4bed150d4e6bd39db2374d878 (patch)
tree0968119e2ca88219d531bd8f5640ca273a8bba24
parentb6477f4e653dc6f04a7413cd1c353fb486421526 (diff)
Cut the ropes between DolphinMainWindow and DolphinNewFileMenu. Error handling is now done via signals.
REVIEW: 111989
-rw-r--r--src/dolphincontextmenu.cpp3
-rw-r--r--src/dolphincontextmenu.h3
-rw-r--r--src/dolphinmainwindow.cpp6
-rw-r--r--src/dolphinnewfilemenu.cpp11
-rw-r--r--src/dolphinnewfilemenu.h9
5 files changed, 17 insertions, 15 deletions
diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp
index f4b469886..3deeb38cd 100644
--- a/src/dolphincontextmenu.cpp
+++ b/src/dolphincontextmenu.cpp
@@ -196,7 +196,7 @@ void DolphinContextMenu::openItemContextMenu()
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();
@@ -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()));
+ 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"));
diff --git a/src/dolphincontextmenu.h b/src/dolphincontextmenu.h
index 180f91787..c9840eae5 100644
--- a/src/dolphincontextmenu.h
+++ b/src/dolphincontextmenu.h
@@ -95,6 +95,9 @@ protected:
virtual void keyPressEvent(QKeyEvent *ev);
virtual void keyReleaseEvent(QKeyEvent *ev);
+signals:
+ void errorMessage(const QString& error);
+
private:
void openTrashContextMenu();
void openTrashItemContextMenu();
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 73001bf54..5cc608fd4 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -1297,6 +1297,8 @@ void DolphinMainWindow::openContextMenu(const QPoint& pos,
{
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) {
@@ -1482,13 +1484,15 @@ DolphinViewContainer* DolphinMainWindow::createViewContainer(const KUrl& url, QW
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()));
+ connect(m_newFileMenu, SIGNAL(errorMessage(QString)),
+ this, SLOT(showErrorMessage(QString)));
KAction* newWindow = actionCollection()->addAction("new_window");
newWindow->setIcon(KIcon("window-new"));
diff --git a/src/dolphinnewfilemenu.cpp b/src/dolphinnewfilemenu.cpp
index 9d9baabe2..480889f72 100644
--- a/src/dolphinnewfilemenu.cpp
+++ b/src/dolphinnewfilemenu.cpp
@@ -20,17 +20,13 @@
#include "dolphinnewfilemenu.h"
-#include "dolphinmainwindow.h"
-#include "dolphinviewcontainer.h"
#include "views/dolphinnewfilemenuobserver.h"
-#include "views/dolphinview.h"
#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);
}
@@ -43,8 +39,7 @@ DolphinNewFileMenu::~DolphinNewFileMenu()
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);
}
diff --git a/src/dolphinnewfilemenu.h b/src/dolphinnewfilemenu.h
index 0d336080b..ae5881366 100644
--- a/src/dolphinnewfilemenu.h
+++ b/src/dolphinnewfilemenu.h
@@ -23,7 +23,6 @@
#include <KNewFileMenu>
-class DolphinMainWindow;
class KJob;
/**
@@ -39,15 +38,15 @@ class DolphinNewFileMenu : public KNewFileMenu
Q_OBJECT
public:
- DolphinNewFileMenu(DolphinMainWindow* parent);
+ DolphinNewFileMenu(KActionCollection* collection, QObject* parent);
virtual ~DolphinNewFileMenu();
+signals:
+ void errorMessage(const QString& error);
+
protected slots:
/** @see KNewFileMenu::slotResult() */
virtual void slotResult(KJob* job);
-
-private:
- DolphinMainWindow* m_mainWin;
};
#endif