Index: app/fileopscontextmanageritem.h =================================================================== --- app/fileopscontextmanageritem.h +++ app/fileopscontextmanageritem.h @@ -66,6 +66,7 @@ void createFolder(); void populateOpenMenu(); void openWith(QAction* action); + void openContainingFolder(); private: QList urlList() const; @@ -89,6 +90,7 @@ QAction * mShowPropertiesAction; QAction * mCreateFolderAction; QAction * mOpenWithAction; + QAction * mOpenContainingFolderAction; QList mRegularFileActionList; QList mTrashFileActionList; KService::List mServiceList; Index: app/fileopscontextmanageritem.cpp =================================================================== --- app/fileopscontextmanageritem.cpp +++ app/fileopscontextmanageritem.cpp @@ -49,6 +49,7 @@ #include #include #include +#include // Local #include @@ -187,6 +188,9 @@ connect(menu, &QMenu::aboutToShow, this, &FileOpsContextManagerItem::populateOpenMenu); connect(menu, &QMenu::triggered, this, &FileOpsContextManagerItem::openWith); + mOpenContainingFolderAction = file->addAction("file_open_containing_folder", this, SLOT(openContainingFolder())); + mOpenContainingFolderAction->setText(i18n("Open Containing Folder")); + mRegularFileActionList << mRenameAction << mTrashAction @@ -197,6 +201,7 @@ << mLinkToAction << createSeparator(this) << mOpenWithAction + << mOpenContainingFolderAction << mShowPropertiesAction << createSeparator(this) << mCreateFolderAction @@ -243,6 +248,7 @@ mDelAction->setEnabled(selectionNotEmpty); mOpenWithAction->setEnabled(selectionNotEmpty); mRenameAction->setEnabled(count == 1); + mOpenContainingFolderAction->setEnabled(selectionNotEmpty); mCreateFolderAction->setEnabled(dirUrlIsValid); mShowPropertiesAction->setEnabled(dirUrlIsValid || urlIsValid); @@ -412,4 +418,9 @@ KRun::runService(*service, list, mGroup); } +void FileOpsContextManagerItem::openContainingFolder() +{ + KIO::highlightInFileManager(urlList()); +} + } // namespace Index: app/thumbnailviewhelper.cpp =================================================================== --- app/thumbnailviewhelper.cpp +++ app/thumbnailviewhelper.cpp @@ -94,6 +94,7 @@ d->addActionToMenu(popup, "file_link_to"); popup.addSeparator(); d->addActionToMenu(popup, "file_open_with"); + d->addActionToMenu(popup, "file_open_containing_folder"); #ifndef GWENVIEW_SEMANTICINFO_BACKEND_NONE d->addActionToMenu(popup, "edit_tags"); #endif Index: app/viewmainpage.cpp =================================================================== --- app/viewmainpage.cpp +++ app/viewmainpage.cpp @@ -567,6 +567,8 @@ addActionToMenu(&menu, d->mActionCollection, "file_link_to"); menu.addSeparator(); addActionToMenu(&menu, d->mActionCollection, "file_open_with"); + addActionToMenu(&menu, d->mActionCollection, "file_open_containing_folder"); + menu.exec(QCursor::pos()); }