+ Q_ASSERT(m_context & TrashContext);
+ Q_ASSERT(m_context & ItemContext);
+
+ KMenu* popup = new KMenu(m_mainWindow);
+
+ addShowMenubarAction(popup);
+
+ QAction* restoreAction = new QAction(i18nc("@action:inmenu", "Restore"), m_mainWindow);
+ popup->addAction(restoreAction);
+
+ QAction* deleteAction = m_mainWindow->actionCollection()->action("delete");
+ popup->addAction(deleteAction);
+
+ QAction* propertiesAction = m_mainWindow->actionCollection()->action("properties");
+ popup->addAction(propertiesAction);
+
+ if (popup->exec(QCursor::pos()) == restoreAction) {
+ KonqOperations::restoreTrashedItems(m_selectedUrls, m_mainWindow);
+ }
+
+ popup->deleteLater();
+}
+
+void DolphinContextMenu::openItemContextMenu()
+{
+ Q_ASSERT(!m_fileInfo.isNull());
+
+ KMenu* popup = new KMenu(m_mainWindow);
+ if (m_fileInfo.isDir() && (m_selectedUrls.count() == 1)) {
+ // setup 'Create New' menu
+ DolphinNewMenu* newMenu = new DolphinNewMenu(popup, m_mainWindow);
+ newMenu->slotCheckUpToDate();
+ newMenu->setPopupFiles(m_fileInfo.url());
+ newMenu->setEnabled(capabilities().supportsWriting());
+
+ KMenu* menu = newMenu->menu();
+ menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New"));
+ menu->setIcon(KIcon("document-new"));
+ popup->addMenu(newMenu->menu());
+ popup->addSeparator();
+
+ // insert 'Open in new window' and 'Open in new tab' entries
+ popup->addAction(m_mainWindow->actionCollection()->action("open_in_new_window"));
+ popup->addAction(m_mainWindow->actionCollection()->action("open_in_new_tab"));
+ popup->addSeparator();
+ }
+ addShowMenubarAction(popup);
+ insertDefaultItemActions(popup);
+
+ popup->addSeparator();
+
+ // insert 'Bookmark This Folder' entry if exactly one item is selected
+ QAction* addToPlacesAction = 0;
+ if (m_fileInfo.isDir() && (m_selectedUrls.count() == 1)) {
+ addToPlacesAction = popup->addAction(KIcon("bookmark-new"),
+ i18nc("@action:inmenu Add selected folder to places", "Add to Places"));
+ }
+
+ KonqPopupMenuInformation popupInfo;
+ popupInfo.setItems(m_selectedItems);
+ popupInfo.setParentWidget(m_mainWindow);
+ KonqMenuActions menuActions;
+ menuActions.setPopupMenuInfo(popupInfo);
+
+ // insert 'Open With...' action or sub menu
+ menuActions.addOpenWithActionsTo(popup, "DesktopEntryName != 'dolphin'");
+
+ // insert 'Actions' sub menu
+ if (menuActions.addActionsTo(popup)) {
+ popup->addSeparator();
+ }
+
+ // insert 'Copy To' and 'Move To' sub menus
+ if (DolphinSettings::instance().generalSettings()->showCopyMoveMenu()) {
+ m_copyToMenu.setItems(m_selectedItems);
+ m_copyToMenu.setReadOnly(!capabilities().supportsWriting());
+ m_copyToMenu.addActionsTo(popup);
+ popup->addSeparator();
+ }
+
+ // insert 'Properties...' entry
+ QAction* propertiesAction = m_mainWindow->actionCollection()->action("properties");
+ popup->addAction(propertiesAction);
+
+ QAction* activatedAction = popup->exec(QCursor::pos());
+
+ if ((addToPlacesAction != 0) && (activatedAction == addToPlacesAction)) {
+ const KUrl selectedUrl(m_fileInfo.url());
+ if (selectedUrl.isValid()) {
+ DolphinSettings::instance().placesModel()->addPlace(placesName(selectedUrl),
+ selectedUrl);
+ }
+ }
+
+ popup->deleteLater();