From f9aeb825c605ec4ca8b95aae0be1b441ca8ceb91 Mon Sep 17 00:00:00 2001 From: David Faure Date: Mon, 21 Jan 2008 16:12:25 +0000 Subject: [PATCH] merge -c764347 by Peter, needed for dolphinpart bugfixing svn path=/branches/KDE/4.0/kdebase/apps/; revision=764379 --- src/dolphinpart.cpp | 16 ++-------------- src/dolphinpart.h | 5 ----- src/dolphinview.cpp | 18 +++++++++++++++++- src/dolphinview.h | 28 ++++++++++++++++++---------- src/dolphinviewcontainer.cpp | 3 ++- 5 files changed, 39 insertions(+), 31 deletions(-) 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 ddb7185f0..4a1fbb927 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -61,7 +61,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), @@ -127,6 +128,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() @@ -1138,6 +1149,11 @@ void DolphinView::slotPreviewJobFinished(KJob* job) m_previewJob = 0; } +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 60e29b4d5..485748751 100644 --- a/src/dolphinview.h +++ b/src/dolphinview.h @@ -119,21 +119,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(); @@ -616,6 +618,12 @@ private slots: */ void slotPreviewJobFinished(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&)), -- 2.47.3