┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings
diff options
context:
space:
mode:
authorEmmanuel Pescosta <[email protected]>2015-02-03 09:25:33 +0100
committerEmmanuel Pescosta <[email protected]>2015-02-03 09:25:33 +0100
commit3515582495f9aa02369a342d73c11079fcdcd654 (patch)
treec7e9a855e137c773b09942ff1a5d7302c562ac14 /src/settings
parent122e1c6288b7330ab1eb38cdd7361efb5c092876 (diff)
Ported Dolphin from KDialog to QDialog and save/restoreDialogSize to KWindowConfig::save/restoreWindowSize with the help of the porting scripts.
REVIEW: 122305
Diffstat (limited to 'src/settings')
-rw-r--r--src/settings/additionalinfodialog.cpp44
-rw-r--r--src/settings/additionalinfodialog.h8
-rw-r--r--src/settings/general/configurepreviewplugindialog.cpp32
-rw-r--r--src/settings/general/configurepreviewplugindialog.h4
-rw-r--r--src/settings/general/confirmationssettingspage.cpp5
-rw-r--r--src/settings/general/generalsettingspage.cpp2
-rw-r--r--src/settings/general/previewssettingspage.cpp2
-rw-r--r--src/settings/general/statusbarsettingspage.cpp2
-rw-r--r--src/settings/kcm/kcmdolphingeneral.cpp2
-rw-r--r--src/settings/kcm/kcmdolphinnavigation.cpp2
-rw-r--r--src/settings/kcm/kcmdolphinservices.cpp2
-rw-r--r--src/settings/kcm/kcmdolphinviewmodes.cpp2
-rw-r--r--src/settings/navigation/navigationsettingspage.cpp4
-rw-r--r--src/settings/startup/startupsettingspage.cpp6
-rw-r--r--src/settings/trash/trashsettingspage.cpp5
-rw-r--r--src/settings/viewmodes/viewsettingspage.cpp2
-rw-r--r--src/settings/viewpropertiesdialog.cpp76
-rw-r--r--src/settings/viewpropertiesdialog.h11
-rw-r--r--src/settings/viewpropsprogressinfo.cpp62
-rw-r--r--src/settings/viewpropsprogressinfo.h8
20 files changed, 144 insertions, 137 deletions
diff --git a/src/settings/additionalinfodialog.cpp b/src/settings/additionalinfodialog.cpp
index 4d1b69c83..783f5685e 100644
--- a/src/settings/additionalinfodialog.cpp
+++ b/src/settings/additionalinfodialog.cpp
@@ -24,9 +24,14 @@
#include <KSharedConfig>
#include <KLocalizedString>
#include "kitemviews/kfileitemmodel.h"
+#include <KConfigGroup>
+#include <KWindowConfig>
+
#include <QCheckBox>
#include <QLabel>
#include <QVBoxLayout>
+#include <QDialogButtonBox>
+#include <QPushButton>
#ifdef HAVE_BALOO
#include <Baloo/IndexerConfig>
@@ -34,21 +39,21 @@
AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent,
const QList<QByteArray>& visibleRoles) :
- KDialog(parent),
+ QDialog(parent),
m_visibleRoles(visibleRoles),
m_listWidget(0)
{
- setCaption(i18nc("@title:window", "Additional Information"));
- setButtons(Ok | Cancel);
- setDefaultButton(Ok);
+ setWindowTitle(i18nc("@title:window", "Additional Information"));
+ setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
- QWidget* mainWidget = new QWidget(this);
- mainWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
+ auto layout = new QVBoxLayout(this);
+ setLayout(layout);
// Add header
- QLabel* header = new QLabel(mainWidget);
+ auto header = new QLabel(this);
header->setText(i18nc("@label", "Select which additional information should be shown:"));
header->setWordWrap(true);
+ layout->addWidget(header);
// Add checkboxes
bool indexingEnabled = false;
@@ -57,7 +62,7 @@ AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent,
indexingEnabled = config.fileIndexingEnabled();
#endif
- m_listWidget = new QListWidget(mainWidget);
+ m_listWidget = new QListWidget(this);
m_listWidget->setSelectionMode(QAbstractItemView::NoSelection);
const QList<KFileItemModel::RoleInfo> rolesInfo = KFileItemModel::rolesInformation();
foreach (const KFileItemModel::RoleInfo& info, rolesInfo) {
@@ -72,23 +77,25 @@ AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent,
item->setFlags(item->flags() & ~Qt::ItemIsEnabled);
}
}
-
- QVBoxLayout* layout = new QVBoxLayout(mainWidget);
- layout->addWidget(header);
layout->addWidget(m_listWidget);
- setMainWidget(mainWidget);
+ auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this);
+ connect(buttonBox, &QDialogButtonBox::accepted, this, &AdditionalInfoDialog::accept);
+ connect(buttonBox, &QDialogButtonBox::rejected, this, &AdditionalInfoDialog::reject);
+ layout->addWidget(buttonBox);
- const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "AdditionalInfoDialog");
- restoreDialogSize(dialogConfig);
+ auto okButton = buttonBox->button(QDialogButtonBox::Ok);
+ okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
+ okButton->setDefault(true);
- connect(this, &AdditionalInfoDialog::okClicked, this, &AdditionalInfoDialog::slotOk);
+ const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "AdditionalInfoDialog");
+ KWindowConfig::restoreWindowSize(windowHandle(), dialogConfig);
}
AdditionalInfoDialog::~AdditionalInfoDialog()
{
KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "AdditionalInfoDialog");
- saveDialogSize(dialogConfig, KConfigBase::Persistent);
+ KWindowConfig::saveWindowSize(windowHandle(), dialogConfig);
}
QList<QByteArray> AdditionalInfoDialog::visibleRoles() const
@@ -96,7 +103,7 @@ QList<QByteArray> AdditionalInfoDialog::visibleRoles() const
return m_visibleRoles;
}
-void AdditionalInfoDialog::slotOk()
+void AdditionalInfoDialog::accept()
{
m_visibleRoles.clear();
@@ -109,5 +116,6 @@ void AdditionalInfoDialog::slotOk()
}
++index;
}
-}
+ QDialog::accept();
+}
diff --git a/src/settings/additionalinfodialog.h b/src/settings/additionalinfodialog.h
index 4197d4794..fd72a7ce1 100644
--- a/src/settings/additionalinfodialog.h
+++ b/src/settings/additionalinfodialog.h
@@ -20,7 +20,7 @@
#ifndef ADDITIONALINFODIALOG_H
#define ADDITIONALINFODIALOG_H
-#include <KDialog>
+#include <QDialog>
#include <QList>
#include <QListWidget>
@@ -28,7 +28,7 @@
/**
* @brief Dialog for changing the additional information shown in the view.
*/
-class AdditionalInfoDialog : public KDialog
+class AdditionalInfoDialog : public QDialog
{
Q_OBJECT
@@ -37,8 +37,8 @@ public:
virtual ~AdditionalInfoDialog();
QList<QByteArray> visibleRoles() const;
-private slots:
- void slotOk();
+public slots:
+ void accept() Q_DECL_OVERRIDE;
private:
QList<QByteArray> m_visibleRoles;
diff --git a/src/settings/general/configurepreviewplugindialog.cpp b/src/settings/general/configurepreviewplugindialog.cpp
index eb9ad010c..15cd92667 100644
--- a/src/settings/general/configurepreviewplugindialog.cpp
+++ b/src/settings/general/configurepreviewplugindialog.cpp
@@ -30,11 +30,13 @@
#include <QLibrary>
#include <QVBoxLayout>
#include <QStandardPaths>
+#include <QDialogButtonBox>
+#include <QPushButton>
ConfigurePreviewPluginDialog::ConfigurePreviewPluginDialog(const QString& pluginName,
const QString& desktopEntryName,
QWidget* parent) :
- KDialog(parent)
+ QDialog(parent)
{
QSharedPointer<ThumbCreator> previewPlugin;
const QString pluginPath = KPluginLoader::findPlugin(desktopEntryName);
@@ -45,24 +47,21 @@ ConfigurePreviewPluginDialog::ConfigurePreviewPluginDialog(const QString& plugin
}
}
- setCaption(i18nc("@title:window", "Configure Preview for %1", pluginName));
+ setWindowTitle(i18nc("@title:window", "Configure Preview for %1", pluginName));
+ setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
setMinimumWidth(400);
- setButtons(Ok | Cancel);
- setDefaultButton(Ok);
- if (previewPlugin) {
- auto mainWidget = new QWidget(this);
- mainWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
- setMainWidget(mainWidget);
+ auto layout = new QVBoxLayout(this);
+ setLayout(layout);
+ if (previewPlugin) {
auto configurationWidget = previewPlugin->createConfigurationWidget();
- configurationWidget->setParent(mainWidget);
-
- auto layout = new QVBoxLayout(mainWidget);
+ configurationWidget->setParent(this);
layout->addWidget(configurationWidget);
+
layout->addStretch();
- connect(this, &ConfigurePreviewPluginDialog::okClicked, this, [=] {
+ connect(this, &ConfigurePreviewPluginDialog::accepted, this, [=] {
// TODO: It would be great having a mechanism to tell PreviewJob that only previews
// for a specific MIME-type should be regenerated. As this is not available yet we
// delete the whole thumbnails directory.
@@ -73,4 +72,13 @@ ConfigurePreviewPluginDialog::ConfigurePreviewPluginDialog(const QString& plugin
KIO::del(QUrl::fromLocalFile(thumbnailsPath), KIO::HideProgressInfo);
});
}
+
+ auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this);
+ connect(buttonBox, &QDialogButtonBox::accepted, this, &ConfigurePreviewPluginDialog::accept);
+ connect(buttonBox, &QDialogButtonBox::rejected, this, &ConfigurePreviewPluginDialog::reject);
+ layout->addWidget(buttonBox);
+
+ auto okButton = buttonBox->button(QDialogButtonBox::Ok);
+ okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
+ okButton->setDefault(true);
} \ No newline at end of file
diff --git a/src/settings/general/configurepreviewplugindialog.h b/src/settings/general/configurepreviewplugindialog.h
index 02a0cde34..620caeb51 100644
--- a/src/settings/general/configurepreviewplugindialog.h
+++ b/src/settings/general/configurepreviewplugindialog.h
@@ -20,12 +20,12 @@
#ifndef CONFIGUREPREVIEWPLUGINDIALOG_H
#define CONFIGUREPREVIEWPLUGINDIALOG_H
-#include <KDialog>
+#include <QDialog>
/**
* @brief Dialog for configuring preview-plugins.
*/
-class ConfigurePreviewPluginDialog : public KDialog
+class ConfigurePreviewPluginDialog : public QDialog
{
Q_OBJECT
diff --git a/src/settings/general/confirmationssettingspage.cpp b/src/settings/general/confirmationssettingspage.cpp
index 617d31c7d..264024abd 100644
--- a/src/settings/general/confirmationssettingspage.cpp
+++ b/src/settings/general/confirmationssettingspage.cpp
@@ -21,7 +21,6 @@
#include <dolphin_generalsettings.h>
-#include <KDialog>
#include <KLocalizedString>
#include <QCheckBox>
@@ -58,15 +57,11 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) :
m_confirmClosingMultipleTabs = new QCheckBox(i18nc("@option:check Ask for confirmation when",
"Closing Dolphin windows with multiple tabs"), this);
- topLayout->addSpacing(KDialog::spacingHint());
topLayout->addWidget(confirmLabelKde);
- topLayout->addSpacing(KDialog::spacingHint());
topLayout->addWidget(m_confirmMoveToTrash);
topLayout->addWidget(m_confirmDelete);
topLayout->addWidget(m_confirmScriptExecution);
- topLayout->addSpacing(KDialog::spacingHint());
topLayout->addWidget(confirmLabelDolphin);
- topLayout->addSpacing(KDialog::spacingHint());
topLayout->addWidget(m_confirmClosingMultipleTabs);
topLayout->addStretch();
diff --git a/src/settings/general/generalsettingspage.cpp b/src/settings/general/generalsettingspage.cpp
index f32cb9c92..d8f61ef90 100644
--- a/src/settings/general/generalsettingspage.cpp
+++ b/src/settings/general/generalsettingspage.cpp
@@ -26,7 +26,6 @@
#include <settings/settingspagebase.h>
#include "statusbarsettingspage.h"
-#include <KDialog>
#include <KLocalizedString>
#include <QTabWidget>
@@ -38,7 +37,6 @@ GeneralSettingsPage::GeneralSettingsPage(const QUrl& url, QWidget* parent) :
{
QVBoxLayout* topLayout = new QVBoxLayout(this);
topLayout->setMargin(0);
- topLayout->setSpacing(KDialog::spacingHint());
QTabWidget* tabWidget = new QTabWidget(this);
diff --git a/src/settings/general/previewssettingspage.cpp b/src/settings/general/previewssettingspage.cpp
index 835af9dbe..9e5f18cc7 100644
--- a/src/settings/general/previewssettingspage.cpp
+++ b/src/settings/general/previewssettingspage.cpp
@@ -23,7 +23,6 @@
#include "configurepreviewplugindialog.h"
#include <KConfigGroup>
-#include <KDialog>
#include <KGlobal>
#include <KLocalizedString>
#include <KNumInput>
@@ -88,7 +87,6 @@ PreviewsSettingsPage::PreviewsSettingsPage(QWidget* parent) :
fileSizeBoxLayout->addWidget(remoteFileSizeLabel, 0, Qt::AlignRight);
fileSizeBoxLayout->addWidget(m_remoteFileSizeBox);
- topLayout->addSpacing(KDialog::spacingHint());
topLayout->addWidget(showPreviewsLabel);
topLayout->addWidget(m_listView);
topLayout->addLayout(fileSizeBoxLayout);
diff --git a/src/settings/general/statusbarsettingspage.cpp b/src/settings/general/statusbarsettingspage.cpp
index d12a0c1fc..03846253b 100644
--- a/src/settings/general/statusbarsettingspage.cpp
+++ b/src/settings/general/statusbarsettingspage.cpp
@@ -21,7 +21,6 @@
#include <dolphin_generalsettings.h>
-#include <KDialog>
#include <KLocalizedString>
#include <QCheckBox>
@@ -36,7 +35,6 @@ StatusBarSettingsPage::StatusBarSettingsPage(QWidget* parent) :
m_showSpaceInfo = new QCheckBox(i18nc("@option:check", "Show space information"), this);
QVBoxLayout* topLayout = new QVBoxLayout(this);
- topLayout->addSpacing(KDialog::spacingHint());
topLayout->addWidget(m_showZoomSlider);
topLayout->addWidget(m_showSpaceInfo);
topLayout->addStretch();
diff --git a/src/settings/kcm/kcmdolphingeneral.cpp b/src/settings/kcm/kcmdolphingeneral.cpp
index 285633658..64e96f127 100644
--- a/src/settings/kcm/kcmdolphingeneral.cpp
+++ b/src/settings/kcm/kcmdolphingeneral.cpp
@@ -19,7 +19,6 @@
#include "kcmdolphingeneral.h"
-#include <KDialog>
#include <KLocalizedString>
#include <KPluginFactory>
#include <KPluginLoader>
@@ -48,7 +47,6 @@ DolphinGeneralConfigModule::DolphinGeneralConfigModule(QWidget* parent, const QV
QVBoxLayout* topLayout = new QVBoxLayout(this);
topLayout->setMargin(0);
- topLayout->setSpacing(KDialog::spacingHint());
QTabWidget* tabWidget = new QTabWidget(this);
diff --git a/src/settings/kcm/kcmdolphinnavigation.cpp b/src/settings/kcm/kcmdolphinnavigation.cpp
index 5a0be61be..b56ce40c1 100644
--- a/src/settings/kcm/kcmdolphinnavigation.cpp
+++ b/src/settings/kcm/kcmdolphinnavigation.cpp
@@ -19,7 +19,6 @@
#include "kcmdolphinnavigation.h"
-#include <KDialog>
#include <KPluginFactory>
#include <KPluginLoader>
@@ -43,7 +42,6 @@ DolphinNavigationConfigModule::DolphinNavigationConfigModule(QWidget* parent, co
QVBoxLayout* topLayout = new QVBoxLayout(this);
topLayout->setMargin(0);
- topLayout->setSpacing(KDialog::spacingHint());
m_navigation = new NavigationSettingsPage(this);
connect(m_navigation, &NavigationSettingsPage::changed, this, static_cast<void(DolphinNavigationConfigModule::*)()>(&DolphinNavigationConfigModule::changed));
diff --git a/src/settings/kcm/kcmdolphinservices.cpp b/src/settings/kcm/kcmdolphinservices.cpp
index b00f58abc..619e44cc5 100644
--- a/src/settings/kcm/kcmdolphinservices.cpp
+++ b/src/settings/kcm/kcmdolphinservices.cpp
@@ -19,7 +19,6 @@
#include "kcmdolphinservices.h"
-#include <KDialog>
#include <KPluginFactory>
#include <KPluginLoader>
@@ -43,7 +42,6 @@ DolphinServicesConfigModule::DolphinServicesConfigModule(QWidget* parent, const
QVBoxLayout* topLayout = new QVBoxLayout(this);
topLayout->setMargin(0);
- topLayout->setSpacing(KDialog::spacingHint());
m_services = new ServicesSettingsPage(this);
connect(m_services, &ServicesSettingsPage::changed, this, static_cast<void(DolphinServicesConfigModule::*)()>(&DolphinServicesConfigModule::changed));
diff --git a/src/settings/kcm/kcmdolphinviewmodes.cpp b/src/settings/kcm/kcmdolphinviewmodes.cpp
index d9c8a1a43..f013180ad 100644
--- a/src/settings/kcm/kcmdolphinviewmodes.cpp
+++ b/src/settings/kcm/kcmdolphinviewmodes.cpp
@@ -19,7 +19,6 @@
#include "kcmdolphinviewmodes.h"
-#include <KDialog>
#include <KLocalizedString>
#include <KPluginFactory>
#include <KPluginLoader>
@@ -49,7 +48,6 @@ DolphinViewModesConfigModule::DolphinViewModesConfigModule(QWidget* parent, cons
QVBoxLayout* topLayout = new QVBoxLayout(this);
topLayout->setMargin(0);
- topLayout->setSpacing(KDialog::spacingHint());
QTabWidget* tabWidget = new QTabWidget(this);
diff --git a/src/settings/navigation/navigationsettingspage.cpp b/src/settings/navigation/navigationsettingspage.cpp
index 81ea3bc82..f9c7a4dfc 100644
--- a/src/settings/navigation/navigationsettingspage.cpp
+++ b/src/settings/navigation/navigationsettingspage.cpp
@@ -21,7 +21,6 @@
#include "dolphin_generalsettings.h"
-#include <KDialog>
#include <KLocalizedString>
#include <QCheckBox>
@@ -32,13 +31,10 @@ NavigationSettingsPage::NavigationSettingsPage(QWidget* parent) :
m_openArchivesAsFolder(0),
m_autoExpandFolders(0)
{
- const int spacing = KDialog::spacingHint();
-
QVBoxLayout* topLayout = new QVBoxLayout(this);
QWidget* vBox = new QWidget(this);
QVBoxLayout *vBoxLayout = new QVBoxLayout(vBox);
vBoxLayout->setMargin(0);
- vBoxLayout->setSpacing(spacing);
vBoxLayout->setAlignment(Qt::AlignTop);
m_openArchivesAsFolder = new QCheckBox(i18nc("@option:check", "Open archives as folder"), vBox);
diff --git a/src/settings/startup/startupsettingspage.cpp b/src/settings/startup/startupsettingspage.cpp
index 11adb869b..baba7f8a1 100644
--- a/src/settings/startup/startupsettingspage.cpp
+++ b/src/settings/startup/startupsettingspage.cpp
@@ -24,7 +24,6 @@
#include "dolphin_generalsettings.h"
-#include <KDialog>
#include <KFileDialog>
#include <KLocalizedString>
#include <QLineEdit>
@@ -49,13 +48,10 @@ StartupSettingsPage::StartupSettingsPage(const QUrl& url, QWidget* parent) :
m_showFullPath(0),
m_filterBar(0)
{
- const int spacing = KDialog::spacingHint();
-
QVBoxLayout* topLayout = new QVBoxLayout(this);
QWidget* vBox = new QWidget(this);
QVBoxLayout *vBoxLayout = new QVBoxLayout(vBox);
vBoxLayout->setMargin(0);
- vBoxLayout->setSpacing(spacing);
vBoxLayout->setAlignment(Qt::AlignTop);
// create 'Home URL' editor
@@ -65,7 +61,6 @@ StartupSettingsPage::StartupSettingsPage(const QUrl& url, QWidget* parent) :
QWidget* homeUrlBox = new QWidget(homeBox);
QHBoxLayout *homeUrlBoxLayout = new QHBoxLayout(homeUrlBox);
homeUrlBoxLayout->setMargin(0);
- homeUrlBoxLayout->setSpacing(spacing);
QLabel* homeUrlLabel = new QLabel(i18nc("@label:textbox", "Location:"), homeUrlBox);
homeUrlBoxLayout->addWidget(homeUrlLabel);
@@ -86,7 +81,6 @@ StartupSettingsPage::StartupSettingsPage(const QUrl& url, QWidget* parent) :
QWidget* buttonBox = new QWidget(homeBox);
QHBoxLayout *buttonBoxLayout = new QHBoxLayout(buttonBox);
buttonBoxLayout->setMargin(0);
- buttonBoxLayout->setSpacing(spacing);
QPushButton* useCurrentButton = new QPushButton(i18nc("@action:button", "Use Current Location"), buttonBox);
buttonBoxLayout->addWidget(useCurrentButton);
diff --git a/src/settings/trash/trashsettingspage.cpp b/src/settings/trash/trashsettingspage.cpp
index aa4b5a22a..237a17987 100644
--- a/src/settings/trash/trashsettingspage.cpp
+++ b/src/settings/trash/trashsettingspage.cpp
@@ -20,21 +20,16 @@
#include "trashsettingspage.h"
#include <KCModuleProxy>
-#include <KDialog>
-#include <QVBoxLayout>
#include <QVBoxLayout>
TrashSettingsPage::TrashSettingsPage(QWidget* parent) :
SettingsPageBase(parent)
{
- const int spacing = KDialog::spacingHint();
-
QVBoxLayout* topLayout = new QVBoxLayout(this);
QWidget* vBox = new QWidget(this);
QVBoxLayout *vBoxVBoxLayout = new QVBoxLayout(vBox);
vBoxVBoxLayout->setMargin(0);
- vBoxVBoxLayout->setSpacing(spacing);
m_proxy = new KCModuleProxy("kcmtrash");
topLayout->addWidget(m_proxy);
diff --git a/src/settings/viewmodes/viewsettingspage.cpp b/src/settings/viewmodes/viewsettingspage.cpp
index 12d4ce0e1..21bb1e178 100644
--- a/src/settings/viewmodes/viewsettingspage.cpp
+++ b/src/settings/viewmodes/viewsettingspage.cpp
@@ -26,7 +26,6 @@
#include <QVBoxLayout>
#include <QTabWidget>
-#include <KDialog>
#include <KLocalizedString>
ViewSettingsPage::ViewSettingsPage(QWidget* parent) :
@@ -35,7 +34,6 @@ ViewSettingsPage::ViewSettingsPage(QWidget* parent) :
{
QVBoxLayout* topLayout = new QVBoxLayout(this);
topLayout->setMargin(0);
- topLayout->setSpacing(KDialog::spacingHint());
QTabWidget* tabWidget = new QTabWidget(this);
diff --git a/src/settings/viewpropertiesdialog.cpp b/src/settings/viewpropertiesdialog.cpp
index 2e503bbe1..aa7e4b4a0 100644
--- a/src/settings/viewpropertiesdialog.cpp
+++ b/src/settings/viewpropertiesdialog.cpp
@@ -34,6 +34,8 @@
#include <KMessageBox>
#include <QUrl>
#include <KComboBox>
+#include <KConfigGroup>
+#include <KWindowConfig>
#include <QButtonGroup>
#include <QCheckBox>
@@ -42,11 +44,13 @@
#include <QLabel>
#include <QPushButton>
#include <QRadioButton>
+#include <QDialogButtonBox>
+#include <QVBoxLayout>
#include <views/viewproperties.h>
ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) :
- KDialog(dolphinView),
+ QDialog(dolphinView),
m_isDirty(false),
m_dolphinView(dolphinView),
m_viewProps(0),
@@ -66,24 +70,26 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) :
Q_ASSERT(dolphinView);
const bool useGlobalViewProps = GeneralSettings::globalViewProps();
- setCaption(i18nc("@title:window", "View Properties"));
- setButtons(KDialog::Ok | KDialog::Cancel | KDialog::Apply);
+ setWindowTitle(i18nc("@title:window", "View Properties"));
+ setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
const QUrl& url = dolphinView->url();
m_viewProps = new ViewProperties(url);
m_viewProps->setAutoSaveEnabled(false);
- QWidget* main = new QWidget();
- QVBoxLayout* topLayout = new QVBoxLayout();
+ auto layout = new QVBoxLayout(this);
+ setLayout(layout);
+
+ auto propsGrid = new QWidget(this);
+ layout->addWidget(propsGrid);
// create 'Properties' group containing view mode, sorting, sort order and show hidden files
- QWidget* propsBox = main;
+ QWidget* propsBox = this;
if (!useGlobalViewProps) {
- propsBox = new QGroupBox(i18nc("@title:group", "Properties"), main);
+ propsBox = new QGroupBox(i18nc("@title:group", "Properties"), this);
+ layout->addWidget(propsBox);
}
- QWidget* propsGrid = new QWidget();
-
QLabel* viewModeLabel = new QLabel(i18nc("@label:listbox", "View mode:"), propsGrid);
m_viewMode = new KComboBox(propsGrid);
m_viewMode->addItem(QIcon::fromTheme("view-list-icons"), i18nc("@item:inlistbox", "Icons"), DolphinView::IconsView);
@@ -130,8 +136,6 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) :
propsBoxLayout->addWidget(m_showHiddenFiles);
propsBoxLayout->addWidget(m_additionalInfo);
- topLayout->addWidget(propsBox);
-
connect(m_viewMode, static_cast<void(KComboBox::*)(int)>(&KComboBox::currentIndexChanged),
this, &ViewPropertiesDialog::slotViewModeChanged);
connect(m_sorting, static_cast<void(KComboBox::*)(int)>(&KComboBox::currentIndexChanged),
@@ -149,14 +153,12 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) :
connect(m_showHiddenFiles, &QCheckBox::clicked,
this, &ViewPropertiesDialog::slotShowHiddenFilesChanged);
- connect(this, &ViewPropertiesDialog::okClicked, this, &ViewPropertiesDialog::slotOk);
- connect(this, &ViewPropertiesDialog::applyClicked, this, &ViewPropertiesDialog::slotApply);
-
// Only show the following settings if the view properties are remembered
// for each directory:
if (!useGlobalViewProps) {
// create 'Apply View Properties To' group
- QGroupBox* applyBox = new QGroupBox(i18nc("@title:group", "Apply View Properties To"), main);
+ QGroupBox* applyBox = new QGroupBox(i18nc("@title:group", "Apply View Properties To"), this);
+ layout->addWidget(applyBox);
m_applyToCurrentFolder = new QRadioButton(i18nc("@option:radio Apply View Properties To",
"Current folder"), applyBox);
@@ -176,10 +178,8 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) :
applyBoxLayout->addWidget(m_applyToSubFolders);
applyBoxLayout->addWidget(m_applyToAllFolders);
- m_useAsDefault = new QCheckBox(i18nc("@option:check", "Use these view properties as default"), main);
-
- topLayout->addWidget(applyBox);
- topLayout->addWidget(m_useAsDefault);
+ m_useAsDefault = new QCheckBox(i18nc("@option:check", "Use these view properties as default"), this);
+ layout->addWidget(m_useAsDefault);
connect(m_applyToCurrentFolder, &QRadioButton::clicked,
this, &ViewPropertiesDialog::markAsDirty);
@@ -191,12 +191,25 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) :
this, &ViewPropertiesDialog::markAsDirty);
}
- main->setLayout(topLayout);
- setMainWidget(main);
+ layout->addStretch();
- const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"),
- "ViewPropertiesDialog");
- restoreDialogSize(dialogConfig);
+ auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel | QDialogButtonBox::Apply, this);
+ connect(buttonBox, &QDialogButtonBox::accepted, this, &ViewPropertiesDialog::accept);
+ connect(buttonBox, &QDialogButtonBox::rejected, this, &ViewPropertiesDialog::reject);
+ layout->addWidget(buttonBox);
+
+ auto okButton = buttonBox->button(QDialogButtonBox::Ok);
+ okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
+ okButton->setDefault(true);
+
+ auto applyButton = buttonBox->button(QDialogButtonBox::Apply);
+ connect(applyButton, &QPushButton::clicked, this, &ViewPropertiesDialog::slotApply);
+ connect(this, &ViewPropertiesDialog::isDirtyChanged, applyButton, [applyButton](bool isDirty) {
+ applyButton->setEnabled(isDirty);
+ });
+
+ const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "ViewPropertiesDialog");
+ KWindowConfig::restoreWindowSize(windowHandle(), dialogConfig);
loadSettings();
}
@@ -207,15 +220,14 @@ ViewPropertiesDialog::~ViewPropertiesDialog()
delete m_viewProps;
m_viewProps = 0;
- KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"),
- "ViewPropertiesDialog");
- saveDialogSize(dialogConfig, KConfigBase::Persistent);
+ KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "ViewPropertiesDialog");
+ KWindowConfig::saveWindowSize(windowHandle(), dialogConfig);
}
-void ViewPropertiesDialog::slotOk()
+void ViewPropertiesDialog::accept()
{
applyViewProperties();
- accept();
+ QDialog::accept();
}
void ViewPropertiesDialog::slotApply()
@@ -275,8 +287,10 @@ void ViewPropertiesDialog::slotShowHiddenFilesChanged()
void ViewPropertiesDialog::markAsDirty(bool isDirty)
{
- m_isDirty = isDirty;
- enableButtonApply(isDirty);
+ if (m_isDirty != isDirty) {
+ m_isDirty = isDirty;
+ emit isDirtyChanged(isDirty);
+ }
}
void ViewPropertiesDialog::configureAdditionalInfo()
diff --git a/src/settings/viewpropertiesdialog.h b/src/settings/viewpropertiesdialog.h
index 6b0e9ff48..63c534b30 100644
--- a/src/settings/viewpropertiesdialog.h
+++ b/src/settings/viewpropertiesdialog.h
@@ -23,7 +23,7 @@
#include "libdolphin_export.h"
-#include <KDialog>
+#include <QDialog>
class QCheckBox;
class KComboBox;
@@ -39,7 +39,7 @@ class DolphinView;
* and previews should be shown. The properties can be assigned to the current folder,
* or recursively to all sub folders.
*/
-class LIBDOLPHINPRIVATE_EXPORT ViewPropertiesDialog : public KDialog
+class LIBDOLPHINPRIVATE_EXPORT ViewPropertiesDialog : public QDialog
{
Q_OBJECT
@@ -47,8 +47,10 @@ public:
explicit ViewPropertiesDialog(DolphinView* dolphinView);
virtual ~ViewPropertiesDialog();
+public slots:
+ void accept() Q_DECL_OVERRIDE;
+
private slots:
- void slotOk();
void slotApply();
void slotViewModeChanged(int index);
void slotSortingChanged(int index);
@@ -60,6 +62,9 @@ private slots:
void markAsDirty(bool isDirty);
void configureAdditionalInfo();
+signals:
+ void isDirtyChanged(bool isDirty);
+
private:
void applyViewProperties();
void loadSettings();
diff --git a/src/settings/viewpropsprogressinfo.cpp b/src/settings/viewpropsprogressinfo.cpp
index 9ce3d2de4..489cc1d8c 100644
--- a/src/settings/viewpropsprogressinfo.cpp
+++ b/src/settings/viewpropsprogressinfo.cpp
@@ -25,7 +25,10 @@
#include <QProgressBar>
#include <QTimer>
#include <QVBoxLayout>
+#include <QDialogButtonBox>
+#include <QPushButton>
+#include <KConfigGroup>
#include <KLocalizedString>
#include <KIO/JobClasses>
@@ -34,7 +37,7 @@
ViewPropsProgressInfo::ViewPropsProgressInfo(QWidget* parent,
const QUrl& dir,
const ViewProperties& viewProps) :
- KDialog(parent),
+ QDialog(parent),
m_dir(dir),
m_viewProps(0),
m_label(0),
@@ -45,9 +48,8 @@ ViewPropsProgressInfo::ViewPropsProgressInfo(QWidget* parent,
{
const QSize minSize = minimumSize();
setMinimumSize(QSize(320, minSize.height()));
-
- setCaption(i18nc("@title:window", "Applying View Properties"));
- setButtons(KDialog::Cancel);
+ setWindowTitle(i18nc("@title:window", "Applying View Properties"));
+ setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
m_viewProps = new ViewProperties(dir);
m_viewProps->setDirProperties(viewProps);
@@ -56,20 +58,24 @@ ViewPropsProgressInfo::ViewPropsProgressInfo(QWidget* parent,
// that the view properties are saved twice:
m_viewProps->setAutoSaveEnabled(false);
- QWidget* main = new QWidget();
- QVBoxLayout* topLayout = new QVBoxLayout();
+ auto layout = new QVBoxLayout(this);
+ setLayout(layout);
+
+ m_label = new QLabel(i18nc("@info:progress", "Counting folders: %1", 0), this);
+ layout->addWidget(m_label);
- m_label = new QLabel(i18nc("@info:progress", "Counting folders: %1", 0), main);
- m_progressBar = new QProgressBar(main);
+ m_progressBar = new QProgressBar(this);
m_progressBar->setMinimum(0);
m_progressBar->setMaximum(0);
m_progressBar->setValue(0);
+ layout->addWidget(m_progressBar);
- topLayout->addWidget(m_label);
- topLayout->addWidget(m_progressBar);
+ layout->addStretch();
- main->setLayout(topLayout);
- setMainWidget(main);
+ auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel, this);
+ connect(buttonBox, &QDialogButtonBox::accepted, this, &ViewPropsProgressInfo::accept);
+ connect(buttonBox, &QDialogButtonBox::rejected, this, &ViewPropsProgressInfo::reject);
+ layout->addWidget(buttonBox);
// Use the directory size job to count the number of directories first. This
// allows to give a progress indication for the user when applying the view
@@ -85,8 +91,6 @@ ViewPropsProgressInfo::ViewPropsProgressInfo(QWidget* parent,
connect(m_timer, &QTimer::timeout,
this, &ViewPropsProgressInfo::updateProgress);
m_timer->start(300);
-
- connect(this, &ViewPropsProgressInfo::cancelClicked, this, &ViewPropsProgressInfo::cancelApplying);
}
ViewPropsProgressInfo::~ViewPropsProgressInfo()
@@ -99,7 +103,22 @@ void ViewPropsProgressInfo::closeEvent(QCloseEvent* event)
{
m_timer->stop();
m_applyViewPropsJob = 0;
- KDialog::closeEvent(event);
+ QDialog::closeEvent(event);
+}
+
+void ViewPropsProgressInfo::reject()
+{
+ if (m_dirSizeJob) {
+ m_dirSizeJob->kill();
+ m_dirSizeJob = 0;
+ }
+
+ if (m_applyViewPropsJob) {
+ m_applyViewPropsJob->kill();
+ m_applyViewPropsJob = 0;
+ }
+
+ QDialog::reject();
}
void ViewPropsProgressInfo::updateProgress()
@@ -132,16 +151,3 @@ void ViewPropsProgressInfo::applyViewProperties()
this, &ViewPropsProgressInfo::close);
}
-void ViewPropsProgressInfo::cancelApplying()
-{
- if (m_dirSizeJob) {
- m_dirSizeJob->kill();
- m_dirSizeJob = 0;
- }
-
- if (m_applyViewPropsJob) {
- m_applyViewPropsJob->kill();
- m_applyViewPropsJob = 0;
- }
-}
-
diff --git a/src/settings/viewpropsprogressinfo.h b/src/settings/viewpropsprogressinfo.h
index 13089b79f..cd7aa50ce 100644
--- a/src/settings/viewpropsprogressinfo.h
+++ b/src/settings/viewpropsprogressinfo.h
@@ -20,7 +20,7 @@
#ifndef VIEWPROPSPROGRESSINFO_H
#define VIEWPROPSPROGRESSINFO_H
-#include <KDialog>
+#include <QDialog>
#include <kio/directorysizejob.h>
#include <QUrl>
@@ -37,7 +37,7 @@ class ViewProperties;
* It is possible to cancel the applying. In this case the already applied
* view properties won't get reverted.
*/
-class ViewPropsProgressInfo : public KDialog
+class ViewPropsProgressInfo : public QDialog
{
Q_OBJECT
@@ -58,10 +58,12 @@ public:
protected:
virtual void closeEvent(QCloseEvent* event) Q_DECL_OVERRIDE;
+public slots:
+ void reject() Q_DECL_OVERRIDE;
+
private slots:
void updateProgress();
void applyViewProperties();
- void cancelApplying();
private:
QUrl m_dir;