]> cloud.milkyroute.net Git - dolphin.git/commitdiff
added settings module 'General' that can be used by Konqueror
authorPeter Penz <peter.penz19@gmail.com>
Mon, 19 Jan 2009 11:11:11 +0000 (11:11 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Mon, 19 Jan 2009 11:11:11 +0000 (11:11 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=913414

src/CMakeLists.txt
src/kcm/kcmdolphingeneral.cpp [new file with mode: 0644]
src/kcm/kcmdolphingeneral.desktop [new file with mode: 0644]
src/kcm/kcmdolphingeneral.h [new file with mode: 0644]

index 60ede3846946edcd05feeec1f4ff9f56ea66223a..03cd1ff0d10772a5f599e093cf35f99047331da1 100644 (file)
@@ -190,6 +190,12 @@ set(kcm_dolphinnavigation_PART_SRCS
     settings/navigationsettingspage.cpp
     settings/settingspagebase.cpp)
 
+set(kcm_dolphingeneral_PART_SRCS
+    kcm/kcmdolphingeneral.cpp
+    settings/behaviorsettingspage.cpp
+    settings/previewssettingspage.cpp
+    settings/settingspagebase.cpp)
+
 kde4_add_kcfg_files(kcm_dolphinviewmodes_PART_SRCS
     settings/dolphin_columnmodesettings.kcfgc
     settings/dolphin_directoryviewpropertysettings.kcfgc
@@ -200,18 +206,25 @@ kde4_add_kcfg_files(kcm_dolphinviewmodes_PART_SRCS
 kde4_add_kcfg_files(kcm_dolphinnavigation_PART_SRCS
     settings/dolphin_generalsettings.kcfgc)
 
+kde4_add_kcfg_files(kcm_dolphingeneral_PART_SRCS
+    settings/dolphin_generalsettings.kcfgc)
+
 kde4_add_plugin(kcm_dolphinviewmodes ${kcm_dolphinviewmodes_PART_SRCS})
 kde4_add_plugin(kcm_dolphinnavigation ${kcm_dolphinnavigation_PART_SRCS})
+kde4_add_plugin(kcm_dolphingeneral ${kcm_dolphingeneral_PART_SRCS})
 
 target_link_libraries(kcm_dolphinviewmodes  ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS} dolphinprivate)
 target_link_libraries(kcm_dolphinnavigation  ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS} dolphinprivate)
+target_link_libraries(kcm_dolphingeneral ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS} dolphinprivate)
 if (Nepomuk_FOUND)
   target_link_libraries(kcm_dolphinviewmodes ${NEPOMUK_LIBRARIES})
   target_link_libraries(kcm_dolphinnavigation ${NEPOMUK_LIBRARIES})
+  target_link_libraries(kcm_dolphingeneral ${NEPOMUK_LIBRARIES})
 endif (Nepomuk_FOUND)
 
 install(TARGETS kcm_dolphinviewmodes DESTINATION ${PLUGIN_INSTALL_DIR} )
 install(TARGETS kcm_dolphinnavigation DESTINATION ${PLUGIN_INSTALL_DIR} )
+install(TARGETS kcm_dolphingeneral DESTINATION ${PLUGIN_INSTALL_DIR} )
 
 ########### install files ###############
 
@@ -220,3 +233,4 @@ install( FILES  settings/dolphin_directoryviewpropertysettings.kcfg settings/dol
 install( FILES  dolphinui.rc DESTINATION ${DATA_INSTALL_DIR}/dolphin )
 install( FILES kcm/kcmdolphinviewmodes.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
 install( FILES kcm/kcmdolphinnavigation.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+install( FILES kcm/kcmdolphingeneral.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
diff --git a/src/kcm/kcmdolphingeneral.cpp b/src/kcm/kcmdolphingeneral.cpp
new file mode 100644 (file)
index 0000000..5f8b963
--- /dev/null
@@ -0,0 +1,87 @@
+/***************************************************************************
+ *   Copyright (C) 2009 by Peter Penz <peter.penz@gmx.at>                  *
+ *                                                                         *
+ *   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            *
+ ***************************************************************************/
+
+#include "kcmdolphingeneral.h"
+
+#include "settings/behaviorsettingspage.h"
+#include "settings/previewssettingspage.h"
+
+#include <ktabwidget.h>
+#include <kdialog.h>
+#include <klocale.h>
+#include <kpluginfactory.h>
+#include <kpluginloader.h>
+
+#include <QDir>
+#include <QVBoxLayout>
+
+K_PLUGIN_FACTORY(KCMDolphinGeneralConfigFactory, registerPlugin<DolphinGeneralConfigModule>("dolphingeneral");)
+K_EXPORT_PLUGIN(KCMDolphinGeneralConfigFactory("kcmdolphingeneral"))
+
+DolphinGeneralConfigModule::DolphinGeneralConfigModule(QWidget* parent, const QVariantList& args) :
+    KCModule(KCMDolphinGeneralConfigFactory::componentData(), parent),
+    m_pages()
+{
+    Q_UNUSED(args);
+
+    KGlobal::locale()->insertCatalog("dolphingeneral");
+
+    setButtons(KCModule::Default | KCModule::Help);
+
+    QVBoxLayout* topLayout = new QVBoxLayout(this);
+    topLayout->setMargin(0);
+    topLayout->setSpacing(KDialog::spacingHint());
+
+    KTabWidget* tabWidget = new KTabWidget(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()));
+
+    // initialize 'Previews' tab
+    PreviewsSettingsPage* previewsPage = new PreviewsSettingsPage(tabWidget);
+    tabWidget->addTab(previewsPage, i18nc("@title:tab Previews settings", "Previews"));
+    connect(previewsPage, SIGNAL(changed()), this, SLOT(changed()));
+
+    m_pages.append(behaviorPage);
+    m_pages.append(previewsPage);
+
+    topLayout->addWidget(tabWidget, 0, 0);
+}
+
+DolphinGeneralConfigModule::~DolphinGeneralConfigModule()
+{
+}
+
+void DolphinGeneralConfigModule::save()
+{
+    foreach (SettingsPageBase* page, m_pages) {
+        page->applySettings();
+    }
+}
+
+void DolphinGeneralConfigModule::defaults()
+{
+    foreach (SettingsPageBase* page, m_pages) {
+        page->applySettings();
+    }
+}
+
+#include "kcmdolphingeneral.moc"
diff --git a/src/kcm/kcmdolphingeneral.desktop b/src/kcm/kcmdolphingeneral.desktop
new file mode 100644 (file)
index 0000000..a9fbf35
--- /dev/null
@@ -0,0 +1,16 @@
+Name=Dolphin General
+Comment=This service allows configuration of general Dolphin settings.
+
+[Desktop Entry]
+Icon=input-mouse
+Type=Service
+X-KDE-ServiceTypes=KCModule
+Exec=kcmshell4 kcmdolphingeneral
+
+X-KDE-Library=kcm_dolphingeneral
+X-KDE-PluginKeyword=dolphingeneral
+X-KDE-ParentApp=kcontrol
+
+Name=General
+Comment=Configure general file manager settings
+X-KDE-Keywords=file manager
diff --git a/src/kcm/kcmdolphingeneral.h b/src/kcm/kcmdolphingeneral.h
new file mode 100644 (file)
index 0000000..9208803
--- /dev/null
@@ -0,0 +1,46 @@
+/***************************************************************************
+ *   Copyright (C) 2009 by Peter Penz <peter.penz@gmx.at>                  *
+ *                                                                         *
+ *   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 KCMDOLPHINGENERAL_H
+#define KCMDOLPHINGENERAL_H
+
+#include <kcmodule.h>
+#include <QList>
+
+class SettingsPageBase;
+
+/**
+ * @brief Allow to configure general Dolphin settings.
+ */
+class DolphinGeneralConfigModule : public KCModule
+{
+    Q_OBJECT
+
+public:
+    DolphinGeneralConfigModule(QWidget* parent, const QVariantList& args);
+    virtual ~DolphinGeneralConfigModule();
+
+    virtual void save();
+    virtual void defaults();
+
+private:
+    QList<SettingsPageBase*> m_pages;
+};
+
+#endif