diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 360e72ff24..6e5cb0d054 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -128,6 +128,7 @@ set(dolphin_SRCS settings/settingspagebase.cpp settings/startupsettingspage.cpp settings/statusbarsettingspage.cpp + settings/trashsettingspage.cpp settings/viewsettingspage.cpp settings/viewsettingspagebase.cpp statusbarspaceinfo.cpp @@ -166,7 +167,7 @@ kde4_add_app_icon(dolphin_SRCS "${KDE4_ICON_INSTALL_DIR}/oxygen/*/apps/system-fi kde4_add_executable(dolphin ${dolphin_SRCS}) -target_link_libraries(dolphin ${KDE4_KIO_LIBS} ${KDE4_KDEPRINT_LIBS} ${KDE4_KFILE_LIBS} konq dolphinprivate ${KDE4_PHONON_LIBS}) +target_link_libraries(dolphin ${KDE4_KIO_LIBS} ${KDE4_KDEPRINT_LIBS} ${KDE4_KFILE_LIBS} ${KDE4_KUTILS_LIBRARY} konq dolphinprivate ${KDE4_PHONON_LIBS}) if (Nepomuk_FOUND) target_link_libraries(dolphin ${NEPOMUK_LIBRARIES} ${SOPRANO_LIBRARIES}) diff --git a/src/settings/dolphinsettingsdialog.cpp b/src/settings/dolphinsettingsdialog.cpp index e2c2363546..93f95ca443 100644 --- a/src/settings/dolphinsettingsdialog.cpp +++ b/src/settings/dolphinsettingsdialog.cpp @@ -27,6 +27,7 @@ #include "servicessettingspage.h" #include "startupsettingspage.h" #include "viewsettingspage.h" +#include "trashsettingspage.h" #include #include @@ -74,6 +75,13 @@ DolphinSettingsDialog::DolphinSettingsDialog(const KUrl& url, QWidget* parent) : servicesSettingsFrame->setIcon(KIcon("services")); connect(servicesSettingsPage, SIGNAL(changed()), this, SLOT(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())); + // General GeneralSettingsPage* generalSettingsPage = new GeneralSettingsPage(url, this); KPageWidgetItem* generalSettingsFrame = addPage(generalSettingsPage, @@ -88,6 +96,7 @@ DolphinSettingsDialog::DolphinSettingsDialog(const KUrl& url, QWidget* parent) : m_pages.append(viewSettingsPage); m_pages.append(navigationSettingsPage); m_pages.append(servicesSettingsPage); + m_pages.append(trashSettingsPage); m_pages.append(generalSettingsPage); } diff --git a/src/settings/dolphinsettingsdialog.h b/src/settings/dolphinsettingsdialog.h index 90cfd3493d..09ad22454c 100644 --- a/src/settings/dolphinsettingsdialog.h +++ b/src/settings/dolphinsettingsdialog.h @@ -30,7 +30,7 @@ class SettingsPageBase; /** * @brief Settings dialog for Dolphin. * - * Contains the pages for Startup, View Modes, Navigation, Services and General. + * Contains the pages for Startup, View Modes, Navigation, Services, General, and Trash. */ class DolphinSettingsDialog : public KPageDialog { diff --git a/src/settings/trashsettingspage.cpp b/src/settings/trashsettingspage.cpp new file mode 100644 index 0000000000..90670cb09d --- /dev/null +++ b/src/settings/trashsettingspage.cpp @@ -0,0 +1,72 @@ +/*************************************************************************** + * Copyright (C) 2009 by Shaun Reich shaun.reich@kdemail.net * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***************************************************************************/ + +//Own +#include "trashsettingspage.h" +#include "dolphinsettings.h" +//KDE +#include +#include +#include +//Qt +#include + + +TrashSettingsPage::TrashSettingsPage(QWidget* parent) : + SettingsPageBase(parent) +{ + const int spacing = KDialog::spacingHint(); + + QVBoxLayout* topLayout = new QVBoxLayout(this); + KVBox* vBox = new KVBox(this); + vBox->setSpacing(spacing); + + m_proxy = new KCModuleProxy("kcmtrash"); + connect(m_proxy, SIGNAL(changed(bool)), this, SIGNAL(changed())); + topLayout->addWidget(m_proxy); + + // Add a dummy widget with no restriction regarding + // a vertical resizing. This assures that the dialog layout + // is not stretched vertically. + new QWidget(vBox); + topLayout->addWidget(vBox); + + loadSettings(); +} + +TrashSettingsPage::~TrashSettingsPage() +{ +} + +void TrashSettingsPage::applySettings() +{ + m_proxy->save(); +} + +void TrashSettingsPage::restoreDefaults() +{ + m_proxy->defaults(); +} + +void TrashSettingsPage::loadSettings() +{ + m_proxy->load(); +} + +#include "trashsettingspage.moc" diff --git a/src/settings/trashsettingspage.h b/src/settings/trashsettingspage.h new file mode 100644 index 0000000000..bf4a71ea4a --- /dev/null +++ b/src/settings/trashsettingspage.h @@ -0,0 +1,47 @@ +/*************************************************************************** + * Copyright (C) 2009 by Shaun Reich shaun.reich@kdemail.net * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***************************************************************************/ +#ifndef TRASHSETTINGSPAGE_H +#define TRASHSETTINGSPAGE_H + +#include "settings/settingspagebase.h" +class KCModuleProxy; + +/** + * @brief Tab page for the 'Trash' settings of the Dolphin settings dialog, it uses the KCM. + */ +class TrashSettingsPage : public SettingsPageBase +{ + Q_OBJECT + +public: + TrashSettingsPage(QWidget* parent); + virtual ~TrashSettingsPage(); + + /** @see SettingsPageBase::applySettings() */ + virtual void applySettings(); + + /** @see SettingsPageBase::restoreDefaults() */ + virtual void restoreDefaults(); + +private: + void loadSettings(); + KCModuleProxy *m_proxy; +}; + +#endif