From: Peter Penz Date: Sun, 25 Feb 2007 20:51:05 +0000 (+0000) Subject: Implemented one of the most often requested features for Dolphin: allow that the... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/d9c3648d5a4601d8e11e148ca77b3e9d84cf3207 Implemented one of the most often requested features for Dolphin: allow that the command 'Delete' is shown in the context menu to bypass the trash. Like in Konqueror the default setting is that the 'Delete' command is not shown. TODO: currently this is a custom setting of Dolphin. Konqueror uses the global settings from KDE for this -> should this be changed to use the global setting instead? svn path=/trunk/KDE/kdebase/apps/; revision=637232 --- diff --git a/src/dolphin_generalsettings.kcfg b/src/dolphin_generalsettings.kcfg index 37fe8d18e..9f9f3e56b 100644 --- a/src/dolphin_generalsettings.kcfg +++ b/src/dolphin_generalsettings.kcfg @@ -23,6 +23,10 @@ false + + + false + diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index d27aa99cd..14f71f449 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -25,6 +25,8 @@ #include "dolphinview.h" #include "editbookmarkdialog.h" +#include "dolphin_generalsettings.h" + #include #include @@ -151,13 +153,18 @@ void DolphinContextMenu::openItemContextMenu() QAction* renameAction = dolphin->actionCollection()->action("rename"); popup->addAction(renameAction); - // insert 'Move to Trash' for local Urls, otherwise insert 'Delete' + // insert 'Move to Trash' and (optionally) 'Delete' + bool showDeleteCommand = DolphinSettings::instance().generalSettings()->showDeleteCommand(); const KUrl& url = dolphin->activeView()->url(); if (url.isLocalFile()) { QAction* moveToTrashAction = dolphin->actionCollection()->action("move_to_trash"); popup->addAction(moveToTrashAction); } else { + showDeleteCommand = true; + } + + if (showDeleteCommand) { QAction* deleteAction = dolphin->actionCollection()->action("delete"); popup->addAction(deleteAction); } diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 2585a7b82..7a0ff6c6a 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -994,10 +994,11 @@ void DolphinMainWindow::setupActions() connect(menu, SIGNAL(aboutToShow()), this, SLOT(updateNewMenu())); - QAction* action = actionCollection()->addAction("new_window"); - action->setIcon(KIcon("window_new")); - action->setText(i18n("New &Window")); - connect(action, SIGNAL(triggered()), this, SLOT(openNewMainWindow())); + QAction* newWindow = actionCollection()->addAction("new_window"); + newWindow->setIcon(KIcon("window_new")); + newWindow->setText(i18n("New &Window")); + newWindow->setShortcut(Qt::CTRL | Qt::Key_N); + connect(newWindow, SIGNAL(triggered()), this, SLOT(openNewMainWindow())); QAction* rename = actionCollection()->addAction("rename"); rename->setText(i18n("Rename")); @@ -1012,7 +1013,7 @@ void DolphinMainWindow::setupActions() QAction* deleteAction = actionCollection()->addAction("delete"); deleteAction->setText(i18n("Delete")); - deleteAction->setShortcut(Qt::ALT | Qt::Key_Delete); + deleteAction->setShortcut(Qt::SHIFT | Qt::Key_Delete); deleteAction->setIcon(KIcon("editdelete")); connect(deleteAction, SIGNAL(triggered()), this, SLOT(deleteItems())); diff --git a/src/generalsettingspage.cpp b/src/generalsettingspage.cpp index e31d0620e..ba5473054 100644 --- a/src/generalsettingspage.cpp +++ b/src/generalsettingspage.cpp @@ -20,26 +20,22 @@ #include "generalsettingspage.h" -#include -//Added by qt3to4: -#include #include -#include -#include - -#include -#include -#include -#include -#include -#include #include -#include +#include #include +#include +#include +#include +#include +#include +#include + #include "dolphinsettings.h" #include "dolphinmainwindow.h" #include "dolphinview.h" + #include "dolphin_generalsettings.h" GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin,QWidget* parent) : @@ -47,29 +43,20 @@ GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin,QWidget* par m_mainWindow(mainWin), m_homeUrl(0), m_startSplit(0), - m_startEditable(0) + m_startEditable(0), + m_showDeleteCommand(0) { - Q3VBoxLayout* topLayout = new Q3VBoxLayout(this, 2, KDialog::spacingHint()); - const int spacing = KDialog::spacingHint(); - const int margin = KDialog::marginHint(); - const QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + QVBoxLayout* topLayout = new QVBoxLayout(this); KVBox* vBox = new KVBox(this); - vBox->setSizePolicy(sizePolicy); vBox->setSpacing(spacing); - vBox->setMargin(margin); - vBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Ignored); - // create 'Home Url' editor - Q3GroupBox* homeGroup = new Q3GroupBox(1, Qt::Horizontal, i18n("Home Folder"), vBox); - homeGroup->setSizePolicy(sizePolicy); - homeGroup->setMargin(margin); + // create 'Home URL' editor + QGroupBox* homeBox = new QGroupBox(i18n("Home folder"), vBox); - KHBox* homeUrlBox = new KHBox(homeGroup); - homeUrlBox->setSizePolicy(sizePolicy); + KHBox* homeUrlBox = new KHBox(homeBox); homeUrlBox->setSpacing(spacing); new QLabel(i18n("Location:"), homeUrlBox); @@ -79,15 +66,19 @@ GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin,QWidget* par connect(selectHomeUrlButton, SIGNAL(clicked()), this, SLOT(selectHomeUrl())); - KHBox* buttonBox = new KHBox(homeGroup); - buttonBox->setSizePolicy(sizePolicy); + KHBox* buttonBox = new KHBox(homeBox); buttonBox->setSpacing(spacing); + QPushButton* useCurrentButton = new QPushButton(i18n("Use current location"), buttonBox); connect(useCurrentButton, SIGNAL(clicked()), this, SLOT(useCurrentLocation())); QPushButton* useDefaultButton = new QPushButton(i18n("Use default location"), buttonBox); connect(useDefaultButton, SIGNAL(clicked()), - this, SLOT(useDefaulLocation())); + this, SLOT(useDefaultLocation())); + + QVBoxLayout* homeBoxLayout = new QVBoxLayout(homeBox); + homeBoxLayout->addWidget(homeUrlBox); + homeBoxLayout->addWidget(buttonBox); QGroupBox* startBox = new QGroupBox(i18n("Start"), vBox); @@ -103,6 +94,10 @@ GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin,QWidget* par startBoxLayout->addWidget(m_startSplit); startBoxLayout->addWidget(m_startEditable); + m_showDeleteCommand = new QCheckBox(i18n("Show the command 'Delete' in context menu"), vBox); + // TODO: use global config like in Konqueror or is this a custom setting for Dolphin? + m_showDeleteCommand->setChecked(settings->showDeleteCommand()); + // Add a dummy widget with no restriction regarding // a vertical resizing. This assures that the dialog layout // is not stretched vertically. @@ -128,6 +123,7 @@ void GeneralSettingsPage::applySettings() settings->setSplitView(m_startSplit->isChecked()); settings->setEditableUrl(m_startEditable->isChecked()); + settings->setShowDeleteCommand(m_showDeleteCommand->isChecked()); } void GeneralSettingsPage::selectHomeUrl() @@ -145,7 +141,7 @@ void GeneralSettingsPage::useCurrentLocation() m_homeUrl->setText(view->url().prettyUrl()); } -void GeneralSettingsPage::useDefaulLocation() +void GeneralSettingsPage::useDefaultLocation() { m_homeUrl->setText("file://" + QDir::homePath()); } diff --git a/src/generalsettingspage.h b/src/generalsettingspage.h index 0cffc3f69..4a71c5d1f 100644 --- a/src/generalsettingspage.h +++ b/src/generalsettingspage.h @@ -47,13 +47,14 @@ public: private slots: void selectHomeUrl(); void useCurrentLocation(); - void useDefaulLocation(); + void useDefaultLocation(); private: DolphinMainWindow* m_mainWindow; QLineEdit* m_homeUrl; QCheckBox* m_startSplit; QCheckBox* m_startEditable; + QCheckBox* m_showDeleteCommand; }; #endif