1
0
mirror of https://invent.kde.org/system/dolphin synced 2024-07-04 17:30:55 +00:00

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
This commit is contained in:
Peter Penz 2007-02-25 20:51:05 +00:00
parent 7a34c3321d
commit d9c3648d5a
5 changed files with 48 additions and 39 deletions

View File

@ -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>

View File

@ -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);
}

View File

@ -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()));

View File

@ -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());
}

View File

@ -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