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
This commit is contained in:
Peter Penz 2008-01-21 14:16:31 +00:00
parent 37d4fa2d15
commit 1daef0dc52
7 changed files with 40 additions and 48 deletions

View file

@ -59,7 +59,6 @@
#include <kmenu.h>
#include <kmenubar.h>
#include <kmessagebox.h>
#include <konq_operations.h>
#include <konqmimedata.h>
#include <kpropertiesdialog.h>
#include <kprotocolinfo.h>
@ -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"));

View file

@ -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();

View file

@ -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();

View file

@ -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
*/

View file

@ -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();

View file

@ -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);

View file

@ -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&)),