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:
parent
7a34c3321d
commit
d9c3648d5a
|
@ -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>
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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()));
|
||||
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user