diff options
Diffstat (limited to 'src/settings')
57 files changed, 557 insertions, 634 deletions
diff --git a/src/settings/additionalinfodialog.cpp b/src/settings/additionalinfodialog.cpp index 0de639540..783f5685e 100644 --- a/src/settings/additionalinfodialog.cpp +++ b/src/settings/additionalinfodialog.cpp @@ -21,33 +21,39 @@ #include <config-baloo.h> -#include <KLocale> +#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.h> + #include <Baloo/IndexerConfig> #endif 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; @@ -56,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) { @@ -71,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, SIGNAL(okClicked()), this, SLOT(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 @@ -95,7 +103,7 @@ QList<QByteArray> AdditionalInfoDialog::visibleRoles() const return m_visibleRoles; } -void AdditionalInfoDialog::slotOk() +void AdditionalInfoDialog::accept() { m_visibleRoles.clear(); @@ -108,6 +116,6 @@ void AdditionalInfoDialog::slotOk() } ++index; } -} -#include "additionalinfodialog.moc" + QDialog::accept(); +} diff --git a/src/settings/additionalinfodialog.h b/src/settings/additionalinfodialog.h index dd51768e5..fd72a7ce1 100644 --- a/src/settings/additionalinfodialog.h +++ b/src/settings/additionalinfodialog.h @@ -20,16 +20,15 @@ #ifndef ADDITIONALINFODIALOG_H #define ADDITIONALINFODIALOG_H -#include <KDialog> +#include <QDialog> #include <QList> #include <QListWidget> -class QCheckBox; /** * @brief Dialog for changing the additional information shown in the view. */ -class AdditionalInfoDialog : public KDialog +class AdditionalInfoDialog : public QDialog { Q_OBJECT @@ -38,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/applyviewpropsjob.cpp b/src/settings/applyviewpropsjob.cpp index 4bc77caee..591966759 100644 --- a/src/settings/applyviewpropsjob.cpp +++ b/src/settings/applyviewpropsjob.cpp @@ -23,7 +23,7 @@ #include "applyviewpropsjob.h" #include <views/viewproperties.h> -ApplyViewPropsJob::ApplyViewPropsJob(const KUrl& dir, +ApplyViewPropsJob::ApplyViewPropsJob(const QUrl& dir, const ViewProperties& viewProps) : KIO::Job(), m_viewProps(0), @@ -38,8 +38,8 @@ ApplyViewPropsJob::ApplyViewPropsJob(const KUrl& dir, m_viewProps->setSortOrder(viewProps.sortOrder()); KIO::ListJob* listJob = KIO::listRecursive(dir, KIO::HideProgressInfo); - connect(listJob, SIGNAL(entries(KIO::Job*,KIO::UDSEntryList)), - SLOT(slotEntries(KIO::Job*,KIO::UDSEntryList))); + connect(listJob, &KIO::ListJob::entries, + this, &ApplyViewPropsJob::slotEntries); addSubjob(listJob); } @@ -56,8 +56,9 @@ void ApplyViewPropsJob::slotEntries(KIO::Job*, const KIO::UDSEntryList& list) if (name != QLatin1String(".") && name != QLatin1String("..") && entry.isDir()) { ++m_progress; - KUrl url(m_dir); - url.addPath(name); + QUrl url(m_dir); + url = url.adjusted(QUrl::StripTrailingSlash); + url.setPath(url.path() + '/' + name); Q_ASSERT(m_viewProps); @@ -76,4 +77,3 @@ void ApplyViewPropsJob::slotResult(KJob* job) emitResult(); } -#include "applyviewpropsjob.moc" diff --git a/src/settings/applyviewpropsjob.h b/src/settings/applyviewpropsjob.h index 68fdcc46b..ea9688718 100644 --- a/src/settings/applyviewpropsjob.h +++ b/src/settings/applyviewpropsjob.h @@ -24,8 +24,7 @@ #define APPLYVIEWPROPSJOB_H #include <KIO/Job> -#include <KFileItem> -#include <KUrl> +#include <QUrl> class ViewProperties; @@ -60,19 +59,19 @@ public: * @param viewProps View properties for the directory \a dir including its * sub directories. */ - ApplyViewPropsJob(const KUrl& dir, const ViewProperties& viewProps); + ApplyViewPropsJob(const QUrl& dir, const ViewProperties& viewProps); virtual ~ApplyViewPropsJob(); int progress() const; private slots: - virtual void slotResult(KJob* job); + virtual void slotResult(KJob* job) Q_DECL_OVERRIDE; void slotEntries(KIO::Job*, const KIO::UDSEntryList&); private: ViewProperties* m_viewProps; int m_currentItem; int m_progress; - KUrl m_dir; + QUrl m_dir; }; inline int ApplyViewPropsJob::progress() const diff --git a/src/settings/dolphin_compactmodesettings.kcfg b/src/settings/dolphin_compactmodesettings.kcfg index b9000c8e2..93f9947ab 100644 --- a/src/settings/dolphin_compactmodesettings.kcfg +++ b/src/settings/dolphin_compactmodesettings.kcfg @@ -4,7 +4,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0 http://www.kde.org/standards/kcfg/1.0/kcfg.xsd"> - <include>kglobalsettings.h</include> + <include>QFontDatabase</include> <include>kiconloader.h</include> <kcfgfile name="dolphinrc"/> <group name="CompactMode"> @@ -14,11 +14,11 @@ </entry> <entry name="FontFamily" type="String"> <label>Font family</label> - <default code="true">KGlobalSettings::generalFont().family()</default> + <default code="true">QFontDatabase::systemFont(QFontDatabase::GeneralFont).family()</default> </entry> <entry name="FontSize" type="Double"> <label>Font size</label> - <default code="true">KGlobalSettings::generalFont().pointSizeF()</default> + <default code="true">QFontDatabase::systemFont(QFontDatabase::GeneralFont).pointSizeF()</default> </entry> <entry name="ItalicFont" type="Bool"> <label>Italic</label> diff --git a/src/settings/dolphin_detailsmodesettings.kcfg b/src/settings/dolphin_detailsmodesettings.kcfg index 64e99898a..e9a8fb28d 100644 --- a/src/settings/dolphin_detailsmodesettings.kcfg +++ b/src/settings/dolphin_detailsmodesettings.kcfg @@ -5,12 +5,12 @@ xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0 http://www.kde.org/standards/kcfg/1.0/kcfg.xsd"> <include>kiconloader.h</include> - <include>kglobalsettings.h</include> + <include>QFontDatabase</include> <kcfgfile name="dolphinrc"/> <group name="DetailsMode"> <entry name="FontFamily" type="String"> <label>Font family</label> - <default code="true">KGlobalSettings::generalFont().family()</default> + <default code="true">QFontDatabase::systemFont(QFontDatabase::GeneralFont).family()</default> </entry> <entry name="UseSystemFont" type="Bool"> <label>Use system font</label> @@ -18,7 +18,7 @@ </entry> <entry name="FontSize" type="Double"> <label>Font size</label> - <default code="true">KGlobalSettings::generalFont().pointSizeF()</default> + <default code="true">QFontDatabase::systemFont(QFontDatabase::GeneralFont).pointSizeF()</default> </entry> <entry name="ItalicFont" type="Bool"> <label>Italic</label> diff --git a/src/settings/dolphin_generalsettings.kcfg b/src/settings/dolphin_generalsettings.kcfg index 849a9c75c..9ff14d1f7 100644 --- a/src/settings/dolphin_generalsettings.kcfg +++ b/src/settings/dolphin_generalsettings.kcfg @@ -5,9 +5,10 @@ xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0 http://www.kde.org/standards/kcfg/1.0/kcfg.xsd"> <include>QDir</include> - <include>KUrl</include> - <include>kglobalsettings.h</include> + <include>QUrl</include> + <include>KCompletion</include> <kcfgfile name="dolphinrc"/> + <signal name="naturalSortingChanged" /> <group name="General"> <entry name="EditableUrl" type="Bool"> <label>Should the URL be editable for the user</label> @@ -15,7 +16,7 @@ </entry> <entry name="UrlCompletionMode" type="Enum"> <label>Text completion mode of the URL Navigator</label> - <default code="true">KGlobalSettings::completionMode()</default> + <default>KCompletion::CompletionPopup</default> </entry> <entry name="ShowFullPath" type="Bool"> <label>Should the full path be shown inside the location bar</label> @@ -31,7 +32,7 @@ </entry> <entry name="HomeUrl" type="String"> <label>Home URL</label> - <default code="true">KUrl(QDir::homePath()).prettyUrl()</default> + <default code="true">QUrl::fromLocalFile(QDir::homePath()).toDisplayString(QUrl::PreferLocalFile)</default> </entry> <entry name="SplitView" type="Bool"> <label>Split the view into two panes</label> @@ -82,7 +83,7 @@ </entry> <entry name="ShowSpaceInfo" type="Bool"> <label>Show the space information in the statusbar</label> - <default>false</default> + <default>true</default> </entry> <entry name="LockPanels" type="Bool"> <label>Lock the layout of the panels</label> @@ -92,5 +93,10 @@ <label>Enlarge Small Previews</label> <default>true</default> </entry> + <entry name="NaturalSorting" type="Bool"> + <label>Natural sorting of items</label> + <default>true</default> + <emit signal="naturalSortingChanged" /> + </entry> </group> </kcfg> diff --git a/src/settings/dolphin_iconsmodesettings.kcfg b/src/settings/dolphin_iconsmodesettings.kcfg index 52cd9a28c..9b286d139 100644 --- a/src/settings/dolphin_iconsmodesettings.kcfg +++ b/src/settings/dolphin_iconsmodesettings.kcfg @@ -4,7 +4,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0 http://www.kde.org/standards/kcfg/1.0/kcfg.xsd"> - <include>kglobalsettings.h</include> + <include>QFontDatabase</include> <include>kiconloader.h</include> <kcfgfile name="dolphinrc"/> <group name="IconsMode"> @@ -14,11 +14,11 @@ </entry> <entry name="FontFamily" type="String"> <label>Font family</label> - <default code="true">KGlobalSettings::generalFont().family()</default> + <default code="true">QFontDatabase::systemFont(QFontDatabase::GeneralFont).family()</default> </entry> <entry name="FontSize" type="Double"> <label>Font size</label> - <default code="true">KGlobalSettings::generalFont().pointSizeF()</default> + <default code="true">QFontDatabase::systemFont(QFontDatabase::GeneralFont).pointSizeF()</default> </entry> <entry name="ItalicFont" type="Bool"> <label>Italic</label> diff --git a/src/settings/dolphinsettingsdialog.cpp b/src/settings/dolphinsettingsdialog.cpp index 609e2ab92..820fc0e68 100644 --- a/src/settings/dolphinsettingsdialog.cpp +++ b/src/settings/dolphinsettingsdialog.cpp @@ -20,7 +20,6 @@ #include "dolphinsettingsdialog.h" -#include <dolphinapplication.h> #include <dolphinmainwindow.h> #include "dolphin_generalsettings.h" #include "general/generalsettingspage.h" @@ -30,11 +29,14 @@ #include "viewmodes/viewsettingspage.h" #include "trash/trashsettingspage.h" -#include <KLocale> -#include <KMessageBox> -#include <KIcon> +#include <KWindowConfig> +#include <KLocalizedString> +#include <QIcon> -DolphinSettingsDialog::DolphinSettingsDialog(const KUrl& url, QWidget* parent) : +#include <QPushButton> +#include <QDialogButtonBox> + +DolphinSettingsDialog::DolphinSettingsDialog(const QUrl& url, QWidget* parent) : KPageDialog(parent), m_pages() @@ -43,55 +45,58 @@ DolphinSettingsDialog::DolphinSettingsDialog(const KUrl& url, QWidget* parent) : setMinimumSize(QSize(512, minSize.height())); setFaceType(List); - setCaption(i18nc("@title:window", "Dolphin Preferences")); - setButtons(Ok | Apply | Cancel | Default); - enableButtonApply(false); - setDefaultButton(Ok); + setWindowTitle(i18nc("@title:window", "Dolphin Preferences")); + QDialogButtonBox* box = new QDialogButtonBox(QDialogButtonBox::Ok + | QDialogButtonBox::Apply | QDialogButtonBox::Cancel | QDialogButtonBox::RestoreDefaults); + box->button(QDialogButtonBox::Apply)->setEnabled(false); + box->button(QDialogButtonBox::Ok)->setDefault(true); + setButtonBox(box); + + connect(box->button(QDialogButtonBox::Ok), &QAbstractButton::clicked, this, &DolphinSettingsDialog::applySettings); + connect(box->button(QDialogButtonBox::Apply), &QAbstractButton::clicked, this, &DolphinSettingsDialog::applySettings); + connect(box->button(QDialogButtonBox::RestoreDefaults), &QAbstractButton::clicked, this, &DolphinSettingsDialog::restoreDefaults); // Startup StartupSettingsPage* startupSettingsPage = new StartupSettingsPage(url, this); KPageWidgetItem* startupSettingsFrame = addPage(startupSettingsPage, i18nc("@title:group", "Startup")); - startupSettingsFrame->setIcon(KIcon("go-home")); - connect(startupSettingsPage, SIGNAL(changed()), this, SLOT(enableApply())); + startupSettingsFrame->setIcon(QIcon::fromTheme("go-home")); + connect(startupSettingsPage, &StartupSettingsPage::changed, this, &DolphinSettingsDialog::enableApply); // View Modes ViewSettingsPage* viewSettingsPage = new ViewSettingsPage(this); KPageWidgetItem* viewSettingsFrame = addPage(viewSettingsPage, i18nc("@title:group", "View Modes")); - viewSettingsFrame->setIcon(KIcon("view-choose")); - connect(viewSettingsPage, SIGNAL(changed()), this, SLOT(enableApply())); + viewSettingsFrame->setIcon(QIcon::fromTheme("view-choose")); + connect(viewSettingsPage, &ViewSettingsPage::changed, this, &DolphinSettingsDialog::enableApply); // Navigation NavigationSettingsPage* navigationSettingsPage = new NavigationSettingsPage(this); KPageWidgetItem* navigationSettingsFrame = addPage(navigationSettingsPage, i18nc("@title:group", "Navigation")); - navigationSettingsFrame->setIcon(KIcon("input-mouse")); - connect(navigationSettingsPage, SIGNAL(changed()), this, SLOT(enableApply())); + navigationSettingsFrame->setIcon(QIcon::fromTheme("input-mouse")); + connect(navigationSettingsPage, &NavigationSettingsPage::changed, this, &DolphinSettingsDialog::enableApply); // Services ServicesSettingsPage* servicesSettingsPage = new ServicesSettingsPage(this); KPageWidgetItem* servicesSettingsFrame = addPage(servicesSettingsPage, i18nc("@title:group", "Services")); - servicesSettingsFrame->setIcon(KIcon("services")); - connect(servicesSettingsPage, SIGNAL(changed()), this, SLOT(enableApply())); + servicesSettingsFrame->setIcon(QIcon::fromTheme("services")); + connect(servicesSettingsPage, &ServicesSettingsPage::changed, this, &DolphinSettingsDialog::enableApply); // Trash TrashSettingsPage* trashSettingsPage = new TrashSettingsPage(this); KPageWidgetItem* trashSettingsFrame = addPage(trashSettingsPage, i18nc("@title:group", "Trash")); - trashSettingsFrame->setIcon(KIcon("user-trash")); - connect(trashSettingsPage, SIGNAL(changed()), this, SLOT(enableApply())); + trashSettingsFrame->setIcon(QIcon::fromTheme("user-trash")); + connect(trashSettingsPage, &TrashSettingsPage::changed, this, &DolphinSettingsDialog::enableApply); // General GeneralSettingsPage* generalSettingsPage = new GeneralSettingsPage(url, this); KPageWidgetItem* generalSettingsFrame = addPage(generalSettingsPage, i18nc("@title:group General settings", "General")); - generalSettingsFrame->setIcon(KIcon("system-run")); - connect(generalSettingsPage, SIGNAL(changed()), this, SLOT(enableApply())); - - const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "SettingsDialog"); - restoreDialogSize(dialogConfig); + generalSettingsFrame->setIcon(QIcon::fromTheme("system-run")); + connect(generalSettingsPage, &GeneralSettingsPage::changed, this, &DolphinSettingsDialog::enableApply); m_pages.append(startupSettingsPage); m_pages.append(viewSettingsPage); @@ -99,28 +104,20 @@ DolphinSettingsDialog::DolphinSettingsDialog(const KUrl& url, QWidget* parent) : m_pages.append(servicesSettingsPage); m_pages.append(trashSettingsPage); m_pages.append(generalSettingsPage); + + const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "SettingsDialog"); + KWindowConfig::restoreWindowSize(windowHandle(), dialogConfig); } DolphinSettingsDialog::~DolphinSettingsDialog() { KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "SettingsDialog"); - saveDialogSize(dialogConfig); -} - -void DolphinSettingsDialog::slotButtonClicked(int button) -{ - if ((button == Ok) || (button == Apply)) { - applySettings(); - } else if (button == Default) { - restoreDefaults(); - } - - KPageDialog::slotButtonClicked(button); + KWindowConfig::saveWindowSize(windowHandle(), dialogConfig); } void DolphinSettingsDialog::enableApply() { - enableButtonApply(true); + buttonBox()->button(QDialogButtonBox::Apply)->setEnabled(true); } void DolphinSettingsDialog::applySettings() @@ -136,10 +133,9 @@ void DolphinSettingsDialog::applySettings() // Reset the modified startup settings hint. The changed startup settings // have been applied already due to emitting settingsChanged(). settings->setModifiedStartupSettings(false); - settings->writeConfig(); + settings->save(); } - - enableButtonApply(false); + buttonBox()->button(QDialogButtonBox::Apply)->setEnabled(false); } void DolphinSettingsDialog::restoreDefaults() @@ -149,4 +145,3 @@ void DolphinSettingsDialog::restoreDefaults() } } -#include "dolphinsettingsdialog.moc" diff --git a/src/settings/dolphinsettingsdialog.h b/src/settings/dolphinsettingsdialog.h index 2de195017..93f714799 100644 --- a/src/settings/dolphinsettingsdialog.h +++ b/src/settings/dolphinsettingsdialog.h @@ -23,7 +23,7 @@ #include <kpagedialog.h> -class KUrl; +class QUrl; class SettingsPageBase; /** @@ -36,21 +36,15 @@ class DolphinSettingsDialog : public KPageDialog Q_OBJECT public: - explicit DolphinSettingsDialog(const KUrl& url, QWidget* parent = 0); + explicit DolphinSettingsDialog(const QUrl& url, QWidget* parent = 0); virtual ~DolphinSettingsDialog(); signals: void settingsChanged(); -protected slots: - /** @see KDialog::slotButtonClicked() */ - virtual void slotButtonClicked(int button); - private slots: /** Enables the Apply button. */ void enableApply(); - -private: void applySettings(); void restoreDefaults(); diff --git a/src/settings/general/behaviorsettingspage.cpp b/src/settings/general/behaviorsettingspage.cpp index cbbde1d7c..093a1f4e1 100644 --- a/src/settings/general/behaviorsettingspage.cpp +++ b/src/settings/general/behaviorsettingspage.cpp @@ -22,20 +22,16 @@ #include "dolphin_generalsettings.h" -#include <KComboBox> -#include <KDialog> -#include <KLocale> +#include <KLocalizedString> #include <QCheckBox> #include <QGroupBox> -#include <QHBoxLayout> -#include <QLabel> #include <QRadioButton> #include <QVBoxLayout> #include <views/viewproperties.h> -BehaviorSettingsPage::BehaviorSettingsPage(const KUrl& url, QWidget* parent) : +BehaviorSettingsPage::BehaviorSettingsPage(const QUrl& url, QWidget* parent) : SettingsPageBase(parent), m_url(url), m_localViewProps(0), @@ -79,12 +75,12 @@ BehaviorSettingsPage::BehaviorSettingsPage(const KUrl& url, QWidget* parent) : loadSettings(); - connect(m_localViewProps, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_globalViewProps, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_showToolTips, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_showSelectionToggle, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_naturalSorting, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_renameInline, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + connect(m_localViewProps, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed); + connect(m_globalViewProps, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed); + connect(m_showToolTips, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed); + connect(m_showSelectionToggle, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed); + connect(m_naturalSorting, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed); + connect(m_renameInline, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed); } BehaviorSettingsPage::~BehaviorSettingsPage() @@ -101,8 +97,9 @@ void BehaviorSettingsPage::applySettings() settings->setShowToolTips(m_showToolTips->isChecked()); settings->setShowSelectionToggle(m_showSelectionToggle->isChecked()); + settings->setNaturalSorting(m_naturalSorting->isChecked()); settings->setRenameInline(m_renameInline->isChecked()); - settings->writeConfig(); + settings->save(); if (useGlobalViewProps) { // Remember the global view properties by applying the current view properties. @@ -112,13 +109,6 @@ void BehaviorSettingsPage::applySettings() ViewProperties globalProps(m_url); globalProps.setDirProperties(props); } - - const bool naturalSorting = m_naturalSorting->isChecked(); - if (KGlobalSettings::naturalSorting() != naturalSorting) { - KConfigGroup group(KGlobal::config(), "KDE"); - group.writeEntry("NaturalSorting", naturalSorting, KConfig::Persistent | KConfig::Global); - KGlobalSettings::emitChange(KGlobalSettings::NaturalSortingChanged); - } } void BehaviorSettingsPage::restoreDefaults() @@ -137,8 +127,7 @@ void BehaviorSettingsPage::loadSettings() m_showToolTips->setChecked(GeneralSettings::showToolTips()); m_showSelectionToggle->setChecked(GeneralSettings::showSelectionToggle()); - m_naturalSorting->setChecked(KGlobalSettings::naturalSorting()); + m_naturalSorting->setChecked(GeneralSettings::naturalSorting()); m_renameInline->setChecked(GeneralSettings::renameInline()); } -#include "behaviorsettingspage.moc" diff --git a/src/settings/general/behaviorsettingspage.h b/src/settings/general/behaviorsettingspage.h index 7a9c2f027..6e491696c 100644 --- a/src/settings/general/behaviorsettingspage.h +++ b/src/settings/general/behaviorsettingspage.h @@ -21,9 +21,8 @@ #define BEHAVIORSETTINGSPAGE_H #include <settings/settingspagebase.h> -#include <KUrl> +#include <QUrl> -class KComboBox; class QCheckBox; class QLabel; class QRadioButton; @@ -36,20 +35,20 @@ class BehaviorSettingsPage : public SettingsPageBase Q_OBJECT public: - BehaviorSettingsPage(const KUrl& url, QWidget* parent); + BehaviorSettingsPage(const QUrl &url, QWidget* parent); virtual ~BehaviorSettingsPage(); /** @see SettingsPageBase::applySettings() */ - virtual void applySettings(); + virtual void applySettings() Q_DECL_OVERRIDE; /** @see SettingsPageBase::restoreDefaults() */ - virtual void restoreDefaults(); + virtual void restoreDefaults() Q_DECL_OVERRIDE; private: void loadSettings(); private: - KUrl m_url; + QUrl m_url; QRadioButton* m_localViewProps; QRadioButton* m_globalViewProps; diff --git a/src/settings/general/configurepreviewplugindialog.cpp b/src/settings/general/configurepreviewplugindialog.cpp index 3ca08dfd0..15cd92667 100644 --- a/src/settings/general/configurepreviewplugindialog.cpp +++ b/src/settings/general/configurepreviewplugindialog.cpp @@ -19,63 +19,66 @@ #include "configurepreviewplugindialog.h" -#include <KLibrary> -#include <KLocale> -#include <KIO/NetAccess> -#include <kio/thumbcreator.h> +#include <KPluginLoader> +#include <KLocalizedString> +#include <KJobWidgets> +#include <KIO/JobUiDelegate> +#include <KIO/DeleteJob> +#include <KIO/ThumbCreator> -#include <QApplication> -#include <QDir> +#include <QUrl> +#include <QLibrary> #include <QVBoxLayout> +#include <QStandardPaths> +#include <QDialogButtonBox> +#include <QPushButton> ConfigurePreviewPluginDialog::ConfigurePreviewPluginDialog(const QString& pluginName, const QString& desktopEntryName, QWidget* parent) : - KDialog(parent), - m_configurationWidget(0), - m_previewPlugin(0) + QDialog(parent) { - KLibrary library(desktopEntryName); - if (library.load()) { - newCreator create = (newCreator)library.resolveFunction("new_creator"); + QSharedPointer<ThumbCreator> previewPlugin; + const QString pluginPath = KPluginLoader::findPlugin(desktopEntryName); + if (!pluginPath.isEmpty()) { + newCreator create = (newCreator)QLibrary::resolve(pluginPath, "new_creator"); if (create) { - m_previewPlugin = dynamic_cast<ThumbCreatorV2*>(create()); + previewPlugin.reset(dynamic_cast<ThumbCreator*>(create())); } } - 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); - QWidget* mainWidget = new QWidget(this); - mainWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); - QVBoxLayout* layout = new QVBoxLayout(mainWidget); - if (m_previewPlugin) { - m_configurationWidget = m_previewPlugin->createConfigurationWidget(); - layout->addWidget(m_configurationWidget); - } - layout->addStretch(1); + auto layout = new QVBoxLayout(this); + setLayout(layout); - setMainWidget(mainWidget); + if (previewPlugin) { + auto configurationWidget = previewPlugin->createConfigurationWidget(); + configurationWidget->setParent(this); + layout->addWidget(configurationWidget); - connect(this, SIGNAL(okClicked()), this, SLOT(slotOk())); -} + layout->addStretch(); -ConfigurePreviewPluginDialog::~ConfigurePreviewPluginDialog() -{ -} + 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. + previewPlugin->writeConfiguration(configurationWidget); -void ConfigurePreviewPluginDialog::slotOk() -{ - m_previewPlugin->writeConfiguration(m_configurationWidget); - // 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. - QApplication::changeOverrideCursor(Qt::BusyCursor); - KIO::NetAccess::del(QString(QDir::homePath() + "/.thumbnails/"), this); - QApplication::restoreOverrideCursor(); + // http://specifications.freedesktop.org/thumbnail-spec/thumbnail-spec-latest.html#DIRECTORY + const QString thumbnailsPath = QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation) + QLatin1String("/thumbnails/"); + 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); -#include "configurepreviewplugindialog.moc" + 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 5a3f5354a..620caeb51 100644 --- a/src/settings/general/configurepreviewplugindialog.h +++ b/src/settings/general/configurepreviewplugindialog.h @@ -20,14 +20,12 @@ #ifndef CONFIGUREPREVIEWPLUGINDIALOG_H #define CONFIGUREPREVIEWPLUGINDIALOG_H -#include <KDialog> - -class ThumbCreatorV2; +#include <QDialog> /** * @brief Dialog for configuring preview-plugins. */ -class ConfigurePreviewPluginDialog : public KDialog +class ConfigurePreviewPluginDialog : public QDialog { Q_OBJECT @@ -39,17 +37,10 @@ public: * widget. * @param parent Parent widget. */ - explicit ConfigurePreviewPluginDialog(const QString& pluginName, - const QString& desktopEntryName, - QWidget* parent = 0); - virtual ~ConfigurePreviewPluginDialog(); - -private slots: - void slotOk(); - -private: - QWidget* m_configurationWidget; - ThumbCreatorV2* m_previewPlugin; + ConfigurePreviewPluginDialog(const QString& pluginName, + const QString& desktopEntryName, + QWidget* parent); + virtual ~ConfigurePreviewPluginDialog() = default; }; #endif diff --git a/src/settings/general/confirmationssettingspage.cpp b/src/settings/general/confirmationssettingspage.cpp index ab23a1908..264024abd 100644 --- a/src/settings/general/confirmationssettingspage.cpp +++ b/src/settings/general/confirmationssettingspage.cpp @@ -21,8 +21,7 @@ #include <dolphin_generalsettings.h> -#include <KDialog> -#include <KLocale> +#include <KLocalizedString> #include <QCheckBox> #include <QLabel> @@ -31,6 +30,7 @@ namespace { const bool ConfirmTrash = false; const bool ConfirmDelete = true; + const bool ConfirmScriptExecution = true; } ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) : @@ -48,6 +48,8 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) : "Moving files or folders to trash"), this); m_confirmDelete = new QCheckBox(i18nc("@option:check Ask for confirmation when", "Deleting files or folders"), this); + m_confirmScriptExecution = new QCheckBox(i18nc("@option:check Ask for confirmation when", + "Executing scripts or desktop files"), this); QLabel* confirmLabelDolphin = new QLabel(i18nc("@title:group", "Ask for confirmation when:"), this); confirmLabelDolphin->setWordWrap(true); @@ -55,22 +57,20 @@ 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->addSpacing(KDialog::spacingHint()); + topLayout->addWidget(m_confirmScriptExecution); topLayout->addWidget(confirmLabelDolphin); - topLayout->addSpacing(KDialog::spacingHint()); topLayout->addWidget(m_confirmClosingMultipleTabs); topLayout->addStretch(); loadSettings(); - connect(m_confirmMoveToTrash, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_confirmDelete, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_confirmClosingMultipleTabs, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + connect(m_confirmMoveToTrash, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); + connect(m_confirmDelete, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); + connect(m_confirmScriptExecution, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); + connect(m_confirmClosingMultipleTabs, &QCheckBox::toggled, this, &ConfirmationsSettingsPage::changed); } ConfirmationsSettingsPage::~ConfirmationsSettingsPage() @@ -85,9 +85,15 @@ void ConfirmationsSettingsPage::applySettings() confirmationGroup.writeEntry("ConfirmDelete", m_confirmDelete->isChecked()); confirmationGroup.sync(); + if (m_confirmScriptExecution->isChecked()) { + KConfigGroup scriptExecutionGroup(kioConfig, "Executable scripts"); + scriptExecutionGroup.writeEntry("behaviourOnLaunch", "alwaysAsk"); + scriptExecutionGroup.sync(); + } + GeneralSettings* settings = GeneralSettings::self(); settings->setConfirmClosingMultipleTabs(m_confirmClosingMultipleTabs->isChecked()); - settings->writeConfig(); + settings->save(); } void ConfirmationsSettingsPage::restoreDefaults() @@ -99,6 +105,7 @@ void ConfirmationsSettingsPage::restoreDefaults() m_confirmMoveToTrash->setChecked(ConfirmTrash); m_confirmDelete->setChecked(ConfirmDelete); + m_confirmScriptExecution->setChecked(ConfirmScriptExecution); } void ConfirmationsSettingsPage::loadSettings() @@ -108,7 +115,10 @@ void ConfirmationsSettingsPage::loadSettings() m_confirmMoveToTrash->setChecked(confirmationGroup.readEntry("ConfirmTrash", ConfirmTrash)); m_confirmDelete->setChecked(confirmationGroup.readEntry("ConfirmDelete", ConfirmDelete)); + const KConfigGroup scriptExecutionGroup(KSharedConfig::openConfig("kiorc"), "Executable scripts"); + const QString value = scriptExecutionGroup.readEntry("behaviourOnLaunch", "alwaysAsk"); + m_confirmScriptExecution->setChecked(value == "alwaysAsk"); + m_confirmClosingMultipleTabs->setChecked(GeneralSettings::confirmClosingMultipleTabs()); } -#include "confirmationssettingspage.moc" diff --git a/src/settings/general/confirmationssettingspage.h b/src/settings/general/confirmationssettingspage.h index 45f0be1fc..e702fe8ae 100644 --- a/src/settings/general/confirmationssettingspage.h +++ b/src/settings/general/confirmationssettingspage.h @@ -35,10 +35,10 @@ public: virtual ~ConfirmationsSettingsPage(); /** @see SettingsPageBase::applySettings() */ - virtual void applySettings(); + virtual void applySettings() Q_DECL_OVERRIDE; /** @see SettingsPageBase::restoreDefaults() */ - virtual void restoreDefaults(); + virtual void restoreDefaults() Q_DECL_OVERRIDE; private: void loadSettings(); @@ -47,6 +47,7 @@ private: QCheckBox* m_confirmMoveToTrash; QCheckBox* m_confirmDelete; QCheckBox* m_confirmClosingMultipleTabs; + QCheckBox* m_confirmScriptExecution; }; #endif diff --git a/src/settings/general/generalsettingspage.cpp b/src/settings/general/generalsettingspage.cpp index 18e152880..d8f61ef90 100644 --- a/src/settings/general/generalsettingspage.cpp +++ b/src/settings/general/generalsettingspage.cpp @@ -26,42 +26,39 @@ #include <settings/settingspagebase.h> #include "statusbarsettingspage.h" -#include <KDialog> -#include <KLocale> -#include <KIconLoader> -#include <KTabWidget> +#include <KLocalizedString> +#include <QTabWidget> #include <QVBoxLayout> -GeneralSettingsPage::GeneralSettingsPage(const KUrl& url, QWidget* parent) : +GeneralSettingsPage::GeneralSettingsPage(const QUrl& url, QWidget* parent) : SettingsPageBase(parent), m_pages() { QVBoxLayout* topLayout = new QVBoxLayout(this); topLayout->setMargin(0); - topLayout->setSpacing(KDialog::spacingHint()); - KTabWidget* tabWidget = new KTabWidget(this); + QTabWidget* tabWidget = new QTabWidget(this); // initialize 'Behavior' tab BehaviorSettingsPage* behaviorPage = new BehaviorSettingsPage(url, tabWidget); tabWidget->addTab(behaviorPage, i18nc("@title:tab Behavior settings", "Behavior")); - connect(behaviorPage, SIGNAL(changed()), this, SIGNAL(changed())); + connect(behaviorPage, &BehaviorSettingsPage::changed, this, &GeneralSettingsPage::changed); // initialize 'Previews' tab PreviewsSettingsPage* previewsPage = new PreviewsSettingsPage(tabWidget); tabWidget->addTab(previewsPage, i18nc("@title:tab Previews settings", "Previews")); - connect(previewsPage, SIGNAL(changed()), this, SIGNAL(changed())); + connect(previewsPage, &PreviewsSettingsPage::changed, this, &GeneralSettingsPage::changed); // initialize 'Context Menu' tab ConfirmationsSettingsPage* confirmationsPage = new ConfirmationsSettingsPage(tabWidget); tabWidget->addTab(confirmationsPage, i18nc("@title:tab Confirmations settings", "Confirmations")); - connect(confirmationsPage, SIGNAL(changed()), this, SIGNAL(changed())); + connect(confirmationsPage, &ConfirmationsSettingsPage::changed, this, &GeneralSettingsPage::changed); // initialize 'Status Bar' tab StatusBarSettingsPage* statusBarPage = new StatusBarSettingsPage(tabWidget); tabWidget->addTab(statusBarPage, i18nc("@title:tab Status Bar settings", "Status Bar")); - connect(statusBarPage, SIGNAL(changed()), this, SIGNAL(changed())); + connect(statusBarPage, &StatusBarSettingsPage::changed, this, &GeneralSettingsPage::changed); m_pages.append(behaviorPage); m_pages.append(previewsPage); @@ -89,4 +86,3 @@ void GeneralSettingsPage::restoreDefaults() } } -#include "generalsettingspage.moc" diff --git a/src/settings/general/generalsettingspage.h b/src/settings/general/generalsettingspage.h index 0d28664f5..7073258ff 100644 --- a/src/settings/general/generalsettingspage.h +++ b/src/settings/general/generalsettingspage.h @@ -23,7 +23,7 @@ #include <QWidget> #include <settings/settingspagebase.h> -class KUrl; +class QUrl; class SettingsPageBase; /** @@ -40,14 +40,14 @@ class GeneralSettingsPage : public SettingsPageBase Q_OBJECT public: - GeneralSettingsPage(const KUrl& url, QWidget* parent); + GeneralSettingsPage(const QUrl& url, QWidget* parent); virtual ~GeneralSettingsPage(); /** @see SettingsPageBase::applySettings() */ - virtual void applySettings(); + virtual void applySettings() Q_DECL_OVERRIDE; /** @see SettingsPageBase::restoreDefaults() */ - virtual void restoreDefaults(); + virtual void restoreDefaults() Q_DECL_OVERRIDE; private: QList<SettingsPageBase*> m_pages; diff --git a/src/settings/general/previewssettingspage.cpp b/src/settings/general/previewssettingspage.cpp index 38b61b996..37e05197a 100644 --- a/src/settings/general/previewssettingspage.cpp +++ b/src/settings/general/previewssettingspage.cpp @@ -23,10 +23,7 @@ #include "configurepreviewplugindialog.h" #include <KConfigGroup> -#include <KDialog> -#include <KGlobal> -#include <KLocale> -#include <KNumInput> +#include <KLocalizedString> #include <KServiceTypeTrader> #include <KService> @@ -42,6 +39,7 @@ #include <QScrollBar> #include <QShowEvent> #include <QSlider> +#include <QSpinBox> #include <QSortFilterProxyModel> #include <QVBoxLayout> @@ -65,8 +63,8 @@ PreviewsSettingsPage::PreviewsSettingsPage(QWidget* parent) : m_listView = new QListView(this); ServiceItemDelegate* delegate = new ServiceItemDelegate(m_listView, m_listView); - connect(delegate, SIGNAL(requestServiceConfiguration(QModelIndex)), - this, SLOT(configureService(QModelIndex))); + connect(delegate, &ServiceItemDelegate::requestServiceConfiguration, + this, &PreviewsSettingsPage::configureService); ServiceModel* serviceModel = new ServiceModel(this); QSortFilterProxyModel* proxyModel = new QSortFilterProxyModel(this); @@ -79,7 +77,7 @@ PreviewsSettingsPage::PreviewsSettingsPage(QWidget* parent) : QLabel* remoteFileSizeLabel = new QLabel(i18nc("@label", "Skip previews for remote files above:"), this); - m_remoteFileSizeBox = new KIntSpinBox(this); + m_remoteFileSizeBox = new QSpinBox(this); m_remoteFileSizeBox->setSingleStep(1); m_remoteFileSizeBox->setSuffix(QLatin1String(" MB")); m_remoteFileSizeBox->setRange(0, 9999999); /* MB */ @@ -88,15 +86,14 @@ 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); loadSettings(); - connect(m_listView, SIGNAL(clicked(QModelIndex)), this, SIGNAL(changed())); - connect(m_remoteFileSizeBox, SIGNAL(valueChanged(int)), this, SIGNAL(changed())); + connect(m_listView, &QListView::clicked, this, &PreviewsSettingsPage::changed); + connect(m_remoteFileSizeBox, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &PreviewsSettingsPage::changed); } PreviewsSettingsPage::~PreviewsSettingsPage() @@ -119,7 +116,7 @@ void PreviewsSettingsPage::applySettings() } } - KConfigGroup globalConfig(KGlobal::config(), QLatin1String("PreviewSettings")); + KConfigGroup globalConfig(KSharedConfig::openConfig(), QLatin1String("PreviewSettings")); globalConfig.writeEntry("Plugins", m_enabledPreviewPlugins); const qulonglong maximumRemoteSize = static_cast<qulonglong>(m_remoteFileSizeBox->value()) * 1024 * 1024; @@ -159,7 +156,7 @@ void PreviewsSettingsPage::loadPreviewPlugins() QAbstractItemModel* model = m_listView->model(); const KService::List plugins = KServiceTypeTrader::self()->query(QLatin1String("ThumbCreator")); - foreach (const KSharedPtr<KService>& service, plugins) { + foreach (const KService::Ptr& service, plugins) { const bool configurable = service->property("Configurable", QVariant::Bool).toBool(); const bool show = m_enabledPreviewPlugins.contains(service->desktopEntryName()); @@ -176,29 +173,15 @@ void PreviewsSettingsPage::loadPreviewPlugins() void PreviewsSettingsPage::loadSettings() { - KConfigGroup globalConfig(KGlobal::config(), "PreviewSettings"); + KConfigGroup globalConfig(KSharedConfig::openConfig(), "PreviewSettings"); m_enabledPreviewPlugins = globalConfig.readEntry("Plugins", QStringList() << QLatin1String("directorythumbnail") << QLatin1String("imagethumbnail") << QLatin1String("jpegthumbnail")); - // If the user is upgrading from KDE <= 4.6, we must check if he had the 'jpegrotatedthumbnail' plugin enabled. - // This plugin does not exist any more in KDE >= 4.7, so we have to replace it with the 'jpegthumbnail' plugin. - // - // Note that the upgrade to the correct plugin is done already in KFilePreviewGenerator. However, if Konqueror is - // opened in web browsing mode and the Settings dialog is opened, we might end up here before KFilePreviewGenerator's - // constructor is ever called -> the plugin replacement should be done here as well. - if (m_enabledPreviewPlugins.contains(QLatin1String("jpegrotatedthumbnail"))) { - m_enabledPreviewPlugins.removeAll(QLatin1String("jpegrotatedthumbnail")); - m_enabledPreviewPlugins.append(QLatin1String("jpegthumbnail")); - globalConfig.writeEntry("Plugins", m_enabledPreviewPlugins); - globalConfig.sync(); - } - const qulonglong defaultRemotePreview = static_cast<qulonglong>(MaxRemotePreviewSize) * 1024 * 1024; const qulonglong maxRemoteByteSize = globalConfig.readEntry("MaximumRemoteSize", defaultRemotePreview); const int maxRemoteMByteSize = maxRemoteByteSize / (1024 * 1024); m_remoteFileSizeBox->setValue(maxRemoteMByteSize); } -#include "previewssettingspage.moc" diff --git a/src/settings/general/previewssettingspage.h b/src/settings/general/previewssettingspage.h index a43535133..6e896f05e 100644 --- a/src/settings/general/previewssettingspage.h +++ b/src/settings/general/previewssettingspage.h @@ -22,7 +22,7 @@ #include <settings/settingspagebase.h> -class KIntSpinBox; +class QSpinBox; class QListView; class QModelIndex; @@ -42,13 +42,13 @@ public: * The settings are persisted automatically when * closing Dolphin. */ - virtual void applySettings(); + virtual void applySettings() Q_DECL_OVERRIDE; /** Restores the settings to default values. */ - virtual void restoreDefaults(); + virtual void restoreDefaults() Q_DECL_OVERRIDE; protected: - virtual void showEvent(QShowEvent* event); + virtual void showEvent(QShowEvent* event) Q_DECL_OVERRIDE; private slots: void configureService(const QModelIndex& index); @@ -61,7 +61,7 @@ private: bool m_initialized; QListView *m_listView; QStringList m_enabledPreviewPlugins; - KIntSpinBox* m_remoteFileSizeBox; + QSpinBox* m_remoteFileSizeBox; }; #endif diff --git a/src/settings/general/statusbarsettingspage.cpp b/src/settings/general/statusbarsettingspage.cpp index 48622ac4c..03846253b 100644 --- a/src/settings/general/statusbarsettingspage.cpp +++ b/src/settings/general/statusbarsettingspage.cpp @@ -21,8 +21,7 @@ #include <dolphin_generalsettings.h> -#include <KDialog> -#include <KLocale> +#include <KLocalizedString> #include <QCheckBox> #include <QVBoxLayout> @@ -36,15 +35,14 @@ 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(); loadSettings(); - connect(m_showZoomSlider, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_showSpaceInfo, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + connect(m_showZoomSlider, &QCheckBox::toggled, this, &StatusBarSettingsPage::changed); + connect(m_showSpaceInfo, &QCheckBox::toggled, this, &StatusBarSettingsPage::changed); } StatusBarSettingsPage::~StatusBarSettingsPage() @@ -56,7 +54,7 @@ void StatusBarSettingsPage::applySettings() GeneralSettings* settings = GeneralSettings::self(); settings->setShowZoomSlider(m_showZoomSlider->isChecked()); settings->setShowSpaceInfo(m_showSpaceInfo->isChecked()); - settings->writeConfig(); + settings->save(); } void StatusBarSettingsPage::restoreDefaults() @@ -73,4 +71,3 @@ void StatusBarSettingsPage::loadSettings() m_showSpaceInfo->setChecked(GeneralSettings::showSpaceInfo()); } -#include "statusbarsettingspage.moc" diff --git a/src/settings/general/statusbarsettingspage.h b/src/settings/general/statusbarsettingspage.h index 17bc799bc..608354371 100644 --- a/src/settings/general/statusbarsettingspage.h +++ b/src/settings/general/statusbarsettingspage.h @@ -35,10 +35,10 @@ public: virtual ~StatusBarSettingsPage(); /** @see SettingsPageBase::applySettings() */ - virtual void applySettings(); + virtual void applySettings() Q_DECL_OVERRIDE; /** @see SettingsPageBase::restoreDefaults() */ - virtual void restoreDefaults(); + virtual void restoreDefaults() Q_DECL_OVERRIDE; private: void loadSettings(); diff --git a/src/settings/kcm/kcmdolphingeneral.cpp b/src/settings/kcm/kcmdolphingeneral.cpp index 26cb580f0..fb3956880 100644 --- a/src/settings/kcm/kcmdolphingeneral.cpp +++ b/src/settings/kcm/kcmdolphingeneral.cpp @@ -19,9 +19,7 @@ #include "kcmdolphingeneral.h" -#include <KTabWidget> -#include <KDialog> -#include <KLocale> +#include <KLocalizedString> #include <KPluginFactory> #include <KPluginLoader> @@ -31,40 +29,38 @@ #include <QDir> #include <QVBoxLayout> +#include <QTabWidget> K_PLUGIN_FACTORY(KCMDolphinGeneralConfigFactory, registerPlugin<DolphinGeneralConfigModule>("dolphingeneral");) K_EXPORT_PLUGIN(KCMDolphinGeneralConfigFactory("kcmdolphingeneral")) DolphinGeneralConfigModule::DolphinGeneralConfigModule(QWidget* parent, const QVariantList& args) : - KCModule(KCMDolphinGeneralConfigFactory::componentData(), parent), + KCModule(parent), m_pages() { Q_UNUSED(args); - KGlobal::locale()->insertCatalog("dolphin"); - setButtons(KCModule::Default | KCModule::Help); QVBoxLayout* topLayout = new QVBoxLayout(this); topLayout->setMargin(0); - topLayout->setSpacing(KDialog::spacingHint()); - KTabWidget* tabWidget = new KTabWidget(this); + QTabWidget* tabWidget = new QTabWidget(this); // initialize 'Behavior' tab BehaviorSettingsPage* behaviorPage = new BehaviorSettingsPage(QDir::homePath(), tabWidget); tabWidget->addTab(behaviorPage, i18nc("@title:tab Behavior settings", "Behavior")); - connect(behaviorPage, SIGNAL(changed()), this, SLOT(changed())); + connect(behaviorPage, &BehaviorSettingsPage::changed, this, static_cast<void(DolphinGeneralConfigModule::*)()>(&DolphinGeneralConfigModule::changed)); // initialize 'Previews' tab PreviewsSettingsPage* previewsPage = new PreviewsSettingsPage(tabWidget); tabWidget->addTab(previewsPage, i18nc("@title:tab Previews settings", "Previews")); - connect(previewsPage, SIGNAL(changed()), this, SLOT(changed())); + connect(previewsPage, &PreviewsSettingsPage::changed, this, static_cast<void(DolphinGeneralConfigModule::*)()>(&DolphinGeneralConfigModule::changed)); // initialize 'Confirmations' tab ConfirmationsSettingsPage* confirmationsPage = new ConfirmationsSettingsPage(tabWidget); tabWidget->addTab(confirmationsPage, i18nc("@title:tab Confirmations settings", "Confirmations")); - connect(confirmationsPage, SIGNAL(changed()), this, SLOT(changed())); + connect(confirmationsPage, &ConfirmationsSettingsPage::changed, this, static_cast<void(DolphinGeneralConfigModule::*)()>(&DolphinGeneralConfigModule::changed)); m_pages.append(behaviorPage); m_pages.append(previewsPage); diff --git a/src/settings/kcm/kcmdolphingeneral.desktop b/src/settings/kcm/kcmdolphingeneral.desktop index 3982e49c4..02e72da9a 100644 --- a/src/settings/kcm/kcmdolphingeneral.desktop +++ b/src/settings/kcm/kcmdolphingeneral.desktop @@ -141,7 +141,7 @@ Comment[zh_TW]=此服務允許設定 Dolphin 的一般設定。 Icon=system-run Type=Service X-KDE-ServiceTypes=KCModule -Exec=kcmshell4 kcmdolphingeneral +Exec=kcmshell5 kcmdolphingeneral X-KDE-Library=kcm_dolphingeneral X-KDE-PluginKeyword=dolphingeneral diff --git a/src/settings/kcm/kcmdolphingeneral.h b/src/settings/kcm/kcmdolphingeneral.h index 6b844c9a8..50331a75c 100644 --- a/src/settings/kcm/kcmdolphingeneral.h +++ b/src/settings/kcm/kcmdolphingeneral.h @@ -36,8 +36,8 @@ public: DolphinGeneralConfigModule(QWidget* parent, const QVariantList& args); virtual ~DolphinGeneralConfigModule(); - virtual void save(); - virtual void defaults(); + virtual void save() Q_DECL_OVERRIDE; + virtual void defaults() Q_DECL_OVERRIDE; private: QList<SettingsPageBase*> m_pages; diff --git a/src/settings/kcm/kcmdolphinnavigation.cpp b/src/settings/kcm/kcmdolphinnavigation.cpp index 36345a515..0b2729c33 100644 --- a/src/settings/kcm/kcmdolphinnavigation.cpp +++ b/src/settings/kcm/kcmdolphinnavigation.cpp @@ -19,9 +19,6 @@ #include "kcmdolphinnavigation.h" -#include <KTabWidget> -#include <KDialog> -#include <KLocale> #include <KPluginFactory> #include <KPluginLoader> @@ -33,21 +30,18 @@ K_PLUGIN_FACTORY(KCMDolphinNavigationConfigFactory, registerPlugin<DolphinNaviga K_EXPORT_PLUGIN(KCMDolphinNavigationConfigFactory("kcmdolphinnavigation")) DolphinNavigationConfigModule::DolphinNavigationConfigModule(QWidget* parent, const QVariantList& args) : - KCModule(KCMDolphinNavigationConfigFactory::componentData(), parent), + KCModule(parent), m_navigation(0) { Q_UNUSED(args); - KGlobal::locale()->insertCatalog("dolphin"); - setButtons(KCModule::Default | KCModule::Help); QVBoxLayout* topLayout = new QVBoxLayout(this); topLayout->setMargin(0); - topLayout->setSpacing(KDialog::spacingHint()); m_navigation = new NavigationSettingsPage(this); - connect(m_navigation, SIGNAL(changed()), this, SLOT(changed())); + connect(m_navigation, &NavigationSettingsPage::changed, this, static_cast<void(DolphinNavigationConfigModule::*)()>(&DolphinNavigationConfigModule::changed)); topLayout->addWidget(m_navigation, 0, 0); } diff --git a/src/settings/kcm/kcmdolphinnavigation.desktop b/src/settings/kcm/kcmdolphinnavigation.desktop index e7f0bc4b9..4312fb406 100644 --- a/src/settings/kcm/kcmdolphinnavigation.desktop +++ b/src/settings/kcm/kcmdolphinnavigation.desktop @@ -142,7 +142,7 @@ Comment[zh_TW]=此服務允許設定 Dolphin 的導覽。 Icon=input-mouse Type=Service X-KDE-ServiceTypes=KCModule -Exec=kcmshell4 kcmdolphinnavigation +Exec=kcmshell5 kcmdolphinnavigation X-KDE-Library=kcm_dolphinnavigation X-KDE-PluginKeyword=dolphinnavigation diff --git a/src/settings/kcm/kcmdolphinnavigation.h b/src/settings/kcm/kcmdolphinnavigation.h index e7634d661..e8de0753e 100644 --- a/src/settings/kcm/kcmdolphinnavigation.h +++ b/src/settings/kcm/kcmdolphinnavigation.h @@ -35,8 +35,8 @@ public: DolphinNavigationConfigModule(QWidget* parent, const QVariantList& args); virtual ~DolphinNavigationConfigModule(); - virtual void save(); - virtual void defaults(); + virtual void save() Q_DECL_OVERRIDE; + virtual void defaults() Q_DECL_OVERRIDE; private: NavigationSettingsPage* m_navigation; diff --git a/src/settings/kcm/kcmdolphinservices.cpp b/src/settings/kcm/kcmdolphinservices.cpp index 6d8c76192..8bfdefebb 100644 --- a/src/settings/kcm/kcmdolphinservices.cpp +++ b/src/settings/kcm/kcmdolphinservices.cpp @@ -19,9 +19,6 @@ #include "kcmdolphinservices.h" -#include <KTabWidget> -#include <KDialog> -#include <KLocale> #include <KPluginFactory> #include <KPluginLoader> @@ -33,21 +30,18 @@ K_PLUGIN_FACTORY(KCMDolphinServicesConfigFactory, registerPlugin<DolphinServices K_EXPORT_PLUGIN(KCMDolphinServicesConfigFactory("kcmdolphinservices")) DolphinServicesConfigModule::DolphinServicesConfigModule(QWidget* parent, const QVariantList& args) : - KCModule(KCMDolphinServicesConfigFactory::componentData(), parent), + KCModule(parent), m_services(0) { Q_UNUSED(args); - KGlobal::locale()->insertCatalog("dolphin"); - setButtons(KCModule::Default | KCModule::Help); QVBoxLayout* topLayout = new QVBoxLayout(this); topLayout->setMargin(0); - topLayout->setSpacing(KDialog::spacingHint()); m_services = new ServicesSettingsPage(this); - connect(m_services, SIGNAL(changed()), this, SLOT(changed())); + connect(m_services, &ServicesSettingsPage::changed, this, static_cast<void(DolphinServicesConfigModule::*)()>(&DolphinServicesConfigModule::changed)); topLayout->addWidget(m_services, 0, 0); } diff --git a/src/settings/kcm/kcmdolphinservices.desktop b/src/settings/kcm/kcmdolphinservices.desktop index c96baa2bf..cb08a6a60 100644 --- a/src/settings/kcm/kcmdolphinservices.desktop +++ b/src/settings/kcm/kcmdolphinservices.desktop @@ -72,7 +72,7 @@ Name[zh_TW]=Dolphin 服務 Icon=services Type=Service X-KDE-ServiceTypes=KCModule -Exec=kcmshell4 kcmdolphinservices +Exec=kcmshell5 kcmdolphinservices X-KDE-Library=kcm_dolphinservices X-KDE-PluginKeyword=dolphinservices diff --git a/src/settings/kcm/kcmdolphinservices.h b/src/settings/kcm/kcmdolphinservices.h index 70ed366fe..8a63bb045 100644 --- a/src/settings/kcm/kcmdolphinservices.h +++ b/src/settings/kcm/kcmdolphinservices.h @@ -35,8 +35,8 @@ public: DolphinServicesConfigModule(QWidget* parent, const QVariantList& args); virtual ~DolphinServicesConfigModule(); - virtual void save(); - virtual void defaults(); + virtual void save() Q_DECL_OVERRIDE; + virtual void defaults() Q_DECL_OVERRIDE; private: ServicesSettingsPage* m_services; diff --git a/src/settings/kcm/kcmdolphinviewmodes.cpp b/src/settings/kcm/kcmdolphinviewmodes.cpp index a7a9db36d..0859e568a 100644 --- a/src/settings/kcm/kcmdolphinviewmodes.cpp +++ b/src/settings/kcm/kcmdolphinviewmodes.cpp @@ -19,54 +19,49 @@ #include "kcmdolphinviewmodes.h" -#include <KTabWidget> -#include <KDialog> -#include <KLocale> +#include <KLocalizedString> #include <KPluginFactory> #include <KPluginLoader> -#include <KIcon> +#include <QIcon> #include <settings/viewmodes/viewsettingstab.h> #include <QDBusConnection> #include <QDBusMessage> -#include <QDir> #include <QPushButton> #include <QVBoxLayout> +#include <QTabWidget> K_PLUGIN_FACTORY(KCMDolphinViewModesConfigFactory, registerPlugin<DolphinViewModesConfigModule>("dolphinviewmodes");) K_EXPORT_PLUGIN(KCMDolphinViewModesConfigFactory("kcmdolphinviewmodes")) DolphinViewModesConfigModule::DolphinViewModesConfigModule(QWidget* parent, const QVariantList& args) : - KCModule(KCMDolphinViewModesConfigFactory::componentData(), parent), + KCModule(parent), m_tabs() { Q_UNUSED(args); - KGlobal::locale()->insertCatalog("dolphin"); - setButtons(KCModule::Default | KCModule::Help); QVBoxLayout* topLayout = new QVBoxLayout(this); topLayout->setMargin(0); - topLayout->setSpacing(KDialog::spacingHint()); - KTabWidget* tabWidget = new KTabWidget(this); + QTabWidget* tabWidget = new QTabWidget(this); // Initialize 'Icons' tab ViewSettingsTab* iconsTab = new ViewSettingsTab(ViewSettingsTab::IconsMode, tabWidget); - tabWidget->addTab(iconsTab, KIcon("view-list-icons"), i18nc("@title:tab", "Icons")); - connect(iconsTab, SIGNAL(changed()), this, SLOT(viewModeChanged())); + tabWidget->addTab(iconsTab, QIcon::fromTheme("view-list-icons"), i18nc("@title:tab", "Icons")); + connect(iconsTab, &ViewSettingsTab::changed, this, &DolphinViewModesConfigModule::viewModeChanged); // Initialize 'Compact' tab ViewSettingsTab* compactTab = new ViewSettingsTab(ViewSettingsTab::CompactMode, tabWidget); - tabWidget->addTab(compactTab, KIcon("view-list-details"), i18nc("@title:tab", "Compact")); - connect(compactTab, SIGNAL(changed()), this, SLOT(viewModeChanged())); + tabWidget->addTab(compactTab, QIcon::fromTheme("view-list-details"), i18nc("@title:tab", "Compact")); + connect(compactTab, &ViewSettingsTab::changed, this, &DolphinViewModesConfigModule::viewModeChanged); // Initialize 'Details' tab ViewSettingsTab* detailsTab = new ViewSettingsTab(ViewSettingsTab::DetailsMode, tabWidget); - tabWidget->addTab(detailsTab, KIcon("view-list-tree"), i18nc("@title:tab", "Details")); - connect(detailsTab, SIGNAL(changed()), this, SLOT(viewModeChanged())); + tabWidget->addTab(detailsTab, QIcon::fromTheme("view-list-tree"), i18nc("@title:tab", "Details")); + connect(detailsTab, &ViewSettingsTab::changed, this, &DolphinViewModesConfigModule::viewModeChanged); m_tabs.append(iconsTab); m_tabs.append(compactTab); diff --git a/src/settings/kcm/kcmdolphinviewmodes.desktop b/src/settings/kcm/kcmdolphinviewmodes.desktop index 39cc0e2a5..74d2d11c8 100644 --- a/src/settings/kcm/kcmdolphinviewmodes.desktop +++ b/src/settings/kcm/kcmdolphinviewmodes.desktop @@ -141,7 +141,7 @@ Comment[zh_TW]=此服務允許設定 Dolphin 的檢視模式。 Icon=view-choose Type=Service X-KDE-ServiceTypes=KCModule -Exec=kcmshell4 kcmdolphinviewmodes +Exec=kcmshell5 kcmdolphinviewmodes X-KDE-Library=kcm_dolphinviewmodes X-KDE-PluginKeyword=dolphinviewmodes diff --git a/src/settings/kcm/kcmdolphinviewmodes.h b/src/settings/kcm/kcmdolphinviewmodes.h index 3181198fe..0a0b0ff10 100644 --- a/src/settings/kcm/kcmdolphinviewmodes.h +++ b/src/settings/kcm/kcmdolphinviewmodes.h @@ -35,8 +35,8 @@ public: DolphinViewModesConfigModule(QWidget* parent, const QVariantList& args); virtual ~DolphinViewModesConfigModule(); - virtual void save(); - virtual void defaults(); + virtual void save() Q_DECL_OVERRIDE; + virtual void defaults() Q_DECL_OVERRIDE; private: void reparseConfiguration(); diff --git a/src/settings/navigation/navigationsettingspage.cpp b/src/settings/navigation/navigationsettingspage.cpp index 8076d705d..f9c7a4dfc 100644 --- a/src/settings/navigation/navigationsettingspage.cpp +++ b/src/settings/navigation/navigationsettingspage.cpp @@ -21,15 +21,9 @@ #include "dolphin_generalsettings.h" -#include <KDialog> -#include <KGlobalSettings> -#include <KLocale> -#include <KVBox> +#include <KLocalizedString> #include <QCheckBox> -#include <QGroupBox> -#include <QLabel> -#include <QRadioButton> #include <QVBoxLayout> NavigationSettingsPage::NavigationSettingsPage(QWidget* parent) : @@ -37,27 +31,17 @@ NavigationSettingsPage::NavigationSettingsPage(QWidget* parent) : m_openArchivesAsFolder(0), m_autoExpandFolders(0) { - const int spacing = KDialog::spacingHint(); - QVBoxLayout* topLayout = new QVBoxLayout(this); - KVBox* vBox = new KVBox(this); - vBox->setSpacing(spacing); - - // create 'Mouse' group - QGroupBox* mouseBox = new QGroupBox(i18nc("@title:group", "Mouse"), vBox); - mouseBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum); - m_singleClick = new QRadioButton(i18nc("@option:check Mouse Settings", - "Single-click to open files and folders"), mouseBox); - m_doubleClick = new QRadioButton(i18nc("@option:check Mouse Settings", - "Double-click to open files and folders"), mouseBox); - - QVBoxLayout* mouseBoxLayout = new QVBoxLayout(mouseBox); - mouseBoxLayout->addWidget(m_singleClick); - mouseBoxLayout->addWidget(m_doubleClick); + QWidget* vBox = new QWidget(this); + QVBoxLayout *vBoxLayout = new QVBoxLayout(vBox); + vBoxLayout->setMargin(0); + vBoxLayout->setAlignment(Qt::AlignTop); m_openArchivesAsFolder = new QCheckBox(i18nc("@option:check", "Open archives as folder"), vBox); + vBoxLayout->addWidget(m_openArchivesAsFolder); m_autoExpandFolders = new QCheckBox(i18nc("option:check", "Open folders during drag operations"), vBox); + vBoxLayout->addWidget(m_autoExpandFolders); // Add a dummy widget with no restriction regarding // a vertical resizing. This assures that the dialog layout @@ -68,10 +52,8 @@ NavigationSettingsPage::NavigationSettingsPage(QWidget* parent) : loadSettings(); - connect(m_singleClick, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_doubleClick, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_openArchivesAsFolder, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_autoExpandFolders, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + connect(m_openArchivesAsFolder, &QCheckBox::toggled, this, &NavigationSettingsPage::changed); + connect(m_autoExpandFolders, &QCheckBox::toggled, this, &NavigationSettingsPage::changed); } NavigationSettingsPage::~NavigationSettingsPage() @@ -80,17 +62,11 @@ NavigationSettingsPage::~NavigationSettingsPage() void NavigationSettingsPage::applySettings() { - KConfig config("kcminputrc"); - KConfigGroup group = config.group("KDE"); - group.writeEntry("SingleClick", m_singleClick->isChecked(), KConfig::Persistent|KConfig::Global); - config.sync(); - KGlobalSettings::self()->emitChange(KGlobalSettings::SettingsChanged, KGlobalSettings::SETTINGS_MOUSE); - GeneralSettings* settings = GeneralSettings::self(); settings->setBrowseThroughArchives(m_openArchivesAsFolder->isChecked()); settings->setAutoExpandFolders(m_autoExpandFolders->isChecked()); - settings->writeConfig(); + settings->save(); } void NavigationSettingsPage::restoreDefaults() @@ -99,20 +75,11 @@ void NavigationSettingsPage::restoreDefaults() settings->useDefaults(true); loadSettings(); settings->useDefaults(false); - - // The mouse settings stored in KGlobalSettings must be reset to - // the default values (= single click) manually. - m_singleClick->setChecked(true); - m_doubleClick->setChecked(false); } void NavigationSettingsPage::loadSettings() { - const bool singleClick = KGlobalSettings::singleClick(); - m_singleClick->setChecked(singleClick); - m_doubleClick->setChecked(!singleClick); m_openArchivesAsFolder->setChecked(GeneralSettings::browseThroughArchives()); m_autoExpandFolders->setChecked(GeneralSettings::autoExpandFolders()); } -#include "navigationsettingspage.moc" diff --git a/src/settings/navigation/navigationsettingspage.h b/src/settings/navigation/navigationsettingspage.h index 7d5b981d4..5410a4efa 100644 --- a/src/settings/navigation/navigationsettingspage.h +++ b/src/settings/navigation/navigationsettingspage.h @@ -22,7 +22,6 @@ #include <settings/settingspagebase.h> class QCheckBox; -class QRadioButton; /** * @brief Page for the 'Navigation' settings of the Dolphin settings dialog. @@ -36,17 +35,15 @@ public: virtual ~NavigationSettingsPage(); /** @see SettingsPageBase::applySettings() */ - virtual void applySettings(); + virtual void applySettings() Q_DECL_OVERRIDE; /** @see SettingsPageBase::restoreDefaults() */ - virtual void restoreDefaults(); + virtual void restoreDefaults() Q_DECL_OVERRIDE; private: void loadSettings(); private: - QRadioButton* m_singleClick; - QRadioButton* m_doubleClick; QCheckBox* m_openArchivesAsFolder; QCheckBox* m_autoExpandFolders; }; diff --git a/src/settings/serviceitemdelegate.cpp b/src/settings/serviceitemdelegate.cpp index 7538e038b..a72dd9ec8 100644 --- a/src/settings/serviceitemdelegate.cpp +++ b/src/settings/serviceitemdelegate.cpp @@ -19,9 +19,9 @@ #include "serviceitemdelegate.h" -#include <KDebug> -#include <KPushButton> -#include <KIcon> +#include "dolphindebug.h" +#include <QPushButton> +#include <QIcon> #include "servicemodel.h" @@ -66,18 +66,18 @@ void ServiceItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& o painter->restore(); } -QList<QWidget*> ServiceItemDelegate::createItemWidgets() const +QList<QWidget*> ServiceItemDelegate::createItemWidgets(const QModelIndex&) const { QCheckBox* checkBox = new QCheckBox(); QPalette palette = checkBox->palette(); palette.setColor(QPalette::WindowText, palette.color(QPalette::Text)); checkBox->setPalette(palette); - connect(checkBox, SIGNAL(clicked(bool)), this, SLOT(slotCheckBoxClicked(bool))); + connect(checkBox, &QCheckBox::clicked, this, &ServiceItemDelegate::slotCheckBoxClicked); - KPushButton* configureButton = new KPushButton(); - connect(configureButton, SIGNAL(clicked()), this, SLOT(slotConfigureButtonClicked())); + QPushButton* configureButton = new QPushButton(); + connect(configureButton, &QPushButton::clicked, this, &ServiceItemDelegate::slotConfigureButtonClicked); - return QList<QWidget*>() << checkBox << configureButton; + return {checkBox, configureButton}; } void ServiceItemDelegate::updateItemWidgets(const QList<QWidget*> widgets, @@ -85,7 +85,7 @@ void ServiceItemDelegate::updateItemWidgets(const QList<QWidget*> widgets, const QPersistentModelIndex& index) const { QCheckBox* checkBox = static_cast<QCheckBox*>(widgets[0]); - KPushButton *configureButton = static_cast<KPushButton*>(widgets[1]); + QPushButton *configureButton = static_cast<QPushButton*>(widgets[1]); const int itemHeight = sizeHint(option, index).height(); @@ -94,7 +94,7 @@ void ServiceItemDelegate::updateItemWidgets(const QList<QWidget*> widgets, checkBox->setText(model->data(index).toString()); const QString iconName = model->data(index, Qt::DecorationRole).toString(); if (!iconName.isEmpty()) { - checkBox->setIcon(KIcon(iconName)); + checkBox->setIcon(QIcon::fromTheme(iconName)); } checkBox->setChecked(model->data(index, Qt::CheckStateRole).toBool()); @@ -110,7 +110,7 @@ void ServiceItemDelegate::updateItemWidgets(const QList<QWidget*> widgets, // Update the configuration button if (configurable) { configureButton->setEnabled(checkBox->isChecked()); - configureButton->setIcon(KIcon("configure")); + configureButton->setIcon(QIcon::fromTheme("configure")); configureButton->resize(configureButton->sizeHint()); configureButton->move(option.rect.right() - configureButton->width(), (itemHeight - configureButton->height()) / 2); @@ -129,4 +129,3 @@ void ServiceItemDelegate::slotConfigureButtonClicked() emit requestServiceConfiguration(focusedIndex()); } -#include "serviceitemdelegate.moc" diff --git a/src/settings/serviceitemdelegate.h b/src/settings/serviceitemdelegate.h index ea9681a5a..9f0ced40c 100644 --- a/src/settings/serviceitemdelegate.h +++ b/src/settings/serviceitemdelegate.h @@ -37,16 +37,16 @@ public: virtual ~ServiceItemDelegate(); virtual QSize sizeHint(const QStyleOptionViewItem &option, - const QModelIndex &index) const; + const QModelIndex &index) const Q_DECL_OVERRIDE; virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, - const QModelIndex& index) const; + const QModelIndex& index) const Q_DECL_OVERRIDE; - virtual QList<QWidget*> createItemWidgets() const; + virtual QList<QWidget*> createItemWidgets(const QModelIndex&) const Q_DECL_OVERRIDE; virtual void updateItemWidgets(const QList<QWidget*> widgets, const QStyleOptionViewItem& option, - const QPersistentModelIndex& index) const; + const QPersistentModelIndex& index) const Q_DECL_OVERRIDE; signals: void requestServiceConfiguration(const QModelIndex& index); diff --git a/src/settings/servicemodel.cpp b/src/settings/servicemodel.cpp index 315b90dff..e3b015147 100644 --- a/src/settings/servicemodel.cpp +++ b/src/settings/servicemodel.cpp @@ -105,4 +105,3 @@ int ServiceModel::rowCount(const QModelIndex& parent) const return m_items.count(); } -#include "servicemodel.moc" diff --git a/src/settings/servicemodel.h b/src/settings/servicemodel.h index b8c2d5248..f2b91c7e4 100644 --- a/src/settings/servicemodel.h +++ b/src/settings/servicemodel.h @@ -47,10 +47,10 @@ public: explicit ServiceModel(QObject* parent = 0); virtual ~ServiceModel(); - virtual bool insertRows(int row, int count, const QModelIndex & parent = QModelIndex()); - virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole); - virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const; - virtual int rowCount(const QModelIndex& parent = QModelIndex()) const; + virtual bool insertRows(int row, int count, const QModelIndex & parent = QModelIndex()) Q_DECL_OVERRIDE; + virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) Q_DECL_OVERRIDE; + virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; + virtual int rowCount(const QModelIndex& parent = QModelIndex()) const Q_DECL_OVERRIDE; private: struct ServiceItem diff --git a/src/settings/services/servicessettingspage.cpp b/src/settings/services/servicessettingspage.cpp index 48e816be7..f258b53e2 100644 --- a/src/settings/services/servicessettingspage.cpp +++ b/src/settings/services/servicessettingspage.cpp @@ -26,13 +26,13 @@ #include <KConfigGroup> #include <KDesktopFile> #include <kdesktopfileactions.h> -#include <KIcon> -#include <KLocale> +#include <QIcon> +#include <KLocalizedString> #include <KMessageBox> -#include <knewstuff3/knewstuffbutton.h> +#include <KNS3/Button> #include <KService> #include <KServiceTypeTrader> -#include <KStandardDirs> +#include <QStandardPaths> #include <settings/serviceitemdelegate.h> #include <settings/servicemodel.h> @@ -49,9 +49,9 @@ namespace { const bool ShowDeleteDefault = false; - const char* VersionControlServicePrefix = "_version_control_"; - const char* DeleteService = "_delete"; - const char* CopyToMoveToService ="_copy_to_move_to"; + const char VersionControlServicePrefix[] = "_version_control_"; + const char DeleteService[] = "_delete"; + const char CopyToMoveToService[] ="_copy_to_move_to"; } ServicesSettingsPage::ServicesSettingsPage(QWidget* parent) : @@ -78,12 +78,12 @@ ServicesSettingsPage::ServicesSettingsPage(QWidget* parent) : m_listView->setModel(m_sortModel); m_listView->setItemDelegate(delegate); m_listView->setVerticalScrollMode(QListView::ScrollPerPixel); - connect(m_listView, SIGNAL(clicked(QModelIndex)), this, SIGNAL(changed())); + connect(m_listView, &QListView::clicked, this, &ServicesSettingsPage::changed); KNS3::Button* downloadButton = new KNS3::Button(i18nc("@action:button", "Download New Services..."), "servicemenu.knsrc", this); - connect(downloadButton, SIGNAL(dialogFinished(KNS3::Entry::List)), this, SLOT(loadServices())); + connect(downloadButton, &KNS3::Button::dialogFinished, this, &ServicesSettingsPage::loadServices); topLayout->addWidget(label); topLayout->addWidget(m_listView); @@ -125,7 +125,7 @@ void ServicesSettingsPage::applySettings() configGroup.sync(); } else if (service == QLatin1String(CopyToMoveToService)) { GeneralSettings::setShowCopyMoveMenu(checked); - GeneralSettings::self()->writeConfig(); + GeneralSettings::self()->save(); } else { showGroup.writeEntry(service, checked); } @@ -135,7 +135,7 @@ void ServicesSettingsPage::applySettings() if (m_enabledVcsPlugins != enabledPlugins) { VersionControlSettings::setEnabledPlugins(enabledPlugins); - VersionControlSettings::self()->writeConfig(); + VersionControlSettings::self()->save(); KMessageBox::information(window(), i18nc("@info", "Dolphin must be restarted to apply the " @@ -194,8 +194,8 @@ void ServicesSettingsPage::loadServices() // Load generic services const KService::List entries = KServiceTypeTrader::self()->query("KonqPopupMenu/Plugin"); - foreach (const KSharedPtr<KService>& service, entries) { - const QString file = KStandardDirs::locate("services", service->entryPath()); + foreach (const KService::Ptr& service, entries) { + const QString file = QStandardPaths::locate(QStandardPaths::GenericDataLocation, "kservices5/" % service->entryPath()); const QList<KServiceAction> serviceActions = KDesktopFileActions::userDefinedServices(file, true); @@ -220,7 +220,7 @@ void ServicesSettingsPage::loadServices() // Load service plugins that implement the KFileItemActionPlugin interface const KService::List pluginServices = KServiceTypeTrader::self()->query("KFileItemAction/Plugin"); - foreach (const KSharedPtr<KService>& service, pluginServices) { + foreach (const KService::Ptr& service, pluginServices) { const QString desktopEntryName = service->desktopEntryName(); if (!isInServicesList(desktopEntryName)) { const bool checked = showGroup.readEntry(desktopEntryName, true); @@ -273,4 +273,3 @@ void ServicesSettingsPage::addRow(const QString& icon, m_serviceModel->setData(index, checked, Qt::CheckStateRole); } -#include "servicessettingspage.moc" diff --git a/src/settings/services/servicessettingspage.h b/src/settings/services/servicessettingspage.h index 80af42f88..a883aa947 100644 --- a/src/settings/services/servicessettingspage.h +++ b/src/settings/services/servicessettingspage.h @@ -21,11 +21,8 @@ #include <settings/settingspagebase.h> -#include <QMap> #include <QString> -class QCheckBox; -class QGroupBox; class QListView; class QSortFilterProxyModel; class ServiceModel; @@ -42,13 +39,13 @@ public: virtual ~ServicesSettingsPage(); /** @see SettingsPageBase::applySettings() */ - virtual void applySettings(); + virtual void applySettings() Q_DECL_OVERRIDE; /** @see SettingsPageBase::restoreDefaults() */ - virtual void restoreDefaults(); + virtual void restoreDefaults() Q_DECL_OVERRIDE; protected: - virtual void showEvent(QShowEvent* event); + virtual void showEvent(QShowEvent* event) Q_DECL_OVERRIDE; private slots: /** diff --git a/src/settings/settingspagebase.cpp b/src/settings/settingspagebase.cpp index 6f8dcbfb6..70549fd2c 100644 --- a/src/settings/settingspagebase.cpp +++ b/src/settings/settingspagebase.cpp @@ -28,4 +28,3 @@ SettingsPageBase::~SettingsPageBase() {} -#include "settingspagebase.moc" diff --git a/src/settings/startup/startupsettingspage.cpp b/src/settings/startup/startupsettingspage.cpp index 693826318..21b213cd5 100644 --- a/src/settings/startup/startupsettingspage.cpp +++ b/src/settings/startup/startupsettingspage.cpp @@ -24,22 +24,22 @@ #include "dolphin_generalsettings.h" -#include <KDialog> -#include <KFileDialog> -#include <KLocale> -#include <KLineEdit> +#include <KLocalizedString> +#include <QLineEdit> #include <KMessageBox> -#include <KVBox> +#include <QVBoxLayout> #include <QCheckBox> #include <QGroupBox> #include <QLabel> #include <QPushButton> -#include <QRadioButton> +#include <QHBoxLayout> +#include <QVBoxLayout> +#include <QFileDialog> #include "views/dolphinview.h" -StartupSettingsPage::StartupSettingsPage(const KUrl& url, QWidget* parent) : +StartupSettingsPage::StartupSettingsPage(const QUrl& url, QWidget* parent) : SettingsPageBase(parent), m_url(url), m_homeUrl(0), @@ -48,40 +48,48 @@ StartupSettingsPage::StartupSettingsPage(const KUrl& url, QWidget* parent) : m_showFullPath(0), m_filterBar(0) { - const int spacing = KDialog::spacingHint(); - QVBoxLayout* topLayout = new QVBoxLayout(this); - KVBox* vBox = new KVBox(this); - vBox->setSpacing(spacing); + QWidget* vBox = new QWidget(this); + QVBoxLayout *vBoxLayout = new QVBoxLayout(vBox); + vBoxLayout->setMargin(0); + vBoxLayout->setAlignment(Qt::AlignTop); // create 'Home URL' editor QGroupBox* homeBox = new QGroupBox(i18nc("@title:group", "Home Folder"), vBox); + vBoxLayout->addWidget(homeBox); - KHBox* homeUrlBox = new KHBox(homeBox); - homeUrlBox->setSpacing(spacing); + QWidget* homeUrlBox = new QWidget(homeBox); + QHBoxLayout *homeUrlBoxLayout = new QHBoxLayout(homeUrlBox); + homeUrlBoxLayout->setMargin(0); - new QLabel(i18nc("@label:textbox", "Location:"), homeUrlBox); - m_homeUrl = new KLineEdit(homeUrlBox); - m_homeUrl->setClearButtonShown(true); + QLabel* homeUrlLabel = new QLabel(i18nc("@label:textbox", "Location:"), homeUrlBox); + homeUrlBoxLayout->addWidget(homeUrlLabel); + m_homeUrl = new QLineEdit(homeUrlBox); + homeUrlBoxLayout->addWidget(m_homeUrl); + m_homeUrl->setClearButtonEnabled(true); - QPushButton* selectHomeUrlButton = new QPushButton(KIcon("folder-open"), QString(), homeUrlBox); + QPushButton* selectHomeUrlButton = new QPushButton(QIcon::fromTheme("folder-open"), QString(), homeUrlBox); + homeUrlBoxLayout->addWidget(selectHomeUrlButton); #ifndef QT_NO_ACCESSIBILITY selectHomeUrlButton->setAccessibleName(i18nc("@action:button", "Select Home Location")); #endif - connect(selectHomeUrlButton, SIGNAL(clicked()), - this, SLOT(selectHomeUrl())); + connect(selectHomeUrlButton, &QPushButton::clicked, + this, &StartupSettingsPage::selectHomeUrl); - KHBox* buttonBox = new KHBox(homeBox); - buttonBox->setSpacing(spacing); + QWidget* buttonBox = new QWidget(homeBox); + QHBoxLayout *buttonBoxLayout = new QHBoxLayout(buttonBox); + buttonBoxLayout->setMargin(0); QPushButton* useCurrentButton = new QPushButton(i18nc("@action:button", "Use Current Location"), buttonBox); - connect(useCurrentButton, SIGNAL(clicked()), - this, SLOT(useCurrentLocation())); + buttonBoxLayout->addWidget(useCurrentButton); + connect(useCurrentButton, &QPushButton::clicked, + this, &StartupSettingsPage::useCurrentLocation); QPushButton* useDefaultButton = new QPushButton(i18nc("@action:button", "Use Default Location"), buttonBox); - connect(useDefaultButton, SIGNAL(clicked()), - this, SLOT(useDefaultLocation())); + buttonBoxLayout->addWidget(useDefaultButton); + connect(useDefaultButton, &QPushButton::clicked, + this, &StartupSettingsPage::useDefaultLocation); QVBoxLayout* homeBoxLayout = new QVBoxLayout(homeBox); homeBoxLayout->addWidget(homeUrlBox); @@ -89,9 +97,13 @@ StartupSettingsPage::StartupSettingsPage(const KUrl& url, QWidget* parent) : // create 'Split view', 'Show full path', 'Editable location' and 'Filter bar' checkboxes m_splitView = new QCheckBox(i18nc("@option:check Startup Settings", "Split view mode"), vBox); + vBoxLayout->addWidget(m_splitView); m_editableUrl = new QCheckBox(i18nc("@option:check Startup Settings", "Editable location bar"), vBox); + vBoxLayout->addWidget(m_editableUrl); m_showFullPath = new QCheckBox(i18nc("@option:check Startup Settings", "Show full path inside location bar"), vBox); + vBoxLayout->addWidget(m_showFullPath); m_filterBar = new QCheckBox(i18nc("@option:check Startup Settings", "Show filter bar"), vBox); + vBoxLayout->addWidget(m_filterBar); // Add a dummy widget with no restriction regarding // a vertical resizing. This assures that the dialog layout @@ -102,11 +114,11 @@ StartupSettingsPage::StartupSettingsPage(const KUrl& url, QWidget* parent) : loadSettings(); - connect(m_homeUrl, SIGNAL(textChanged(QString)), this, SLOT(slotSettingsChanged())); - connect(m_splitView, SIGNAL(toggled(bool)), this, SLOT(slotSettingsChanged())); - connect(m_editableUrl, SIGNAL(toggled(bool)), this, SLOT(slotSettingsChanged())); - connect(m_showFullPath, SIGNAL(toggled(bool)), this, SLOT(slotSettingsChanged())); - connect(m_filterBar, SIGNAL(toggled(bool)), this, SLOT(slotSettingsChanged())); + connect(m_homeUrl, &QLineEdit::textChanged, this, &StartupSettingsPage::slotSettingsChanged); + connect(m_splitView, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged); + connect(m_editableUrl, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged); + connect(m_showFullPath, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged); + connect(m_filterBar, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged); } StartupSettingsPage::~StartupSettingsPage() @@ -117,10 +129,10 @@ void StartupSettingsPage::applySettings() { GeneralSettings* settings = GeneralSettings::self(); - const KUrl url(m_homeUrl->text()); - KFileItem fileItem(KFileItem::Unknown, KFileItem::Unknown, url); - if ((url.isValid() && fileItem.isDir()) || (url.protocol() == QLatin1String("timeline"))) { - settings->setHomeUrl(url.prettyUrl()); + const QUrl url(QUrl::fromLocalFile(m_homeUrl->text())); + KFileItem fileItem(url); + if ((url.isValid() && fileItem.isDir()) || (url.scheme() == QLatin1String("timeline"))) { + settings->setHomeUrl(url.toDisplayString(QUrl::PreferLocalFile)); } else { KMessageBox::error(this, i18nc("@info", "The location for the home folder is invalid or does not exist, it will not be applied.")); } @@ -130,7 +142,7 @@ void StartupSettingsPage::applySettings() settings->setShowFullPath(m_showFullPath->isChecked()); settings->setFilterBar(m_filterBar->isChecked()); - settings->writeConfig(); + settings->save(); } void StartupSettingsPage::restoreDefaults() @@ -153,32 +165,29 @@ void StartupSettingsPage::slotSettingsChanged() void StartupSettingsPage::selectHomeUrl() { const QString homeUrl = m_homeUrl->text(); - KUrl url = KFileDialog::getExistingDirectoryUrl(homeUrl, this); + QUrl url = QFileDialog::getExistingDirectoryUrl(this, QString(), QUrl::fromLocalFile(homeUrl)); if (!url.isEmpty()) { - m_homeUrl->setText(url.prettyUrl()); + m_homeUrl->setText(url.toDisplayString(QUrl::PreferLocalFile)); slotSettingsChanged(); } } void StartupSettingsPage::useCurrentLocation() { - m_homeUrl->setText(m_url.prettyUrl()); + m_homeUrl->setText(m_url.toDisplayString(QUrl::PreferLocalFile)); } void StartupSettingsPage::useDefaultLocation() { - KUrl url(QDir::homePath()); - m_homeUrl->setText(url.prettyUrl()); + m_homeUrl->setText(QDir::homePath()); } void StartupSettingsPage::loadSettings() { - const KUrl url(GeneralSettings::homeUrl()); - m_homeUrl->setText(url.prettyUrl()); + const QUrl url(QUrl::fromLocalFile(GeneralSettings::homeUrl())); + m_homeUrl->setText(url.toDisplayString(QUrl::PreferLocalFile)); m_splitView->setChecked(GeneralSettings::splitView()); m_editableUrl->setChecked(GeneralSettings::editableUrl()); m_showFullPath->setChecked(GeneralSettings::showFullPath()); m_filterBar->setChecked(GeneralSettings::filterBar()); } - -#include "startupsettingspage.moc" diff --git a/src/settings/startup/startupsettingspage.h b/src/settings/startup/startupsettingspage.h index 29cdc6300..9bcc31131 100644 --- a/src/settings/startup/startupsettingspage.h +++ b/src/settings/startup/startupsettingspage.h @@ -20,9 +20,9 @@ #define STARTUPSETTINGSPAGE_H #include <settings/settingspagebase.h> -#include <KUrl> +#include <QUrl> -class KLineEdit; +class QLineEdit; class QCheckBox; /** @@ -36,14 +36,14 @@ class StartupSettingsPage : public SettingsPageBase Q_OBJECT public: - StartupSettingsPage(const KUrl& url, QWidget* parent); + StartupSettingsPage(const QUrl& url, QWidget* parent); virtual ~StartupSettingsPage(); /** @see SettingsPageBase::applySettings() */ - virtual void applySettings(); + virtual void applySettings() Q_DECL_OVERRIDE; /** @see SettingsPageBase::restoreDefaults() */ - virtual void restoreDefaults(); + virtual void restoreDefaults() Q_DECL_OVERRIDE; private slots: void slotSettingsChanged(); @@ -55,8 +55,8 @@ private: void loadSettings(); private: - KUrl m_url; - KLineEdit* m_homeUrl; + QUrl m_url; + QLineEdit* m_homeUrl; QCheckBox* m_splitView; QCheckBox* m_editableUrl; diff --git a/src/settings/trash/trashsettingspage.cpp b/src/settings/trash/trashsettingspage.cpp index cd699856c..237a17987 100644 --- a/src/settings/trash/trashsettingspage.cpp +++ b/src/settings/trash/trashsettingspage.cpp @@ -20,19 +20,16 @@ #include "trashsettingspage.h" #include <KCModuleProxy> -#include <KDialog> -#include <KVBox> #include <QVBoxLayout> TrashSettingsPage::TrashSettingsPage(QWidget* parent) : SettingsPageBase(parent) { - const int spacing = KDialog::spacingHint(); - QVBoxLayout* topLayout = new QVBoxLayout(this); - KVBox* vBox = new KVBox(this); - vBox->setSpacing(spacing); + QWidget* vBox = new QWidget(this); + QVBoxLayout *vBoxVBoxLayout = new QVBoxLayout(vBox); + vBoxVBoxLayout->setMargin(0); m_proxy = new KCModuleProxy("kcmtrash"); topLayout->addWidget(m_proxy); @@ -40,12 +37,14 @@ TrashSettingsPage::TrashSettingsPage(QWidget* parent) : // Add a dummy widget with no restriction regarding // a vertical resizing. This assures that the dialog layout // is not stretched vertically. - new QWidget(vBox); + QWidget *w = new QWidget(vBox); + vBoxVBoxLayout->addWidget(w); + topLayout->addWidget(vBox); loadSettings(); - connect(m_proxy, SIGNAL(changed(bool)), this, SIGNAL(changed())); + connect(m_proxy, static_cast<void(KCModuleProxy::*)(bool)>(&KCModuleProxy::changed), this, &TrashSettingsPage::changed); } TrashSettingsPage::~TrashSettingsPage() @@ -67,4 +66,3 @@ void TrashSettingsPage::loadSettings() m_proxy->load(); } -#include "trashsettingspage.moc" diff --git a/src/settings/trash/trashsettingspage.h b/src/settings/trash/trashsettingspage.h index bf4a71ea4..5c88aeab7 100644 --- a/src/settings/trash/trashsettingspage.h +++ b/src/settings/trash/trashsettingspage.h @@ -34,10 +34,10 @@ public: virtual ~TrashSettingsPage(); /** @see SettingsPageBase::applySettings() */ - virtual void applySettings(); + virtual void applySettings() Q_DECL_OVERRIDE; /** @see SettingsPageBase::restoreDefaults() */ - virtual void restoreDefaults(); + virtual void restoreDefaults() Q_DECL_OVERRIDE; private: void loadSettings(); diff --git a/src/settings/viewmodes/dolphinfontrequester.cpp b/src/settings/viewmodes/dolphinfontrequester.cpp index 6cb7b9929..b9c5d97cf 100644 --- a/src/settings/viewmodes/dolphinfontrequester.cpp +++ b/src/settings/viewmodes/dolphinfontrequester.cpp @@ -19,14 +19,13 @@ #include "dolphinfontrequester.h" -#include <KFontDialog> -#include <KGlobalSettings> -#include <KLocale> +#include <KLocalizedString> #include <KComboBox> -#include <QEvent> #include <QHBoxLayout> #include <QPushButton> +#include <QFontDatabase> +#include <QFontDialog> DolphinFontRequester::DolphinFontRequester(QWidget* parent) : QWidget(parent), @@ -41,12 +40,12 @@ DolphinFontRequester::DolphinFontRequester(QWidget* parent) : m_modeCombo = new KComboBox(this); m_modeCombo->addItem(i18nc("@item:inlistbox Font", "System Font")); m_modeCombo->addItem(i18nc("@item:inlistbox Font", "Custom Font")); - connect(m_modeCombo, SIGNAL(activated(int)), - this, SLOT(changeMode(int))); + connect(m_modeCombo, static_cast<void(KComboBox::*)(int)>(&KComboBox::activated), + this, &DolphinFontRequester::changeMode); m_chooseFontButton = new QPushButton(i18nc("@action:button Choose font", "Choose..."), this); - connect(m_chooseFontButton, SIGNAL(clicked()), - this, SLOT(openFontDialog())); + connect(m_chooseFontButton, &QPushButton::clicked, + this, &DolphinFontRequester::openFontDialog); changeMode(m_modeCombo->currentIndex()); @@ -72,7 +71,7 @@ DolphinFontRequester::Mode DolphinFontRequester::mode() const QFont DolphinFontRequester::currentFont() const { - return (m_mode == CustomFont) ? m_customFont : KGlobalSettings::generalFont(); + return (m_mode == CustomFont) ? m_customFont : QFontDatabase::systemFont(QFontDatabase::GeneralFont); } void DolphinFontRequester::setCustomFont(const QFont& font) @@ -87,11 +86,9 @@ QFont DolphinFontRequester::customFont() const void DolphinFontRequester::openFontDialog() { - QFont font = m_customFont; - const int result = KFontDialog::getFont(font, - KFontChooser::NoDisplayFlags, - this); - if (result == KFontDialog::Accepted) { + bool ok = false; + const QFont font = QFontDialog::getFont(&ok, this); + if (ok) { m_customFont = font; m_modeCombo->setFont(m_customFont); emit changed(); @@ -104,4 +101,3 @@ void DolphinFontRequester::changeMode(int index) emit changed(); } -#include "dolphinfontrequester.moc" diff --git a/src/settings/viewmodes/viewmodesettings.cpp b/src/settings/viewmodes/viewmodesettings.cpp index 5b9334c22..2191b76fe 100644 --- a/src/settings/viewmodes/viewmodesettings.cpp +++ b/src/settings/viewmodes/viewmodesettings.cpp @@ -125,19 +125,19 @@ int ViewModeSettings::fontWeight() const void ViewModeSettings::readConfig() { switch (m_mode) { - case ViewModeSettings::IconsMode: IconsModeSettings::self()->readConfig(); break; - case ViewModeSettings::CompactMode: CompactModeSettings::self()->readConfig(); break; - case ViewModeSettings::DetailsMode: DetailsModeSettings::self()->readConfig(); break; + case ViewModeSettings::IconsMode: IconsModeSettings::self()->load(); break; + case ViewModeSettings::CompactMode: CompactModeSettings::self()->load(); break; + case ViewModeSettings::DetailsMode: DetailsModeSettings::self()->load(); break; default: Q_ASSERT(false); break; } } -void ViewModeSettings::writeConfig() +void ViewModeSettings::save() { switch (m_mode) { - case ViewModeSettings::IconsMode: IconsModeSettings::self()->writeConfig(); break; - case ViewModeSettings::CompactMode: CompactModeSettings::self()->writeConfig(); break; - case ViewModeSettings::DetailsMode: DetailsModeSettings::self()->writeConfig(); break; + case ViewModeSettings::IconsMode: IconsModeSettings::self()->save(); break; + case ViewModeSettings::CompactMode: CompactModeSettings::self()->save(); break; + case ViewModeSettings::DetailsMode: DetailsModeSettings::self()->save(); break; default: Q_ASSERT(false); break; } } diff --git a/src/settings/viewmodes/viewmodesettings.h b/src/settings/viewmodes/viewmodesettings.h index be41ae284..9f0b44e9b 100644 --- a/src/settings/viewmodes/viewmodesettings.h +++ b/src/settings/viewmodes/viewmodesettings.h @@ -61,7 +61,7 @@ public: int fontWeight() const; void readConfig(); - void writeConfig(); + void save(); private: ViewMode m_mode; diff --git a/src/settings/viewmodes/viewsettingspage.cpp b/src/settings/viewmodes/viewsettingspage.cpp index 4f8a3f00d..21bb1e178 100644 --- a/src/settings/viewmodes/viewsettingspage.cpp +++ b/src/settings/viewmodes/viewsettingspage.cpp @@ -24,11 +24,9 @@ #include "viewsettingstab.h" #include <QVBoxLayout> +#include <QTabWidget> -#include <KDialog> -#include <KLocale> -#include <KIconLoader> -#include <KTabWidget> +#include <KLocalizedString> ViewSettingsPage::ViewSettingsPage(QWidget* parent) : SettingsPageBase(parent), @@ -36,24 +34,23 @@ ViewSettingsPage::ViewSettingsPage(QWidget* parent) : { QVBoxLayout* topLayout = new QVBoxLayout(this); topLayout->setMargin(0); - topLayout->setSpacing(KDialog::spacingHint()); - KTabWidget* tabWidget = new KTabWidget(this); + QTabWidget* tabWidget = new QTabWidget(this); // Initialize 'Icons' tab ViewSettingsTab* iconsTab = new ViewSettingsTab(ViewSettingsTab::IconsMode, tabWidget); - tabWidget->addTab(iconsTab, KIcon("view-list-icons"), i18nc("@title:tab", "Icons")); - connect(iconsTab, SIGNAL(changed()), this, SIGNAL(changed())); + tabWidget->addTab(iconsTab, QIcon::fromTheme("view-list-icons"), i18nc("@title:tab", "Icons")); + connect(iconsTab, &ViewSettingsTab::changed, this, &ViewSettingsPage::changed); // Initialize 'Compact' tab ViewSettingsTab* compactTab = new ViewSettingsTab(ViewSettingsTab::CompactMode, tabWidget); - tabWidget->addTab(compactTab, KIcon("view-list-details"), i18nc("@title:tab", "Compact")); - connect(compactTab, SIGNAL(changed()), this, SIGNAL(changed())); + tabWidget->addTab(compactTab, QIcon::fromTheme("view-list-details"), i18nc("@title:tab", "Compact")); + connect(compactTab, &ViewSettingsTab::changed, this, &ViewSettingsPage::changed); // Initialize 'Details' tab ViewSettingsTab* detailsTab = new ViewSettingsTab(ViewSettingsTab::DetailsMode, tabWidget); - tabWidget->addTab(detailsTab, KIcon("view-list-tree"), i18nc("@title:tab", "Details")); - connect(detailsTab, SIGNAL(changed()), this, SIGNAL(changed())); + tabWidget->addTab(detailsTab, QIcon::fromTheme("view-list-tree"), i18nc("@title:tab", "Details")); + connect(detailsTab, &ViewSettingsTab::changed, this, &ViewSettingsPage::changed); m_tabs.append(iconsTab); m_tabs.append(compactTab); @@ -80,4 +77,3 @@ void ViewSettingsPage::restoreDefaults() } } -#include "viewsettingspage.moc" diff --git a/src/settings/viewmodes/viewsettingspage.h b/src/settings/viewmodes/viewsettingspage.h index 446403182..61671077e 100644 --- a/src/settings/viewmodes/viewsettingspage.h +++ b/src/settings/viewmodes/viewsettingspage.h @@ -40,10 +40,10 @@ public: virtual ~ViewSettingsPage(); /** @see SettingsPageBase::applySettings() */ - virtual void applySettings(); + virtual void applySettings() Q_DECL_OVERRIDE; /** @see SettingsPageBase::restoreDefaults() */ - virtual void restoreDefaults(); + virtual void restoreDefaults() Q_DECL_OVERRIDE; private: QList<ViewSettingsTab*> m_tabs; diff --git a/src/settings/viewmodes/viewsettingstab.cpp b/src/settings/viewmodes/viewsettingstab.cpp index bc124516d..632ae99da 100644 --- a/src/settings/viewmodes/viewsettingstab.cpp +++ b/src/settings/viewmodes/viewsettingstab.cpp @@ -25,7 +25,7 @@ #include "dolphin_iconsmodesettings.h" #include <KComboBox> -#include <KLocale> +#include <KLocalizedString> #include <QCheckBox> #include <QGroupBox> @@ -61,16 +61,16 @@ ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget* parent) : m_defaultSizeSlider->setPageStep(1); m_defaultSizeSlider->setTickPosition(QSlider::TicksBelow); m_defaultSizeSlider->setRange(minRange, maxRange); - connect(m_defaultSizeSlider, SIGNAL(valueChanged(int)), - this, SLOT(slotDefaultSliderMoved(int))); + connect(m_defaultSizeSlider, &QSlider::valueChanged, + this, &ViewSettingsTab::slotDefaultSliderMoved); QLabel* previewLabel = new QLabel(i18nc("@label:listbox", "Preview:"), this); m_previewSizeSlider = new QSlider(Qt::Horizontal, this); m_previewSizeSlider->setPageStep(1); m_previewSizeSlider->setTickPosition(QSlider::TicksBelow); m_previewSizeSlider->setRange(minRange, maxRange); - connect(m_previewSizeSlider, SIGNAL(valueChanged(int)), - this, SLOT(slotPreviewSliderMoved(int))); + connect(m_previewSizeSlider, &QSlider::valueChanged, + this, &ViewSettingsTab::slotPreviewSliderMoved); QGridLayout* layout = new QGridLayout(iconSizeGroup); layout->addWidget(defaultLabel, 0, 0, Qt::AlignRight); @@ -138,20 +138,20 @@ ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget* parent) : loadSettings(); - connect(m_defaultSizeSlider, SIGNAL(valueChanged(int)), this, SIGNAL(changed())); - connect(m_previewSizeSlider, SIGNAL(valueChanged(int)), this, SIGNAL(changed())); - connect(m_fontRequester, SIGNAL(changed()), this, SIGNAL(changed())); + connect(m_defaultSizeSlider, &QSlider::valueChanged, this, &ViewSettingsTab::changed); + connect(m_previewSizeSlider, &QSlider::valueChanged, this, &ViewSettingsTab::changed); + connect(m_fontRequester, &DolphinFontRequester::changed, this, &ViewSettingsTab::changed); switch (m_mode) { case IconsMode: - connect(m_widthBox, SIGNAL(currentIndexChanged(int)), this, SIGNAL(changed())); - connect(m_maxLinesBox, SIGNAL(currentIndexChanged(int)), this, SIGNAL(changed())); + connect(m_widthBox, static_cast<void(KComboBox::*)(int)>(&KComboBox::currentIndexChanged), this, &ViewSettingsTab::changed); + connect(m_maxLinesBox, static_cast<void(KComboBox::*)(int)>(&KComboBox::currentIndexChanged), this, &ViewSettingsTab::changed); break; case CompactMode: - connect(m_widthBox, SIGNAL(currentIndexChanged(int)), this, SIGNAL(changed())); + connect(m_widthBox, static_cast<void(KComboBox::*)(int)>(&KComboBox::currentIndexChanged), this, &ViewSettingsTab::changed); break; case DetailsMode: - connect(m_expandableFolders, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + connect(m_expandableFolders, &QCheckBox::toggled, this, &ViewSettingsTab::changed); break; default: break; @@ -195,7 +195,7 @@ void ViewSettingsTab::applySettings() settings.setItalicFont(font.italic()); settings.setFontWeight(font.weight()); - settings.writeConfig(); + settings.save(); } void ViewSettingsTab::restoreDefaultSettings() @@ -289,4 +289,4 @@ void ViewSettingsTab::showToolTip(QSlider* slider, int value) QHelpEvent toolTipEvent(QEvent::ToolTip, QPoint(0, 0), slider->mapToGlobal(global)); QApplication::sendEvent(slider, &toolTipEvent); } -#include "viewsettingstab.moc" + diff --git a/src/settings/viewpropertiesdialog.cpp b/src/settings/viewpropertiesdialog.cpp index 574f8e18e..be7fe0d86 100644 --- a/src/settings/viewpropertiesdialog.cpp +++ b/src/settings/viewpropertiesdialog.cpp @@ -29,30 +29,27 @@ #include <config-baloo.h> -#include <KComponentData> -#include <KLocale> -#include <KIconLoader> -#include <KIO/NetAccess> +#include <KLocalizedString> #include <KMessageBox> -#include <KStandardDirs> -#include <KUrl> +#include <QUrl> #include <KComboBox> +#include <KConfigGroup> +#include <KWindowConfig> -#include <QAction> #include <QButtonGroup> #include <QCheckBox> #include <QGridLayout> #include <QGroupBox> #include <QLabel> -#include <QMenu> #include <QPushButton> #include <QRadioButton> -#include <QBoxLayout> +#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), @@ -72,29 +69,31 @@ 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 KUrl& url = dolphinView->url(); + 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(KIcon("view-list-icons"), i18nc("@item:inlistbox", "Icons"), DolphinView::IconsView); - m_viewMode->addItem(KIcon("view-list-details"), i18nc("@item:inlistbox", "Compact"), DolphinView::CompactView); - m_viewMode->addItem(KIcon("view-list-tree"), i18nc("@item:inlistbox", "Details"), DolphinView::DetailsView); + m_viewMode->addItem(QIcon::fromTheme("view-list-icons"), i18nc("@item:inlistbox", "Icons"), DolphinView::IconsView); + m_viewMode->addItem(QIcon::fromTheme("view-list-details"), i18nc("@item:inlistbox", "Compact"), DolphinView::CompactView); + m_viewMode->addItem(QIcon::fromTheme("view-list-tree"), i18nc("@item:inlistbox", "Details"), DolphinView::DetailsView); QLabel* sortingLabel = new QLabel(i18nc("@label:listbox", "Sorting:"), propsGrid); QWidget* sortingBox = new QWidget(propsGrid); @@ -136,33 +135,29 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : propsBoxLayout->addWidget(m_showHiddenFiles); propsBoxLayout->addWidget(m_additionalInfo); - topLayout->addWidget(propsBox); - - connect(m_viewMode, SIGNAL(currentIndexChanged(int)), - this, SLOT(slotViewModeChanged(int))); - connect(m_sorting, SIGNAL(currentIndexChanged(int)), - this, SLOT(slotSortingChanged(int))); - connect(m_sortOrder, SIGNAL(currentIndexChanged(int)), - this, SLOT(slotSortOrderChanged(int))); - connect(m_additionalInfo, SIGNAL(clicked()), - this, SLOT(configureAdditionalInfo())); - connect(m_sortFoldersFirst, SIGNAL(clicked()), - this, SLOT(slotSortFoldersFirstChanged())); - connect(m_previewsShown, SIGNAL(clicked()), - this, SLOT(slotShowPreviewChanged())); - connect(m_showInGroups, SIGNAL(clicked()), - this, SLOT(slotGroupedSortingChanged())); - connect(m_showHiddenFiles, SIGNAL(clicked()), - this, SLOT(slotShowHiddenFilesChanged())); - - connect(this, SIGNAL(okClicked()), this, SLOT(slotOk())); - connect(this, SIGNAL(applyClicked()), this, SLOT(slotApply())); + connect(m_viewMode, static_cast<void(KComboBox::*)(int)>(&KComboBox::currentIndexChanged), + this, &ViewPropertiesDialog::slotViewModeChanged); + connect(m_sorting, static_cast<void(KComboBox::*)(int)>(&KComboBox::currentIndexChanged), + this, &ViewPropertiesDialog::slotSortingChanged); + connect(m_sortOrder, static_cast<void(KComboBox::*)(int)>(&KComboBox::currentIndexChanged), + this, &ViewPropertiesDialog::slotSortOrderChanged); + connect(m_additionalInfo, &QPushButton::clicked, + this, &ViewPropertiesDialog::configureAdditionalInfo); + connect(m_sortFoldersFirst, &QCheckBox::clicked, + this, &ViewPropertiesDialog::slotSortFoldersFirstChanged); + connect(m_previewsShown, &QCheckBox::clicked, + this, &ViewPropertiesDialog::slotShowPreviewChanged); + connect(m_showInGroups, &QCheckBox::clicked, + this, &ViewPropertiesDialog::slotGroupedSortingChanged); + connect(m_showHiddenFiles, &QCheckBox::clicked, + this, &ViewPropertiesDialog::slotShowHiddenFilesChanged); // 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); @@ -182,27 +177,38 @@ 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, SIGNAL(clicked(bool)), - this, SLOT(markAsDirty(bool))); - connect(m_applyToSubFolders, SIGNAL(clicked(bool)), - this, SLOT(markAsDirty(bool))); - connect(m_applyToAllFolders, SIGNAL(clicked(bool)), - this, SLOT(markAsDirty(bool))); - connect(m_useAsDefault, SIGNAL(clicked(bool)), - this, SLOT(markAsDirty(bool))); + connect(m_applyToCurrentFolder, &QRadioButton::clicked, + this, &ViewPropertiesDialog::markAsDirty); + connect(m_applyToSubFolders, &QRadioButton::clicked, + this, &ViewPropertiesDialog::markAsDirty); + connect(m_applyToAllFolders, &QRadioButton::clicked, + this, &ViewPropertiesDialog::markAsDirty); + connect(m_useAsDefault, &QCheckBox::clicked, + 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(); } @@ -213,15 +219,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() @@ -281,8 +286,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() @@ -358,7 +365,7 @@ void ViewPropertiesDialog::applyViewProperties() // all existing viewproperties invalid, as they have a smaller time stamp. GeneralSettings* settings = GeneralSettings::self(); settings->setViewPropsTimestamp(QDateTime::currentDateTime()); - settings->writeConfig(); + settings->save(); } m_dolphinView->setMode(m_viewProps->viewMode()); @@ -408,4 +415,3 @@ void ViewPropertiesDialog::loadSettings() markAsDirty(false); } -#include "viewpropertiesdialog.moc" diff --git a/src/settings/viewpropertiesdialog.h b/src/settings/viewpropertiesdialog.h index 6b0e9ff48..5490be85b 100644 --- a/src/settings/viewpropertiesdialog.h +++ b/src/settings/viewpropertiesdialog.h @@ -21,9 +21,9 @@ #ifndef VIEWPROPERTIESDIALOG_H #define VIEWPROPERTIESDIALOG_H -#include "libdolphin_export.h" +#include "dolphin_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 DOLPHIN_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 9b7797d02..56fee8027 100644 --- a/src/settings/viewpropsprogressinfo.cpp +++ b/src/settings/viewpropsprogressinfo.cpp @@ -24,17 +24,20 @@ #include <QLabel> #include <QProgressBar> #include <QTimer> -#include <QBoxLayout> +#include <QVBoxLayout> +#include <QDialogButtonBox> +#include <QPushButton> -#include <KLocale> -#include <KIO/JobClasses> +#include <KConfigGroup> +#include <KLocalizedString> +#include <KIO/Job> #include <views/viewproperties.h> ViewPropsProgressInfo::ViewPropsProgressInfo(QWidget* parent, - const KUrl& dir, + 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,37 +58,39 @@ 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 // properties later. m_dirSizeJob = KIO::directorySize(dir); - connect(m_dirSizeJob, SIGNAL(result(KJob*)), - this, SLOT(applyViewProperties())); + connect(m_dirSizeJob, &KIO::DirectorySizeJob::result, + this, &ViewPropsProgressInfo::applyViewProperties); // The directory size job cannot emit any progress signal, as it is not aware // about the total number of directories. Therefor a timer is triggered, which // periodically updates the current directory count. m_timer = new QTimer(this); - connect(m_timer, SIGNAL(timeout()), - this, SLOT(updateProgress())); + connect(m_timer, &QTimer::timeout, + this, &ViewPropsProgressInfo::updateProgress); m_timer->start(300); - - connect(this, SIGNAL(cancelClicked()), this, SLOT(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() @@ -128,21 +147,7 @@ void ViewPropsProgressInfo::applyViewProperties() m_dirSizeJob = 0; m_applyViewPropsJob = new ApplyViewPropsJob(m_dir, *m_viewProps); - connect(m_applyViewPropsJob, SIGNAL(result(KJob*)), - this, SLOT(close())); -} - -void ViewPropsProgressInfo::cancelApplying() -{ - if (m_dirSizeJob) { - m_dirSizeJob->kill(); - m_dirSizeJob = 0; - } - - if (m_applyViewPropsJob) { - m_applyViewPropsJob->kill(); - m_applyViewPropsJob = 0; - } + connect(m_applyViewPropsJob, &ApplyViewPropsJob::result, + this, &ViewPropsProgressInfo::close); } -#include "viewpropsprogressinfo.moc" diff --git a/src/settings/viewpropsprogressinfo.h b/src/settings/viewpropsprogressinfo.h index 6f8c763c3..cd7aa50ce 100644 --- a/src/settings/viewpropsprogressinfo.h +++ b/src/settings/viewpropsprogressinfo.h @@ -20,9 +20,9 @@ #ifndef VIEWPROPSPROGRESSINFO_H #define VIEWPROPSPROGRESSINFO_H -#include <KDialog> +#include <QDialog> #include <kio/directorysizejob.h> -#include <KUrl> +#include <QUrl> class ApplyViewPropsJob; class QLabel; @@ -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 @@ -50,21 +50,23 @@ public: * sub directories. */ ViewPropsProgressInfo(QWidget* parent, - const KUrl& dir, + const QUrl& dir, const ViewProperties& viewProps); virtual ~ViewPropsProgressInfo(); protected: - virtual void closeEvent(QCloseEvent* event); + virtual void closeEvent(QCloseEvent* event) Q_DECL_OVERRIDE; + +public slots: + void reject() Q_DECL_OVERRIDE; private slots: void updateProgress(); void applyViewProperties(); - void cancelApplying(); private: - KUrl m_dir; + QUrl m_dir; ViewProperties* m_viewProps; QLabel* m_label; |
