summaryrefslogtreecommitdiffabout
path: root/libkdepim
Side-by-side diff
Diffstat (limited to 'libkdepim') (more/less context) (show whitespace changes)
-rw-r--r--libkdepim/kcmconfigs/kdepimconfigwidget.cpp38
-rw-r--r--libkdepim/kcmconfigs/kdepimconfigwidget.h5
2 files changed, 43 insertions, 0 deletions
diff --git a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
index 20594c6..d097078 100644
--- a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
+++ b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
@@ -33,12 +33,14 @@ $Id$
#include <qcombobox.h>
#include <qgroupbox.h>
#include <qlabel.h>
#include <qlineedit.h>
#include <qbuttongroup.h>
#include <qfile.h>
+#include <qvbox.h>
+#include <qdir.h>
#include <qregexp.h>
#include <kdialog.h>
#include <klocale.h>
#include <kdateedit.h>
#include <kglobal.h>
@@ -100,18 +102,54 @@ KDEPIMConfigWidget::KDEPIMConfigWidget(KPimGlobalPrefs *prefs, QWidget *parent,
setupLocaleTab();
setupLocaleDateTab();
setupTimeZoneTab();
setupExternalAppTab();
+ setupStoreTab();
}
void KDEPIMConfigWidget::showTimeZoneTab()
{
tabWidget->setCurrentPage ( 3 ) ;
}
+void KDEPIMConfigWidget::setupStoreTab()
+{
+ QVBox *storePage = new QVBox( this );
+ new QLabel( i18n("Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail").arg(KGlobal::dirs()->localkdedir()), storePage );
+ new QLabel( i18n("<b>Set new data storage dir:</b>"), storePage );
+ mStoreUrl = new KURLRequester( storePage );
+ mStoreUrl->setURL( KGlobal::dirs()->localkdedir() );
+ new QLabel( i18n("Not existing dirs are created automatically"), storePage );
+ QHBox *bb = new QHBox( storePage );
+ QPushButton * pb = new QPushButton ( i18n("Save settings"), bb );
+ connect(pb, SIGNAL( clicked() ), this, SLOT ( saveStoreSettings() ) );
+ pb = new QPushButton ( i18n("Save standard"), bb );
+ connect(pb, SIGNAL( clicked() ), this, SLOT ( setStandardStore() ) );
+ new QLabel( i18n("<b>New settings are used\nafter a restart</b>"), storePage );
+ new QLabel( i18n("The settings of the storage\ndir is saved in the file\n%1").arg(QDir::homeDirPath() + "/.microkdehome" ), storePage );
+ tabWidget->addTab( storePage, i18n( "Data storage path" ) );
+}
+void KDEPIMConfigWidget::setStandardStore()
+{
+ mStoreUrl->setURL( QDir::homeDirPath() + "/kdepim" );
+ saveStoreSettings();
+}
+void KDEPIMConfigWidget::saveStoreSettings()
+{
+ if ( !mStoreUrl->url().isEmpty() ) {
+ KConfig cfg ( QDir::homeDirPath() + "/.microkdehome" );
+ cfg.setGroup("Global");
+ cfg.writeEntry( "MICROKDEHOME", mStoreUrl->url() );
+ qDebug("cfg.writeEntry( MICROKDEHOME, mStoreUrl->url() ); ");
+ cfg.sync();
+ } else {
+ mStoreUrl->setURL( QDir::homeDirPath() + "/kdepim" );
+ saveStoreSettings();
+ }
+}
void KDEPIMConfigWidget::setupExternalAppTab()
{
QWidget *externalAppsPage = new QWidget( this );
QVBoxLayout* layout = new QVBoxLayout( externalAppsPage, KDialog::marginHintSmall(),
KDialog::spacingHintSmall() );
diff --git a/libkdepim/kcmconfigs/kdepimconfigwidget.h b/libkdepim/kcmconfigs/kdepimconfigwidget.h
index 619f3d7..c545207 100644
--- a/libkdepim/kcmconfigs/kdepimconfigwidget.h
+++ b/libkdepim/kcmconfigs/kdepimconfigwidget.h
@@ -29,12 +29,13 @@ $Id$
*/
#ifndef KDEPIMCONFIGWIDGET_H
#define KDEPIMCONFIGWIDGET_H
#include <kprefswidget.h>
+#include <kio/kfile/kurlrequester.h>
#include <qmap.h>
#include "externalapphandler.h"
class QComboBox;
@@ -65,18 +66,22 @@ class KDEPIMConfigWidget : public KPrefsWidget
private slots:
// void configureExtension();
// void selectionChanged( QListViewItem* );
// void itemClicked( QListViewItem* );
void client_changed( int newClient );
void externalapp_changed( int newApp );
+ void saveStoreSettings();
+ void setStandardStore();
private:
void setupExternalAppTab();
void setupLocaleDateTab();
void setupLocaleTab();
void setupTimeZoneTab();
+ void setupStoreTab();
+ KURLRequester* mStoreUrl;
void setCombo(QComboBox *combo,const QString & text, const QStringList *tags = 0);
void saveEditFieldSettings();
void updateClientWidgets();