summaryrefslogtreecommitdiffabout
path: root/kaddressbook
Unidiff
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 3ab06c4..2e408b7 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1,720 +1,721 @@
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 118
119 119
120#include <kresources/selectdialog.h> 120#include <kresources/selectdialog.h>
121#include <kmessagebox.h> 121#include <kmessagebox.h>
122 122
123#include <picture.h> 123#include <picture.h>
124#include <resource.h> 124#include <resource.h>
125 125
126//US#include <qsplitter.h> 126//US#include <qsplitter.h>
127#include <qmap.h> 127#include <qmap.h>
128#include <qdir.h> 128#include <qdir.h>
129#include <qfile.h> 129#include <qfile.h>
130#include <qvbox.h> 130#include <qvbox.h>
131#include <qlayout.h> 131#include <qlayout.h>
132#include <qclipboard.h> 132#include <qclipboard.h>
133#include <qtextstream.h> 133#include <qtextstream.h>
134 134
135#include <libkdepim/categoryselectdialog.h> 135#include <libkdepim/categoryselectdialog.h>
136#include <kabc/vcardconverter.h> 136#include <kabc/vcardconverter.h>
137 137
138 138
139#include "addresseeutil.h" 139#include "addresseeutil.h"
140#include "undocmds.h" 140#include "undocmds.h"
141#include "addresseeeditordialog.h" 141#include "addresseeeditordialog.h"
142#include "viewmanager.h" 142#include "viewmanager.h"
143#include "details/detailsviewcontainer.h" 143#include "details/detailsviewcontainer.h"
144#include "kabprefs.h" 144#include "kabprefs.h"
145#include "xxportmanager.h" 145#include "xxportmanager.h"
146#include "incsearchwidget.h" 146#include "incsearchwidget.h"
147#include "jumpbuttonbar.h" 147#include "jumpbuttonbar.h"
148#include "extensionmanager.h" 148#include "extensionmanager.h"
149#include "addresseeconfig.h" 149#include "addresseeconfig.h"
150#include <kcmultidialog.h> 150#include <kcmultidialog.h>
151 151
152#ifdef _WIN32_ 152#ifdef _WIN32_
153 153
154#include "kaimportoldialog.h" 154#include "kaimportoldialog.h"
155#else 155#else
156#include <unistd.h> 156#include <unistd.h>
157#endif 157#endif
158// sync includes 158// sync includes
159#include <libkdepim/ksyncprofile.h> 159#include <libkdepim/ksyncprofile.h>
160#include <libkdepim/ksyncprefsdialog.h> 160#include <libkdepim/ksyncprefsdialog.h>
161 161
162class KAex2phonePrefs : public QDialog 162class KAex2phonePrefs : public QDialog
163{ 163{
164 public: 164 public:
165 KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 165 KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
166 QDialog( parent, name, true ) 166 QDialog( parent, name, true )
167 { 167 {
168 setCaption( i18n("Export to phone options") ); 168 setCaption( i18n("Export to phone options") );
169 QVBoxLayout* lay = new QVBoxLayout( this ); 169 QVBoxLayout* lay = new QVBoxLayout( this );
170 lay->setSpacing( 3 ); 170 lay->setSpacing( 3 );
171 lay->setMargin( 3 ); 171 lay->setMargin( 3 );
172 QLabel *lab; 172 QLabel *lab;
173 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 173 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
174 lab->setAlignment (AlignHCenter ); 174 lab->setAlignment (AlignHCenter );
175 QHBox* temphb; 175 QHBox* temphb;
176 temphb = new QHBox( this ); 176 temphb = new QHBox( this );
177 new QLabel( i18n("I/O device: "), temphb ); 177 new QLabel( i18n("I/O device: "), temphb );
178 mPhoneDevice = new QLineEdit( temphb); 178 mPhoneDevice = new QLineEdit( temphb);
179 lay->addWidget( temphb ); 179 lay->addWidget( temphb );
180 temphb = new QHBox( this ); 180 temphb = new QHBox( this );
181 new QLabel( i18n("Connection: "), temphb ); 181 new QLabel( i18n("Connection: "), temphb );
182 mPhoneConnection = new QLineEdit( temphb); 182 mPhoneConnection = new QLineEdit( temphb);
183 lay->addWidget( temphb ); 183 lay->addWidget( temphb );
184 temphb = new QHBox( this ); 184 temphb = new QHBox( this );
185 new QLabel( i18n("Model(opt.): "), temphb ); 185 new QLabel( i18n("Model(opt.): "), temphb );
186 mPhoneModel = new QLineEdit( temphb); 186 mPhoneModel = new QLineEdit( temphb);
187 lay->addWidget( temphb ); 187 lay->addWidget( temphb );
188 // mWriteToSim = new QCheckBox( i18n("Write Contacts to SIM card\n(if not, write to phone memory)"), this ); 188 // mWriteToSim = new QCheckBox( i18n("Write Contacts to SIM card\n(if not, write to phone memory)"), this );
189 // lay->addWidget( mWriteToSim ); 189 // lay->addWidget( mWriteToSim );
190 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ncontact data on phone!"), this ) ); 190 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ncontact data on phone!"), this ) );
191 lab->setAlignment (AlignHCenter ); 191 lab->setAlignment (AlignHCenter );
192 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 192 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
193 lay->addWidget( ok ); 193 lay->addWidget( ok );
194 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 194 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
195 lay->addWidget( cancel ); 195 lay->addWidget( cancel );
196 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 196 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
197 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 197 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
198 resize( 220, 240 ); 198 resize( 220, 240 );
199 199
200 } 200 }
201 201
202public: 202public:
203 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 203 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
204 QCheckBox* mWriteToSim; 204 QCheckBox* mWriteToSim;
205}; 205};
206 206
207 207
208bool pasteWithNewUid = true; 208bool pasteWithNewUid = true;
209 209
210#ifdef KAB_EMBEDDED 210#ifdef KAB_EMBEDDED
211KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) 211KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name )
212 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 212 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
213 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ 213 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/
214 mReadWrite( readWrite ), mModified( false ), mMainWindow(client) 214 mReadWrite( readWrite ), mModified( false ), mMainWindow(client)
215#else //KAB_EMBEDDED 215#else //KAB_EMBEDDED
216KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) 216KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name )
217 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 217 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
218 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), 218 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ),
219 mReadWrite( readWrite ), mModified( false ) 219 mReadWrite( readWrite ), mModified( false )
220#endif //KAB_EMBEDDED 220#endif //KAB_EMBEDDED
221{ 221{
222 // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); 222 // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu);
223 // syncManager->setBlockSave(false); 223 // syncManager->setBlockSave(false);
224 mExtensionBarSplitter = 0; 224 mExtensionBarSplitter = 0;
225 mIsPart = !parent->inherits( "KAddressBookMain" ); 225 mIsPart = !parent->inherits( "KAddressBookMain" );
226 mAddressBook = KABC::StdAddressBook::self(); 226 mAddressBook = KABC::StdAddressBook::self();
227 KABC::StdAddressBook::setAutomaticSave( false ); 227 KABC::StdAddressBook::setAutomaticSave( false );
228 228
229#ifndef KAB_EMBEDDED 229#ifndef KAB_EMBEDDED
230 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); 230 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler );
231#endif //KAB_EMBEDDED 231#endif //KAB_EMBEDDED
232 232
233 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), 233 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ),
234 SLOT( addressBookChanged() ) ); 234 SLOT( addressBookChanged() ) );
235 235
236#if 0 236#if 0
237 // LP moved to addressbook init method 237 // LP moved to addressbook init method
238 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, 238 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization,
239 "X-Department", "KADDRESSBOOK" ); 239 "X-Department", "KADDRESSBOOK" );
240 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, 240 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization,
241 "X-Profession", "KADDRESSBOOK" ); 241 "X-Profession", "KADDRESSBOOK" );
242 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, 242 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization,
243 "X-AssistantsName", "KADDRESSBOOK" ); 243 "X-AssistantsName", "KADDRESSBOOK" );
244 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, 244 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization,
245 "X-ManagersName", "KADDRESSBOOK" ); 245 "X-ManagersName", "KADDRESSBOOK" );
246 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, 246 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal,
247 "X-SpousesName", "KADDRESSBOOK" ); 247 "X-SpousesName", "KADDRESSBOOK" );
248 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, 248 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal,
249 "X-Office", "KADDRESSBOOK" ); 249 "X-Office", "KADDRESSBOOK" );
250 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, 250 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal,
251 "X-IMAddress", "KADDRESSBOOK" ); 251 "X-IMAddress", "KADDRESSBOOK" );
252 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, 252 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal,
253 "X-Anniversary", "KADDRESSBOOK" ); 253 "X-Anniversary", "KADDRESSBOOK" );
254 254
255 //US added this field to become compatible with Opie/qtopia addressbook 255 //US added this field to become compatible with Opie/qtopia addressbook
256 // values can be "female" or "male" or "". An empty field represents undefined. 256 // values can be "female" or "male" or "". An empty field represents undefined.
257 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, 257 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal,
258 "X-Gender", "KADDRESSBOOK" ); 258 "X-Gender", "KADDRESSBOOK" );
259 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, 259 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal,
260 "X-Children", "KADDRESSBOOK" ); 260 "X-Children", "KADDRESSBOOK" );
261 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, 261 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal,
262 "X-FreeBusyUrl", "KADDRESSBOOK" ); 262 "X-FreeBusyUrl", "KADDRESSBOOK" );
263#endif 263#endif
264 initGUI(); 264 initGUI();
265 265
266 mIncSearchWidget->setFocus(); 266 mIncSearchWidget->setFocus();
267 267
268 268
269 connect( mViewManager, SIGNAL( selected( const QString& ) ), 269 connect( mViewManager, SIGNAL( selected( const QString& ) ),
270 SLOT( setContactSelected( const QString& ) ) ); 270 SLOT( setContactSelected( const QString& ) ) );
271 connect( mViewManager, SIGNAL( executed( const QString& ) ), 271 connect( mViewManager, SIGNAL( executed( const QString& ) ),
272 SLOT( executeContact( const QString& ) ) ); 272 SLOT( executeContact( const QString& ) ) );
273 273
274 connect( mViewManager, SIGNAL( deleteRequest( ) ), 274 connect( mViewManager, SIGNAL( deleteRequest( ) ),
275 SLOT( deleteContacts( ) ) ); 275 SLOT( deleteContacts( ) ) );
276 connect( mViewManager, SIGNAL( modified() ), 276 connect( mViewManager, SIGNAL( modified() ),
277 SLOT( setModified() ) ); 277 SLOT( setModified() ) );
278 278
279 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); 279 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) );
280 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); 280 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) );
281 281
282 connect( mXXPortManager, SIGNAL( modified() ), 282 connect( mXXPortManager, SIGNAL( modified() ),
283 SLOT( setModified() ) ); 283 SLOT( setModified() ) );
284 284
285 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), 285 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ),
286 SLOT( incrementalSearch( const QString& ) ) ); 286 SLOT( incrementalSearch( const QString& ) ) );
287 connect( mIncSearchWidget, SIGNAL( fieldChanged() ), 287 connect( mIncSearchWidget, SIGNAL( fieldChanged() ),
288 mJumpButtonBar, SLOT( recreateButtons() ) ); 288 mJumpButtonBar, SLOT( recreateButtons() ) );
289 289
290 connect( mDetails, SIGNAL( sendEmail( const QString& ) ), 290 connect( mDetails, SIGNAL( sendEmail( const QString& ) ),
291 SLOT( sendMail( const QString& ) ) ); 291 SLOT( sendMail( const QString& ) ) );
292 292
293 293
294 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); 294 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&)));
295 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&))); 295 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&)));
296 connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&))); 296 connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&)));
297 297
298 298
299#ifndef KAB_EMBEDDED 299#ifndef KAB_EMBEDDED
300 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), 300 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ),
301 mXXPortManager, SLOT( importVCard( const KURL& ) ) ); 301 mXXPortManager, SLOT( importVCard( const KURL& ) ) );
302 302
303 connect( mDetails, SIGNAL( browse( const QString& ) ), 303 connect( mDetails, SIGNAL( browse( const QString& ) ),
304 SLOT( browse( const QString& ) ) ); 304 SLOT( browse( const QString& ) ) );
305 305
306 306
307 mAddressBookService = new KAddressBookService( this ); 307 mAddressBookService = new KAddressBookService( this );
308 308
309#endif //KAB_EMBEDDED 309#endif //KAB_EMBEDDED
310 310
311 mMessageTimer = new QTimer( this ); 311 mMessageTimer = new QTimer( this );
312 connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) ); 312 connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) );
313 mEditorDialog = 0; 313 mEditorDialog = 0;
314 createAddresseeEditorDialog( this ); 314 createAddresseeEditorDialog( this );
315 setModified( false ); 315 setModified( false );
316} 316}
317 317
318KABCore::~KABCore() 318KABCore::~KABCore()
319{ 319{
320 // save(); 320 // save();
321 //saveSettings(); 321 //saveSettings();
322 //KABPrefs::instance()->writeConfig(); 322 //KABPrefs::instance()->writeConfig();
323 delete AddresseeConfig::instance(); 323 delete AddresseeConfig::instance();
324 mAddressBook = 0; 324 mAddressBook = 0;
325 KABC::StdAddressBook::close(); 325 KABC::StdAddressBook::close();
326 326
327 delete syncManager; 327 delete syncManager;
328 328
329} 329}
330 330
331void KABCore::recieve( QString fn ) 331void KABCore::recieve( QString fn )
332{ 332{
333 //qDebug("KABCore::recieve "); 333 //qDebug("KABCore::recieve ");
334 int count = mAddressBook->importFromFile( fn, true ); 334 int count = mAddressBook->importFromFile( fn, true );
335 mViewManager->refreshView(); 335 mViewManager->refreshView();
336 message(i18n("%1 contact(s) received!").arg( count )); 336 message(i18n("%1 contact(s) received!").arg( count ));
337 topLevelWidget()->showMaximized();
337 topLevelWidget()->raise(); 338 topLevelWidget()->raise();
338} 339}
339void KABCore::restoreSettings() 340void KABCore::restoreSettings()
340{ 341{
341 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce; 342 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce;
342 343
343 bool state; 344 bool state;
344 345
345 if (mMultipleViewsAtOnce) 346 if (mMultipleViewsAtOnce)
346 state = KABPrefs::instance()->mDetailsPageVisible; 347 state = KABPrefs::instance()->mDetailsPageVisible;
347 else 348 else
348 state = false; 349 state = false;
349 350
350 mActionDetails->setChecked( state ); 351 mActionDetails->setChecked( state );
351 setDetailsVisible( state ); 352 setDetailsVisible( state );
352 353
353 state = KABPrefs::instance()->mJumpButtonBarVisible; 354 state = KABPrefs::instance()->mJumpButtonBarVisible;
354 355
355 mActionJumpBar->setChecked( state ); 356 mActionJumpBar->setChecked( state );
356 setJumpButtonBarVisible( state ); 357 setJumpButtonBarVisible( state );
357/*US 358/*US
358 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; 359 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter;
359 if ( splitterSize.count() == 0 ) { 360 if ( splitterSize.count() == 0 ) {
360 splitterSize.append( width() / 2 ); 361 splitterSize.append( width() / 2 );
361 splitterSize.append( width() / 2 ); 362 splitterSize.append( width() / 2 );
362 } 363 }
363 mMiniSplitter->setSizes( splitterSize ); 364 mMiniSplitter->setSizes( splitterSize );
364 if ( mExtensionBarSplitter ) { 365 if ( mExtensionBarSplitter ) {
365 splitterSize = KABPrefs::instance()->mExtensionsSplitter; 366 splitterSize = KABPrefs::instance()->mExtensionsSplitter;
366 if ( splitterSize.count() == 0 ) { 367 if ( splitterSize.count() == 0 ) {
367 splitterSize.append( width() / 2 ); 368 splitterSize.append( width() / 2 );
368 splitterSize.append( width() / 2 ); 369 splitterSize.append( width() / 2 );
369 } 370 }
370 mExtensionBarSplitter->setSizes( splitterSize ); 371 mExtensionBarSplitter->setSizes( splitterSize );
371 372
372 } 373 }
373*/ 374*/
374 mViewManager->restoreSettings(); 375 mViewManager->restoreSettings();
375 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField ); 376 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField );
376 mExtensionManager->restoreSettings(); 377 mExtensionManager->restoreSettings();
377#ifdef DESKTOP_VERSION 378#ifdef DESKTOP_VERSION
378 int wid = width(); 379 int wid = width();
379 if ( wid < 10 ) 380 if ( wid < 10 )
380 wid = 400; 381 wid = 400;
381#else 382#else
382 int wid = QApplication::desktop()->width(); 383 int wid = QApplication::desktop()->width();
383 if ( wid < 640 ) 384 if ( wid < 640 )
384 wid = QApplication::desktop()->height(); 385 wid = QApplication::desktop()->height();
385#endif 386#endif
386 QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter; 387 QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter;
387 if ( true /*splitterSize.count() == 0*/ ) { 388 if ( true /*splitterSize.count() == 0*/ ) {
388 splitterSize.append( wid / 2 ); 389 splitterSize.append( wid / 2 );
389 splitterSize.append( wid / 2 ); 390 splitterSize.append( wid / 2 );
390 } 391 }
391 mMiniSplitter->setSizes( splitterSize ); 392 mMiniSplitter->setSizes( splitterSize );
392 if ( mExtensionBarSplitter ) { 393 if ( mExtensionBarSplitter ) {
393 //splitterSize = KABPrefs::instance()->mExtensionsSplitter; 394 //splitterSize = KABPrefs::instance()->mExtensionsSplitter;
394 if ( true /*splitterSize.count() == 0*/ ) { 395 if ( true /*splitterSize.count() == 0*/ ) {
395 splitterSize.append( wid / 2 ); 396 splitterSize.append( wid / 2 );
396 splitterSize.append( wid / 2 ); 397 splitterSize.append( wid / 2 );
397 } 398 }
398 mExtensionBarSplitter->setSizes( splitterSize ); 399 mExtensionBarSplitter->setSizes( splitterSize );
399 400
400 } 401 }
401 402
402 403
403} 404}
404 405
405void KABCore::saveSettings() 406void KABCore::saveSettings()
406{ 407{
407 KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked(); 408 KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked();
408 if ( mExtensionBarSplitter ) 409 if ( mExtensionBarSplitter )
409 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); 410 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes();
410 KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked(); 411 KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked();
411 KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes(); 412 KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes();
412#ifndef KAB_EMBEDDED 413#ifndef KAB_EMBEDDED
413 414
414 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); 415 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes();
415 KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes(); 416 KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes();
416#endif //KAB_EMBEDDED 417#endif //KAB_EMBEDDED
417 mExtensionManager->saveSettings(); 418 mExtensionManager->saveSettings();
418 mViewManager->saveSettings(); 419 mViewManager->saveSettings();
419 420
420 KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem(); 421 KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem();
421} 422}
422 423
423KABC::AddressBook *KABCore::addressBook() const 424KABC::AddressBook *KABCore::addressBook() const
424{ 425{
425 return mAddressBook; 426 return mAddressBook;
426} 427}
427 428
428KConfig *KABCore::config() 429KConfig *KABCore::config()
429{ 430{
430#ifndef KAB_EMBEDDED 431#ifndef KAB_EMBEDDED
431 return KABPrefs::instance()->config(); 432 return KABPrefs::instance()->config();
432#else //KAB_EMBEDDED 433#else //KAB_EMBEDDED
433 return KABPrefs::instance()->getConfig(); 434 return KABPrefs::instance()->getConfig();
434#endif //KAB_EMBEDDED 435#endif //KAB_EMBEDDED
435} 436}
436 437
437KActionCollection *KABCore::actionCollection() const 438KActionCollection *KABCore::actionCollection() const
438{ 439{
439 return mGUIClient->actionCollection(); 440 return mGUIClient->actionCollection();
440} 441}
441 442
442KABC::Field *KABCore::currentSearchField() const 443KABC::Field *KABCore::currentSearchField() const
443{ 444{
444 if (mIncSearchWidget) 445 if (mIncSearchWidget)
445 return mIncSearchWidget->currentField(); 446 return mIncSearchWidget->currentField();
446 else 447 else
447 return 0; 448 return 0;
448} 449}
449 450
450QStringList KABCore::selectedUIDs() const 451QStringList KABCore::selectedUIDs() const
451{ 452{
452 return mViewManager->selectedUids(); 453 return mViewManager->selectedUids();
453} 454}
454 455
455KABC::Resource *KABCore::requestResource( QWidget *parent ) 456KABC::Resource *KABCore::requestResource( QWidget *parent )
456{ 457{
457 QPtrList<KABC::Resource> kabcResources = addressBook()->resources(); 458 QPtrList<KABC::Resource> kabcResources = addressBook()->resources();
458 459
459 QPtrList<KRES::Resource> kresResources; 460 QPtrList<KRES::Resource> kresResources;
460 QPtrListIterator<KABC::Resource> resIt( kabcResources ); 461 QPtrListIterator<KABC::Resource> resIt( kabcResources );
461 KABC::Resource *resource; 462 KABC::Resource *resource;
462 while ( ( resource = resIt.current() ) != 0 ) { 463 while ( ( resource = resIt.current() ) != 0 ) {
463 ++resIt; 464 ++resIt;
464 if ( !resource->readOnly() ) { 465 if ( !resource->readOnly() ) {
465 KRES::Resource *res = static_cast<KRES::Resource*>( resource ); 466 KRES::Resource *res = static_cast<KRES::Resource*>( resource );
466 if ( res ) 467 if ( res )
467 kresResources.append( res ); 468 kresResources.append( res );
468 } 469 }
469 } 470 }
470 471
471 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, parent ); 472 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, parent );
472 return static_cast<KABC::Resource*>( res ); 473 return static_cast<KABC::Resource*>( res );
473} 474}
474 475
475#ifndef KAB_EMBEDDED 476#ifndef KAB_EMBEDDED
476KAboutData *KABCore::createAboutData() 477KAboutData *KABCore::createAboutData()
477#else //KAB_EMBEDDED 478#else //KAB_EMBEDDED
478void KABCore::createAboutData() 479void KABCore::createAboutData()
479#endif //KAB_EMBEDDED 480#endif //KAB_EMBEDDED
480{ 481{
481#ifndef KAB_EMBEDDED 482#ifndef KAB_EMBEDDED
482 KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ), 483 KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ),
483 "3.1", I18N_NOOP( "The KDE Address Book" ), 484 "3.1", I18N_NOOP( "The KDE Address Book" ),
484 KAboutData::License_GPL_V2, 485 KAboutData::License_GPL_V2,
485 I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) ); 486 I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) );
486 about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" ); 487 about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" );
487 about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) ); 488 about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) );
488 about->addAuthor( "Cornelius Schumacher", 489 about->addAuthor( "Cornelius Schumacher",
489 I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ), 490 I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ),
490 "schumacher@kde.org" ); 491 "schumacher@kde.org" );
491 about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ), 492 about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ),
492 "mpilone@slac.com" ); 493 "mpilone@slac.com" );
493 about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) ); 494 about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) );
494 about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) ); 495 about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) );
495 about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ), 496 about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ),
496 "michel@klaralvdalens-datakonsult.se" ); 497 "michel@klaralvdalens-datakonsult.se" );
497 about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ), 498 about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ),
498 "hansen@kde.org" ); 499 "hansen@kde.org" );
499 500
500 return about; 501 return about;
501#endif //KAB_EMBEDDED 502#endif //KAB_EMBEDDED
502 503
503 QString version; 504 QString version;
504#include <../version> 505#include <../version>
505 QMessageBox::about( this, "About KAddressbook/Pi", 506 QMessageBox::about( this, "About KAddressbook/Pi",
506 "KAddressbook/Platform-independent\n" 507 "KAddressbook/Platform-independent\n"
507 "(KA/Pi) " +version + " - " + 508 "(KA/Pi) " +version + " - " +
508#ifdef DESKTOP_VERSION 509#ifdef DESKTOP_VERSION
509 "Desktop Edition\n" 510 "Desktop Edition\n"
510#else 511#else
511 "PDA-Edition\n" 512 "PDA-Edition\n"
512 "for: Zaurus 5500 / 7x0 / 8x0\n" 513 "for: Zaurus 5500 / 7x0 / 8x0\n"
513#endif 514#endif
514 515
515 "(c) 2004 Ulf Schenk\n" 516 "(c) 2004 Ulf Schenk\n"
516 "(c) 2004 Lutz Rogowski\n" 517 "(c) 2004 Lutz Rogowski\n"
517 "(c) 1997-2003, The KDE PIM Team\n" 518 "(c) 1997-2003, The KDE PIM Team\n"
518 "Tobias Koenig Current maintainer\ntokoe@kde.org\n" 519 "Tobias Koenig Current maintainer\ntokoe@kde.org\n"
519 "Don Sanders Original author\n" 520 "Don Sanders Original author\n"
520 "Cornelius Schumacher Co-maintainer\nschumacher@kde.org\n" 521 "Cornelius Schumacher Co-maintainer\nschumacher@kde.org\n"
521 "Mike Pilone GUI and framework redesign\nmpilone@slac.com\n" 522 "Mike Pilone GUI and framework redesign\nmpilone@slac.com\n"
522 "Greg Stern DCOP interface\n" 523 "Greg Stern DCOP interface\n"
523 "Mark Westcot Contact pinning\n" 524 "Mark Westcot Contact pinning\n"
524 "Michel Boyer de la Giroday LDAP Lookup\n" "michel@klaralvdalens-datakonsult.se\n" 525 "Michel Boyer de la Giroday LDAP Lookup\n" "michel@klaralvdalens-datakonsult.se\n"
525 "Steffen Hansen LDAP Lookup\nhansen@kde.org\n" 526 "Steffen Hansen LDAP Lookup\nhansen@kde.org\n"
526#ifdef _WIN32_ 527#ifdef _WIN32_
527 "(c) 2004 Lutz Rogowski Import from OL\nrogowski@kde.org\n" 528 "(c) 2004 Lutz Rogowski Import from OL\nrogowski@kde.org\n"
528#endif 529#endif
529 ); 530 );
530} 531}
531 532
532void KABCore::setContactSelected( const QString &uid ) 533void KABCore::setContactSelected( const QString &uid )
533{ 534{
534 KABC::Addressee addr = mAddressBook->findByUid( uid ); 535 KABC::Addressee addr = mAddressBook->findByUid( uid );
535 if ( !mDetails->isHidden() ) 536 if ( !mDetails->isHidden() )
536 mDetails->setAddressee( addr ); 537 mDetails->setAddressee( addr );
537 538
538 if ( !addr.isEmpty() ) { 539 if ( !addr.isEmpty() ) {
539 emit contactSelected( addr.formattedName() ); 540 emit contactSelected( addr.formattedName() );
540 KABC::Picture pic = addr.photo(); 541 KABC::Picture pic = addr.photo();
541 if ( pic.isIntern() ) { 542 if ( pic.isIntern() ) {
542//US emit contactSelected( pic.data() ); 543//US emit contactSelected( pic.data() );
543//US instead use: 544//US instead use:
544 QPixmap px; 545 QPixmap px;
545 if (pic.data().isNull() != true) 546 if (pic.data().isNull() != true)
546 { 547 {
547 px.convertFromImage(pic.data()); 548 px.convertFromImage(pic.data());
548 } 549 }
549 550
550 emit contactSelected( px ); 551 emit contactSelected( px );
551 } 552 }
552 } 553 }
553 554
554 555
555 mExtensionManager->setSelectionChanged(); 556 mExtensionManager->setSelectionChanged();
556 557
557 // update the actions 558 // update the actions
558 bool selected = !uid.isEmpty(); 559 bool selected = !uid.isEmpty();
559 560
560 if ( mReadWrite ) { 561 if ( mReadWrite ) {
561 mActionCut->setEnabled( selected ); 562 mActionCut->setEnabled( selected );
562 mActionPaste->setEnabled( selected ); 563 mActionPaste->setEnabled( selected );
563 } 564 }
564 565
565 mActionCopy->setEnabled( selected ); 566 mActionCopy->setEnabled( selected );
566 mActionDelete->setEnabled( selected ); 567 mActionDelete->setEnabled( selected );
567 mActionEditAddressee->setEnabled( selected ); 568 mActionEditAddressee->setEnabled( selected );
568 mActionMail->setEnabled( selected ); 569 mActionMail->setEnabled( selected );
569 mActionMailVCard->setEnabled( selected ); 570 mActionMailVCard->setEnabled( selected );
570 //if (mActionBeam) 571 //if (mActionBeam)
571 //mActionBeam->setEnabled( selected ); 572 //mActionBeam->setEnabled( selected );
572 573
573 if (mActionBeamVCard) 574 if (mActionBeamVCard)
574 mActionBeamVCard->setEnabled( selected ); 575 mActionBeamVCard->setEnabled( selected );
575 576
576 mActionExport2phone->setEnabled( selected ); 577 mActionExport2phone->setEnabled( selected );
577 mActionWhoAmI->setEnabled( selected ); 578 mActionWhoAmI->setEnabled( selected );
578 mActionCategories->setEnabled( selected ); 579 mActionCategories->setEnabled( selected );
579} 580}
580 581
581void KABCore::sendMail() 582void KABCore::sendMail()
582{ 583{
583 sendMail( mViewManager->selectedEmails().join( ", " ) ); 584 sendMail( mViewManager->selectedEmails().join( ", " ) );
584} 585}
585 586
586void KABCore::sendMail( const QString& emaillist ) 587void KABCore::sendMail( const QString& emaillist )
587{ 588{
588 // the parameter has the form "name1 <abc@aol.com>,name2 <abc@aol.com>;... " 589 // the parameter has the form "name1 <abc@aol.com>,name2 <abc@aol.com>;... "
589 if (emaillist.contains(",") > 0) 590 if (emaillist.contains(",") > 0)
590 ExternalAppHandler::instance()->mailToMultipleContacts( emaillist, QString::null ); 591 ExternalAppHandler::instance()->mailToMultipleContacts( emaillist, QString::null );
591 else 592 else
592 ExternalAppHandler::instance()->mailToOneContact( emaillist ); 593 ExternalAppHandler::instance()->mailToOneContact( emaillist );
593} 594}
594 595
595 596
596 597
597void KABCore::mailVCard() 598void KABCore::mailVCard()
598{ 599{
599 QStringList uids = mViewManager->selectedUids(); 600 QStringList uids = mViewManager->selectedUids();
600 if ( !uids.isEmpty() ) 601 if ( !uids.isEmpty() )
601 mailVCard( uids ); 602 mailVCard( uids );
602} 603}
603 604
604void KABCore::mailVCard( const QStringList& uids ) 605void KABCore::mailVCard( const QStringList& uids )
605{ 606{
606 QStringList urls; 607 QStringList urls;
607 608
608// QString tmpdir = locateLocal("tmp", KGlobal::getAppName()); 609// QString tmpdir = locateLocal("tmp", KGlobal::getAppName());
609 610
610 QString dirName = "/tmp/" + KApplication::randomString( 8 ); 611 QString dirName = "/tmp/" + KApplication::randomString( 8 );
611 612
612 613
613 614
614 QDir().mkdir( dirName, true ); 615 QDir().mkdir( dirName, true );
615 616
616 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { 617 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) {
617 KABC::Addressee a = mAddressBook->findByUid( *it ); 618 KABC::Addressee a = mAddressBook->findByUid( *it );
618 619
619 if ( a.isEmpty() ) 620 if ( a.isEmpty() )
620 continue; 621 continue;
621 622
622 QString name = a.givenName() + "_" + a.familyName() + ".vcf"; 623 QString name = a.givenName() + "_" + a.familyName() + ".vcf";
623 624
624 QString fileName = dirName + "/" + name; 625 QString fileName = dirName + "/" + name;
625 626
626 QFile outFile(fileName); 627 QFile outFile(fileName);
627 628
628 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully 629 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully
629 KABC::VCardConverter converter; 630 KABC::VCardConverter converter;
630 QString vcard; 631 QString vcard;
631 632
632 converter.addresseeToVCard( a, vcard ); 633 converter.addresseeToVCard( a, vcard );
633 634
634 QTextStream t( &outFile ); // use a text stream 635 QTextStream t( &outFile ); // use a text stream
635 t.setEncoding( QTextStream::UnicodeUTF8 ); 636 t.setEncoding( QTextStream::UnicodeUTF8 );
636 t << vcard; 637 t << vcard;
637 638
638 outFile.close(); 639 outFile.close();
639 640
640 urls.append( fileName ); 641 urls.append( fileName );
641 } 642 }
642 } 643 }
643 644
644 bool result = ExternalAppHandler::instance()->mailToMultipleContacts( QString::null, urls.join(", ") ); 645 bool result = ExternalAppHandler::instance()->mailToMultipleContacts( QString::null, urls.join(", ") );
645 646
646 647
647/*US 648/*US
648 kapp->invokeMailer( QString::null, QString::null, QString::null, 649 kapp->invokeMailer( QString::null, QString::null, QString::null,
649 QString::null, // subject 650 QString::null, // subject
650 QString::null, // body 651 QString::null, // body
651 QString::null, 652 QString::null,
652 urls ); // attachments 653 urls ); // attachments
653*/ 654*/
654 655
655} 656}
656 657
657/** 658/**
658 Beams the "WhoAmI contact. 659 Beams the "WhoAmI contact.
659*/ 660*/
660void KABCore::beamMySelf() 661void KABCore::beamMySelf()
661{ 662{
662 KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI(); 663 KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI();
663 if (!a.isEmpty()) 664 if (!a.isEmpty())
664 { 665 {
665 QStringList uids; 666 QStringList uids;
666 uids << a.uid(); 667 uids << a.uid();
667 668
668 beamVCard(uids); 669 beamVCard(uids);
669 } else { 670 } else {
670 KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) ); 671 KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) );
671 672
672 673
673 } 674 }
674} 675}
675 676
676void KABCore::export2phone() 677void KABCore::export2phone()
677{ 678{
678 679
679 KAex2phonePrefs ex2phone; 680 KAex2phonePrefs ex2phone;
680 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection ); 681 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection );
681 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice ); 682 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice );
682 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel ); 683 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel );
683 684
684 if ( !ex2phone.exec() ) { 685 if ( !ex2phone.exec() ) {
685 return; 686 return;
686 } 687 }
687 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text(); 688 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
688 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text(); 689 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
689 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text(); 690 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
690 691
691 692
692 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice, 693 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice,
693 KPimGlobalPrefs::instance()->mEx2PhoneConnection, 694 KPimGlobalPrefs::instance()->mEx2PhoneConnection,
694 KPimGlobalPrefs::instance()->mEx2PhoneModel ); 695 KPimGlobalPrefs::instance()->mEx2PhoneModel );
695 696
696 QStringList uids = mViewManager->selectedUids(); 697 QStringList uids = mViewManager->selectedUids();
697 if ( uids.isEmpty() ) 698 if ( uids.isEmpty() )
698 return; 699 return;
699 700
700 QString fileName = getPhoneFile(); 701 QString fileName = getPhoneFile();
701 if ( ! mAddressBook->export2PhoneFormat( uids ,fileName ) ) 702 if ( ! mAddressBook->export2PhoneFormat( uids ,fileName ) )
702 return; 703 return;
703 704
704 message(i18n("Exporting to phone...")); 705 message(i18n("Exporting to phone..."));
705 QTimer::singleShot( 1, this , SLOT ( writeToPhone())); 706 QTimer::singleShot( 1, this , SLOT ( writeToPhone()));
706 707
707} 708}
708QString KABCore::getPhoneFile() 709QString KABCore::getPhoneFile()
709{ 710{
710#ifdef _WIN32_ 711#ifdef _WIN32_
711 return locateLocal("tmp", "phonefile.vcf"); 712 return locateLocal("tmp", "phonefile.vcf");
712#else 713#else
713 return "/tmp/phonefile.vcf"; 714 return "/tmp/phonefile.vcf";
714#endif 715#endif
715 716
716} 717}
717void KABCore::writeToPhone( ) 718void KABCore::writeToPhone( )
718{ 719{
719 if ( PhoneAccess::writeToPhone( getPhoneFile() ) ) 720 if ( PhoneAccess::writeToPhone( getPhoneFile() ) )
720 message(i18n("Export to phone finished!")); 721 message(i18n("Export to phone finished!"));