]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Added the Trash KCM to Dolphin, it's visible in the Settings Dialog, in the 'Trash...
authorShaun Reich <shaun.reich@kdemail.net>
Sun, 15 Feb 2009 18:06:04 +0000 (18:06 +0000)
committerShaun Reich <shaun.reich@kdemail.net>
Sun, 15 Feb 2009 18:06:04 +0000 (18:06 +0000)
Konqueror has it, we should too =)

svn path=/trunk/KDE/kdebase/apps/; revision=926571

src/CMakeLists.txt
src/settings/dolphinsettingsdialog.cpp
src/settings/dolphinsettingsdialog.h
src/settings/trashsettingspage.cpp [new file with mode: 0644]
src/settings/trashsettingspage.h [new file with mode: 0644]

index 360e72ff242b44da031883af93f4dec6cba4f939..6e5cb0d05490a34ced0eaae621127b4ad08670c6 100644 (file)
@@ -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})
index e2c236354662e852c428e8c30ccdf9a6b677b902..93f95ca443ccf045a514b97f5db66c4e9ccd7156 100644 (file)
@@ -27,6 +27,7 @@
 #include "servicessettingspage.h"
 #include "startupsettingspage.h"
 #include "viewsettingspage.h"
+#include "trashsettingspage.h"
 
 #include <klocale.h>
 #include <kmessagebox.h>
@@ -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);
 }
 
index 90cfd3493dabf93f8b4f0eeb4520aaa374d8e722..09ad22454c04e8047da92f8914935600f866a530 100644 (file)
@@ -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 (file)
index 0000000..90670cb
--- /dev/null
@@ -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 <KCModuleProxy>
+#include <kdialog.h>
+#include <kvbox.h>
+//Qt
+#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);
+
+    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 (file)
index 0000000..bf4a71e
--- /dev/null
@@ -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