summaryrefslogtreecommitdiffabout
path: root/kaddressbook
Unidiff
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp11
-rw-r--r--kaddressbook/kaddressbook.pro31
-rw-r--r--kaddressbook/mainembedded.cpp30
3 files changed, 34 insertions, 38 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 505cbf4..590cc82 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1,671 +1,672 @@
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/*s 24/*s
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> 37#include <qlabel.h>
38#include <qregexp.h> 38#include <qregexp.h>
39#include <qlineedit.h> 39#include <qlineedit.h>
40#include <qcheckbox.h> 40#include <qcheckbox.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42#include <qprogressbar.h> 42#include <qprogressbar.h>
43#include <libkdepim/phoneaccess.h> 43#include <libkdepim/phoneaccess.h>
44 44
45#ifndef KAB_EMBEDDED 45#ifndef KAB_EMBEDDED
46#include <qclipboard.h> 46#include <qclipboard.h>
47#include <qdir.h> 47#include <qdir.h>
48#include <qfile.h> 48#include <qfile.h>
49#include <qapplicaton.h> 49#include <qapplicaton.h>
50#include <qprogressbar.h> 50#include <qprogressbar.h>
51#include <qlayout.h> 51#include <qlayout.h>
52#include <qregexp.h> 52#include <qregexp.h>
53#include <qvbox.h> 53#include <qvbox.h>
54#include <kabc/addresseelist.h> 54#include <kabc/addresseelist.h>
55#include <kabc/errorhandler.h> 55#include <kabc/errorhandler.h>
56#include <kabc/resource.h> 56#include <kabc/resource.h>
57#include <kabc/vcardconverter.h> 57#include <kabc/vcardconverter.h>
58#include <kapplication.h> 58#include <kapplication.h>
59#include <kactionclasses.h> 59#include <kactionclasses.h>
60#include <kcmultidialog.h> 60#include <kcmultidialog.h>
61#include <kdebug.h> 61#include <kdebug.h>
62#include <kdeversion.h> 62#include <kdeversion.h>
63#include <kkeydialog.h> 63#include <kkeydialog.h>
64#include <kmessagebox.h> 64#include <kmessagebox.h>
65#include <kprinter.h> 65#include <kprinter.h>
66#include <kprotocolinfo.h> 66#include <kprotocolinfo.h>
67#include <kresources/selectdialog.h> 67#include <kresources/selectdialog.h>
68#include <kstandarddirs.h> 68#include <kstandarddirs.h>
69#include <ktempfile.h> 69#include <ktempfile.h>
70#include <kxmlguiclient.h> 70#include <kxmlguiclient.h>
71#include <kaboutdata.h> 71#include <kaboutdata.h>
72#include <libkdepim/categoryselectdialog.h> 72#include <libkdepim/categoryselectdialog.h>
73 73
74#include "addresseeutil.h" 74#include "addresseeutil.h"
75#include "addresseeeditordialog.h" 75#include "addresseeeditordialog.h"
76#include "extensionmanager.h" 76#include "extensionmanager.h"
77#include "kstdaction.h" 77#include "kstdaction.h"
78#include "kaddressbookservice.h" 78#include "kaddressbookservice.h"
79#include "ldapsearchdialog.h" 79#include "ldapsearchdialog.h"
80#include "printing/printingwizard.h" 80#include "printing/printingwizard.h"
81#else // KAB_EMBEDDED 81#else // KAB_EMBEDDED
82 82
83#include <kapplication.h> 83#include <kapplication.h>
84#include "KDGanttMinimizeSplitter.h" 84#include "KDGanttMinimizeSplitter.h"
85#include "kaddressbookmain.h" 85#include "kaddressbookmain.h"
86#include "kactioncollection.h" 86#include "kactioncollection.h"
87#include "addresseedialog.h" 87#include "addresseedialog.h"
88//US 88//US
89#include <addresseeview.h> 89#include <addresseeview.h>
90 90
91#include <qapp.h> 91#include <qapp.h>
92#include <qmenubar.h> 92#include <qmenubar.h>
93//#include <qtoolbar.h> 93//#include <qtoolbar.h>
94#include <qmessagebox.h> 94#include <qmessagebox.h>
95#include <kdebug.h> 95#include <kdebug.h>
96#include <kiconloader.h> // needed for SmallIcon 96#include <kiconloader.h> // needed for SmallIcon
97#include <kresources/kcmkresources.h> 97#include <kresources/kcmkresources.h>
98#include <ktoolbar.h> 98#include <ktoolbar.h>
99 99
100 100
101//#include <qlabel.h> 101//#include <qlabel.h>
102 102
103 103
104#ifndef DESKTOP_VERSION 104#ifndef DESKTOP_VERSION
105#include <qpe/ir.h> 105#include <qpe/ir.h>
106#include <qpe/qpemenubar.h> 106#include <qpe/qpemenubar.h>
107#include <qtopia/qcopenvelope_qws.h> 107#include <qtopia/qcopenvelope_qws.h>
108#else 108#else
109 109
110#include <qmenubar.h> 110#include <qmenubar.h>
111#endif 111#endif
112 112
113#endif // KAB_EMBEDDED 113#endif // KAB_EMBEDDED
114#include "kcmconfigs/kcmkabconfig.h" 114#include "kcmconfigs/kcmkabconfig.h"
115#include "kcmconfigs/kcmkdepimconfig.h" 115#include "kcmconfigs/kcmkdepimconfig.h"
116#include "kpimglobalprefs.h" 116#include "kpimglobalprefs.h"
117#include "externalapphandler.h" 117#include "externalapphandler.h"
118#include "xxportselectdialog.h" 118#include "xxportselectdialog.h"
119 119
120 120
121#include <kresources/selectdialog.h> 121#include <kresources/selectdialog.h>
122#include <kmessagebox.h> 122#include <kmessagebox.h>
123 123
124#include <picture.h> 124#include <picture.h>
125#include <resource.h> 125#include <resource.h>
126 126
127//US#include <qsplitter.h> 127//US#include <qsplitter.h>
128#include <qmap.h> 128#include <qmap.h>
129#include <qdir.h> 129#include <qdir.h>
130#include <qfile.h> 130#include <qfile.h>
131#include <qvbox.h> 131#include <qvbox.h>
132#include <qlayout.h> 132#include <qlayout.h>
133#include <qclipboard.h> 133#include <qclipboard.h>
134#include <qtextstream.h> 134#include <qtextstream.h>
135#include <qradiobutton.h> 135#include <qradiobutton.h>
136#include <qbuttongroup.h> 136#include <qbuttongroup.h>
137 137
138#include <libkdepim/categoryselectdialog.h> 138#include <libkdepim/categoryselectdialog.h>
139#include <libkdepim/categoryeditdialog.h> 139#include <libkdepim/categoryeditdialog.h>
140#include <kabc/vcardconverter.h> 140#include <kabc/vcardconverter.h>
141 141
142 142
143#include "addresseeutil.h" 143#include "addresseeutil.h"
144#include "undocmds.h" 144#include "undocmds.h"
145#include "addresseeeditordialog.h" 145#include "addresseeeditordialog.h"
146#include "viewmanager.h" 146#include "viewmanager.h"
147#include "details/detailsviewcontainer.h" 147#include "details/detailsviewcontainer.h"
148#include "kabprefs.h" 148#include "kabprefs.h"
149#include "xxportmanager.h" 149#include "xxportmanager.h"
150#include "incsearchwidget.h" 150#include "incsearchwidget.h"
151#include "jumpbuttonbar.h" 151#include "jumpbuttonbar.h"
152#include "extensionmanager.h" 152#include "extensionmanager.h"
153#include "addresseeconfig.h" 153#include "addresseeconfig.h"
154#include "nameeditdialog.h" 154#include "nameeditdialog.h"
155#include <kcmultidialog.h> 155#include <kcmultidialog.h>
156 156
157#ifdef _WIN32_ 157#ifdef _WIN32_
158 158#ifdef _OL_IMPORT_
159#include "kaimportoldialog.h" 159#include "kaimportoldialog.h"
160#endif
160#else 161#else
161#include <unistd.h> 162#include <unistd.h>
162#endif 163#endif
163// sync includes 164// sync includes
164#include <libkdepim/ksyncprofile.h> 165#include <libkdepim/ksyncprofile.h>
165#include <libkdepim/ksyncprefsdialog.h> 166#include <libkdepim/ksyncprefsdialog.h>
166 167
167 168
168class KABCatPrefs : public QDialog 169class KABCatPrefs : public QDialog
169{ 170{
170 public: 171 public:
171 KABCatPrefs( QWidget *parent=0, const char *name=0 ) : 172 KABCatPrefs( QWidget *parent=0, const char *name=0 ) :
172 QDialog( parent, name, true ) 173 QDialog( parent, name, true )
173 { 174 {
174 setCaption( i18n("Manage new Categories") ); 175 setCaption( i18n("Manage new Categories") );
175 QVBoxLayout* lay = new QVBoxLayout( this ); 176 QVBoxLayout* lay = new QVBoxLayout( this );
176 lay->setSpacing( 3 ); 177 lay->setSpacing( 3 );
177 lay->setMargin( 3 ); 178 lay->setMargin( 3 );
178 QLabel * lab = new QLabel( i18n("After importing/loading/syncing\nthere may be new categories in\naddressees\nwhich are not in the category list.\nPlease choose what to do:\n "), this ); 179 QLabel * lab = new QLabel( i18n("After importing/loading/syncing\nthere may be new categories in\naddressees\nwhich are not in the category list.\nPlease choose what to do:\n "), this );
179 lay->addWidget( lab ); 180 lay->addWidget( lab );
180 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("New categories not in list:"), this ); 181 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("New categories not in list:"), this );
181 lay->addWidget( format ); 182 lay->addWidget( format );
182 format->setExclusive ( true ) ; 183 format->setExclusive ( true ) ;
183 addCatBut = new QRadioButton(i18n("Add to category list"), format ); 184 addCatBut = new QRadioButton(i18n("Add to category list"), format );
184 new QRadioButton(i18n("Remove from addressees"), format ); 185 new QRadioButton(i18n("Remove from addressees"), format );
185 addCatBut->setChecked( true ); 186 addCatBut->setChecked( true );
186 QPushButton * ok = new QPushButton( i18n("OK"), this ); 187 QPushButton * ok = new QPushButton( i18n("OK"), this );
187 lay->addWidget( ok ); 188 lay->addWidget( ok );
188 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 189 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
189 lay->addWidget( cancel ); 190 lay->addWidget( cancel );
190 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 191 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
191 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 192 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
192 resize( 200, 200 ); 193 resize( 200, 200 );
193 } 194 }
194 195
195 bool addCat() { return addCatBut->isChecked(); } 196 bool addCat() { return addCatBut->isChecked(); }
196private: 197private:
197 QRadioButton* addCatBut; 198 QRadioButton* addCatBut;
198}; 199};
199 200
200class KABFormatPrefs : public QDialog 201class KABFormatPrefs : public QDialog
201{ 202{
202 public: 203 public:
203 KABFormatPrefs( QWidget *parent=0, const char *name=0 ) : 204 KABFormatPrefs( QWidget *parent=0, const char *name=0 ) :
204 QDialog( parent, name, true ) 205 QDialog( parent, name, true )
205 { 206 {
206 setCaption( i18n("Set formatted name") ); 207 setCaption( i18n("Set formatted name") );
207 QVBoxLayout* lay = new QVBoxLayout( this ); 208 QVBoxLayout* lay = new QVBoxLayout( this );
208 lay->setSpacing( 3 ); 209 lay->setSpacing( 3 );
209 lay->setMargin( 3 ); 210 lay->setMargin( 3 );
210 QLabel * lab = new QLabel( i18n("You can set the formatted name\nfor a list of contacts in one go."), this ); 211 QLabel * lab = new QLabel( i18n("You can set the formatted name\nfor a list of contacts in one go."), this );
211 lay->addWidget( lab ); 212 lay->addWidget( lab );
212 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("Set formatted name to:"), this ); 213 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("Set formatted name to:"), this );
213 lay->addWidget( format ); 214 lay->addWidget( format );
214 format->setExclusive ( true ) ; 215 format->setExclusive ( true ) ;
215 simple = new QRadioButton(i18n("Simple: James Bond"), format ); 216 simple = new QRadioButton(i18n("Simple: James Bond"), format );
216 full = new QRadioButton(i18n("Full: Mr. James 007 Bond I"), format ); 217 full = new QRadioButton(i18n("Full: Mr. James 007 Bond I"), format );
217 reverse = new QRadioButton(i18n("Reverse: Bond, James"), format ); 218 reverse = new QRadioButton(i18n("Reverse: Bond, James"), format );
218 company = new QRadioButton(i18n("Organization: MI6"), format ); 219 company = new QRadioButton(i18n("Organization: MI6"), format );
219 simple->setChecked( true ); 220 simple->setChecked( true );
220 setCompany = new QCheckBox(i18n("Set formatted name to\norganization, if name empty"), this); 221 setCompany = new QCheckBox(i18n("Set formatted name to\norganization, if name empty"), this);
221 lay->addWidget( setCompany ); 222 lay->addWidget( setCompany );
222 QPushButton * ok = new QPushButton( i18n("Select contact list"), this ); 223 QPushButton * ok = new QPushButton( i18n("Select contact list"), this );
223 lay->addWidget( ok ); 224 lay->addWidget( ok );
224 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 225 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
225 lay->addWidget( cancel ); 226 lay->addWidget( cancel );
226 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 227 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
227 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 228 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
228 //resize( 200, 200 ); 229 //resize( 200, 200 );
229 230
230 } 231 }
231public: 232public:
232 QRadioButton* simple, *full, *reverse, *company; 233 QRadioButton* simple, *full, *reverse, *company;
233 QCheckBox* setCompany; 234 QCheckBox* setCompany;
234}; 235};
235 236
236 237
237 238
238class KAex2phonePrefs : public QDialog 239class KAex2phonePrefs : public QDialog
239{ 240{
240 public: 241 public:
241 KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 242 KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
242 QDialog( parent, name, true ) 243 QDialog( parent, name, true )
243 { 244 {
244 setCaption( i18n("Export to phone options") ); 245 setCaption( i18n("Export to phone options") );
245 QVBoxLayout* lay = new QVBoxLayout( this ); 246 QVBoxLayout* lay = new QVBoxLayout( this );
246 lay->setSpacing( 3 ); 247 lay->setSpacing( 3 );
247 lay->setMargin( 3 ); 248 lay->setMargin( 3 );
248 QLabel *lab; 249 QLabel *lab;
249 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 250 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
250 lab->setAlignment (AlignHCenter ); 251 lab->setAlignment (AlignHCenter );
251 QHBox* temphb; 252 QHBox* temphb;
252 temphb = new QHBox( this ); 253 temphb = new QHBox( this );
253 new QLabel( i18n("I/O device: "), temphb ); 254 new QLabel( i18n("I/O device: "), temphb );
254 mPhoneDevice = new QLineEdit( temphb); 255 mPhoneDevice = new QLineEdit( temphb);
255 lay->addWidget( temphb ); 256 lay->addWidget( temphb );
256 temphb = new QHBox( this ); 257 temphb = new QHBox( this );
257 new QLabel( i18n("Connection: "), temphb ); 258 new QLabel( i18n("Connection: "), temphb );
258 mPhoneConnection = new QLineEdit( temphb); 259 mPhoneConnection = new QLineEdit( temphb);
259 lay->addWidget( temphb ); 260 lay->addWidget( temphb );
260 temphb = new QHBox( this ); 261 temphb = new QHBox( this );
261 new QLabel( i18n("Model(opt.): "), temphb ); 262 new QLabel( i18n("Model(opt.): "), temphb );
262 mPhoneModel = new QLineEdit( temphb); 263 mPhoneModel = new QLineEdit( temphb);
263 lay->addWidget( temphb ); 264 lay->addWidget( temphb );
264 // mWriteToSim = new QCheckBox( i18n("Write Contacts to SIM card\n(if not, write to phone memory)"), this ); 265 // mWriteToSim = new QCheckBox( i18n("Write Contacts to SIM card\n(if not, write to phone memory)"), this );
265 // lay->addWidget( mWriteToSim ); 266 // lay->addWidget( mWriteToSim );
266 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ncontact data on phone!"), this ) ); 267 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ncontact data on phone!"), this ) );
267 lab->setAlignment (AlignHCenter); 268 lab->setAlignment (AlignHCenter);
268 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 269 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
269 lay->addWidget( ok ); 270 lay->addWidget( ok );
270 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 271 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
271 lay->addWidget( cancel ); 272 lay->addWidget( cancel );
272 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 273 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
273 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 274 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
274 resize( 220, 240 ); 275 resize( 220, 240 );
275 276
276 } 277 }
277 278
278public: 279public:
279 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 280 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
280 QCheckBox* mWriteToSim; 281 QCheckBox* mWriteToSim;
281}; 282};
282 283
283 284
284bool pasteWithNewUid = true; 285bool pasteWithNewUid = true;
285 286
286#ifdef KAB_EMBEDDED 287#ifdef KAB_EMBEDDED
287KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) 288KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name )
288 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 289 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
289 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ 290 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/
290 mReadWrite( readWrite ), mModified( false ), mMainWindow(client) 291 mReadWrite( readWrite ), mModified( false ), mMainWindow(client)
291#else //KAB_EMBEDDED 292#else //KAB_EMBEDDED
292KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) 293KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name )
293 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 294 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
294 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), 295 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ),
295 mReadWrite( readWrite ), mModified( false ) 296 mReadWrite( readWrite ), mModified( false )
296#endif //KAB_EMBEDDED 297#endif //KAB_EMBEDDED
297{ 298{
298 // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); 299 // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu);
299 // syncManager->setBlockSave(false); 300 // syncManager->setBlockSave(false);
300 mMiniSplitter = 0; 301 mMiniSplitter = 0;
301 mExtensionBarSplitter = 0; 302 mExtensionBarSplitter = 0;
302 mIsPart = !parent->inherits( "KAddressBookMain" ); 303 mIsPart = !parent->inherits( "KAddressBookMain" );
303 mAddressBook = KABC::StdAddressBook::self(); 304 mAddressBook = KABC::StdAddressBook::self();
304 KABC::StdAddressBook::setAutomaticSave( false ); 305 KABC::StdAddressBook::setAutomaticSave( false );
305 306
306#ifndef KAB_EMBEDDED 307#ifndef KAB_EMBEDDED
307 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); 308 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler );
308#endif //KAB_EMBEDDED 309#endif //KAB_EMBEDDED
309 310
310 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), 311 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ),
311 SLOT( addressBookChanged() ) ); 312 SLOT( addressBookChanged() ) );
312 313
313#if 0 314#if 0
314 // LP moved to addressbook init method 315 // LP moved to addressbook init method
315 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, 316 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization,
316 "X-Department", "KADDRESSBOOK" ); 317 "X-Department", "KADDRESSBOOK" );
317 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, 318 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization,
318 "X-Profession", "KADDRESSBOOK" ); 319 "X-Profession", "KADDRESSBOOK" );
319 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, 320 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization,
320 "X-AssistantsName", "KADDRESSBOOK" ); 321 "X-AssistantsName", "KADDRESSBOOK" );
321 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, 322 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization,
322 "X-ManagersName", "KADDRESSBOOK" ); 323 "X-ManagersName", "KADDRESSBOOK" );
323 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, 324 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal,
324 "X-SpousesName", "KADDRESSBOOK" ); 325 "X-SpousesName", "KADDRESSBOOK" );
325 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, 326 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal,
326 "X-Office", "KADDRESSBOOK" ); 327 "X-Office", "KADDRESSBOOK" );
327 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, 328 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal,
328 "X-IMAddress", "KADDRESSBOOK" ); 329 "X-IMAddress", "KADDRESSBOOK" );
329 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, 330 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal,
330 "X-Anniversary", "KADDRESSBOOK" ); 331 "X-Anniversary", "KADDRESSBOOK" );
331 332
332 //US added this field to become compatible with Opie/qtopia addressbook 333 //US added this field to become compatible with Opie/qtopia addressbook
333 // values can be "female" or "male" or "". An empty field represents undefined. 334 // values can be "female" or "male" or "". An empty field represents undefined.
334 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, 335 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal,
335 "X-Gender", "KADDRESSBOOK" ); 336 "X-Gender", "KADDRESSBOOK" );
336 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, 337 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal,
337 "X-Children", "KADDRESSBOOK" ); 338 "X-Children", "KADDRESSBOOK" );
338 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, 339 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal,
339 "X-FreeBusyUrl", "KADDRESSBOOK" ); 340 "X-FreeBusyUrl", "KADDRESSBOOK" );
340#endif 341#endif
341 initGUI(); 342 initGUI();
342 343
343 mIncSearchWidget->setFocus(); 344 mIncSearchWidget->setFocus();
344 345
345 346
346 connect( mViewManager, SIGNAL( selected( const QString& ) ), 347 connect( mViewManager, SIGNAL( selected( const QString& ) ),
347 SLOT( setContactSelected( const QString& ) ) ); 348 SLOT( setContactSelected( const QString& ) ) );
348 connect( mViewManager, SIGNAL( executed( const QString& ) ), 349 connect( mViewManager, SIGNAL( executed( const QString& ) ),
349 SLOT( executeContact( const QString& ) ) ); 350 SLOT( executeContact( const QString& ) ) );
350 351
351 connect( mViewManager, SIGNAL( deleteRequest( ) ), 352 connect( mViewManager, SIGNAL( deleteRequest( ) ),
352 SLOT( deleteContacts( ) ) ); 353 SLOT( deleteContacts( ) ) );
353 connect( mViewManager, SIGNAL( modified() ), 354 connect( mViewManager, SIGNAL( modified() ),
354 SLOT( setModified() ) ); 355 SLOT( setModified() ) );
355 356
356 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); 357 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) );
357 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); 358 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) );
358 359
359 connect( mXXPortManager, SIGNAL( modified() ), 360 connect( mXXPortManager, SIGNAL( modified() ),
360 SLOT( setModified() ) ); 361 SLOT( setModified() ) );
361 362
362 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), 363 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ),
363 SLOT( incrementalSearch( const QString& ) ) ); 364 SLOT( incrementalSearch( const QString& ) ) );
364 connect( mIncSearchWidget, SIGNAL( fieldChanged() ), 365 connect( mIncSearchWidget, SIGNAL( fieldChanged() ),
365 mJumpButtonBar, SLOT( recreateButtons() ) ); 366 mJumpButtonBar, SLOT( recreateButtons() ) );
366 367
367 connect( mDetails, SIGNAL( sendEmail( const QString& ) ), 368 connect( mDetails, SIGNAL( sendEmail( const QString& ) ),
368 SLOT( sendMail( const QString& ) ) ); 369 SLOT( sendMail( const QString& ) ) );
369 370
370 371
371 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); 372 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&)));
372 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&))); 373 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&)));
373 connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&))); 374 connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&)));
374 connect( ExternalAppHandler::instance(), SIGNAL (nextView()),this, SLOT(setDetailsToggle())); 375 connect( ExternalAppHandler::instance(), SIGNAL (nextView()),this, SLOT(setDetailsToggle()));
375 376
376 377
377#ifndef KAB_EMBEDDED 378#ifndef KAB_EMBEDDED
378 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), 379 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ),
379 mXXPortManager, SLOT( importVCard( const KURL& ) ) ); 380 mXXPortManager, SLOT( importVCard( const KURL& ) ) );
380 381
381 connect( mDetails, SIGNAL( browse( const QString& ) ), 382 connect( mDetails, SIGNAL( browse( const QString& ) ),
382 SLOT( browse( const QString& ) ) ); 383 SLOT( browse( const QString& ) ) );
383 384
384 385
385 mAddressBookService = new KAddressBookService( this ); 386 mAddressBookService = new KAddressBookService( this );
386 387
387#endif //KAB_EMBEDDED 388#endif //KAB_EMBEDDED
388 389
389 mMessageTimer = new QTimer( this ); 390 mMessageTimer = new QTimer( this );
390 connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) ); 391 connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) );
391 mEditorDialog = 0; 392 mEditorDialog = 0;
392 createAddresseeEditorDialog( this ); 393 createAddresseeEditorDialog( this );
393 setModified( false ); 394 setModified( false );
394 mBRdisabled = false; 395 mBRdisabled = false;
395#ifndef DESKTOP_VERSION 396#ifndef DESKTOP_VERSION
396 infrared = 0; 397 infrared = 0;
397#endif 398#endif
398 //toggleBeamReceive( ); 399 //toggleBeamReceive( );
399 //mMainWindow->toolBar()->show(); 400 //mMainWindow->toolBar()->show();
400 // we have a toolbar repainting error on the Zaurus when starting KA/Pi 401 // we have a toolbar repainting error on the Zaurus when starting KA/Pi
401 QTimer::singleShot( 10, this , SLOT ( updateToolBar())); 402 QTimer::singleShot( 10, this , SLOT ( updateToolBar()));
402} 403}
403 404
404void KABCore::updateToolBar() 405void KABCore::updateToolBar()
405{ 406{
406 static int iii = 0; 407 static int iii = 0;
407 ++iii; 408 ++iii;
408 mMainWindow->toolBar()->repaintMe(); 409 mMainWindow->toolBar()->repaintMe();
409 if ( iii < 3 ) 410 if ( iii < 3 )
410 QTimer::singleShot( 10, this , SLOT ( updateToolBar())); 411 QTimer::singleShot( 10, this , SLOT ( updateToolBar()));
411} 412}
412KABCore::~KABCore() 413KABCore::~KABCore()
413{ 414{
414 // save(); 415 // save();
415 //saveSettings(); 416 //saveSettings();
416 //KABPrefs::instance()->writeConfig(); 417 //KABPrefs::instance()->writeConfig();
417 delete AddresseeConfig::instance(); 418 delete AddresseeConfig::instance();
418 mAddressBook = 0; 419 mAddressBook = 0;
419 KABC::StdAddressBook::close(); 420 KABC::StdAddressBook::close();
420 421
421 delete syncManager; 422 delete syncManager;
422#ifndef DESKTOP_VERSION 423#ifndef DESKTOP_VERSION
423 if ( infrared ) 424 if ( infrared )
424 delete infrared; 425 delete infrared;
425#endif 426#endif
426} 427}
427void KABCore::receive( const QCString& cmsg, const QByteArray& data ) 428void KABCore::receive( const QCString& cmsg, const QByteArray& data )
428{ 429{
429 qDebug("KA: QCOP message received: %s ", cmsg.data() ); 430 qDebug("KA: QCOP message received: %s ", cmsg.data() );
430 if ( cmsg == "setDocument(QString)" ) { 431 if ( cmsg == "setDocument(QString)" ) {
431 QDataStream stream( data, IO_ReadOnly ); 432 QDataStream stream( data, IO_ReadOnly );
432 QString fileName; 433 QString fileName;
433 stream >> fileName; 434 stream >> fileName;
434 recieve( fileName ); 435 recieve( fileName );
435 return; 436 return;
436 } 437 }
437} 438}
438void KABCore::toggleBeamReceive( ) 439void KABCore::toggleBeamReceive( )
439{ 440{
440 if ( mBRdisabled ) 441 if ( mBRdisabled )
441 return; 442 return;
442#ifndef DESKTOP_VERSION 443#ifndef DESKTOP_VERSION
443 if ( infrared ) { 444 if ( infrared ) {
444 qDebug("AB disable BeamReceive "); 445 qDebug("AB disable BeamReceive ");
445 delete infrared; 446 delete infrared;
446 infrared = 0; 447 infrared = 0;
447 mActionBR->setChecked(false); 448 mActionBR->setChecked(false);
448 return; 449 return;
449 } 450 }
450 qDebug("AB enable BeamReceive "); 451 qDebug("AB enable BeamReceive ");
451 mActionBR->setChecked(true); 452 mActionBR->setChecked(true);
452 453
453 infrared = new QCopChannel("QPE/Application/addressbook",this, "channelAB" ) ; 454 infrared = new QCopChannel("QPE/Application/addressbook",this, "channelAB" ) ;
454 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(receive( const QCString&, const QByteArray& ))); 455 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(receive( const QCString&, const QByteArray& )));
455#endif 456#endif
456} 457}
457 458
458 459
459void KABCore::disableBR(bool b) 460void KABCore::disableBR(bool b)
460{ 461{
461#ifndef DESKTOP_VERSION 462#ifndef DESKTOP_VERSION
462 if ( b ) { 463 if ( b ) {
463 if ( infrared ) { 464 if ( infrared ) {
464 toggleBeamReceive( ); 465 toggleBeamReceive( );
465 } 466 }
466 mBRdisabled = true; 467 mBRdisabled = true;
467 } else { 468 } else {
468 if ( mBRdisabled ) { 469 if ( mBRdisabled ) {
469 mBRdisabled = false; 470 mBRdisabled = false;
470 //toggleBeamReceive( ); 471 //toggleBeamReceive( );
471 } 472 }
472 } 473 }
473#endif 474#endif
474 475
475} 476}
476void KABCore::recieve( QString fn ) 477void KABCore::recieve( QString fn )
477{ 478{
478 //qDebug("KABCore::recieve "); 479 //qDebug("KABCore::recieve ");
479 int count = mAddressBook->importFromFile( fn, true ); 480 int count = mAddressBook->importFromFile( fn, true );
480 if ( count ) 481 if ( count )
481 setModified( true ); 482 setModified( true );
482 mViewManager->refreshView(); 483 mViewManager->refreshView();
483 message(i18n("%1 contact(s) received!").arg( count )); 484 message(i18n("%1 contact(s) received!").arg( count ));
484 topLevelWidget()->showMaximized(); 485 topLevelWidget()->showMaximized();
485 topLevelWidget()->raise(); 486 topLevelWidget()->raise();
486} 487}
487void KABCore::restoreSettings() 488void KABCore::restoreSettings()
488{ 489{
489 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce; 490 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce;
490 491
491 bool state; 492 bool state;
492 493
493 if (mMultipleViewsAtOnce) 494 if (mMultipleViewsAtOnce)
494 state = KABPrefs::instance()->mDetailsPageVisible; 495 state = KABPrefs::instance()->mDetailsPageVisible;
495 else 496 else
496 state = false; 497 state = false;
497 498
498 mActionDetails->setChecked( state ); 499 mActionDetails->setChecked( state );
499 setDetailsVisible( state ); 500 setDetailsVisible( state );
500 501
501 state = KABPrefs::instance()->mJumpButtonBarVisible; 502 state = KABPrefs::instance()->mJumpButtonBarVisible;
502 503
503 mActionJumpBar->setChecked( state ); 504 mActionJumpBar->setChecked( state );
504 setJumpButtonBarVisible( state ); 505 setJumpButtonBarVisible( state );
505/*US 506/*US
506 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; 507 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter;
507 if ( splitterSize.count() == 0 ) { 508 if ( splitterSize.count() == 0 ) {
508 splitterSize.append( width() / 2 ); 509 splitterSize.append( width() / 2 );
509 splitterSize.append( width() / 2 ); 510 splitterSize.append( width() / 2 );
510 } 511 }
511 mMiniSplitter->setSizes( splitterSize ); 512 mMiniSplitter->setSizes( splitterSize );
512 if ( mExtensionBarSplitter ) { 513 if ( mExtensionBarSplitter ) {
513 splitterSize = KABPrefs::instance()->mExtensionsSplitter; 514 splitterSize = KABPrefs::instance()->mExtensionsSplitter;
514 if ( splitterSize.count() == 0 ) { 515 if ( splitterSize.count() == 0 ) {
515 splitterSize.append( width() / 2 ); 516 splitterSize.append( width() / 2 );
516 splitterSize.append( width() / 2 ); 517 splitterSize.append( width() / 2 );
517 } 518 }
518 mExtensionBarSplitter->setSizes( splitterSize ); 519 mExtensionBarSplitter->setSizes( splitterSize );
519 520
520 } 521 }
521*/ 522*/
522 mViewManager->restoreSettings(); 523 mViewManager->restoreSettings();
523 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField ); 524 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField );
524 mExtensionManager->restoreSettings(); 525 mExtensionManager->restoreSettings();
525#ifdef DESKTOP_VERSION 526#ifdef DESKTOP_VERSION
526 int wid = width(); 527 int wid = width();
527 if ( wid < 10 ) 528 if ( wid < 10 )
528 wid = 400; 529 wid = 400;
529#else 530#else
530 int wid = QApplication::desktop()->width(); 531 int wid = QApplication::desktop()->width();
531 if ( wid < 640 ) 532 if ( wid < 640 )
532 wid = QApplication::desktop()->height(); 533 wid = QApplication::desktop()->height();
533#endif 534#endif
534 QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter; 535 QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter;
535 if ( true /*splitterSize.count() == 0*/ ) { 536 if ( true /*splitterSize.count() == 0*/ ) {
536 splitterSize.append( wid / 2 ); 537 splitterSize.append( wid / 2 );
537 splitterSize.append( wid / 2 ); 538 splitterSize.append( wid / 2 );
538 } 539 }
539 mMiniSplitter->setSizes( splitterSize ); 540 mMiniSplitter->setSizes( splitterSize );
540 if ( mExtensionBarSplitter ) { 541 if ( mExtensionBarSplitter ) {
541 //splitterSize = KABPrefs::instance()->mExtensionsSplitter; 542 //splitterSize = KABPrefs::instance()->mExtensionsSplitter;
542 if ( true /*splitterSize.count() == 0*/ ) { 543 if ( true /*splitterSize.count() == 0*/ ) {
543 splitterSize.append( wid / 2 ); 544 splitterSize.append( wid / 2 );
544 splitterSize.append( wid / 2 ); 545 splitterSize.append( wid / 2 );
545 } 546 }
546 mExtensionBarSplitter->setSizes( splitterSize ); 547 mExtensionBarSplitter->setSizes( splitterSize );
547 548
548 } 549 }
549 550
550 551
551} 552}
552 553
553void KABCore::saveSettings() 554void KABCore::saveSettings()
554{ 555{
555 KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked(); 556 KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked();
556 if ( mExtensionBarSplitter ) 557 if ( mExtensionBarSplitter )
557 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); 558 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes();
558 KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked(); 559 KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked();
559 KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes(); 560 KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes();
560#ifndef KAB_EMBEDDED 561#ifndef KAB_EMBEDDED
561 562
562 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); 563 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes();
563 KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes(); 564 KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes();
564#endif //KAB_EMBEDDED 565#endif //KAB_EMBEDDED
565 mExtensionManager->saveSettings(); 566 mExtensionManager->saveSettings();
566 mViewManager->saveSettings(); 567 mViewManager->saveSettings();
567 568
568 KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem(); 569 KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem();
569 KABPrefs::instance()->writeConfig(); 570 KABPrefs::instance()->writeConfig();
570 qDebug("KABCore::saveSettings() "); 571 qDebug("KABCore::saveSettings() ");
571} 572}
572 573
573KABC::AddressBook *KABCore::addressBook() const 574KABC::AddressBook *KABCore::addressBook() const
574{ 575{
575 return mAddressBook; 576 return mAddressBook;
576} 577}
577 578
578KConfig *KABCore::config() 579KConfig *KABCore::config()
579{ 580{
580#ifndef KAB_EMBEDDED 581#ifndef KAB_EMBEDDED
581 return KABPrefs::instance()->config(); 582 return KABPrefs::instance()->config();
582#else //KAB_EMBEDDED 583#else //KAB_EMBEDDED
583 return KABPrefs::instance()->getConfig(); 584 return KABPrefs::instance()->getConfig();
584#endif //KAB_EMBEDDED 585#endif //KAB_EMBEDDED
585} 586}
586 587
587KActionCollection *KABCore::actionCollection() const 588KActionCollection *KABCore::actionCollection() const
588{ 589{
589 return mGUIClient->actionCollection(); 590 return mGUIClient->actionCollection();
590} 591}
591 592
592KABC::Field *KABCore::currentSearchField() const 593KABC::Field *KABCore::currentSearchField() const
593{ 594{
594 if (mIncSearchWidget) 595 if (mIncSearchWidget)
595 return mIncSearchWidget->currentField(); 596 return mIncSearchWidget->currentField();
596 else 597 else
597 return 0; 598 return 0;
598} 599}
599 600
600QStringList KABCore::selectedUIDs() const 601QStringList KABCore::selectedUIDs() const
601{ 602{
602 return mViewManager->selectedUids(); 603 return mViewManager->selectedUids();
603} 604}
604 605
605KABC::Resource *KABCore::requestResource( QWidget *parent ) 606KABC::Resource *KABCore::requestResource( QWidget *parent )
606{ 607{
607 QPtrList<KABC::Resource> kabcResources = addressBook()->resources(); 608 QPtrList<KABC::Resource> kabcResources = addressBook()->resources();
608 609
609 QPtrList<KRES::Resource> kresResources; 610 QPtrList<KRES::Resource> kresResources;
610 QPtrListIterator<KABC::Resource> resIt( kabcResources ); 611 QPtrListIterator<KABC::Resource> resIt( kabcResources );
611 KABC::Resource *resource; 612 KABC::Resource *resource;
612 while ( ( resource = resIt.current() ) != 0 ) { 613 while ( ( resource = resIt.current() ) != 0 ) {
613 ++resIt; 614 ++resIt;
614 if ( !resource->readOnly() ) { 615 if ( !resource->readOnly() ) {
615 KRES::Resource *res = static_cast<KRES::Resource*>( resource ); 616 KRES::Resource *res = static_cast<KRES::Resource*>( resource );
616 if ( res ) 617 if ( res )
617 kresResources.append( res ); 618 kresResources.append( res );
618 } 619 }
619 } 620 }
620 621
621 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, parent ); 622 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, parent );
622 return static_cast<KABC::Resource*>( res ); 623 return static_cast<KABC::Resource*>( res );
623} 624}
624 625
625#ifndef KAB_EMBEDDED 626#ifndef KAB_EMBEDDED
626KAboutData *KABCore::createAboutData() 627KAboutData *KABCore::createAboutData()
627#else //KAB_EMBEDDED 628#else //KAB_EMBEDDED
628void KABCore::createAboutData() 629void KABCore::createAboutData()
629#endif //KAB_EMBEDDED 630#endif //KAB_EMBEDDED
630{ 631{
631#ifndef KAB_EMBEDDED 632#ifndef KAB_EMBEDDED
632 KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ), 633 KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ),
633 "3.1", I18N_NOOP( "The KDE Address Book" ), 634 "3.1", I18N_NOOP( "The KDE Address Book" ),
634 KAboutData::License_GPL_V2, 635 KAboutData::License_GPL_V2,
635 I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) ); 636 I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) );
636 about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" ); 637 about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" );
637 about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) ); 638 about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) );
638 about->addAuthor( "Cornelius Schumacher", 639 about->addAuthor( "Cornelius Schumacher",
639 I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ), 640 I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ),
640 "schumacher@kde.org" ); 641 "schumacher@kde.org" );
641 about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ), 642 about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ),
642 "mpilone@slac.com" ); 643 "mpilone@slac.com" );
643 about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) ); 644 about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) );
644 about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) ); 645 about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) );
645 about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ), 646 about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ),
646 "michel@klaralvdalens-datakonsult.se" ); 647 "michel@klaralvdalens-datakonsult.se" );
647 about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ), 648 about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ),
648 "hansen@kde.org" ); 649 "hansen@kde.org" );
649 650
650 return about; 651 return about;
651#endif //KAB_EMBEDDED 652#endif //KAB_EMBEDDED
652 653
653 QString version; 654 QString version;
654#include <../version> 655#include <../version>
655 QMessageBox::about( this, "About KAddressbook/Pi", 656 QMessageBox::about( this, "About KAddressbook/Pi",
656 "KAddressbook/Platform-independent\n" 657 "KAddressbook/Platform-independent\n"
657 "(KA/Pi) " +version + " - " + 658 "(KA/Pi) " +version + " - " +
658#ifdef DESKTOP_VERSION 659#ifdef DESKTOP_VERSION
659 "Desktop Edition\n" 660 "Desktop Edition\n"
660#else 661#else
661 "PDA-Edition\n" 662 "PDA-Edition\n"
662 "for: Zaurus 5500 / 7x0 / 8x0\n" 663 "for: Zaurus 5500 / 7x0 / 8x0\n"
663#endif 664#endif
664 665
665 "(c) 2004 Ulf Schenk\n" 666 "(c) 2004 Ulf Schenk\n"
666 "(c) 2004 Lutz Rogowski\n" 667 "(c) 2004 Lutz Rogowski\n"
667 "(c) 1997-2003, The KDE PIM Team\n" 668 "(c) 1997-2003, The KDE PIM Team\n"
668 "Tobias Koenig Current maintainer\ntokoe@kde.org\n" 669 "Tobias Koenig Current maintainer\ntokoe@kde.org\n"
669 "Don Sanders Original author\n" 670 "Don Sanders Original author\n"
670 "Cornelius Schumacher Co-maintainer\nschumacher@kde.org\n" 671 "Cornelius Schumacher Co-maintainer\nschumacher@kde.org\n"
671 "Mike Pilone GUI and framework redesign\nmpilone@slac.com\n" 672 "Mike Pilone GUI and framework redesign\nmpilone@slac.com\n"
@@ -782,1956 +783,1956 @@ void KABCore::mailVCard( const QStringList& uids )
782 outFile.close(); 783 outFile.close();
783 784
784 urls.append( fileName ); 785 urls.append( fileName );
785 } 786 }
786 } 787 }
787 788
788 bool result = ExternalAppHandler::instance()->mailToMultipleContacts( QString::null, urls.join(", ") ); 789 bool result = ExternalAppHandler::instance()->mailToMultipleContacts( QString::null, urls.join(", ") );
789 790
790 791
791/*US 792/*US
792 kapp->invokeMailer( QString::null, QString::null, QString::null, 793 kapp->invokeMailer( QString::null, QString::null, QString::null,
793 QString::null, // subject 794 QString::null, // subject
794 QString::null, // body 795 QString::null, // body
795 QString::null, 796 QString::null,
796 urls ); // attachments 797 urls ); // attachments
797*/ 798*/
798 799
799} 800}
800 801
801/** 802/**
802 Beams the "WhoAmI contact. 803 Beams the "WhoAmI contact.
803*/ 804*/
804void KABCore::beamMySelf() 805void KABCore::beamMySelf()
805{ 806{
806 KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI(); 807 KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI();
807 if (!a.isEmpty()) 808 if (!a.isEmpty())
808 { 809 {
809 QStringList uids; 810 QStringList uids;
810 uids << a.uid(); 811 uids << a.uid();
811 812
812 beamVCard(uids); 813 beamVCard(uids);
813 } else { 814 } else {
814 KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) ); 815 KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) );
815 816
816 817
817 } 818 }
818} 819}
819void KABCore::updateMainWindow() 820void KABCore::updateMainWindow()
820{ 821{
821 822
822 mMainWindow->showMaximized(); 823 mMainWindow->showMaximized();
823 mMainWindow->update(); 824 mMainWindow->update();
824} 825}
825void KABCore::resizeEvent(QResizeEvent* e ) 826void KABCore::resizeEvent(QResizeEvent* e )
826{ 827{
827 if ( !mMiniSplitter ) 828 if ( !mMiniSplitter )
828 return; 829 return;
829 //qDebug("KABCore::resizeEvent(QResizeEvent* e ) "); 830 //qDebug("KABCore::resizeEvent(QResizeEvent* e ) ");
830 if ( QApplication::desktop()->width() >= 480 ) { 831 if ( QApplication::desktop()->width() >= 480 ) {
831 if (QApplication::desktop()->width() == 640 ) { // e.g. 640x480 832 if (QApplication::desktop()->width() == 640 ) { // e.g. 640x480
832 if ( mMiniSplitter->orientation() == Qt::Vertical ) { 833 if ( mMiniSplitter->orientation() == Qt::Vertical ) {
833 mMiniSplitter->setOrientation( Qt::Horizontal); 834 mMiniSplitter->setOrientation( Qt::Horizontal);
834 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 835 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
835 if ( QApplication::desktop()->width() <= 640 ) { 836 if ( QApplication::desktop()->width() <= 640 ) {
836 //mMainWindow->setMaximumSize( QApplication::desktop()->size() ); 837 //mMainWindow->setMaximumSize( QApplication::desktop()->size() );
837 mViewManager->getFilterAction()->setComboWidth( 150 ); 838 mViewManager->getFilterAction()->setComboWidth( 150 );
838 QTimer::singleShot( 1, this , SLOT ( updateMainWindow())); 839 QTimer::singleShot( 1, this , SLOT ( updateMainWindow()));
839 } 840 }
840 } 841 }
841 } else if (QApplication::desktop()->width() == 480 ){// e.g. 480x640 842 } else if (QApplication::desktop()->width() == 480 ){// e.g. 480x640
842 if ( mMiniSplitter->orientation() == Qt::Horizontal ) { 843 if ( mMiniSplitter->orientation() == Qt::Horizontal ) {
843 mMiniSplitter->setOrientation( Qt::Vertical ); 844 mMiniSplitter->setOrientation( Qt::Vertical );
844 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 845 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
845 if ( QApplication::desktop()->width() <= 640 ) { 846 if ( QApplication::desktop()->width() <= 640 ) {
846 //mMainWindow->setMaximumSize( QApplication::desktop()->size() ); 847 //mMainWindow->setMaximumSize( QApplication::desktop()->size() );
847 mMainWindow->showMinimized(); 848 mMainWindow->showMinimized();
848 mViewManager->getFilterAction()->setComboWidth( 0 ); 849 mViewManager->getFilterAction()->setComboWidth( 0 );
849 QTimer::singleShot( 1, this , SLOT ( updateMainWindow())); 850 QTimer::singleShot( 1, this , SLOT ( updateMainWindow()));
850 } 851 }
851 } 852 }
852 } 853 }
853 } 854 }
854 855
855} 856}
856void KABCore::export2phone() 857void KABCore::export2phone()
857{ 858{
858 859
859 QStringList uids; 860 QStringList uids;
860 XXPortSelectDialog dlg( this, false, this ); 861 XXPortSelectDialog dlg( this, false, this );
861 if ( dlg.exec() ) 862 if ( dlg.exec() )
862 uids = dlg.uids(); 863 uids = dlg.uids();
863 else 864 else
864 return; 865 return;
865 if ( uids.isEmpty() ) 866 if ( uids.isEmpty() )
866 return; 867 return;
867 // qDebug("count %d ", uids.count()); 868 // qDebug("count %d ", uids.count());
868 869
869 KAex2phonePrefs ex2phone; 870 KAex2phonePrefs ex2phone;
870 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection ); 871 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection );
871 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice ); 872 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice );
872 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel ); 873 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel );
873 874
874 if ( !ex2phone.exec() ) { 875 if ( !ex2phone.exec() ) {
875 return; 876 return;
876 } 877 }
877 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text(); 878 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
878 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text(); 879 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
879 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text(); 880 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
880 881
881 882
882 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice, 883 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice,
883 KPimGlobalPrefs::instance()->mEx2PhoneConnection, 884 KPimGlobalPrefs::instance()->mEx2PhoneConnection,
884 KPimGlobalPrefs::instance()->mEx2PhoneModel ); 885 KPimGlobalPrefs::instance()->mEx2PhoneModel );
885 886
886 QString fileName = getPhoneFile(); 887 QString fileName = getPhoneFile();
887 if ( ! mAddressBook->export2PhoneFormat( uids ,fileName ) ) 888 if ( ! mAddressBook->export2PhoneFormat( uids ,fileName ) )
888 return; 889 return;
889 890
890 message(i18n("Exporting to phone...")); 891 message(i18n("Exporting to phone..."));
891 QTimer::singleShot( 1, this , SLOT ( writeToPhone())); 892 QTimer::singleShot( 1, this , SLOT ( writeToPhone()));
892 893
893} 894}
894QString KABCore::getPhoneFile() 895QString KABCore::getPhoneFile()
895{ 896{
896#ifdef DESKTOP_VERSION 897#ifdef DESKTOP_VERSION
897 return locateLocal("tmp", "phonefile.vcf"); 898 return locateLocal("tmp", "phonefile.vcf");
898#else 899#else
899 return "/tmp/phonefile.vcf"; 900 return "/tmp/phonefile.vcf";
900#endif 901#endif
901 902
902} 903}
903void KABCore::writeToPhone( ) 904void KABCore::writeToPhone( )
904{ 905{
905 if ( PhoneAccess::writeToPhone( getPhoneFile() ) ) 906 if ( PhoneAccess::writeToPhone( getPhoneFile() ) )
906 message(i18n("Export to phone finished!")); 907 message(i18n("Export to phone finished!"));
907 else 908 else
908 qDebug(i18n("Error exporting to phone")); 909 qDebug(i18n("Error exporting to phone"));
909} 910}
910void KABCore::beamVCard() 911void KABCore::beamVCard()
911{ 912{
912 QStringList uids; 913 QStringList uids;
913 XXPortSelectDialog dlg( this, false, this ); 914 XXPortSelectDialog dlg( this, false, this );
914 if ( dlg.exec() ) 915 if ( dlg.exec() )
915 uids = dlg.uids(); 916 uids = dlg.uids();
916 else 917 else
917 return; 918 return;
918 if ( uids.isEmpty() ) 919 if ( uids.isEmpty() )
919 return; 920 return;
920 beamVCard( uids ); 921 beamVCard( uids );
921} 922}
922 923
923 924
924void KABCore::beamVCard(const QStringList& uids) 925void KABCore::beamVCard(const QStringList& uids)
925{ 926{
926 927
927 // LR: we should use the /tmp dir on the Zaurus, 928 // LR: we should use the /tmp dir on the Zaurus,
928 // because: /tmp = RAM, (HOME)/kdepim = flash memory 929 // because: /tmp = RAM, (HOME)/kdepim = flash memory
929 930
930#ifdef DESKTOP_VERSION 931#ifdef DESKTOP_VERSION
931 QString fileName = locateLocal("tmp", "kapibeamfile.vcf"); 932 QString fileName = locateLocal("tmp", "kapibeamfile.vcf");
932#else 933#else
933 QString fileName = "/tmp/kapibeamfile.vcf"; 934 QString fileName = "/tmp/kapibeamfile.vcf";
934#endif 935#endif
935 936
936 KABC::VCardConverter converter; 937 KABC::VCardConverter converter;
937 QString description; 938 QString description;
938 QString datastream; 939 QString datastream;
939 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { 940 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) {
940 KABC::Addressee a = mAddressBook->findByUid( *it ); 941 KABC::Addressee a = mAddressBook->findByUid( *it );
941 942
942 if ( a.isEmpty() ) 943 if ( a.isEmpty() )
943 continue; 944 continue;
944 945
945 if (description.isEmpty()) 946 if (description.isEmpty())
946 description = a.formattedName(); 947 description = a.formattedName();
947 948
948 QString vcard; 949 QString vcard;
949 converter.addresseeToVCard( a, vcard ); 950 converter.addresseeToVCard( a, vcard );
950 int start = 0; 951 int start = 0;
951 int next; 952 int next;
952 while ( (next = vcard.find("TYPE=", start) )>= 0 ) { 953 while ( (next = vcard.find("TYPE=", start) )>= 0 ) {
953 int semi = vcard.find(";", next); 954 int semi = vcard.find(";", next);
954 int dopp = vcard.find(":", next); 955 int dopp = vcard.find(":", next);
955 int sep; 956 int sep;
956 if ( semi < dopp && semi >= 0 ) 957 if ( semi < dopp && semi >= 0 )
957 sep = semi ; 958 sep = semi ;
958 else 959 else
959 sep = dopp; 960 sep = dopp;
960 datastream +=vcard.mid( start, next - start); 961 datastream +=vcard.mid( start, next - start);
961 datastream +=vcard.mid( next+5,sep -next -5 ).upper(); 962 datastream +=vcard.mid( next+5,sep -next -5 ).upper();
962 start = sep; 963 start = sep;
963 } 964 }
964 datastream += vcard.mid( start,vcard.length() ); 965 datastream += vcard.mid( start,vcard.length() );
965 } 966 }
966#ifndef DESKTOP_VERSION 967#ifndef DESKTOP_VERSION
967 QFile outFile(fileName); 968 QFile outFile(fileName);
968 if ( outFile.open(IO_WriteOnly) ) { 969 if ( outFile.open(IO_WriteOnly) ) {
969 datastream.replace ( QRegExp("VERSION:3.0") , "VERSION:2.1" ); 970 datastream.replace ( QRegExp("VERSION:3.0") , "VERSION:2.1" );
970 QTextStream t( &outFile ); // use a text stream 971 QTextStream t( &outFile ); // use a text stream
971 //t.setEncoding( QTextStream::UnicodeUTF8 ); 972 //t.setEncoding( QTextStream::UnicodeUTF8 );
972 t.setEncoding( QTextStream::Latin1 ); 973 t.setEncoding( QTextStream::Latin1 );
973 t <<datastream.latin1(); 974 t <<datastream.latin1();
974 outFile.close(); 975 outFile.close();
975 Ir *ir = new Ir( this ); 976 Ir *ir = new Ir( this );
976 connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) ); 977 connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) );
977 ir->send( fileName, description, "text/x-vCard" ); 978 ir->send( fileName, description, "text/x-vCard" );
978 } else { 979 } else {
979 qDebug("Error open temp beam file "); 980 qDebug("Error open temp beam file ");
980 return; 981 return;
981 } 982 }
982#endif 983#endif
983 984
984} 985}
985 986
986void KABCore::beamDone( Ir *ir ) 987void KABCore::beamDone( Ir *ir )
987{ 988{
988#ifndef DESKTOP_VERSION 989#ifndef DESKTOP_VERSION
989 delete ir; 990 delete ir;
990#endif 991#endif
991 topLevelWidget()->raise(); 992 topLevelWidget()->raise();
992 message( i18n("Beaming finished!") ); 993 message( i18n("Beaming finished!") );
993} 994}
994 995
995 996
996void KABCore::browse( const QString& url ) 997void KABCore::browse( const QString& url )
997{ 998{
998#ifndef KAB_EMBEDDED 999#ifndef KAB_EMBEDDED
999 kapp->invokeBrowser( url ); 1000 kapp->invokeBrowser( url );
1000#else //KAB_EMBEDDED 1001#else //KAB_EMBEDDED
1001 qDebug("KABCore::browse must be fixed"); 1002 qDebug("KABCore::browse must be fixed");
1002#endif //KAB_EMBEDDED 1003#endif //KAB_EMBEDDED
1003} 1004}
1004 1005
1005void KABCore::selectAllContacts() 1006void KABCore::selectAllContacts()
1006{ 1007{
1007 mViewManager->setSelected( QString::null, true ); 1008 mViewManager->setSelected( QString::null, true );
1008} 1009}
1009 1010
1010void KABCore::deleteContacts() 1011void KABCore::deleteContacts()
1011{ 1012{
1012 QStringList uidList = mViewManager->selectedUids(); 1013 QStringList uidList = mViewManager->selectedUids();
1013 deleteContacts( uidList ); 1014 deleteContacts( uidList );
1014} 1015}
1015 1016
1016void KABCore::deleteContacts( const QStringList &uids ) 1017void KABCore::deleteContacts( const QStringList &uids )
1017{ 1018{
1018 if ( uids.count() > 0 ) { 1019 if ( uids.count() > 0 ) {
1019 PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids ); 1020 PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids );
1020 UndoStack::instance()->push( command ); 1021 UndoStack::instance()->push( command );
1021 RedoStack::instance()->clear(); 1022 RedoStack::instance()->clear();
1022 1023
1023 // now if we deleted anything, refresh 1024 // now if we deleted anything, refresh
1024 setContactSelected( QString::null ); 1025 setContactSelected( QString::null );
1025 setModified( true ); 1026 setModified( true );
1026 } 1027 }
1027} 1028}
1028 1029
1029void KABCore::copyContacts() 1030void KABCore::copyContacts()
1030{ 1031{
1031 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 1032 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
1032 1033
1033 QString clipText = AddresseeUtil::addresseesToClipboard( addrList ); 1034 QString clipText = AddresseeUtil::addresseesToClipboard( addrList );
1034 1035
1035 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl; 1036 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl;
1036 1037
1037 QClipboard *cb = QApplication::clipboard(); 1038 QClipboard *cb = QApplication::clipboard();
1038 cb->setText( clipText ); 1039 cb->setText( clipText );
1039} 1040}
1040 1041
1041void KABCore::cutContacts() 1042void KABCore::cutContacts()
1042{ 1043{
1043 QStringList uidList = mViewManager->selectedUids(); 1044 QStringList uidList = mViewManager->selectedUids();
1044 1045
1045//US if ( uidList.size() > 0 ) { 1046//US if ( uidList.size() > 0 ) {
1046 if ( uidList.count() > 0 ) { 1047 if ( uidList.count() > 0 ) {
1047 PwCutCommand *command = new PwCutCommand( mAddressBook, uidList ); 1048 PwCutCommand *command = new PwCutCommand( mAddressBook, uidList );
1048 UndoStack::instance()->push( command ); 1049 UndoStack::instance()->push( command );
1049 RedoStack::instance()->clear(); 1050 RedoStack::instance()->clear();
1050 1051
1051 setModified( true ); 1052 setModified( true );
1052 } 1053 }
1053} 1054}
1054 1055
1055void KABCore::pasteContacts() 1056void KABCore::pasteContacts()
1056{ 1057{
1057 QClipboard *cb = QApplication::clipboard(); 1058 QClipboard *cb = QApplication::clipboard();
1058 1059
1059 KABC::Addressee::List list = AddresseeUtil::clipboardToAddressees( cb->text() ); 1060 KABC::Addressee::List list = AddresseeUtil::clipboardToAddressees( cb->text() );
1060 1061
1061 pasteContacts( list ); 1062 pasteContacts( list );
1062} 1063}
1063 1064
1064void KABCore::pasteContacts( KABC::Addressee::List &list ) 1065void KABCore::pasteContacts( KABC::Addressee::List &list )
1065{ 1066{
1066 KABC::Resource *resource = requestResource( this ); 1067 KABC::Resource *resource = requestResource( this );
1067 KABC::Addressee::List::Iterator it; 1068 KABC::Addressee::List::Iterator it;
1068 for ( it = list.begin(); it != list.end(); ++it ) 1069 for ( it = list.begin(); it != list.end(); ++it )
1069 (*it).setResource( resource ); 1070 (*it).setResource( resource );
1070 1071
1071 PwPasteCommand *command = new PwPasteCommand( this, list ); 1072 PwPasteCommand *command = new PwPasteCommand( this, list );
1072 UndoStack::instance()->push( command ); 1073 UndoStack::instance()->push( command );
1073 RedoStack::instance()->clear(); 1074 RedoStack::instance()->clear();
1074 1075
1075 setModified( true ); 1076 setModified( true );
1076} 1077}
1077 1078
1078void KABCore::setWhoAmI() 1079void KABCore::setWhoAmI()
1079{ 1080{
1080 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 1081 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
1081 1082
1082 if ( addrList.count() > 1 ) { 1083 if ( addrList.count() > 1 ) {
1083 KMessageBox::sorry( this, i18n( "Please select only one contact." ) ); 1084 KMessageBox::sorry( this, i18n( "Please select only one contact." ) );
1084 return; 1085 return;
1085 } 1086 }
1086 1087
1087 QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) ); 1088 QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) );
1088 if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].assembledName() ) ) == KMessageBox::Yes ) 1089 if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].assembledName() ) ) == KMessageBox::Yes )
1089 static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] ); 1090 static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] );
1090} 1091}
1091void KABCore::editCategories() 1092void KABCore::editCategories()
1092{ 1093{
1093 KPIM::CategoryEditDialog dlg ( KABPrefs::instance(), this, "", true ); 1094 KPIM::CategoryEditDialog dlg ( KABPrefs::instance(), this, "", true );
1094 dlg.exec(); 1095 dlg.exec();
1095} 1096}
1096void KABCore::setCategories() 1097void KABCore::setCategories()
1097{ 1098{
1098 1099
1099 QStringList uids; 1100 QStringList uids;
1100 XXPortSelectDialog dlgx( this, false, this ); 1101 XXPortSelectDialog dlgx( this, false, this );
1101 if ( dlgx.exec() ) 1102 if ( dlgx.exec() )
1102 uids = dlgx.uids(); 1103 uids = dlgx.uids();
1103 else 1104 else
1104 return; 1105 return;
1105 if ( uids.isEmpty() ) 1106 if ( uids.isEmpty() )
1106 return; 1107 return;
1107 // qDebug("count %d ", uids.count()); 1108 // qDebug("count %d ", uids.count());
1108 1109
1109 1110
1110 KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true ); 1111 KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true );
1111 if ( !dlg.exec() ) { 1112 if ( !dlg.exec() ) {
1112 message( i18n("Setting categories cancelled") ); 1113 message( i18n("Setting categories cancelled") );
1113 return; 1114 return;
1114 } 1115 }
1115 bool merge = false; 1116 bool merge = false;
1116 QString msg = i18n( "Merge with existing categories?" ); 1117 QString msg = i18n( "Merge with existing categories?" );
1117 if ( KMessageBox::questionYesNo( this, msg ) == KMessageBox::Yes ) 1118 if ( KMessageBox::questionYesNo( this, msg ) == KMessageBox::Yes )
1118 merge = true; 1119 merge = true;
1119 1120
1120 message( i18n("Setting categories ... please wait!") ); 1121 message( i18n("Setting categories ... please wait!") );
1121 QStringList categories = dlg.selectedCategories(); 1122 QStringList categories = dlg.selectedCategories();
1122 1123
1123 //QStringList uids = mViewManager->selectedUids(); 1124 //QStringList uids = mViewManager->selectedUids();
1124 QStringList::Iterator it; 1125 QStringList::Iterator it;
1125 for ( it = uids.begin(); it != uids.end(); ++it ) { 1126 for ( it = uids.begin(); it != uids.end(); ++it ) {
1126 KABC::Addressee addr = mAddressBook->findByUid( *it ); 1127 KABC::Addressee addr = mAddressBook->findByUid( *it );
1127 if ( !addr.isEmpty() ) { 1128 if ( !addr.isEmpty() ) {
1128 if ( !merge ) 1129 if ( !merge )
1129 addr.setCategories( categories ); 1130 addr.setCategories( categories );
1130 else { 1131 else {
1131 QStringList addrCategories = addr.categories(); 1132 QStringList addrCategories = addr.categories();
1132 QStringList::Iterator catIt; 1133 QStringList::Iterator catIt;
1133 for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) { 1134 for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) {
1134 if ( !addrCategories.contains( *catIt ) ) 1135 if ( !addrCategories.contains( *catIt ) )
1135 addrCategories.append( *catIt ); 1136 addrCategories.append( *catIt );
1136 } 1137 }
1137 addr.setCategories( addrCategories ); 1138 addr.setCategories( addrCategories );
1138 } 1139 }
1139 mAddressBook->insertAddressee( addr ); 1140 mAddressBook->insertAddressee( addr );
1140 } 1141 }
1141 } 1142 }
1142 1143
1143 if ( uids.count() > 0 ) 1144 if ( uids.count() > 0 )
1144 setModified( true ); 1145 setModified( true );
1145 message( i18n("Setting categories completed!") ); 1146 message( i18n("Setting categories completed!") );
1146} 1147}
1147 1148
1148void KABCore::setSearchFields( const KABC::Field::List &fields ) 1149void KABCore::setSearchFields( const KABC::Field::List &fields )
1149{ 1150{
1150 mIncSearchWidget->setFields( fields ); 1151 mIncSearchWidget->setFields( fields );
1151} 1152}
1152 1153
1153void KABCore::incrementalSearch( const QString& text ) 1154void KABCore::incrementalSearch( const QString& text )
1154{ 1155{
1155 mViewManager->doSearch( text, mIncSearchWidget->currentField() ); 1156 mViewManager->doSearch( text, mIncSearchWidget->currentField() );
1156} 1157}
1157 1158
1158void KABCore::setModified() 1159void KABCore::setModified()
1159{ 1160{
1160 setModified( true ); 1161 setModified( true );
1161} 1162}
1162 1163
1163void KABCore::setModifiedWOrefresh() 1164void KABCore::setModifiedWOrefresh()
1164{ 1165{
1165 // qDebug("KABCore::setModifiedWOrefresh() "); 1166 // qDebug("KABCore::setModifiedWOrefresh() ");
1166 mModified = true; 1167 mModified = true;
1167 mActionSave->setEnabled( mModified ); 1168 mActionSave->setEnabled( mModified );
1168 1169
1169 1170
1170} 1171}
1171void KABCore::setModified( bool modified ) 1172void KABCore::setModified( bool modified )
1172{ 1173{
1173 mModified = modified; 1174 mModified = modified;
1174 mActionSave->setEnabled( mModified ); 1175 mActionSave->setEnabled( mModified );
1175 1176
1176 if ( modified ) 1177 if ( modified )
1177 mJumpButtonBar->recreateButtons(); 1178 mJumpButtonBar->recreateButtons();
1178 1179
1179 mViewManager->refreshView(); 1180 mViewManager->refreshView();
1180 1181
1181} 1182}
1182 1183
1183bool KABCore::modified() const 1184bool KABCore::modified() const
1184{ 1185{
1185 return mModified; 1186 return mModified;
1186} 1187}
1187 1188
1188void KABCore::contactModified( const KABC::Addressee &addr ) 1189void KABCore::contactModified( const KABC::Addressee &addr )
1189{ 1190{
1190 addrModified( addr ); 1191 addrModified( addr );
1191#if 0 // debug only 1192#if 0 // debug only
1192 KABC::Addressee ad = addr; 1193 KABC::Addressee ad = addr;
1193 ad.computeCsum( "123"); 1194 ad.computeCsum( "123");
1194#endif 1195#endif
1195} 1196}
1196 1197
1197void KABCore::addrModified( const KABC::Addressee &addr ,bool updateDetails ) 1198void KABCore::addrModified( const KABC::Addressee &addr ,bool updateDetails )
1198{ 1199{
1199 1200
1200 Command *command = 0; 1201 Command *command = 0;
1201 QString uid; 1202 QString uid;
1202 1203
1203 // check if it exists already 1204 // check if it exists already
1204 KABC::Addressee origAddr = mAddressBook->findByUid( addr.uid() ); 1205 KABC::Addressee origAddr = mAddressBook->findByUid( addr.uid() );
1205 if ( origAddr.isEmpty() ) 1206 if ( origAddr.isEmpty() )
1206 command = new PwNewCommand( mAddressBook, addr ); 1207 command = new PwNewCommand( mAddressBook, addr );
1207 else { 1208 else {
1208 command = new PwEditCommand( mAddressBook, origAddr, addr ); 1209 command = new PwEditCommand( mAddressBook, origAddr, addr );
1209 uid = addr.uid(); 1210 uid = addr.uid();
1210 } 1211 }
1211 1212
1212 UndoStack::instance()->push( command ); 1213 UndoStack::instance()->push( command );
1213 RedoStack::instance()->clear(); 1214 RedoStack::instance()->clear();
1214 if ( updateDetails ) 1215 if ( updateDetails )
1215 mDetails->setAddressee( addr ); 1216 mDetails->setAddressee( addr );
1216 setModified( true ); 1217 setModified( true );
1217} 1218}
1218 1219
1219void KABCore::newContact() 1220void KABCore::newContact()
1220{ 1221{
1221 1222
1222 1223
1223 QPtrList<KABC::Resource> kabcResources = mAddressBook->resources(); 1224 QPtrList<KABC::Resource> kabcResources = mAddressBook->resources();
1224 1225
1225 QPtrList<KRES::Resource> kresResources; 1226 QPtrList<KRES::Resource> kresResources;
1226 QPtrListIterator<KABC::Resource> it( kabcResources ); 1227 QPtrListIterator<KABC::Resource> it( kabcResources );
1227 KABC::Resource *resource; 1228 KABC::Resource *resource;
1228 while ( ( resource = it.current() ) != 0 ) { 1229 while ( ( resource = it.current() ) != 0 ) {
1229 ++it; 1230 ++it;
1230 if ( !resource->readOnly() ) { 1231 if ( !resource->readOnly() ) {
1231 KRES::Resource *res = static_cast<KRES::Resource*>( resource ); 1232 KRES::Resource *res = static_cast<KRES::Resource*>( resource );
1232 if ( res ) 1233 if ( res )
1233 kresResources.append( res ); 1234 kresResources.append( res );
1234 } 1235 }
1235 } 1236 }
1236 1237
1237 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, this ); 1238 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, this );
1238 resource = static_cast<KABC::Resource*>( res ); 1239 resource = static_cast<KABC::Resource*>( res );
1239 1240
1240 if ( resource ) { 1241 if ( resource ) {
1241 KABC::Addressee addr; 1242 KABC::Addressee addr;
1242 addr.setResource( resource ); 1243 addr.setResource( resource );
1243 mEditorDialog->setAddressee( addr ); 1244 mEditorDialog->setAddressee( addr );
1244 KApplication::execDialog ( mEditorDialog ); 1245 KApplication::execDialog ( mEditorDialog );
1245 1246
1246 } else 1247 } else
1247 return; 1248 return;
1248 1249
1249 // mEditorDict.insert( dialog->addressee().uid(), dialog ); 1250 // mEditorDict.insert( dialog->addressee().uid(), dialog );
1250 1251
1251 1252
1252} 1253}
1253 1254
1254void KABCore::addEmail( QString aStr ) 1255void KABCore::addEmail( QString aStr )
1255{ 1256{
1256#ifndef KAB_EMBEDDED 1257#ifndef KAB_EMBEDDED
1257 QString fullName, email; 1258 QString fullName, email;
1258 1259
1259 KABC::Addressee::parseEmailAddress( aStr, fullName, email ); 1260 KABC::Addressee::parseEmailAddress( aStr, fullName, email );
1260 1261
1261 // Try to lookup the addressee matching the email address 1262 // Try to lookup the addressee matching the email address
1262 bool found = false; 1263 bool found = false;
1263 QStringList emailList; 1264 QStringList emailList;
1264 KABC::AddressBook::Iterator it; 1265 KABC::AddressBook::Iterator it;
1265 for ( it = mAddressBook->begin(); !found && (it != mAddressBook->end()); ++it ) { 1266 for ( it = mAddressBook->begin(); !found && (it != mAddressBook->end()); ++it ) {
1266 emailList = (*it).emails(); 1267 emailList = (*it).emails();
1267 if ( emailList.contains( email ) > 0 ) { 1268 if ( emailList.contains( email ) > 0 ) {
1268 found = true; 1269 found = true;
1269 (*it).setNameFromString( fullName ); 1270 (*it).setNameFromString( fullName );
1270 editContact( (*it).uid() ); 1271 editContact( (*it).uid() );
1271 } 1272 }
1272 } 1273 }
1273 1274
1274 if ( !found ) { 1275 if ( !found ) {
1275 KABC::Addressee addr; 1276 KABC::Addressee addr;
1276 addr.setNameFromString( fullName ); 1277 addr.setNameFromString( fullName );
1277 addr.insertEmail( email, true ); 1278 addr.insertEmail( email, true );
1278 1279
1279 mAddressBook->insertAddressee( addr ); 1280 mAddressBook->insertAddressee( addr );
1280 mViewManager->refreshView( addr.uid() ); 1281 mViewManager->refreshView( addr.uid() );
1281 editContact( addr.uid() ); 1282 editContact( addr.uid() );
1282 } 1283 }
1283#else //KAB_EMBEDDED 1284#else //KAB_EMBEDDED
1284 qDebug("KABCore::addEmail finsih method"); 1285 qDebug("KABCore::addEmail finsih method");
1285#endif //KAB_EMBEDDED 1286#endif //KAB_EMBEDDED
1286} 1287}
1287 1288
1288void KABCore::importVCard( const KURL &url, bool showPreview ) 1289void KABCore::importVCard( const KURL &url, bool showPreview )
1289{ 1290{
1290 mXXPortManager->importVCard( url, showPreview ); 1291 mXXPortManager->importVCard( url, showPreview );
1291} 1292}
1292void KABCore::importFromOL() 1293void KABCore::importFromOL()
1293{ 1294{
1294#ifdef _WIN32_ 1295#ifdef _OL_IMPORT_
1295 KAImportOLdialog* idgl = new KAImportOLdialog( i18n("Import Contacts from OL"), mAddressBook, this ); 1296 KAImportOLdialog* idgl = new KAImportOLdialog( i18n("Import Contacts from OL"), mAddressBook, this );
1296 idgl->exec(); 1297 idgl->exec();
1297 KABC::Addressee::List list = idgl->getAddressList(); 1298 KABC::Addressee::List list = idgl->getAddressList();
1298 if ( list.count() > 0 ) { 1299 if ( list.count() > 0 ) {
1299 KABC::Addressee::List listNew; 1300 KABC::Addressee::List listNew;
1300 KABC::Addressee::List listExisting; 1301 KABC::Addressee::List listExisting;
1301 KABC::Addressee::List::Iterator it; 1302 KABC::Addressee::List::Iterator it;
1302 KABC::AddressBook::Iterator iter; 1303 KABC::AddressBook::Iterator iter;
1303 for ( it = list.begin(); it != list.end(); ++it ) { 1304 for ( it = list.begin(); it != list.end(); ++it ) {
1304 if ( mAddressBook->findByUid((*it).uid() ).isEmpty()) 1305 if ( mAddressBook->findByUid((*it).uid() ).isEmpty())
1305 listNew.append( (*it) ); 1306 listNew.append( (*it) );
1306 else 1307 else
1307 listExisting.append( (*it) ); 1308 listExisting.append( (*it) );
1308 } 1309 }
1309 if ( listExisting.count() > 0 ) 1310 if ( listExisting.count() > 0 )
1310 KMessageBox::information( this, i18n("%1 contacts not added to addressbook\nbecause they were already in the addressbook!").arg( listExisting.count() )); 1311 KMessageBox::information( this, i18n("%1 contacts not added to addressbook\nbecause they were already in the addressbook!").arg( listExisting.count() ));
1311 if ( listNew.count() > 0 ) { 1312 if ( listNew.count() > 0 ) {
1312 pasteWithNewUid = false; 1313 pasteWithNewUid = false;
1313 pasteContacts( listNew ); 1314 pasteContacts( listNew );
1314 pasteWithNewUid = true; 1315 pasteWithNewUid = true;
1315 } 1316 }
1316 } 1317 }
1317 delete idgl; 1318 delete idgl;
1318#endif 1319#endif
1319} 1320}
1320 1321
1321void KABCore::importVCard( const QString &vCard, bool showPreview ) 1322void KABCore::importVCard( const QString &vCard, bool showPreview )
1322{ 1323{
1323 mXXPortManager->importVCard( vCard, showPreview ); 1324 mXXPortManager->importVCard( vCard, showPreview );
1324} 1325}
1325 1326
1326//US added a second method without defaultparameter 1327//US added a second method without defaultparameter
1327void KABCore::editContact2() { 1328void KABCore::editContact2() {
1328 editContact( QString::null ); 1329 editContact( QString::null );
1329} 1330}
1330 1331
1331void KABCore::editContact( const QString &uid ) 1332void KABCore::editContact( const QString &uid )
1332{ 1333{
1333 1334
1334 if ( mExtensionManager->isQuickEditVisible() ) 1335 if ( mExtensionManager->isQuickEditVisible() )
1335 return; 1336 return;
1336 1337
1337 // First, locate the contact entry 1338 // First, locate the contact entry
1338 QString localUID = uid; 1339 QString localUID = uid;
1339 if ( localUID.isNull() ) { 1340 if ( localUID.isNull() ) {
1340 QStringList uidList = mViewManager->selectedUids(); 1341 QStringList uidList = mViewManager->selectedUids();
1341 if ( uidList.count() > 0 ) 1342 if ( uidList.count() > 0 )
1342 localUID = *( uidList.at( 0 ) ); 1343 localUID = *( uidList.at( 0 ) );
1343 } 1344 }
1344 1345
1345 KABC::Addressee addr = mAddressBook->findByUid( localUID ); 1346 KABC::Addressee addr = mAddressBook->findByUid( localUID );
1346 if ( !addr.isEmpty() ) { 1347 if ( !addr.isEmpty() ) {
1347 mEditorDialog->setAddressee( addr ); 1348 mEditorDialog->setAddressee( addr );
1348 KApplication::execDialog ( mEditorDialog ); 1349 KApplication::execDialog ( mEditorDialog );
1349 } 1350 }
1350} 1351}
1351 1352
1352/** 1353/**
1353 Shows or edits the detail view for the given uid. If the uid is QString::null, 1354 Shows or edits the detail view for the given uid. If the uid is QString::null,
1354 the method will try to find a selected addressee in the view. 1355 the method will try to find a selected addressee in the view.
1355 */ 1356 */
1356void KABCore::executeContact( const QString &uid /*US = QString::null*/ ) 1357void KABCore::executeContact( const QString &uid /*US = QString::null*/ )
1357{ 1358{
1358 if ( mMultipleViewsAtOnce ) 1359 if ( mMultipleViewsAtOnce )
1359 { 1360 {
1360 editContact( uid ); 1361 editContact( uid );
1361 } 1362 }
1362 else 1363 else
1363 { 1364 {
1364 setDetailsVisible( true ); 1365 setDetailsVisible( true );
1365 mActionDetails->setChecked(true); 1366 mActionDetails->setChecked(true);
1366 } 1367 }
1367 1368
1368} 1369}
1369 1370
1370void KABCore::save() 1371void KABCore::save()
1371{ 1372{
1372 if (syncManager->blockSave()) 1373 if (syncManager->blockSave())
1373 return; 1374 return;
1374 if ( !mModified ) 1375 if ( !mModified )
1375 return; 1376 return;
1376 1377
1377 syncManager->setBlockSave(true); 1378 syncManager->setBlockSave(true);
1378 QString text = i18n( "There was an error while attempting to save\n the " 1379 QString text = i18n( "There was an error while attempting to save\n the "
1379 "address book. Please check that some \nother application is " 1380 "address book. Please check that some \nother application is "
1380 "not using it. " ); 1381 "not using it. " );
1381 message(i18n("Saving ... please wait! "), false); 1382 message(i18n("Saving ... please wait! "), false);
1382 //qApp->processEvents(); 1383 //qApp->processEvents();
1383#ifndef KAB_EMBEDDED 1384#ifndef KAB_EMBEDDED
1384 KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook ); 1385 KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook );
1385 if ( !b || !b->save() ) { 1386 if ( !b || !b->save() ) {
1386 KMessageBox::error( this, text, i18n( "Unable to Save" ) ); 1387 KMessageBox::error( this, text, i18n( "Unable to Save" ) );
1387 } 1388 }
1388#else //KAB_EMBEDDED 1389#else //KAB_EMBEDDED
1389 KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook ); 1390 KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook );
1390 if ( !b || !b->save() ) { 1391 if ( !b || !b->save() ) {
1391 QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok")); 1392 QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok"));
1392 } 1393 }
1393#endif //KAB_EMBEDDED 1394#endif //KAB_EMBEDDED
1394 1395
1395 message(i18n("Addressbook saved!")); 1396 message(i18n("Addressbook saved!"));
1396 setModified( false ); 1397 setModified( false );
1397 syncManager->setBlockSave(false); 1398 syncManager->setBlockSave(false);
1398} 1399}
1399 1400
1400 1401
1401void KABCore::undo() 1402void KABCore::undo()
1402{ 1403{
1403 UndoStack::instance()->undo(); 1404 UndoStack::instance()->undo();
1404 1405
1405 // Refresh the view 1406 // Refresh the view
1406 mViewManager->refreshView(); 1407 mViewManager->refreshView();
1407} 1408}
1408 1409
1409void KABCore::redo() 1410void KABCore::redo()
1410{ 1411{
1411 RedoStack::instance()->redo(); 1412 RedoStack::instance()->redo();
1412 1413
1413 // Refresh the view 1414 // Refresh the view
1414 mViewManager->refreshView(); 1415 mViewManager->refreshView();
1415} 1416}
1416 1417
1417void KABCore::setJumpButtonBarVisible( bool visible ) 1418void KABCore::setJumpButtonBarVisible( bool visible )
1418{ 1419{
1419 if (mMultipleViewsAtOnce) 1420 if (mMultipleViewsAtOnce)
1420 { 1421 {
1421 if ( visible ) 1422 if ( visible )
1422 mJumpButtonBar->show(); 1423 mJumpButtonBar->show();
1423 else 1424 else
1424 mJumpButtonBar->hide(); 1425 mJumpButtonBar->hide();
1425 } 1426 }
1426 else 1427 else
1427 { 1428 {
1428 // show the jumpbar only if "the details are hidden" == "viewmanager are shown" 1429 // show the jumpbar only if "the details are hidden" == "viewmanager are shown"
1429 if (mViewManager->isVisible()) 1430 if (mViewManager->isVisible())
1430 { 1431 {
1431 if ( visible ) 1432 if ( visible )
1432 mJumpButtonBar->show(); 1433 mJumpButtonBar->show();
1433 else 1434 else
1434 mJumpButtonBar->hide(); 1435 mJumpButtonBar->hide();
1435 } 1436 }
1436 else 1437 else
1437 { 1438 {
1438 mJumpButtonBar->hide(); 1439 mJumpButtonBar->hide();
1439 } 1440 }
1440 } 1441 }
1441} 1442}
1442 1443
1443 1444
1444void KABCore::setDetailsToState() 1445void KABCore::setDetailsToState()
1445{ 1446{
1446 setDetailsVisible( mActionDetails->isChecked() ); 1447 setDetailsVisible( mActionDetails->isChecked() );
1447} 1448}
1448void KABCore::setDetailsToggle() 1449void KABCore::setDetailsToggle()
1449{ 1450{
1450 mActionDetails->setChecked( !mActionDetails->isChecked() ); 1451 mActionDetails->setChecked( !mActionDetails->isChecked() );
1451 setDetailsToState(); 1452 setDetailsToState();
1452} 1453}
1453 1454
1454 1455
1455 1456
1456void KABCore::setDetailsVisible( bool visible ) 1457void KABCore::setDetailsVisible( bool visible )
1457{ 1458{
1458 if (visible && mDetails->isHidden()) 1459 if (visible && mDetails->isHidden())
1459 { 1460 {
1460 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 1461 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
1461 if ( addrList.count() > 0 ) 1462 if ( addrList.count() > 0 )
1462 mDetails->setAddressee( addrList[ 0 ] ); 1463 mDetails->setAddressee( addrList[ 0 ] );
1463 } 1464 }
1464 1465
1465 // mMultipleViewsAtOnce=false: mDetails is always visible. But we switch between 1466 // mMultipleViewsAtOnce=false: mDetails is always visible. But we switch between
1466 // the listview and the detailview. We do that by changing the splitbar size. 1467 // the listview and the detailview. We do that by changing the splitbar size.
1467 if (mMultipleViewsAtOnce) 1468 if (mMultipleViewsAtOnce)
1468 { 1469 {
1469 if ( visible ) 1470 if ( visible )
1470 mDetails->show(); 1471 mDetails->show();
1471 else 1472 else
1472 mDetails->hide(); 1473 mDetails->hide();
1473 } 1474 }
1474 else 1475 else
1475 { 1476 {
1476 if ( visible ) { 1477 if ( visible ) {
1477 mViewManager->hide(); 1478 mViewManager->hide();
1478 mDetails->show(); 1479 mDetails->show();
1479 mIncSearchWidget->setFocus(); 1480 mIncSearchWidget->setFocus();
1480 } 1481 }
1481 else { 1482 else {
1482 mViewManager->show(); 1483 mViewManager->show();
1483 mDetails->hide(); 1484 mDetails->hide();
1484 mViewManager->setFocusAV(); 1485 mViewManager->setFocusAV();
1485 } 1486 }
1486 setJumpButtonBarVisible( !visible ); 1487 setJumpButtonBarVisible( !visible );
1487 } 1488 }
1488 1489
1489} 1490}
1490 1491
1491void KABCore::extensionChanged( int id ) 1492void KABCore::extensionChanged( int id )
1492{ 1493{
1493 //change the details view only for non desktop systems 1494 //change the details view only for non desktop systems
1494#ifndef DESKTOP_VERSION 1495#ifndef DESKTOP_VERSION
1495 1496
1496 if (id == 0) 1497 if (id == 0)
1497 { 1498 {
1498 //the user disabled the extension. 1499 //the user disabled the extension.
1499 1500
1500 if (mMultipleViewsAtOnce) 1501 if (mMultipleViewsAtOnce)
1501 { // enable detailsview again 1502 { // enable detailsview again
1502 setDetailsVisible( true ); 1503 setDetailsVisible( true );
1503 mActionDetails->setChecked( true ); 1504 mActionDetails->setChecked( true );
1504 } 1505 }
1505 else 1506 else
1506 { //go back to the listview 1507 { //go back to the listview
1507 setDetailsVisible( false ); 1508 setDetailsVisible( false );
1508 mActionDetails->setChecked( false ); 1509 mActionDetails->setChecked( false );
1509 mActionDetails->setEnabled(true); 1510 mActionDetails->setEnabled(true);
1510 } 1511 }
1511 1512
1512 } 1513 }
1513 else 1514 else
1514 { 1515 {
1515 //the user enabled the extension. 1516 //the user enabled the extension.
1516 setDetailsVisible( false ); 1517 setDetailsVisible( false );
1517 mActionDetails->setChecked( false ); 1518 mActionDetails->setChecked( false );
1518 1519
1519 if (!mMultipleViewsAtOnce) 1520 if (!mMultipleViewsAtOnce)
1520 { 1521 {
1521 mActionDetails->setEnabled(false); 1522 mActionDetails->setEnabled(false);
1522 } 1523 }
1523 1524
1524 mExtensionManager->setSelectionChanged(); 1525 mExtensionManager->setSelectionChanged();
1525 1526
1526 } 1527 }
1527 1528
1528#endif// DESKTOP_VERSION 1529#endif// DESKTOP_VERSION
1529 1530
1530} 1531}
1531 1532
1532 1533
1533void KABCore::extensionModified( const KABC::Addressee::List &list ) 1534void KABCore::extensionModified( const KABC::Addressee::List &list )
1534{ 1535{
1535 1536
1536 if ( list.count() != 0 ) { 1537 if ( list.count() != 0 ) {
1537 KABC::Addressee::List::ConstIterator it; 1538 KABC::Addressee::List::ConstIterator it;
1538 for ( it = list.begin(); it != list.end(); ++it ) 1539 for ( it = list.begin(); it != list.end(); ++it )
1539 mAddressBook->insertAddressee( *it ); 1540 mAddressBook->insertAddressee( *it );
1540 if ( list.count() > 1 ) 1541 if ( list.count() > 1 )
1541 setModified(); 1542 setModified();
1542 else 1543 else
1543 setModifiedWOrefresh(); 1544 setModifiedWOrefresh();
1544 } 1545 }
1545 if ( list.count() == 0 ) 1546 if ( list.count() == 0 )
1546 mViewManager->refreshView(); 1547 mViewManager->refreshView();
1547 else 1548 else
1548 mViewManager->refreshView( list[ 0 ].uid() ); 1549 mViewManager->refreshView( list[ 0 ].uid() );
1549 1550
1550 1551
1551 1552
1552} 1553}
1553 1554
1554QString KABCore::getNameByPhone( const QString &phone ) 1555QString KABCore::getNameByPhone( const QString &phone )
1555{ 1556{
1556#ifndef KAB_EMBEDDED 1557#ifndef KAB_EMBEDDED
1557 QRegExp r( "[/*/-/ ]" ); 1558 QRegExp r( "[/*/-/ ]" );
1558 QString localPhone( phone ); 1559 QString localPhone( phone );
1559 1560
1560 bool found = false; 1561 bool found = false;
1561 QString ownerName = ""; 1562 QString ownerName = "";
1562 KABC::AddressBook::Iterator iter; 1563 KABC::AddressBook::Iterator iter;
1563 KABC::PhoneNumber::List::Iterator phoneIter; 1564 KABC::PhoneNumber::List::Iterator phoneIter;
1564 KABC::PhoneNumber::List phoneList; 1565 KABC::PhoneNumber::List phoneList;
1565 for ( iter = mAddressBook->begin(); !found && ( iter != mAddressBook->end() ); ++iter ) { 1566 for ( iter = mAddressBook->begin(); !found && ( iter != mAddressBook->end() ); ++iter ) {
1566 phoneList = (*iter).phoneNumbers(); 1567 phoneList = (*iter).phoneNumbers();
1567 for ( phoneIter = phoneList.begin(); !found && ( phoneIter != phoneList.end() ); 1568 for ( phoneIter = phoneList.begin(); !found && ( phoneIter != phoneList.end() );
1568 ++phoneIter) { 1569 ++phoneIter) {
1569 // Get rid of separator chars so just the numbers are compared. 1570 // Get rid of separator chars so just the numbers are compared.
1570 if ( (*phoneIter).number().replace( r, "" ) == localPhone.replace( r, "" ) ) { 1571 if ( (*phoneIter).number().replace( r, "" ) == localPhone.replace( r, "" ) ) {
1571 ownerName = (*iter).formattedName(); 1572 ownerName = (*iter).formattedName();
1572 found = true; 1573 found = true;
1573 } 1574 }
1574 } 1575 }
1575 } 1576 }
1576 1577
1577 return ownerName; 1578 return ownerName;
1578#else //KAB_EMBEDDED 1579#else //KAB_EMBEDDED
1579 qDebug("KABCore::getNameByPhone finsih method"); 1580 qDebug("KABCore::getNameByPhone finsih method");
1580 return ""; 1581 return "";
1581#endif //KAB_EMBEDDED 1582#endif //KAB_EMBEDDED
1582 1583
1583} 1584}
1584 1585
1585void KABCore::openConfigDialog() 1586void KABCore::openConfigDialog()
1586{ 1587{
1587 KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"kabconfigdialog", true ); 1588 KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"kabconfigdialog", true );
1588 KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" ); 1589 KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" );
1589 ConfigureDialog->addModule(kabcfg ); 1590 ConfigureDialog->addModule(kabcfg );
1590 KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( ConfigureDialog->getNewVBoxPage(i18n( "Global")) , "KCMKdeLibConfig" ); 1591 KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( ConfigureDialog->getNewVBoxPage(i18n( "Global")) , "KCMKdeLibConfig" );
1591 ConfigureDialog->addModule(kdelibcfg ); 1592 ConfigureDialog->addModule(kdelibcfg );
1592 1593
1593 connect( ConfigureDialog, SIGNAL( applyClicked() ), 1594 connect( ConfigureDialog, SIGNAL( applyClicked() ),
1594 this, SLOT( configurationChanged() ) ); 1595 this, SLOT( configurationChanged() ) );
1595 connect( ConfigureDialog, SIGNAL( okClicked() ), 1596 connect( ConfigureDialog, SIGNAL( okClicked() ),
1596 this, SLOT( configurationChanged() ) ); 1597 this, SLOT( configurationChanged() ) );
1597 saveSettings(); 1598 saveSettings();
1598#ifndef DESKTOP_VERSION 1599#ifndef DESKTOP_VERSION
1599 ConfigureDialog->showMaximized(); 1600 ConfigureDialog->showMaximized();
1600#endif 1601#endif
1601 if ( ConfigureDialog->exec() ) 1602 if ( ConfigureDialog->exec() )
1602 KMessageBox::information( this, i18n("Some changes are only\neffective after a restart!\n") ); 1603 KMessageBox::information( this, i18n("Some changes are only\neffective after a restart!\n") );
1603 delete ConfigureDialog; 1604 delete ConfigureDialog;
1604} 1605}
1605 1606
1606void KABCore::openLDAPDialog() 1607void KABCore::openLDAPDialog()
1607{ 1608{
1608#ifndef KAB_EMBEDDED 1609#ifndef KAB_EMBEDDED
1609 if ( !mLdapSearchDialog ) { 1610 if ( !mLdapSearchDialog ) {
1610 mLdapSearchDialog = new LDAPSearchDialog( mAddressBook, this ); 1611 mLdapSearchDialog = new LDAPSearchDialog( mAddressBook, this );
1611 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), mViewManager, 1612 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), mViewManager,
1612 SLOT( refreshView() ) ); 1613 SLOT( refreshView() ) );
1613 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), this, 1614 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), this,
1614 SLOT( setModified() ) ); 1615 SLOT( setModified() ) );
1615 } else 1616 } else
1616 mLdapSearchDialog->restoreSettings(); 1617 mLdapSearchDialog->restoreSettings();
1617 1618
1618 if ( mLdapSearchDialog->isOK() ) 1619 if ( mLdapSearchDialog->isOK() )
1619 mLdapSearchDialog->exec(); 1620 mLdapSearchDialog->exec();
1620#else //KAB_EMBEDDED 1621#else //KAB_EMBEDDED
1621 qDebug("KABCore::openLDAPDialog() finsih method"); 1622 qDebug("KABCore::openLDAPDialog() finsih method");
1622#endif //KAB_EMBEDDED 1623#endif //KAB_EMBEDDED
1623} 1624}
1624 1625
1625void KABCore::print() 1626void KABCore::print()
1626{ 1627{
1627#ifndef KAB_EMBEDDED 1628#ifndef KAB_EMBEDDED
1628 KPrinter printer; 1629 KPrinter printer;
1629 if ( !printer.setup( this ) ) 1630 if ( !printer.setup( this ) )
1630 return; 1631 return;
1631 1632
1632 KABPrinting::PrintingWizard wizard( &printer, mAddressBook, 1633 KABPrinting::PrintingWizard wizard( &printer, mAddressBook,
1633 mViewManager->selectedUids(), this ); 1634 mViewManager->selectedUids(), this );
1634 1635
1635 wizard.exec(); 1636 wizard.exec();
1636#else //KAB_EMBEDDED 1637#else //KAB_EMBEDDED
1637 qDebug("KABCore::print() finsih method"); 1638 qDebug("KABCore::print() finsih method");
1638#endif //KAB_EMBEDDED 1639#endif //KAB_EMBEDDED
1639 1640
1640} 1641}
1641 1642
1642 1643
1643void KABCore::addGUIClient( KXMLGUIClient *client ) 1644void KABCore::addGUIClient( KXMLGUIClient *client )
1644{ 1645{
1645 if ( mGUIClient ) 1646 if ( mGUIClient )
1646 mGUIClient->insertChildClient( client ); 1647 mGUIClient->insertChildClient( client );
1647 else 1648 else
1648 KMessageBox::error( this, "no KXMLGUICLient"); 1649 KMessageBox::error( this, "no KXMLGUICLient");
1649} 1650}
1650 1651
1651 1652
1652void KABCore::configurationChanged() 1653void KABCore::configurationChanged()
1653{ 1654{
1654 mExtensionManager->reconfigure(); 1655 mExtensionManager->reconfigure();
1655} 1656}
1656 1657
1657void KABCore::addressBookChanged() 1658void KABCore::addressBookChanged()
1658{ 1659{
1659/*US 1660/*US
1660 QDictIterator<AddresseeEditorDialog> it( mEditorDict ); 1661 QDictIterator<AddresseeEditorDialog> it( mEditorDict );
1661 while ( it.current() ) { 1662 while ( it.current() ) {
1662 if ( it.current()->dirty() ) { 1663 if ( it.current()->dirty() ) {
1663 QString text = i18n( "Data has been changed externally. Unsaved " 1664 QString text = i18n( "Data has been changed externally. Unsaved "
1664 "changes will be lost." ); 1665 "changes will be lost." );
1665 KMessageBox::information( this, text ); 1666 KMessageBox::information( this, text );
1666 } 1667 }
1667 it.current()->setAddressee( mAddressBook->findByUid( it.currentKey() ) ); 1668 it.current()->setAddressee( mAddressBook->findByUid( it.currentKey() ) );
1668 ++it; 1669 ++it;
1669 } 1670 }
1670*/ 1671*/
1671 if (mEditorDialog) 1672 if (mEditorDialog)
1672 { 1673 {
1673 if (mEditorDialog->dirty()) 1674 if (mEditorDialog->dirty())
1674 { 1675 {
1675 QString text = i18n( "Data has been changed externally. Unsaved " 1676 QString text = i18n( "Data has been changed externally. Unsaved "
1676 "changes will be lost." ); 1677 "changes will be lost." );
1677 KMessageBox::information( this, text ); 1678 KMessageBox::information( this, text );
1678 } 1679 }
1679 QString currentuid = mEditorDialog->addressee().uid(); 1680 QString currentuid = mEditorDialog->addressee().uid();
1680 mEditorDialog->setAddressee( mAddressBook->findByUid( currentuid ) ); 1681 mEditorDialog->setAddressee( mAddressBook->findByUid( currentuid ) );
1681 } 1682 }
1682 mViewManager->refreshView(); 1683 mViewManager->refreshView();
1683 1684
1684 1685
1685} 1686}
1686 1687
1687AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent, 1688AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent,
1688 const char *name ) 1689 const char *name )
1689{ 1690{
1690 1691
1691 if ( mEditorDialog == 0 ) { 1692 if ( mEditorDialog == 0 ) {
1692 mEditorDialog = new AddresseeEditorDialog( this, parent, 1693 mEditorDialog = new AddresseeEditorDialog( this, parent,
1693 name ? name : "editorDialog" ); 1694 name ? name : "editorDialog" );
1694 1695
1695 1696
1696 connect( mEditorDialog, SIGNAL( contactModified( const KABC::Addressee& ) ), 1697 connect( mEditorDialog, SIGNAL( contactModified( const KABC::Addressee& ) ),
1697 SLOT( contactModified( const KABC::Addressee& ) ) ); 1698 SLOT( contactModified( const KABC::Addressee& ) ) );
1698 //connect( mEditorDialog, SIGNAL( editorDestroyed( const QString& ) ), 1699 //connect( mEditorDialog, SIGNAL( editorDestroyed( const QString& ) ),
1699 // SLOT( slotEditorDestroyed( const QString& ) ) ; 1700 // SLOT( slotEditorDestroyed( const QString& ) ) ;
1700 } 1701 }
1701 1702
1702 return mEditorDialog; 1703 return mEditorDialog;
1703} 1704}
1704 1705
1705void KABCore::slotEditorDestroyed( const QString &uid ) 1706void KABCore::slotEditorDestroyed( const QString &uid )
1706{ 1707{
1707 //mEditorDict.remove( uid ); 1708 //mEditorDict.remove( uid );
1708} 1709}
1709 1710
1710void KABCore::initGUI() 1711void KABCore::initGUI()
1711{ 1712{
1712#ifndef KAB_EMBEDDED 1713#ifndef KAB_EMBEDDED
1713 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1714 QHBoxLayout *topLayout = new QHBoxLayout( this );
1714 topLayout->setSpacing( KDialogBase::spacingHint() ); 1715 topLayout->setSpacing( KDialogBase::spacingHint() );
1715 1716
1716 mExtensionBarSplitter = new QSplitter( this ); 1717 mExtensionBarSplitter = new QSplitter( this );
1717 mExtensionBarSplitter->setOrientation( Qt::Vertical ); 1718 mExtensionBarSplitter->setOrientation( Qt::Vertical );
1718 1719
1719 mDetailsSplitter = new QSplitter( mExtensionBarSplitter ); 1720 mDetailsSplitter = new QSplitter( mExtensionBarSplitter );
1720 1721
1721 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1722 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1722 mIncSearchWidget = new IncSearchWidget( viewSpace ); 1723 mIncSearchWidget = new IncSearchWidget( viewSpace );
1723 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1724 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1724 SLOT( incrementalSearch( const QString& ) ) ); 1725 SLOT( incrementalSearch( const QString& ) ) );
1725 1726
1726 mViewManager = new ViewManager( this, viewSpace ); 1727 mViewManager = new ViewManager( this, viewSpace );
1727 viewSpace->setStretchFactor( mViewManager, 1 ); 1728 viewSpace->setStretchFactor( mViewManager, 1 );
1728 1729
1729 mDetails = new ViewContainer( mDetailsSplitter ); 1730 mDetails = new ViewContainer( mDetailsSplitter );
1730 1731
1731 mJumpButtonBar = new JumpButtonBar( this, this ); 1732 mJumpButtonBar = new JumpButtonBar( this, this );
1732 1733
1733 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); 1734 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter );
1734 1735
1735 topLayout->addWidget( mExtensionBarSplitter ); 1736 topLayout->addWidget( mExtensionBarSplitter );
1736 topLayout->setStretchFactor( mExtensionBarSplitter, 100 ); 1737 topLayout->setStretchFactor( mExtensionBarSplitter, 100 );
1737 topLayout->addWidget( mJumpButtonBar ); 1738 topLayout->addWidget( mJumpButtonBar );
1738 topLayout->setStretchFactor( mJumpButtonBar, 1 ); 1739 topLayout->setStretchFactor( mJumpButtonBar, 1 );
1739 1740
1740 mXXPortManager = new XXPortManager( this, this ); 1741 mXXPortManager = new XXPortManager( this, this );
1741 1742
1742#else //KAB_EMBEDDED 1743#else //KAB_EMBEDDED
1743 //US initialize viewMenu before settingup viewmanager. 1744 //US initialize viewMenu before settingup viewmanager.
1744 // Viewmanager needs this menu to plugin submenues. 1745 // Viewmanager needs this menu to plugin submenues.
1745 viewMenu = new QPopupMenu( this ); 1746 viewMenu = new QPopupMenu( this );
1746 settingsMenu = new QPopupMenu( this ); 1747 settingsMenu = new QPopupMenu( this );
1747 //filterMenu = new QPopupMenu( this ); 1748 //filterMenu = new QPopupMenu( this );
1748 ImportMenu = new QPopupMenu( this ); 1749 ImportMenu = new QPopupMenu( this );
1749 ExportMenu = new QPopupMenu( this ); 1750 ExportMenu = new QPopupMenu( this );
1750 syncMenu = new QPopupMenu( this ); 1751 syncMenu = new QPopupMenu( this );
1751 changeMenu= new QPopupMenu( this ); 1752 changeMenu= new QPopupMenu( this );
1752 beamMenu= new QPopupMenu( this ); 1753 beamMenu= new QPopupMenu( this );
1753 1754
1754//US since we have no splitter for the embedded system, setup 1755//US since we have no splitter for the embedded system, setup
1755// a layout with two frames. One left and one right. 1756// a layout with two frames. One left and one right.
1756 1757
1757 QBoxLayout *topLayout; 1758 QBoxLayout *topLayout;
1758 1759
1759 // = new QHBoxLayout( this ); 1760 // = new QHBoxLayout( this );
1760// QBoxLayout *topLayout = (QBoxLayout*)layout(); 1761// QBoxLayout *topLayout = (QBoxLayout*)layout();
1761 1762
1762// QWidget *mainBox = new QWidget( this ); 1763// QWidget *mainBox = new QWidget( this );
1763// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox); 1764// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox);
1764 1765
1765#ifdef DESKTOP_VERSION 1766#ifdef DESKTOP_VERSION
1766 topLayout = new QHBoxLayout( this ); 1767 topLayout = new QHBoxLayout( this );
1767 1768
1768 1769
1769 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1770 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1770 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1771 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1771 1772
1772 topLayout->addWidget(mMiniSplitter ); 1773 topLayout->addWidget(mMiniSplitter );
1773 1774
1774 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter ); 1775 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter );
1775 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1776 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1776 mViewManager = new ViewManager( this, mExtensionBarSplitter ); 1777 mViewManager = new ViewManager( this, mExtensionBarSplitter );
1777 mDetails = new ViewContainer( mMiniSplitter ); 1778 mDetails = new ViewContainer( mMiniSplitter );
1778 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); 1779 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter );
1779#else 1780#else
1780 if ( QApplication::desktop()->width() > 480 ) { 1781 if ( QApplication::desktop()->width() > 480 ) {
1781 topLayout = new QHBoxLayout( this ); 1782 topLayout = new QHBoxLayout( this );
1782 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1783 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1783 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1784 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1784 } else { 1785 } else {
1785 1786
1786 topLayout = new QHBoxLayout( this ); 1787 topLayout = new QHBoxLayout( this );
1787 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this); 1788 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this);
1788 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1789 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1789 } 1790 }
1790 1791
1791 topLayout->addWidget(mMiniSplitter ); 1792 topLayout->addWidget(mMiniSplitter );
1792 mViewManager = new ViewManager( this, mMiniSplitter ); 1793 mViewManager = new ViewManager( this, mMiniSplitter );
1793 mDetails = new ViewContainer( mMiniSplitter ); 1794 mDetails = new ViewContainer( mMiniSplitter );
1794 1795
1795 1796
1796 mExtensionManager = new ExtensionManager( this, mMiniSplitter ); 1797 mExtensionManager = new ExtensionManager( this, mMiniSplitter );
1797#endif 1798#endif
1798 //eh->hide(); 1799 //eh->hide();
1799 // topLayout->addWidget(mExtensionManager ); 1800 // topLayout->addWidget(mExtensionManager );
1800 1801
1801 1802
1802/*US 1803/*US
1803#ifndef KAB_NOSPLITTER 1804#ifndef KAB_NOSPLITTER
1804 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1805 QHBoxLayout *topLayout = new QHBoxLayout( this );
1805//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1806//US topLayout->setSpacing( KDialogBase::spacingHint() );
1806 topLayout->setSpacing( 10 ); 1807 topLayout->setSpacing( 10 );
1807 1808
1808 mDetailsSplitter = new QSplitter( this ); 1809 mDetailsSplitter = new QSplitter( this );
1809 1810
1810 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1811 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1811 1812
1812 mViewManager = new ViewManager( this, viewSpace ); 1813 mViewManager = new ViewManager( this, viewSpace );
1813 viewSpace->setStretchFactor( mViewManager, 1 ); 1814 viewSpace->setStretchFactor( mViewManager, 1 );
1814 1815
1815 mDetails = new ViewContainer( mDetailsSplitter ); 1816 mDetails = new ViewContainer( mDetailsSplitter );
1816 1817
1817 topLayout->addWidget( mDetailsSplitter ); 1818 topLayout->addWidget( mDetailsSplitter );
1818 topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1819 topLayout->setStretchFactor( mDetailsSplitter, 100 );
1819#else //KAB_NOSPLITTER 1820#else //KAB_NOSPLITTER
1820 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1821 QHBoxLayout *topLayout = new QHBoxLayout( this );
1821//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1822//US topLayout->setSpacing( KDialogBase::spacingHint() );
1822 topLayout->setSpacing( 10 ); 1823 topLayout->setSpacing( 10 );
1823 1824
1824// mDetailsSplitter = new QSplitter( this ); 1825// mDetailsSplitter = new QSplitter( this );
1825 1826
1826 QVBox *viewSpace = new QVBox( this ); 1827 QVBox *viewSpace = new QVBox( this );
1827 1828
1828 mViewManager = new ViewManager( this, viewSpace ); 1829 mViewManager = new ViewManager( this, viewSpace );
1829 viewSpace->setStretchFactor( mViewManager, 1 ); 1830 viewSpace->setStretchFactor( mViewManager, 1 );
1830 1831
1831 mDetails = new ViewContainer( this ); 1832 mDetails = new ViewContainer( this );
1832 1833
1833 topLayout->addWidget( viewSpace ); 1834 topLayout->addWidget( viewSpace );
1834// topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1835// topLayout->setStretchFactor( mDetailsSplitter, 100 );
1835 topLayout->addWidget( mDetails ); 1836 topLayout->addWidget( mDetails );
1836#endif //KAB_NOSPLITTER 1837#endif //KAB_NOSPLITTER
1837*/ 1838*/
1838 1839
1839 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); 1840 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu);
1840 syncManager->setBlockSave(false); 1841 syncManager->setBlockSave(false);
1841 1842
1842 connect(syncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 1843 connect(syncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
1843 connect(syncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 1844 connect(syncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
1844 QString sync_file = sentSyncFile(); 1845 QString sync_file = sentSyncFile();
1845 //qDebug("KABCore::initGUI()::setting tmp sync file to:%s ",sync_file.latin1()); 1846 //qDebug("KABCore::initGUI()::setting tmp sync file to:%s ",sync_file.latin1());
1846 syncManager->setDefaultFileName( sync_file ); 1847 syncManager->setDefaultFileName( sync_file );
1847 //connect(syncManager , SIGNAL( ), this, SLOT( ) ); 1848 //connect(syncManager , SIGNAL( ), this, SLOT( ) );
1848 1849
1849#endif //KAB_EMBEDDED 1850#endif //KAB_EMBEDDED
1850 initActions(); 1851 initActions();
1851 1852
1852#ifdef KAB_EMBEDDED 1853#ifdef KAB_EMBEDDED
1853 addActionsManually(); 1854 addActionsManually();
1854 //US make sure the export and import menues are initialized before creating the xxPortManager. 1855 //US make sure the export and import menues are initialized before creating the xxPortManager.
1855 mXXPortManager = new XXPortManager( this, this ); 1856 mXXPortManager = new XXPortManager( this, this );
1856 1857
1857 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() ); 1858 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() );
1858 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget); 1859 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget);
1859 // mActionQuit->plug ( mMainWindow->toolBar()); 1860 // mActionQuit->plug ( mMainWindow->toolBar());
1860 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() ); 1861 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() );
1861 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget); 1862 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget);
1862 // mIncSearchWidget->hide(); 1863 // mIncSearchWidget->hide();
1863 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1864 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1864 SLOT( incrementalSearch( const QString& ) ) ); 1865 SLOT( incrementalSearch( const QString& ) ) );
1865 connect( mIncSearchWidget, SIGNAL( scrollUP() ),mViewManager, SLOT( scrollUP() ) ); 1866 connect( mIncSearchWidget, SIGNAL( scrollUP() ),mViewManager, SLOT( scrollUP() ) );
1866 connect( mIncSearchWidget, SIGNAL( scrollDOWN() ),mViewManager, SLOT( scrollDOWN() ) ); 1867 connect( mIncSearchWidget, SIGNAL( scrollDOWN() ),mViewManager, SLOT( scrollDOWN() ) );
1867 1868
1868 mJumpButtonBar = new JumpButtonBar( this, this ); 1869 mJumpButtonBar = new JumpButtonBar( this, this );
1869 1870
1870 topLayout->addWidget( mJumpButtonBar ); 1871 topLayout->addWidget( mJumpButtonBar );
1871//US topLayout->setStretchFactor( mJumpButtonBar, 10 ); 1872//US topLayout->setStretchFactor( mJumpButtonBar, 10 );
1872 1873
1873// mMainWindow->getIconToolBar()->raise(); 1874// mMainWindow->getIconToolBar()->raise();
1874 1875
1875#endif //KAB_EMBEDDED 1876#endif //KAB_EMBEDDED
1876 1877
1877} 1878}
1878void KABCore::initActions() 1879void KABCore::initActions()
1879{ 1880{
1880//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); 1881//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
1881 1882
1882#ifndef KAB_EMBEDDED 1883#ifndef KAB_EMBEDDED
1883 connect( QApplication::clipboard(), SIGNAL( dataChanged() ), 1884 connect( QApplication::clipboard(), SIGNAL( dataChanged() ),
1884 SLOT( clipboardDataChanged() ) ); 1885 SLOT( clipboardDataChanged() ) );
1885#endif //KAB_EMBEDDED 1886#endif //KAB_EMBEDDED
1886 1887
1887 // file menu 1888 // file menu
1888 1889
1889 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() ); 1890 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() );
1890 //mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() ); 1891 //mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() );
1891 mActionPrint = new KAction( i18n( "&Print View" ), "fileprint", CTRL + Key_P, mViewManager, 1892 mActionPrint = new KAction( i18n( "&Print View" ), "fileprint", CTRL + Key_P, mViewManager,
1892 SLOT( printView() ), actionCollection(), "kaddressbook_print" ); 1893 SLOT( printView() ), actionCollection(), "kaddressbook_print" );
1893 1894
1894 1895
1895 mActionPrintDetails = new KAction( i18n( "&Print Details" ), "fileprint", 0, mDetails, 1896 mActionPrintDetails = new KAction( i18n( "&Print Details" ), "fileprint", 0, mDetails,
1896 SLOT( printView() ), actionCollection(), "kaddressbook_print2" ); 1897 SLOT( printView() ), actionCollection(), "kaddressbook_print2" );
1897 1898
1898 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this, 1899 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this,
1899 SLOT( save() ), actionCollection(), "file_sync" ); 1900 SLOT( save() ), actionCollection(), "file_sync" );
1900 1901
1901 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this, 1902 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this,
1902 SLOT( newContact() ), actionCollection(), "file_new_contact" ); 1903 SLOT( newContact() ), actionCollection(), "file_new_contact" );
1903 1904
1904 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0, 1905 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0,
1905 this, SLOT( mailVCard() ), 1906 this, SLOT( mailVCard() ),
1906 actionCollection(), "file_mail_vcard"); 1907 actionCollection(), "file_mail_vcard");
1907 1908
1908 mActionExport2phone = new KAction( i18n( "Export to phone" ), "ex2phone", 0, this, 1909 mActionExport2phone = new KAction( i18n( "Export to phone" ), "ex2phone", 0, this,
1909 SLOT( export2phone() ), actionCollection(), 1910 SLOT( export2phone() ), actionCollection(),
1910 "kaddressbook_ex2phone" ); 1911 "kaddressbook_ex2phone" );
1911 1912
1912 mActionBeamVCard = 0; 1913 mActionBeamVCard = 0;
1913 mActionBeam = 0; 1914 mActionBeam = 0;
1914 1915
1915#ifndef DESKTOP_VERSION 1916#ifndef DESKTOP_VERSION
1916 if ( Ir::supported() ) { 1917 if ( Ir::supported() ) {
1917 mActionBeamVCard = new KAction( i18n( "Beam v&Card(s)..." ), "beam", 0, this, 1918 mActionBeamVCard = new KAction( i18n( "Beam v&Card(s)..." ), "beam", 0, this,
1918 SLOT( beamVCard() ), actionCollection(), 1919 SLOT( beamVCard() ), actionCollection(),
1919 "kaddressbook_beam_vcard" ); 1920 "kaddressbook_beam_vcard" );
1920 1921
1921 mActionBeam = new KAction( i18n( "&Beam personal vCard" ), "beam", 0, this, 1922 mActionBeam = new KAction( i18n( "&Beam personal vCard" ), "beam", 0, this,
1922 SLOT( beamMySelf() ), actionCollection(), 1923 SLOT( beamMySelf() ), actionCollection(),
1923 "kaddressbook_beam_myself" ); 1924 "kaddressbook_beam_myself" );
1924 } 1925 }
1925#endif 1926#endif
1926 1927
1927 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0, 1928 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0,
1928 this, SLOT( editContact2() ), 1929 this, SLOT( editContact2() ),
1929 actionCollection(), "file_properties" ); 1930 actionCollection(), "file_properties" );
1930 1931
1931#ifdef KAB_EMBEDDED 1932#ifdef KAB_EMBEDDED
1932 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() ); 1933 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() );
1933 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0, 1934 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0,
1934 mMainWindow, SLOT( exit() ), 1935 mMainWindow, SLOT( exit() ),
1935 actionCollection(), "quit" ); 1936 actionCollection(), "quit" );
1936#endif //KAB_EMBEDDED 1937#endif //KAB_EMBEDDED
1937 1938
1938 // edit menu 1939 // edit menu
1939 if ( mIsPart ) { 1940 if ( mIsPart ) {
1940 mActionCopy = new KAction( i18n( "&Copy" ), "editcopy", CTRL + Key_C, this, 1941 mActionCopy = new KAction( i18n( "&Copy" ), "editcopy", CTRL + Key_C, this,
1941 SLOT( copyContacts() ), actionCollection(), 1942 SLOT( copyContacts() ), actionCollection(),
1942 "kaddressbook_copy" ); 1943 "kaddressbook_copy" );
1943 mActionCut = new KAction( i18n( "Cu&t" ), "editcut", CTRL + Key_X, this, 1944 mActionCut = new KAction( i18n( "Cu&t" ), "editcut", CTRL + Key_X, this,
1944 SLOT( cutContacts() ), actionCollection(), 1945 SLOT( cutContacts() ), actionCollection(),
1945 "kaddressbook_cut" ); 1946 "kaddressbook_cut" );
1946 mActionPaste = new KAction( i18n( "&Paste" ), "editpaste", CTRL + Key_V, this, 1947 mActionPaste = new KAction( i18n( "&Paste" ), "editpaste", CTRL + Key_V, this,
1947 SLOT( pasteContacts() ), actionCollection(), 1948 SLOT( pasteContacts() ), actionCollection(),
1948 "kaddressbook_paste" ); 1949 "kaddressbook_paste" );
1949 mActionSelectAll = new KAction( i18n( "Select &All" ), CTRL + Key_A, this, 1950 mActionSelectAll = new KAction( i18n( "Select &All" ), CTRL + Key_A, this,
1950 SLOT( selectAllContacts() ), actionCollection(), 1951 SLOT( selectAllContacts() ), actionCollection(),
1951 "kaddressbook_select_all" ); 1952 "kaddressbook_select_all" );
1952 mActionUndo = new KAction( i18n( "&Undo" ), "undo", CTRL + Key_Z, this, 1953 mActionUndo = new KAction( i18n( "&Undo" ), "undo", CTRL + Key_Z, this,
1953 SLOT( undo() ), actionCollection(), 1954 SLOT( undo() ), actionCollection(),
1954 "kaddressbook_undo" ); 1955 "kaddressbook_undo" );
1955 mActionRedo = new KAction( i18n( "Re&do" ), "redo", CTRL + SHIFT + Key_Z, 1956 mActionRedo = new KAction( i18n( "Re&do" ), "redo", CTRL + SHIFT + Key_Z,
1956 this, SLOT( redo() ), actionCollection(), 1957 this, SLOT( redo() ), actionCollection(),
1957 "kaddressbook_redo" ); 1958 "kaddressbook_redo" );
1958 } else { 1959 } else {
1959 mActionCopy = KStdAction::copy( this, SLOT( copyContacts() ), actionCollection() ); 1960 mActionCopy = KStdAction::copy( this, SLOT( copyContacts() ), actionCollection() );
1960 mActionCut = KStdAction::cut( this, SLOT( cutContacts() ), actionCollection() ); 1961 mActionCut = KStdAction::cut( this, SLOT( cutContacts() ), actionCollection() );
1961 mActionPaste = KStdAction::paste( this, SLOT( pasteContacts() ), actionCollection() ); 1962 mActionPaste = KStdAction::paste( this, SLOT( pasteContacts() ), actionCollection() );
1962 mActionSelectAll = KStdAction::selectAll( this, SLOT( selectAllContacts() ), actionCollection() ); 1963 mActionSelectAll = KStdAction::selectAll( this, SLOT( selectAllContacts() ), actionCollection() );
1963 mActionUndo = KStdAction::undo( this, SLOT( undo() ), actionCollection() ); 1964 mActionUndo = KStdAction::undo( this, SLOT( undo() ), actionCollection() );
1964 mActionRedo = KStdAction::redo( this, SLOT( redo() ), actionCollection() ); 1965 mActionRedo = KStdAction::redo( this, SLOT( redo() ), actionCollection() );
1965 } 1966 }
1966 1967
1967 mActionDelete = new KAction( i18n( "&Delete Contact" ), "editdelete", 1968 mActionDelete = new KAction( i18n( "&Delete Contact" ), "editdelete",
1968 Key_Delete, this, SLOT( deleteContacts() ), 1969 Key_Delete, this, SLOT( deleteContacts() ),
1969 actionCollection(), "edit_delete" ); 1970 actionCollection(), "edit_delete" );
1970 1971
1971 mActionUndo->setEnabled( false ); 1972 mActionUndo->setEnabled( false );
1972 mActionRedo->setEnabled( false ); 1973 mActionRedo->setEnabled( false );
1973 1974
1974 // settings menu 1975 // settings menu
1975#ifdef KAB_EMBEDDED 1976#ifdef KAB_EMBEDDED
1976//US special menuentry to configure the addressbook resources. On KDE 1977//US special menuentry to configure the addressbook resources. On KDE
1977// you do that through the control center !!! 1978// you do that through the control center !!!
1978 mActionConfigResources = new KAction( i18n( "Configure &Resources..." ), "configure_resources", 0, this, 1979 mActionConfigResources = new KAction( i18n( "Configure &Resources..." ), "configure_resources", 0, this,
1979 SLOT( configureResources() ), actionCollection(), 1980 SLOT( configureResources() ), actionCollection(),
1980 "kaddressbook_configure_resources" ); 1981 "kaddressbook_configure_resources" );
1981#endif //KAB_EMBEDDED 1982#endif //KAB_EMBEDDED
1982 1983
1983 if ( mIsPart ) { 1984 if ( mIsPart ) {
1984 mActionConfigKAddressbook = new KAction( i18n( "&Configure KAddressBook..." ), "configure", 0, this, 1985 mActionConfigKAddressbook = new KAction( i18n( "&Configure KAddressBook..." ), "configure", 0, this,
1985 SLOT( openConfigDialog() ), actionCollection(), 1986 SLOT( openConfigDialog() ), actionCollection(),
1986 "kaddressbook_configure" ); 1987 "kaddressbook_configure" );
1987 1988
1988 //US not implemented yet 1989 //US not implemented yet
1989 //mActionConfigShortcuts = new KAction( i18n( "Configure S&hortcuts..." ), "configure_shortcuts", 0, 1990 //mActionConfigShortcuts = new KAction( i18n( "Configure S&hortcuts..." ), "configure_shortcuts", 0,
1990 // this, SLOT( configureKeyBindings() ), actionCollection(), 1991 // this, SLOT( configureKeyBindings() ), actionCollection(),
1991 // "kaddressbook_configure_shortcuts" ); 1992 // "kaddressbook_configure_shortcuts" );
1992#ifdef KAB_EMBEDDED 1993#ifdef KAB_EMBEDDED
1993 mActionConfigureToolbars = KStdAction::configureToolbars( this, SLOT( mMainWindow->configureToolbars() ), actionCollection() ); 1994 mActionConfigureToolbars = KStdAction::configureToolbars( this, SLOT( mMainWindow->configureToolbars() ), actionCollection() );
1994 mActionConfigureToolbars->setEnabled( false ); 1995 mActionConfigureToolbars->setEnabled( false );
1995#endif //KAB_EMBEDDED 1996#endif //KAB_EMBEDDED
1996 1997
1997 } else { 1998 } else {
1998 mActionConfigKAddressbook = KStdAction::preferences( this, SLOT( openConfigDialog() ), actionCollection() ); 1999 mActionConfigKAddressbook = KStdAction::preferences( this, SLOT( openConfigDialog() ), actionCollection() );
1999 2000
2000 //US not implemented yet 2001 //US not implemented yet
2001 //mActionKeyBindings = KStdAction::keyBindings( this, SLOT( configureKeyBindings() ), actionCollection() ); 2002 //mActionKeyBindings = KStdAction::keyBindings( this, SLOT( configureKeyBindings() ), actionCollection() );
2002 } 2003 }
2003 2004
2004 mActionJumpBar = new KToggleAction( i18n( "Show Jump Bar" ), 0, 0, 2005 mActionJumpBar = new KToggleAction( i18n( "Show Jump Bar" ), 0, 0,
2005 actionCollection(), "options_show_jump_bar" ); 2006 actionCollection(), "options_show_jump_bar" );
2006 connect( mActionJumpBar, SIGNAL( toggled( bool ) ), SLOT( setJumpButtonBarVisible( bool ) ) ); 2007 connect( mActionJumpBar, SIGNAL( toggled( bool ) ), SLOT( setJumpButtonBarVisible( bool ) ) );
2007 2008
2008 mActionDetails = new KToggleAction( i18n( "Show Details" ), "listview", 0, 2009 mActionDetails = new KToggleAction( i18n( "Show Details" ), "listview", 0,
2009 actionCollection(), "options_show_details" ); 2010 actionCollection(), "options_show_details" );
2010 connect( mActionDetails, SIGNAL( toggled( bool ) ), SLOT( setDetailsVisible( bool ) ) ); 2011 connect( mActionDetails, SIGNAL( toggled( bool ) ), SLOT( setDetailsVisible( bool ) ) );
2011 2012
2012 2013
2013 mActionBR = new KToggleAction( i18n( "Beam receive enabled" ), "beam", 0, this, 2014 mActionBR = new KToggleAction( i18n( "Beam receive enabled" ), "beam", 0, this,
2014 SLOT( toggleBeamReceive() ), actionCollection(), 2015 SLOT( toggleBeamReceive() ), actionCollection(),
2015 "kaddressbook_beam_rec" ); 2016 "kaddressbook_beam_rec" );
2016 2017
2017 2018
2018 // misc 2019 // misc
2019 // only enable LDAP lookup if we can handle the protocol 2020 // only enable LDAP lookup if we can handle the protocol
2020#ifndef KAB_EMBEDDED 2021#ifndef KAB_EMBEDDED
2021 if ( KProtocolInfo::isKnownProtocol( KURL( "ldap://localhost" ) ) ) { 2022 if ( KProtocolInfo::isKnownProtocol( KURL( "ldap://localhost" ) ) ) {
2022 new KAction( i18n( "&Lookup Addresses in Directory" ), "find", 0, 2023 new KAction( i18n( "&Lookup Addresses in Directory" ), "find", 0,
2023 this, SLOT( openLDAPDialog() ), actionCollection(), 2024 this, SLOT( openLDAPDialog() ), actionCollection(),
2024 "ldap_lookup" ); 2025 "ldap_lookup" );
2025 } 2026 }
2026#else //KAB_EMBEDDED 2027#else //KAB_EMBEDDED
2027 //qDebug("KABCore::initActions() LDAP has to be implemented"); 2028 //qDebug("KABCore::initActions() LDAP has to be implemented");
2028#endif //KAB_EMBEDDED 2029#endif //KAB_EMBEDDED
2029 2030
2030 2031
2031 mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this, 2032 mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this,
2032 SLOT( setWhoAmI() ), actionCollection(), 2033 SLOT( setWhoAmI() ), actionCollection(),
2033 "set_personal" ); 2034 "set_personal" );
2034 2035
2035 2036
2036 mActionCategories = new KAction( i18n( "Set Categories" ), 0, this, 2037 mActionCategories = new KAction( i18n( "Set Categories" ), 0, this,
2037 SLOT( setCategories() ), actionCollection(), 2038 SLOT( setCategories() ), actionCollection(),
2038 "edit_set_categories" ); 2039 "edit_set_categories" );
2039 mActionEditCategories = new KAction( i18n( "Edit Categories" ), 0, this, 2040 mActionEditCategories = new KAction( i18n( "Edit Categories" ), 0, this,
2040 SLOT( editCategories() ), actionCollection(), 2041 SLOT( editCategories() ), actionCollection(),
2041 "edit__categories" ); 2042 "edit__categories" );
2042 2043
2043 mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this, 2044 mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this,
2044 SLOT( removeVoice() ), actionCollection(), 2045 SLOT( removeVoice() ), actionCollection(),
2045 "remove_voice" ); 2046 "remove_voice" );
2046 mActionSetFormattedName = new KAction( i18n( "Set formatted name..." ), 0, this, 2047 mActionSetFormattedName = new KAction( i18n( "Set formatted name..." ), 0, this,
2047 SLOT( setFormattedName() ), actionCollection(), 2048 SLOT( setFormattedName() ), actionCollection(),
2048 "set_formatted" ); 2049 "set_formatted" );
2049 2050
2050 mActionManageCategories= new KAction( i18n( "Manage new categories..." ), 0, this, 2051 mActionManageCategories= new KAction( i18n( "Manage new categories..." ), 0, this,
2051 SLOT( manageCategories() ), actionCollection(), 2052 SLOT( manageCategories() ), actionCollection(),
2052 "remove_voice" ); 2053 "remove_voice" );
2053 2054
2054 2055
2055 mActionImportOL = new KAction( i18n( "Import from Outlook..." ), 0, this, 2056 mActionImportOL = new KAction( i18n( "Import from Outlook..." ), 0, this,
2056 SLOT( importFromOL() ), actionCollection(), 2057 SLOT( importFromOL() ), actionCollection(),
2057 "import_OL" ); 2058 "import_OL" );
2058#ifdef KAB_EMBEDDED 2059#ifdef KAB_EMBEDDED
2059 mActionLicence = new KAction( i18n( "Licence" ), 0, 2060 mActionLicence = new KAction( i18n( "Licence" ), 0,
2060 this, SLOT( showLicence() ), actionCollection(), 2061 this, SLOT( showLicence() ), actionCollection(),
2061 "licence_about_data" ); 2062 "licence_about_data" );
2062 mActionFaq = new KAction( i18n( "Faq" ), 0, 2063 mActionFaq = new KAction( i18n( "Faq" ), 0,
2063 this, SLOT( faq() ), actionCollection(), 2064 this, SLOT( faq() ), actionCollection(),
2064 "faq_about_data" ); 2065 "faq_about_data" );
2065 mActionWN = new KAction( i18n( "What's New?" ), 0, 2066 mActionWN = new KAction( i18n( "What's New?" ), 0,
2066 this, SLOT( whatsnew() ), actionCollection(), 2067 this, SLOT( whatsnew() ), actionCollection(),
2067 "wn" ); 2068 "wn" );
2068 mActionSyncHowto = new KAction( i18n( "Sync HowTo" ), 0, 2069 mActionSyncHowto = new KAction( i18n( "Sync HowTo" ), 0,
2069 this, SLOT( synchowto() ), actionCollection(), 2070 this, SLOT( synchowto() ), actionCollection(),
2070 "sync" ); 2071 "sync" );
2071 mActionKdeSyncHowto = new KAction( i18n( "Kde Sync HowTo" ), 0, 2072 mActionKdeSyncHowto = new KAction( i18n( "Kde Sync HowTo" ), 0,
2072 this, SLOT( kdesynchowto() ), actionCollection(), 2073 this, SLOT( kdesynchowto() ), actionCollection(),
2073 "kdesync" ); 2074 "kdesync" );
2074 mActionMultiSyncHowto = new KAction( i18n( "Multi Sync HowTo" ), 0, 2075 mActionMultiSyncHowto = new KAction( i18n( "Multi Sync HowTo" ), 0,
2075 this, SLOT( multisynchowto() ), actionCollection(), 2076 this, SLOT( multisynchowto() ), actionCollection(),
2076 "multisync" ); 2077 "multisync" );
2077 2078
2078 mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0, 2079 mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0,
2079 this, SLOT( createAboutData() ), actionCollection(), 2080 this, SLOT( createAboutData() ), actionCollection(),
2080 "kaddressbook_about_data" ); 2081 "kaddressbook_about_data" );
2081#endif //KAB_EMBEDDED 2082#endif //KAB_EMBEDDED
2082 2083
2083 clipboardDataChanged(); 2084 clipboardDataChanged();
2084 connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); 2085 connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) );
2085 connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); 2086 connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) );
2086} 2087}
2087 2088
2088//US we need this function, to plug all actions into the correct menues. 2089//US we need this function, to plug all actions into the correct menues.
2089// KDE uses a XML format to plug the actions, but we work her without this overhead. 2090// KDE uses a XML format to plug the actions, but we work her without this overhead.
2090void KABCore::addActionsManually() 2091void KABCore::addActionsManually()
2091{ 2092{
2092//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); 2093//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
2093 2094
2094#ifdef KAB_EMBEDDED 2095#ifdef KAB_EMBEDDED
2095 QPopupMenu *fileMenu = new QPopupMenu( this ); 2096 QPopupMenu *fileMenu = new QPopupMenu( this );
2096 QPopupMenu *editMenu = new QPopupMenu( this ); 2097 QPopupMenu *editMenu = new QPopupMenu( this );
2097 QPopupMenu *helpMenu = new QPopupMenu( this ); 2098 QPopupMenu *helpMenu = new QPopupMenu( this );
2098 2099
2099 KToolBar* tb = mMainWindow->toolBar(); 2100 KToolBar* tb = mMainWindow->toolBar();
2100 2101
2101#ifndef DESKTOP_VERSION 2102#ifndef DESKTOP_VERSION
2102 if ( KABPrefs::instance()->mFullMenuBarVisible ) { 2103 if ( KABPrefs::instance()->mFullMenuBarVisible ) {
2103#endif 2104#endif
2104 QMenuBar* mb = mMainWindow->menuBar(); 2105 QMenuBar* mb = mMainWindow->menuBar();
2105 2106
2106 //US setup menubar. 2107 //US setup menubar.
2107 //Disable the following block if you do not want to have a menubar. 2108 //Disable the following block if you do not want to have a menubar.
2108 mb->insertItem( i18n("&File"), fileMenu ); 2109 mb->insertItem( i18n("&File"), fileMenu );
2109 mb->insertItem( i18n("&Edit"), editMenu ); 2110 mb->insertItem( i18n("&Edit"), editMenu );
2110 mb->insertItem( i18n("&View"), viewMenu ); 2111 mb->insertItem( i18n("&View"), viewMenu );
2111 mb->insertItem( i18n("&Settings"), settingsMenu ); 2112 mb->insertItem( i18n("&Settings"), settingsMenu );
2112 mb->insertItem( i18n("Synchronize"), syncMenu ); 2113 mb->insertItem( i18n("Synchronize"), syncMenu );
2113 //mb->insertItem( i18n("&Change"), changeMenu ); 2114 //mb->insertItem( i18n("&Change"), changeMenu );
2114 mb->insertItem( i18n("&Help"), helpMenu ); 2115 mb->insertItem( i18n("&Help"), helpMenu );
2115 mIncSearchWidget = new IncSearchWidget( tb ); 2116 mIncSearchWidget = new IncSearchWidget( tb );
2116 // tb->insertWidget(-1, 0, mIncSearchWidget); 2117 // tb->insertWidget(-1, 0, mIncSearchWidget);
2117#ifndef DESKTOP_VERSION 2118#ifndef DESKTOP_VERSION
2118 } else { 2119 } else {
2119 //US setup toolbar 2120 //US setup toolbar
2120 QPEMenuBar *menuBarTB = new QPEMenuBar( tb ); 2121 QPEMenuBar *menuBarTB = new QPEMenuBar( tb );
2121 QPopupMenu *popupBarTB = new QPopupMenu( this ); 2122 QPopupMenu *popupBarTB = new QPopupMenu( this );
2122 menuBarTB->insertItem( "ME", popupBarTB); 2123 menuBarTB->insertItem( "ME", popupBarTB);
2123 tb->insertWidget(-1, 0, menuBarTB); 2124 tb->insertWidget(-1, 0, menuBarTB);
2124 mIncSearchWidget = new IncSearchWidget( tb ); 2125 mIncSearchWidget = new IncSearchWidget( tb );
2125 2126
2126 tb->enableMoving(false); 2127 tb->enableMoving(false);
2127 popupBarTB->insertItem( i18n("&File"), fileMenu ); 2128 popupBarTB->insertItem( i18n("&File"), fileMenu );
2128 popupBarTB->insertItem( i18n("&Edit"), editMenu ); 2129 popupBarTB->insertItem( i18n("&Edit"), editMenu );
2129 popupBarTB->insertItem( i18n("&View"), viewMenu ); 2130 popupBarTB->insertItem( i18n("&View"), viewMenu );
2130 popupBarTB->insertItem( i18n("&Settings"), settingsMenu ); 2131 popupBarTB->insertItem( i18n("&Settings"), settingsMenu );
2131 popupBarTB->insertItem( i18n("Synchronize"), syncMenu ); 2132 popupBarTB->insertItem( i18n("Synchronize"), syncMenu );
2132 mViewManager->getFilterAction()->plug ( popupBarTB); 2133 mViewManager->getFilterAction()->plug ( popupBarTB);
2133 //popupBarTB->insertItem( i18n("&Change selected"), changeMenu ); 2134 //popupBarTB->insertItem( i18n("&Change selected"), changeMenu );
2134 popupBarTB->insertItem( i18n("&Help"), helpMenu ); 2135 popupBarTB->insertItem( i18n("&Help"), helpMenu );
2135 if (QApplication::desktop()->width() > 320 ) { 2136 if (QApplication::desktop()->width() > 320 ) {
2136 // mViewManager->getFilterAction()->plug ( tb); 2137 // mViewManager->getFilterAction()->plug ( tb);
2137 } 2138 }
2138 } 2139 }
2139#endif 2140#endif
2140 // mActionQuit->plug ( mMainWindow->toolBar()); 2141 // mActionQuit->plug ( mMainWindow->toolBar());
2141 2142
2142 2143
2143 2144
2144 //US Now connect the actions with the menue entries. 2145 //US Now connect the actions with the menue entries.
2145#ifdef DESKTOP_VERSION 2146#ifdef DESKTOP_VERSION
2146 mActionPrint->plug( fileMenu ); 2147 mActionPrint->plug( fileMenu );
2147 mActionPrintDetails->plug( fileMenu ); 2148 mActionPrintDetails->plug( fileMenu );
2148 fileMenu->insertSeparator(); 2149 fileMenu->insertSeparator();
2149#endif 2150#endif
2150 mActionMail->plug( fileMenu ); 2151 mActionMail->plug( fileMenu );
2151 fileMenu->insertSeparator(); 2152 fileMenu->insertSeparator();
2152 2153
2153 mActionNewContact->plug( fileMenu ); 2154 mActionNewContact->plug( fileMenu );
2154 mActionNewContact->plug( tb ); 2155 mActionNewContact->plug( tb );
2155 2156
2156 mActionEditAddressee->plug( fileMenu ); 2157 mActionEditAddressee->plug( fileMenu );
2157 // if ((KGlobal::getDesktopSize() > KGlobal::Small ) || 2158 // if ((KGlobal::getDesktopSize() > KGlobal::Small ) ||
2158 // (!KABPrefs::instance()->mMultipleViewsAtOnce )) 2159 // (!KABPrefs::instance()->mMultipleViewsAtOnce ))
2159 mActionEditAddressee->plug( tb ); 2160 mActionEditAddressee->plug( tb );
2160 2161
2161 fileMenu->insertSeparator(); 2162 fileMenu->insertSeparator();
2162 mActionSave->plug( fileMenu ); 2163 mActionSave->plug( fileMenu );
2163 fileMenu->insertItem( "&Import", ImportMenu ); 2164 fileMenu->insertItem( "&Import", ImportMenu );
2164 fileMenu->insertItem( "&Export", ExportMenu ); 2165 fileMenu->insertItem( "&Export", ExportMenu );
2165 fileMenu->insertItem( i18n("&Change"), changeMenu ); 2166 fileMenu->insertItem( i18n("&Change"), changeMenu );
2166#ifndef DESKTOP_VERSION 2167#ifndef DESKTOP_VERSION
2167 if ( Ir::supported() ) fileMenu->insertItem( i18n("&Beam"), beamMenu ); 2168 if ( Ir::supported() ) fileMenu->insertItem( i18n("&Beam"), beamMenu );
2168#endif 2169#endif
2169#if 0 2170#if 0
2170 // PENDING fix MailVCard 2171 // PENDING fix MailVCard
2171 fileMenu->insertSeparator(); 2172 fileMenu->insertSeparator();
2172 mActionMailVCard->plug( fileMenu ); 2173 mActionMailVCard->plug( fileMenu );
2173#endif 2174#endif
2174#ifndef DESKTOP_VERSION 2175#ifndef DESKTOP_VERSION
2175 if ( Ir::supported() ) mActionBR->plug( beamMenu ); 2176 if ( Ir::supported() ) mActionBR->plug( beamMenu );
2176 if ( Ir::supported() ) mActionBeamVCard->plug( beamMenu ); 2177 if ( Ir::supported() ) mActionBeamVCard->plug( beamMenu );
2177 if ( Ir::supported() ) mActionBeam->plug( beamMenu ); 2178 if ( Ir::supported() ) mActionBeam->plug( beamMenu );
2178#endif 2179#endif
2179 fileMenu->insertSeparator(); 2180 fileMenu->insertSeparator();
2180 mActionQuit->plug( fileMenu ); 2181 mActionQuit->plug( fileMenu );
2181#ifdef _WIN32_ 2182#ifdef _OL_IMPORT_
2182 mActionImportOL->plug( ImportMenu ); 2183 mActionImportOL->plug( ImportMenu );
2183#endif 2184#endif
2184 // edit menu 2185 // edit menu
2185 mActionUndo->plug( editMenu ); 2186 mActionUndo->plug( editMenu );
2186 mActionRedo->plug( editMenu ); 2187 mActionRedo->plug( editMenu );
2187 editMenu->insertSeparator(); 2188 editMenu->insertSeparator();
2188 mActionCut->plug( editMenu ); 2189 mActionCut->plug( editMenu );
2189 mActionCopy->plug( editMenu ); 2190 mActionCopy->plug( editMenu );
2190 mActionPaste->plug( editMenu ); 2191 mActionPaste->plug( editMenu );
2191 mActionDelete->plug( editMenu ); 2192 mActionDelete->plug( editMenu );
2192 editMenu->insertSeparator(); 2193 editMenu->insertSeparator();
2193 mActionSelectAll->plug( editMenu ); 2194 mActionSelectAll->plug( editMenu );
2194 2195
2195 mActionSetFormattedName->plug( changeMenu ); 2196 mActionSetFormattedName->plug( changeMenu );
2196 mActionRemoveVoice->plug( changeMenu ); 2197 mActionRemoveVoice->plug( changeMenu );
2197 // settings menu 2198 // settings menu
2198//US special menuentry to configure the addressbook resources. On KDE 2199//US special menuentry to configure the addressbook resources. On KDE
2199// you do that through the control center !!! 2200// you do that through the control center !!!
2200 mActionConfigResources->plug( settingsMenu ); 2201 mActionConfigResources->plug( settingsMenu );
2201 settingsMenu->insertSeparator(); 2202 settingsMenu->insertSeparator();
2202 2203
2203 mActionConfigKAddressbook->plug( settingsMenu ); 2204 mActionConfigKAddressbook->plug( settingsMenu );
2204 2205
2205 if ( mIsPart ) { 2206 if ( mIsPart ) {
2206 //US not implemented yet 2207 //US not implemented yet
2207 //mActionConfigShortcuts->plug( settingsMenu ); 2208 //mActionConfigShortcuts->plug( settingsMenu );
2208 //mActionConfigureToolbars->plug( settingsMenu ); 2209 //mActionConfigureToolbars->plug( settingsMenu );
2209 2210
2210 } else { 2211 } else {
2211 //US not implemented yet 2212 //US not implemented yet
2212 //mActionKeyBindings->plug( settingsMenu ); 2213 //mActionKeyBindings->plug( settingsMenu );
2213 } 2214 }
2214 2215
2215 settingsMenu->insertSeparator(); 2216 settingsMenu->insertSeparator();
2216 2217
2217 mActionJumpBar->plug( settingsMenu ); 2218 mActionJumpBar->plug( settingsMenu );
2218 mActionDetails->plug( settingsMenu ); 2219 mActionDetails->plug( settingsMenu );
2219 //if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop ) 2220 //if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop )
2220 mActionDetails->plug( tb ); 2221 mActionDetails->plug( tb );
2221 settingsMenu->insertSeparator(); 2222 settingsMenu->insertSeparator();
2222#ifndef DESKTOP_VERSION 2223#ifndef DESKTOP_VERSION
2223 if ( Ir::supported() ) mActionBR->plug(settingsMenu ); 2224 if ( Ir::supported() ) mActionBR->plug(settingsMenu );
2224#endif
2225 settingsMenu->insertSeparator(); 2225 settingsMenu->insertSeparator();
2226#endif
2226 2227
2227 mActionWhoAmI->plug( settingsMenu ); 2228 mActionWhoAmI->plug( settingsMenu );
2228 mActionEditCategories->plug( settingsMenu ); 2229 mActionEditCategories->plug( settingsMenu );
2229 mActionEditCategories->plug( changeMenu ); 2230 mActionEditCategories->plug( changeMenu );
2230 mActionCategories->plug( changeMenu ); 2231 mActionCategories->plug( changeMenu );
2231 mActionManageCategories->plug( changeMenu ); 2232 mActionManageCategories->plug( changeMenu );
2232 2233
2233 mActionCategories->plug( settingsMenu ); 2234 mActionCategories->plug( settingsMenu );
2234 mActionManageCategories->plug( settingsMenu ); 2235 mActionManageCategories->plug( settingsMenu );
2235 2236
2236 2237
2237 mActionWN->plug( helpMenu ); 2238 mActionWN->plug( helpMenu );
2238 mActionSyncHowto->plug( helpMenu ); 2239 mActionSyncHowto->plug( helpMenu );
2239 mActionKdeSyncHowto->plug( helpMenu ); 2240 mActionKdeSyncHowto->plug( helpMenu );
2240 mActionMultiSyncHowto->plug( helpMenu ); 2241 mActionMultiSyncHowto->plug( helpMenu );
2241 mActionFaq->plug( helpMenu ); 2242 mActionFaq->plug( helpMenu );
2242 mActionLicence->plug( helpMenu ); 2243 mActionLicence->plug( helpMenu );
2243 mActionAboutKAddressbook->plug( helpMenu ); 2244 mActionAboutKAddressbook->plug( helpMenu );
2244 2245
2245 if (KGlobal::getDesktopSize() > KGlobal::Small ) { 2246 if (KGlobal::getDesktopSize() > KGlobal::Small ) {
2246 2247
2247 mActionSave->plug( tb ); 2248 mActionSave->plug( tb );
2248 mViewManager->getFilterAction()->plug ( tb); 2249 mViewManager->getFilterAction()->plug ( tb);
2249 //LR hide filteraction on started in 480x640 2250 //LR hide filteraction on started in 480x640
2250 if (QApplication::desktop()->width() == 480 ) { 2251 if (QApplication::desktop()->width() == 480 ) {
2251 mViewManager->getFilterAction()->setComboWidth( 0 ); 2252 mViewManager->getFilterAction()->setComboWidth( 0 );
2252 } 2253 }
2253 mActionUndo->plug( tb ); 2254 mActionUndo->plug( tb );
2254 mActionDelete->plug( tb ); 2255 mActionDelete->plug( tb );
2255 mActionRedo->plug( tb ); 2256 mActionRedo->plug( tb );
2256 } else { 2257 } else {
2257 mActionSave->plug( tb ); 2258 mActionSave->plug( tb );
2258 tb->enableMoving(false); 2259 tb->enableMoving(false);
2259 } 2260 }
2260 //mActionQuit->plug ( tb ); 2261 //mActionQuit->plug ( tb );
2261 // tb->insertWidget(-1, 0, mIncSearchWidget, 6); 2262 // tb->insertWidget(-1, 0, mIncSearchWidget, 6);
2262 2263
2263 //US link the searchwidget first to this. 2264 //US link the searchwidget first to this.
2264 // The real linkage to the toolbar happens later. 2265 // The real linkage to the toolbar happens later.
2265//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE); 2266//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE);
2266//US tb->insertItem( mIncSearchWidget ); 2267//US tb->insertItem( mIncSearchWidget );
2267/*US 2268/*US
2268 mIncSearchWidget = new IncSearchWidget( tb ); 2269 mIncSearchWidget = new IncSearchWidget( tb );
2269 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 2270 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
2270 SLOT( incrementalSearch( const QString& ) ) ); 2271 SLOT( incrementalSearch( const QString& ) ) );
2271 2272
2272 mJumpButtonBar = new JumpButtonBar( this, this ); 2273 mJumpButtonBar = new JumpButtonBar( this, this );
2273 2274
2274//US topLayout->addWidget( mJumpButtonBar ); 2275//US topLayout->addWidget( mJumpButtonBar );
2275 this->layout()->add( mJumpButtonBar ); 2276 this->layout()->add( mJumpButtonBar );
2276*/ 2277*/
2277 2278
2278#endif //KAB_EMBEDDED 2279#endif //KAB_EMBEDDED
2279 2280
2280 mActionExport2phone->plug( ExportMenu ); 2281 mActionExport2phone->plug( ExportMenu );
2281 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) ); 2282 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) );
2282 syncManager->fillSyncMenu(); 2283 syncManager->fillSyncMenu();
2283 2284
2284} 2285}
2285void KABCore::showLicence() 2286void KABCore::showLicence()
2286{ 2287{
2287 KApplication::showLicence(); 2288 KApplication::showLicence();
2288} 2289}
2289 2290
2290void KABCore::manageCategories( ) 2291void KABCore::manageCategories( )
2291{ 2292{
2292 KABCatPrefs* cp = new KABCatPrefs(); 2293 KABCatPrefs* cp = new KABCatPrefs();
2293 cp->show(); 2294 cp->show();
2294 int w =cp->sizeHint().width() ; 2295 int w =cp->sizeHint().width() ;
2295 int h = cp->sizeHint().height() ; 2296 int h = cp->sizeHint().height() ;
2296 int dw = QApplication::desktop()->width(); 2297 int dw = QApplication::desktop()->width();
2297 int dh = QApplication::desktop()->height(); 2298 int dh = QApplication::desktop()->height();
2298 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2299 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2299 if ( !cp->exec() ) { 2300 if ( !cp->exec() ) {
2300 delete cp; 2301 delete cp;
2301 return; 2302 return;
2302 } 2303 }
2303 int count = 0; 2304 int count = 0;
2304 int cc = 0; 2305 int cc = 0;
2305 message( i18n("Please wait, processing categories...")); 2306 message( i18n("Please wait, processing categories..."));
2306 if ( cp->addCat() ) { 2307 if ( cp->addCat() ) {
2307 KABC::AddressBook::Iterator it; 2308 KABC::AddressBook::Iterator it;
2308 QStringList catList = KABPrefs::instance()->mCustomCategories; 2309 QStringList catList = KABPrefs::instance()->mCustomCategories;
2309 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2310 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2310 ++cc; 2311 ++cc;
2311 if ( cc %10 == 0) 2312 if ( cc %10 == 0)
2312 message(i18n("Processing contact #%1").arg(cc)); 2313 message(i18n("Processing contact #%1").arg(cc));
2313 QStringList catIncList = (*it).categories(); 2314 QStringList catIncList = (*it).categories();
2314 int i; 2315 int i;
2315 for( i = 0; i< catIncList.count(); ++i ) { 2316 for( i = 0; i< catIncList.count(); ++i ) {
2316 if ( !catList.contains (catIncList[i])) { 2317 if ( !catList.contains (catIncList[i])) {
2317 catList.append( catIncList[i] ); 2318 catList.append( catIncList[i] );
2318 //qDebug("add cat %s ", catIncList[i].latin1()); 2319 //qDebug("add cat %s ", catIncList[i].latin1());
2319 ++count; 2320 ++count;
2320 } 2321 }
2321 } 2322 }
2322 } 2323 }
2323 catList.sort(); 2324 catList.sort();
2324 KABPrefs::instance()->mCustomCategories = catList; 2325 KABPrefs::instance()->mCustomCategories = catList;
2325 KABPrefs::instance()->writeConfig(); 2326 KABPrefs::instance()->writeConfig();
2326 message(QString::number( count )+ i18n(" categories added to list! ")); 2327 message(QString::number( count )+ i18n(" categories added to list! "));
2327 } else { 2328 } else {
2328 QStringList catList = KABPrefs::instance()->mCustomCategories; 2329 QStringList catList = KABPrefs::instance()->mCustomCategories;
2329 QStringList catIncList; 2330 QStringList catIncList;
2330 QStringList newCatList; 2331 QStringList newCatList;
2331 KABC::AddressBook::Iterator it; 2332 KABC::AddressBook::Iterator it;
2332 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2333 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2333 ++cc; 2334 ++cc;
2334 if ( cc %10 == 0) 2335 if ( cc %10 == 0)
2335 message(i18n("Processing contact #%1").arg(cc)); 2336 message(i18n("Processing contact #%1").arg(cc));
2336 QStringList catIncList = (*it).categories(); 2337 QStringList catIncList = (*it).categories();
2337 int i; 2338 int i;
2338 if ( catIncList.count() ) { 2339 if ( catIncList.count() ) {
2339 newCatList.clear(); 2340 newCatList.clear();
2340 for( i = 0; i< catIncList.count(); ++i ) { 2341 for( i = 0; i< catIncList.count(); ++i ) {
2341 if ( catList.contains (catIncList[i])) { 2342 if ( catList.contains (catIncList[i])) {
2342 newCatList.append( catIncList[i] ); 2343 newCatList.append( catIncList[i] );
2343 } 2344 }
2344 } 2345 }
2345 newCatList.sort(); 2346 newCatList.sort();
2346 (*it).setCategories( newCatList ); 2347 (*it).setCategories( newCatList );
2347 mAddressBook->insertAddressee( (*it) ); 2348 mAddressBook->insertAddressee( (*it) );
2348 } 2349 }
2349 } 2350 }
2350 setModified( true ); 2351 setModified( true );
2351 mViewManager->refreshView(); 2352 mViewManager->refreshView();
2352 message( i18n("Removing categories done!")); 2353 message( i18n("Removing categories done!"));
2353 } 2354 }
2354 delete cp; 2355 delete cp;
2355} 2356}
2356void KABCore::removeVoice() 2357void KABCore::removeVoice()
2357{ 2358{
2358 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 ) 2359 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 )
2359 return; 2360 return;
2360 XXPortSelectDialog dlg( this, false, this ); 2361 XXPortSelectDialog dlg( this, false, this );
2361 if ( !dlg.exec() ) 2362 if ( !dlg.exec() )
2362 return; 2363 return;
2363 mAddressBook->setUntagged(); 2364 mAddressBook->setUntagged();
2364 dlg.tagSelected(); 2365 dlg.tagSelected();
2365 message(i18n("Removing voice..."), false ); 2366 message(i18n("Removing voice..."), false );
2366 KABC::AddressBook::Iterator it; 2367 KABC::AddressBook::Iterator it;
2367 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2368 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2368 if ( (*it).tagged() ) { 2369 if ( (*it).tagged() ) {
2369 (*it).removeVoice(); 2370 (*it).removeVoice();
2370 } 2371 }
2371 } 2372 }
2372 message(i18n("Refreshing view...") ); 2373 message(i18n("Refreshing view...") );
2373 qApp->processEvents(); 2374 qApp->processEvents();
2374 mViewManager->refreshView( "" ); 2375 mViewManager->refreshView( "" );
2375 Addressee add; 2376 Addressee add;
2376 mDetails->setAddressee( add ); 2377 mDetails->setAddressee( add );
2377 message(i18n("Remove voice completed!") ); 2378 message(i18n("Remove voice completed!") );
2378 2379
2379 2380
2380 2381
2381} 2382}
2382 2383
2383void KABCore::setFormattedName() 2384void KABCore::setFormattedName()
2384{ 2385{
2385 KABFormatPrefs setpref; 2386 KABFormatPrefs setpref;
2386 if ( !setpref.exec() ) { 2387 if ( !setpref.exec() ) {
2387 return; 2388 return;
2388 } 2389 }
2389 XXPortSelectDialog dlg( this, false, this ); 2390 XXPortSelectDialog dlg( this, false, this );
2390 if ( !dlg.exec() ) 2391 if ( !dlg.exec() )
2391 return; 2392 return;
2392 mAddressBook->setUntagged(); 2393 mAddressBook->setUntagged();
2393 dlg.tagSelected(); 2394 dlg.tagSelected();
2394 int count = 0; 2395 int count = 0;
2395 KABC::AddressBook::Iterator it; 2396 KABC::AddressBook::Iterator it;
2396 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2397 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2397 if ( (*it).tagged() ) { 2398 if ( (*it).tagged() ) {
2398 ++count; 2399 ++count;
2399 if ( count %10 == 0 ) 2400 if ( count %10 == 0 )
2400 message(i18n("Changing contact #%1").arg( count ) ); 2401 message(i18n("Changing contact #%1").arg( count ) );
2401 qApp->processEvents(); 2402 qApp->processEvents();
2402 QString fName; 2403 QString fName;
2403 if ( setpref.simple->isChecked() ) 2404 if ( setpref.simple->isChecked() )
2404 fName = NameEditDialog::formattedName( (*it), NameEditDialog::SimpleName ); 2405 fName = NameEditDialog::formattedName( (*it), NameEditDialog::SimpleName );
2405 else if ( setpref.full->isChecked() ) 2406 else if ( setpref.full->isChecked() )
2406 fName = NameEditDialog::formattedName( (*it), NameEditDialog::FullName ); 2407 fName = NameEditDialog::formattedName( (*it), NameEditDialog::FullName );
2407 else if ( setpref.reverse->isChecked() ) 2408 else if ( setpref.reverse->isChecked() )
2408 fName = NameEditDialog::formattedName( (*it), NameEditDialog::ReverseName ); 2409 fName = NameEditDialog::formattedName( (*it), NameEditDialog::ReverseName );
2409 else 2410 else
2410 fName = (*it).organization(); 2411 fName = (*it).organization();
2411 if ( setpref.setCompany->isChecked() ) 2412 if ( setpref.setCompany->isChecked() )
2412 if ( fName.isEmpty() || fName =="," ) 2413 if ( fName.isEmpty() || fName =="," )
2413 fName = (*it).organization(); 2414 fName = (*it).organization();
2414 (*it).setFormattedName( fName ); 2415 (*it).setFormattedName( fName );
2415 } 2416 }
2416 } 2417 }
2417 message(i18n("Refreshing view...") ); 2418 message(i18n("Refreshing view...") );
2418 qApp->processEvents(); 2419 qApp->processEvents();
2419 mViewManager->refreshView( "" ); 2420 mViewManager->refreshView( "" );
2420 Addressee add; 2421 Addressee add;
2421 mDetails->setAddressee( add ); 2422 mDetails->setAddressee( add );
2422 message(i18n("Setting formatted name completed!") ); 2423 message(i18n("Setting formatted name completed!") );
2423} 2424}
2424 2425
2425void KABCore::clipboardDataChanged() 2426void KABCore::clipboardDataChanged()
2426{ 2427{
2427 2428
2428 if ( mReadWrite ) 2429 if ( mReadWrite )
2429 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); 2430 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() );
2430 2431
2431} 2432}
2432 2433
2433void KABCore::updateActionMenu() 2434void KABCore::updateActionMenu()
2434{ 2435{
2435 UndoStack *undo = UndoStack::instance(); 2436 UndoStack *undo = UndoStack::instance();
2436 RedoStack *redo = RedoStack::instance(); 2437 RedoStack *redo = RedoStack::instance();
2437 2438
2438 if ( undo->isEmpty() ) 2439 if ( undo->isEmpty() )
2439 mActionUndo->setText( i18n( "Undo" ) ); 2440 mActionUndo->setText( i18n( "Undo" ) );
2440 else 2441 else
2441 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) ); 2442 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) );
2442 2443
2443 mActionUndo->setEnabled( !undo->isEmpty() ); 2444 mActionUndo->setEnabled( !undo->isEmpty() );
2444 2445
2445 if ( !redo->top() ) 2446 if ( !redo->top() )
2446 mActionRedo->setText( i18n( "Redo" ) ); 2447 mActionRedo->setText( i18n( "Redo" ) );
2447 else 2448 else
2448 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) ); 2449 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) );
2449 2450
2450 mActionRedo->setEnabled( !redo->isEmpty() ); 2451 mActionRedo->setEnabled( !redo->isEmpty() );
2451} 2452}
2452 2453
2453void KABCore::configureKeyBindings() 2454void KABCore::configureKeyBindings()
2454{ 2455{
2455#ifndef KAB_EMBEDDED 2456#ifndef KAB_EMBEDDED
2456 KKeyDialog::configure( actionCollection(), true ); 2457 KKeyDialog::configure( actionCollection(), true );
2457#else //KAB_EMBEDDED 2458#else //KAB_EMBEDDED
2458 qDebug("KABCore::configureKeyBindings() not implemented"); 2459 qDebug("KABCore::configureKeyBindings() not implemented");
2459#endif //KAB_EMBEDDED 2460#endif //KAB_EMBEDDED
2460} 2461}
2461 2462
2462#ifdef KAB_EMBEDDED 2463#ifdef KAB_EMBEDDED
2463void KABCore::configureResources() 2464void KABCore::configureResources()
2464{ 2465{
2465 KRES::KCMKResources dlg( this, "" , 0 ); 2466 KRES::KCMKResources dlg( this, "" , 0 );
2466 2467
2467 if ( !dlg.exec() ) 2468 if ( !dlg.exec() )
2468 return; 2469 return;
2469 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); 2470 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") );
2470} 2471}
2471#endif //KAB_EMBEDDED 2472#endif //KAB_EMBEDDED
2472 2473
2473 2474
2474/* this method will be called through the QCop interface from Ko/Pi to select addresses 2475/* this method will be called through the QCop interface from Ko/Pi to select addresses
2475 * for the attendees list of an event. 2476 * for the attendees list of an event.
2476 */ 2477 */
2477void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) 2478void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid)
2478{ 2479{
2479 QStringList nameList; 2480 QStringList nameList;
2480 QStringList emailList; 2481 QStringList emailList;
2481 QStringList uidList; 2482 QStringList uidList;
2482 2483
2483 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); 2484 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this);
2484 uint i=0; 2485 uint i=0;
2485 for (i=0; i < list.count(); i++) 2486 for (i=0; i < list.count(); i++)
2486 { 2487 {
2487 nameList.append(list[i].realName()); 2488 nameList.append(list[i].realName());
2488 emailList.append(list[i].preferredEmail()); 2489 emailList.append(list[i].preferredEmail());
2489 uidList.append(list[i].uid()); 2490 uidList.append(list[i].uid());
2490 } 2491 }
2491 2492
2492 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList); 2493 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList);
2493 2494
2494} 2495}
2495 2496
2496/* this method will be called through the QCop interface from Ko/Pi to select birthdays 2497/* this method will be called through the QCop interface from Ko/Pi to select birthdays
2497 * to put them into the calendar. 2498 * to put them into the calendar.
2498 */ 2499 */
2499void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid) 2500void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid)
2500{ 2501{
2501 // qDebug("KABCore::requestForBirthdayList"); 2502 // qDebug("KABCore::requestForBirthdayList");
2502 QStringList birthdayList; 2503 QStringList birthdayList;
2503 QStringList anniversaryList; 2504 QStringList anniversaryList;
2504 QStringList realNameList; 2505 QStringList realNameList;
2505 QStringList preferredEmailList; 2506 QStringList preferredEmailList;
2506 QStringList assembledNameList; 2507 QStringList assembledNameList;
2507 QStringList uidList; 2508 QStringList uidList;
2508 2509
2509 KABC::AddressBook::Iterator it; 2510 KABC::AddressBook::Iterator it;
2510 2511
2511 int count = 0; 2512 int count = 0;
2512 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2513 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2513 ++count; 2514 ++count;
2514 } 2515 }
2515 QProgressBar bar(count,0 ); 2516 QProgressBar bar(count,0 );
2516 int w = 300; 2517 int w = 300;
2517 if ( QApplication::desktop()->width() < 320 ) 2518 if ( QApplication::desktop()->width() < 320 )
2518 w = 220; 2519 w = 220;
2519 int h = bar.sizeHint().height() ; 2520 int h = bar.sizeHint().height() ;
2520 int dw = QApplication::desktop()->width(); 2521 int dw = QApplication::desktop()->width();
2521 int dh = QApplication::desktop()->height(); 2522 int dh = QApplication::desktop()->height();
2522 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2523 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2523 bar.show(); 2524 bar.show();
2524 bar.setCaption (i18n("Collecting birthdays - close to abort!") ); 2525 bar.setCaption (i18n("Collecting birthdays - close to abort!") );
2525 qApp->processEvents(); 2526 qApp->processEvents();
2526 2527
2527 QDate bday; 2528 QDate bday;
2528 QString anni; 2529 QString anni;
2529 QString formattedbday; 2530 QString formattedbday;
2530 2531
2531 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) 2532 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it )
2532 { 2533 {
2533 if ( ! bar.isVisible() ) 2534 if ( ! bar.isVisible() )
2534 return; 2535 return;
2535 bar.setProgress( count++ ); 2536 bar.setProgress( count++ );
2536 qApp->processEvents(); 2537 qApp->processEvents();
2537 bday = (*it).birthday().date(); 2538 bday = (*it).birthday().date();
2538 anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" ); 2539 anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" );
2539 2540
2540 if ( bday.isValid() || !anni.isEmpty()) 2541 if ( bday.isValid() || !anni.isEmpty())
2541 { 2542 {
2542 if (bday.isValid()) 2543 if (bday.isValid())
2543 formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate); 2544 formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate);
2544 else 2545 else
2545 formattedbday = "NOTVALID"; 2546 formattedbday = "NOTVALID";
2546 if (anni.isEmpty()) 2547 if (anni.isEmpty())
2547 anni = "INVALID"; 2548 anni = "INVALID";
2548 2549
2549 birthdayList.append(formattedbday); 2550 birthdayList.append(formattedbday);
2550 anniversaryList.append(anni); //should be ISODate 2551 anniversaryList.append(anni); //should be ISODate
2551 realNameList.append((*it).realName()); 2552 realNameList.append((*it).realName());
2552 preferredEmailList.append((*it).preferredEmail()); 2553 preferredEmailList.append((*it).preferredEmail());
2553 assembledNameList.append((*it).assembledName()); 2554 assembledNameList.append((*it).assembledName());
2554 uidList.append((*it).uid()); 2555 uidList.append((*it).uid());
2555 2556
2556 //qDebug("found birthday in KA/Pi: %s,%s,%s,%s: %s, %s", (*it).realName().latin1(), (*it).preferredEmail().latin1(), (*it).assembledName().latin1(), (*it).uid().latin1(), formattedbday.latin1(), anni.latin1() ); 2557 //qDebug("found birthday in KA/Pi: %s,%s,%s,%s: %s, %s", (*it).realName().latin1(), (*it).preferredEmail().latin1(), (*it).assembledName().latin1(), (*it).uid().latin1(), formattedbday.latin1(), anni.latin1() );
2557 } 2558 }
2558 } 2559 }
2559 2560
2560 bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList); 2561 bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList);
2561 2562
2562} 2563}
2563 2564
2564/* this method will be called through the QCop interface from other apps to show details of a contact. 2565/* this method will be called through the QCop interface from other apps to show details of a contact.
2565 */ 2566 */
2566void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid) 2567void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid)
2567{ 2568{
2568 //qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1()); 2569 //qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1());
2569 2570
2570 QString foundUid = QString::null; 2571 QString foundUid = QString::null;
2571 if ( ! uid.isEmpty() ) { 2572 if ( ! uid.isEmpty() ) {
2572 Addressee adrr = mAddressBook->findByUid( uid ); 2573 Addressee adrr = mAddressBook->findByUid( uid );
2573 if ( !adrr.isEmpty() ) { 2574 if ( !adrr.isEmpty() ) {
2574 foundUid = uid; 2575 foundUid = uid;
2575 } 2576 }
2576 if ( email == "sendbacklist" ) { 2577 if ( email == "sendbacklist" ) {
2577 //qDebug("ssssssssssssssssssssssend "); 2578 //qDebug("ssssssssssssssssssssssend ");
2578 QStringList nameList; 2579 QStringList nameList;
2579 QStringList emailList; 2580 QStringList emailList;
2580 QStringList uidList; 2581 QStringList uidList;
2581 nameList.append(adrr.realName()); 2582 nameList.append(adrr.realName());
2582 emailList = adrr.emails(); 2583 emailList = adrr.emails();
2583 uidList.append( adrr.preferredEmail()); 2584 uidList.append( adrr.preferredEmail());
2584 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList); 2585 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList);
2585 return; 2586 return;
2586 } 2587 }
2587 2588
2588 } 2589 }
2589 2590
2590 if ( email == "sendbacklist" ) 2591 if ( email == "sendbacklist" )
2591 return; 2592 return;
2592 if (foundUid.isEmpty()) 2593 if (foundUid.isEmpty())
2593 { 2594 {
2594 //find the uid of the person first 2595 //find the uid of the person first
2595 Addressee::List namelist; 2596 Addressee::List namelist;
2596 Addressee::List emaillist; 2597 Addressee::List emaillist;
2597 2598
2598 if (!name.isEmpty()) 2599 if (!name.isEmpty())
2599 namelist = mAddressBook->findByName( name ); 2600 namelist = mAddressBook->findByName( name );
2600 2601
2601 if (!email.isEmpty()) 2602 if (!email.isEmpty())
2602 emaillist = mAddressBook->findByEmail( email ); 2603 emaillist = mAddressBook->findByEmail( email );
2603 //qDebug("count %d %d ", namelist.count(),emaillist.count() ); 2604 //qDebug("count %d %d ", namelist.count(),emaillist.count() );
2604 //check if we have a match in Namelist and Emaillist 2605 //check if we have a match in Namelist and Emaillist
2605 if ((namelist.count() == 0) && (emaillist.count() > 0)) { 2606 if ((namelist.count() == 0) && (emaillist.count() > 0)) {
2606 foundUid = emaillist[0].uid(); 2607 foundUid = emaillist[0].uid();
2607 } 2608 }
2608 else if ((namelist.count() > 0) && (emaillist.count() == 0)) 2609 else if ((namelist.count() > 0) && (emaillist.count() == 0))
2609 foundUid = namelist[0].uid(); 2610 foundUid = namelist[0].uid();
2610 else 2611 else
2611 { 2612 {
2612 for (int i = 0; i < namelist.count(); i++) 2613 for (int i = 0; i < namelist.count(); i++)
2613 { 2614 {
2614 for (int j = 0; j < emaillist.count(); j++) 2615 for (int j = 0; j < emaillist.count(); j++)
2615 { 2616 {
2616 if (namelist[i] == emaillist[j]) 2617 if (namelist[i] == emaillist[j])
2617 { 2618 {
2618 foundUid = namelist[i].uid(); 2619 foundUid = namelist[i].uid();
2619 } 2620 }
2620 } 2621 }
2621 } 2622 }
2622 } 2623 }
2623 } 2624 }
2624 else 2625 else
2625 { 2626 {
2626 foundUid = uid; 2627 foundUid = uid;
2627 } 2628 }
2628 2629
2629 if (!foundUid.isEmpty()) 2630 if (!foundUid.isEmpty())
2630 { 2631 {
2631 2632
2632 // raise Ka/Pi if it is in the background 2633 // raise Ka/Pi if it is in the background
2633#ifndef DESKTOP_VERSION 2634#ifndef DESKTOP_VERSION
2634#ifndef KORG_NODCOP 2635#ifndef KORG_NODCOP
2635 //QCopEnvelope e("QPE/Application/kapi", "raise()"); 2636 //QCopEnvelope e("QPE/Application/kapi", "raise()");
2636#endif 2637#endif
2637#endif 2638#endif
2638 2639
2639 mMainWindow->showMaximized(); 2640 mMainWindow->showMaximized();
2640 mMainWindow-> raise(); 2641 mMainWindow-> raise();
2641 2642
2642 mViewManager->setSelected( "", false); 2643 mViewManager->setSelected( "", false);
2643 mViewManager->refreshView( "" ); 2644 mViewManager->refreshView( "" );
2644 mViewManager->setSelected( foundUid, true ); 2645 mViewManager->setSelected( foundUid, true );
2645 mViewManager->refreshView( foundUid ); 2646 mViewManager->refreshView( foundUid );
2646 2647
2647 if ( !mMultipleViewsAtOnce ) 2648 if ( !mMultipleViewsAtOnce )
2648 { 2649 {
2649 setDetailsVisible( true ); 2650 setDetailsVisible( true );
2650 mActionDetails->setChecked(true); 2651 mActionDetails->setChecked(true);
2651 } 2652 }
2652 } 2653 }
2653} 2654}
2654 2655
2655void KABCore::whatsnew() 2656void KABCore::whatsnew()
2656{ 2657{
2657 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" ); 2658 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" );
2658} 2659}
2659void KABCore::synchowto() 2660void KABCore::synchowto()
2660{ 2661{
2661 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); 2662 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" );
2662} 2663}
2663void KABCore::kdesynchowto() 2664void KABCore::kdesynchowto()
2664{ 2665{
2665 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" ); 2666 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" );
2666} 2667}
2667void KABCore::multisynchowto() 2668void KABCore::multisynchowto()
2668{ 2669{
2669 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" ); 2670 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" );
2670} 2671}
2671void KABCore::faq() 2672void KABCore::faq()
2672{ 2673{
2673 KApplication::showFile( "KA/Pi FAQ", "kdepim/kaddressbook/kapiFAQ.txt" ); 2674 KApplication::showFile( "KA/Pi FAQ", "kdepim/kaddressbook/kapiFAQ.txt" );
2674} 2675}
2675 2676
2676#include <libkcal/syncdefines.h> 2677#include <libkcal/syncdefines.h>
2677 2678
2678KABC::Addressee KABCore::getLastSyncAddressee() 2679KABC::Addressee KABCore::getLastSyncAddressee()
2679{ 2680{
2680 Addressee lse; 2681 Addressee lse;
2681 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); 2682 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice();
2682 2683
2683 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); 2684 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() );
2684 lse = mAddressBook->findByUid( "last-syncAddressee-"+mCurrentSyncDevice ); 2685 lse = mAddressBook->findByUid( "last-syncAddressee-"+mCurrentSyncDevice );
2685 if (lse.isEmpty()) { 2686 if (lse.isEmpty()) {
2686 qDebug("Creating new last-syncAddressee "); 2687 qDebug("Creating new last-syncAddressee ");
2687 lse.setUid( "last-syncAddressee-"+mCurrentSyncDevice ); 2688 lse.setUid( "last-syncAddressee-"+mCurrentSyncDevice );
2688 QString sum = ""; 2689 QString sum = "";
2689 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) 2690 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL )
2690 sum = "E: "; 2691 sum = "E: ";
2691 lse.setFamilyName("!"+sum+mCurrentSyncDevice + i18n(" - sync event")); 2692 lse.setFamilyName("!"+sum+mCurrentSyncDevice + i18n(" - sync event"));
2692 lse.setRevision( mLastAddressbookSync ); 2693 lse.setRevision( mLastAddressbookSync );
2693 lse.setCategories( i18n("SyncEvent") ); 2694 lse.setCategories( i18n("SyncEvent") );
2694 mAddressBook->insertAddressee( lse ); 2695 mAddressBook->insertAddressee( lse );
2695 } 2696 }
2696 return lse; 2697 return lse;
2697} 2698}
2698int KABCore::takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full ) 2699int KABCore::takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full )
2699{ 2700{
2700 2701
2701 //void setZaurusId(int id); 2702 //void setZaurusId(int id);
2702 // int zaurusId() const; 2703 // int zaurusId() const;
2703 // void setZaurusUid(int id); 2704 // void setZaurusUid(int id);
2704 // int zaurusUid() const; 2705 // int zaurusUid() const;
2705 // void setZaurusStat(int id); 2706 // void setZaurusStat(int id);
2706 // int zaurusStat() const; 2707 // int zaurusStat() const;
2707 // 0 equal 2708 // 0 equal
2708 // 1 take local 2709 // 1 take local
2709 // 2 take remote 2710 // 2 take remote
2710 // 3 cancel 2711 // 3 cancel
2711 QDateTime lastSync = mLastAddressbookSync; 2712 QDateTime lastSync = mLastAddressbookSync;
2712 QDateTime localMod = local->revision(); 2713 QDateTime localMod = local->revision();
2713 QDateTime remoteMod = remote->revision(); 2714 QDateTime remoteMod = remote->revision();
2714 2715
2715 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); 2716 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice();
2716 2717
2717 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2718 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2718 bool remCh, locCh; 2719 bool remCh, locCh;
2719 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) ); 2720 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) );
2720 if ( remCh ) 2721 if ( remCh )
2721 qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() ); 2722 qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() );
2722 locCh = ( localMod > mLastAddressbookSync ); 2723 locCh = ( localMod > mLastAddressbookSync );
2723 //qDebug("cahnged rem %d loc %d",remCh, locCh ); 2724 //qDebug("cahnged rem %d loc %d",remCh, locCh );
2724 if ( !remCh && ! locCh ) { 2725 if ( !remCh && ! locCh ) {
2725 //qDebug("both not changed "); 2726 //qDebug("both not changed ");
2726 lastSync = localMod.addDays(1); 2727 lastSync = localMod.addDays(1);
2727 if ( mode <= SYNC_PREF_ASK ) 2728 if ( mode <= SYNC_PREF_ASK )
2728 return 0; 2729 return 0;
2729 } else { 2730 } else {
2730 if ( locCh ) { 2731 if ( locCh ) {
2731 //qDebug("loc changed %s %s", localMod.toString().latin1(), mLastAddressbookSync.toString().latin1()); 2732 //qDebug("loc changed %s %s", localMod.toString().latin1(), mLastAddressbookSync.toString().latin1());
2732 lastSync = localMod.addDays( -1 ); 2733 lastSync = localMod.addDays( -1 );
2733 if ( !remCh ) 2734 if ( !remCh )
2734 remoteMod =( lastSync.addDays( -1 ) ); 2735 remoteMod =( lastSync.addDays( -1 ) );
2735 } else { 2736 } else {
2736 //qDebug(" not loc changed "); 2737 //qDebug(" not loc changed ");
2737 lastSync = localMod.addDays( 1 ); 2738 lastSync = localMod.addDays( 1 );
diff --git a/kaddressbook/kaddressbook.pro b/kaddressbook/kaddressbook.pro
index fbbc026..e73de06 100644
--- a/kaddressbook/kaddressbook.pro
+++ b/kaddressbook/kaddressbook.pro
@@ -1,184 +1,177 @@
1 TEMPLATE= app 1 TEMPLATE= app
2 CONFIG = qt warn_on 2 CONFIG = qt warn_on
3 TARGET = kapi 3 TARGET = kapi
4DESTDIR= ../bin 4DESTDIR= ../bin
5 5
6include( ../variables.pri ) 6include( ../variables.pri )
7 7
8 8
9INCLUDEPATH += . ./details ./features ./xxport ../libkdepim ../microkde ../microkde/kdecore ../microkde/kutils ../microkde/kio/kfile ../microkde/kio/kio ../microkde/kdeui ../microkde/kresources ../kabc ../ interfaces 9INCLUDEPATH += . ./details ./features ./xxport ../libkdepim ../microkde ../microkde/kdecore ../microkde/kutils ../microkde/kio/kfile ../microkde/kio/kio ../microkde/kdeui ../microkde/kresources ../kabc ../ interfaces
10DEFINES += KAB_EMBEDDED KAB_NOSPLITTER DESKTOP_VERSION 10DEFINES += KAB_EMBEDDED KAB_NOSPLITTER DESKTOP_VERSION
11 11
12unix : { 12unix : {
13LIBS += ../bin/libmicrokdepim.so 13LIBS += ../bin/libmicrokdepim.so
14LIBS += ../bin/libmicrokde.so 14LIBS += ../bin/libmicrokde.so
15LIBS += ../bin/libmicrokabc.so 15LIBS += ../bin/libmicrokabc.so
16LIBS += ../bin/libmicrokcal.so 16LIBS += ../bin/libmicrokcal.so
17#LIBS += -lldap 17#LIBS += -lldap
18OBJECTS_DIR = obj/unix 18OBJECTS_DIR = obj/unix
19MOC_DIR = moc/unix 19MOC_DIR = moc/unix
20} 20}
21win32: { 21win32: {
22RC_FILE = winicons.rc 22RC_FILE = winicons.rc
23DEFINES += _WIN32_ 23DEFINES += _WIN32_
24LIBS += ../bin/microkdepim.lib 24LIBS += ../bin/microkdepim.lib
25LIBS += ../bin/microkcal.lib 25LIBS += ../bin/microkcal.lib
26LIBS += ../bin/microkde.lib 26LIBS += ../bin/microkde.lib
27LIBS += ../bin/microkabc.lib 27LIBS += ../bin/microkabc.lib
28QMAKE_LINK += /NODEFAULTLIB:LIBC 28QMAKE_LINK += /NODEFAULTLIB:LIBC
29OBJECTS_DIR = obj/win 29OBJECTS_DIR = obj/win
30MOC_DIR = moc/win 30MOC_DIR = moc/win
31#olimport section
32#blabla: {
33
31LIBS += mfc71u.lib 34LIBS += mfc71u.lib
35DEFINES += _OL_IMPORT_
36HEADERS = ../outport/msoutl9.h \
37 kaimportoldialog.h
38SOURCES = ../outport/msoutl9.cpp \
39 kaimportoldialog.cpp
40#}
41#olimport section end
32} 42}
33 43
34
35
36
37
38
39
40
41INTERFACES = \ 44INTERFACES = \
42# filteredit_base.ui \ 45# filteredit_base.ui \
43# kofilterview_base.ui \ 46# kofilterview_base.ui \
44 47
45HEADERS = \ 48HEADERS += \
46features/mergewidget.h \ 49features/mergewidget.h \
47features/distributionlistwidget.h \ 50features/distributionlistwidget.h \
48kcmconfigs/addresseewidget.h \ 51kcmconfigs/addresseewidget.h \
49kcmconfigs/extensionconfigdialog.h \ 52kcmconfigs/extensionconfigdialog.h \
50kcmconfigs/kcmkabconfig.h \ 53kcmconfigs/kcmkabconfig.h \
51kcmconfigs/kabconfigwidget.h \ 54kcmconfigs/kabconfigwidget.h \
52addresseeeditordialog.h \ 55addresseeeditordialog.h \
53addresseeeditorwidget.h \ 56addresseeeditorwidget.h \
54addresseditwidget.h \ 57addresseditwidget.h \
55addresseeconfig.h \ 58addresseeconfig.h \
56addresseeutil.h \ 59addresseeutil.h \
57emaileditwidget.h \ 60emaileditwidget.h \
58filtereditdialog.h \ 61filtereditdialog.h \
59kaddressbookmain.h \ 62kaddressbookmain.h \
60kabprefs.h \ 63kabprefs.h \
61kabcore.h \ 64kabcore.h \
62viewmanager.h \ 65viewmanager.h \
63extensionmanager.h \ 66extensionmanager.h \
64extensionwidget.h \ 67extensionwidget.h \
65kaddressbookview.h \ 68kaddressbookview.h \
66geowidget.h \ 69geowidget.h \
67imagewidget.h \ 70imagewidget.h \
68incsearchwidget.h \ 71incsearchwidget.h \
69jumpbuttonbar.h \ 72jumpbuttonbar.h \
70phoneeditwidget.h \ 73phoneeditwidget.h \
71secrecywidget.h \ 74secrecywidget.h \
72keywidget.h \ 75keywidget.h \
73nameeditdialog.h \ 76nameeditdialog.h \
74filter.h \ 77filter.h \
75addviewdialog.h \ 78addviewdialog.h \
76configurewidget.h \ 79configurewidget.h \
77viewconfigurewidget.h \ 80viewconfigurewidget.h \
78viewconfigurefieldspage.h \ 81viewconfigurefieldspage.h \
79viewconfigurefilterpage.h \ 82viewconfigurefilterpage.h \
80typecombo.h \ 83typecombo.h \
81undo.h \ 84undo.h \
82undocmds.h \ 85undocmds.h \
83xxportmanager.h \ 86xxportmanager.h \
84xxportobject.h \ 87xxportobject.h \
85xxportselectdialog.h \ 88xxportselectdialog.h \
86details/detailsviewcontainer.h \ 89details/detailsviewcontainer.h \
87details/look_basic.h \ 90details/look_basic.h \
88details/look_html.h \ 91details/look_html.h \
89views/kaddressbookiconview.h \ 92views/kaddressbookiconview.h \
90views/kaddressbooktableview.h \ 93views/kaddressbooktableview.h \
91views/kaddressbookcardview.h \ 94views/kaddressbookcardview.h \
92views/configuretableviewdialog.h \ 95views/configuretableviewdialog.h \
93views/configurecardviewdialog.h \ 96views/configurecardviewdialog.h \
94views/cardview.h \ 97views/cardview.h \
95views/colorlistbox.h \ 98views/colorlistbox.h \
96views/contactlistview.h \ 99views/contactlistview.h \
97xxport/vcard_xxport.h \ 100xxport/vcard_xxport.h \
98xxport/kde2_xxport.h \ 101xxport/kde2_xxport.h \
99xxport/csv_xxport.h \ 102xxport/csv_xxport.h \
100xxport/csvimportdialog.h \ 103xxport/csvimportdialog.h \
101xxport/opie_xxport.h \ 104xxport/opie_xxport.h \
102xxport/qtopia_xxport.h \ 105xxport/qtopia_xxport.h \
103xxport/sharpdtm_xxport.h \ 106xxport/sharpdtm_xxport.h \
104#details/look_details.h \ 107#details/look_details.h \
105#mainwindoiw.h \ 108#mainwindoiw.h \
106# alarmclient.h \ 109# alarmclient.h \
107# calendarview.h \ 110# calendarview.h \
108# customlistviewitem.h \ 111# customlistviewitem.h \
109# datenavigator.h 112# datenavigator.h
110 113
111SOURCES = \ 114SOURCES += \
112addresseeeditordialog.cpp \ 115addresseeeditordialog.cpp \
113addresseeeditorwidget.cpp \ 116addresseeeditorwidget.cpp \
114addresseditwidget.cpp \ 117addresseditwidget.cpp \
115addresseeconfig.cpp \ 118addresseeconfig.cpp \
116addresseeutil.cpp \ 119addresseeutil.cpp \
117extensionmanager.cpp \ 120extensionmanager.cpp \
118features/mergewidget.cpp \ 121features/mergewidget.cpp \
119features/distributionlistwidget.cpp \ 122features/distributionlistwidget.cpp \
120kcmconfigs/addresseewidget.cpp \ 123kcmconfigs/addresseewidget.cpp \
121kcmconfigs/extensionconfigdialog.cpp \ 124kcmconfigs/extensionconfigdialog.cpp \
122kcmconfigs/kcmkabconfig.cpp \ 125kcmconfigs/kcmkabconfig.cpp \
123kcmconfigs/kabconfigwidget.cpp \ 126kcmconfigs/kabconfigwidget.cpp \
124emaileditwidget.cpp \ 127emaileditwidget.cpp \
125filtereditdialog.cpp \ 128filtereditdialog.cpp \
126mainembedded.cpp \ 129mainembedded.cpp \
127kaddressbookmain.cpp \ 130kaddressbookmain.cpp \
128kabcore.cpp \ 131kabcore.cpp \
129kabprefs.cpp \ 132kabprefs.cpp \
130viewmanager.cpp \ 133viewmanager.cpp \
131kaddressbookview.cpp \ 134kaddressbookview.cpp \
132extensionwidget.cpp \ 135extensionwidget.cpp \
133geowidget.cpp \ 136geowidget.cpp \
134imagewidget.cpp \ 137imagewidget.cpp \
135incsearchwidget.cpp \ 138incsearchwidget.cpp \
136jumpbuttonbar.cpp \ 139jumpbuttonbar.cpp \
137phoneeditwidget.cpp \ 140phoneeditwidget.cpp \
138secrecywidget.cpp \ 141secrecywidget.cpp \
139keywidget.cpp \ 142keywidget.cpp \
140nameeditdialog.cpp \ 143nameeditdialog.cpp \
141filter.cpp \ 144filter.cpp \
142addviewdialog.cpp \ 145addviewdialog.cpp \
143configurewidget.cpp \ 146configurewidget.cpp \
144viewconfigurewidget.cpp \ 147viewconfigurewidget.cpp \
145viewconfigurefieldspage.cpp \ 148viewconfigurefieldspage.cpp \
146viewconfigurefilterpage.cpp \ 149viewconfigurefilterpage.cpp \
147undo.cpp \ 150undo.cpp \
148undocmds.cpp \ 151undocmds.cpp \
149xxportmanager.cpp \ 152xxportmanager.cpp \
150xxportobject.cpp \ 153xxportobject.cpp \
151xxportselectdialog.cpp \ 154xxportselectdialog.cpp \
152details/detailsviewcontainer.cpp \ 155details/detailsviewcontainer.cpp \
153details/look_basic.cpp \ 156details/look_basic.cpp \
154details/look_html.cpp \ 157details/look_html.cpp \
155views/kaddressbookiconview.cpp \ 158views/kaddressbookiconview.cpp \
156views/kaddressbooktableview.cpp \ 159views/kaddressbooktableview.cpp \
157views/kaddressbookcardview.cpp \ 160views/kaddressbookcardview.cpp \
158views/configuretableviewdialog.cpp \ 161views/configuretableviewdialog.cpp \
159views/configurecardviewdialog.cpp \ 162views/configurecardviewdialog.cpp \
160views/cardview.cpp \ 163views/cardview.cpp \
161views/contactlistview.cpp \ 164views/contactlistview.cpp \
162views/colorlistbox.cpp \ 165views/colorlistbox.cpp \
163xxport/vcard_xxport.cpp \ 166xxport/vcard_xxport.cpp \
164xxport/kde2_xxport.cpp \ 167xxport/kde2_xxport.cpp \
165xxport/csv_xxport.cpp \ 168xxport/csv_xxport.cpp \
166xxport/csvimportdialog.cpp \ 169xxport/csvimportdialog.cpp \
167xxport/opie_xxport.cpp \ 170xxport/opie_xxport.cpp \
168xxport/qtopia_xxport.cpp \ 171xxport/qtopia_xxport.cpp \
169xxport/sharpdtm_xxport.cpp \ 172xxport/sharpdtm_xxport.cpp \
170#details/look_details.cpp \ 173#details/look_details.cpp \
171#mainwindow.cpp \ 174#mainwindow.cpp \
172# calendarview.cpp \ 175# calendarview.cpp \
173# timespanview.cpp 176# timespanview.cpp
174 177
175
176
177win32: {
178HEADERS += ../outport/msoutl9.h \
179 kaimportoldialog.h
180
181SOURCES += ../outport/msoutl9.cpp \
182 kaimportoldialog.cpp
183}
184
diff --git a/kaddressbook/mainembedded.cpp b/kaddressbook/mainembedded.cpp
index 1e03dba..d9968f3 100644
--- a/kaddressbook/mainembedded.cpp
+++ b/kaddressbook/mainembedded.cpp
@@ -1,100 +1,102 @@
1#ifndef DESKTOP_VERSION 1#ifndef DESKTOP_VERSION
2#include <qpe/qpeapplication.h> 2#include <qpe/qpeapplication.h>
3#include <qcopchannel_qws.h> 3#include <qcopchannel_qws.h>
4#include <stdlib.h> 4#include <stdlib.h>
5#else 5#else
6#include <qapplication.h> 6#include <qapplication.h>
7#include <qwindowsstyle.h> 7#include <qwindowsstyle.h>
8#include <qplatinumstyle.h> 8#include <qplatinumstyle.h>
9#include <qmainwindow.h> 9#include <qmainwindow.h>
10#include <qmessagebox.h>
11#include <stdlib.h>
10#endif 12#endif
11 13
12#include <qtextcodec.h> 14#include <qtextcodec.h>
13#include <kstandarddirs.h> 15#include <kstandarddirs.h>
14#include <qregexp.h> 16#include <qregexp.h>
15#include <kglobal.h> 17#include <kglobal.h>
16#include <stdio.h> 18#include <stdio.h>
17#include <qdir.h> 19#include <qdir.h>
18#include "kabprefs.h" 20#include "kabprefs.h"
19#include "kaddressbookmain.h" 21#include "kaddressbookmain.h"
20#include "externalapphandler.h" 22#include "externalapphandler.h"
21#include <libkdepim/kpimglobalprefs.h> 23#include <libkdepim/kpimglobalprefs.h>
22void dumpMissing(); 24void dumpMissing();
23int main( int argc, char **argv ) 25int main( int argc, char **argv )
24{ 26{
25#ifndef DESKTOP_VERSION 27#ifndef DESKTOP_VERSION
26 QPEApplication a( argc, argv ); 28 QPEApplication a( argc, argv );
27 a.setKeepRunning (); 29 a.setKeepRunning ();
28#else 30#else
29 QApplication a( argc, argv ); 31 QApplication a( argc, argv );
30 QApplication::setStyle( new QPlatinumStyle ()); 32 QApplication::setStyle( new QPlatinumStyle ());
31 QString hdir = QDir::homeDirPath(); 33#ifdef _WIN32_
32 // there is a bug when creating dirs for WIN 98 34 QString hdir ( getenv( "HOME") );
33 // it is difficult to fix, because we have no WIN 98 runnung 35 if ( hdir.isEmpty() ) {
34 // such that we try it to create the dirs at startup here 36 QString hd ("C:/" );
35 if ( hdir == "C:\\" ) { // win 98 or ME 37 //QMessageBox::information(0,"hh",QDir::homeDirPath()+" xx" +hd );
36 QDir app_dir; 38 if ( QDir::homeDirPath().lower() == hd.lower() ) {
37 if ( !app_dir.exists("C:\\kdepim") ) 39 _putenv( "HOME=C:");
38 app_dir.mkdir ("C:\\kdepim"); 40 //QMessageBox::information(0,"hh",QString ( getenv( "HOME") ) );
39 if ( !app_dir.exists("C:\\kdepim\\apps") ) 41 }
40 app_dir.mkdir ("C:\\kdepim\\apps"); 42 } else {
41 if ( !app_dir.exists("C:\\kdepim\\config") ) 43 QDir app_dir;
42 app_dir.mkdir ("C:\\kdepim\\config"); 44 if ( !app_dir.exists(hdir) )
43 if ( !app_dir.exists("C:\\kdepim\\apps\\kaddressbook") ) 45 app_dir.mkdir (hdir);
44 app_dir.mkdir ("C:\\kdepim\\apps\\kaddressbook");
45 } 46 }
46#endif 47#endif
48#endif
47 49
48 bool exitHelp = false; 50 bool exitHelp = false;
49 if ( argc > 1 ) { 51 if ( argc > 1 ) {
50 QString command = argv[1]; 52 QString command = argv[1];
51 if ( command == "-help" ){ 53 if ( command == "-help" ){
52 printf("KA/E command line commands:\n"); 54 printf("KA/E command line commands:\n");
53 printf(" no command: Start KA/E in usual way\n"); 55 printf(" no command: Start KA/E in usual way\n");
54 printf(" -help: This output\n"); 56 printf(" -help: This output\n");
55 printf(" KA/E is exiting now. Bye!\n"); 57 printf(" KA/E is exiting now. Bye!\n");
56 exitHelp = true; 58 exitHelp = true;
57 } 59 }
58 } 60 }
59 if ( ! exitHelp ) { 61 if ( ! exitHelp ) {
60 62
61 KGlobal::setAppName( "kaddressbook" ); 63 KGlobal::setAppName( "kaddressbook" );
62#ifndef DESKTOP_VERSION 64#ifndef DESKTOP_VERSION
63 if ( QApplication::desktop()->width() > 320 ) 65 if ( QApplication::desktop()->width() > 320 )
64 KGlobal::iconLoader()->setIconPath(QString(getenv("QPEDIR"))+"/pics/kdepim/kaddressbook/icons22/"); 66 KGlobal::iconLoader()->setIconPath(QString(getenv("QPEDIR"))+"/pics/kdepim/kaddressbook/icons22/");
65 else 67 else
66 KGlobal::iconLoader()->setIconPath(QString(getenv("QPEDIR"))+"/pics/kdepim/kaddressbook/icons16/"); 68 KGlobal::iconLoader()->setIconPath(QString(getenv("QPEDIR"))+"/pics/kdepim/kaddressbook/icons16/");
67#else 69#else
68 QString fileName ; 70 QString fileName ;
69 fileName = qApp->applicationDirPath () + "/kdepim/kaddressbook/icons22/"; 71 fileName = qApp->applicationDirPath () + "/kdepim/kaddressbook/icons22/";
70 KGlobal::iconLoader()->setIconPath(QDir::convertSeparators(fileName)); 72 KGlobal::iconLoader()->setIconPath(QDir::convertSeparators(fileName));
71 QApplication::addLibraryPath ( qApp->applicationDirPath () ); 73 QApplication::addLibraryPath ( qApp->applicationDirPath () );
72 74
73#endif 75#endif
74 KStandardDirs::setAppDir( QDir::convertSeparators(locateLocal("data", "kaddressbook"))); 76 KStandardDirs::setAppDir( QDir::convertSeparators(locateLocal("data", "kaddressbook")));
75 // init language 77 // init language
76 KPimGlobalPrefs::instance()->setGlobalConfig(); 78 KPimGlobalPrefs::instance()->setGlobalConfig();
77 KAddressBookMain m ; 79 KAddressBookMain m ;
78//US MainWindow m; 80//US MainWindow m;
79#ifndef DESKTOP_VERSION 81#ifndef DESKTOP_VERSION
80 QObject::connect(&a, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 82 QObject::connect(&a, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
81#endif 83#endif
82 84
83 85
84#ifndef DESKTOP_VERSION 86#ifndef DESKTOP_VERSION
85 a.showMainWidget( &m ); 87 a.showMainWidget( &m );
86 88
87#else 89#else
88 a.setMainWidget( &m ); 90 a.setMainWidget( &m );
89 m.resize (640, 480 ); 91 m.resize (640, 480 );
90 m.show(); 92 m.show();
91#endif 93#endif
92 a.exec(); 94 a.exec();
93 95
94 dumpMissing(); 96 dumpMissing();
95 97
96 KPimGlobalPrefs::instance()->writeConfig(); 98 KPimGlobalPrefs::instance()->writeConfig();
97 } 99 }
98 qDebug("KA: Bye! "); 100 qDebug("KA: Bye! ");
99} 101}
100 102