+void DolphinContextMenu::openViewportContextMenu()
+{
+ Q_ASSERT(m_fileInfo == 0);
+ KMenu* popup = new KMenu(m_mainWindow);
+
+ // setup 'Create New' menu
+ KNewMenu* newMenu = m_mainWindow->newMenu();
+ newMenu->slotCheckUpToDate();
+ newMenu->setPopupFiles(m_baseUrl);
+ popup->addMenu(newMenu->menu());
+ popup->addSeparator();
+
+ QAction* pasteAction = m_mainWindow->actionCollection()->action(KStandardAction::stdName(KStandardAction::Paste));
+ popup->addAction(pasteAction);
+
+ // setup 'View Mode' menu
+ KMenu* viewModeMenu = new KMenu(i18n("View Mode"));
+
+ QAction* iconsMode = m_mainWindow->actionCollection()->action("icons");
+ viewModeMenu->addAction(iconsMode);
+
+ QAction* detailsMode = m_mainWindow->actionCollection()->action("details");
+ viewModeMenu->addAction(detailsMode);
+
+ QAction* columnsMode = m_mainWindow->actionCollection()->action("columns");
+ viewModeMenu->addAction(columnsMode);
+
+ QAction* previewsMode = m_mainWindow->actionCollection()->action("previews");
+ viewModeMenu->addAction(previewsMode);
+
+ popup->addMenu(viewModeMenu);
+
+ QAction* toggleViewsAction = 0;
+ if (m_mainWindow->isSplit()) {
+ toggleViewsAction = popup->addAction(i18n("Toggle Views"));
+ }
+
+ popup->addSeparator();
+
+ QAction* bookmarkAction = popup->addAction(KIcon("bookmark-folder"), i18n("Bookmark This Folder..."));
+ popup->addSeparator();
+
+ QAction* propertiesAction = popup->addAction(i18n("Properties"));
+
+ QAction* action = popup->exec(QCursor::pos());
+ if (action == propertiesAction) {
+ const KUrl& url = m_mainWindow->activeViewContainer()->url();
+ KPropertiesDialog dialog(url);
+ dialog.exec();
+ } else if (action == bookmarkAction) {
+ const KUrl& url = m_mainWindow->activeViewContainer()->url();
+ if (url.isValid()) {
+ DolphinSettings::instance().placesModel()->addPlace(url.fileName(), url);
+ }
+ } else if ((toggleViewsAction != 0) && (action == toggleViewsAction)) {
+ m_mainWindow->toggleViews();
+ }
+
+ popup->deleteLater();
+}
+
+void DolphinContextMenu::insertDefaultItemActions(KMenu* popup)
+{
+ Q_ASSERT(popup != 0);
+ const KActionCollection* collection = m_mainWindow->actionCollection();
+
+ // insert 'Cut', 'Copy' and 'Paste'
+ QAction* cutAction = collection->action(KStandardAction::stdName(KStandardAction::Cut));
+ QAction* copyAction = collection->action(KStandardAction::stdName(KStandardAction::Copy));
+ QAction* pasteAction = collection->action(KStandardAction::stdName(KStandardAction::Paste));
+
+ popup->addAction(cutAction);
+ popup->addAction(copyAction);
+ popup->addAction(pasteAction);
+ popup->addSeparator();
+
+ // insert 'Rename'
+ QAction* renameAction = collection->action("rename");
+ popup->addAction(renameAction);
+
+ // insert 'Move to Trash' and (optionally) 'Delete'
+ const KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals);
+ const KConfigGroup kdeConfig(globalConfig, "KDE");
+ bool showDeleteCommand = kdeConfig.readEntry("ShowDeleteCommand", false);
+ const KUrl& url = m_mainWindow->activeViewContainer()->url();
+ if (url.isLocalFile()) {
+ QAction* moveToTrashAction = collection->action("move_to_trash");
+ popup->addAction(moveToTrashAction);
+ } else {
+ showDeleteCommand = true;
+ }
+
+ if (showDeleteCommand) {
+ QAction* deleteAction = collection->action("delete");
+ popup->addAction(deleteAction);
+ }
+}
+