diff options
| author | Peter Penz <[email protected]> | 2007-02-25 20:51:05 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2007-02-25 20:51:05 +0000 |
| commit | d9c3648d5a4601d8e11e148ca77b3e9d84cf3207 (patch) | |
| tree | c330de8ad239606f81a3bd7ac02c55fb340d0716 | |
| parent | 7a34c3321d1d36a9b20fb9116b33b8c8a9181e82 (diff) | |
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
| -rw-r--r-- | src/dolphin_generalsettings.kcfg | 4 | ||||
| -rw-r--r-- | src/dolphincontextmenu.cpp | 9 | ||||
| -rw-r--r-- | src/dolphinmainwindow.cpp | 11 | ||||
| -rw-r--r-- | src/generalsettingspage.cpp | 60 | ||||
| -rw-r--r-- | src/generalsettingspage.h | 3 |
5 files changed, 48 insertions, 39 deletions
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 @@ <label>Should the view properties used for all directories</label> <default>false</default> </entry> + <entry name="ShowDeleteCommand" type="Bool"> + <label>Should the command 'Delete' be shown in the context menu</label> + <default>false</default> + </entry> <entry name="ViewPropsTimestamp" type="DateTime" > <label>Timestamp since when the view properties are valid</label> </entry> 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 <assert.h> #include <kactioncollection.h> @@ -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 <qlayout.h> -//Added by qt3to4: -#include <Q3VBoxLayout> #include <kdialog.h> -#include <qlabel.h> -#include <qlineedit.h> - -#include <q3grid.h> -#include <q3groupbox.h> -#include <klocale.h> -#include <qcheckbox.h> -#include <q3buttongroup.h> -#include <qpushbutton.h> #include <kfiledialog.h> -#include <qradiobutton.h> +#include <klocale.h> #include <kvbox.h> +#include <QCheckBox> +#include <QGroupBox> +#include <QLabel> +#include <QLineEdit> +#include <QPushButton> +#include <QRadioButton> + #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 |
