┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2007-02-25 20:51:05 +0000
committerPeter Penz <[email protected]>2007-02-25 20:51:05 +0000
commitd9c3648d5a4601d8e11e148ca77b3e9d84cf3207 (patch)
treec330de8ad239606f81a3bd7ac02c55fb340d0716
parent7a34c3321d1d36a9b20fb9116b33b8c8a9181e82 (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.kcfg4
-rw-r--r--src/dolphincontextmenu.cpp9
-rw-r--r--src/dolphinmainwindow.cpp11
-rw-r--r--src/generalsettingspage.cpp60
-rw-r--r--src/generalsettingspage.h3
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