+void DolphinPart::createActions()
+{
+ QActionGroup* viewModeActions = new QActionGroup(this);
+ viewModeActions->addAction(DolphinView::iconsModeAction(actionCollection()));
+ viewModeActions->addAction(DolphinView::detailsModeAction(actionCollection()));
+ viewModeActions->addAction(DolphinView::columnsModeAction(actionCollection()));
+ connect(viewModeActions, SIGNAL(triggered(QAction*)), this, SLOT(slotViewModeActionTriggered(QAction*)));
+
+ KAction* renameAction = DolphinView::createRenameAction(actionCollection());
+ connect(renameAction, SIGNAL(triggered()), m_view, SLOT(renameSelectedItems()));
+
+ KAction* moveToTrashAction = DolphinView::createMoveToTrashAction(actionCollection());
+ connect(moveToTrashAction, SIGNAL(triggered(Qt::MouseButtons, Qt::KeyboardModifiers)),
+ this, SLOT(slotTrashActivated(Qt::MouseButtons, Qt::KeyboardModifiers)));
+
+ KAction* deleteAction = DolphinView::createDeleteAction(actionCollection());
+ connect(deleteAction, SIGNAL(triggered()), m_view, SLOT(deleteSelectedItems()));
+
+ // 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);
+}
+
+void DolphinPart::slotSelectionChanged(const KFileItemList& selection)
+{
+ // Yes, DolphinMainWindow has very similar code :/
+ const bool hasSelection = !selection.isEmpty();
+ if (!hasSelection) {
+ stateChanged("has_no_selection");
+ } else {
+ stateChanged("has_selection");
+ }
+
+ QStringList actions;
+ actions << "rename" << "move_to_trash" << "delete";
+ foreach(const QString& actionName, actions) {
+ QAction* action = actionCollection()->action(actionName);
+ Q_ASSERT(action);
+ if (action) {
+ action->setEnabled(hasSelection);
+ }
+ }
+
+ emit m_extension->enableAction("cut", hasSelection);
+ emit m_extension->enableAction("copy", hasSelection);
+}
+
+void DolphinPart::updatePasteAction()
+{
+ QPair<bool, QString> pasteInfo = m_view->pasteInfo();
+ emit m_extension->enableAction( "paste", pasteInfo.first );
+ emit m_extension->setActionText( "paste", pasteInfo.second );
+}
+
+void DolphinPart::updateViewActions()
+{
+ QAction* action = actionCollection()->action(m_view->currentViewModeActionName());
+ if (action != 0) {
+ KToggleAction* toggleAction = static_cast<KToggleAction*>(action);
+ toggleAction->setChecked(true);
+ }
+}
+