summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt9
-rw-r--r--libkdepim/kcmconfigs/kdepimconfigwidget.cpp38
-rw-r--r--libkdepim/kcmconfigs/kdepimconfigwidget.h5
-rw-r--r--microkde/kdecore/kstandarddirs.cpp4
-rw-r--r--microkde/kdecore/kstandarddirs.h2
5 files changed, 55 insertions, 3 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 683de7c..c0078be 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -9,39 +9,46 @@ Cleaned up the syncing config dialog.
9Added sync config options for date range for events. 9Added sync config options for date range for events.
10Added sync config options for filters on incoming data. 10Added sync config options for filters on incoming data.
11Added sync config options for filters on outgoing data. 11Added sync config options for filters on outgoing data.
12Please read the updated SyncHowTo about the new filter settings. 12Please read the updated SyncHowTo about the new filter settings.
13These filter settings make it now possible to sync with shared 13These filter settings make it now possible to sync with shared
14calendars without writing back private or confidential data 14calendars without writing back private or confidential data
15(via the outgoing filters). 15(via the outgoing filters).
16To sync only with particular parts of a shared calendar, 16To sync only with particular parts of a shared calendar,
17the incoming filter settings can be used. 17the incoming filter settings can be used.
18An example can be found in the SyncHowTo. 18An example can be found in the SyncHowTo.
19Same for shared addressbooks. 19Same for shared addressbooks.
20 20
21Added a setting for the global kdepim data storage.
22Usually the data is stored in (yourhomedir/kdepim).
23Now you can set in the Global config dialog TAB, subTAB "Data storage path"
24a directory where all the kdepim data is stored.
25That makes it easy to save all kdepim data on a SD card on the Z, for example.
26
21KO/Pi: 27KO/Pi:
22The timeedit input has a pulldown list for times. 28The timeedit input has a pulldown list for times.
23If opened, this pulldown list should now has the right time highlighted. 29If opened, this pulldown list should now has the right time highlighted.
24Added the possibility to exclude events/todos/journals in a filter. 30Added the possibility to exclude events/todos/journals in a filter.
25You should exclude journals, if you do not want them to sync with a public calendar. 31You should exclude journals, if you do not want them to sync with a public calendar.
26 32
27KA/Pi: 33KA/Pi:
28Added the possibility to in/exclude public/private/confidential contacts to a filter. 34Added the possibility to in/exclude public/private/confidential contacts to a filter.
29If you have already defined filterrules in KA/Pi you have to adjust them all by setting the "include public/private/confidential" property manually. Sorry for that ... 35If you have already defined filterrules in KA/Pi you have to adjust them all by setting the "include public/private/confidential" property manually. Sorry for that ...
30Added printing of card view and details view on desktop. 36Added printing of card view and details view on desktop.
31Printing of list view is not working... 37Printing of list view is not working...
32Added button for removing pictures in contact editor. 38Added button for removing pictures in contact editor.
33Parsing data fix of KA/Pi version 1.9.17. 39Parsing data fix of KA/Pi version 1.9.17.
34Fixed the "parse name automatically" problem of KA/Pi version 1.9.17. 40Fixed the "parse name automatically" problem of KA/Pi version 1.9.17.
35 41Fixed some syncing merging problems.
42
36 43
37********** VERSION 1.9.17 ************ 44********** VERSION 1.9.17 ************
38 45
39KO/Pi: 46KO/Pi:
40Fixed that tooltips were not updated after moving an item in agenda view. 47Fixed that tooltips were not updated after moving an item in agenda view.
41Fixed a bug in sorting start date for recurring events in list view. 48Fixed a bug in sorting start date for recurring events in list view.
42Changed the left button in todo viewer from "Agenda" to "Set completed". 49Changed the left button in todo viewer from "Agenda" to "Set completed".
43This makes it possible to change a todo in the What's Next View quickly to the completed state without leaving the What's Next View. 50This makes it possible to change a todo in the What's Next View quickly to the completed state without leaving the What's Next View.
44Added more info in the todo viewer: Startdate, parent/sub todos. 51Added more info in the todo viewer: Startdate, parent/sub todos.
45 52
46 53
47KA/Pi: 54KA/Pi:
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
@@ -27,24 +27,26 @@ Copyright (c) 2004 Ulf Schenk
27 27
28$Id$ 28$Id$
29*/ 29*/
30 30
31#include <qlayout.h> 31#include <qlayout.h>
32#include <qtabwidget.h> 32#include <qtabwidget.h>
33#include <qcombobox.h> 33#include <qcombobox.h>
34#include <qgroupbox.h> 34#include <qgroupbox.h>
35#include <qlabel.h> 35#include <qlabel.h>
36#include <qlineedit.h> 36#include <qlineedit.h>
37#include <qbuttongroup.h> 37#include <qbuttongroup.h>
38#include <qfile.h> 38#include <qfile.h>
39#include <qvbox.h>
40#include <qdir.h>
39#include <qregexp.h> 41#include <qregexp.h>
40 42
41#include <kdialog.h> 43#include <kdialog.h>
42#include <klocale.h> 44#include <klocale.h>
43#include <kdateedit.h> 45#include <kdateedit.h>
44#include <kglobal.h> 46#include <kglobal.h>
45#include <stdlib.h> 47#include <stdlib.h>
46 48
47/*US 49/*US
48#include <qcheckbox.h> 50#include <qcheckbox.h>
49#include <qframe.h> 51#include <qframe.h>
50#include <qpushbutton.h> 52#include <qpushbutton.h>
@@ -94,30 +96,66 @@ KDEPIMConfigWidget::KDEPIMConfigWidget(KPimGlobalPrefs *prefs, QWidget *parent,
94 96
95 QVBoxLayout *topLayout = new QVBoxLayout( this, 0, 97 QVBoxLayout *topLayout = new QVBoxLayout( this, 0,
96 KDialog::spacingHint() ); 98 KDialog::spacingHint() );
97 99
98 tabWidget = new QTabWidget( this ); 100 tabWidget = new QTabWidget( this );
99 topLayout->addWidget( tabWidget ); 101 topLayout->addWidget( tabWidget );
100 102
101 103
102 setupLocaleTab(); 104 setupLocaleTab();
103 setupLocaleDateTab(); 105 setupLocaleDateTab();
104 setupTimeZoneTab(); 106 setupTimeZoneTab();
105 setupExternalAppTab(); 107 setupExternalAppTab();
108 setupStoreTab();
106 109
107} 110}
108void KDEPIMConfigWidget::showTimeZoneTab() 111void KDEPIMConfigWidget::showTimeZoneTab()
109{ 112{
110 tabWidget->setCurrentPage ( 3 ) ; 113 tabWidget->setCurrentPage ( 3 ) ;
111} 114}
115void KDEPIMConfigWidget::setupStoreTab()
116{
117 QVBox *storePage = new QVBox( this );
118 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 );
119 new QLabel( i18n("<b>Set new data storage dir:</b>"), storePage );
120 mStoreUrl = new KURLRequester( storePage );
121 mStoreUrl->setURL( KGlobal::dirs()->localkdedir() );
122 new QLabel( i18n("Not existing dirs are created automatically"), storePage );
123 QHBox *bb = new QHBox( storePage );
124 QPushButton * pb = new QPushButton ( i18n("Save settings"), bb );
125 connect(pb, SIGNAL( clicked() ), this, SLOT ( saveStoreSettings() ) );
126 pb = new QPushButton ( i18n("Save standard"), bb );
127 connect(pb, SIGNAL( clicked() ), this, SLOT ( setStandardStore() ) );
128 new QLabel( i18n("<b>New settings are used\nafter a restart</b>"), storePage );
129 new QLabel( i18n("The settings of the storage\ndir is saved in the file\n%1").arg(QDir::homeDirPath() + "/.microkdehome" ), storePage );
130 tabWidget->addTab( storePage, i18n( "Data storage path" ) );
131}
132void KDEPIMConfigWidget::setStandardStore()
133{
134 mStoreUrl->setURL( QDir::homeDirPath() + "/kdepim" );
135 saveStoreSettings();
136}
137void KDEPIMConfigWidget::saveStoreSettings()
138{
139 if ( !mStoreUrl->url().isEmpty() ) {
140 KConfig cfg ( QDir::homeDirPath() + "/.microkdehome" );
141 cfg.setGroup("Global");
142 cfg.writeEntry( "MICROKDEHOME", mStoreUrl->url() );
143 qDebug("cfg.writeEntry( MICROKDEHOME, mStoreUrl->url() ); ");
144 cfg.sync();
145 } else {
146 mStoreUrl->setURL( QDir::homeDirPath() + "/kdepim" );
147 saveStoreSettings();
148 }
149}
112void KDEPIMConfigWidget::setupExternalAppTab() 150void KDEPIMConfigWidget::setupExternalAppTab()
113{ 151{
114 QWidget *externalAppsPage = new QWidget( this ); 152 QWidget *externalAppsPage = new QWidget( this );
115 QVBoxLayout* layout = new QVBoxLayout( externalAppsPage, KDialog::marginHintSmall(), 153 QVBoxLayout* layout = new QVBoxLayout( externalAppsPage, KDialog::marginHintSmall(),
116 KDialog::spacingHintSmall() ); 154 KDialog::spacingHintSmall() );
117 155
118 mExternalApps = new QComboBox( externalAppsPage ); 156 mExternalApps = new QComboBox( externalAppsPage );
119 157
120 QMap<ExternalAppHandler::Types, QString>::Iterator it; 158 QMap<ExternalAppHandler::Types, QString>::Iterator it;
121 for( it = mExternalAppsMap.begin(); it != mExternalAppsMap.end(); ++it ) 159 for( it = mExternalAppsMap.begin(); it != mExternalAppsMap.end(); ++it )
122 mExternalApps->insertItem( it.data(), it.key() ); 160 mExternalApps->insertItem( it.data(), it.key() );
123 161
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
@@ -23,24 +23,25 @@
23 23
24/* 24/*
25Enhanced Version of the file for platform independent KDE tools. 25Enhanced Version of the file for platform independent KDE tools.
26Copyright (c) 2004 Ulf Schenk 26Copyright (c) 2004 Ulf Schenk
27 27
28$Id$ 28$Id$
29*/ 29*/
30 30
31#ifndef KDEPIMCONFIGWIDGET_H 31#ifndef KDEPIMCONFIGWIDGET_H
32#define KDEPIMCONFIGWIDGET_H 32#define KDEPIMCONFIGWIDGET_H
33 33
34#include <kprefswidget.h> 34#include <kprefswidget.h>
35#include <kio/kfile/kurlrequester.h>
35#include <qmap.h> 36#include <qmap.h>
36 37
37#include "externalapphandler.h" 38#include "externalapphandler.h"
38 39
39 40
40class QComboBox; 41class QComboBox;
41class QLineEdit; 42class QLineEdit;
42class KPimGlobalPrefs; 43class KPimGlobalPrefs;
43class QGroupBox; 44class QGroupBox;
44class QTabWidget; 45class QTabWidget;
45class KDateEdit; 46class KDateEdit;
46 47
@@ -59,30 +60,34 @@ class KDEPIMConfigWidget : public KPrefsWidget
59 /** Implement this to read custom configuration widgets. */ 60 /** Implement this to read custom configuration widgets. */
60 virtual void usrReadConfig(); 61 virtual void usrReadConfig();
61 /** Implement this to write custom configuration widgets. */ 62 /** Implement this to write custom configuration widgets. */
62 virtual void usrWriteConfig(); 63 virtual void usrWriteConfig();
63 64
64 65
65 private slots: 66 private slots:
66// void configureExtension(); 67// void configureExtension();
67// void selectionChanged( QListViewItem* ); 68// void selectionChanged( QListViewItem* );
68// void itemClicked( QListViewItem* ); 69// void itemClicked( QListViewItem* );
69 void client_changed( int newClient ); 70 void client_changed( int newClient );
70 void externalapp_changed( int newApp ); 71 void externalapp_changed( int newApp );
72 void saveStoreSettings();
73 void setStandardStore();
71 74
72 private: 75 private:
73 void setupExternalAppTab(); 76 void setupExternalAppTab();
74 void setupLocaleDateTab(); 77 void setupLocaleDateTab();
75 void setupLocaleTab(); 78 void setupLocaleTab();
76 void setupTimeZoneTab(); 79 void setupTimeZoneTab();
80 void setupStoreTab();
81 KURLRequester* mStoreUrl;
77 82
78 void setCombo(QComboBox *combo,const QString & text, const QStringList *tags = 0); 83 void setCombo(QComboBox *combo,const QString & text, const QStringList *tags = 0);
79 84
80 85
81 void saveEditFieldSettings(); 86 void saveEditFieldSettings();
82 void updateClientWidgets(); 87 void updateClientWidgets();
83 88
84 QTabWidget *tabWidget; 89 QTabWidget *tabWidget;
85 90
86 91
87 QLineEdit* mUserDateFormatShort; 92 QLineEdit* mUserDateFormatShort;
88 QLineEdit* mUserDateFormatLong; 93 QLineEdit* mUserDateFormatLong;
diff --git a/microkde/kdecore/kstandarddirs.cpp b/microkde/kdecore/kstandarddirs.cpp
index 4c03c15..f3584d7 100644
--- a/microkde/kdecore/kstandarddirs.cpp
+++ b/microkde/kdecore/kstandarddirs.cpp
@@ -1274,25 +1274,27 @@ void KStandardDirs::addKDEDefaults()
1274 { 1274 {
1275#ifdef _WIN32_ 1275#ifdef _WIN32_
1276 if (localKdeDir.at(localKdeDir.length()-1) != '\\') 1276 if (localKdeDir.at(localKdeDir.length()-1) != '\\')
1277 localKdeDir += '\\'; 1277 localKdeDir += '\\';
1278#else 1278#else
1279 if (localKdeDir.at(localKdeDir.length()-1) != '/') 1279 if (localKdeDir.at(localKdeDir.length()-1) != '/')
1280 localKdeDir += '/'; 1280 localKdeDir += '/';
1281#endif 1281#endif
1282 //QMessageBox::information( 0,"localKdeDir",localKdeDir, 1 ); 1282 //QMessageBox::information( 0,"localKdeDir",localKdeDir, 1 );
1283 } 1283 }
1284 else 1284 else
1285 { 1285 {
1286 localKdeDir = QDir::homeDirPath() + "/kdepim/"; 1286 KConfig cfg ( QDir::homeDirPath() + "/.microkdehome" );
1287 cfg.setGroup("Global");
1288 localKdeDir = cfg.readEntry( "MICROKDEHOME", QDir::homeDirPath() + "/kdepim/" );
1287 } 1289 }
1288 } 1290 }
1289 else 1291 else
1290 { 1292 {
1291 // We treat root different to prevent root messing up the 1293 // We treat root different to prevent root messing up the
1292 // file permissions in the users home directory. 1294 // file permissions in the users home directory.
1293 localKdeDir = readEnvPath("MICROKDEROOTHOME"); 1295 localKdeDir = readEnvPath("MICROKDEROOTHOME");
1294 if (!localKdeDir.isEmpty()) 1296 if (!localKdeDir.isEmpty())
1295 { 1297 {
1296 if (localKdeDir.at(localKdeDir.length()-1) != '/') 1298 if (localKdeDir.at(localKdeDir.length()-1) != '/')
1297 localKdeDir += '/'; 1299 localKdeDir += '/';
1298 } 1300 }
diff --git a/microkde/kdecore/kstandarddirs.h b/microkde/kdecore/kstandarddirs.h
index c4e1108..bee864e 100644
--- a/microkde/kdecore/kstandarddirs.h
+++ b/microkde/kdecore/kstandarddirs.h
@@ -559,25 +559,25 @@ public:
559 /** 559 /**
560 * Expands all symbolic links and resolves references to 560 * Expands all symbolic links and resolves references to
561 * '/./', '/../' and extra '/' characters in @p dirname 561 * '/./', '/../' and extra '/' characters in @p dirname
562 * and returns the canonicalized absolute pathname. 562 * and returns the canonicalized absolute pathname.
563 * The resulting path will have no symbolic link, '/./' 563 * The resulting path will have no symbolic link, '/./'
564 * or '/../' components. 564 * or '/../' components.
565 * @since 3.1 565 * @since 3.1
566 */ 566 */
567 static QString realPath(const QString &dirname); 567 static QString realPath(const QString &dirname);
568 568
569 static void setAppDir( const QString & ); 569 static void setAppDir( const QString & );
570 static QString appDir(); 570 static QString appDir();
571 571
572 private: 572 private:
573 573
574 QStringList prefixes; 574 QStringList prefixes;
575 575
576 // Directory dictionaries 576 // Directory dictionaries
577 QDict<QStringList> absolutes; 577 QDict<QStringList> absolutes;
578 QDict<QStringList> relatives; 578 QDict<QStringList> relatives;
579 579
580 mutable QDict<QStringList> dircache; 580 mutable QDict<QStringList> dircache;
581 mutable QDict<QString> savelocations; 581 mutable QDict<QString> savelocations;
582 582
583 // Disallow assignment and copy-construction 583 // Disallow assignment and copy-construction