summaryrefslogtreecommitdiffabout
path: root/kaddressbook
Unidiff
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp4
-rw-r--r--kaddressbook/kaddressbook.pro3
2 files changed, 5 insertions, 2 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 1667400..4303cab 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1,855 +1,855 @@
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#include "kabcore.h" 24#include "kabcore.h"
25 25
26#include <stdaddressbook.h> 26#include <stdaddressbook.h>
27#include <klocale.h> 27#include <klocale.h>
28 28
29#ifndef KAB_EMBEDDED 29#ifndef KAB_EMBEDDED
30#include <qclipboard.h> 30#include <qclipboard.h>
31#include <qdir.h> 31#include <qdir.h>
32#include <qfile.h> 32#include <qfile.h>
33#include <qapplicaton.h> 33#include <qapplicaton.h>
34#include <qlayout.h> 34#include <qlayout.h>
35#include <qregexp.h> 35#include <qregexp.h>
36#include <qvbox.h> 36#include <qvbox.h>
37#include <kabc/addresseelist.h> 37#include <kabc/addresseelist.h>
38#include <kabc/errorhandler.h> 38#include <kabc/errorhandler.h>
39#include <kabc/resource.h> 39#include <kabc/resource.h>
40#include <kabc/vcardconverter.h> 40#include <kabc/vcardconverter.h>
41#include <kapplication.h> 41#include <kapplication.h>
42#include <kactionclasses.h> 42#include <kactionclasses.h>
43#include <kcmultidialog.h> 43#include <kcmultidialog.h>
44#include <kdebug.h> 44#include <kdebug.h>
45#include <kdeversion.h> 45#include <kdeversion.h>
46#include <kkeydialog.h> 46#include <kkeydialog.h>
47#include <kmessagebox.h> 47#include <kmessagebox.h>
48#include <kprinter.h> 48#include <kprinter.h>
49#include <kprotocolinfo.h> 49#include <kprotocolinfo.h>
50#include <kresources/selectdialog.h> 50#include <kresources/selectdialog.h>
51#include <kstandarddirs.h> 51#include <kstandarddirs.h>
52#include <ktempfile.h> 52#include <ktempfile.h>
53#include <kxmlguiclient.h> 53#include <kxmlguiclient.h>
54#include <kaboutdata.h> 54#include <kaboutdata.h>
55#include <libkdepim/categoryselectdialog.h> 55#include <libkdepim/categoryselectdialog.h>
56 56
57#include "addresseeutil.h" 57#include "addresseeutil.h"
58#include "addresseeeditordialog.h" 58#include "addresseeeditordialog.h"
59#include "extensionmanager.h" 59#include "extensionmanager.h"
60#include "kstdaction.h" 60#include "kstdaction.h"
61#include "kaddressbookservice.h" 61#include "kaddressbookservice.h"
62#include "ldapsearchdialog.h" 62#include "ldapsearchdialog.h"
63#include "printing/printingwizard.h" 63#include "printing/printingwizard.h"
64#else // KAB_EMBEDDED 64#else // KAB_EMBEDDED
65 65
66#include <kapplication.h> 66#include <kapplication.h>
67#include "KDGanttMinimizeSplitter.h" 67#include "KDGanttMinimizeSplitter.h"
68#include "kaddressbookmain.h" 68#include "kaddressbookmain.h"
69#include "kactioncollection.h" 69#include "kactioncollection.h"
70#include <qapp.h> 70#include <qapp.h>
71#include <qmenubar.h> 71#include <qmenubar.h>
72//#include <qtoolbar.h> 72//#include <qtoolbar.h>
73#include <qmessagebox.h> 73#include <qmessagebox.h>
74#include <kdebug.h> 74#include <kdebug.h>
75#include <kiconloader.h> // needed for SmallIcon 75#include <kiconloader.h> // needed for SmallIcon
76#include <kresources/kcmkresources.h> 76#include <kresources/kcmkresources.h>
77#include <ktoolbar.h> 77#include <ktoolbar.h>
78 78
79 79
80//#include <qlabel.h> 80//#include <qlabel.h>
81 81
82 82
83#ifdef Q_WS_QWS 83#ifndef DESKTOP_VERSION
84#include <qtopia/services.h> 84#include <qtopia/services.h>
85#include <qtopia/qcopenvelope_qws.h> 85#include <qtopia/qcopenvelope_qws.h>
86#endif
87#include <qpe/ir.h> 86#include <qpe/ir.h>
87#endif
88 88
89#endif // KAB_EMBEDDED 89#endif // KAB_EMBEDDED
90#include "kcmconfigs/kcmkabconfig.h" 90#include "kcmconfigs/kcmkabconfig.h"
91#include "kcmconfigs/kcmkdepimconfig.h" 91#include "kcmconfigs/kcmkdepimconfig.h"
92 92
93 93
94#include <kresources/selectdialog.h> 94#include <kresources/selectdialog.h>
95#include <kmessagebox.h> 95#include <kmessagebox.h>
96 96
97#include <picture.h> 97#include <picture.h>
98#include <resource.h> 98#include <resource.h>
99 99
100//US#include <qsplitter.h> 100//US#include <qsplitter.h>
101#include <qmap.h> 101#include <qmap.h>
102#include <qdir.h> 102#include <qdir.h>
103#include <qfile.h> 103#include <qfile.h>
104#include <qvbox.h> 104#include <qvbox.h>
105#include <qlayout.h> 105#include <qlayout.h>
106#include <qclipboard.h> 106#include <qclipboard.h>
107#include <qtextstream.h> 107#include <qtextstream.h>
108 108
109#include <libkdepim/categoryselectdialog.h> 109#include <libkdepim/categoryselectdialog.h>
110#include <kabc/vcardconverter.h> 110#include <kabc/vcardconverter.h>
111 111
112 112
113#include "addresseeutil.h" 113#include "addresseeutil.h"
114#include "undocmds.h" 114#include "undocmds.h"
115#include "addresseeeditordialog.h" 115#include "addresseeeditordialog.h"
116#include "viewmanager.h" 116#include "viewmanager.h"
117#include "details/detailsviewcontainer.h" 117#include "details/detailsviewcontainer.h"
118#include "kabprefs.h" 118#include "kabprefs.h"
119#include "xxportmanager.h" 119#include "xxportmanager.h"
120#include "incsearchwidget.h" 120#include "incsearchwidget.h"
121#include "jumpbuttonbar.h" 121#include "jumpbuttonbar.h"
122#include "extensionmanager.h" 122#include "extensionmanager.h"
123#include "addresseeconfig.h" 123#include "addresseeconfig.h"
124#include <kcmultidialog.h> 124#include <kcmultidialog.h>
125 125
126#ifdef _WIN32_ 126#ifdef _WIN32_
127 127
128#include "kaimportoldialog.h" 128#include "kaimportoldialog.h"
129#endif 129#endif
130 130
131bool pasteWithNewUid = true; 131bool pasteWithNewUid = true;
132 132
133#ifdef KAB_EMBEDDED 133#ifdef KAB_EMBEDDED
134KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) 134KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name )
135 : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), 135 : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ),
136 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ 136 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/
137 mReadWrite( readWrite ), mModified( false ), mMainWindow(client) 137 mReadWrite( readWrite ), mModified( false ), mMainWindow(client)
138#else //KAB_EMBEDDED 138#else //KAB_EMBEDDED
139KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) 139KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name )
140 : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), 140 : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ),
141 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), 141 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ),
142 mReadWrite( readWrite ), mModified( false ) 142 mReadWrite( readWrite ), mModified( false )
143#endif //KAB_EMBEDDED 143#endif //KAB_EMBEDDED
144{ 144{
145 145
146 mExtensionBarSplitter = 0; 146 mExtensionBarSplitter = 0;
147 mIsPart = !parent->inherits( "KAddressBookMain" ); 147 mIsPart = !parent->inherits( "KAddressBookMain" );
148 148
149 mAddressBook = KABC::StdAddressBook::self(); 149 mAddressBook = KABC::StdAddressBook::self();
150 KABC::StdAddressBook::setAutomaticSave( false ); 150 KABC::StdAddressBook::setAutomaticSave( false );
151 151
152#ifndef KAB_EMBEDDED 152#ifndef KAB_EMBEDDED
153 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); 153 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler );
154#endif //KAB_EMBEDDED 154#endif //KAB_EMBEDDED
155 155
156 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), 156 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ),
157 SLOT( addressBookChanged() ) ); 157 SLOT( addressBookChanged() ) );
158 158
159 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, 159 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization,
160 "X-Department", "KADDRESSBOOK" ); 160 "X-Department", "KADDRESSBOOK" );
161 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, 161 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization,
162 "X-Profession", "KADDRESSBOOK" ); 162 "X-Profession", "KADDRESSBOOK" );
163 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, 163 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization,
164 "X-AssistantsName", "KADDRESSBOOK" ); 164 "X-AssistantsName", "KADDRESSBOOK" );
165 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, 165 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization,
166 "X-ManagersName", "KADDRESSBOOK" ); 166 "X-ManagersName", "KADDRESSBOOK" );
167 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, 167 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal,
168 "X-SpousesName", "KADDRESSBOOK" ); 168 "X-SpousesName", "KADDRESSBOOK" );
169 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, 169 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal,
170 "X-Office", "KADDRESSBOOK" ); 170 "X-Office", "KADDRESSBOOK" );
171 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, 171 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal,
172 "X-IMAddress", "KADDRESSBOOK" ); 172 "X-IMAddress", "KADDRESSBOOK" );
173 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, 173 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal,
174 "X-Anniversary", "KADDRESSBOOK" ); 174 "X-Anniversary", "KADDRESSBOOK" );
175 175
176 //US added this field to become compatible with Opie/qtopia addressbook 176 //US added this field to become compatible with Opie/qtopia addressbook
177 // values can be "female" or "male" or "". An empty field represents undefined. 177 // values can be "female" or "male" or "". An empty field represents undefined.
178 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, 178 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal,
179 "X-Gender", "KADDRESSBOOK" ); 179 "X-Gender", "KADDRESSBOOK" );
180 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, 180 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal,
181 "X-Children", "KADDRESSBOOK" ); 181 "X-Children", "KADDRESSBOOK" );
182 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, 182 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal,
183 "X-FreeBusyUrl", "KADDRESSBOOK" ); 183 "X-FreeBusyUrl", "KADDRESSBOOK" );
184 184
185 initGUI(); 185 initGUI();
186 186
187 mIncSearchWidget->setFocus(); 187 mIncSearchWidget->setFocus();
188 188
189 189
190 connect( mViewManager, SIGNAL( selected( const QString& ) ), 190 connect( mViewManager, SIGNAL( selected( const QString& ) ),
191 SLOT( setContactSelected( const QString& ) ) ); 191 SLOT( setContactSelected( const QString& ) ) );
192 connect( mViewManager, SIGNAL( executed( const QString& ) ), 192 connect( mViewManager, SIGNAL( executed( const QString& ) ),
193 SLOT( editContact( const QString& ) ) ); 193 SLOT( editContact( const QString& ) ) );
194 connect( mViewManager, SIGNAL( deleteRequest( ) ), 194 connect( mViewManager, SIGNAL( deleteRequest( ) ),
195 SLOT( deleteContacts( ) ) ); 195 SLOT( deleteContacts( ) ) );
196 connect( mViewManager, SIGNAL( modified() ), 196 connect( mViewManager, SIGNAL( modified() ),
197 SLOT( setModified() ) ); 197 SLOT( setModified() ) );
198 198
199 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); 199 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) );
200 200
201 connect( mXXPortManager, SIGNAL( modified() ), 201 connect( mXXPortManager, SIGNAL( modified() ),
202 SLOT( setModified() ) ); 202 SLOT( setModified() ) );
203 203
204 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), 204 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ),
205 SLOT( incrementalSearch( const QString& ) ) ); 205 SLOT( incrementalSearch( const QString& ) ) );
206 connect( mIncSearchWidget, SIGNAL( fieldChanged() ), 206 connect( mIncSearchWidget, SIGNAL( fieldChanged() ),
207 mJumpButtonBar, SLOT( recreateButtons() ) ); 207 mJumpButtonBar, SLOT( recreateButtons() ) );
208 208
209 connect( mDetails, SIGNAL( sendEmail( const QString& ) ), 209 connect( mDetails, SIGNAL( sendEmail( const QString& ) ),
210 SLOT( sendMail( const QString& ) ) ); 210 SLOT( sendMail( const QString& ) ) );
211 211
212#ifndef KAB_EMBEDDED 212#ifndef KAB_EMBEDDED
213 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), 213 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ),
214 mXXPortManager, SLOT( importVCard( const KURL& ) ) ); 214 mXXPortManager, SLOT( importVCard( const KURL& ) ) );
215 215
216 connect( mDetails, SIGNAL( browse( const QString& ) ), 216 connect( mDetails, SIGNAL( browse( const QString& ) ),
217 SLOT( browse( const QString& ) ) ); 217 SLOT( browse( const QString& ) ) );
218 218
219 mAddressBookService = new KAddressBookService( this ); 219 mAddressBookService = new KAddressBookService( this );
220 220
221#endif //KAB_EMBEDDED 221#endif //KAB_EMBEDDED
222 mEditorDialog = 0; 222 mEditorDialog = 0;
223 createAddresseeEditorDialog( this ); 223 createAddresseeEditorDialog( this );
224 setModified( false ); 224 setModified( false );
225} 225}
226 226
227KABCore::~KABCore() 227KABCore::~KABCore()
228{ 228{
229 // save(); 229 // save();
230 //saveSettings(); 230 //saveSettings();
231 //KABPrefs::instance()->writeConfig(); 231 //KABPrefs::instance()->writeConfig();
232 delete AddresseeConfig::instance(); 232 delete AddresseeConfig::instance();
233 mAddressBook = 0; 233 mAddressBook = 0;
234 KABC::StdAddressBook::close(); 234 KABC::StdAddressBook::close();
235} 235}
236 236
237void KABCore::restoreSettings() 237void KABCore::restoreSettings()
238{ 238{
239 bool state = KABPrefs::instance()->mJumpButtonBarVisible; 239 bool state = KABPrefs::instance()->mJumpButtonBarVisible;
240 240
241 mActionJumpBar->setChecked( state ); 241 mActionJumpBar->setChecked( state );
242 setJumpButtonBarVisible( state ); 242 setJumpButtonBarVisible( state );
243 243
244 state = KABPrefs::instance()->mDetailsPageVisible; 244 state = KABPrefs::instance()->mDetailsPageVisible;
245 245
246 mActionDetails->setChecked( state ); 246 mActionDetails->setChecked( state );
247 setDetailsVisible( state ); 247 setDetailsVisible( state );
248 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; 248 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter;
249 if ( splitterSize.count() == 0 ) { 249 if ( splitterSize.count() == 0 ) {
250 splitterSize.append( width() / 2 ); 250 splitterSize.append( width() / 2 );
251 splitterSize.append( width() / 2 ); 251 splitterSize.append( width() / 2 );
252 } 252 }
253 mMiniSplitter->setSizes( splitterSize ); 253 mMiniSplitter->setSizes( splitterSize );
254 if ( mExtensionBarSplitter ) { 254 if ( mExtensionBarSplitter ) {
255 splitterSize = KABPrefs::instance()->mExtensionsSplitter; 255 splitterSize = KABPrefs::instance()->mExtensionsSplitter;
256 if ( splitterSize.count() == 0 ) { 256 if ( splitterSize.count() == 0 ) {
257 splitterSize.append( width() / 2 ); 257 splitterSize.append( width() / 2 );
258 splitterSize.append( width() / 2 ); 258 splitterSize.append( width() / 2 );
259 } 259 }
260 mExtensionBarSplitter->setSizes( splitterSize ); 260 mExtensionBarSplitter->setSizes( splitterSize );
261 261
262 } 262 }
263#ifndef KAB_EMBEDDED 263#ifndef KAB_EMBEDDED
264 QValueList<int> splitterSize = KABPrefs::instance()->mExtensionsSplitter; 264 QValueList<int> splitterSize = KABPrefs::instance()->mExtensionsSplitter;
265 if ( splitterSize.count() == 0 ) { 265 if ( splitterSize.count() == 0 ) {
266 splitterSize.append( width() / 2 ); 266 splitterSize.append( width() / 2 );
267 splitterSize.append( width() / 2 ); 267 splitterSize.append( width() / 2 );
268 } 268 }
269 mExtensionBarSplitter->setSizes( splitterSize ); 269 mExtensionBarSplitter->setSizes( splitterSize );
270 270
271 splitterSize = KABPrefs::instance()->mDetailsSplitter; 271 splitterSize = KABPrefs::instance()->mDetailsSplitter;
272 if ( splitterSize.count() == 0 ) { 272 if ( splitterSize.count() == 0 ) {
273 splitterSize.append( height() / 2 ); 273 splitterSize.append( height() / 2 );
274 splitterSize.append( height() / 2 ); 274 splitterSize.append( height() / 2 );
275 } 275 }
276 mDetailsSplitter->setSizes( splitterSize ); 276 mDetailsSplitter->setSizes( splitterSize );
277 277
278 mExtensionManager->restoreSettings(); 278 mExtensionManager->restoreSettings();
279 279
280#endif //KAB_EMBEDDED 280#endif //KAB_EMBEDDED
281 281
282 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField ); 282 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField );
283 283
284 mViewManager->restoreSettings(); 284 mViewManager->restoreSettings();
285 mExtensionManager->restoreSettings(); 285 mExtensionManager->restoreSettings();
286} 286}
287 287
288void KABCore::saveSettings() 288void KABCore::saveSettings()
289{ 289{
290 KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked(); 290 KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked();
291 if ( mExtensionBarSplitter ) 291 if ( mExtensionBarSplitter )
292 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); 292 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes();
293 KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked(); 293 KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked();
294 KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes(); 294 KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes();
295#ifndef KAB_EMBEDDED 295#ifndef KAB_EMBEDDED
296 296
297 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); 297 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes();
298 KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes(); 298 KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes();
299#endif //KAB_EMBEDDED 299#endif //KAB_EMBEDDED
300 mExtensionManager->saveSettings(); 300 mExtensionManager->saveSettings();
301 mViewManager->saveSettings(); 301 mViewManager->saveSettings();
302 302
303 KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem(); 303 KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem();
304 304
305} 305}
306 306
307KABC::AddressBook *KABCore::addressBook() const 307KABC::AddressBook *KABCore::addressBook() const
308{ 308{
309 return mAddressBook; 309 return mAddressBook;
310} 310}
311 311
312KConfig *KABCore::config() 312KConfig *KABCore::config()
313{ 313{
314#ifndef KAB_EMBEDDED 314#ifndef KAB_EMBEDDED
315 return KABPrefs::instance()->config(); 315 return KABPrefs::instance()->config();
316#else //KAB_EMBEDDED 316#else //KAB_EMBEDDED
317 return KABPrefs::instance()->getConfig(); 317 return KABPrefs::instance()->getConfig();
318#endif //KAB_EMBEDDED 318#endif //KAB_EMBEDDED
319} 319}
320 320
321KActionCollection *KABCore::actionCollection() const 321KActionCollection *KABCore::actionCollection() const
322{ 322{
323 return mGUIClient->actionCollection(); 323 return mGUIClient->actionCollection();
324} 324}
325 325
326KABC::Field *KABCore::currentSearchField() const 326KABC::Field *KABCore::currentSearchField() const
327{ 327{
328 if (mIncSearchWidget) 328 if (mIncSearchWidget)
329 return mIncSearchWidget->currentField(); 329 return mIncSearchWidget->currentField();
330 else 330 else
331 return 0; 331 return 0;
332} 332}
333 333
334QStringList KABCore::selectedUIDs() const 334QStringList KABCore::selectedUIDs() const
335{ 335{
336 return mViewManager->selectedUids(); 336 return mViewManager->selectedUids();
337} 337}
338 338
339KABC::Resource *KABCore::requestResource( QWidget *parent ) 339KABC::Resource *KABCore::requestResource( QWidget *parent )
340{ 340{
341 QPtrList<KABC::Resource> kabcResources = addressBook()->resources(); 341 QPtrList<KABC::Resource> kabcResources = addressBook()->resources();
342 342
343 QPtrList<KRES::Resource> kresResources; 343 QPtrList<KRES::Resource> kresResources;
344 QPtrListIterator<KABC::Resource> resIt( kabcResources ); 344 QPtrListIterator<KABC::Resource> resIt( kabcResources );
345 KABC::Resource *resource; 345 KABC::Resource *resource;
346 while ( ( resource = resIt.current() ) != 0 ) { 346 while ( ( resource = resIt.current() ) != 0 ) {
347 ++resIt; 347 ++resIt;
348 if ( !resource->readOnly() ) { 348 if ( !resource->readOnly() ) {
349 KRES::Resource *res = static_cast<KRES::Resource*>( resource ); 349 KRES::Resource *res = static_cast<KRES::Resource*>( resource );
350 if ( res ) 350 if ( res )
351 kresResources.append( res ); 351 kresResources.append( res );
352 } 352 }
353 } 353 }
354 354
355 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, parent ); 355 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, parent );
356 return static_cast<KABC::Resource*>( res ); 356 return static_cast<KABC::Resource*>( res );
357} 357}
358 358
359#ifndef KAB_EMBEDDED 359#ifndef KAB_EMBEDDED
360KAboutData *KABCore::createAboutData() 360KAboutData *KABCore::createAboutData()
361#else //KAB_EMBEDDED 361#else //KAB_EMBEDDED
362void KABCore::createAboutData() 362void KABCore::createAboutData()
363#endif //KAB_EMBEDDED 363#endif //KAB_EMBEDDED
364{ 364{
365#ifndef KAB_EMBEDDED 365#ifndef KAB_EMBEDDED
366 KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ), 366 KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ),
367 "3.1", I18N_NOOP( "The KDE Address Book" ), 367 "3.1", I18N_NOOP( "The KDE Address Book" ),
368 KAboutData::License_GPL_V2, 368 KAboutData::License_GPL_V2,
369 I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) ); 369 I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) );
370 about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" ); 370 about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" );
371 about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) ); 371 about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) );
372 about->addAuthor( "Cornelius Schumacher", 372 about->addAuthor( "Cornelius Schumacher",
373 I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ), 373 I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ),
374 "schumacher@kde.org" ); 374 "schumacher@kde.org" );
375 about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ), 375 about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ),
376 "mpilone@slac.com" ); 376 "mpilone@slac.com" );
377 about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) ); 377 about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) );
378 about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) ); 378 about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) );
379 about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ), 379 about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ),
380 "michel@klaralvdalens-datakonsult.se" ); 380 "michel@klaralvdalens-datakonsult.se" );
381 about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ), 381 about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ),
382 "hansen@kde.org" ); 382 "hansen@kde.org" );
383 383
384 return about; 384 return about;
385#endif //KAB_EMBEDDED 385#endif //KAB_EMBEDDED
386 386
387 QString version; 387 QString version;
388#include <../version> 388#include <../version>
389 QMessageBox::about( this, "About KAddressbook/Pi", 389 QMessageBox::about( this, "About KAddressbook/Pi",
390 "KAddressbook/Platform-independent\n" 390 "KAddressbook/Platform-independent\n"
391 "(KA/Pi) " +version + " - " + 391 "(KA/Pi) " +version + " - " +
392#ifdef DESKTOP_VERSION 392#ifdef DESKTOP_VERSION
393 "Desktop Edition\n" 393 "Desktop Edition\n"
394#else 394#else
395 "PDA-Edition\n" 395 "PDA-Edition\n"
396 "for: Zaurus 5500 / 7x0 / 8x0\n" 396 "for: Zaurus 5500 / 7x0 / 8x0\n"
397#endif 397#endif
398 398
399 "(c) 2004 Ulf Schenk\n" 399 "(c) 2004 Ulf Schenk\n"
400 "(c) 1997-2003, The KDE PIM Team\n" 400 "(c) 1997-2003, The KDE PIM Team\n"
401 "Tobias Koenig Current maintainer tokoe@kde.org\n" 401 "Tobias Koenig Current maintainer tokoe@kde.org\n"
402 "Don Sanders Original author\n" 402 "Don Sanders Original author\n"
403 "Cornelius Schumacher Co-maintainer schumacher@kde.org\n" 403 "Cornelius Schumacher Co-maintainer schumacher@kde.org\n"
404 "Mike Pilone GUI and framework redesign mpilone@slac.com\n" 404 "Mike Pilone GUI and framework redesign mpilone@slac.com\n"
405 "Greg Stern DCOP interface\n" 405 "Greg Stern DCOP interface\n"
406 "Mark Westcot Contact pinning\n" 406 "Mark Westcot Contact pinning\n"
407 "Michel Boyer de la Giroday LDAP Lookup\n" "michel@klaralvdalens-datakonsult.se\n" 407 "Michel Boyer de la Giroday LDAP Lookup\n" "michel@klaralvdalens-datakonsult.se\n"
408 "Steffen Hansen LDAP Lookup hansen@kde.org\n" 408 "Steffen Hansen LDAP Lookup hansen@kde.org\n"
409#ifdef _WIN32_ 409#ifdef _WIN32_
410 "(c) 2004 Lutz Rogowski Import from OL rogowski@kde.org\n" 410 "(c) 2004 Lutz Rogowski Import from OL rogowski@kde.org\n"
411#endif 411#endif
412 ); 412 );
413} 413}
414 414
415void KABCore::setContactSelected( const QString &uid ) 415void KABCore::setContactSelected( const QString &uid )
416{ 416{
417 KABC::Addressee addr = mAddressBook->findByUid( uid ); 417 KABC::Addressee addr = mAddressBook->findByUid( uid );
418 if ( !mDetails->isHidden() ) 418 if ( !mDetails->isHidden() )
419 mDetails->setAddressee( addr ); 419 mDetails->setAddressee( addr );
420 420
421 if ( !addr.isEmpty() ) { 421 if ( !addr.isEmpty() ) {
422 emit contactSelected( addr.formattedName() ); 422 emit contactSelected( addr.formattedName() );
423 KABC::Picture pic = addr.photo(); 423 KABC::Picture pic = addr.photo();
424 if ( pic.isIntern() ) { 424 if ( pic.isIntern() ) {
425//US emit contactSelected( pic.data() ); 425//US emit contactSelected( pic.data() );
426//US instead use: 426//US instead use:
427 QPixmap px; 427 QPixmap px;
428 if (pic.data().isNull() != true) 428 if (pic.data().isNull() != true)
429 { 429 {
430 px.convertFromImage(pic.data()); 430 px.convertFromImage(pic.data());
431 } 431 }
432 432
433 emit contactSelected( px ); 433 emit contactSelected( px );
434 } 434 }
435 } 435 }
436 436
437 437
438 mExtensionManager->setSelectionChanged(); 438 mExtensionManager->setSelectionChanged();
439 439
440 // update the actions 440 // update the actions
441 bool selected = !uid.isEmpty(); 441 bool selected = !uid.isEmpty();
442 442
443 if ( mReadWrite ) { 443 if ( mReadWrite ) {
444 mActionCut->setEnabled( selected ); 444 mActionCut->setEnabled( selected );
445 mActionPaste->setEnabled( selected ); 445 mActionPaste->setEnabled( selected );
446 } 446 }
447 447
448 mActionCopy->setEnabled( selected ); 448 mActionCopy->setEnabled( selected );
449 mActionDelete->setEnabled( selected ); 449 mActionDelete->setEnabled( selected );
450 mActionEditAddressee->setEnabled( selected ); 450 mActionEditAddressee->setEnabled( selected );
451 mActionMail->setEnabled( selected ); 451 mActionMail->setEnabled( selected );
452 mActionMailVCard->setEnabled( selected ); 452 mActionMailVCard->setEnabled( selected );
453 //if (mActionBeam) 453 //if (mActionBeam)
454 //mActionBeam->setEnabled( selected ); 454 //mActionBeam->setEnabled( selected );
455 455
456 if (mActionBeamVCard) 456 if (mActionBeamVCard)
457 mActionBeamVCard->setEnabled( selected ); 457 mActionBeamVCard->setEnabled( selected );
458 458
459 mActionWhoAmI->setEnabled( selected ); 459 mActionWhoAmI->setEnabled( selected );
460 mActionCategories->setEnabled( selected ); 460 mActionCategories->setEnabled( selected );
461} 461}
462 462
463void KABCore::sendMail() 463void KABCore::sendMail()
464{ 464{
465 sendMail( mViewManager->selectedEmails().join( ", " ) ); 465 sendMail( mViewManager->selectedEmails().join( ", " ) );
466} 466}
467 467
468void KABCore::sendMail( const QString& email ) 468void KABCore::sendMail( const QString& email )
469{ 469{
470//US original kde implementation : kapp->invokeMailer( email, "" ); 470//US original kde implementation : kapp->invokeMailer( email, "" );
471 471
472/*US original qtopia implementation 472/*US original qtopia implementation
473 PimContact c = abList->currentEntry(); 473 PimContact c = abList->currentEntry();
474 QString name = c.fileAs(); 474 QString name = c.fileAs();
475 QString email = c.defaultEmail(); 475 QString email = c.defaultEmail();
476#ifndef QT_NO_COP 476#ifndef QT_NO_COP
477 QCopEnvelope e(Service::channel("Email"), "writeMail(QString,QString)"); 477 QCopEnvelope e(Service::channel("Email"), "writeMail(QString,QString)");
478 e << name << email; 478 e << name << email;
479#else 479#else
480*/ 480*/
481 481
482 482
483#ifndef QT_NO_COP 483#ifndef QT_NO_COP
484 QCString channel = KABPrefs::instance()->mEmailChannel.latin1(); 484 QCString channel = KABPrefs::instance()->mEmailChannel.latin1();
485 qDebug("Using QCopEnvelope e(\"" + channel + "\", \"writeMail(QMap(QString,QString))\")"); 485 qDebug("Using QCopEnvelope e(\"" + channel + "\", \"writeMail(QMap(QString,QString))\")");
486 486
487 QCopEnvelope e(channel, "writeMail(QString,QString)"); 487 QCopEnvelope e(channel, "writeMail(QString,QString)");
488 //US we need no names in the To field. The emailadresses are enough 488 //US we need no names in the To field. The emailadresses are enough
489 e << "" << email; 489 e << "" << email;
490#else 490#else
491 KMessageBox::sorry( this, i18n( "This version does not support sending emails." ) ); 491 KMessageBox::sorry( this, i18n( "This version does not support sending emails." ) );
492#endif 492#endif
493} 493}
494 494
495 495
496 496
497void KABCore::mailVCard() 497void KABCore::mailVCard()
498{ 498{
499 QStringList uids = mViewManager->selectedUids(); 499 QStringList uids = mViewManager->selectedUids();
500 if ( !uids.isEmpty() ) 500 if ( !uids.isEmpty() )
501 mailVCard( uids ); 501 mailVCard( uids );
502} 502}
503 503
504void KABCore::mailVCard( const QStringList& uids ) 504void KABCore::mailVCard( const QStringList& uids )
505{ 505{
506 QStringList urls; 506 QStringList urls;
507 507
508 QString tmpdir = locateLocal("tmp", KGlobal::getAppName()); 508 QString tmpdir = locateLocal("tmp", KGlobal::getAppName());
509 509
510/*US 510/*US
511 // Create a temp dir, so that we can put the files in it with proper names 511 // Create a temp dir, so that we can put the files in it with proper names
512 KTempFile tempDir; 512 KTempFile tempDir;
513 if ( tempDir.status() != 0 ) { 513 if ( tempDir.status() != 0 ) {
514 kdWarning() << strerror( tempDir.status() ) << endl; 514 kdWarning() << strerror( tempDir.status() ) << endl;
515 return; 515 return;
516 } 516 }
517 517
518 QString dirName = tempDir.name(); 518 QString dirName = tempDir.name();
519 tempDir.unlink(); 519 tempDir.unlink();
520*/ 520*/
521 QString dirName = tmpdir + "/" + KApplication::randomString( 8 ); 521 QString dirName = tmpdir + "/" + KApplication::randomString( 8 );
522 522
523 523
524 524
525 QDir().mkdir( dirName, true ); 525 QDir().mkdir( dirName, true );
526 526
527 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { 527 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) {
528 KABC::Addressee a = mAddressBook->findByUid( *it ); 528 KABC::Addressee a = mAddressBook->findByUid( *it );
529 529
530 if ( a.isEmpty() ) 530 if ( a.isEmpty() )
531 continue; 531 continue;
532 532
533 QString name = a.givenName() + "_" + a.familyName() + ".vcf"; 533 QString name = a.givenName() + "_" + a.familyName() + ".vcf";
534 534
535 QString fileName = dirName + "/" + name; 535 QString fileName = dirName + "/" + name;
536 536
537 QFile outFile(fileName); 537 QFile outFile(fileName);
538 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully 538 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully
539 KABC::VCardConverter converter; 539 KABC::VCardConverter converter;
540 QString vcard; 540 QString vcard;
541 541
542 converter.addresseeToVCard( a, vcard ); 542 converter.addresseeToVCard( a, vcard );
543 543
544 QTextStream t( &outFile ); // use a text stream 544 QTextStream t( &outFile ); // use a text stream
545 t.setEncoding( QTextStream::UnicodeUTF8 ); 545 t.setEncoding( QTextStream::UnicodeUTF8 );
546 t << vcard; 546 t << vcard;
547 547
548 outFile.close(); 548 outFile.close();
549 549
550 urls.append( fileName ); 550 urls.append( fileName );
551 } 551 }
552 } 552 }
553/*US 553/*US
554 kapp->invokeMailer( QString::null, QString::null, QString::null, 554 kapp->invokeMailer( QString::null, QString::null, QString::null,
555 QString::null, // subject 555 QString::null, // subject
556 QString::null, // body 556 QString::null, // body
557 QString::null, 557 QString::null,
558 urls ); // attachments 558 urls ); // attachments
559*/ 559*/
560#ifndef QT_NO_COP 560#ifndef QT_NO_COP
561 QCString channel = KABPrefs::instance()->mEmailChannel.latin1(); 561 QCString channel = KABPrefs::instance()->mEmailChannel.latin1();
562 qDebug("Using QCopEnvelope e(\"" + channel + "\", \"writeMail(QMap(QString,QString))\")"); 562 qDebug("Using QCopEnvelope e(\"" + channel + "\", \"writeMail(QMap(QString,QString))\")");
563 563
564 QMap<QString, QString> parameterMap; 564 QMap<QString, QString> parameterMap;
565 parameterMap.insert("ATTACHMENT<n>", urls.join(", ")); 565 parameterMap.insert("ATTACHMENT<n>", urls.join(", "));
566 566
567 QCopEnvelope e(channel, "writeMail(QMap(QString,QString))"); 567 QCopEnvelope e(channel, "writeMail(QMap(QString,QString))");
568 e << parameterMap; 568 e << parameterMap;
569#else 569#else
570 KMessageBox::sorry( this, i18n( "This version does not support sending emails." ) ); 570 KMessageBox::sorry( this, i18n( "This version does not support sending emails." ) );
571#endif 571#endif
572 572
573 573
574} 574}
575 575
576/** 576/**
577 Beams the "WhoAmI contact. 577 Beams the "WhoAmI contact.
578*/ 578*/
579void KABCore::beamMySelf() 579void KABCore::beamMySelf()
580{ 580{
581 KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI(); 581 KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI();
582 if (!a.isEmpty()) 582 if (!a.isEmpty())
583 { 583 {
584 QStringList uids; 584 QStringList uids;
585 uids << a.uid(); 585 uids << a.uid();
586 586
587 beamVCard(uids); 587 beamVCard(uids);
588 } else { 588 } else {
589 KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) ); 589 KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) );
590 590
591 591
592 } 592 }
593} 593}
594 594
595void KABCore::beamVCard() 595void KABCore::beamVCard()
596{ 596{
597 QStringList uids = mViewManager->selectedUids(); 597 QStringList uids = mViewManager->selectedUids();
598 if ( !uids.isEmpty() ) 598 if ( !uids.isEmpty() )
599 beamVCard( uids ); 599 beamVCard( uids );
600} 600}
601 601
602 602
603void KABCore::beamVCard(const QStringList& uids) 603void KABCore::beamVCard(const QStringList& uids)
604{ 604{
605/*US 605/*US
606 QString beamFilename; 606 QString beamFilename;
607 Opie::OPimContact c; 607 Opie::OPimContact c;
608 if ( actionPersonal->isOn() ) { 608 if ( actionPersonal->isOn() ) {
609 beamFilename = addressbookPersonalVCardName(); 609 beamFilename = addressbookPersonalVCardName();
610 if ( !QFile::exists( beamFilename ) ) 610 if ( !QFile::exists( beamFilename ) )
611 return; // can't beam a non-existent file 611 return; // can't beam a non-existent file
612 Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null, 612 Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null,
613 beamFilename ); 613 beamFilename );
614 Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true ); 614 Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true );
615 Opie::OPimContactAccess::List allList = access->allRecords(); 615 Opie::OPimContactAccess::List allList = access->allRecords();
616 Opie::OPimContactAccess::List::Iterator it = allList.begin(); // Just take first 616 Opie::OPimContactAccess::List::Iterator it = allList.begin(); // Just take first
617 c = *it; 617 c = *it;
618 618
619 delete access; 619 delete access;
620 } else { 620 } else {
621 unlink( beamfile ); // delete if exists 621 unlink( beamfile ); // delete if exists
622 mkdir("/tmp/obex/", 0755); 622 mkdir("/tmp/obex/", 0755);
623 c = m_abView -> currentEntry(); 623 c = m_abView -> currentEntry();
624 Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null, 624 Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null,
625 beamfile ); 625 beamfile );
626 Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true ); 626 Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true );
627 access->add( c ); 627 access->add( c );
628 access->save(); 628 access->save();
629 delete access; 629 delete access;
630 630
631 beamFilename = beamfile; 631 beamFilename = beamfile;
632 } 632 }
633 633
634 owarn << "Beaming: " << beamFilename << oendl; 634 owarn << "Beaming: " << beamFilename << oendl;
635*/ 635*/
636 636
637#if 0 637#if 0
638 QString tmpdir = locateLocal("tmp", KGlobal::getAppName()); 638 QString tmpdir = locateLocal("tmp", KGlobal::getAppName());
639 639
640 QString dirName = tmpdir + "/" + KApplication::randomString( 8 ); 640 QString dirName = tmpdir + "/" + KApplication::randomString( 8 );
641 641
642 QString name = "contact.vcf"; 642 QString name = "contact.vcf";
643 643
644 QString fileName = dirName + "/" + name; 644 QString fileName = dirName + "/" + name;
645#endif 645#endif
646 // LR: we should use the /tmp dir, because: /tmp = RAM, (HOME)/kdepim = flash memory 646 // LR: we should use the /tmp dir, because: /tmp = RAM, (HOME)/kdepim = flash memory
647 // 647 //
648 QString fileName = "/tmp/kdepimbeamfile"; 648 QString fileName = "/tmp/kdepimbeamfile";
649 649
650 650
651 //QDir().mkdir( dirName, true ); 651 //QDir().mkdir( dirName, true );
652 652
653 QFile outFile(fileName); 653 QFile outFile(fileName);
654 KABC::VCardConverter converter; 654 KABC::VCardConverter converter;
655 QString description; 655 QString description;
656 656
657 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully 657 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully
658 658
659 QTextStream t( &outFile ); // use a text stream 659 QTextStream t( &outFile ); // use a text stream
660 t.setEncoding( QTextStream::UnicodeUTF8 ); 660 t.setEncoding( QTextStream::UnicodeUTF8 );
661 661
662 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { 662 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) {
663 KABC::Addressee a = mAddressBook->findByUid( *it ); 663 KABC::Addressee a = mAddressBook->findByUid( *it );
664 664
665 if ( a.isEmpty() ) 665 if ( a.isEmpty() )
666 continue; 666 continue;
667 667
668 if (description.isEmpty()) 668 if (description.isEmpty())
669 description = a.formattedName(); 669 description = a.formattedName();
670 670
671 QString vcard; 671 QString vcard;
672 converter.addresseeToVCard( a, vcard ); 672 converter.addresseeToVCard( a, vcard );
673 t << vcard; 673 t << vcard;
674 674
675 } 675 }
676 } else { 676 } else {
677 qDebug("Error open temp beam file "); 677 qDebug("Error open temp beam file ");
678 return; 678 return;
679 } 679 }
680 680
681 outFile.close(); 681 outFile.close();
682 682
683#ifndef DESKTOP_VERSION 683#ifndef DESKTOP_VERSION
684 Ir *ir = new Ir( this ); 684 Ir *ir = new Ir( this );
685 connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) ); 685 connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) );
686 ir->send( fileName, description, "text/x-vCard" ); 686 ir->send( fileName, description, "text/x-vCard" );
687#endif 687#endif
688 688
689} 689}
690 690
691void KABCore::beamDone( Ir *ir ) 691void KABCore::beamDone( Ir *ir )
692{ 692{
693#ifndef DESKTOP_VERSION 693#ifndef DESKTOP_VERSION
694 delete ir; 694 delete ir;
695#endif 695#endif
696} 696}
697 697
698 698
699void KABCore::browse( const QString& url ) 699void KABCore::browse( const QString& url )
700{ 700{
701#ifndef KAB_EMBEDDED 701#ifndef KAB_EMBEDDED
702 kapp->invokeBrowser( url ); 702 kapp->invokeBrowser( url );
703#else //KAB_EMBEDDED 703#else //KAB_EMBEDDED
704 qDebug("KABCore::browse must be fixed"); 704 qDebug("KABCore::browse must be fixed");
705#endif //KAB_EMBEDDED 705#endif //KAB_EMBEDDED
706} 706}
707 707
708void KABCore::selectAllContacts() 708void KABCore::selectAllContacts()
709{ 709{
710 mViewManager->setSelected( QString::null, true ); 710 mViewManager->setSelected( QString::null, true );
711} 711}
712 712
713void KABCore::deleteContacts() 713void KABCore::deleteContacts()
714{ 714{
715 QStringList uidList = mViewManager->selectedUids(); 715 QStringList uidList = mViewManager->selectedUids();
716 deleteContacts( uidList ); 716 deleteContacts( uidList );
717} 717}
718 718
719void KABCore::deleteContacts( const QStringList &uids ) 719void KABCore::deleteContacts( const QStringList &uids )
720{ 720{
721 if ( uids.count() > 0 ) { 721 if ( uids.count() > 0 ) {
722 PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids ); 722 PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids );
723 UndoStack::instance()->push( command ); 723 UndoStack::instance()->push( command );
724 RedoStack::instance()->clear(); 724 RedoStack::instance()->clear();
725 725
726 // now if we deleted anything, refresh 726 // now if we deleted anything, refresh
727 setContactSelected( QString::null ); 727 setContactSelected( QString::null );
728 setModified( true ); 728 setModified( true );
729 } 729 }
730} 730}
731 731
732void KABCore::copyContacts() 732void KABCore::copyContacts()
733{ 733{
734 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 734 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
735 735
736 QString clipText = AddresseeUtil::addresseesToClipboard( addrList ); 736 QString clipText = AddresseeUtil::addresseesToClipboard( addrList );
737 737
738 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl; 738 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl;
739 739
740 QClipboard *cb = QApplication::clipboard(); 740 QClipboard *cb = QApplication::clipboard();
741 cb->setText( clipText ); 741 cb->setText( clipText );
742} 742}
743 743
744void KABCore::cutContacts() 744void KABCore::cutContacts()
745{ 745{
746 QStringList uidList = mViewManager->selectedUids(); 746 QStringList uidList = mViewManager->selectedUids();
747 747
748//US if ( uidList.size() > 0 ) { 748//US if ( uidList.size() > 0 ) {
749 if ( uidList.count() > 0 ) { 749 if ( uidList.count() > 0 ) {
750 PwCutCommand *command = new PwCutCommand( mAddressBook, uidList ); 750 PwCutCommand *command = new PwCutCommand( mAddressBook, uidList );
751 UndoStack::instance()->push( command ); 751 UndoStack::instance()->push( command );
752 RedoStack::instance()->clear(); 752 RedoStack::instance()->clear();
753 753
754 setModified( true ); 754 setModified( true );
755 } 755 }
756} 756}
757 757
758void KABCore::pasteContacts() 758void KABCore::pasteContacts()
759{ 759{
760 QClipboard *cb = QApplication::clipboard(); 760 QClipboard *cb = QApplication::clipboard();
761 761
762 KABC::Addressee::List list = AddresseeUtil::clipboardToAddressees( cb->text() ); 762 KABC::Addressee::List list = AddresseeUtil::clipboardToAddressees( cb->text() );
763 763
764 pasteContacts( list ); 764 pasteContacts( list );
765} 765}
766 766
767void KABCore::pasteContacts( KABC::Addressee::List &list ) 767void KABCore::pasteContacts( KABC::Addressee::List &list )
768{ 768{
769 KABC::Resource *resource = requestResource( this ); 769 KABC::Resource *resource = requestResource( this );
770 KABC::Addressee::List::Iterator it; 770 KABC::Addressee::List::Iterator it;
771 for ( it = list.begin(); it != list.end(); ++it ) 771 for ( it = list.begin(); it != list.end(); ++it )
772 (*it).setResource( resource ); 772 (*it).setResource( resource );
773 773
774 PwPasteCommand *command = new PwPasteCommand( this, list ); 774 PwPasteCommand *command = new PwPasteCommand( this, list );
775 UndoStack::instance()->push( command ); 775 UndoStack::instance()->push( command );
776 RedoStack::instance()->clear(); 776 RedoStack::instance()->clear();
777 777
778 setModified( true ); 778 setModified( true );
779} 779}
780 780
781void KABCore::setWhoAmI() 781void KABCore::setWhoAmI()
782{ 782{
783 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 783 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
784 784
785 if ( addrList.count() > 1 ) { 785 if ( addrList.count() > 1 ) {
786 KMessageBox::sorry( this, i18n( "Please select only one contact." ) ); 786 KMessageBox::sorry( this, i18n( "Please select only one contact." ) );
787 return; 787 return;
788 } 788 }
789 789
790 QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) ); 790 QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) );
791 if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].assembledName() ) ) == KMessageBox::Yes ) 791 if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].assembledName() ) ) == KMessageBox::Yes )
792 static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] ); 792 static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] );
793} 793}
794 794
795void KABCore::setCategories() 795void KABCore::setCategories()
796{ 796{
797 KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true ); 797 KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true );
798 if ( !dlg.exec() ) 798 if ( !dlg.exec() )
799 return; 799 return;
800 800
801 bool merge = false; 801 bool merge = false;
802 QString msg = i18n( "Merge with existing categories?" ); 802 QString msg = i18n( "Merge with existing categories?" );
803 if ( KMessageBox::questionYesNo( this, msg ) == KMessageBox::Yes ) 803 if ( KMessageBox::questionYesNo( this, msg ) == KMessageBox::Yes )
804 merge = true; 804 merge = true;
805 805
806 QStringList categories = dlg.selectedCategories(); 806 QStringList categories = dlg.selectedCategories();
807 807
808 QStringList uids = mViewManager->selectedUids(); 808 QStringList uids = mViewManager->selectedUids();
809 QStringList::Iterator it; 809 QStringList::Iterator it;
810 for ( it = uids.begin(); it != uids.end(); ++it ) { 810 for ( it = uids.begin(); it != uids.end(); ++it ) {
811 KABC::Addressee addr = mAddressBook->findByUid( *it ); 811 KABC::Addressee addr = mAddressBook->findByUid( *it );
812 if ( !addr.isEmpty() ) { 812 if ( !addr.isEmpty() ) {
813 if ( !merge ) 813 if ( !merge )
814 addr.setCategories( categories ); 814 addr.setCategories( categories );
815 else { 815 else {
816 QStringList addrCategories = addr.categories(); 816 QStringList addrCategories = addr.categories();
817 QStringList::Iterator catIt; 817 QStringList::Iterator catIt;
818 for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) { 818 for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) {
819 if ( !addrCategories.contains( *catIt ) ) 819 if ( !addrCategories.contains( *catIt ) )
820 addrCategories.append( *catIt ); 820 addrCategories.append( *catIt );
821 } 821 }
822 addr.setCategories( addrCategories ); 822 addr.setCategories( addrCategories );
823 } 823 }
824 824
825 mAddressBook->insertAddressee( addr ); 825 mAddressBook->insertAddressee( addr );
826 } 826 }
827 } 827 }
828 828
829 if ( uids.count() > 0 ) 829 if ( uids.count() > 0 )
830 setModified( true ); 830 setModified( true );
831} 831}
832 832
833void KABCore::setSearchFields( const KABC::Field::List &fields ) 833void KABCore::setSearchFields( const KABC::Field::List &fields )
834{ 834{
835 mIncSearchWidget->setFields( fields ); 835 mIncSearchWidget->setFields( fields );
836} 836}
837 837
838void KABCore::incrementalSearch( const QString& text ) 838void KABCore::incrementalSearch( const QString& text )
839{ 839{
840 mViewManager->setSelected( QString::null, false ); 840 mViewManager->setSelected( QString::null, false );
841 841
842 if ( !text.isEmpty() ) { 842 if ( !text.isEmpty() ) {
843 KABC::Field *field = mIncSearchWidget->currentField(); 843 KABC::Field *field = mIncSearchWidget->currentField();
844 844
845 QString pattern = text.lower(); 845 QString pattern = text.lower();
846 846
847#if 1 //KDE_VERSION >= 319 847#if 1 //KDE_VERSION >= 319
848 KABC::AddresseeList list( mAddressBook->allAddressees() ); 848 KABC::AddresseeList list( mAddressBook->allAddressees() );
849 if ( field ) { 849 if ( field ) {
850 list.sortByField( field ); 850 list.sortByField( field );
851 KABC::AddresseeList::Iterator it; 851 KABC::AddresseeList::Iterator it;
852 for ( it = list.begin(); it != list.end(); ++it ) { 852 for ( it = list.begin(); it != list.end(); ++it ) {
853 if ( field->value( *it ).lower().startsWith( pattern ) ) { 853 if ( field->value( *it ).lower().startsWith( pattern ) ) {
854 mViewManager->setSelected( (*it).uid(), true ); 854 mViewManager->setSelected( (*it).uid(), true );
855 return; 855 return;
diff --git a/kaddressbook/kaddressbook.pro b/kaddressbook/kaddressbook.pro
index b57317f..fec2341 100644
--- a/kaddressbook/kaddressbook.pro
+++ b/kaddressbook/kaddressbook.pro
@@ -1,183 +1,186 @@
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
17LIBS += ../bin/libmicrogammu.so
18LIBS += -lbluetooth
19LIBS += -lsdp
17LIBS += -lldap 20LIBS += -lldap
18OBJECTS_DIR = obj/unix 21OBJECTS_DIR = obj/unix
19MOC_DIR = moc/unix 22MOC_DIR = moc/unix
20} 23}
21win32: { 24win32: {
22DEFINES += _WIN32_ 25DEFINES += _WIN32_
23LIBS += ../bin/microkdepim.lib 26LIBS += ../bin/microkdepim.lib
24LIBS += ../bin/microkcal.lib 27LIBS += ../bin/microkcal.lib
25LIBS += ../bin/microkde.lib 28LIBS += ../bin/microkde.lib
26LIBS += ../bin/microkabc.lib 29LIBS += ../bin/microkabc.lib
27QMAKE_LINK += /NODEFAULTLIB:LIBC 30QMAKE_LINK += /NODEFAULTLIB:LIBC
28OBJECTS_DIR = obj/win 31OBJECTS_DIR = obj/win
29MOC_DIR = moc/win 32MOC_DIR = moc/win
30LIBS += mfc71u.lib 33LIBS += mfc71u.lib
31} 34}
32 35
33 36
34 37
35 38
36 39
37 40
38 41
39 42
40INTERFACES = \ 43INTERFACES = \
41# filteredit_base.ui \ 44# filteredit_base.ui \
42# kofilterview_base.ui \ 45# kofilterview_base.ui \
43 46
44HEADERS = \ 47HEADERS = \
45features/mergewidget.h \ 48features/mergewidget.h \
46features/distributionlistwidget.h \ 49features/distributionlistwidget.h \
47kcmconfigs/addresseewidget.h \ 50kcmconfigs/addresseewidget.h \
48kcmconfigs/extensionconfigdialog.h \ 51kcmconfigs/extensionconfigdialog.h \
49kcmconfigs/kcmkabconfig.h \ 52kcmconfigs/kcmkabconfig.h \
50kcmconfigs/kabconfigwidget.h \ 53kcmconfigs/kabconfigwidget.h \
51addresseeeditordialog.h \ 54addresseeeditordialog.h \
52addresseeeditorwidget.h \ 55addresseeeditorwidget.h \
53addresseditwidget.h \ 56addresseditwidget.h \
54addresseeconfig.h \ 57addresseeconfig.h \
55addresseeutil.h \ 58addresseeutil.h \
56emaileditwidget.h \ 59emaileditwidget.h \
57filtereditdialog.h \ 60filtereditdialog.h \
58kaddressbookmain.h \ 61kaddressbookmain.h \
59kabprefs.h \ 62kabprefs.h \
60kabcore.h \ 63kabcore.h \
61viewmanager.h \ 64viewmanager.h \
62extensionmanager.h \ 65extensionmanager.h \
63extensionwidget.h \ 66extensionwidget.h \
64kaddressbookview.h \ 67kaddressbookview.h \
65geowidget.h \ 68geowidget.h \
66imagewidget.h \ 69imagewidget.h \
67incsearchwidget.h \ 70incsearchwidget.h \
68jumpbuttonbar.h \ 71jumpbuttonbar.h \
69phoneeditwidget.h \ 72phoneeditwidget.h \
70secrecywidget.h \ 73secrecywidget.h \
71keywidget.h \ 74keywidget.h \
72nameeditdialog.h \ 75nameeditdialog.h \
73filter.h \ 76filter.h \
74addviewdialog.h \ 77addviewdialog.h \
75configurewidget.h \ 78configurewidget.h \
76viewconfigurewidget.h \ 79viewconfigurewidget.h \
77viewconfigurefieldspage.h \ 80viewconfigurefieldspage.h \
78viewconfigurefilterpage.h \ 81viewconfigurefilterpage.h \
79typecombo.h \ 82typecombo.h \
80undo.h \ 83undo.h \
81undocmds.h \ 84undocmds.h \
82xxportmanager.h \ 85xxportmanager.h \
83xxportobject.h \ 86xxportobject.h \
84xxportselectdialog.h \ 87xxportselectdialog.h \
85details/detailsviewcontainer.h \ 88details/detailsviewcontainer.h \
86details/look_basic.h \ 89details/look_basic.h \
87details/look_html.h \ 90details/look_html.h \
88views/kaddressbookiconview.h \ 91views/kaddressbookiconview.h \
89views/kaddressbooktableview.h \ 92views/kaddressbooktableview.h \
90views/kaddressbookcardview.h \ 93views/kaddressbookcardview.h \
91views/configuretableviewdialog.h \ 94views/configuretableviewdialog.h \
92views/configurecardviewdialog.h \ 95views/configurecardviewdialog.h \
93views/cardview.h \ 96views/cardview.h \
94views/colorlistbox.h \ 97views/colorlistbox.h \
95views/contactlistview.h \ 98views/contactlistview.h \
96xxport/vcard_xxport.h \ 99xxport/vcard_xxport.h \
97xxport/kde2_xxport.h \ 100xxport/kde2_xxport.h \
98xxport/csv_xxport.h \ 101xxport/csv_xxport.h \
99xxport/csvimportdialog.h \ 102xxport/csvimportdialog.h \
100xxport/opie_xxport.h \ 103xxport/opie_xxport.h \
101xxport/qtopia_xxport.h \ 104xxport/qtopia_xxport.h \
102xxport/sharpdtm_xxport.h \ 105xxport/sharpdtm_xxport.h \
103#details/look_details.h \ 106#details/look_details.h \
104#mainwindoiw.h \ 107#mainwindoiw.h \
105# alarmclient.h \ 108# alarmclient.h \
106# calendarview.h \ 109# calendarview.h \
107# customlistviewitem.h \ 110# customlistviewitem.h \
108# datenavigator.h 111# datenavigator.h
109 112
110SOURCES = \ 113SOURCES = \
111addresseeeditordialog.cpp \ 114addresseeeditordialog.cpp \
112addresseeeditorwidget.cpp \ 115addresseeeditorwidget.cpp \
113addresseditwidget.cpp \ 116addresseditwidget.cpp \
114addresseeconfig.cpp \ 117addresseeconfig.cpp \
115addresseeutil.cpp \ 118addresseeutil.cpp \
116extensionmanager.cpp \ 119extensionmanager.cpp \
117features/mergewidget.cpp \ 120features/mergewidget.cpp \
118features/distributionlistwidget.cpp \ 121features/distributionlistwidget.cpp \
119kcmconfigs/addresseewidget.cpp \ 122kcmconfigs/addresseewidget.cpp \
120kcmconfigs/extensionconfigdialog.cpp \ 123kcmconfigs/extensionconfigdialog.cpp \
121kcmconfigs/kcmkabconfig.cpp \ 124kcmconfigs/kcmkabconfig.cpp \
122kcmconfigs/kabconfigwidget.cpp \ 125kcmconfigs/kabconfigwidget.cpp \
123emaileditwidget.cpp \ 126emaileditwidget.cpp \
124filtereditdialog.cpp \ 127filtereditdialog.cpp \
125mainembedded.cpp \ 128mainembedded.cpp \
126kaddressbookmain.cpp \ 129kaddressbookmain.cpp \
127kabcore.cpp \ 130kabcore.cpp \
128kabprefs.cpp \ 131kabprefs.cpp \
129viewmanager.cpp \ 132viewmanager.cpp \
130kaddressbookview.cpp \ 133kaddressbookview.cpp \
131extensionwidget.cpp \ 134extensionwidget.cpp \
132geowidget.cpp \ 135geowidget.cpp \
133imagewidget.cpp \ 136imagewidget.cpp \
134incsearchwidget.cpp \ 137incsearchwidget.cpp \
135jumpbuttonbar.cpp \ 138jumpbuttonbar.cpp \
136phoneeditwidget.cpp \ 139phoneeditwidget.cpp \
137secrecywidget.cpp \ 140secrecywidget.cpp \
138keywidget.cpp \ 141keywidget.cpp \
139nameeditdialog.cpp \ 142nameeditdialog.cpp \
140filter.cpp \ 143filter.cpp \
141addviewdialog.cpp \ 144addviewdialog.cpp \
142configurewidget.cpp \ 145configurewidget.cpp \
143viewconfigurewidget.cpp \ 146viewconfigurewidget.cpp \
144viewconfigurefieldspage.cpp \ 147viewconfigurefieldspage.cpp \
145viewconfigurefilterpage.cpp \ 148viewconfigurefilterpage.cpp \
146undo.cpp \ 149undo.cpp \
147undocmds.cpp \ 150undocmds.cpp \
148xxportmanager.cpp \ 151xxportmanager.cpp \
149xxportobject.cpp \ 152xxportobject.cpp \
150xxportselectdialog.cpp \ 153xxportselectdialog.cpp \
151details/detailsviewcontainer.cpp \ 154details/detailsviewcontainer.cpp \
152details/look_basic.cpp \ 155details/look_basic.cpp \
153details/look_html.cpp \ 156details/look_html.cpp \
154views/kaddressbookiconview.cpp \ 157views/kaddressbookiconview.cpp \
155views/kaddressbooktableview.cpp \ 158views/kaddressbooktableview.cpp \
156views/kaddressbookcardview.cpp \ 159views/kaddressbookcardview.cpp \
157views/configuretableviewdialog.cpp \ 160views/configuretableviewdialog.cpp \
158views/configurecardviewdialog.cpp \ 161views/configurecardviewdialog.cpp \
159views/cardview.cpp \ 162views/cardview.cpp \
160views/contactlistview.cpp \ 163views/contactlistview.cpp \
161views/colorlistbox.cpp \ 164views/colorlistbox.cpp \
162xxport/vcard_xxport.cpp \ 165xxport/vcard_xxport.cpp \
163xxport/kde2_xxport.cpp \ 166xxport/kde2_xxport.cpp \
164xxport/csv_xxport.cpp \ 167xxport/csv_xxport.cpp \
165xxport/csvimportdialog.cpp \ 168xxport/csvimportdialog.cpp \
166xxport/opie_xxport.cpp \ 169xxport/opie_xxport.cpp \
167xxport/qtopia_xxport.cpp \ 170xxport/qtopia_xxport.cpp \
168xxport/sharpdtm_xxport.cpp \ 171xxport/sharpdtm_xxport.cpp \
169#details/look_details.cpp \ 172#details/look_details.cpp \
170#mainwindow.cpp \ 173#mainwindow.cpp \
171# calendarview.cpp \ 174# calendarview.cpp \
172# timespanview.cpp 175# timespanview.cpp
173 176
174 177
175 178
176win32: { 179win32: {
177HEADERS += ../outport/msoutl9.h \ 180HEADERS += ../outport/msoutl9.h \
178 kaimportoldialog.h 181 kaimportoldialog.h
179 182
180SOURCES += ../outport/msoutl9.cpp \ 183SOURCES += ../outport/msoutl9.cpp \
181 kaimportoldialog.cpp 184 kaimportoldialog.cpp
182} 185}
183 186