X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/7fec7ff9a096d288b66fce2699c7b8bc71f6fbbb..de4ffa3322c8d919ebdb0cdb51115bace8aa8d11:/src/dolphincontextmenu.cpp diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index d53aa3f17..6c4dda80a 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ #include "dolphincontextmenu.h" @@ -38,9 +38,9 @@ #include #include #include -#include +#include -#include "dolphin.h" +#include "dolphinmainwindow.h" #include "dolphinview.h" #include "editbookmarkdialog.h" #include "dolphinsettings.h" @@ -79,24 +79,21 @@ void DolphinContextMenu::openViewportContextMenu() assert(m_fileInfo == 0); KMenu* popup = new KMenu(m_dolphinView); - Dolphin& dolphin = Dolphin::mainWin(); + DolphinMainWindow *dolphin = m_dolphinView->mainWindow(); // setup 'Create New' menu KMenu* createNewMenu = new KMenu(); - KAction* createFolderAction = dolphin.actionCollection()->action("create_folder"); + QAction* createFolderAction = dolphin->actionCollection()->action("create_folder"); if (createFolderAction != 0) { - createFolderAction->plug(createNewMenu); + createNewMenu->addAction(createFolderAction); } createNewMenu->insertSeparator(); - KAction* action = 0; - - Q3PtrListIterator fileGrouptIt(dolphin.fileGroupActions()); - while ((action = fileGrouptIt.current()) != 0) { - action->plug(createNewMenu); - ++fileGrouptIt; + QLinkedListIterator fileGrouptIt(dolphin->fileGroupActions()); + while (fileGrouptIt.hasNext()) { + createNewMenu->addAction(fileGrouptIt.next()); } // TODO: not used yet. See documentation of Dolphin::linkGroupActions() @@ -104,14 +101,14 @@ void DolphinContextMenu::openViewportContextMenu() // //createNewMenu->insertSeparator(); // - //QPtrListIterator linkGroupIt(dolphin.linkGroupActions()); + //QPtrListIterator linkGroupIt(dolphin->linkGroupActions()); //while ((action = linkGroupIt.current()) != 0) { // action->plug(createNewMenu); // ++linkGroupIt; //} // //KMenu* linkToDeviceMenu = new KMenu(); - //QPtrListIterator linkToDeviceIt(dolphin.linkToDeviceActions()); + //QPtrListIterator linkToDeviceIt(dolphin->linkToDeviceActions()); //while ((action = linkToDeviceIt.current()) != 0) { // action->plug(linkToDeviceMenu); // ++linkToDeviceIt; @@ -122,20 +119,20 @@ void DolphinContextMenu::openViewportContextMenu() popup->insertItem(SmallIcon("filenew"), i18n("Create New"), createNewMenu); popup->insertSeparator(); - KAction* pasteAction = dolphin.actionCollection()->action(KStdAction::stdName(KStdAction::Paste)); - pasteAction->plug(popup); + QAction* pasteAction = dolphin->actionCollection()->action(KStandardAction::stdName(KStandardAction::Paste)); + popup->addAction(pasteAction); // setup 'View Mode' menu KMenu* viewModeMenu = new KMenu(); - KAction* iconsMode = dolphin.actionCollection()->action("icons"); - iconsMode->plug(viewModeMenu); + QAction* iconsMode = dolphin->actionCollection()->action("icons"); + viewModeMenu->addAction(iconsMode); - KAction* detailsMode = dolphin.actionCollection()->action("details"); - detailsMode->plug(viewModeMenu); + QAction* detailsMode = dolphin->actionCollection()->action("details"); + viewModeMenu->addAction(detailsMode); - KAction* previewsMode = dolphin.actionCollection()->action("previews"); - previewsMode->plug(viewModeMenu); + QAction* previewsMode = dolphin->actionCollection()->action("previews"); + viewModeMenu->addAction(previewsMode); popup->insertItem(i18n("View Mode"), viewModeMenu); popup->insertSeparator(); @@ -147,10 +144,10 @@ void DolphinContextMenu::openViewportContextMenu() QAction *activatedAction = popup->exec(m_pos); if (activatedAction == propertiesAction) { - new KPropertiesDialog(dolphin.activeView()->url()); + new KPropertiesDialog(dolphin->activeView()->url()); } else if (activatedAction == bookmarkAction) { - const KUrl& url = dolphin.activeView()->url(); + const KUrl& url = dolphin->activeView()->url(); KBookmark bookmark = EditBookmarkDialog::getBookmark(i18n("Add folder as bookmark"), url.fileName(), url, @@ -176,39 +173,39 @@ void DolphinContextMenu::openItemContextMenu() assert(m_fileInfo != 0); KMenu* popup = new KMenu(m_dolphinView); - Dolphin& dolphin = Dolphin::mainWin(); + DolphinMainWindow* dolphin = m_dolphinView->mainWindow(); const KUrl::List urls = m_dolphinView->selectedUrls(); // insert 'Cut', 'Copy' and 'Paste' - const KStdAction::StdAction actionNames[] = { KStdAction::Cut, KStdAction::Copy, KStdAction::Paste }; - const int count = sizeof(actionNames) / sizeof(KStdAction::StdAction); + const KStandardAction::StandardAction actionNames[] = { KStandardAction::Cut, KStandardAction::Copy, KStandardAction::Paste }; + const int count = sizeof(actionNames) / sizeof(KStandardAction::StandardAction); for (int i = 0; i < count; ++i) { - KAction* action = dolphin.actionCollection()->action(KStdAction::stdName(actionNames[i])); + QAction* action = dolphin->actionCollection()->action(KStandardAction::stdName(actionNames[i])); if (action != 0) { - action->plug(popup); + popup->addAction(action); } } popup->insertSeparator(); // insert 'Rename' - KAction* renameAction = dolphin.actionCollection()->action("rename"); - renameAction->plug(popup); + QAction* renameAction = dolphin->actionCollection()->action("rename"); + popup->addAction(renameAction); // insert 'Move to Trash' for local Urls, otherwise insert 'Delete' - const KUrl& url = dolphin.activeView()->url(); + const KUrl& url = dolphin->activeView()->url(); if (url.isLocalFile()) { - KAction* moveToTrashAction = dolphin.actionCollection()->action("move_to_trash"); - moveToTrashAction->plug(popup); + QAction* moveToTrashAction = dolphin->actionCollection()->action("move_to_trash"); + popup->addAction(moveToTrashAction); } else { - KAction* deleteAction = dolphin.actionCollection()->action("delete"); - deleteAction->plug(popup); + QAction* deleteAction = dolphin->actionCollection()->action("delete"); + popup->addAction(deleteAction); } // insert 'Bookmark this folder...' entry // urls is a list of selected items, so insert boolmark menu if // urls contains only one item, i.e. no multiple selection made - QAction *bookmarkAction = 0; + QAction* bookmarkAction = 0; if (m_fileInfo->isDir() && (urls.count() == 1)) { bookmarkAction = popup->addAction(i18n("Bookmark this folder")); } @@ -225,8 +222,8 @@ void DolphinContextMenu::openItemContextMenu() // insert 'Properties...' entry popup->insertSeparator(); - KAction* propertiesAction = dolphin.actionCollection()->action("properties"); - propertiesAction->plug(popup); + QAction* propertiesAction = dolphin->actionCollection()->action("properties"); + popup->addAction(propertiesAction); QAction *activatedAction = popup->exec(m_pos); @@ -273,12 +270,11 @@ QList DolphinContextMenu::insertOpenWithItems(KMenu* popup, // are listed which are registered to open the item. As last entry "Other..." will be // attached which allows to select a custom application. If no applications are registered // no sub menu is created at all, only "Open With..." will be offered. - const KFileItemList* list = m_dolphinView->selectedItems(); - assert(list != 0); + const KFileItemList list = m_dolphinView->selectedItems(); bool insertOpenWithItems = true; const QString contextMimeType(m_fileInfo->mimetype()); - QListIterator mimeIt(*list); + QListIterator mimeIt(list); while (insertOpenWithItems && mimeIt.hasNext()) { KFileItem* item = mimeIt.next(); insertOpenWithItems = (contextMimeType == item->mimetype()); @@ -302,8 +298,8 @@ QList DolphinContextMenu::insertOpenWithItems(KMenu* popup, // will be skipped here. const QString appName((*it)->name()); if (!containsEntry(openWithMenu, appName)) { - QAction *action = openWithMenu->addAction((*it)->pixmap(K3Icon::Small), - appName); + const KIcon icon((*it)->icon()); + QAction *action = openWithMenu->addAction(icon, appName); openWithVector.append(*it); openWithActions << action; } @@ -359,10 +355,9 @@ QList DolphinContextMenu::insertActionItems(KMenu* popup, if ((*it) == "all/allfiles") { // The service type is valid for all files, but not for directories. // Check whether the selected items only consist of files... - const KFileItemList* list = m_dolphinView->selectedItems(); - assert(list != 0); + const KFileItemList list = m_dolphinView->selectedItems(); - QListIterator mimeIt(*list); + QListIterator mimeIt(list); insert = true; while (insert && mimeIt.hasNext()) { KFileItem* item = mimeIt.next(); @@ -374,19 +369,18 @@ QList DolphinContextMenu::insertActionItems(KMenu* popup, // Check whether the MIME types of all selected files match // to the mimetype of the service action. As soon as one MIME // type does not match, no service menu is shown at all. - const KFileItemList* list = m_dolphinView->selectedItems(); - assert(list != 0); + const KFileItemList list = m_dolphinView->selectedItems(); - QListIterator mimeIt(*list); + QListIterator mimeIt(list); insert = true; while (insert && mimeIt.hasNext()) { KFileItem* item = mimeIt.next(); const QString mimeType(item->mimetype()); - const QString mimeGroup(mimeType.left(mimeType.find('/'))); + const QString mimeGroup(mimeType.left(mimeType.indexOf('/'))); insert = (*it == mimeType) || ((*it).right(1) == "*") && - ((*it).left((*it).find('/')) == mimeGroup); + ((*it).left((*it).indexOf('/')) == mimeGroup); } }