summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-10-06 16:02:56 (UTC)
committer zautrix <zautrix>2004-10-06 16:02:56 (UTC)
commita22de800110d8350a5200a994b041e47d51bf4c6 (patch) (unidiff)
treea4de195003d1ceabc3fd9ca4e5cd0510570bcb97
parentef71411c2f248d1dc908aa2f119c9b281e0e8bb9 (diff)
downloadkdepimpi-a22de800110d8350a5200a994b041e47d51bf4c6.zip
kdepimpi-a22de800110d8350a5200a994b041e47d51bf4c6.tar.gz
kdepimpi-a22de800110d8350a5200a994b041e47d51bf4c6.tar.bz2
added phone export
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp143
-rw-r--r--kaddressbook/kabcore.h2
-rw-r--r--korganizer/koprefs.cpp4
-rw-r--r--korganizer/koprefs.h3
-rw-r--r--korganizer/mainwindow.cpp25
-rw-r--r--libkdepim/kpimglobalprefs.cpp7
-rw-r--r--libkdepim/kpimglobalprefs.h3
-rw-r--r--libkdepim/libkdepim.pro6
-rw-r--r--libkdepim/libkdepimE.pro6
-rw-r--r--libkdepim/phoneaccess.cpp153
-rw-r--r--libkdepim/phoneaccess.h42
11 files changed, 371 insertions, 23 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index f8359de..185cf46 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1,251 +1,299 @@
1/* 1/*
2 This file is part of KAddressbook. 2 This file is part of KAddressbook.
3 Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> 3 Copyright (c) 2003 Tobias Koenig <tokoe@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
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#include "kabcore.h" 31#include "kabcore.h"
32 32
33#include <stdaddressbook.h> 33#include <stdaddressbook.h>
34#include <klocale.h> 34#include <klocale.h>
35#include <kfiledialog.h> 35#include <kfiledialog.h>
36#include <qtimer.h> 36#include <qtimer.h>
37#include <qlabel.h>
38#include <qlineedit.h>
39#include <qcheckbox.h>
40#include <qpushbutton.h>
37#include <qprogressbar.h> 41#include <qprogressbar.h>
38 42
39#ifndef KAB_EMBEDDED 43#ifndef KAB_EMBEDDED
40#include <qclipboard.h> 44#include <qclipboard.h>
41#include <qdir.h> 45#include <qdir.h>
42#include <qfile.h> 46#include <qfile.h>
43#include <qapplicaton.h> 47#include <qapplicaton.h>
44#include <qprogressbar.h> 48#include <qprogressbar.h>
45#include <qlayout.h> 49#include <qlayout.h>
46#include <qregexp.h> 50#include <qregexp.h>
47#include <qvbox.h> 51#include <qvbox.h>
48#include <kabc/addresseelist.h> 52#include <kabc/addresseelist.h>
49#include <kabc/errorhandler.h> 53#include <kabc/errorhandler.h>
50#include <kabc/resource.h> 54#include <kabc/resource.h>
51#include <kabc/vcardconverter.h> 55#include <kabc/vcardconverter.h>
52#include <kapplication.h> 56#include <kapplication.h>
53#include <kactionclasses.h> 57#include <kactionclasses.h>
54#include <kcmultidialog.h> 58#include <kcmultidialog.h>
55#include <kdebug.h> 59#include <kdebug.h>
56#include <kdeversion.h> 60#include <kdeversion.h>
57#include <kkeydialog.h> 61#include <kkeydialog.h>
58#include <kmessagebox.h> 62#include <kmessagebox.h>
59#include <kprinter.h> 63#include <kprinter.h>
60#include <kprotocolinfo.h> 64#include <kprotocolinfo.h>
61#include <kresources/selectdialog.h> 65#include <kresources/selectdialog.h>
62#include <kstandarddirs.h> 66#include <kstandarddirs.h>
63#include <ktempfile.h> 67#include <ktempfile.h>
64#include <kxmlguiclient.h> 68#include <kxmlguiclient.h>
65#include <kaboutdata.h> 69#include <kaboutdata.h>
66#include <libkdepim/categoryselectdialog.h> 70#include <libkdepim/categoryselectdialog.h>
67 71
68#include "addresseeutil.h" 72#include "addresseeutil.h"
69#include "addresseeeditordialog.h" 73#include "addresseeeditordialog.h"
70#include "extensionmanager.h" 74#include "extensionmanager.h"
71#include "kstdaction.h" 75#include "kstdaction.h"
72#include "kaddressbookservice.h" 76#include "kaddressbookservice.h"
73#include "ldapsearchdialog.h" 77#include "ldapsearchdialog.h"
74#include "printing/printingwizard.h" 78#include "printing/printingwizard.h"
75#else // KAB_EMBEDDED 79#else // KAB_EMBEDDED
76 80
77#include <kapplication.h> 81#include <kapplication.h>
78#include "KDGanttMinimizeSplitter.h" 82#include "KDGanttMinimizeSplitter.h"
79#include "kaddressbookmain.h" 83#include "kaddressbookmain.h"
80#include "kactioncollection.h" 84#include "kactioncollection.h"
81#include "addresseedialog.h" 85#include "addresseedialog.h"
82//US 86//US
83#include <addresseeview.h> 87#include <addresseeview.h>
84 88
85#include <qapp.h> 89#include <qapp.h>
86#include <qmenubar.h> 90#include <qmenubar.h>
87//#include <qtoolbar.h> 91//#include <qtoolbar.h>
88#include <qmessagebox.h> 92#include <qmessagebox.h>
89#include <kdebug.h> 93#include <kdebug.h>
90#include <kiconloader.h> // needed for SmallIcon 94#include <kiconloader.h> // needed for SmallIcon
91#include <kresources/kcmkresources.h> 95#include <kresources/kcmkresources.h>
92#include <ktoolbar.h> 96#include <ktoolbar.h>
93 97
94 98
95//#include <qlabel.h> 99//#include <qlabel.h>
96 100
97 101
98#ifndef DESKTOP_VERSION 102#ifndef DESKTOP_VERSION
99#include <qpe/ir.h> 103#include <qpe/ir.h>
100#include <qpe/qpemenubar.h> 104#include <qpe/qpemenubar.h>
101#include <qtopia/qcopenvelope_qws.h> 105#include <qtopia/qcopenvelope_qws.h>
102#else 106#else
103 107
104#include <qmenubar.h> 108#include <qmenubar.h>
105#endif 109#endif
106 110
107#endif // KAB_EMBEDDED 111#endif // KAB_EMBEDDED
108#include "kcmconfigs/kcmkabconfig.h" 112#include "kcmconfigs/kcmkabconfig.h"
109#include "kcmconfigs/kcmkdepimconfig.h" 113#include "kcmconfigs/kcmkdepimconfig.h"
110#include "kpimglobalprefs.h" 114#include "kpimglobalprefs.h"
111#include "externalapphandler.h" 115#include "externalapphandler.h"
112 116
113 117
114#include <kresources/selectdialog.h> 118#include <kresources/selectdialog.h>
115#include <kmessagebox.h> 119#include <kmessagebox.h>
116 120
117#include <picture.h> 121#include <picture.h>
118#include <resource.h> 122#include <resource.h>
119 123
120//US#include <qsplitter.h> 124//US#include <qsplitter.h>
121#include <qmap.h> 125#include <qmap.h>
122#include <qdir.h> 126#include <qdir.h>
123#include <qfile.h> 127#include <qfile.h>
124#include <qvbox.h> 128#include <qvbox.h>
125#include <qlayout.h> 129#include <qlayout.h>
126#include <qclipboard.h> 130#include <qclipboard.h>
127#include <qtextstream.h> 131#include <qtextstream.h>
128 132
129#include <libkdepim/categoryselectdialog.h> 133#include <libkdepim/categoryselectdialog.h>
130#include <kabc/vcardconverter.h> 134#include <kabc/vcardconverter.h>
131 135
132 136
133#include "addresseeutil.h" 137#include "addresseeutil.h"
134#include "undocmds.h" 138#include "undocmds.h"
135#include "addresseeeditordialog.h" 139#include "addresseeeditordialog.h"
136#include "viewmanager.h" 140#include "viewmanager.h"
137#include "details/detailsviewcontainer.h" 141#include "details/detailsviewcontainer.h"
138#include "kabprefs.h" 142#include "kabprefs.h"
139#include "xxportmanager.h" 143#include "xxportmanager.h"
140#include "incsearchwidget.h" 144#include "incsearchwidget.h"
141#include "jumpbuttonbar.h" 145#include "jumpbuttonbar.h"
142#include "extensionmanager.h" 146#include "extensionmanager.h"
143#include "addresseeconfig.h" 147#include "addresseeconfig.h"
144#include <kcmultidialog.h> 148#include <kcmultidialog.h>
145 149
146#ifdef _WIN32_ 150#ifdef _WIN32_
147 151
148#include "kaimportoldialog.h" 152#include "kaimportoldialog.h"
149#else 153#else
150#include <unistd.h> 154#include <unistd.h>
151#endif 155#endif
152// sync includes 156// sync includes
153#include <libkdepim/ksyncprofile.h> 157#include <libkdepim/ksyncprofile.h>
154#include <libkdepim/ksyncprefsdialog.h> 158#include <libkdepim/ksyncprefsdialog.h>
155 159
160class KAex2phonePrefs : public QDialog
161{
162 public:
163 KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
164 QDialog( parent, name, true )
165 {
166 setCaption( i18n("Export to phone options") );
167 QVBoxLayout* lay = new QVBoxLayout( this );
168 lay->setSpacing( 3 );
169 lay->setMargin( 3 );
170 QLabel *lab;
171 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
172 lab->setAlignment (AlignHCenter );
173 QHBox* temphb;
174 temphb = new QHBox( this );
175 new QLabel( i18n("I/O device: "), temphb );
176 mPhoneDevice = new QLineEdit( temphb);
177 lay->addWidget( temphb );
178 temphb = new QHBox( this );
179 new QLabel( i18n("Connection: "), temphb );
180 mPhoneConnection = new QLineEdit( temphb);
181 lay->addWidget( temphb );
182 temphb = new QHBox( this );
183 new QLabel( i18n("Model(opt.): "), temphb );
184 mPhoneModel = new QLineEdit( temphb);
185 lay->addWidget( temphb );
186 mWriteToSim= new QCheckBox( i18n("Write Contacts to SIM card\n(if not, write to phone memory)"), this );
187 lay->addWidget( mWriteToSim );
188 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ncontact data on phone!"), this ) );
189 lab->setAlignment (AlignHCenter );
190 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
191 lay->addWidget( ok );
192 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
193 lay->addWidget( cancel );
194 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
195 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
196 resize( 220, 240 );
197
198 }
199
200public:
201 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
202 QCheckBox* mWriteToSim;
203};
156 204
157bool pasteWithNewUid = true; 205bool pasteWithNewUid = true;
158 206
159#ifdef KAB_EMBEDDED 207#ifdef KAB_EMBEDDED
160KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) 208KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name )
161 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 209 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
162 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ 210 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/
163 mReadWrite( readWrite ), mModified( false ), mMainWindow(client) 211 mReadWrite( readWrite ), mModified( false ), mMainWindow(client)
164#else //KAB_EMBEDDED 212#else //KAB_EMBEDDED
165KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) 213KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name )
166 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 214 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
167 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), 215 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ),
168 mReadWrite( readWrite ), mModified( false ) 216 mReadWrite( readWrite ), mModified( false )
169#endif //KAB_EMBEDDED 217#endif //KAB_EMBEDDED
170{ 218{
171 // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); 219 // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu);
172 // syncManager->setBlockSave(false); 220 // syncManager->setBlockSave(false);
173 mExtensionBarSplitter = 0; 221 mExtensionBarSplitter = 0;
174 mIsPart = !parent->inherits( "KAddressBookMain" ); 222 mIsPart = !parent->inherits( "KAddressBookMain" );
175 223
176 mAddressBook = KABC::StdAddressBook::self(); 224 mAddressBook = KABC::StdAddressBook::self();
177 KABC::StdAddressBook::setAutomaticSave( false ); 225 KABC::StdAddressBook::setAutomaticSave( false );
178 226
179#ifndef KAB_EMBEDDED 227#ifndef KAB_EMBEDDED
180 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); 228 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler );
181#endif //KAB_EMBEDDED 229#endif //KAB_EMBEDDED
182 230
183 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), 231 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ),
184 SLOT( addressBookChanged() ) ); 232 SLOT( addressBookChanged() ) );
185 233
186#if 0 234#if 0
187 // LP moved to addressbook init method 235 // LP moved to addressbook init method
188 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, 236 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization,
189 "X-Department", "KADDRESSBOOK" ); 237 "X-Department", "KADDRESSBOOK" );
190 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, 238 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization,
191 "X-Profession", "KADDRESSBOOK" ); 239 "X-Profession", "KADDRESSBOOK" );
192 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, 240 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization,
193 "X-AssistantsName", "KADDRESSBOOK" ); 241 "X-AssistantsName", "KADDRESSBOOK" );
194 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, 242 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization,
195 "X-ManagersName", "KADDRESSBOOK" ); 243 "X-ManagersName", "KADDRESSBOOK" );
196 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, 244 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal,
197 "X-SpousesName", "KADDRESSBOOK" ); 245 "X-SpousesName", "KADDRESSBOOK" );
198 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, 246 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal,
199 "X-Office", "KADDRESSBOOK" ); 247 "X-Office", "KADDRESSBOOK" );
200 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, 248 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal,
201 "X-IMAddress", "KADDRESSBOOK" ); 249 "X-IMAddress", "KADDRESSBOOK" );
202 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, 250 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal,
203 "X-Anniversary", "KADDRESSBOOK" ); 251 "X-Anniversary", "KADDRESSBOOK" );
204 252
205 //US added this field to become compatible with Opie/qtopia addressbook 253 //US added this field to become compatible with Opie/qtopia addressbook
206 // values can be "female" or "male" or "". An empty field represents undefined. 254 // values can be "female" or "male" or "". An empty field represents undefined.
207 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, 255 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal,
208 "X-Gender", "KADDRESSBOOK" ); 256 "X-Gender", "KADDRESSBOOK" );
209 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, 257 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal,
210 "X-Children", "KADDRESSBOOK" ); 258 "X-Children", "KADDRESSBOOK" );
211 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, 259 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal,
212 "X-FreeBusyUrl", "KADDRESSBOOK" ); 260 "X-FreeBusyUrl", "KADDRESSBOOK" );
213#endif 261#endif
214 initGUI(); 262 initGUI();
215 263
216 mIncSearchWidget->setFocus(); 264 mIncSearchWidget->setFocus();
217 265
218 266
219 connect( mViewManager, SIGNAL( selected( const QString& ) ), 267 connect( mViewManager, SIGNAL( selected( const QString& ) ),
220 SLOT( setContactSelected( const QString& ) ) ); 268 SLOT( setContactSelected( const QString& ) ) );
221 connect( mViewManager, SIGNAL( executed( const QString& ) ), 269 connect( mViewManager, SIGNAL( executed( const QString& ) ),
222 SLOT( executeContact( const QString& ) ) ); 270 SLOT( executeContact( const QString& ) ) );
223 271
224 connect( mViewManager, SIGNAL( deleteRequest( ) ), 272 connect( mViewManager, SIGNAL( deleteRequest( ) ),
225 SLOT( deleteContacts( ) ) ); 273 SLOT( deleteContacts( ) ) );
226 connect( mViewManager, SIGNAL( modified() ), 274 connect( mViewManager, SIGNAL( modified() ),
227 SLOT( setModified() ) ); 275 SLOT( setModified() ) );
228 276
229 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); 277 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) );
230 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); 278 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) );
231 279
232 connect( mXXPortManager, SIGNAL( modified() ), 280 connect( mXXPortManager, SIGNAL( modified() ),
233 SLOT( setModified() ) ); 281 SLOT( setModified() ) );
234 282
235 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), 283 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ),
236 SLOT( incrementalSearch( const QString& ) ) ); 284 SLOT( incrementalSearch( const QString& ) ) );
237 connect( mIncSearchWidget, SIGNAL( fieldChanged() ), 285 connect( mIncSearchWidget, SIGNAL( fieldChanged() ),
238 mJumpButtonBar, SLOT( recreateButtons() ) ); 286 mJumpButtonBar, SLOT( recreateButtons() ) );
239 287
240 connect( mDetails, SIGNAL( sendEmail( const QString& ) ), 288 connect( mDetails, SIGNAL( sendEmail( const QString& ) ),
241 SLOT( sendMail( const QString& ) ) ); 289 SLOT( sendMail( const QString& ) ) );
242 290
243 291
244 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); 292 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&)));
245 connect( ExternalAppHandler::instance(), SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)),this, SLOT(requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&))); 293 connect( ExternalAppHandler::instance(), SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)),this, SLOT(requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)));
246 294
247 295
248#ifndef KAB_EMBEDDED 296#ifndef KAB_EMBEDDED
249 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), 297 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ),
250 mXXPortManager, SLOT( importVCard( const KURL& ) ) ); 298 mXXPortManager, SLOT( importVCard( const KURL& ) ) );
251 299
@@ -417,291 +465,381 @@ void KABCore::createAboutData()
417{ 465{
418#ifndef KAB_EMBEDDED 466#ifndef KAB_EMBEDDED
419 KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ), 467 KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ),
420 "3.1", I18N_NOOP( "The KDE Address Book" ), 468 "3.1", I18N_NOOP( "The KDE Address Book" ),
421 KAboutData::License_GPL_V2, 469 KAboutData::License_GPL_V2,
422 I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) ); 470 I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) );
423 about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" ); 471 about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" );
424 about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) ); 472 about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) );
425 about->addAuthor( "Cornelius Schumacher", 473 about->addAuthor( "Cornelius Schumacher",
426 I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ), 474 I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ),
427 "schumacher@kde.org" ); 475 "schumacher@kde.org" );
428 about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ), 476 about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ),
429 "mpilone@slac.com" ); 477 "mpilone@slac.com" );
430 about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) ); 478 about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) );
431 about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) ); 479 about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) );
432 about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ), 480 about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ),
433 "michel@klaralvdalens-datakonsult.se" ); 481 "michel@klaralvdalens-datakonsult.se" );
434 about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ), 482 about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ),
435 "hansen@kde.org" ); 483 "hansen@kde.org" );
436 484
437 return about; 485 return about;
438#endif //KAB_EMBEDDED 486#endif //KAB_EMBEDDED
439 487
440 QString version; 488 QString version;
441#include <../version> 489#include <../version>
442 QMessageBox::about( this, "About KAddressbook/Pi", 490 QMessageBox::about( this, "About KAddressbook/Pi",
443 "KAddressbook/Platform-independent\n" 491 "KAddressbook/Platform-independent\n"
444 "(KA/Pi) " +version + " - " + 492 "(KA/Pi) " +version + " - " +
445#ifdef DESKTOP_VERSION 493#ifdef DESKTOP_VERSION
446 "Desktop Edition\n" 494 "Desktop Edition\n"
447#else 495#else
448 "PDA-Edition\n" 496 "PDA-Edition\n"
449 "for: Zaurus 5500 / 7x0 / 8x0\n" 497 "for: Zaurus 5500 / 7x0 / 8x0\n"
450#endif 498#endif
451 499
452 "(c) 2004 Ulf Schenk\n" 500 "(c) 2004 Ulf Schenk\n"
453 "(c) 2004 Lutz Rogowski\n" 501 "(c) 2004 Lutz Rogowski\n"
454 "(c) 1997-2003, The KDE PIM Team\n" 502 "(c) 1997-2003, The KDE PIM Team\n"
455 "Tobias Koenig Current maintainer\ntokoe@kde.org\n" 503 "Tobias Koenig Current maintainer\ntokoe@kde.org\n"
456 "Don Sanders Original author\n" 504 "Don Sanders Original author\n"
457 "Cornelius Schumacher Co-maintainer\nschumacher@kde.org\n" 505 "Cornelius Schumacher Co-maintainer\nschumacher@kde.org\n"
458 "Mike Pilone GUI and framework redesign\nmpilone@slac.com\n" 506 "Mike Pilone GUI and framework redesign\nmpilone@slac.com\n"
459 "Greg Stern DCOP interface\n" 507 "Greg Stern DCOP interface\n"
460 "Mark Westcot Contact pinning\n" 508 "Mark Westcot Contact pinning\n"
461 "Michel Boyer de la Giroday LDAP Lookup\n" "michel@klaralvdalens-datakonsult.se\n" 509 "Michel Boyer de la Giroday LDAP Lookup\n" "michel@klaralvdalens-datakonsult.se\n"
462 "Steffen Hansen LDAP Lookup\nhansen@kde.org\n" 510 "Steffen Hansen LDAP Lookup\nhansen@kde.org\n"
463#ifdef _WIN32_ 511#ifdef _WIN32_
464 "(c) 2004 Lutz Rogowski Import from OL\nrogowski@kde.org\n" 512 "(c) 2004 Lutz Rogowski Import from OL\nrogowski@kde.org\n"
465#endif 513#endif
466 ); 514 );
467} 515}
468 516
469void KABCore::setContactSelected( const QString &uid ) 517void KABCore::setContactSelected( const QString &uid )
470{ 518{
471 KABC::Addressee addr = mAddressBook->findByUid( uid ); 519 KABC::Addressee addr = mAddressBook->findByUid( uid );
472 if ( !mDetails->isHidden() ) 520 if ( !mDetails->isHidden() )
473 mDetails->setAddressee( addr ); 521 mDetails->setAddressee( addr );
474 522
475 if ( !addr.isEmpty() ) { 523 if ( !addr.isEmpty() ) {
476 emit contactSelected( addr.formattedName() ); 524 emit contactSelected( addr.formattedName() );
477 KABC::Picture pic = addr.photo(); 525 KABC::Picture pic = addr.photo();
478 if ( pic.isIntern() ) { 526 if ( pic.isIntern() ) {
479//US emit contactSelected( pic.data() ); 527//US emit contactSelected( pic.data() );
480//US instead use: 528//US instead use:
481 QPixmap px; 529 QPixmap px;
482 if (pic.data().isNull() != true) 530 if (pic.data().isNull() != true)
483 { 531 {
484 px.convertFromImage(pic.data()); 532 px.convertFromImage(pic.data());
485 } 533 }
486 534
487 emit contactSelected( px ); 535 emit contactSelected( px );
488 } 536 }
489 } 537 }
490 538
491 539
492 mExtensionManager->setSelectionChanged(); 540 mExtensionManager->setSelectionChanged();
493 541
494 // update the actions 542 // update the actions
495 bool selected = !uid.isEmpty(); 543 bool selected = !uid.isEmpty();
496 544
497 if ( mReadWrite ) { 545 if ( mReadWrite ) {
498 mActionCut->setEnabled( selected ); 546 mActionCut->setEnabled( selected );
499 mActionPaste->setEnabled( selected ); 547 mActionPaste->setEnabled( selected );
500 } 548 }
501 549
502 mActionCopy->setEnabled( selected ); 550 mActionCopy->setEnabled( selected );
503 mActionDelete->setEnabled( selected ); 551 mActionDelete->setEnabled( selected );
504 mActionEditAddressee->setEnabled( selected ); 552 mActionEditAddressee->setEnabled( selected );
505 mActionMail->setEnabled( selected ); 553 mActionMail->setEnabled( selected );
506 mActionMailVCard->setEnabled( selected ); 554 mActionMailVCard->setEnabled( selected );
507 //if (mActionBeam) 555 //if (mActionBeam)
508 //mActionBeam->setEnabled( selected ); 556 //mActionBeam->setEnabled( selected );
509 557
510 if (mActionBeamVCard) 558 if (mActionBeamVCard)
511 mActionBeamVCard->setEnabled( selected ); 559 mActionBeamVCard->setEnabled( selected );
512 560
561 mActionExport2phone->setEnabled( selected );
513 mActionWhoAmI->setEnabled( selected ); 562 mActionWhoAmI->setEnabled( selected );
514 mActionCategories->setEnabled( selected ); 563 mActionCategories->setEnabled( selected );
515} 564}
516 565
517void KABCore::sendMail() 566void KABCore::sendMail()
518{ 567{
519 sendMail( mViewManager->selectedEmails().join( ", " ) ); 568 sendMail( mViewManager->selectedEmails().join( ", " ) );
520} 569}
521 570
522void KABCore::sendMail( const QString& emaillist ) 571void KABCore::sendMail( const QString& emaillist )
523{ 572{
524 // the parameter has the form "name1 <abc@aol.com>,name2 <abc@aol.com>;... " 573 // the parameter has the form "name1 <abc@aol.com>,name2 <abc@aol.com>;... "
525 if (emaillist.contains(",") > 0) 574 if (emaillist.contains(",") > 0)
526 ExternalAppHandler::instance()->mailToMultipleContacts( emaillist, QString::null ); 575 ExternalAppHandler::instance()->mailToMultipleContacts( emaillist, QString::null );
527 else 576 else
528 ExternalAppHandler::instance()->mailToOneContact( emaillist ); 577 ExternalAppHandler::instance()->mailToOneContact( emaillist );
529} 578}
530 579
531 580
532 581
533void KABCore::mailVCard() 582void KABCore::mailVCard()
534{ 583{
535 QStringList uids = mViewManager->selectedUids(); 584 QStringList uids = mViewManager->selectedUids();
536 if ( !uids.isEmpty() ) 585 if ( !uids.isEmpty() )
537 mailVCard( uids ); 586 mailVCard( uids );
538} 587}
539 588
540void KABCore::mailVCard( const QStringList& uids ) 589void KABCore::mailVCard( const QStringList& uids )
541{ 590{
542 QStringList urls; 591 QStringList urls;
543 592
544// QString tmpdir = locateLocal("tmp", KGlobal::getAppName()); 593// QString tmpdir = locateLocal("tmp", KGlobal::getAppName());
545 594
546 QString dirName = "/tmp/" + KApplication::randomString( 8 ); 595 QString dirName = "/tmp/" + KApplication::randomString( 8 );
547 596
548 597
549 598
550 QDir().mkdir( dirName, true ); 599 QDir().mkdir( dirName, true );
551 600
552 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { 601 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) {
553 KABC::Addressee a = mAddressBook->findByUid( *it ); 602 KABC::Addressee a = mAddressBook->findByUid( *it );
554 603
555 if ( a.isEmpty() ) 604 if ( a.isEmpty() )
556 continue; 605 continue;
557 606
558 QString name = a.givenName() + "_" + a.familyName() + ".vcf"; 607 QString name = a.givenName() + "_" + a.familyName() + ".vcf";
559 608
560 QString fileName = dirName + "/" + name; 609 QString fileName = dirName + "/" + name;
561 610
562 QFile outFile(fileName); 611 QFile outFile(fileName);
563 612
564 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully 613 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully
565 KABC::VCardConverter converter; 614 KABC::VCardConverter converter;
566 QString vcard; 615 QString vcard;
567 616
568 converter.addresseeToVCard( a, vcard ); 617 converter.addresseeToVCard( a, vcard );
569 618
570 QTextStream t( &outFile ); // use a text stream 619 QTextStream t( &outFile ); // use a text stream
571 t.setEncoding( QTextStream::UnicodeUTF8 ); 620 t.setEncoding( QTextStream::UnicodeUTF8 );
572 t << vcard; 621 t << vcard;
573 622
574 outFile.close(); 623 outFile.close();
575 624
576 urls.append( fileName ); 625 urls.append( fileName );
577 } 626 }
578 } 627 }
579 628
580 bool result = ExternalAppHandler::instance()->mailToMultipleContacts( QString::null, urls.join(", ") ); 629 bool result = ExternalAppHandler::instance()->mailToMultipleContacts( QString::null, urls.join(", ") );
581 630
582 631
583/*US 632/*US
584 kapp->invokeMailer( QString::null, QString::null, QString::null, 633 kapp->invokeMailer( QString::null, QString::null, QString::null,
585 QString::null, // subject 634 QString::null, // subject
586 QString::null, // body 635 QString::null, // body
587 QString::null, 636 QString::null,
588 urls ); // attachments 637 urls ); // attachments
589*/ 638*/
590 639
591} 640}
592 641
593/** 642/**
594 Beams the "WhoAmI contact. 643 Beams the "WhoAmI contact.
595*/ 644*/
596void KABCore::beamMySelf() 645void KABCore::beamMySelf()
597{ 646{
598 KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI(); 647 KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI();
599 if (!a.isEmpty()) 648 if (!a.isEmpty())
600 { 649 {
601 QStringList uids; 650 QStringList uids;
602 uids << a.uid(); 651 uids << a.uid();
603 652
604 beamVCard(uids); 653 beamVCard(uids);
605 } else { 654 } else {
606 KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) ); 655 KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) );
607 656
608 657
609 } 658 }
610} 659}
611 660
661void KABCore::export2phone()
662{
663
664 KAex2phonePrefs ex2phone;
665 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection );
666 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice );
667 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel );
668
669 if ( !ex2phone.exec() ) {
670 return;
671 }
672 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
673 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
674 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
675
676#if 0
677 PhoneFormat::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice,
678 KPimGlobalPrefs::instance()->mEx2PhoneConnection,
679 KPimGlobalPrefs::instance()->mEx2PhoneModel );
680
681
682
683
684
685 QString fileName = "/tmp/kapibeamfile.vcf";
686
687
688 //QDir().mkdir( dirName, true );
689
690
691 KABC::VCardConverter converter;
692 QString description;
693 QString datastream;
694 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) {
695 KABC::Addressee a = mAddressBook->findByUid( *it );
696
697 if ( a.isEmpty() )
698 continue;
699
700 if (description.isEmpty())
701 description = a.formattedName();
702
703 QString vcard;
704 converter.addresseeToVCard( a, vcard );
705 int start = 0;
706 int next;
707 while ( (next = vcard.find("TYPE=", start) )>= 0 ) {
708 int semi = vcard.find(";", next);
709 int dopp = vcard.find(":", next);
710 int sep;
711 if ( semi < dopp && semi >= 0 )
712 sep = semi ;
713 else
714 sep = dopp;
715 datastream +=vcard.mid( start, next - start);
716 datastream +=vcard.mid( next+5,sep -next -5 ).upper();
717 start = sep;
718 }
719 datastream += vcard.mid( start,vcard.length() );
720 }
721#ifndef DESKTOP_VERSION
722 QFile outFile(fileName);
723 if ( outFile.open(IO_WriteOnly) ) {
724 datastream.replace ( QRegExp("VERSION:3.0") , "VERSION:2.1" );
725 QTextStream t( &outFile ); // use a text stream
726 t.setEncoding( QTextStream::UnicodeUTF8 );
727 t <<datastream;
728 outFile.close();
729 Ir *ir = new Ir( this );
730 connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) );
731 ir->send( fileName, description, "text/x-vCard" );
732 } else {
733 qDebug("Error open temp beam file ");
734 return;
735 }
736#endif
737
738
739
740
741 setCaption( i18n("Writing to phone..."));
742 if ( PhoneFormat::writeToPhone( cal ) )
743 setCaption( i18n("Export to phone successful!"));
744 else
745 setCaption( i18n("Error exporting to phone!"));
746#endif
747
748
749}
612void KABCore::beamVCard() 750void KABCore::beamVCard()
613{ 751{
614 QStringList uids = mViewManager->selectedUids(); 752 QStringList uids = mViewManager->selectedUids();
615 if ( !uids.isEmpty() ) 753 if ( !uids.isEmpty() )
616 beamVCard( uids ); 754 beamVCard( uids );
617} 755}
618 756
619 757
620void KABCore::beamVCard(const QStringList& uids) 758void KABCore::beamVCard(const QStringList& uids)
621{ 759{
622/*US 760/*US
623 QString beamFilename; 761 QString beamFilename;
624 Opie::OPimContact c; 762 Opie::OPimContact c;
625 if ( actionPersonal->isOn() ) { 763 if ( actionPersonal->isOn() ) {
626 beamFilename = addressbookPersonalVCardName(); 764 beamFilename = addressbookPersonalVCardName();
627 if ( !QFile::exists( beamFilename ) ) 765 if ( !QFile::exists( beamFilename ) )
628 return; // can't beam a non-existent file 766 return; // can't beam a non-existent file
629 Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null, 767 Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null,
630 beamFilename ); 768 beamFilename );
631 Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true ); 769 Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true );
632 Opie::OPimContactAccess::List allList = access->allRecords(); 770 Opie::OPimContactAccess::List allList = access->allRecords();
633 Opie::OPimContactAccess::List::Iterator it = allList.begin(); // Just take first 771 Opie::OPimContactAccess::List::Iterator it = allList.begin(); // Just take first
634 c = *it; 772 c = *it;
635 773
636 delete access; 774 delete access;
637 } else { 775 } else {
638 unlink( beamfile ); // delete if exists 776 unlink( beamfile ); // delete if exists
639 mkdir("/tmp/obex/", 0755); 777 mkdir("/tmp/obex/", 0755);
640 c = m_abView -> currentEntry(); 778 c = m_abView -> currentEntry();
641 Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null, 779 Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null,
642 beamfile ); 780 beamfile );
643 Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true ); 781 Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true );
644 access->add( c ); 782 access->add( c );
645 access->save(); 783 access->save();
646 delete access; 784 delete access;
647 785
648 beamFilename = beamfile; 786 beamFilename = beamfile;
649 } 787 }
650 788
651 owarn << "Beaming: " << beamFilename << oendl; 789 owarn << "Beaming: " << beamFilename << oendl;
652*/ 790*/
653 791
654#if 0 792#if 0
655 QString tmpdir = locateLocal("tmp", KGlobal::getAppName()); 793 QString tmpdir = locateLocal("tmp", KGlobal::getAppName());
656 794
657 QString dirName = tmpdir + "/" + KApplication::randomString( 8 ); 795 QString dirName = tmpdir + "/" + KApplication::randomString( 8 );
658 796
659 QString name = "contact.vcf"; 797 QString name = "contact.vcf";
660 798
661 QString fileName = dirName + "/" + name; 799 QString fileName = dirName + "/" + name;
662#endif 800#endif
663 // LR: we should use the /tmp dir, because: /tmp = RAM, (HOME)/kdepim = flash memory 801 // LR: we should use the /tmp dir, because: /tmp = RAM, (HOME)/kdepim = flash memory
664 // 802 //
665 QString fileName = "/tmp/kapibeamfile.vcf"; 803 QString fileName = "/tmp/kapibeamfile.vcf";
666 804
667 805
668 //QDir().mkdir( dirName, true ); 806 //QDir().mkdir( dirName, true );
669 807
670 808
671 KABC::VCardConverter converter; 809 KABC::VCardConverter converter;
672 QString description; 810 QString description;
673 QString datastream; 811 QString datastream;
674 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { 812 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) {
675 KABC::Addressee a = mAddressBook->findByUid( *it ); 813 KABC::Addressee a = mAddressBook->findByUid( *it );
676 814
677 if ( a.isEmpty() ) 815 if ( a.isEmpty() )
678 continue; 816 continue;
679 817
680 if (description.isEmpty()) 818 if (description.isEmpty())
681 description = a.formattedName(); 819 description = a.formattedName();
682 820
683 QString vcard; 821 QString vcard;
684 converter.addresseeToVCard( a, vcard ); 822 converter.addresseeToVCard( a, vcard );
685 int start = 0; 823 int start = 0;
686 int next; 824 int next;
687 while ( (next = vcard.find("TYPE=", start) )>= 0 ) { 825 while ( (next = vcard.find("TYPE=", start) )>= 0 ) {
688 int semi = vcard.find(";", next); 826 int semi = vcard.find(";", next);
689 int dopp = vcard.find(":", next); 827 int dopp = vcard.find(":", next);
690 int sep; 828 int sep;
691 if ( semi < dopp && semi >= 0 ) 829 if ( semi < dopp && semi >= 0 )
692 sep = semi ; 830 sep = semi ;
693 else 831 else
694 sep = dopp; 832 sep = dopp;
695 datastream +=vcard.mid( start, next - start); 833 datastream +=vcard.mid( start, next - start);
696 datastream +=vcard.mid( next+5,sep -next -5 ).upper(); 834 datastream +=vcard.mid( next+5,sep -next -5 ).upper();
697 start = sep; 835 start = sep;
698 } 836 }
699 datastream += vcard.mid( start,vcard.length() ); 837 datastream += vcard.mid( start,vcard.length() );
700 } 838 }
701#ifndef DESKTOP_VERSION 839#ifndef DESKTOP_VERSION
702 QFile outFile(fileName); 840 QFile outFile(fileName);
703 if ( outFile.open(IO_WriteOnly) ) { 841 if ( outFile.open(IO_WriteOnly) ) {
704 datastream.replace ( QRegExp("VERSION:3.0") , "VERSION:2.1" ); 842 datastream.replace ( QRegExp("VERSION:3.0") , "VERSION:2.1" );
705 QTextStream t( &outFile ); // use a text stream 843 QTextStream t( &outFile ); // use a text stream
706 t.setEncoding( QTextStream::UnicodeUTF8 ); 844 t.setEncoding( QTextStream::UnicodeUTF8 );
707 t <<datastream; 845 t <<datastream;
@@ -1511,192 +1649,196 @@ void KABCore::initGUI()
1511 mDetailsSplitter = new QSplitter( this ); 1649 mDetailsSplitter = new QSplitter( this );
1512 1650
1513 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1651 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1514 1652
1515 mViewManager = new ViewManager( this, viewSpace ); 1653 mViewManager = new ViewManager( this, viewSpace );
1516 viewSpace->setStretchFactor( mViewManager, 1 ); 1654 viewSpace->setStretchFactor( mViewManager, 1 );
1517 1655
1518 mDetails = new ViewContainer( mDetailsSplitter ); 1656 mDetails = new ViewContainer( mDetailsSplitter );
1519 1657
1520 topLayout->addWidget( mDetailsSplitter ); 1658 topLayout->addWidget( mDetailsSplitter );
1521 topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1659 topLayout->setStretchFactor( mDetailsSplitter, 100 );
1522#else //KAB_NOSPLITTER 1660#else //KAB_NOSPLITTER
1523 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1661 QHBoxLayout *topLayout = new QHBoxLayout( this );
1524//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1662//US topLayout->setSpacing( KDialogBase::spacingHint() );
1525 topLayout->setSpacing( 10 ); 1663 topLayout->setSpacing( 10 );
1526 1664
1527// mDetailsSplitter = new QSplitter( this ); 1665// mDetailsSplitter = new QSplitter( this );
1528 1666
1529 QVBox *viewSpace = new QVBox( this ); 1667 QVBox *viewSpace = new QVBox( this );
1530 1668
1531 mViewManager = new ViewManager( this, viewSpace ); 1669 mViewManager = new ViewManager( this, viewSpace );
1532 viewSpace->setStretchFactor( mViewManager, 1 ); 1670 viewSpace->setStretchFactor( mViewManager, 1 );
1533 1671
1534 mDetails = new ViewContainer( this ); 1672 mDetails = new ViewContainer( this );
1535 1673
1536 topLayout->addWidget( viewSpace ); 1674 topLayout->addWidget( viewSpace );
1537// topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1675// topLayout->setStretchFactor( mDetailsSplitter, 100 );
1538 topLayout->addWidget( mDetails ); 1676 topLayout->addWidget( mDetails );
1539#endif //KAB_NOSPLITTER 1677#endif //KAB_NOSPLITTER
1540*/ 1678*/
1541 1679
1542 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); 1680 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu);
1543 syncManager->setBlockSave(false); 1681 syncManager->setBlockSave(false);
1544 1682
1545 1683
1546#endif //KAB_EMBEDDED 1684#endif //KAB_EMBEDDED
1547 initActions(); 1685 initActions();
1548 1686
1549#ifdef KAB_EMBEDDED 1687#ifdef KAB_EMBEDDED
1550 addActionsManually(); 1688 addActionsManually();
1551 //US make sure the export and import menues are initialized before creating the xxPortManager. 1689 //US make sure the export and import menues are initialized before creating the xxPortManager.
1552 mXXPortManager = new XXPortManager( this, this ); 1690 mXXPortManager = new XXPortManager( this, this );
1553 1691
1554 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() ); 1692 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() );
1555 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget); 1693 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget);
1556 // mActionQuit->plug ( mMainWindow->toolBar()); 1694 // mActionQuit->plug ( mMainWindow->toolBar());
1557 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() ); 1695 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() );
1558 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget); 1696 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget);
1559 // mIncSearchWidget->hide(); 1697 // mIncSearchWidget->hide();
1560 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1698 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1561 SLOT( incrementalSearch( const QString& ) ) ); 1699 SLOT( incrementalSearch( const QString& ) ) );
1562 1700
1563 1701
1564 mJumpButtonBar = new JumpButtonBar( this, this ); 1702 mJumpButtonBar = new JumpButtonBar( this, this );
1565 1703
1566 topLayout->addWidget( mJumpButtonBar ); 1704 topLayout->addWidget( mJumpButtonBar );
1567//US topLayout->setStretchFactor( mJumpButtonBar, 10 ); 1705//US topLayout->setStretchFactor( mJumpButtonBar, 10 );
1568 1706
1569// mMainWindow->getIconToolBar()->raise(); 1707// mMainWindow->getIconToolBar()->raise();
1570 1708
1571#endif //KAB_EMBEDDED 1709#endif //KAB_EMBEDDED
1572 1710
1573} 1711}
1574void KABCore::initActions() 1712void KABCore::initActions()
1575{ 1713{
1576//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); 1714//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
1577 1715
1578#ifndef KAB_EMBEDDED 1716#ifndef KAB_EMBEDDED
1579 connect( QApplication::clipboard(), SIGNAL( dataChanged() ), 1717 connect( QApplication::clipboard(), SIGNAL( dataChanged() ),
1580 SLOT( clipboardDataChanged() ) ); 1718 SLOT( clipboardDataChanged() ) );
1581#endif //KAB_EMBEDDED 1719#endif //KAB_EMBEDDED
1582 1720
1583 // file menu 1721 // file menu
1584 if ( mIsPart ) { 1722 if ( mIsPart ) {
1585 mActionMail = new KAction( i18n( "&Mail" ), "mail_generic", 0, this, 1723 mActionMail = new KAction( i18n( "&Mail" ), "mail_generic", 0, this,
1586 SLOT( sendMail() ), actionCollection(), 1724 SLOT( sendMail() ), actionCollection(),
1587 "kaddressbook_mail" ); 1725 "kaddressbook_mail" );
1588 mActionPrint = new KAction( i18n( "&Print" ), "fileprint", CTRL + Key_P, this, 1726 mActionPrint = new KAction( i18n( "&Print" ), "fileprint", CTRL + Key_P, this,
1589 SLOT( print() ), actionCollection(), "kaddressbook_print" ); 1727 SLOT( print() ), actionCollection(), "kaddressbook_print" );
1590 1728
1591 } else { 1729 } else {
1592 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() ); 1730 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() );
1593 mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() ); 1731 mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() );
1594 } 1732 }
1595 1733
1596 1734
1597 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this, 1735 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this,
1598 SLOT( save() ), actionCollection(), "file_sync" ); 1736 SLOT( save() ), actionCollection(), "file_sync" );
1599 1737
1600 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this, 1738 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this,
1601 SLOT( newContact() ), actionCollection(), "file_new_contact" ); 1739 SLOT( newContact() ), actionCollection(), "file_new_contact" );
1602 1740
1603 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0, 1741 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0,
1604 this, SLOT( mailVCard() ), 1742 this, SLOT( mailVCard() ),
1605 actionCollection(), "file_mail_vcard"); 1743 actionCollection(), "file_mail_vcard");
1606 1744
1745 mActionExport2phone = new KAction( i18n( "Selected to phone" ), "ex2phone", 0, this,
1746 SLOT( export2phone() ), actionCollection(),
1747 "kaddressbook_ex2phone" );
1748
1607 mActionBeamVCard = 0; 1749 mActionBeamVCard = 0;
1608 mActionBeam = 0; 1750 mActionBeam = 0;
1609 1751
1610#ifndef DESKTOP_VERSION 1752#ifndef DESKTOP_VERSION
1611 if ( Ir::supported() ) { 1753 if ( Ir::supported() ) {
1612 mActionBeamVCard = new KAction( i18n( "Beam selected v&Card(s)" ), "beam", 0, this, 1754 mActionBeamVCard = new KAction( i18n( "Beam selected v&Card(s)" ), "beam", 0, this,
1613 SLOT( beamVCard() ), actionCollection(), 1755 SLOT( beamVCard() ), actionCollection(),
1614 "kaddressbook_beam_vcard" ); 1756 "kaddressbook_beam_vcard" );
1615 1757
1616 mActionBeam = new KAction( i18n( "&Beam personal vCard" ), "beam", 0, this, 1758 mActionBeam = new KAction( i18n( "&Beam personal vCard" ), "beam", 0, this,
1617 SLOT( beamMySelf() ), actionCollection(), 1759 SLOT( beamMySelf() ), actionCollection(),
1618 "kaddressbook_beam_myself" ); 1760 "kaddressbook_beam_myself" );
1619 } 1761 }
1620#endif 1762#endif
1621 1763
1622 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0, 1764 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0,
1623 this, SLOT( editContact2() ), 1765 this, SLOT( editContact2() ),
1624 actionCollection(), "file_properties" ); 1766 actionCollection(), "file_properties" );
1625 1767
1626#ifdef KAB_EMBEDDED 1768#ifdef KAB_EMBEDDED
1627 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() ); 1769 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() );
1628 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0, 1770 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0,
1629 mMainWindow, SLOT( exit() ), 1771 mMainWindow, SLOT( exit() ),
1630 actionCollection(), "quit" ); 1772 actionCollection(), "quit" );
1631#endif //KAB_EMBEDDED 1773#endif //KAB_EMBEDDED
1632 1774
1633 // edit menu 1775 // edit menu
1634 if ( mIsPart ) { 1776 if ( mIsPart ) {
1635 mActionCopy = new KAction( i18n( "&Copy" ), "editcopy", CTRL + Key_C, this, 1777 mActionCopy = new KAction( i18n( "&Copy" ), "editcopy", CTRL + Key_C, this,
1636 SLOT( copyContacts() ), actionCollection(), 1778 SLOT( copyContacts() ), actionCollection(),
1637 "kaddressbook_copy" ); 1779 "kaddressbook_copy" );
1638 mActionCut = new KAction( i18n( "Cu&t" ), "editcut", CTRL + Key_X, this, 1780 mActionCut = new KAction( i18n( "Cu&t" ), "editcut", CTRL + Key_X, this,
1639 SLOT( cutContacts() ), actionCollection(), 1781 SLOT( cutContacts() ), actionCollection(),
1640 "kaddressbook_cut" ); 1782 "kaddressbook_cut" );
1641 mActionPaste = new KAction( i18n( "&Paste" ), "editpaste", CTRL + Key_V, this, 1783 mActionPaste = new KAction( i18n( "&Paste" ), "editpaste", CTRL + Key_V, this,
1642 SLOT( pasteContacts() ), actionCollection(), 1784 SLOT( pasteContacts() ), actionCollection(),
1643 "kaddressbook_paste" ); 1785 "kaddressbook_paste" );
1644 mActionSelectAll = new KAction( i18n( "Select &All" ), CTRL + Key_A, this, 1786 mActionSelectAll = new KAction( i18n( "Select &All" ), CTRL + Key_A, this,
1645 SLOT( selectAllContacts() ), actionCollection(), 1787 SLOT( selectAllContacts() ), actionCollection(),
1646 "kaddressbook_select_all" ); 1788 "kaddressbook_select_all" );
1647 mActionUndo = new KAction( i18n( "&Undo" ), "undo", CTRL + Key_Z, this, 1789 mActionUndo = new KAction( i18n( "&Undo" ), "undo", CTRL + Key_Z, this,
1648 SLOT( undo() ), actionCollection(), 1790 SLOT( undo() ), actionCollection(),
1649 "kaddressbook_undo" ); 1791 "kaddressbook_undo" );
1650 mActionRedo = new KAction( i18n( "Re&do" ), "redo", CTRL + SHIFT + Key_Z, 1792 mActionRedo = new KAction( i18n( "Re&do" ), "redo", CTRL + SHIFT + Key_Z,
1651 this, SLOT( redo() ), actionCollection(), 1793 this, SLOT( redo() ), actionCollection(),
1652 "kaddressbook_redo" ); 1794 "kaddressbook_redo" );
1653 } else { 1795 } else {
1654 mActionCopy = KStdAction::copy( this, SLOT( copyContacts() ), actionCollection() ); 1796 mActionCopy = KStdAction::copy( this, SLOT( copyContacts() ), actionCollection() );
1655 mActionCut = KStdAction::cut( this, SLOT( cutContacts() ), actionCollection() ); 1797 mActionCut = KStdAction::cut( this, SLOT( cutContacts() ), actionCollection() );
1656 mActionPaste = KStdAction::paste( this, SLOT( pasteContacts() ), actionCollection() ); 1798 mActionPaste = KStdAction::paste( this, SLOT( pasteContacts() ), actionCollection() );
1657 mActionSelectAll = KStdAction::selectAll( this, SLOT( selectAllContacts() ), actionCollection() ); 1799 mActionSelectAll = KStdAction::selectAll( this, SLOT( selectAllContacts() ), actionCollection() );
1658 mActionUndo = KStdAction::undo( this, SLOT( undo() ), actionCollection() ); 1800 mActionUndo = KStdAction::undo( this, SLOT( undo() ), actionCollection() );
1659 mActionRedo = KStdAction::redo( this, SLOT( redo() ), actionCollection() ); 1801 mActionRedo = KStdAction::redo( this, SLOT( redo() ), actionCollection() );
1660 } 1802 }
1661 1803
1662 mActionDelete = new KAction( i18n( "&Delete Contact" ), "editdelete", 1804 mActionDelete = new KAction( i18n( "&Delete Contact" ), "editdelete",
1663 Key_Delete, this, SLOT( deleteContacts() ), 1805 Key_Delete, this, SLOT( deleteContacts() ),
1664 actionCollection(), "edit_delete" ); 1806 actionCollection(), "edit_delete" );
1665 1807
1666 mActionUndo->setEnabled( false ); 1808 mActionUndo->setEnabled( false );
1667 mActionRedo->setEnabled( false ); 1809 mActionRedo->setEnabled( false );
1668 1810
1669 // settings menu 1811 // settings menu
1670#ifdef KAB_EMBEDDED 1812#ifdef KAB_EMBEDDED
1671//US special menuentry to configure the addressbook resources. On KDE 1813//US special menuentry to configure the addressbook resources. On KDE
1672// you do that through the control center !!! 1814// you do that through the control center !!!
1673 mActionConfigResources = new KAction( i18n( "Configure &Resources..." ), "configure_resources", 0, this, 1815 mActionConfigResources = new KAction( i18n( "Configure &Resources..." ), "configure_resources", 0, this,
1674 SLOT( configureResources() ), actionCollection(), 1816 SLOT( configureResources() ), actionCollection(),
1675 "kaddressbook_configure_resources" ); 1817 "kaddressbook_configure_resources" );
1676#endif //KAB_EMBEDDED 1818#endif //KAB_EMBEDDED
1677 1819
1678 if ( mIsPart ) { 1820 if ( mIsPart ) {
1679 mActionConfigKAddressbook = new KAction( i18n( "&Configure KAddressBook..." ), "configure", 0, this, 1821 mActionConfigKAddressbook = new KAction( i18n( "&Configure KAddressBook..." ), "configure", 0, this,
1680 SLOT( openConfigDialog() ), actionCollection(), 1822 SLOT( openConfigDialog() ), actionCollection(),
1681 "kaddressbook_configure" ); 1823 "kaddressbook_configure" );
1682 1824
1683 mActionConfigShortcuts = new KAction( i18n( "Configure S&hortcuts..." ), "configure_shortcuts", 0, 1825 mActionConfigShortcuts = new KAction( i18n( "Configure S&hortcuts..." ), "configure_shortcuts", 0,
1684 this, SLOT( configureKeyBindings() ), actionCollection(), 1826 this, SLOT( configureKeyBindings() ), actionCollection(),
1685 "kaddressbook_configure_shortcuts" ); 1827 "kaddressbook_configure_shortcuts" );
1686#ifdef KAB_EMBEDDED 1828#ifdef KAB_EMBEDDED
1687 mActionConfigureToolbars = KStdAction::configureToolbars( this, SLOT( mMainWindow->configureToolbars() ), actionCollection() ); 1829 mActionConfigureToolbars = KStdAction::configureToolbars( this, SLOT( mMainWindow->configureToolbars() ), actionCollection() );
1688 mActionConfigureToolbars->setEnabled( false ); 1830 mActionConfigureToolbars->setEnabled( false );
1689#endif //KAB_EMBEDDED 1831#endif //KAB_EMBEDDED
1690 1832
1691 } else { 1833 } else {
1692 mActionConfigKAddressbook = KStdAction::preferences( this, SLOT( openConfigDialog() ), actionCollection() ); 1834 mActionConfigKAddressbook = KStdAction::preferences( this, SLOT( openConfigDialog() ), actionCollection() );
1693 1835
1694 mActionKeyBindings = KStdAction::keyBindings( this, SLOT( configureKeyBindings() ), actionCollection() ); 1836 mActionKeyBindings = KStdAction::keyBindings( this, SLOT( configureKeyBindings() ), actionCollection() );
1695 } 1837 }
1696 1838
1697 mActionJumpBar = new KToggleAction( i18n( "Show Jump Bar" ), 0, 0, 1839 mActionJumpBar = new KToggleAction( i18n( "Show Jump Bar" ), 0, 0,
1698 actionCollection(), "options_show_jump_bar" ); 1840 actionCollection(), "options_show_jump_bar" );
1699 connect( mActionJumpBar, SIGNAL( toggled( bool ) ), SLOT( setJumpButtonBarVisible( bool ) ) ); 1841 connect( mActionJumpBar, SIGNAL( toggled( bool ) ), SLOT( setJumpButtonBarVisible( bool ) ) );
1700 1842
1701 mActionDetails = new KToggleAction( i18n( "Show Details" ), "listview", 0, 1843 mActionDetails = new KToggleAction( i18n( "Show Details" ), "listview", 0,
1702 actionCollection(), "options_show_details" ); 1844 actionCollection(), "options_show_details" );
@@ -1811,192 +1953,193 @@ void KABCore::addActionsManually()
1811 mActionNewContact->plug( fileMenu ); 1953 mActionNewContact->plug( fileMenu );
1812 mActionNewContact->plug( tb ); 1954 mActionNewContact->plug( tb );
1813 1955
1814 mActionEditAddressee->plug( fileMenu ); 1956 mActionEditAddressee->plug( fileMenu );
1815 if ((KGlobal::getDesktopSize() > KGlobal::Small ) || 1957 if ((KGlobal::getDesktopSize() > KGlobal::Small ) ||
1816 (!KABPrefs::instance()->mMultipleViewsAtOnce )) 1958 (!KABPrefs::instance()->mMultipleViewsAtOnce ))
1817 mActionEditAddressee->plug( tb ); 1959 mActionEditAddressee->plug( tb );
1818 1960
1819 fileMenu->insertSeparator(); 1961 fileMenu->insertSeparator();
1820 mActionSave->plug( fileMenu ); 1962 mActionSave->plug( fileMenu );
1821 fileMenu->insertItem( "&Import", ImportMenu ); 1963 fileMenu->insertItem( "&Import", ImportMenu );
1822 fileMenu->insertItem( "&Export", ExportMenu ); 1964 fileMenu->insertItem( "&Export", ExportMenu );
1823 fileMenu->insertSeparator(); 1965 fileMenu->insertSeparator();
1824 mActionMailVCard->plug( fileMenu ); 1966 mActionMailVCard->plug( fileMenu );
1825#ifndef DESKTOP_VERSION 1967#ifndef DESKTOP_VERSION
1826 if ( Ir::supported() ) mActionBeamVCard->plug( fileMenu ); 1968 if ( Ir::supported() ) mActionBeamVCard->plug( fileMenu );
1827 if ( Ir::supported() ) mActionBeam->plug(fileMenu ); 1969 if ( Ir::supported() ) mActionBeam->plug(fileMenu );
1828#endif 1970#endif
1829 fileMenu->insertSeparator(); 1971 fileMenu->insertSeparator();
1830 mActionQuit->plug( fileMenu ); 1972 mActionQuit->plug( fileMenu );
1831#ifdef _WIN32_ 1973#ifdef _WIN32_
1832 mActionImportOL->plug( ImportMenu ); 1974 mActionImportOL->plug( ImportMenu );
1833#endif 1975#endif
1834 // edit menu 1976 // edit menu
1835 mActionUndo->plug( editMenu ); 1977 mActionUndo->plug( editMenu );
1836 mActionRedo->plug( editMenu ); 1978 mActionRedo->plug( editMenu );
1837 editMenu->insertSeparator(); 1979 editMenu->insertSeparator();
1838 mActionCut->plug( editMenu ); 1980 mActionCut->plug( editMenu );
1839 mActionCopy->plug( editMenu ); 1981 mActionCopy->plug( editMenu );
1840 mActionPaste->plug( editMenu ); 1982 mActionPaste->plug( editMenu );
1841 mActionDelete->plug( editMenu ); 1983 mActionDelete->plug( editMenu );
1842 editMenu->insertSeparator(); 1984 editMenu->insertSeparator();
1843 mActionSelectAll->plug( editMenu ); 1985 mActionSelectAll->plug( editMenu );
1844 1986
1845 mActionRemoveVoice->plug( changeMenu ); 1987 mActionRemoveVoice->plug( changeMenu );
1846 // settings menu 1988 // settings menu
1847//US special menuentry to configure the addressbook resources. On KDE 1989//US special menuentry to configure the addressbook resources. On KDE
1848// you do that through the control center !!! 1990// you do that through the control center !!!
1849 mActionConfigResources->plug( settingsMenu ); 1991 mActionConfigResources->plug( settingsMenu );
1850 settingsMenu->insertSeparator(); 1992 settingsMenu->insertSeparator();
1851 1993
1852 mActionConfigKAddressbook->plug( settingsMenu ); 1994 mActionConfigKAddressbook->plug( settingsMenu );
1853 1995
1854 if ( mIsPart ) { 1996 if ( mIsPart ) {
1855 mActionConfigShortcuts->plug( settingsMenu ); 1997 mActionConfigShortcuts->plug( settingsMenu );
1856 mActionConfigureToolbars->plug( settingsMenu ); 1998 mActionConfigureToolbars->plug( settingsMenu );
1857 1999
1858 } else { 2000 } else {
1859 mActionKeyBindings->plug( settingsMenu ); 2001 mActionKeyBindings->plug( settingsMenu );
1860 } 2002 }
1861 2003
1862 settingsMenu->insertSeparator(); 2004 settingsMenu->insertSeparator();
1863 2005
1864 mActionJumpBar->plug( settingsMenu ); 2006 mActionJumpBar->plug( settingsMenu );
1865 mActionDetails->plug( settingsMenu ); 2007 mActionDetails->plug( settingsMenu );
1866 if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop ) 2008 if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop )
1867 mActionDetails->plug( tb ); 2009 mActionDetails->plug( tb );
1868 settingsMenu->insertSeparator(); 2010 settingsMenu->insertSeparator();
1869 2011
1870 mActionWhoAmI->plug( settingsMenu ); 2012 mActionWhoAmI->plug( settingsMenu );
1871 mActionCategories->plug( settingsMenu ); 2013 mActionCategories->plug( settingsMenu );
1872 2014
1873 mActionLicence->plug( helpMenu ); 2015 mActionLicence->plug( helpMenu );
1874 mActionFaq->plug( helpMenu ); 2016 mActionFaq->plug( helpMenu );
1875 mActionAboutKAddressbook->plug( helpMenu ); 2017 mActionAboutKAddressbook->plug( helpMenu );
1876 2018
1877 if (KGlobal::getDesktopSize() > KGlobal::Small ) { 2019 if (KGlobal::getDesktopSize() > KGlobal::Small ) {
1878 2020
1879 mActionSave->plug( tb ); 2021 mActionSave->plug( tb );
1880 mViewManager->getFilterAction()->plug ( tb); 2022 mViewManager->getFilterAction()->plug ( tb);
1881 if (KGlobal::getDesktopSize() == KGlobal::Desktop ) { 2023 if (KGlobal::getDesktopSize() == KGlobal::Desktop ) {
1882 mActionUndo->plug( tb ); 2024 mActionUndo->plug( tb );
1883 mActionDelete->plug( tb ); 2025 mActionDelete->plug( tb );
1884 mActionRedo->plug( tb ); 2026 mActionRedo->plug( tb );
1885 } 2027 }
1886 } 2028 }
1887 //mActionQuit->plug ( tb ); 2029 //mActionQuit->plug ( tb );
1888 // tb->insertWidget(-1, 0, mIncSearchWidget, 6); 2030 // tb->insertWidget(-1, 0, mIncSearchWidget, 6);
1889 2031
1890 //US link the searchwidget first to this. 2032 //US link the searchwidget first to this.
1891 // The real linkage to the toolbar happens later. 2033 // The real linkage to the toolbar happens later.
1892//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE); 2034//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE);
1893//US tb->insertItem( mIncSearchWidget ); 2035//US tb->insertItem( mIncSearchWidget );
1894/*US 2036/*US
1895 mIncSearchWidget = new IncSearchWidget( tb ); 2037 mIncSearchWidget = new IncSearchWidget( tb );
1896 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 2038 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1897 SLOT( incrementalSearch( const QString& ) ) ); 2039 SLOT( incrementalSearch( const QString& ) ) );
1898 2040
1899 mJumpButtonBar = new JumpButtonBar( this, this ); 2041 mJumpButtonBar = new JumpButtonBar( this, this );
1900 2042
1901//US topLayout->addWidget( mJumpButtonBar ); 2043//US topLayout->addWidget( mJumpButtonBar );
1902 this->layout()->add( mJumpButtonBar ); 2044 this->layout()->add( mJumpButtonBar );
1903*/ 2045*/
1904 2046
1905#endif //KAB_EMBEDDED 2047#endif //KAB_EMBEDDED
1906 2048
2049 mActionExport2phone->plug( ExportMenu );
1907 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) ); 2050 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) );
1908 syncManager->fillSyncMenu(); 2051 syncManager->fillSyncMenu();
1909 2052
1910} 2053}
1911void KABCore::showLicence() 2054void KABCore::showLicence()
1912{ 2055{
1913 KApplication::showLicence(); 2056 KApplication::showLicence();
1914} 2057}
1915void KABCore::removeVoice() 2058void KABCore::removeVoice()
1916{ 2059{
1917 if ( KMessageBox::questionYesNo( this, i18n("After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as \"other\".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?") ) == KMessageBox::No ) 2060 if ( KMessageBox::questionYesNo( this, i18n("After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as \"other\".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?") ) == KMessageBox::No )
1918 return; 2061 return;
1919 KABC::Addressee::List list = mViewManager->selectedAddressees(); 2062 KABC::Addressee::List list = mViewManager->selectedAddressees();
1920 KABC::Addressee::List::Iterator it; 2063 KABC::Addressee::List::Iterator it;
1921 for ( it = list.begin(); it != list.end(); ++it ) { 2064 for ( it = list.begin(); it != list.end(); ++it ) {
1922 PhoneNumber::List phoneNumbers = (*it).phoneNumbers(); 2065 PhoneNumber::List phoneNumbers = (*it).phoneNumbers();
1923 PhoneNumber::List::Iterator phoneIt; 2066 PhoneNumber::List::Iterator phoneIt;
1924 bool found = false; 2067 bool found = false;
1925 for ( phoneIt = phoneNumbers.begin(); phoneIt != phoneNumbers.end(); ++phoneIt ) { 2068 for ( phoneIt = phoneNumbers.begin(); phoneIt != phoneNumbers.end(); ++phoneIt ) {
1926 if ( (*phoneIt).type() & PhoneNumber::Voice) { // voice found 2069 if ( (*phoneIt).type() & PhoneNumber::Voice) { // voice found
1927 if ((*phoneIt).type() - PhoneNumber::Voice ) { 2070 if ((*phoneIt).type() - PhoneNumber::Voice ) {
1928 (*phoneIt).setType((*phoneIt).type() - PhoneNumber::Voice ); 2071 (*phoneIt).setType((*phoneIt).type() - PhoneNumber::Voice );
1929 (*it).insertPhoneNumber( (*phoneIt) ); 2072 (*it).insertPhoneNumber( (*phoneIt) );
1930 found = true; 2073 found = true;
1931 } 2074 }
1932 } 2075 }
1933 2076
1934 } 2077 }
1935 if ( found ) 2078 if ( found )
1936 contactModified((*it) ); 2079 contactModified((*it) );
1937 } 2080 }
1938} 2081}
1939 2082
1940 2083
1941 2084
1942void KABCore::clipboardDataChanged() 2085void KABCore::clipboardDataChanged()
1943{ 2086{
1944 2087
1945 if ( mReadWrite ) 2088 if ( mReadWrite )
1946 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); 2089 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() );
1947 2090
1948} 2091}
1949 2092
1950void KABCore::updateActionMenu() 2093void KABCore::updateActionMenu()
1951{ 2094{
1952 UndoStack *undo = UndoStack::instance(); 2095 UndoStack *undo = UndoStack::instance();
1953 RedoStack *redo = RedoStack::instance(); 2096 RedoStack *redo = RedoStack::instance();
1954 2097
1955 if ( undo->isEmpty() ) 2098 if ( undo->isEmpty() )
1956 mActionUndo->setText( i18n( "Undo" ) ); 2099 mActionUndo->setText( i18n( "Undo" ) );
1957 else 2100 else
1958 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) ); 2101 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) );
1959 2102
1960 mActionUndo->setEnabled( !undo->isEmpty() ); 2103 mActionUndo->setEnabled( !undo->isEmpty() );
1961 2104
1962 if ( !redo->top() ) 2105 if ( !redo->top() )
1963 mActionRedo->setText( i18n( "Redo" ) ); 2106 mActionRedo->setText( i18n( "Redo" ) );
1964 else 2107 else
1965 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) ); 2108 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) );
1966 2109
1967 mActionRedo->setEnabled( !redo->isEmpty() ); 2110 mActionRedo->setEnabled( !redo->isEmpty() );
1968} 2111}
1969 2112
1970void KABCore::configureKeyBindings() 2113void KABCore::configureKeyBindings()
1971{ 2114{
1972#ifndef KAB_EMBEDDED 2115#ifndef KAB_EMBEDDED
1973 KKeyDialog::configure( actionCollection(), true ); 2116 KKeyDialog::configure( actionCollection(), true );
1974#else //KAB_EMBEDDED 2117#else //KAB_EMBEDDED
1975 qDebug("KABCore::configureKeyBindings() not implemented"); 2118 qDebug("KABCore::configureKeyBindings() not implemented");
1976#endif //KAB_EMBEDDED 2119#endif //KAB_EMBEDDED
1977} 2120}
1978 2121
1979#ifdef KAB_EMBEDDED 2122#ifdef KAB_EMBEDDED
1980void KABCore::configureResources() 2123void KABCore::configureResources()
1981{ 2124{
1982 KRES::KCMKResources dlg( this, "" , 0 ); 2125 KRES::KCMKResources dlg( this, "" , 0 );
1983 2126
1984 if ( !dlg.exec() ) 2127 if ( !dlg.exec() )
1985 return; 2128 return;
1986 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); 2129 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") );
1987} 2130}
1988#endif //KAB_EMBEDDED 2131#endif //KAB_EMBEDDED
1989 2132
1990 2133
1991/* this method will be called through the QCop interface from Ko/Pi to select addresses 2134/* this method will be called through the QCop interface from Ko/Pi to select addresses
1992 * for the attendees list of an event. 2135 * for the attendees list of an event.
1993 */ 2136 */
1994void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) 2137void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid)
1995{ 2138{
1996 QStringList nameList; 2139 QStringList nameList;
1997 QStringList emailList; 2140 QStringList emailList;
1998 QStringList uidList; 2141 QStringList uidList;
1999 2142
2000 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); 2143 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this);
2001 uint i=0; 2144 uint i=0;
2002 for (i=0; i < list.count(); i++) 2145 for (i=0; i < list.count(); i++)
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index 941458d..e6f286b 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -81,192 +81,193 @@ class KABCore : public QWidget, public KSyncInterface
81 81
82#ifdef KAB_EMBEDDED 82#ifdef KAB_EMBEDDED
83 //US added functionality 83 //US added functionality
84 QPopupMenu* getViewMenu() {return viewMenu;} 84 QPopupMenu* getViewMenu() {return viewMenu;}
85 QPopupMenu* getFilterMenu() {return filterMenu;} 85 QPopupMenu* getFilterMenu() {return filterMenu;}
86 QPopupMenu* getSettingsMenu() {return settingsMenu;} 86 QPopupMenu* getSettingsMenu() {return settingsMenu;}
87 void addActionsManually(); 87 void addActionsManually();
88#endif //KAB_EMBEDDED 88#endif //KAB_EMBEDDED
89 /** 89 /**
90 Restores the global settings. 90 Restores the global settings.
91 */ 91 */
92 void restoreSettings(); 92 void restoreSettings();
93 93
94 /** 94 /**
95 Saves the global settings. 95 Saves the global settings.
96 */ 96 */
97 void saveSettings(); 97 void saveSettings();
98 98
99 /** 99 /**
100 Returns a pointer to the StdAddressBook of the application. 100 Returns a pointer to the StdAddressBook of the application.
101 */ 101 */
102 KABC::AddressBook *addressBook() const; 102 KABC::AddressBook *addressBook() const;
103 103
104 /** 104 /**
105 Returns a pointer to the KConfig object of the application. 105 Returns a pointer to the KConfig object of the application.
106 */ 106 */
107 static KConfig *config(); 107 static KConfig *config();
108 108
109 /** 109 /**
110 Returns a pointer to the global KActionCollection object. So 110 Returns a pointer to the global KActionCollection object. So
111 other classes can register their actions easily. 111 other classes can register their actions easily.
112 */ 112 */
113 KActionCollection *actionCollection() const; 113 KActionCollection *actionCollection() const;
114 114
115 /** 115 /**
116 Returns the current search field of the Incremental Search Widget. 116 Returns the current search field of the Incremental Search Widget.
117 */ 117 */
118 KABC::Field *currentSearchField() const; 118 KABC::Field *currentSearchField() const;
119 119
120 /** 120 /**
121 Returns the uid list of the currently selected contacts. 121 Returns the uid list of the currently selected contacts.
122 */ 122 */
123 QStringList selectedUIDs() const; 123 QStringList selectedUIDs() const;
124 124
125 /** 125 /**
126 Displays the ResourceSelectDialog and returns the selected 126 Displays the ResourceSelectDialog and returns the selected
127 resource or a null pointer if no resource was selected by 127 resource or a null pointer if no resource was selected by
128 the user. 128 the user.
129 */ 129 */
130 KABC::Resource *requestResource( QWidget *parent ); 130 KABC::Resource *requestResource( QWidget *parent );
131 131
132#ifndef KAB_EMBEDDED 132#ifndef KAB_EMBEDDED
133 static KAboutData *createAboutData(); 133 static KAboutData *createAboutData();
134#endif //KAB_EMBEDDED 134#endif //KAB_EMBEDDED
135 135
136#ifdef KAB_EMBEDDED 136#ifdef KAB_EMBEDDED
137 inline QPopupMenu* getImportMenu() { return ImportMenu;} 137 inline QPopupMenu* getImportMenu() { return ImportMenu;}
138 inline QPopupMenu* getExportMenu() { return ExportMenu;} 138 inline QPopupMenu* getExportMenu() { return ExportMenu;}
139#endif //KAB_EMBEDDED 139#endif //KAB_EMBEDDED
140 140
141 public slots: 141 public slots:
142#ifdef KAB_EMBEDDED 142#ifdef KAB_EMBEDDED
143 void createAboutData(); 143 void createAboutData();
144#endif //KAB_EMBEDDED 144#endif //KAB_EMBEDDED
145 145
146 void statusMessage(QString, int time = 0 ); 146 void statusMessage(QString, int time = 0 );
147 void showLicence(); 147 void showLicence();
148 void faq(); 148 void faq();
149 149
150 /** 150 /**
151 Is called whenever a contact is selected in the view. 151 Is called whenever a contact is selected in the view.
152 */ 152 */
153 void setContactSelected( const QString &uid ); 153 void setContactSelected( const QString &uid );
154 154
155 /** 155 /**
156 Opens the preferred mail composer with all selected contacts as 156 Opens the preferred mail composer with all selected contacts as
157 arguments. 157 arguments.
158 */ 158 */
159 void sendMail(); 159 void sendMail();
160 160
161 /** 161 /**
162 Opens the preferred mail composer with the given contacts as 162 Opens the preferred mail composer with the given contacts as
163 arguments. 163 arguments.
164 */ 164 */
165 void sendMail( const QString& email ); 165 void sendMail( const QString& email );
166 166
167 167
168 void mailVCard(); 168 void mailVCard();
169 void mailVCard(const QStringList& uids); 169 void mailVCard(const QStringList& uids);
170 170
171 /** 171 /**
172 Beams the "WhoAmI contact. 172 Beams the "WhoAmI contact.
173 */ 173 */
174 void beamMySelf(); 174 void beamMySelf();
175 175
176 void beamVCard(); 176 void beamVCard();
177 void export2phone();
177 void beamVCard(const QStringList& uids); 178 void beamVCard(const QStringList& uids);
178 void beamDone( Ir *ir ); 179 void beamDone( Ir *ir );
179 180
180 181
181 /** 182 /**
182 Starts the preferred web browser with the given URL as argument. 183 Starts the preferred web browser with the given URL as argument.
183 */ 184 */
184 void browse( const QString& url ); 185 void browse( const QString& url );
185 186
186 /** 187 /**
187 Select all contacts in the view. 188 Select all contacts in the view.
188 */ 189 */
189 void selectAllContacts(); 190 void selectAllContacts();
190 191
191 /** 192 /**
192 Deletes all selected contacts from the address book. 193 Deletes all selected contacts from the address book.
193 */ 194 */
194 void deleteContacts(); 195 void deleteContacts();
195 196
196 /** 197 /**
197 Deletes given contacts from the address book. 198 Deletes given contacts from the address book.
198 199
199 @param uids The uids of the contacts, which shall be deleted. 200 @param uids The uids of the contacts, which shall be deleted.
200 */ 201 */
201 void deleteContacts( const QStringList &uids ); 202 void deleteContacts( const QStringList &uids );
202 203
203 /** 204 /**
204 Copys the selected contacts into clipboard for later pasting. 205 Copys the selected contacts into clipboard for later pasting.
205 */ 206 */
206 void copyContacts(); 207 void copyContacts();
207 208
208 /** 209 /**
209 Cuts the selected contacts and stores them for later pasting. 210 Cuts the selected contacts and stores them for later pasting.
210 */ 211 */
211 void cutContacts(); 212 void cutContacts();
212 213
213 /** 214 /**
214 Paste contacts from clipboard into the address book. 215 Paste contacts from clipboard into the address book.
215 */ 216 */
216 void pasteContacts(); 217 void pasteContacts();
217 218
218 /** 219 /**
219 Paste given contacts into the address book. 220 Paste given contacts into the address book.
220 221
221 @param list The list of addressee, which shall be pasted. 222 @param list The list of addressee, which shall be pasted.
222 */ 223 */
223 void pasteContacts( KABC::Addressee::List &list ); 224 void pasteContacts( KABC::Addressee::List &list );
224 225
225 /** 226 /**
226 Sets the whoAmI contact, that is used by many other programs to 227 Sets the whoAmI contact, that is used by many other programs to
227 get personal information about the current user. 228 get personal information about the current user.
228 */ 229 */
229 void setWhoAmI(); 230 void setWhoAmI();
230 231
231 /** 232 /**
232 Displays the category dialog and applies the result to all 233 Displays the category dialog and applies the result to all
233 selected contacts. 234 selected contacts.
234 */ 235 */
235 void setCategories(); 236 void setCategories();
236 237
237 /** 238 /**
238 Sets the field list of the Incremental Search Widget. 239 Sets the field list of the Incremental Search Widget.
239 */ 240 */
240 void setSearchFields( const KABC::Field::List &fields ); 241 void setSearchFields( const KABC::Field::List &fields );
241 242
242 /** 243 /**
243 Search with the current search field for a contact, that matches 244 Search with the current search field for a contact, that matches
244 the given text, and selects it in the view. 245 the given text, and selects it in the view.
245 */ 246 */
246 void incrementalSearch( const QString& text ); 247 void incrementalSearch( const QString& text );
247 248
248 /** 249 /**
249 Marks the address book as modified. 250 Marks the address book as modified.
250 */ 251 */
251 void setModified(); 252 void setModified();
252 /** 253 /**
253 Marks the address book as modified without refreshing the view. 254 Marks the address book as modified without refreshing the view.
254 */ 255 */
255 void setModifiedWOrefresh(); 256 void setModifiedWOrefresh();
256 257
257 /** 258 /**
258 Marks the address book as modified concerning the argument. 259 Marks the address book as modified concerning the argument.
259 */ 260 */
260 void setModified( bool modified ); 261 void setModified( bool modified );
261 262
262 /** 263 /**
263 Returns whether the address book is modified. 264 Returns whether the address book is modified.
264 */ 265 */
265 bool modified() const; 266 bool modified() const;
266 267
267 /** 268 /**
268 Called whenever an contact is modified in the contact editor 269 Called whenever an contact is modified in the contact editor
269 dialog or the quick edit. 270 dialog or the quick edit.
270 */ 271 */
271 void contactModified( const KABC::Addressee &addr ); 272 void contactModified( const KABC::Addressee &addr );
272 273
@@ -304,178 +305,179 @@ class KABCore : public QWidget, public KSyncInterface
304 void editContact( const QString &uid /*US = QString::null*/ ); 305 void editContact( const QString &uid /*US = QString::null*/ );
305//US added a second method without defaultparameter 306//US added a second method without defaultparameter
306 void editContact2(); 307 void editContact2();
307 308
308 /** 309 /**
309 Shows or edits the detail view for the given uid. If the uid is QString::null, 310 Shows or edits the detail view for the given uid. If the uid is QString::null,
310 the method will try to find a selected addressee in the view. 311 the method will try to find a selected addressee in the view.
311 */ 312 */
312 void executeContact( const QString &uid /*US = QString::null*/ ); 313 void executeContact( const QString &uid /*US = QString::null*/ );
313 314
314 /** 315 /**
315 Launches the configuration dialog. 316 Launches the configuration dialog.
316 */ 317 */
317 void openConfigDialog(); 318 void openConfigDialog();
318 319
319 /** 320 /**
320 Launches the ldap search dialog. 321 Launches the ldap search dialog.
321 */ 322 */
322 void openLDAPDialog(); 323 void openLDAPDialog();
323 324
324 /** 325 /**
325 Creates a KAddressBookPrinter, which will display the print 326 Creates a KAddressBookPrinter, which will display the print
326 dialog and do the printing. 327 dialog and do the printing.
327 */ 328 */
328 void print(); 329 void print();
329 330
330 /** 331 /**
331 Registers a new GUI client, so plugins can register its actions. 332 Registers a new GUI client, so plugins can register its actions.
332 */ 333 */
333 void addGUIClient( KXMLGUIClient *client ); 334 void addGUIClient( KXMLGUIClient *client );
334 335
335 void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); 336 void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid);
336 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); 337 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid);
337 338
338 339
339 signals: 340 signals:
340 void contactSelected( const QString &name ); 341 void contactSelected( const QString &name );
341 void contactSelected( const QPixmap &pixmap ); 342 void contactSelected( const QPixmap &pixmap );
342 public slots: 343 public slots:
343 void setDetailsVisible( bool visible ); 344 void setDetailsVisible( bool visible );
344 void setDetailsToState(); 345 void setDetailsToState();
345 // void slotSyncMenu( int ); 346 // void slotSyncMenu( int );
346 private slots: 347 private slots:
347 void setJumpButtonBarVisible( bool visible ); 348 void setJumpButtonBarVisible( bool visible );
348 void importFromOL(); 349 void importFromOL();
349 void extensionModified( const KABC::Addressee::List &list ); 350 void extensionModified( const KABC::Addressee::List &list );
350 void extensionChanged( int id ); 351 void extensionChanged( int id );
351 void clipboardDataChanged(); 352 void clipboardDataChanged();
352 void updateActionMenu(); 353 void updateActionMenu();
353 void configureKeyBindings(); 354 void configureKeyBindings();
354 void removeVoice(); 355 void removeVoice();
355#ifdef KAB_EMBEDDED 356#ifdef KAB_EMBEDDED
356 void configureResources(); 357 void configureResources();
357#endif //KAB_EMBEDDED 358#endif //KAB_EMBEDDED
358 359
359 void slotEditorDestroyed( const QString &uid ); 360 void slotEditorDestroyed( const QString &uid );
360 void configurationChanged(); 361 void configurationChanged();
361 void addressBookChanged(); 362 void addressBookChanged();
362 363
363 private: 364 private:
364 void initGUI(); 365 void initGUI();
365 void initActions(); 366 void initActions();
366 367
367 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, 368 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent,
368 const char *name = 0 ); 369 const char *name = 0 );
369 370
370 KXMLGUIClient *mGUIClient; 371 KXMLGUIClient *mGUIClient;
371 372
372 KABC::AddressBook *mAddressBook; 373 KABC::AddressBook *mAddressBook;
373 374
374 ViewManager *mViewManager; 375 ViewManager *mViewManager;
375 // QSplitter *mDetailsSplitter; 376 // QSplitter *mDetailsSplitter;
376 KDGanttMinimizeSplitter *mExtensionBarSplitter; 377 KDGanttMinimizeSplitter *mExtensionBarSplitter;
377 ViewContainer *mDetails; 378 ViewContainer *mDetails;
378 KDGanttMinimizeSplitter* mMiniSplitter; 379 KDGanttMinimizeSplitter* mMiniSplitter;
379 XXPortManager *mXXPortManager; 380 XXPortManager *mXXPortManager;
380 JumpButtonBar *mJumpButtonBar; 381 JumpButtonBar *mJumpButtonBar;
381 IncSearchWidget *mIncSearchWidget; 382 IncSearchWidget *mIncSearchWidget;
382 ExtensionManager *mExtensionManager; 383 ExtensionManager *mExtensionManager;
383 384
384 KCMultiDialog *mConfigureDialog; 385 KCMultiDialog *mConfigureDialog;
385 386
386#ifndef KAB_EMBEDDED 387#ifndef KAB_EMBEDDED
387 LDAPSearchDialog *mLdapSearchDialog; 388 LDAPSearchDialog *mLdapSearchDialog;
388#endif //KAB_EMBEDDED 389#endif //KAB_EMBEDDED
389 // QDict<AddresseeEditorDialog> mEditorDict; 390 // QDict<AddresseeEditorDialog> mEditorDict;
390 AddresseeEditorDialog *mEditorDialog; 391 AddresseeEditorDialog *mEditorDialog;
391 bool mReadWrite; 392 bool mReadWrite;
392 bool mModified; 393 bool mModified;
393 bool mIsPart; 394 bool mIsPart;
394 bool mMultipleViewsAtOnce; 395 bool mMultipleViewsAtOnce;
395 396
396 397
397 //US file menu 398 //US file menu
398 KAction *mActionMail; 399 KAction *mActionMail;
399 KAction *mActionBeam; 400 KAction *mActionBeam;
401 KAction *mActionExport2phone;
400 KAction* mActionPrint; 402 KAction* mActionPrint;
401 KAction* mActionNewContact; 403 KAction* mActionNewContact;
402 KAction *mActionSave; 404 KAction *mActionSave;
403 KAction *mActionEditAddressee; 405 KAction *mActionEditAddressee;
404 KAction *mActionMailVCard; 406 KAction *mActionMailVCard;
405 KAction *mActionBeamVCard; 407 KAction *mActionBeamVCard;
406 408
407 KAction *mActionQuit; 409 KAction *mActionQuit;
408 410
409 //US edit menu 411 //US edit menu
410 KAction *mActionCopy; 412 KAction *mActionCopy;
411 KAction *mActionCut; 413 KAction *mActionCut;
412 KAction *mActionPaste; 414 KAction *mActionPaste;
413 KAction *mActionSelectAll; 415 KAction *mActionSelectAll;
414 KAction *mActionUndo; 416 KAction *mActionUndo;
415 KAction *mActionRedo; 417 KAction *mActionRedo;
416 KAction *mActionDelete; 418 KAction *mActionDelete;
417 419
418 //US settings menu 420 //US settings menu
419 KAction *mActionConfigResources; 421 KAction *mActionConfigResources;
420 KAction *mActionConfigKAddressbook; 422 KAction *mActionConfigKAddressbook;
421 KAction *mActionConfigShortcuts; 423 KAction *mActionConfigShortcuts;
422 KAction *mActionConfigureToolbars; 424 KAction *mActionConfigureToolbars;
423 KAction *mActionKeyBindings; 425 KAction *mActionKeyBindings;
424 KToggleAction *mActionJumpBar; 426 KToggleAction *mActionJumpBar;
425 KToggleAction *mActionDetails; 427 KToggleAction *mActionDetails;
426 KAction *mActionWhoAmI; 428 KAction *mActionWhoAmI;
427 KAction *mActionCategories; 429 KAction *mActionCategories;
428 KAction *mActionAboutKAddressbook; 430 KAction *mActionAboutKAddressbook;
429 KAction *mActionLicence; 431 KAction *mActionLicence;
430 KAction *mActionFaq; 432 KAction *mActionFaq;
431 433
432 KAction *mActionDeleteView; 434 KAction *mActionDeleteView;
433 435
434 QPopupMenu *viewMenu; 436 QPopupMenu *viewMenu;
435 QPopupMenu *filterMenu; 437 QPopupMenu *filterMenu;
436 QPopupMenu *settingsMenu; 438 QPopupMenu *settingsMenu;
437 QPopupMenu *changeMenu; 439 QPopupMenu *changeMenu;
438//US QAction *mActionSave; 440//US QAction *mActionSave;
439 QPopupMenu *ImportMenu; 441 QPopupMenu *ImportMenu;
440 QPopupMenu *ExportMenu; 442 QPopupMenu *ExportMenu;
441 //LR additional methods 443 //LR additional methods
442 KAction *mActionRemoveVoice; 444 KAction *mActionRemoveVoice;
443 KAction * mActionImportOL; 445 KAction * mActionImportOL;
444 446
445#ifndef KAB_EMBEDDED 447#ifndef KAB_EMBEDDED
446 KAddressBookService *mAddressBookService; 448 KAddressBookService *mAddressBookService;
447#endif //KAB_EMBEDDED 449#endif //KAB_EMBEDDED
448 450
449 class KABCorePrivate; 451 class KABCorePrivate;
450 KABCorePrivate *d; 452 KABCorePrivate *d;
451 //US bool mBlockSaveFlag; 453 //US bool mBlockSaveFlag;
452 454
453#ifdef KAB_EMBEDDED 455#ifdef KAB_EMBEDDED
454 KAddressBookMain *mMainWindow; // should be the same like mGUIClient 456 KAddressBookMain *mMainWindow; // should be the same like mGUIClient
455#endif //KAB_EMBEDDED 457#endif //KAB_EMBEDDED
456 458
457 //this are the overwritten callbackmethods from the syncinterface 459 //this are the overwritten callbackmethods from the syncinterface
458 virtual bool sync(KSyncManager* manager, QString filename, int mode); 460 virtual bool sync(KSyncManager* manager, QString filename, int mode);
459 virtual bool syncExternal(KSyncManager* manager, QString resource); 461 virtual bool syncExternal(KSyncManager* manager, QString resource);
460 462
461 //called by the syncmanager to indicate that the work has to marked as dirty. 463 //called by the syncmanager to indicate that the work has to marked as dirty.
462 virtual void sync_setModified(); 464 virtual void sync_setModified();
463 //called by the syncmanager to ask if the dirty flag is set. 465 //called by the syncmanager to ask if the dirty flag is set.
464 virtual bool sync_isModified(); 466 virtual bool sync_isModified();
465 //called by the syncmanager to indicate that the work has to be saved. 467 //called by the syncmanager to indicate that the work has to be saved.
466 virtual void sync_save(); 468 virtual void sync_save();
467 469
468 // LR ******************************* 470 // LR *******************************
469 // sync stuff! 471 // sync stuff!
470 QPopupMenu *syncMenu; 472 QPopupMenu *syncMenu;
471 KSyncManager* syncManager; 473 KSyncManager* syncManager;
472 int mGlobalSyncMode; 474 int mGlobalSyncMode;
473 bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode); 475 bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode);
474 KABC::Addressee getLastSyncAddressee(); 476 KABC::Addressee getLastSyncAddressee();
475 QDateTime mLastAddressbookSync; 477 QDateTime mLastAddressbookSync;
476 int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full ); 478 int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full );
477 // ********************* 479 // *********************
478 480
479}; 481};
480 482
481#endif 483#endif
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index 716a125..84e3d00 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -1,181 +1,177 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <time.h> 24#include <time.h>
25#ifndef _WIN32_ 25#ifndef _WIN32_
26#include <unistd.h> 26#include <unistd.h>
27#endif 27#endif
28#include <qdir.h> 28#include <qdir.h>
29#include <qtextstream.h> 29#include <qtextstream.h>
30#include <qtextcodec.h> 30#include <qtextcodec.h>
31#include <qstring.h> 31#include <qstring.h>
32#include <qregexp.h> 32#include <qregexp.h>
33#include <qfont.h> 33#include <qfont.h>
34#include <qcolor.h> 34#include <qcolor.h>
35#include <qstringlist.h> 35#include <qstringlist.h>
36#include <stdlib.h> 36#include <stdlib.h>
37 37
38#include <kglobal.h> 38#include <kglobal.h>
39#include <kconfig.h> 39#include <kconfig.h>
40#include <klocale.h> 40#include <klocale.h>
41#include <kdebug.h> 41#include <kdebug.h>
42#include <kemailsettings.h> 42#include <kemailsettings.h>
43#include <kstaticdeleter.h> 43#include <kstaticdeleter.h>
44#include <libkdepim/kpimglobalprefs.h> 44#include <libkdepim/kpimglobalprefs.h>
45 45
46#include "koprefs.h" 46#include "koprefs.h"
47#include "mainwindow.h" 47#include "mainwindow.h"
48 48
49const char *germanwords[][2] = { 49const char *germanwords[][2] = {
50#include "wordsgerman.h" 50#include "wordsgerman.h"
51 "", "" 51 "", ""
52}; 52};
53 53
54KOPrefs *KOPrefs::mInstance = 0; 54KOPrefs *KOPrefs::mInstance = 0;
55static KStaticDeleter<KOPrefs> insd; 55static KStaticDeleter<KOPrefs> insd;
56 56
57KOPrefs::KOPrefs() : 57KOPrefs::KOPrefs() :
58 KPimPrefs("korganizerrc") 58 KPimPrefs("korganizerrc")
59{ 59{
60 mCategoryColors.setAutoDelete(true); 60 mCategoryColors.setAutoDelete(true);
61 mLocaleDict = 0; 61 mLocaleDict = 0;
62 fillMailDefaults(); 62 fillMailDefaults();
63 mDefaultCategoryColor = QColor(175,210,255);//196,196,196); 63 mDefaultCategoryColor = QColor(175,210,255);//196,196,196);
64 QColor defaultHolidayColor = QColor(255,0,0); 64 QColor defaultHolidayColor = QColor(255,0,0);
65 QColor defaultHighlightColor = QColor(129,112,255);//64,64,255); 65 QColor defaultHighlightColor = QColor(129,112,255);//64,64,255);
66 QColor defaultAgendaBgColor = QColor(239,241,169);//128,128,128); 66 QColor defaultAgendaBgColor = QColor(239,241,169);//128,128,128);
67 QColor defaultWorkingHoursColor = QColor(170,223,150);//160,160,160); 67 QColor defaultWorkingHoursColor = QColor(170,223,150);//160,160,160);
68 QColor defaultTodoDueTodayColor = QColor(255,220,100); 68 QColor defaultTodoDueTodayColor = QColor(255,220,100);
69 QColor defaultTodoOverdueColor = QColor(255,153,125); 69 QColor defaultTodoOverdueColor = QColor(255,153,125);
70 70
71 mTimeBarFont = QFont("helvetica",10);//,QFont::Bold); 71 mTimeBarFont = QFont("helvetica",10);//,QFont::Bold);
72 mDefaultViewFont = QFont("helvetica",10); 72 mDefaultViewFont = QFont("helvetica",10);
73 mDefaultMonthViewFont = QFont("helvetica",8); 73 mDefaultMonthViewFont = QFont("helvetica",8);
74 mMarcusBainsFont= QFont("helvetica",10); 74 mMarcusBainsFont= QFont("helvetica",10);
75 mDateNavigatorFont= QFont("helvetica",10, QFont::Bold); 75 mDateNavigatorFont= QFont("helvetica",10, QFont::Bold);
76 mEditBoxFont = QFont("helvetica",12); 76 mEditBoxFont = QFont("helvetica",12);
77 mJornalViewFont = QFont("helvetica",12); 77 mJornalViewFont = QFont("helvetica",12);
78 78
79 KPrefs::setCurrentGroup("General"); 79 KPrefs::setCurrentGroup("General");
80 80
81 81
82 addItemString("Ex2PhoneDevice",&mEx2PhoneDevice,"/dev/ircomm");
83 addItemString("Ex2PhoneConnection",&mEx2PhoneConnection,"irda");
84 addItemString("Ex2PhoneModel",&mEx2PhoneModel,"6310i");
85
86 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); 82 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false);
87 83
88 addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true); 84 addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true);
89 addItemBool("ShowIconNewEvent",&mShowIconNewEvent,true); 85 addItemBool("ShowIconNewEvent",&mShowIconNewEvent,true);
90 addItemBool("ShowIconSearch",&mShowIconSearch,true); 86 addItemBool("ShowIconSearch",&mShowIconSearch,true);
91 addItemBool("ShowIconList",&mShowIconList,true); 87 addItemBool("ShowIconList",&mShowIconList,true);
92 addItemBool("ShowIconDay1",&mShowIconDay1,true); 88 addItemBool("ShowIconDay1",&mShowIconDay1,true);
93 addItemBool("ShowIconDay5",&mShowIconDay5,true); 89 addItemBool("ShowIconDay5",&mShowIconDay5,true);
94 addItemBool("ShowIconDay7",&mShowIconDay7,true); 90 addItemBool("ShowIconDay7",&mShowIconDay7,true);
95 addItemBool("ShowIconMonth",&mShowIconMonth,true); 91 addItemBool("ShowIconMonth",&mShowIconMonth,true);
96 addItemBool("ShowIconTodoview",&mShowIconTodoview,true); 92 addItemBool("ShowIconTodoview",&mShowIconTodoview,true);
97 addItemBool("ShowIconBackFast",&mShowIconBackFast,true); 93 addItemBool("ShowIconBackFast",&mShowIconBackFast,true);
98 addItemBool("ShowIconBack",&mShowIconBack,true); 94 addItemBool("ShowIconBack",&mShowIconBack,true);
99 addItemBool("ShowIconToday",&mShowIconToday,true); 95 addItemBool("ShowIconToday",&mShowIconToday,true);
100 addItemBool("ShowIconForward",&mShowIconForward,true); 96 addItemBool("ShowIconForward",&mShowIconForward,true);
101 addItemBool("ShowIconForwardFast",&mShowIconForwardFast,true); 97 addItemBool("ShowIconForwardFast",&mShowIconForwardFast,true);
102 addItemBool("ShowIconWhatsThis",&mShowIconWhatsThis,false); 98 addItemBool("ShowIconWhatsThis",&mShowIconWhatsThis,false);
103 addItemBool("ShowIconNextDays",&mShowIconNextDays,true); 99 addItemBool("ShowIconNextDays",&mShowIconNextDays,true);
104 addItemBool("ShowIconNext",&mShowIconNext,true); 100 addItemBool("ShowIconNext",&mShowIconNext,true);
105 addItemBool("ShowIconJournal",&mShowIconJournal,true); 101 addItemBool("ShowIconJournal",&mShowIconJournal,true);
106 addItemBool("ShowIconStretch",&mShowIconStretch,true); 102 addItemBool("ShowIconStretch",&mShowIconStretch,true);
107 addItemBool("LanguageChanged",&mLanguageChanged,false); 103 addItemBool("LanguageChanged",&mLanguageChanged,false);
108 104
109 addItemBool("AskForQuit",&mAskForQuit,false); 105 addItemBool("AskForQuit",&mAskForQuit,false);
110 106
111#ifndef DESKTOP_VERSION 107#ifndef DESKTOP_VERSION
112 addItemBool("ShowFullMenu",&mShowFullMenu,false); 108 addItemBool("ShowFullMenu",&mShowFullMenu,false);
113#else 109#else
114 addItemBool("ShowFullMenu",&mShowFullMenu,true); 110 addItemBool("ShowFullMenu",&mShowFullMenu,true);
115#endif 111#endif
116 addItemBool("ToolBarHor",&mToolBarHor, true ); 112 addItemBool("ToolBarHor",&mToolBarHor, true );
117 addItemBool("ToolBarUp",&mToolBarUp, false ); 113 addItemBool("ToolBarUp",&mToolBarUp, false );
118 addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false ); 114 addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false );
119 addItemInt("Whats Next Days",&mWhatsNextDays,3); 115 addItemInt("Whats Next Days",&mWhatsNextDays,3);
120 addItemInt("Whats Next Prios",&mWhatsNextPrios,1); 116 addItemInt("Whats Next Prios",&mWhatsNextPrios,1);
121 117
122 addItemBool("ShowTodoInAgenda",&mShowTodoInAgenda,true); 118 addItemBool("ShowTodoInAgenda",&mShowTodoInAgenda,true);
123 addItemBool("ShowCompletedTodo",&mShowCompletedTodo,true); 119 addItemBool("ShowCompletedTodo",&mShowCompletedTodo,true);
124 addItemInt("AllDay Size",&mAllDaySize,28); 120 addItemInt("AllDay Size",&mAllDaySize,28);
125 QString defAlarm = KGlobal::iconLoader()->iconPath()+"koalarm.wav"; 121 QString defAlarm = KGlobal::iconLoader()->iconPath()+"koalarm.wav";
126 addItemString("DefaultAlarmFile",&mDefaultAlarmFile,defAlarm ); 122 addItemString("DefaultAlarmFile",&mDefaultAlarmFile,defAlarm );
127 123
128 addItemStringList("LocationDefaults",&mLocationDefaults ); 124 addItemStringList("LocationDefaults",&mLocationDefaults );
129 addItemStringList("EventSummary User",&mEventSummaryUser); 125 addItemStringList("EventSummary User",&mEventSummaryUser);
130 addItemStringList("TodoSummary User",&mTodoSummaryUser); 126 addItemStringList("TodoSummary User",&mTodoSummaryUser);
131 127
132 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); 128 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false);
133 addItemBool("Enable Project View",&mEnableProjectView,false); 129 addItemBool("Enable Project View",&mEnableProjectView,false);
134 addItemBool("Auto Save",&mAutoSave,false); 130 addItemBool("Auto Save",&mAutoSave,false);
135 addItemInt("Auto Save Interval",&mAutoSaveInterval,3); 131 addItemInt("Auto Save Interval",&mAutoSaveInterval,3);
136 addItemBool("Confirm Deletes",&mConfirm,true); 132 addItemBool("Confirm Deletes",&mConfirm,true);
137 addItemString("Archive File",&mArchiveFile); 133 addItemString("Archive File",&mArchiveFile);
138 addItemString("Html Export File",&mHtmlExportFile, 134 addItemString("Html Export File",&mHtmlExportFile,
139 QDir::homeDirPath() + "/" + i18n("Default export file", "calendar.html")); 135 QDir::homeDirPath() + "/" + i18n("Default export file", "calendar.html"));
140 addItemBool("Html With Save",&mHtmlWithSave,false); 136 addItemBool("Html With Save",&mHtmlWithSave,false);
141 137
142 KPrefs::setCurrentGroup("Personal Settings"); 138 KPrefs::setCurrentGroup("Personal Settings");
143 139
144 addItemInt("Mail Client",&mMailClient,MailClientKMail); 140 addItemInt("Mail Client",&mMailClient,MailClientKMail);
145 addItemBool("Use Control Center Email",&mEmailControlCenter,false); 141 addItemBool("Use Control Center Email",&mEmailControlCenter,false);
146 addItemBool("Bcc",&mBcc,false); 142 addItemBool("Bcc",&mBcc,false);
147 143
148 KPrefs::setCurrentGroup("Time & Date"); 144 KPrefs::setCurrentGroup("Time & Date");
149 145
150 // addItemString("Time Zone",&mTimeZone,"+0100"); 146 // addItemString("Time Zone",&mTimeZone,"+0100");
151 addItemString("TimeZoneName",&mTimeZoneId,i18n ("+01:00 Europe/Oslo(CET)") ); 147 addItemString("TimeZoneName",&mTimeZoneId,i18n ("+01:00 Europe/Oslo(CET)") );
152 // addItemInt("TimeZoneOffset",&mTimeZoneOffset,60); 148 // addItemInt("TimeZoneOffset",&mTimeZoneOffset,60);
153 addItemBool("UseDaylightsaving",&mUseDaylightsaving,true); 149 addItemBool("UseDaylightsaving",&mUseDaylightsaving,true);
154 addItemInt("DaylightsavingStart",&mDaylightsavingStart,90); 150 addItemInt("DaylightsavingStart",&mDaylightsavingStart,90);
155 addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304); 151 addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304);
156 152
157 153
158 addItemInt("Default Start Time",&mStartTime,10); 154 addItemInt("Default Start Time",&mStartTime,10);
159 addItemInt("Default Duration",&mDefaultDuration,2); 155 addItemInt("Default Duration",&mDefaultDuration,2);
160 addItemInt("Default Alarm Time",&mAlarmTime,3); 156 addItemInt("Default Alarm Time",&mAlarmTime,3);
161 addItemInt("Daylight Savings",&mDaylightSavings,0); 157 addItemInt("Daylight Savings",&mDaylightSavings,0);
162 KPrefs::setCurrentGroup("AlarmSettings"); 158 KPrefs::setCurrentGroup("AlarmSettings");
163 addItemInt("AlarmPlayBeeps",&mAlarmPlayBeeps,20); 159 addItemInt("AlarmPlayBeeps",&mAlarmPlayBeeps,20);
164 addItemInt("AlarmSuspendTime",&mAlarmSuspendTime,7); 160 addItemInt("AlarmSuspendTime",&mAlarmSuspendTime,7);
165 addItemInt("AlarmSuspendCount",&mAlarmSuspendCount,5); 161 addItemInt("AlarmSuspendCount",&mAlarmSuspendCount,5);
166 addItemInt("AlarmBeepInterval",&mAlarmBeepInterval,3); 162 addItemInt("AlarmBeepInterval",&mAlarmBeepInterval,3);
167 163
168 164
169 KPrefs::setCurrentGroup("Calendar"); 165 KPrefs::setCurrentGroup("Calendar");
170 166
171 addItemInt("Default Calendar Format",&mDefaultFormat,FormatICalendar); 167 addItemInt("Default Calendar Format",&mDefaultFormat,FormatICalendar);
172 168
173 KPrefs::setCurrentGroup("Fonts"); 169 KPrefs::setCurrentGroup("Fonts");
174 // qDebug(" KPrefs::setCurrentGroup(Fonts); "); 170 // qDebug(" KPrefs::setCurrentGroup(Fonts); ");
175 addItemFont("TimeBar Font",&mTimeBarFont); 171 addItemFont("TimeBar Font",&mTimeBarFont);
176 addItemFont("MonthView Font",&mMonthViewFont); 172 addItemFont("MonthView Font",&mMonthViewFont);
177 addItemFont("AgendaView Font",&mAgendaViewFont); 173 addItemFont("AgendaView Font",&mAgendaViewFont);
178 addItemFont("MarcusBains Font",&mMarcusBainsFont); 174 addItemFont("MarcusBains Font",&mMarcusBainsFont);
179 addItemFont("TimeLabels Font",&mTimeLabelsFont); 175 addItemFont("TimeLabels Font",&mTimeLabelsFont);
180 addItemFont("TodoView Font",&mTodoViewFont); 176 addItemFont("TodoView Font",&mTodoViewFont);
181 addItemFont("ListView Font",&mListViewFont); 177 addItemFont("ListView Font",&mListViewFont);
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index a1ba8b3..d9ac851 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -117,195 +117,192 @@ class KOPrefs : public KPimPrefs
117 QFont mTodoViewFont; 117 QFont mTodoViewFont;
118 QFont mListViewFont; 118 QFont mListViewFont;
119 QFont mDateNavigatorFont; 119 QFont mDateNavigatorFont;
120 QFont mEditBoxFont; 120 QFont mEditBoxFont;
121 QFont mJornalViewFont; 121 QFont mJornalViewFont;
122 QFont mWhatsNextFont; 122 QFont mWhatsNextFont;
123 QFont mEventViewFont; 123 QFont mEventViewFont;
124 124
125 125
126 126
127 127
128 QColor mHolidayColor; 128 QColor mHolidayColor;
129 QColor mHighlightColor; 129 QColor mHighlightColor;
130 QColor mEventColor; 130 QColor mEventColor;
131 QColor mAgendaBgColor; 131 QColor mAgendaBgColor;
132 QColor mWorkingHoursColor; 132 QColor mWorkingHoursColor;
133 QColor mTodoDueTodayColor; 133 QColor mTodoDueTodayColor;
134 QColor mTodoOverdueColor; 134 QColor mTodoOverdueColor;
135 QColor mMonthViewEvenColor; 135 QColor mMonthViewEvenColor;
136 QColor mMonthViewOddColor; 136 QColor mMonthViewOddColor;
137 QColor mMonthViewHolidayColor; 137 QColor mMonthViewHolidayColor;
138 bool mMonthViewUsesDayColors; 138 bool mMonthViewUsesDayColors;
139 bool mMonthViewSatSunTog; 139 bool mMonthViewSatSunTog;
140 QColor mAppColor1; 140 QColor mAppColor1;
141 QColor mAppColor2; 141 QColor mAppColor2;
142 bool mUseAppColors; 142 bool mUseAppColors;
143 143
144 int mDayBegins; 144 int mDayBegins;
145 int mHourSize; 145 int mHourSize;
146 int mAllDaySize; 146 int mAllDaySize;
147 bool mShowFullMenu; 147 bool mShowFullMenu;
148 bool mDailyRecur; 148 bool mDailyRecur;
149 bool mWeeklyRecur; 149 bool mWeeklyRecur;
150 bool mMonthDailyRecur; 150 bool mMonthDailyRecur;
151 bool mMonthWeeklyRecur; 151 bool mMonthWeeklyRecur;
152 bool mMonthShowIcons; 152 bool mMonthShowIcons;
153 bool mMonthShowShort; 153 bool mMonthShowShort;
154 bool mEnableToolTips; 154 bool mEnableToolTips;
155 bool mEnableMonthScroll; 155 bool mEnableMonthScroll;
156 bool mFullViewMonth; 156 bool mFullViewMonth;
157 bool mMonthViewUsesCategoryColor; 157 bool mMonthViewUsesCategoryColor;
158 bool mFullViewTodo; 158 bool mFullViewTodo;
159 bool mShowCompletedTodo; 159 bool mShowCompletedTodo;
160 bool mMarcusBainsEnabled; 160 bool mMarcusBainsEnabled;
161 int mNextXDays; 161 int mNextXDays;
162 int mWhatsNextDays; 162 int mWhatsNextDays;
163 int mWhatsNextPrios; 163 int mWhatsNextPrios;
164 bool mEnableQuickTodo; 164 bool mEnableQuickTodo;
165 bool mLanguageChanged; 165 bool mLanguageChanged;
166 166
167 bool mCompactDialogs; 167 bool mCompactDialogs;
168 bool mVerticalScreen; 168 bool mVerticalScreen;
169 169
170 bool mShowIconNewTodo; 170 bool mShowIconNewTodo;
171 bool mShowIconNewEvent; 171 bool mShowIconNewEvent;
172 bool mShowIconSearch; 172 bool mShowIconSearch;
173 bool mShowIconList; 173 bool mShowIconList;
174 bool mShowIconDay1; 174 bool mShowIconDay1;
175 bool mShowIconDay5; 175 bool mShowIconDay5;
176 bool mShowIconDay7; 176 bool mShowIconDay7;
177 bool mShowIconMonth; 177 bool mShowIconMonth;
178 bool mShowIconTodoview; 178 bool mShowIconTodoview;
179 bool mShowIconBackFast; 179 bool mShowIconBackFast;
180 bool mShowIconBack; 180 bool mShowIconBack;
181 bool mShowIconToday; 181 bool mShowIconToday;
182 bool mShowIconForward; 182 bool mShowIconForward;
183 bool mShowIconForwardFast; 183 bool mShowIconForwardFast;
184 bool mShowIconWhatsThis; 184 bool mShowIconWhatsThis;
185 bool mShowIconNextDays; 185 bool mShowIconNextDays;
186 bool mShowIconNext; 186 bool mShowIconNext;
187 bool mShowIconJournal; 187 bool mShowIconJournal;
188 188
189 bool mShowIconStretch; 189 bool mShowIconStretch;
190 190
191 bool mToolBarHor; 191 bool mToolBarHor;
192 bool mToolBarUp; 192 bool mToolBarUp;
193 bool mToolBarMiniIcons; 193 bool mToolBarMiniIcons;
194 194
195 bool mAskForQuit; 195 bool mAskForQuit;
196 bool mUsePassWd; 196 bool mUsePassWd;
197 bool mWriteBackFile; 197 bool mWriteBackFile;
198 int mWriteBackInFuture; 198 int mWriteBackInFuture;
199 bool mAskForPreferences; 199 bool mAskForPreferences;
200 bool mShowSyncSummary; 200 bool mShowSyncSummary;
201 bool mShowSyncEvents; 201 bool mShowSyncEvents;
202 bool mShowTodoInAgenda; 202 bool mShowTodoInAgenda;
203 bool mWriteBackExistingOnly; 203 bool mWriteBackExistingOnly;
204 204
205 QString mRemoteIP; 205 QString mRemoteIP;
206 QString mRemoteUser; 206 QString mRemoteUser;
207 QString mRemotePassWd; 207 QString mRemotePassWd;
208 QString mRemoteFile; 208 QString mRemoteFile;
209 QString mLocalTempFile; 209 QString mLocalTempFile;
210 QString mPhoneDevice; 210 QString mPhoneDevice;
211 QString mPhoneConnection; 211 QString mPhoneConnection;
212 QString mPhoneModel; 212 QString mPhoneModel;
213 QString mEx2PhoneDevice;
214 QString mEx2PhoneConnection;
215 QString mEx2PhoneModel;
216 213
217 int mLastSyncTime; 214 int mLastSyncTime;
218 int mSyncAlgoPrefs; 215 int mSyncAlgoPrefs;
219 int mRingSyncAlgoPrefs; 216 int mRingSyncAlgoPrefs;
220 QStringList mSyncProfileNames; 217 QStringList mSyncProfileNames;
221 QStringList mExternSyncProfiles; 218 QStringList mExternSyncProfiles;
222 QString mLocalMachineName; 219 QString mLocalMachineName;
223 void setCategoryColor(QString cat,const QColor & color); 220 void setCategoryColor(QString cat,const QColor & color);
224 QColor *categoryColor(QString cat); 221 QColor *categoryColor(QString cat);
225 222
226 QString mArchiveFile; 223 QString mArchiveFile;
227 QString mHtmlExportFile; 224 QString mHtmlExportFile;
228 bool mHtmlWithSave; 225 bool mHtmlWithSave;
229 226
230 QStringList mSelectedPlugins; 227 QStringList mSelectedPlugins;
231 228
232 QString mLastImportFile; 229 QString mLastImportFile;
233 QString mLastVcalFile; 230 QString mLastVcalFile;
234 QString mLastSaveFile; 231 QString mLastSaveFile;
235 QString mLastLoadFile; 232 QString mLastLoadFile;
236 QString mLastSyncedLocalFile; 233 QString mLastSyncedLocalFile;
237 234
238 235
239 QString mDefaultAlarmFile; 236 QString mDefaultAlarmFile;
240 int mIMIPScheduler; 237 int mIMIPScheduler;
241 int mIMIPSend; 238 int mIMIPSend;
242 QStringList mAdditionalMails; 239 QStringList mAdditionalMails;
243 int mIMIPAutoRefresh; 240 int mIMIPAutoRefresh;
244 int mIMIPAutoInsertReply; 241 int mIMIPAutoInsertReply;
245 int mIMIPAutoInsertRequest; 242 int mIMIPAutoInsertRequest;
246 int mIMIPAutoFreeBusy; 243 int mIMIPAutoFreeBusy;
247 int mIMIPAutoFreeBusyReply; 244 int mIMIPAutoFreeBusyReply;
248 245
249 QStringList mTodoTemplates; 246 QStringList mTodoTemplates;
250 QStringList mEventTemplates; 247 QStringList mEventTemplates;
251 248
252 int mDestination; 249 int mDestination;
253 250
254 251
255 bool mEditOnDoubleClick; 252 bool mEditOnDoubleClick;
256 bool mViewChangeHoldFullscreen; 253 bool mViewChangeHoldFullscreen;
257 bool mViewChangeHoldNonFullscreen; 254 bool mViewChangeHoldNonFullscreen;
258 bool mCenterOnCurrentTime; 255 bool mCenterOnCurrentTime;
259 bool mSetTimeToDayStartAt; 256 bool mSetTimeToDayStartAt;
260 bool mHighlightCurrentDay; 257 bool mHighlightCurrentDay;
261 bool mUseHighlightLightColor; 258 bool mUseHighlightLightColor;
262 bool mListViewMonthTimespan; 259 bool mListViewMonthTimespan;
263 bool mWNViewShowsParents; 260 bool mWNViewShowsParents;
264 bool mWNViewShowLocation; 261 bool mWNViewShowLocation;
265 bool mTodoViewShowsPercentage; 262 bool mTodoViewShowsPercentage;
266 bool mTodoViewUsesCatColors; 263 bool mTodoViewUsesCatColors;
267 bool mTodoViewUsesSmallFont; 264 bool mTodoViewUsesSmallFont;
268 bool mTodoViewUsesForegroundColor; 265 bool mTodoViewUsesForegroundColor;
269 bool mMonthViewUsesForegroundColor; 266 bool mMonthViewUsesForegroundColor;
270 267
271 bool mHightlightDateTimeEdit; 268 bool mHightlightDateTimeEdit;
272 bool mShortDateInViewer; 269 bool mShortDateInViewer;
273 270
274 QStringList mLocationDefaults; 271 QStringList mLocationDefaults;
275 QStringList mEventSummaryUser; 272 QStringList mEventSummaryUser;
276 QStringList mTodoSummaryUser; 273 QStringList mTodoSummaryUser;
277 274
278 bool mUseInternalAlarmNotification; 275 bool mUseInternalAlarmNotification;
279 int mAlarmPlayBeeps; 276 int mAlarmPlayBeeps;
280 int mAlarmSuspendTime; 277 int mAlarmSuspendTime;
281 int mAlarmSuspendCount; 278 int mAlarmSuspendCount;
282 int mAlarmBeepInterval; 279 int mAlarmBeepInterval;
283 280
284 QString mPassiveSyncPort; 281 QString mPassiveSyncPort;
285 QString mPassiveSyncPw; 282 QString mPassiveSyncPw;
286 QString mActiveSyncPort; 283 QString mActiveSyncPort;
287 QString mActiveSyncIP; 284 QString mActiveSyncIP;
288 285
289 286
290 //US I copied the following settings into KPimGlobalPrefs 287 //US I copied the following settings into KPimGlobalPrefs
291 // that allows us later to easily remove the settings from here. 288 // that allows us later to easily remove the settings from here.
292 int mPreferredDate; 289 int mPreferredDate;
293 QString mUserDateFormatLong; 290 QString mUserDateFormatLong;
294 QString mUserDateFormatShort; 291 QString mUserDateFormatShort;
295 int mPreferredLanguage; 292 int mPreferredLanguage;
296 int mPreferredTime; 293 int mPreferredTime;
297 bool mWeekStartsOnSunday; 294 bool mWeekStartsOnSunday;
298 QString mTimeZoneId; 295 QString mTimeZoneId;
299 bool mUseDaylightsaving; 296 bool mUseDaylightsaving;
300 int mDaylightsavingStart; 297 int mDaylightsavingStart;
301 int mDaylightsavingEnd; 298 int mDaylightsavingEnd;
302 299
303 300
304 private: 301 private:
305 QDict<QColor> mCategoryColors; 302 QDict<QColor> mCategoryColors;
306 QColor mDefaultCategoryColor; 303 QColor mDefaultCategoryColor;
307 304
308 QFont mDefaultTimeBarFont; 305 QFont mDefaultTimeBarFont;
309 QFont mDefaultViewFont; 306 QFont mDefaultViewFont;
310 QFont mDefaultMonthViewFont; 307 QFont mDefaultMonthViewFont;
311 308
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index bd14fbf..2f286e0 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -10,193 +10,193 @@
10#include <qtextcodec.h> 10#include <qtextcodec.h>
11#include <qfile.h> 11#include <qfile.h>
12#include <qdir.h> 12#include <qdir.h>
13#include <qapp.h> 13#include <qapp.h>
14#include <qfileinfo.h> 14#include <qfileinfo.h>
15#include <qlabel.h> 15#include <qlabel.h>
16#include <qspinbox.h> 16#include <qspinbox.h>
17#include <qcheckbox.h> 17#include <qcheckbox.h>
18#include <qmap.h> 18#include <qmap.h>
19#include <qwmatrix.h> 19#include <qwmatrix.h>
20#include <qtextbrowser.h> 20#include <qtextbrowser.h>
21#include <qtextstream.h> 21#include <qtextstream.h>
22#ifndef DESKTOP_VERSION 22#ifndef DESKTOP_VERSION
23#include <qpe/global.h> 23#include <qpe/global.h>
24#include <qpe/qpemenubar.h> 24#include <qpe/qpemenubar.h>
25#include <qpe/qpetoolbar.h> 25#include <qpe/qpetoolbar.h>
26#include <qpe/resource.h> 26#include <qpe/resource.h>
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include <qtopia/alarmserver.h> 28#include <qtopia/alarmserver.h>
29#include <qtopia/qcopenvelope_qws.h> 29#include <qtopia/qcopenvelope_qws.h>
30#include <unistd.h> // for sleep 30#include <unistd.h> // for sleep
31#else 31#else
32#include <qmenubar.h> 32#include <qmenubar.h>
33#include <qtoolbar.h> 33#include <qtoolbar.h>
34#include <qapplication.h> 34#include <qapplication.h>
35//#include <resource.h> 35//#include <resource.h>
36 36
37#endif 37#endif
38#include <libkcal/calendarlocal.h> 38#include <libkcal/calendarlocal.h>
39#include <libkcal/todo.h> 39#include <libkcal/todo.h>
40#include <libkcal/phoneformat.h> 40#include <libkcal/phoneformat.h>
41#include <libkdepim/ksyncprofile.h> 41#include <libkdepim/ksyncprofile.h>
42#include <libkcal/kincidenceformatter.h> 42#include <libkcal/kincidenceformatter.h>
43#include <libkdepim/kpimglobalprefs.h> 43#include <libkdepim/kpimglobalprefs.h>
44 44
45#include "calendarview.h" 45#include "calendarview.h"
46#include "koviewmanager.h" 46#include "koviewmanager.h"
47#include "datenavigator.h" 47#include "datenavigator.h"
48#include "koagendaview.h" 48#include "koagendaview.h"
49#include "koagenda.h" 49#include "koagenda.h"
50#include "kodialogmanager.h" 50#include "kodialogmanager.h"
51#include "kdialogbase.h" 51#include "kdialogbase.h"
52#include "kapplication.h" 52#include "kapplication.h"
53#include "kofilterview.h" 53#include "kofilterview.h"
54#include "kstandarddirs.h" 54#include "kstandarddirs.h"
55#include "koprefs.h" 55#include "koprefs.h"
56#include "kfiledialog.h" 56#include "kfiledialog.h"
57#include "koglobals.h" 57#include "koglobals.h"
58#include "kglobal.h" 58#include "kglobal.h"
59#include "klocale.h" 59#include "klocale.h"
60#include "kconfig.h" 60#include "kconfig.h"
61#include "simplealarmclient.h" 61#include "simplealarmclient.h"
62#include "externalapphandler.h" 62#include "externalapphandler.h"
63 63
64using namespace KCal; 64using namespace KCal;
65#ifndef _WIN32_ 65#ifndef _WIN32_
66#include <unistd.h> 66#include <unistd.h>
67#else 67#else
68#include "koimportoldialog.h" 68#include "koimportoldialog.h"
69#endif 69#endif
70#include "mainwindow.h" 70#include "mainwindow.h"
71 71
72class KOex2phonePrefs : public QDialog 72class KOex2phonePrefs : public QDialog
73{ 73{
74 public: 74 public:
75 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 75 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
76 QDialog( parent, name, true ) 76 QDialog( parent, name, true )
77 { 77 {
78 setCaption( i18n("Export to phone options") ); 78 setCaption( i18n("Export to phone options") );
79 QVBoxLayout* lay = new QVBoxLayout( this ); 79 QVBoxLayout* lay = new QVBoxLayout( this );
80 lay->setSpacing( 3 ); 80 lay->setSpacing( 3 );
81 lay->setMargin( 3 ); 81 lay->setMargin( 3 );
82 QLabel *lab; 82 QLabel *lab;
83 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 83 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
84 lab->setAlignment (AlignHCenter ); 84 lab->setAlignment (AlignHCenter );
85 QHBox* temphb; 85 QHBox* temphb;
86 temphb = new QHBox( this ); 86 temphb = new QHBox( this );
87 new QLabel( i18n("I/O device: "), temphb ); 87 new QLabel( i18n("I/O device: "), temphb );
88 mPhoneDevice = new QLineEdit( temphb); 88 mPhoneDevice = new QLineEdit( temphb);
89 lay->addWidget( temphb ); 89 lay->addWidget( temphb );
90 temphb = new QHBox( this ); 90 temphb = new QHBox( this );
91 new QLabel( i18n("Connection: "), temphb ); 91 new QLabel( i18n("Connection: "), temphb );
92 mPhoneConnection = new QLineEdit( temphb); 92 mPhoneConnection = new QLineEdit( temphb);
93 lay->addWidget( temphb ); 93 lay->addWidget( temphb );
94 temphb = new QHBox( this ); 94 temphb = new QHBox( this );
95 new QLabel( i18n("Model(opt.): "), temphb ); 95 new QLabel( i18n("Model(opt.): "), temphb );
96 mPhoneModel = new QLineEdit( temphb); 96 mPhoneModel = new QLineEdit( temphb);
97 lay->addWidget( temphb ); 97 lay->addWidget( temphb );
98 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); 98 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this );
99 mWriteBackFuture->setChecked( true ); 99 mWriteBackFuture->setChecked( true );
100 lay->addWidget( mWriteBackFuture ); 100 lay->addWidget( mWriteBackFuture );
101 temphb = new QHBox( this ); 101 temphb = new QHBox( this );
102 new QLabel( i18n("Max. weeks in future: ") , temphb ); 102 new QLabel( i18n("Max. weeks in future: ") , temphb );
103 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); 103 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb);
104 mWriteBackFutureWeeks->setValue( 8 ); 104 mWriteBackFutureWeeks->setValue( 8 );
105 lay->addWidget( temphb ); 105 lay->addWidget( temphb );
106 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\n todo/calendar data on phone!"), this ) ); 106 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) );
107 lab->setAlignment (AlignHCenter ); 107 lab->setAlignment (AlignHCenter );
108 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 108 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
109 lay->addWidget( ok ); 109 lay->addWidget( ok );
110 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 110 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
111 lay->addWidget( cancel ); 111 lay->addWidget( cancel );
112 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 112 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
113 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 113 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
114 resize( 220, 240 ); 114 resize( 220, 240 );
115 115
116 } 116 }
117 117
118public: 118public:
119 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 119 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
120 QCheckBox* mWriteBackFuture; 120 QCheckBox* mWriteBackFuture;
121 QSpinBox* mWriteBackFutureWeeks; 121 QSpinBox* mWriteBackFutureWeeks;
122}; 122};
123 123
124int globalFlagBlockStartup; 124int globalFlagBlockStartup;
125MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 125MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
126 QMainWindow( parent, name ) 126 QMainWindow( parent, name )
127{ 127{
128 mPassWordPiSync = "abc"; 128 mPassWordPiSync = "abc";
129#ifdef DESKTOP_VERSION 129#ifdef DESKTOP_VERSION
130 setFont( QFont("Arial"), 14 ); 130 setFont( QFont("Arial"), 14 );
131#endif 131#endif
132 mSyncActionDialog = 0; 132 mSyncActionDialog = 0;
133 mServerSocket = 0; 133 mServerSocket = 0;
134 mClosed = false; 134 mClosed = false;
135 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 135 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
136 QString confFile = locateLocal("config","korganizerrc"); 136 QString confFile = locateLocal("config","korganizerrc");
137 QFileInfo finf ( confFile ); 137 QFileInfo finf ( confFile );
138 bool showWarning = !finf.exists(); 138 bool showWarning = !finf.exists();
139 setIcon(SmallIcon( "ko24" ) ); 139 setIcon(SmallIcon( "ko24" ) );
140 mBlockAtStartup = true; 140 mBlockAtStartup = true;
141 mFlagKeyPressed = false; 141 mFlagKeyPressed = false;
142 setCaption("KOrganizer/Pi"); 142 setCaption("KOrganizer/Pi");
143 KOPrefs *p = KOPrefs::instance(); 143 KOPrefs *p = KOPrefs::instance();
144 KPimGlobalPrefs::instance()->setGlobalConfig(); 144 KPimGlobalPrefs::instance()->setGlobalConfig();
145 // if ( QApplication::desktop()->height() > 480 ) { 145 // if ( QApplication::desktop()->height() > 480 ) {
146// if ( p->mHourSize == 4 ) 146// if ( p->mHourSize == 4 )
147// p->mHourSize = 6; 147// p->mHourSize = 6;
148// } 148// }
149 if ( p->mHourSize > 18 ) 149 if ( p->mHourSize > 18 )
150 p->mHourSize = 18; 150 p->mHourSize = 18;
151 QMainWindow::ToolBarDock tbd; 151 QMainWindow::ToolBarDock tbd;
152 if ( p->mToolBarHor ) { 152 if ( p->mToolBarHor ) {
153 if ( p->mToolBarUp ) 153 if ( p->mToolBarUp )
154 tbd = Bottom; 154 tbd = Bottom;
155 else 155 else
156 tbd = Top; 156 tbd = Top;
157 } 157 }
158 else { 158 else {
159 if ( p->mToolBarUp ) 159 if ( p->mToolBarUp )
160 tbd = Right; 160 tbd = Right;
161 else 161 else
162 tbd = Left; 162 tbd = Left;
163 } 163 }
164 if ( KOPrefs::instance()->mUseAppColors ) 164 if ( KOPrefs::instance()->mUseAppColors )
165 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 165 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
166 globalFlagBlockStartup = 1; 166 globalFlagBlockStartup = 1;
167 iconToolBar = new QPEToolBar( this ); 167 iconToolBar = new QPEToolBar( this );
168 addToolBar (iconToolBar , tbd ); 168 addToolBar (iconToolBar , tbd );
169 mBlockSaveFlag = false; 169 mBlockSaveFlag = false;
170 mCalendarModifiedFlag = false; 170 mCalendarModifiedFlag = false;
171 171
172 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 172 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
173 splash->setAlignment ( AlignCenter ); 173 splash->setAlignment ( AlignCenter );
174 setCentralWidget( splash ); 174 setCentralWidget( splash );
175#ifndef DESKTOP_VERSION 175#ifndef DESKTOP_VERSION
176 showMaximized(); 176 showMaximized();
177#endif 177#endif
178 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 178 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
179 setDefaultPreferences(); 179 setDefaultPreferences();
180 mCalendar = new CalendarLocal(); 180 mCalendar = new CalendarLocal();
181 mView = new CalendarView( mCalendar, this,"mCalendar " ); 181 mView = new CalendarView( mCalendar, this,"mCalendar " );
182 mView->hide(); 182 mView->hide();
183 //mView->resize(splash->size() ); 183 //mView->resize(splash->size() );
184 initActions(); 184 initActions();
185#ifndef DESKTOP_VERSION 185#ifndef DESKTOP_VERSION
186 iconToolBar->show(); 186 iconToolBar->show();
187 qApp->processEvents(); 187 qApp->processEvents();
188#endif 188#endif
189 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 189 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
190 int vh = height() ; 190 int vh = height() ;
191 int vw = width(); 191 int vw = width();
192 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 192 //qDebug("Toolbar hei %d ",iconToolBar->height() );
193 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 193 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
194 vh -= iconToolBar->height(); 194 vh -= iconToolBar->height();
195 } else { 195 } else {
196 vw -= iconToolBar->height(); 196 vw -= iconToolBar->height();
197 } 197 }
198 //mView->setMaximumSize( splash->size() ); 198 //mView->setMaximumSize( splash->size() );
199 //mView->resize( splash->size() ); 199 //mView->resize( splash->size() );
200 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 200 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
201 mView->readSettings(); 201 mView->readSettings();
202 bool newFile = false; 202 bool newFile = false;
@@ -1078,256 +1078,257 @@ void MainWindow::multiSync( bool askforPrefs )
1078 setCaption(i18n("Multiple sync started.") ); 1078 setCaption(i18n("Multiple sync started.") );
1079 qApp->processEvents(); 1079 qApp->processEvents();
1080 int num = ringSync() ; 1080 int num = ringSync() ;
1081 if ( num > 1 ) 1081 if ( num > 1 )
1082 ringSync(); 1082 ringSync();
1083 mBlockSaveFlag = false; 1083 mBlockSaveFlag = false;
1084 if ( num ) 1084 if ( num )
1085 save(); 1085 save();
1086 if ( num ) 1086 if ( num )
1087 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); 1087 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) );
1088 else 1088 else
1089 setCaption(i18n("Nothing synced! No profiles defined for multisync!")); 1089 setCaption(i18n("Nothing synced! No profiles defined for multisync!"));
1090 return; 1090 return;
1091} 1091}
1092void MainWindow::slotSyncMenu( int action ) 1092void MainWindow::slotSyncMenu( int action )
1093{ 1093{
1094 qDebug("syncaction %d ", action); 1094 qDebug("syncaction %d ", action);
1095 if ( action == 0 ) { 1095 if ( action == 0 ) {
1096 1096
1097 // seems to be a Qt2 event handling bug 1097 // seems to be a Qt2 event handling bug
1098 // syncmenu.clear causes a segfault at first time 1098 // syncmenu.clear causes a segfault at first time
1099 // when we call it after the main event loop, it is ok 1099 // when we call it after the main event loop, it is ok
1100 // same behaviour when calling OM/Pi via QCOP for the first time 1100 // same behaviour when calling OM/Pi via QCOP for the first time
1101 QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); 1101 QTimer::singleShot ( 1, this, SLOT ( confSync() ) );
1102 //confSync(); 1102 //confSync();
1103 1103
1104 return; 1104 return;
1105 } 1105 }
1106 if ( action == 1 ) { 1106 if ( action == 1 ) {
1107 multiSync( true ); 1107 multiSync( true );
1108 return; 1108 return;
1109 } 1109 }
1110 if ( action == 2 ) { 1110 if ( action == 2 ) {
1111 enableQuick(); 1111 enableQuick();
1112 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 1112 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
1113 return; 1113 return;
1114 } 1114 }
1115 if ( action == 3 ) { 1115 if ( action == 3 ) {
1116 delete mServerSocket; 1116 delete mServerSocket;
1117 mServerSocket = 0; 1117 mServerSocket = 0;
1118 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 1118 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
1119 return; 1119 return;
1120 } 1120 }
1121 1121
1122 if (mBlockSaveFlag) 1122 if (mBlockSaveFlag)
1123 return; 1123 return;
1124 mBlockSaveFlag = true; 1124 mBlockSaveFlag = true;
1125 mCurrentSyncProfile = action - 1000 ; 1125 mCurrentSyncProfile = action - 1000 ;
1126 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); 1126 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] );
1127 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 1127 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
1128 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 1128 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
1129 KSyncProfile* temp = new KSyncProfile (); 1129 KSyncProfile* temp = new KSyncProfile ();
1130 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 1130 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
1131 temp->readConfig(&config); 1131 temp->readConfig(&config);
1132 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 1132 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
1133 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); 1133 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs();
1134 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 1134 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
1135 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 1135 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
1136 KOPrefs::instance()->mWriteBackInFuture = 0; 1136 KOPrefs::instance()->mWriteBackInFuture = 0;
1137 if ( temp->getWriteBackFuture() ) 1137 if ( temp->getWriteBackFuture() )
1138 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 1138 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
1139 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); 1139 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync();
1140 if ( action == 1000 ) { 1140 if ( action == 1000 ) {
1141 syncSharp(); 1141 syncSharp();
1142 1142
1143 } else if ( action == 1001 ) { 1143 } else if ( action == 1001 ) {
1144 syncLocalFile(); 1144 syncLocalFile();
1145 1145
1146 } else if ( action == 1002 ) { 1146 } else if ( action == 1002 ) {
1147 quickSyncLocalFile(); 1147 quickSyncLocalFile();
1148 1148
1149 } else if ( action >= 1003 ) { 1149 } else if ( action >= 1003 ) {
1150 if ( temp->getIsLocalFileSync() ) { 1150 if ( temp->getIsLocalFileSync() ) {
1151 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 1151 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
1152 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 1152 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName();
1153 } else { 1153 } else {
1154 if ( temp->getIsPhoneSync() ) { 1154 if ( temp->getIsPhoneSync() ) {
1155 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 1155 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ;
1156 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 1156 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( );
1157 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); 1157 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
1158 syncPhone(); 1158 syncPhone();
1159 } else if ( temp->getIsPiSync() ) { 1159 } else if ( temp->getIsPiSync() ) {
1160 mPassWordPiSync = temp->getRemotePw(); 1160 mPassWordPiSync = temp->getRemotePw();
1161 KOPrefs::instance()->mActiveSyncPort = temp->getRemotePort(); 1161 KOPrefs::instance()->mActiveSyncPort = temp->getRemotePort();
1162 KOPrefs::instance()->mActiveSyncIP = temp->getRemoteIP(); 1162 KOPrefs::instance()->mActiveSyncIP = temp->getRemoteIP();
1163 syncPi(); 1163 syncPi();
1164 } else 1164 } else
1165 syncRemote( temp ); 1165 syncRemote( temp );
1166 1166
1167 } 1167 }
1168 } 1168 }
1169 delete temp; 1169 delete temp;
1170 mBlockSaveFlag = false; 1170 mBlockSaveFlag = false;
1171} 1171}
1172void MainWindow::exportToPhone( int mode ) 1172void MainWindow::exportToPhone( int mode )
1173{ 1173{
1174 1174
1175 //ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 1175 //ex2phone->insertItem(i18n("Complete calendar..."), 1 );
1176 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 1176 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
1177 KOex2phonePrefs ex2phone; 1177 KOex2phonePrefs ex2phone;
1178 ex2phone.mPhoneConnection->setText( KOPrefs::instance()->mEx2PhoneConnection ); 1178
1179 ex2phone.mPhoneDevice->setText( KOPrefs::instance()->mEx2PhoneDevice ); 1179 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection );
1180 ex2phone.mPhoneModel->setText( KOPrefs::instance()->mEx2PhoneModel ); 1180 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice );
1181 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel );
1181 if ( mode == 1 ) 1182 if ( mode == 1 )
1182 ex2phone.setCaption(i18n("Export complete calendar")); 1183 ex2phone.setCaption(i18n("Export complete calendar"));
1183 if ( mode == 2 ) 1184 if ( mode == 2 )
1184 ex2phone.setCaption(i18n("Export filtered calendar")); 1185 ex2phone.setCaption(i18n("Export filtered calendar"));
1185 1186
1186 if ( !ex2phone.exec() ) { 1187 if ( !ex2phone.exec() ) {
1187 return; 1188 return;
1188 } 1189 }
1189 KOPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text(); 1190 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
1190 KOPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text(); 1191 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
1191 KOPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text(); 1192 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
1192 1193
1193 int inFuture = 0; 1194 int inFuture = 0;
1194 if ( ex2phone.mWriteBackFuture->isChecked() ) 1195 if ( ex2phone.mWriteBackFuture->isChecked() )
1195 inFuture = ex2phone.mWriteBackFutureWeeks->value(); 1196 inFuture = ex2phone.mWriteBackFutureWeeks->value();
1196 QPtrList<Incidence> delSel; 1197 QPtrList<Incidence> delSel;
1197 if ( mode == 1 ) 1198 if ( mode == 1 )
1198 delSel = mCalendar->rawIncidences(); 1199 delSel = mCalendar->rawIncidences();
1199 if ( mode == 2 ) 1200 if ( mode == 2 )
1200 delSel = mCalendar->incidences(); 1201 delSel = mCalendar->incidences();
1201 CalendarLocal* cal = new CalendarLocal(); 1202 CalendarLocal* cal = new CalendarLocal();
1202 cal->setLocalTime(); 1203 cal->setLocalTime();
1203 Incidence *incidence = delSel.first(); 1204 Incidence *incidence = delSel.first();
1204 QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); 1205 QDateTime cur = QDateTime::currentDateTime().addDays( -7 );
1205 QDateTime end = cur.addDays( ( inFuture +1 ) *7 ); 1206 QDateTime end = cur.addDays( ( inFuture +1 ) *7 );
1206 while ( incidence ) { 1207 while ( incidence ) {
1207 if ( incidence->type() != "Journal" ) { 1208 if ( incidence->type() != "Journal" ) {
1208 bool add = true; 1209 bool add = true;
1209 if ( inFuture ) { 1210 if ( inFuture ) {
1210 QDateTime dt; 1211 QDateTime dt;
1211 if ( incidence->type() == "Todo" ) { 1212 if ( incidence->type() == "Todo" ) {
1212 Todo * t = (Todo*)incidence; 1213 Todo * t = (Todo*)incidence;
1213 if ( t->hasDueDate() ) 1214 if ( t->hasDueDate() )
1214 dt = t->dtDue(); 1215 dt = t->dtDue();
1215 else 1216 else
1216 dt = cur.addSecs( 62 ); 1217 dt = cur.addSecs( 62 );
1217 } 1218 }
1218 else { 1219 else {
1219 bool ok; 1220 bool ok;
1220 dt = incidence->getNextOccurence( cur, &ok ); 1221 dt = incidence->getNextOccurence( cur, &ok );
1221 if ( !ok ) 1222 if ( !ok )
1222 dt = cur.addSecs( -62 ); 1223 dt = cur.addSecs( -62 );
1223 } 1224 }
1224 if ( dt < cur || dt > end ) { 1225 if ( dt < cur || dt > end ) {
1225 add = false; 1226 add = false;
1226 } 1227 }
1227 } 1228 }
1228 if ( add ) { 1229 if ( add ) {
1229 Incidence *in = incidence->clone(); 1230 Incidence *in = incidence->clone();
1230 cal->addIncidence( in ); 1231 cal->addIncidence( in );
1231 } 1232 }
1232 } 1233 }
1233 incidence = delSel.next(); 1234 incidence = delSel.next();
1234 } 1235 }
1235 PhoneFormat::writeConfig( KOPrefs::instance()->mEx2PhoneDevice, 1236 PhoneFormat::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice,
1236 KOPrefs::instance()->mEx2PhoneConnection, 1237 KPimGlobalPrefs::instance()->mEx2PhoneConnection,
1237 KOPrefs::instance()->mEx2PhoneModel ); 1238 KPimGlobalPrefs::instance()->mEx2PhoneModel );
1238 1239
1239 setCaption( i18n("Writing to phone...")); 1240 setCaption( i18n("Writing to phone..."));
1240 if ( PhoneFormat::writeToPhone( cal ) ) 1241 if ( PhoneFormat::writeToPhone( cal ) )
1241 setCaption( i18n("Export to phone successful!")); 1242 setCaption( i18n("Export to phone successful!"));
1242 else 1243 else
1243 setCaption( i18n("Error exporting to phone!")); 1244 setCaption( i18n("Error exporting to phone!"));
1244 delete cal; 1245 delete cal;
1245} 1246}
1246 1247
1247 1248
1248void MainWindow::setDefaultPreferences() 1249void MainWindow::setDefaultPreferences()
1249{ 1250{
1250 KOPrefs *p = KOPrefs::instance(); 1251 KOPrefs *p = KOPrefs::instance();
1251 1252
1252 p->mCompactDialogs = true; 1253 p->mCompactDialogs = true;
1253 p->mConfirm = true; 1254 p->mConfirm = true;
1254 // p->mEnableQuickTodo = false; 1255 // p->mEnableQuickTodo = false;
1255 1256
1256} 1257}
1257 1258
1258QString MainWindow::resourcePath() 1259QString MainWindow::resourcePath()
1259{ 1260{
1260 return KGlobal::iconLoader()->iconPath(); 1261 return KGlobal::iconLoader()->iconPath();
1261} 1262}
1262 1263
1263void MainWindow::displayText( QString text ,QString cap ) 1264void MainWindow::displayText( QString text ,QString cap )
1264{ 1265{
1265 QDialog dia( this, "name", true ); ; 1266 QDialog dia( this, "name", true ); ;
1266 dia.setCaption( cap ); 1267 dia.setCaption( cap );
1267 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1268 QVBoxLayout* lay = new QVBoxLayout( &dia );
1268 lay->setSpacing( 3 ); 1269 lay->setSpacing( 3 );
1269 lay->setMargin( 3 ); 1270 lay->setMargin( 3 );
1270 QTextBrowser tb ( &dia ); 1271 QTextBrowser tb ( &dia );
1271 lay->addWidget( &tb ); 1272 lay->addWidget( &tb );
1272 tb.setText( text ); 1273 tb.setText( text );
1273#ifdef DESKTOP_VERSION 1274#ifdef DESKTOP_VERSION
1274 dia.resize( 640, 480); 1275 dia.resize( 640, 480);
1275#else 1276#else
1276 dia.showMaximized(); 1277 dia.showMaximized();
1277#endif 1278#endif
1278 dia.exec(); 1279 dia.exec();
1279} 1280}
1280void MainWindow::displayFile( QString fn, QString cap ) 1281void MainWindow::displayFile( QString fn, QString cap )
1281{ 1282{
1282 QString fileName = resourcePath() + fn; 1283 QString fileName = resourcePath() + fn;
1283 QString text; 1284 QString text;
1284 QFile file( fileName ); 1285 QFile file( fileName );
1285 if (!file.open( IO_ReadOnly ) ) { 1286 if (!file.open( IO_ReadOnly ) ) {
1286 return ; 1287 return ;
1287 1288
1288 } 1289 }
1289 QTextStream ts( &file ); 1290 QTextStream ts( &file );
1290 text = ts.read(); 1291 text = ts.read();
1291 file.close(); 1292 file.close();
1292 displayText( text, cap); 1293 displayText( text, cap);
1293} 1294}
1294void MainWindow::features() 1295void MainWindow::features()
1295{ 1296{
1296 1297
1297 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); 1298 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") );
1298} 1299}
1299 1300
1300void MainWindow::usertrans() 1301void MainWindow::usertrans()
1301{ 1302{
1302 1303
1303 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") ); 1304 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") );
1304} 1305}
1305 1306
1306void MainWindow::synchowto() 1307void MainWindow::synchowto()
1307{ 1308{
1308#if 0 1309#if 0
1309 QPtrList<Incidence> er = mCalendar->rawIncidences(); 1310 QPtrList<Incidence> er = mCalendar->rawIncidences();
1310 Incidence* inR = er.first(); 1311 Incidence* inR = er.first();
1311 VCalFormat vf; 1312 VCalFormat vf;
1312 QString strout; 1313 QString strout;
1313 while ( inR ) { 1314 while ( inR ) {
1314 if ( inR->type() == "Todo" ) 1315 if ( inR->type() == "Todo" )
1315 strout = vf.todoToString( (Todo *) inR ); 1316 strout = vf.todoToString( (Todo *) inR );
1316 if ( inR->type() == "Event" ) 1317 if ( inR->type() == "Event" )
1317 strout = vf.eventToString( (Event *) inR ); 1318 strout = vf.eventToString( (Event *) inR );
1318 qDebug("incidence: \n%s\n ente\n\n",strout.latin1() ); 1319 qDebug("incidence: \n%s\n ente\n\n",strout.latin1() );
1319 inR = er.next(); 1320 inR = er.next();
1320 } 1321 }
1321#endif 1322#endif
1322 displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") ); 1323 displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") );
1323} 1324}
1324void MainWindow::faq() 1325void MainWindow::faq()
1325{ 1326{
1326 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") ); 1327 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") );
1327 1328
1328} 1329}
1329void MainWindow::whatsNew() 1330void MainWindow::whatsNew()
1330{ 1331{
1331 displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") ); 1332 displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") );
1332 1333
1333} 1334}
diff --git a/libkdepim/kpimglobalprefs.cpp b/libkdepim/kpimglobalprefs.cpp
index b2b7663..b71e18d 100644
--- a/libkdepim/kpimglobalprefs.cpp
+++ b/libkdepim/kpimglobalprefs.cpp
@@ -6,128 +6,135 @@
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
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#include <kglobal.h> 31#include <kglobal.h>
32#include <kconfig.h> 32#include <kconfig.h>
33#include <klocale.h> 33#include <klocale.h>
34#include <kdebug.h> 34#include <kdebug.h>
35#include <kstaticdeleter.h> 35#include <kstaticdeleter.h>
36 36
37#include <qregexp.h> 37#include <qregexp.h>
38#include "kpimglobalprefs.h" 38#include "kpimglobalprefs.h"
39 39
40KPimGlobalPrefs *KPimGlobalPrefs::sInstance = 0; 40KPimGlobalPrefs *KPimGlobalPrefs::sInstance = 0;
41static KStaticDeleter<KPimGlobalPrefs> staticDeleter; 41static KStaticDeleter<KPimGlobalPrefs> staticDeleter;
42 42
43 43
44KPimGlobalPrefs::KPimGlobalPrefs( const QString &name ) 44KPimGlobalPrefs::KPimGlobalPrefs( const QString &name )
45 : KPrefs("microkdeglobalrc") 45 : KPrefs("microkdeglobalrc")
46{ 46{
47 47
48 KPrefs::setCurrentGroup("Locale"); 48 KPrefs::setCurrentGroup("Locale");
49 addItemInt("PreferredLanguage",&mPreferredLanguage,0); 49 addItemInt("PreferredLanguage",&mPreferredLanguage,0);
50 addItemInt("PreferredTime",&mPreferredTime,0); 50 addItemInt("PreferredTime",&mPreferredTime,0);
51 addItemInt("PreferredDate",&mPreferredDate,0); 51 addItemInt("PreferredDate",&mPreferredDate,0);
52 addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false); 52 addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false);
53 //addItemBool("QuickSavingWOUnicode",&mUseQuicksave,false); 53 //addItemBool("QuickSavingWOUnicode",&mUseQuicksave,false);
54 // addItemBool("ShortDateInViewer",&mShortDateInViewer,false); 54 // addItemBool("ShortDateInViewer",&mShortDateInViewer,false);
55 addItemString("UserDateFormatLong", &mUserDateFormatLong, "%A %d %b %y"); 55 addItemString("UserDateFormatLong", &mUserDateFormatLong, "%A %d %b %y");
56 addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y"); 56 addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y");
57 57
58 KPrefs::setCurrentGroup("Time & Date"); 58 KPrefs::setCurrentGroup("Time & Date");
59 59
60 addItemString("TimeZoneName",&mTimeZoneId,i18n ("+01:00 Europe/Oslo(CET)") ); 60 addItemString("TimeZoneName",&mTimeZoneId,i18n ("+01:00 Europe/Oslo(CET)") );
61 addItemBool("UseDaylightsaving",&mUseDaylightsaving,true); 61 addItemBool("UseDaylightsaving",&mUseDaylightsaving,true);
62 addItemInt("DaylightsavingStart",&mDaylightsavingStart,90); 62 addItemInt("DaylightsavingStart",&mDaylightsavingStart,90);
63 addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304); 63 addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304);
64 64
65 65
66 66
67 67
68 KPrefs::setCurrentGroup( "ExternalApplications" ); 68 KPrefs::setCurrentGroup( "ExternalApplications" );
69 69
70 addItemInt( "EmailChannelType", &mEmailClient, OMPI_EMC ); 70 addItemInt( "EmailChannelType", &mEmailClient, OMPI_EMC );
71 addItemString( "EmailChannel", &mEmailOtherChannel, "" ); 71 addItemString( "EmailChannel", &mEmailOtherChannel, "" );
72 addItemString( "EmailChannelMessage", &mEmailOtherMessage, "" ); 72 addItemString( "EmailChannelMessage", &mEmailOtherMessage, "" );
73 addItemString( "EmailChannelParameters", &mEmailOtherMessageParameters, "" ); 73 addItemString( "EmailChannelParameters", &mEmailOtherMessageParameters, "" );
74 addItemString( "EmailChannelMessage2", &mEmailOtherMessage2, "" ); 74 addItemString( "EmailChannelMessage2", &mEmailOtherMessage2, "" );
75 addItemString( "EmailChannelParameters2", &mEmailOtherMessageParameters2, "" ); 75 addItemString( "EmailChannelParameters2", &mEmailOtherMessageParameters2, "" );
76 76
77 addItemInt( "PhoneChannelType", &mPhoneClient, KPPI_PHC ); 77 addItemInt( "PhoneChannelType", &mPhoneClient, KPPI_PHC );
78 addItemString( "PhoneChannel", &mPhoneOtherChannel, "" ); 78 addItemString( "PhoneChannel", &mPhoneOtherChannel, "" );
79 addItemString( "PhoneChannelMessage", &mPhoneOtherMessage, "" ); 79 addItemString( "PhoneChannelMessage", &mPhoneOtherMessage, "" );
80 addItemString( "PhoneChannelParameters", &mPhoneOtherMessageParameters, "" ); 80 addItemString( "PhoneChannelParameters", &mPhoneOtherMessageParameters, "" );
81 81
82 addItemInt( "FaxChannelType", &mFaxClient, NONE_FAC ); 82 addItemInt( "FaxChannelType", &mFaxClient, NONE_FAC );
83 addItemString( "FaxChannel", &mFaxOtherChannel, "" ); 83 addItemString( "FaxChannel", &mFaxOtherChannel, "" );
84 addItemString( "FaxChannelMessage", &mFaxOtherMessage, "" ); 84 addItemString( "FaxChannelMessage", &mFaxOtherMessage, "" );
85 addItemString( "FaxChannelParameters", &mFaxOtherMessageParameters, "" ); 85 addItemString( "FaxChannelParameters", &mFaxOtherMessageParameters, "" );
86 86
87 addItemInt( "SMSChannelType", &mSMSClient, NONE_SMC ); 87 addItemInt( "SMSChannelType", &mSMSClient, NONE_SMC );
88 addItemString( "SMSChannel", &mSMSOtherChannel, "" ); 88 addItemString( "SMSChannel", &mSMSOtherChannel, "" );
89 addItemString( "SMSChannelMessage", &mSMSOtherMessage, "" ); 89 addItemString( "SMSChannelMessage", &mSMSOtherMessage, "" );
90 addItemString( "SMSChannelParameters", &mSMSOtherMessageParameters, "" ); 90 addItemString( "SMSChannelParameters", &mSMSOtherMessageParameters, "" );
91 91
92 addItemInt( "PagerChannelType", &mPagerClient, NONE_PAC ); 92 addItemInt( "PagerChannelType", &mPagerClient, NONE_PAC );
93 addItemString( "PagerChannel", &mPagerOtherChannel, "" ); 93 addItemString( "PagerChannel", &mPagerOtherChannel, "" );
94 addItemString( "PagerChannelMessage", &mPagerOtherMessage, "" ); 94 addItemString( "PagerChannelMessage", &mPagerOtherMessage, "" );
95 addItemString( "PagerChannelParameters", &mPagerOtherMessageParameters, "" ); 95 addItemString( "PagerChannelParameters", &mPagerOtherMessageParameters, "" );
96 96
97 addItemInt( "SIPChannelType", &mSipClient, NONE_SIC ); 97 addItemInt( "SIPChannelType", &mSipClient, NONE_SIC );
98 addItemString( "SIPChannel", &mSipOtherChannel, "" ); 98 addItemString( "SIPChannel", &mSipOtherChannel, "" );
99 addItemString( "SIPChannelMessage", &mSipOtherMessage, "" ); 99 addItemString( "SIPChannelMessage", &mSipOtherMessage, "" );
100 addItemString( "SIPChannelParameters", &mSipOtherMessageParameters, "" ); 100 addItemString( "SIPChannelParameters", &mSipOtherMessageParameters, "" );
101 101
102
103 KPrefs::setCurrentGroup( "PhoneAccess" );
104 addItemString("Ex2PhoneDevice",&mEx2PhoneDevice,"/dev/ircomm");
105 addItemString("Ex2PhoneConnection",&mEx2PhoneConnection,"irda");
106 addItemString("Ex2PhoneModel",&mEx2PhoneModel,"6310i");
107
108
102} 109}
103 110
104void KPimGlobalPrefs::setGlobalConfig() 111void KPimGlobalPrefs::setGlobalConfig()
105{ 112{
106 113
107 KGlobal::locale()->setHore24Format( !mPreferredTime ); 114 KGlobal::locale()->setHore24Format( !mPreferredTime );
108 KGlobal::locale()->setWeekStartMonday( !mWeekStartsOnSunday ); 115 KGlobal::locale()->setWeekStartMonday( !mWeekStartsOnSunday );
109 KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)mPreferredDate ); 116 KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)mPreferredDate );
110 KGlobal::locale()->setLanguage( mPreferredLanguage ); 117 KGlobal::locale()->setLanguage( mPreferredLanguage );
111 QString dummy = mUserDateFormatLong; 118 QString dummy = mUserDateFormatLong;
112 KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") )); 119 KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") ));
113 dummy = mUserDateFormatShort; 120 dummy = mUserDateFormatShort;
114 KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") )); 121 KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") ));
115 KGlobal::locale()->setDaylightSaving( mUseDaylightsaving, 122 KGlobal::locale()->setDaylightSaving( mUseDaylightsaving,
116 mDaylightsavingStart, 123 mDaylightsavingStart,
117 mDaylightsavingEnd ); 124 mDaylightsavingEnd );
118 KGlobal::locale()->setTimezone( mTimeZoneId ); 125 KGlobal::locale()->setTimezone( mTimeZoneId );
119 126
120} 127}
121KPimGlobalPrefs::~KPimGlobalPrefs() 128KPimGlobalPrefs::~KPimGlobalPrefs()
122{ 129{
123} 130}
124 131
125KPimGlobalPrefs *KPimGlobalPrefs::instance() 132KPimGlobalPrefs *KPimGlobalPrefs::instance()
126{ 133{
127 if ( !sInstance ) { 134 if ( !sInstance ) {
128 sInstance = staticDeleter.setObject( new KPimGlobalPrefs() ); 135 sInstance = staticDeleter.setObject( new KPimGlobalPrefs() );
129 sInstance->readConfig(); 136 sInstance->readConfig();
130 } 137 }
131 138
132 return sInstance; 139 return sInstance;
133} 140}
diff --git a/libkdepim/kpimglobalprefs.h b/libkdepim/kpimglobalprefs.h
index 84ba689..f6b6628 100644
--- a/libkdepim/kpimglobalprefs.h
+++ b/libkdepim/kpimglobalprefs.h
@@ -36,100 +36,103 @@ $Id$
36class KPimGlobalPrefs : public KPrefs 36class KPimGlobalPrefs : public KPrefs
37{ 37{
38 public: 38 public:
39 39
40 void setGlobalConfig(); 40 void setGlobalConfig();
41 static KPimGlobalPrefs *instance(); 41 static KPimGlobalPrefs *instance();
42 42
43 43
44 virtual ~KPimGlobalPrefs(); 44 virtual ~KPimGlobalPrefs();
45 45
46 46
47 enum EMailClients { 47 enum EMailClients {
48 NONE_EMC = 0, 48 NONE_EMC = 0,
49 OTHER_EMC = 1, 49 OTHER_EMC = 1,
50 OMPI_EMC = 2, 50 OMPI_EMC = 2,
51 QTOPIA_EMC = 3, 51 QTOPIA_EMC = 3,
52 OPIE_EMC = 4 52 OPIE_EMC = 4
53 }; 53 };
54 54
55 enum PhoneClients { 55 enum PhoneClients {
56 NONE_PHC = 0, 56 NONE_PHC = 0,
57 OTHER_PHC = 1, 57 OTHER_PHC = 1,
58 KPPI_PHC = 2 58 KPPI_PHC = 2
59 }; 59 };
60 60
61 enum FaxClients { 61 enum FaxClients {
62 NONE_FAC = 0, 62 NONE_FAC = 0,
63 OTHER_FAC = 1 63 OTHER_FAC = 1
64 }; 64 };
65 65
66 enum SMSClients { 66 enum SMSClients {
67 NONE_SMC = 0, 67 NONE_SMC = 0,
68 OTHER_SMC = 1 68 OTHER_SMC = 1
69 }; 69 };
70 70
71 enum PagerClients { 71 enum PagerClients {
72 NONE_PAC = 0, 72 NONE_PAC = 0,
73 OTHER_PAC = 1 73 OTHER_PAC = 1
74 }; 74 };
75 75
76 enum SIPClients { 76 enum SIPClients {
77 NONE_SIC = 0, 77 NONE_SIC = 0,
78 OTHER_SIC = 1 78 OTHER_SIC = 1
79 }; 79 };
80 80
81 private: 81 private:
82 KPimGlobalPrefs( const QString &name = QString::null ); 82 KPimGlobalPrefs( const QString &name = QString::null );
83 83
84 static KPimGlobalPrefs *sInstance; 84 static KPimGlobalPrefs *sInstance;
85 85
86 86
87 public: 87 public:
88 //US I copied the following "locale" settings from KOPrefs 88 //US I copied the following "locale" settings from KOPrefs
89 int mPreferredDate; 89 int mPreferredDate;
90 QString mUserDateFormatLong; 90 QString mUserDateFormatLong;
91 QString mUserDateFormatShort; 91 QString mUserDateFormatShort;
92 int mPreferredLanguage; 92 int mPreferredLanguage;
93 int mPreferredTime; 93 int mPreferredTime;
94 bool mWeekStartsOnSunday; 94 bool mWeekStartsOnSunday;
95 QString mTimeZoneId; 95 QString mTimeZoneId;
96 bool mUseDaylightsaving; 96 bool mUseDaylightsaving;
97 int mDaylightsavingStart; 97 int mDaylightsavingStart;
98 int mDaylightsavingEnd; 98 int mDaylightsavingEnd;
99 99
100 int mEmailClient; 100 int mEmailClient;
101 QString mEmailOtherChannel; 101 QString mEmailOtherChannel;
102 QString mEmailOtherMessage; 102 QString mEmailOtherMessage;
103 QString mEmailOtherMessageParameters; 103 QString mEmailOtherMessageParameters;
104 QString mEmailOtherMessage2; 104 QString mEmailOtherMessage2;
105 QString mEmailOtherMessageParameters2; 105 QString mEmailOtherMessageParameters2;
106 106
107 int mPhoneClient; 107 int mPhoneClient;
108 QString mPhoneOtherChannel; 108 QString mPhoneOtherChannel;
109 QString mPhoneOtherMessage; 109 QString mPhoneOtherMessage;
110 QString mPhoneOtherMessageParameters; 110 QString mPhoneOtherMessageParameters;
111 111
112 int mFaxClient; 112 int mFaxClient;
113 QString mFaxOtherChannel; 113 QString mFaxOtherChannel;
114 QString mFaxOtherMessage; 114 QString mFaxOtherMessage;
115 QString mFaxOtherMessageParameters; 115 QString mFaxOtherMessageParameters;
116 116
117 int mSMSClient; 117 int mSMSClient;
118 QString mSMSOtherChannel; 118 QString mSMSOtherChannel;
119 QString mSMSOtherMessage; 119 QString mSMSOtherMessage;
120 QString mSMSOtherMessageParameters; 120 QString mSMSOtherMessageParameters;
121 121
122 int mPagerClient; 122 int mPagerClient;
123 QString mPagerOtherChannel; 123 QString mPagerOtherChannel;
124 QString mPagerOtherMessage; 124 QString mPagerOtherMessage;
125 QString mPagerOtherMessageParameters; 125 QString mPagerOtherMessageParameters;
126 126
127 int mSipClient; 127 int mSipClient;
128 QString mSipOtherChannel; 128 QString mSipOtherChannel;
129 QString mSipOtherMessage; 129 QString mSipOtherMessage;
130 QString mSipOtherMessageParameters; 130 QString mSipOtherMessageParameters;
131 131
132 QString mEx2PhoneDevice;
133 QString mEx2PhoneConnection;
134 QString mEx2PhoneModel;
132 135
133}; 136};
134 137
135#endif 138#endif
diff --git a/libkdepim/libkdepim.pro b/libkdepim/libkdepim.pro
index eac19ea..84af7ad 100644
--- a/libkdepim/libkdepim.pro
+++ b/libkdepim/libkdepim.pro
@@ -1,59 +1,61 @@
1 TEMPLATE= lib 1 TEMPLATE= lib
2 CONFIG = qt warn_on 2 CONFIG = qt warn_on
3DEFINES +=KORG_NOKABC 3DEFINES +=KORG_NOKABC
4TARGET = microkdepim 4TARGET = microkdepim
5INCLUDEPATH += ../microkde ../microkde/kdecore ../microkde/kdeui . .. 5INCLUDEPATH += ../microkde ../microkde/kdecore ../microkde/kdeui . ..
6DESTDIR=../bin 6DESTDIR=../bin
7 7
8DEFINES += DESKTOP_VERSION 8DEFINES += DESKTOP_VERSION
9include( ../variables.pri ) 9include( ../variables.pri )
10unix : { 10unix : {
11OBJECTS_DIR = obj/unix 11OBJECTS_DIR = obj/unix
12MOC_DIR = moc/unix 12MOC_DIR = moc/unix
13} 13}
14win32: { 14win32: {
15DEFINES += _WIN32_ 15DEFINES += _WIN32_
16OBJECTS_DIR = obj/win 16OBJECTS_DIR = obj/win
17MOC_DIR = moc/win 17MOC_DIR = moc/win
18} 18}
19INTERFACES = \ 19INTERFACES = \
20 20
21HEADERS = \ 21HEADERS = \
22 categoryeditdialog.h \ 22 categoryeditdialog.h \
23 categoryeditdialog_base.h \ 23 categoryeditdialog_base.h \
24 categoryselectdialog.h \ 24 categoryselectdialog.h \
25 categoryselectdialog_base.h \ 25 categoryselectdialog_base.h \
26 externalapphandler.h \ 26 externalapphandler.h \
27 kdateedit.h \ 27 kdateedit.h \
28 kdatepicker.h \ 28 kdatepicker.h \
29 kinputdialog.h \ 29 kinputdialog.h \
30 kpimprefs.h \ 30 kpimprefs.h \
31 kpimglobalprefs.h \ 31 kpimglobalprefs.h \
32 kprefsdialog.h \ 32 kprefsdialog.h \
33 kprefswidget.h \ 33 kprefswidget.h \
34 ksyncmanager.h \ 34 ksyncmanager.h \
35 ksyncprofile.h \ 35 ksyncprofile.h \
36 ksyncprefsdialog.h \ 36 ksyncprefsdialog.h \
37 kcmconfigs/kcmkdepimconfig.h \ 37 kcmconfigs/kcmkdepimconfig.h \
38 kcmconfigs/kdepimconfigwidget.h 38 kcmconfigs/kdepimconfigwidget.h \
39 phoneaccess.h
39 40
40SOURCES = \ 41SOURCES = \
41 categoryeditdialog.cpp \ 42 categoryeditdialog.cpp \
42 categoryeditdialog_base.cpp \ 43 categoryeditdialog_base.cpp \
43 categoryselectdialog.cpp \ 44 categoryselectdialog.cpp \
44 categoryselectdialog_base.cpp \ 45 categoryselectdialog_base.cpp \
45 externalapphandler.cpp \ 46 externalapphandler.cpp \
46 kdateedit.cpp \ 47 kdateedit.cpp \
47 kdatepicker.cpp \ 48 kdatepicker.cpp \
48 kinputdialog.cpp \ 49 kinputdialog.cpp \
49 kpimprefs.cpp \ 50 kpimprefs.cpp \
50 kpimglobalprefs.cpp \ 51 kpimglobalprefs.cpp \
51 kprefsdialog.cpp \ 52 kprefsdialog.cpp \
52 kprefswidget.cpp \ 53 kprefswidget.cpp \
53 ksyncmanager.cpp \ 54 ksyncmanager.cpp \
54 ksyncprofile.cpp \ 55 ksyncprofile.cpp \
55 ksyncprefsdialog.cpp \ 56 ksyncprefsdialog.cpp \
56 kcmconfigs/kcmkdepimconfig.cpp \ 57 kcmconfigs/kcmkdepimconfig.cpp \
57 kcmconfigs/kdepimconfigwidget.cpp 58 kcmconfigs/kdepimconfigwidget.cpp \
59 phoneaccess.cpp
58 60
59 61
diff --git a/libkdepim/libkdepimE.pro b/libkdepim/libkdepimE.pro
index 156e247..f3db68e 100644
--- a/libkdepim/libkdepimE.pro
+++ b/libkdepim/libkdepimE.pro
@@ -1,55 +1,57 @@
1 TEMPLATE= lib 1 TEMPLATE= lib
2 CONFIG += qt warn_on 2 CONFIG += qt warn_on
3TARGET = microkdepim 3TARGET = microkdepim
4INCLUDEPATH += . $(KDEPIMDIR) $(KDEPIMDIR)/microkde $(KDEPIMDIR)/qtcompat $(KDEPIMDIR)/microkde/kdecore $(KDEPIMDIR)/microkde/kdeui $(QPEDIR)/include 4INCLUDEPATH += . $(KDEPIMDIR) $(KDEPIMDIR)/microkde $(KDEPIMDIR)/qtcompat $(KDEPIMDIR)/microkde/kdecore $(KDEPIMDIR)/microkde/kdeui $(QPEDIR)/include
5LIBS += -lmicrokde 5LIBS += -lmicrokde
6#LIBS += -lmicrokcal 6#LIBS += -lmicrokcal
7LIBS += -L$(QPEDIR)/lib 7LIBS += -L$(QPEDIR)/lib
8OBJECTS_DIR = obj/$(PLATFORM) 8OBJECTS_DIR = obj/$(PLATFORM)
9MOC_DIR = moc/$(PLATFORM) 9MOC_DIR = moc/$(PLATFORM)
10DESTDIR=$(QPEDIR)/lib 10DESTDIR=$(QPEDIR)/lib
11 11
12 12
13INTERFACES = \ 13INTERFACES = \
14 14
15HEADERS = \ 15HEADERS = \
16 categoryeditdialog.h \ 16 categoryeditdialog.h \
17 categoryeditdialog_base.h \ 17 categoryeditdialog_base.h \
18 categoryselectdialog.h \ 18 categoryselectdialog.h \
19 categoryselectdialog_base.h \ 19 categoryselectdialog_base.h \
20 externalapphandler.h \ 20 externalapphandler.h \
21 kdateedit.h \ 21 kdateedit.h \
22 kdatepicker.h \ 22 kdatepicker.h \
23 kinputdialog.h \ 23 kinputdialog.h \
24 kpimprefs.h \ 24 kpimprefs.h \
25 kpimglobalprefs.h \ 25 kpimglobalprefs.h \
26 kprefsdialog.h \ 26 kprefsdialog.h \
27 kprefswidget.h \ 27 kprefswidget.h \
28 ksyncmanager.h \ 28 ksyncmanager.h \
29 ksyncprofile.h \ 29 ksyncprofile.h \
30 ksyncprefsdialog.h \ 30 ksyncprefsdialog.h \
31 kcmconfigs/kcmkdepimconfig.h \ 31 kcmconfigs/kcmkdepimconfig.h \
32 kcmconfigs/kdepimconfigwidget.h 32 kcmconfigs/kdepimconfigwidget.h \
33 phoneaccess.h
33 34
34 35
35 36
36SOURCES = \ 37SOURCES = \
37 categoryeditdialog.cpp \ 38 categoryeditdialog.cpp \
38 categoryeditdialog_base.cpp \ 39 categoryeditdialog_base.cpp \
39 categoryselectdialog.cpp \ 40 categoryselectdialog.cpp \
40 categoryselectdialog_base.cpp \ 41 categoryselectdialog_base.cpp \
41 externalapphandler.cpp \ 42 externalapphandler.cpp \
42 kdateedit.cpp \ 43 kdateedit.cpp \
43 kinputdialog.cpp \ 44 kinputdialog.cpp \
44 kdatepicker.cpp \ 45 kdatepicker.cpp \
45 kpimprefs.cpp \ 46 kpimprefs.cpp \
46 kpimglobalprefs.cpp \ 47 kpimglobalprefs.cpp \
47 kprefsdialog.cpp \ 48 kprefsdialog.cpp \
48 kprefswidget.cpp \ 49 kprefswidget.cpp \
49 ksyncmanager.cpp \ 50 ksyncmanager.cpp \
50 ksyncprofile.cpp \ 51 ksyncprofile.cpp \
51 ksyncprefsdialog.cpp \ 52 ksyncprefsdialog.cpp \
52 kcmconfigs/kcmkdepimconfig.cpp \ 53 kcmconfigs/kcmkdepimconfig.cpp \
53 kcmconfigs/kdepimconfigwidget.cpp 54 kcmconfigs/kdepimconfigwidget.cpp \
55 phoneaccess.cpp
54 56
55 57
diff --git a/libkdepim/phoneaccess.cpp b/libkdepim/phoneaccess.cpp
new file mode 100644
index 0000000..c0bd6cc
--- a/dev/null
+++ b/libkdepim/phoneaccess.cpp
@@ -0,0 +1,153 @@
1/*
2 This file is part of libkdepim.
3
4 Copyright (c) 2004 Lutz Rogowski <rogowski@kde.org>
5
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version.
10
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details.
15
16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.
20*/
21
22
23#include <qstring.h>
24#include <qapplication.h>
25#include <qptrlist.h>
26#include <qregexp.h>
27#include <qfile.h>
28#include <qtextstream.h>
29#include <qtextcodec.h>
30#include <qdir.h>
31#include <kmessagebox.h>
32#include <stdlib.h>
33#include "phoneaccess.h"
34
35void PhoneAccess::writeConfig( QString device, QString connection, QString model )
36{
37#ifdef _WIN32_
38 QString fileName = qApp->applicationDirPath () +"\\gammurc";
39#else
40 QString fileName = QDir::homeDirPath() +"/.gammurc";
41#endif
42 //qDebug("save %d ", load );
43 QString content;
44 bool write = false;
45 bool addPort = true, addConnection = true, addModel = true;
46 QFile file( fileName );
47 if ( QFile::exists( fileName) ) {
48 if (!file.open( IO_ReadOnly ) ) {
49 qDebug("Error: cannot open %s ", fileName.latin1() );
50 return;
51 }
52 QString line;
53 while ( file.readLine( line, 1024 ) > 0 ) {
54 //qDebug("*%s* ", line.latin1() );
55 if ( line.left(7 ) == "[gammu]" ) {
56 ;
57 } else
58 if ( line.left(4 ) == "port" ) {
59 if ( line == "port = " + device+"\n" ) {
60 content += line ;
61 addPort = false;
62 //qDebug("port found" );
63 }
64
65 } else if ( line.left(5 ) == "model" ) {
66 if ( line == "model = " + model +"\n") {
67 content += line ;
68 addModel = false;
69 //qDebug("model found" );
70 }
71
72 } else if ( line.left( 10 ) == "connection" ) {
73 if ( line == "connection = " + connection +"\n") {
74 addConnection = false;
75 content += line ;
76 //qDebug("con found" );
77 }
78
79 } else {
80 content += line ;
81 }
82 }
83 file.close();
84 } else {
85 if ( ! connection.isEmpty() ) {
86 addConnection = true;
87 }
88 if ( ! device.isEmpty() ) {
89 addPort = true;
90
91 }
92 if ( ! model.isEmpty() ) {
93 addModel = true;
94 }
95 }
96
97 if ( addConnection ) {
98 if ( ! write )
99 content += "[gammu]\n";
100 write = true;
101 content += "connection = ";
102 content += connection;
103 content += "\n";
104 }
105 if ( addPort ) {
106 if ( ! write )
107 content += "[gammu]\n";
108 write = true;
109 content += "port = ";
110 content += device;
111 content += "\n";
112
113 }
114 if ( addModel ) {
115 if ( ! write )
116 content += "[gammu]\n";
117 write = true;
118 content += "model = ";
119 content += model;
120 content += "\n";
121 }
122 if ( write ) {
123 if (!file.open( IO_WriteOnly ) ) {
124 qDebug("Error: cannot write file %s ", fileName.latin1() );
125 return;
126 }
127 qDebug("Writing file %s ", fileName.latin1() );
128 QTextStream ts( &file );
129 ts << content ;
130 file.close();
131 }
132
133}
134
135
136bool PhoneAccess::writeToPhone( QString fileName)
137{
138
139#ifdef DESKTOP_VERSION
140 QString command ="./kammu --restore " + fileName ;
141#else
142 QString command ="kammu --restore " + fileName ;
143#endif
144 int ret;
145 while ( (ret = system ( command.latin1())) != 0 ) {
146 qDebug("Error S::command returned %d. asking users", ret);
147 int retval = KMessageBox::warningContinueCancel(0,
148 i18n("Error accessing device!\nPlease turn on connection\nand retry!"),i18n("KO/Pi phone access"),i18n("Retry"),i18n("Cancel"));
149 if ( retval != KMessageBox::Continue )
150 return false;
151 }
152 return true;
153}
diff --git a/libkdepim/phoneaccess.h b/libkdepim/phoneaccess.h
new file mode 100644
index 0000000..b7c4732
--- a/dev/null
+++ b/libkdepim/phoneaccess.h
@@ -0,0 +1,42 @@
1/*
2 This file is part of libkcal.
3
4 Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org>
5
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version.
10
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details.
15
16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.
20*/
21#ifndef PHONEACCESS_H
22#define PHONEACCESS_H
23
24#include <qstring.h>
25
26
27
28/**
29 This class implements the calendar format used by Phone.
30*/
31
32class PhoneAccess : public QObject {
33 public:
34
35 static void writeConfig( QString device,QString connection, QString model );
36 static bool writeToPhone( QString fileName );
37
38};
39
40
41
42#endif