X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/a8a050952df82d8f9cc1191f410fca7c6a219da3..f28ee3152a05f09abd117df19bb99d0966947e6b:/src/dolphinviewactionhandler.cpp diff --git a/src/dolphinviewactionhandler.cpp b/src/dolphinviewactionhandler.cpp index 87facace1..cd5880c79 100644 --- a/src/dolphinviewactionhandler.cpp +++ b/src/dolphinviewactionhandler.cpp @@ -18,8 +18,8 @@ ***************************************************************************/ #include "dolphinviewactionhandler.h" -#include +#include "viewpropertiesdialog.h" #include "dolphinview.h" #include @@ -28,6 +28,8 @@ #include #include #include +#include +#include DolphinViewActionHandler::DolphinViewActionHandler(KActionCollection* collection, QObject* parent) : QObject(parent), @@ -68,7 +70,7 @@ void DolphinViewActionHandler::createActions() // This action doesn't appear in the GUI, it's for the shortcut only. // KNewMenu takes care of the GUI stuff. KAction* newDirAction = m_actionCollection->addAction("create_dir"); - newDirAction->setText(i18n("Create Folder...")); + newDirAction->setText(i18nc("@action", "Create Folder...")); newDirAction->setShortcut(Qt::Key_F10); connect(newDirAction, SIGNAL(triggered()), SLOT(slotCreateDir())); @@ -92,6 +94,23 @@ void DolphinViewActionHandler::createActions() deleteAction->setShortcut(Qt::SHIFT | Qt::Key_Delete); connect(deleteAction, SIGNAL(triggered()), this, SLOT(slotDeleteItems())); + // This action is useful for being enabled when "move_to_trash" should be + // disabled and "delete" is enabled (e.g. non-local files), so that Key_Del + // can be used for deleting the file (#76016). It needs to be a separate action + // so that the Edit menu isn't affected. + KAction* deleteWithTrashShortcut = m_actionCollection->addAction("delete_shortcut"); + // The descriptive text is just for the shortcuts editor. + deleteWithTrashShortcut->setText(i18nc("@action:inmenu File", "Delete (using shortcut for Trash)")); + deleteWithTrashShortcut->setShortcut(QKeySequence::Delete); + deleteWithTrashShortcut->setEnabled(false); + connect(deleteWithTrashShortcut, SIGNAL(triggered()), this, SLOT(slotDeleteItems())); + + KAction *propertiesAction = m_actionCollection->addAction( "properties" ); + // Well, it's the File menu in dolphinmainwindow and the Edit menu in dolphinpart... :) + propertiesAction->setText( i18nc("@action:inmenu File", "Properties") ); + propertiesAction->setShortcut(Qt::ALT | Qt::Key_Return); + connect(propertiesAction, SIGNAL(triggered()), SLOT(slotProperties())); + // View menu QActionGroup* viewModeActions = new QActionGroup(this); @@ -132,6 +151,17 @@ void DolphinViewActionHandler::createActions() showHiddenFiles->setShortcut(Qt::ALT | Qt::Key_Period); connect(showHiddenFiles, SIGNAL(triggered(bool)), this, SLOT(toggleShowHiddenFiles(bool))); + KAction* adjustViewProps = m_actionCollection->addAction("view_properties"); + adjustViewProps->setText(i18nc("@action:inmenu View", "Adjust View Properties...")); + connect(adjustViewProps, SIGNAL(triggered()), this, SLOT(slotAdjustViewProperties())); + + // Tools menu + + QAction* findFile = m_actionCollection->addAction("find_file"); + findFile->setText(i18nc("@action:inmenu Tools", "Find File...")); + findFile->setShortcut(Qt::CTRL | Qt::Key_F); + findFile->setIcon(KIcon("edit-find")); + connect(findFile, SIGNAL(triggered()), this, SLOT(slotFindFile())); } QActionGroup* DolphinViewActionHandler::createAdditionalInformationActionGroup() @@ -471,3 +501,32 @@ void DolphinViewActionHandler::slotSortTriggered(QAction* action) const DolphinView::Sorting sorting = action->data().value(); m_currentView->setSorting(sorting); } + +void DolphinViewActionHandler::slotAdjustViewProperties() +{ + emit actionBeingHandled(); + ViewPropertiesDialog dlg(m_currentView); + dlg.exec(); +} + +void DolphinViewActionHandler::slotFindFile() +{ + KRun::run("kfind", m_currentView->url(), m_currentView->window()); +} + +void DolphinViewActionHandler::slotProperties() +{ + KPropertiesDialog* dialog = 0; + const KFileItemList list = m_currentView->selectedItems(); + if (list.isEmpty()) { + const KUrl url = m_currentView->url(); + dialog = new KPropertiesDialog(url, m_currentView); + } else { + dialog = new KPropertiesDialog(list, m_currentView); + } + + dialog->setAttribute(Qt::WA_DeleteOnClose); + dialog->show(); + dialog->raise(); + dialog->activateWindow(); +}