From: Peter Penz Date: Mon, 21 Jan 2008 14:16:31 +0000 (+0000) Subject: Cleanup: let the DolphinView be aware about the used action collection. This will... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/1daef0dc52a18b03e2bc5b4ce85944356b6b5da3?ds=inline Cleanup: let the DolphinView be aware about the used action collection. This will allow us cleaning up some code in DolphinMainWindow and will make it easier sharing code with DolphinPart. CCMAIL: faure@kde.org svn path=/trunk/KDE/kdebase/apps/; revision=764347 --- diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 1157124f9..e0386467e 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -59,7 +59,6 @@ #include #include #include -#include #include #include #include @@ -423,12 +422,6 @@ void DolphinMainWindow::readProperties(const KConfigGroup& group) } } -void DolphinMainWindow::createDir() -{ - const KUrl& url = m_activeViewContainer->view()->url(); - KonqOperations::newDir(this, url); -} - void DolphinMainWindow::updateNewMenu() { m_newMenu->slotCheckUpToDate(); @@ -992,13 +985,6 @@ void DolphinMainWindow::setupActions() connect(menu, SIGNAL(aboutToShow()), this, SLOT(updateNewMenu())); - // This action doesn't appear in the GUI, it's for the shortcut only. - // KNewMenu takes care of the GUI stuff. - KAction* newDirAction = actionCollection()->addAction("create_dir"); - newDirAction->setText(i18n("Create Folder...")); - connect(newDirAction, SIGNAL(triggered()), SLOT(createDir())); - newDirAction->setShortcut(Qt::Key_F10); - KAction* newWindow = actionCollection()->addAction("new_window"); newWindow->setIcon(KIcon("window-new")); newWindow->setText(i18nc("@action:inmenu File", "New &Window")); diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h index 43dc2248a..f757520c3 100644 --- a/src/dolphinmainwindow.h +++ b/src/dolphinmainwindow.h @@ -163,9 +163,6 @@ protected: virtual void readProperties(const KConfigGroup& group); private slots: - /** Opens the dialog for creating a directory. */ - void createDir(); - /** Updates the 'Create New...' sub menu. */ void updateNewMenu(); diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index d26f14061..235f176cd 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -70,7 +70,8 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QStringLi KUrl(), m_dirLister, m_dolphinModel, - m_proxyModel); + m_proxyModel, + actionCollection()); setWidget(m_view); setXMLFile("dolphinpart.rc"); @@ -144,14 +145,6 @@ void DolphinPart::createActions() propertiesAction->setShortcut(Qt::ALT+Qt::Key_Return); connect(propertiesAction, SIGNAL(triggered()), SLOT(slotProperties())); - // This action doesn't appear in the GUI, it's for the shortcut only. - // KNewMenu takes care of the GUI stuff. - KAction* newDirAction = actionCollection()->addAction( "create_dir" ); - newDirAction->setText( i18n("Create Folder..." ) ); - connect(newDirAction, SIGNAL(triggered()), SLOT(slotNewDir())); - newDirAction->setShortcut(Qt::Key_F10); - widget()->addAction(newDirAction); - // Go menu QActionGroup* goActionGroup = new QActionGroup(this); @@ -414,11 +407,6 @@ void DolphinPart::slotTrashActivated(Qt::MouseButtons, Qt::KeyboardModifiers mod m_view->trashSelectedItems(); } -void DolphinPart::slotNewDir() -{ - KonqOperations::newDir(widget(), url()); -} - void DolphinPart::slotEditMimeType() { const KFileItemList items = m_view->selectedItems(); diff --git a/src/dolphinpart.h b/src/dolphinpart.h index 300924a8d..3e3c73f66 100644 --- a/src/dolphinpart.h +++ b/src/dolphinpart.h @@ -115,11 +115,6 @@ private Q_SLOTS: */ void slotTrashActivated(Qt::MouseButtons, Qt::KeyboardModifiers); - /** - * Connected to the key shortcut for "new directory" (F10) - */ - void slotNewDir(); - /** * Connected to all "Go" menu actions provided by DolphinPart */ diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 09dd153a0..819420210 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -62,7 +62,8 @@ DolphinView::DolphinView(QWidget* parent, const KUrl& url, KDirLister* dirLister, DolphinModel* dolphinModel, - DolphinSortFilterProxyModel* proxyModel) : + DolphinSortFilterProxyModel* proxyModel, + KActionCollection* actionCollection) : QWidget(parent), m_active(true), m_showPreview(false), @@ -122,6 +123,16 @@ DolphinView::DolphinView(QWidget* parent, applyViewProperties(url); m_topLayout->addWidget(itemView()); + + Q_ASSERT(actionCollection != 0); + if (actionCollection->action("create_dir") == 0) { + // This action doesn't appear in the GUI, it's for the shortcut only. + // KNewMenu takes care of the GUI stuff. + KAction* newDirAction = actionCollection->addAction("create_dir"); + newDirAction->setText(i18n("Create Folder...")); + connect(newDirAction, SIGNAL(triggered()), SLOT(createDir())); + newDirAction->setShortcut(Qt::Key_F10); + } } DolphinView::~DolphinView() @@ -1026,6 +1037,11 @@ void DolphinView::slotDeleteFileFinished(KJob* job) } } +void DolphinView::createDir() +{ + KonqOperations::newDir(this, url()); +} + void DolphinView::cutSelectedItems() { QMimeData* mimeData = new QMimeData(); diff --git a/src/dolphinview.h b/src/dolphinview.h index fa5b18471..b42f57007 100644 --- a/src/dolphinview.h +++ b/src/dolphinview.h @@ -47,6 +47,7 @@ class DolphinModel; class DolphinSortFilterProxyModel; class IconManager; class KAction; +class KActionCollection; class KDirLister; class KFileItemDelegate; class KUrl; @@ -116,21 +117,23 @@ public: }; /** - * @param parent Parent widget of the view. - * @param url Specifies the content which should be shown. - * @param dirLister Used directory lister. The lister is not owned - * by the view and won't get deleted. - * @param dolphinModel Used directory model. The model is not owned - * by the view and won't get deleted. - * @param proxyModel Used proxy model which specifies the sorting. The - * model is not owned by the view and won't get - * deleted. + * @param parent Parent widget of the view. + * @param url Specifies the content which should be shown. + * @param dirLister Used directory lister. The lister is not owned + * by the view and won't get deleted. + * @param dolphinModel Used directory model. The model is not owned + * by the view and won't get deleted. + * @param proxyModel Used proxy model which specifies the sorting. The + * model is not owned by the view and won't get + * deleted. + * @param actionCollection Action collection which contains the menu actions. */ DolphinView(QWidget* parent, const KUrl& url, KDirLister* dirLister, DolphinModel* dolphinModel, - DolphinSortFilterProxyModel* proxyModel); + DolphinSortFilterProxyModel* proxyModel, + KActionCollection* actionCollection); virtual ~DolphinView(); @@ -591,6 +594,12 @@ private slots: */ void slotDeleteFileFinished(KJob* job); + /** + * Opens the dialog for creating a directory. Is connected + * with the key shortcut for "new directory" (F10). + */ + void createDir(); + private: void loadDirectory(const KUrl& url, bool reload = false); diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index a1846dc75..b9caa7b8e 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -115,7 +115,8 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow, url, m_dirLister, m_dolphinModel, - m_proxyModel); + m_proxyModel, + mainWindow->actionCollection()); connect(m_view, SIGNAL(urlChanged(const KUrl&)), m_urlNavigator, SLOT(setUrl(const KUrl&))); connect(m_view, SIGNAL(requestContextMenu(KFileItem, const KUrl&)),