summaryrefslogtreecommitdiffabout
path: root/kaddressbook
authorzautrix <zautrix>2005-01-14 11:37:40 (UTC)
committer zautrix <zautrix>2005-01-14 11:37:40 (UTC)
commit61c95ce0295f1397db6499c5b468a9fb3d32a0f4 (patch) (unidiff)
tree2bceecc46d42a572adfad7d8e5000d1534642cbd /kaddressbook
parenta46ecf5ed81460ec9a4e457798e1bf0fb74c5624 (diff)
downloadkdepimpi-61c95ce0295f1397db6499c5b468a9fb3d32a0f4.zip
kdepimpi-61c95ce0295f1397db6499c5b468a9fb3d32a0f4.tar.gz
kdepimpi-61c95ce0295f1397db6499c5b468a9fb3d32a0f4.tar.bz2
made kapi saving faster
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/details/detailsviewcontainer.cpp11
-rw-r--r--kaddressbook/details/detailsviewcontainer.h1
-rw-r--r--kaddressbook/imagewidget.cpp7
-rw-r--r--kaddressbook/kabcore.cpp9
-rw-r--r--kaddressbook/kabcore.h9
-rw-r--r--kaddressbook/viewmanager.cpp1
6 files changed, 9 insertions, 29 deletions
diff --git a/kaddressbook/details/detailsviewcontainer.cpp b/kaddressbook/details/detailsviewcontainer.cpp
index ceffc77..229cce0 100644
--- a/kaddressbook/details/detailsviewcontainer.cpp
+++ b/kaddressbook/details/detailsviewcontainer.cpp
@@ -1,169 +1,160 @@
1/* 1/*
2 This file is part of KAddressBook. 2 This file is part of KAddressBook.
3 Copyright (c) 1996-2002 Mirko Boehm <mirko@kde.org> 3 Copyright (c) 1996-2002 Mirko Boehm <mirko@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 <qcombobox.h> 24#include <qcombobox.h>
25#include <qframe.h> 25#include <qframe.h>
26#include <qlabel.h> 26#include <qlabel.h>
27#include <qlayout.h> 27#include <qlayout.h>
28#include <qwidgetstack.h> 28#include <qwidgetstack.h>
29 29
30#include <kapplication.h> 30#include <kapplication.h>
31#include <kdebug.h> 31#include <kdebug.h>
32#include <kdialog.h> 32#include <kdialog.h>
33 33
34#include "look_basic.h" 34#include "look_basic.h"
35//#include "look_details.h" 35//#include "look_details.h"
36#include "look_html.h" 36#include "look_html.h"
37 37
38#ifdef KAB_EMBEDDED 38#ifdef KAB_EMBEDDED
39#include "kabprefs.h" 39#include "kabprefs.h"
40#endif //KAB_EMBEDDED 40#endif //KAB_EMBEDDED
41 41
42 42
43#include "detailsviewcontainer.h" 43#include "detailsviewcontainer.h"
44 44
45ViewContainer::ViewContainer( QWidget *parent, const char* name ) 45ViewContainer::ViewContainer( QWidget *parent, const char* name )
46 : QWidget( parent, name ), mCurrentLook( 0 ) 46 : QWidget( parent, name ), mCurrentLook( 0 )
47{ 47{
48 QBoxLayout *topLayout = new QVBoxLayout( this ); 48 QBoxLayout *topLayout = new QVBoxLayout( this );
49 //topLayout->setMargin( KDialog::marginHint() ); 49 //topLayout->setMargin( KDialog::marginHint() );
50 //topLayout->setSpacing( KDialog::spacingHint() ); 50 //topLayout->setSpacing( KDialog::spacingHint() );
51 topLayout->setMargin( 0 ); 51 topLayout->setMargin( 0 );
52 topLayout->setSpacing( 0 ); 52 topLayout->setSpacing( 0 );
53 53
54 QBoxLayout *styleLayout = new QHBoxLayout( topLayout ); 54 QBoxLayout *styleLayout = new QHBoxLayout( topLayout );
55 55
56 QLabel *label = new QLabel( i18n("Style:"), this ); 56 QLabel *label = new QLabel( i18n("Style:"), this );
57 styleLayout->addWidget( label ); 57 styleLayout->addWidget( label );
58 58
59 mStyleCombo = new QComboBox( this ); 59 mStyleCombo = new QComboBox( this );
60 styleLayout->addWidget( mStyleCombo ); 60 styleLayout->addWidget( mStyleCombo );
61 61
62 QFrame *frameRuler = new QFrame( this ); 62 QFrame *frameRuler = new QFrame( this );
63//US frameRuler->setFrameShape( QFrame::HLine ); 63//US frameRuler->setFrameShape( QFrame::HLine );
64//US frameRuler->setFrameShadow( QFrame::Sunken ); 64//US frameRuler->setFrameShadow( QFrame::Sunken );
65//US topLayout->addWidget( frameRuler ); 65//US topLayout->addWidget( frameRuler );
66 66
67 mDetailsStack = new QWidgetStack( this ); 67 mDetailsStack = new QWidgetStack( this );
68 topLayout->addWidget( mDetailsStack, 1 ); 68 topLayout->addWidget( mDetailsStack, 1 );
69 69
70 registerLooks(); 70 registerLooks();
71 71
72#if 1 72#if 1
73 // Hide detailed view selection combo box, because we currently have 73 // Hide detailed view selection combo box, because we currently have
74 // only one. Reenable it when there are more detailed views. 74 // only one. Reenable it when there are more detailed views.
75 label->hide(); 75 label->hide();
76 mStyleCombo->hide(); 76 mStyleCombo->hide();
77 frameRuler->hide(); 77 frameRuler->hide();
78#endif 78#endif
79} 79}
80 80
81KABBasicLook *ViewContainer::currentLook() 81KABBasicLook *ViewContainer::currentLook()
82{ 82{
83 return mCurrentLook; 83 return mCurrentLook;
84} 84}
85 85
86void ViewContainer::registerLooks() 86void ViewContainer::registerLooks()
87{ 87{
88 mLookFactories.append( new KABHtmlViewFactory( mDetailsStack ) ); 88 mLookFactories.append( new KABHtmlViewFactory( mDetailsStack ) );
89// mLookFactories.append( new KABDetailedViewFactory( mDetailsStack ) ); 89// mLookFactories.append( new KABDetailedViewFactory( mDetailsStack ) );
90 mStyleCombo->clear(); 90 mStyleCombo->clear();
91 91
92 for ( uint i = 0; i < mLookFactories.count(); ++i ) 92 for ( uint i = 0; i < mLookFactories.count(); ++i )
93 mStyleCombo->insertItem( mLookFactories.at( i )->description() ); 93 mStyleCombo->insertItem( mLookFactories.at( i )->description() );
94 94
95 if ( !mLookFactories.isEmpty() ) 95 if ( !mLookFactories.isEmpty() )
96 slotStyleSelected( 0 ); 96 slotStyleSelected( 0 );
97} 97}
98 98
99void ViewContainer::slotStyleSelected( int index ) 99void ViewContainer::slotStyleSelected( int index )
100{ 100{
101#ifndef KAB_EMBEDDED 101#ifndef KAB_EMBEDDED
102 KConfig *config = kapp->config(); 102 KConfig *config = kapp->config();
103#else //KAB_EMBEDDED 103#else //KAB_EMBEDDED
104 //US I hope I got the same config object as above expected. 104 //US I hope I got the same config object as above expected.
105 KConfig *config = KABPrefs::instance()->getConfig(); 105 KConfig *config = KABPrefs::instance()->getConfig();
106#endif //KAB_EMBEDDED 106#endif //KAB_EMBEDDED
107 KABC::Addressee addr; 107 KABC::Addressee addr;
108 108
109 if ( index >= 0 && index < mStyleCombo->count() ) { 109 if ( index >= 0 && index < mStyleCombo->count() ) {
110 if ( mCurrentLook != 0 ) { 110 if ( mCurrentLook != 0 ) {
111 mCurrentLook->saveSettings( config ); 111 mCurrentLook->saveSettings( config );
112 addr = mCurrentLook->addressee(); 112 addr = mCurrentLook->addressee();
113 113
114 delete mCurrentLook; 114 delete mCurrentLook;
115 mCurrentLook = 0; 115 mCurrentLook = 0;
116 } 116 }
117 117
118 KABLookFactory *factory = mLookFactories.at( index ); 118 KABLookFactory *factory = mLookFactories.at( index );
119 119
120 mCurrentLook = factory->create(); 120 mCurrentLook = factory->create();
121 mDetailsStack->raiseWidget( mCurrentLook ); 121 mDetailsStack->raiseWidget( mCurrentLook );
122 122
123 connect( mCurrentLook, SIGNAL( sendEmail( const QString& ) ), this, 123 connect( mCurrentLook, SIGNAL( sendEmail( const QString& ) ), this,
124 SIGNAL( sendEmail( const QString& ) ) ); 124 SIGNAL( sendEmail( const QString& ) ) );
125 connect( mCurrentLook, SIGNAL( browse( const QString& ) ), this, 125 connect( mCurrentLook, SIGNAL( browse( const QString& ) ), this,
126 SIGNAL( browse( const QString& ) ) ); 126 SIGNAL( browse( const QString& ) ) );
127 } 127 }
128 128
129 mCurrentLook->restoreSettings( config ); 129 mCurrentLook->restoreSettings( config );
130 mCurrentLook->setAddressee( addr ); 130 mCurrentLook->setAddressee( addr );
131} 131}
132void ViewContainer::refreshView()
133{
134 if ( mCurrentLook ) {
135 mCurrentLook->setAddressee( mCurrentAddressee );
136 }
137}
138 132
139void ViewContainer::setAddressee( const KABC::Addressee& addressee ) 133void ViewContainer::setAddressee( const KABC::Addressee& addressee )
140{ 134{
141 if ( mCurrentLook != 0 ) { 135 if ( mCurrentLook != 0 ) {
142 if ( addressee == mCurrentAddressee )
143 return;
144 else {
145 mCurrentAddressee = addressee; 136 mCurrentAddressee = addressee;
146 mCurrentLook->setAddressee( mCurrentAddressee ); 137 mCurrentLook->setAddressee( mCurrentAddressee );
147 } 138
148 } 139 }
149} 140}
150 141
151KABC::Addressee ViewContainer::addressee() 142KABC::Addressee ViewContainer::addressee()
152{ 143{
153 static KABC::Addressee empty; // do not use! 144 static KABC::Addressee empty; // do not use!
154 145
155 if ( !mCurrentLook ) 146 if ( !mCurrentLook )
156 return empty; 147 return empty;
157 else 148 else
158 return mCurrentLook->addressee(); 149 return mCurrentLook->addressee();
159} 150}
160 151
161void ViewContainer::setReadOnly( bool state ) 152void ViewContainer::setReadOnly( bool state )
162{ 153{
163 if ( mCurrentLook ) 154 if ( mCurrentLook )
164 mCurrentLook->setReadOnly( state ); 155 mCurrentLook->setReadOnly( state );
165} 156}
166 157
167#ifndef KAB_EMBEDDED 158#ifndef KAB_EMBEDDED
168#include "detailsviewcontainer.moc" 159#include "detailsviewcontainer.moc"
169#endif //KAB_EMBEDDED 160#endif //KAB_EMBEDDED
diff --git a/kaddressbook/details/detailsviewcontainer.h b/kaddressbook/details/detailsviewcontainer.h
index b561d12..667f0cb 100644
--- a/kaddressbook/details/detailsviewcontainer.h
+++ b/kaddressbook/details/detailsviewcontainer.h
@@ -1,103 +1,102 @@
1/* 1/*
2 This file is part of KAddressBook. 2 This file is part of KAddressBook.
3 Copyright (c) 1996-2002 Mirko Boehm <mirko@kde.org> 3 Copyright (c) 1996-2002 Mirko Boehm <mirko@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#ifndef DETAILSVIEWCONTAINER_H 24#ifndef DETAILSVIEWCONTAINER_H
25#define DETAILSVIEWCONTAINER_H 25#define DETAILSVIEWCONTAINER_H
26 26
27#include <qptrlist.h> 27#include <qptrlist.h>
28 28
29#include "look_basic.h" 29#include "look_basic.h"
30 30
31class QComboBox; 31class QComboBox;
32class QWidgetStack; 32class QWidgetStack;
33 33
34class ViewContainer : public QWidget 34class ViewContainer : public QWidget
35{ 35{
36 Q_OBJECT 36 Q_OBJECT
37 37
38 public: 38 public:
39 ViewContainer( QWidget *parent = 0, const char* name = 0 ); 39 ViewContainer( QWidget *parent = 0, const char* name = 0 );
40 40
41 /** 41 /**
42 Return the look currently selected. If there is none, it 42 Return the look currently selected. If there is none, it
43 returns zero. Do not use this pointer to store a reference 43 returns zero. Do not use this pointer to store a reference
44 to a look, the user might select another one (e.g., create 44 to a look, the user might select another one (e.g., create
45 a new object) at any time. 45 a new object) at any time.
46 */ 46 */
47 KABBasicLook *currentLook(); 47 KABBasicLook *currentLook();
48 void refreshView();
49 /** 48 /**
50 Return the contact currently displayed. 49 Return the contact currently displayed.
51 */ 50 */
52 KABC::Addressee addressee(); 51 KABC::Addressee addressee();
53 52
54 public slots: 53 public slots:
55 /** 54 /**
56 Set the contact currently displayed. 55 Set the contact currently displayed.
57 */ 56 */
58 void setAddressee( const KABC::Addressee& addressee ); 57 void setAddressee( const KABC::Addressee& addressee );
59 58
60 /** 59 /**
61 Set read-write state. 60 Set read-write state.
62 */ 61 */
63 void setReadOnly( bool state ); 62 void setReadOnly( bool state );
64 63
65 signals: 64 signals:
66 /** 65 /**
67 The contact has been changed. 66 The contact has been changed.
68 */ 67 */
69 void addresseeChanged(); 68 void addresseeChanged();
70 69
71 /** 70 /**
72 The user acticated the email address displayed. This may happen 71 The user acticated the email address displayed. This may happen
73 by, for example, clicking on the displayed mailto-URL. 72 by, for example, clicking on the displayed mailto-URL.
74 */ 73 */
75 void sendEmail( const QString& ); 74 void sendEmail( const QString& );
76 75
77 /** 76 /**
78 The user activated one of the displayed HTTP URLs. For example 77 The user activated one of the displayed HTTP URLs. For example
79 by clicking on the displayed homepage address. 78 by clicking on the displayed homepage address.
80 */ 79 */
81 void browse( const QString& ); 80 void browse( const QString& );
82 81
83 protected: 82 protected:
84 /** 83 /**
85 A style has been selected. Overloaded from base class. 84 A style has been selected. Overloaded from base class.
86 */ 85 */
87 void slotStyleSelected( int ); 86 void slotStyleSelected( int );
88 87
89 /** 88 /**
90 Register the available looks. 89 Register the available looks.
91 */ 90 */
92 void registerLooks(); 91 void registerLooks();
93 92
94 private: 93 private:
95 KABC::Addressee mCurrentAddressee; 94 KABC::Addressee mCurrentAddressee;
96 KABBasicLook *mCurrentLook; 95 KABBasicLook *mCurrentLook;
97 QPtrList<KABLookFactory> mLookFactories; 96 QPtrList<KABLookFactory> mLookFactories;
98 97
99 QComboBox *mStyleCombo; 98 QComboBox *mStyleCombo;
100 QWidgetStack *mDetailsStack; 99 QWidgetStack *mDetailsStack;
101}; 100};
102 101
103#endif 102#endif
diff --git a/kaddressbook/imagewidget.cpp b/kaddressbook/imagewidget.cpp
index 49d456b..48370e3 100644
--- a/kaddressbook/imagewidget.cpp
+++ b/kaddressbook/imagewidget.cpp
@@ -1,299 +1,294 @@
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 <kabc/picture.h> 24#include <kabc/picture.h>
25 25
26#ifndef KAB_EMBEDDED 26#ifndef KAB_EMBEDDED
27#include <kaccelmanager.h> 27#include <kaccelmanager.h>
28#include <kio/netaccess.h> 28#include <kio/netaccess.h>
29#include <kimageio.h> 29#include <kimageio.h>
30#endif //KAB_EMBEDDED 30#endif //KAB_EMBEDDED
31 31
32#include <kdebug.h> 32#include <kdebug.h>
33#include <kdialog.h> 33#include <kdialog.h>
34#include <kiconloader.h> 34#include <kiconloader.h>
35#include <klocale.h> 35#include <klocale.h>
36#include <kurlrequester.h> 36#include <kurlrequester.h>
37#include <kurl.h> 37#include <kurl.h>
38 38
39#include <qcheckbox.h> 39#include <qcheckbox.h>
40#include <qgroupbox.h> 40#include <qgroupbox.h>
41#include <qlabel.h> 41#include <qlabel.h>
42#include <qlayout.h> 42#include <qlayout.h>
43#include <qpixmap.h> 43#include <qpixmap.h>
44#include <qapplication.h> 44#include <qapplication.h>
45 45
46#include "imagewidget.h" 46#include "imagewidget.h"
47 47
48ImageWidget::ImageWidget( QWidget *parent, const char *name ) 48ImageWidget::ImageWidget( QWidget *parent, const char *name )
49 : QWidget( parent, name ) 49 : QWidget( parent, name )
50{ 50{
51 QGridLayout *topLayout = new QGridLayout( this, 2, 1, KDialog::marginHint(), 51 QGridLayout *topLayout = new QGridLayout( this, 2, 1, KDialog::marginHint(),
52 KDialog::spacingHint() ); 52 KDialog::spacingHint() );
53 53
54 QGroupBox *photoBox = new QGroupBox( 0, Qt::Vertical, i18n( "Photo" ), this ); 54 QGroupBox *photoBox = new QGroupBox( 0, Qt::Vertical, i18n( "Photo" ), this );
55 QGridLayout *boxLayout = new QGridLayout( photoBox->layout(), 3, 2, 55 QGridLayout *boxLayout = new QGridLayout( photoBox->layout(), 3, 2,
56 KDialog::spacingHint() ); 56 KDialog::spacingHint() );
57 boxLayout->setRowStretch( 2, 1 ); 57 boxLayout->setRowStretch( 2, 1 );
58 58
59 mPhotoLabel = new QLabel( photoBox ); 59 mPhotoLabel = new QLabel( photoBox );
60 int fac = 9; 60 int fac = 9;
61 if ( QApplication::desktop()->width() > 320 ) 61 if ( QApplication::desktop()->width() > 320 )
62 fac = 6; 62 fac = 6;
63 mPhotoLabel->setFixedSize( 50*9/fac, 70*9/fac ); 63 mPhotoLabel->setFixedSize( 50*9/fac, 70*9/fac );
64 mPhotoLabel->setScaledContents( true ); 64 mPhotoLabel->setScaledContents( true );
65 mPhotoLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken ); 65 mPhotoLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken );
66 boxLayout->addMultiCellWidget( mPhotoLabel, 0, 2, 0, 0 ); 66 boxLayout->addMultiCellWidget( mPhotoLabel, 0, 2, 0, 0 );
67 67
68 mPhotoUrl = new KURLRequester( photoBox ); 68 mPhotoUrl = new KURLRequester( photoBox );
69#ifndef KAB_EMBEDDED 69#ifndef KAB_EMBEDDED
70 mPhotoUrl->setFilter( KImageIO::pattern() ); 70 mPhotoUrl->setFilter( KImageIO::pattern() );
71#else //KAB_EMBEDDED 71#else //KAB_EMBEDDED
72//US qDebug("ImageWidget::ImageWidget KImageIO not defined. Does this harm ???"); 72//US qDebug("ImageWidget::ImageWidget KImageIO not defined. Does this harm ???");
73#endif //KAB_EMBEDDED 73#endif //KAB_EMBEDDED
74 74
75 75
76 boxLayout->addWidget( mPhotoUrl, 0, 1 ); 76 boxLayout->addWidget( mPhotoUrl, 0, 1 );
77 77
78 mUsePhotoUrl = new QCheckBox( i18n( "Store as URL" ), photoBox ); 78 mUsePhotoUrl = new QCheckBox( i18n( "Store as URL" ), photoBox );
79 mUsePhotoUrl->setEnabled( false ); 79 mUsePhotoUrl->setEnabled( false );
80 boxLayout->addWidget( mUsePhotoUrl, 1, 1 ); 80 boxLayout->addWidget( mUsePhotoUrl, 1, 1 );
81 81
82 topLayout->addWidget( photoBox, 0, 0 ); 82 topLayout->addWidget( photoBox, 0, 0 );
83 83
84 QGroupBox *logoBox = new QGroupBox( 0, Qt::Vertical, i18n( "Logo" ), this ); 84 QGroupBox *logoBox = new QGroupBox( 0, Qt::Vertical, i18n( "Logo" ), this );
85 boxLayout = new QGridLayout( logoBox->layout(), 3, 2, KDialog::spacingHint() ); 85 boxLayout = new QGridLayout( logoBox->layout(), 3, 2, KDialog::spacingHint() );
86 boxLayout->setRowStretch( 2, 1 ); 86 boxLayout->setRowStretch( 2, 1 );
87 87
88 mLogoLabel = new QLabel( logoBox ); 88 mLogoLabel = new QLabel( logoBox );
89 mLogoLabel->setFixedSize( 50*9/fac, 70*9/fac ); 89 mLogoLabel->setFixedSize( 50*9/fac, 70*9/fac );
90 mLogoLabel->setScaledContents( true ); 90 mLogoLabel->setScaledContents( true );
91 mLogoLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken ); 91 mLogoLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken );
92 boxLayout->addMultiCellWidget( mLogoLabel, 0, 2, 0, 0 ); 92 boxLayout->addMultiCellWidget( mLogoLabel, 0, 2, 0, 0 );
93 93
94 mLogoUrl = new KURLRequester( logoBox ); 94 mLogoUrl = new KURLRequester( logoBox );
95#ifndef KAB_EMBEDDED 95#ifndef KAB_EMBEDDED
96 mLogoUrl->setFilter( KImageIO::pattern() ); 96 mLogoUrl->setFilter( KImageIO::pattern() );
97#else //KAB_EMBEDDED 97#else //KAB_EMBEDDED
98//US qDebug("ImageWidget::ImageWidget KImageIO not defined 2"); 98//US qDebug("ImageWidget::ImageWidget KImageIO not defined 2");
99#endif //KAB_EMBEDDED 99#endif //KAB_EMBEDDED
100 boxLayout->addWidget( mLogoUrl, 0, 1 ); 100 boxLayout->addWidget( mLogoUrl, 0, 1 );
101 101
102 mUseLogoUrl = new QCheckBox( i18n( "Store as URL" ), logoBox ); 102 mUseLogoUrl = new QCheckBox( i18n( "Store as URL" ), logoBox );
103 mUseLogoUrl->setEnabled( false ); 103 mUseLogoUrl->setEnabled( false );
104 boxLayout->addWidget( mUseLogoUrl, 1, 1 ); 104 boxLayout->addWidget( mUseLogoUrl, 1, 1 );
105 105
106 topLayout->addWidget( logoBox, 1, 0 ); 106 topLayout->addWidget( logoBox, 1, 0 );
107 107
108 connect( mPhotoUrl, SIGNAL( textChanged( const QString& ) ), 108 connect( mPhotoUrl, SIGNAL( textChanged( const QString& ) ),
109 SIGNAL( changed() ) ); 109 SIGNAL( changed() ) );
110 connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ), 110 connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ),
111 SLOT( loadPhoto() ) ); 111 SLOT( loadPhoto() ) );
112 connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ), 112 connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ),
113 SIGNAL( changed() ) ); 113 SIGNAL( changed() ) );
114 connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ), 114 connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ),
115 SLOT( updateGUI() ) ); 115 SLOT( updateGUI() ) );
116 connect( mUsePhotoUrl, SIGNAL( toggled( bool ) ), 116 connect( mUsePhotoUrl, SIGNAL( toggled( bool ) ),
117 SIGNAL( changed() ) ); 117 SIGNAL( changed() ) );
118 118
119 connect( mLogoUrl, SIGNAL( textChanged( const QString& ) ), 119 connect( mLogoUrl, SIGNAL( textChanged( const QString& ) ),
120 SIGNAL( changed() ) ); 120 SIGNAL( changed() ) );
121 connect( mLogoUrl, SIGNAL( urlSelected( const QString& ) ), 121 connect( mLogoUrl, SIGNAL( urlSelected( const QString& ) ),
122 SLOT( loadLogo() ) ); 122 SLOT( loadLogo() ) );
123 connect( mLogoUrl, SIGNAL( urlSelected( const QString& ) ), 123 connect( mLogoUrl, SIGNAL( urlSelected( const QString& ) ),
124 SIGNAL( changed() ) ); 124 SIGNAL( changed() ) );
125 connect( mLogoUrl, SIGNAL( urlSelected( const QString& ) ), 125 connect( mLogoUrl, SIGNAL( urlSelected( const QString& ) ),
126 SLOT( updateGUI() ) ); 126 SLOT( updateGUI() ) );
127 connect( mUseLogoUrl, SIGNAL( toggled( bool ) ), 127 connect( mUseLogoUrl, SIGNAL( toggled( bool ) ),
128 SIGNAL( changed() ) ); 128 SIGNAL( changed() ) );
129 129
130#ifndef KAB_EMBEDDED 130#ifndef KAB_EMBEDDED
131 KAcceleratorManager::manage( this ); 131 KAcceleratorManager::manage( this );
132#endif //KAB_EMBEDDED 132#endif //KAB_EMBEDDED
133 133
134#ifndef DESKTOP_VERSION
135 mUsePhotoUrl->setChecked( true );
136 mUseLogoUrl->setChecked( true );
137#endif
138} 134}
139 135
140ImageWidget::~ImageWidget() 136ImageWidget::~ImageWidget()
141{ 137{
142} 138}
143 139
144void ImageWidget::setPhoto( const KABC::Picture &photo ) 140void ImageWidget::setPhoto( const KABC::Picture &photo )
145{ 141{
146 bool blocked = signalsBlocked(); 142 bool blocked = signalsBlocked();
147 blockSignals( true ); 143 blockSignals( true );
148 144
149 if ( photo.isIntern() ) { 145 if ( photo.isIntern() ) {
150//US 146//US
151//US mPhotoLabel->setPixmap( photo.data() ); 147//US mPhotoLabel->setPixmap( photo.data() );
152 if (photo.data().isNull() != true) 148 if (photo.data().isNull() != true)
153 { 149 {
154 QPixmap pm; 150 QPixmap pm;
155 pm.convertFromImage(photo.data()); 151 pm.convertFromImage(photo.data());
156 152
157 mPhotoLabel->setPixmap( pm ); 153 mPhotoLabel->setPixmap( pm );
158 } 154 }
159 155
160 mUsePhotoUrl->setChecked( false ); 156 mUsePhotoUrl->setChecked( false );
161 } else { 157 } else {
162 mPhotoUrl->setURL( photo.url() ); 158 mPhotoUrl->setURL( photo.url() );
163 if ( !photo.url().isEmpty() ) 159 if ( !photo.url().isEmpty() )
164 mUsePhotoUrl->setChecked( true ); 160 mUsePhotoUrl->setChecked( true );
165 loadPhoto(); 161 loadPhoto();
166 } 162 }
167 163
168 blockSignals( blocked ); 164 blockSignals( blocked );
169} 165}
170 166
171KABC::Picture ImageWidget::photo() const 167KABC::Picture ImageWidget::photo() const
172{ 168{
173 KABC::Picture photo; 169 KABC::Picture photo;
174 170
175 if ( mUsePhotoUrl->isChecked() ) 171 if ( mUsePhotoUrl->isChecked() )
176 photo.setUrl( mPhotoUrl->url() ); 172 photo.setUrl( mPhotoUrl->url() );
177 else { 173 else {
178 QPixmap *px = mPhotoLabel->pixmap(); 174 QPixmap *px = mPhotoLabel->pixmap();
179 if ( px ) { 175 if ( px ) {
180#ifndef KAB_EMBEDDED 176#ifndef KAB_EMBEDDED
181 if ( px->height() > px->width() ) 177 if ( px->height() > px->width() )
182 photo.setData( px->convertToImage().scaleHeight( 140 ) ); 178 photo.setData( px->convertToImage().scaleHeight( 140 ) );
183 else 179 else
184 photo.setData( px->convertToImage().scaleWidth( 100 ) ); 180 photo.setData( px->convertToImage().scaleWidth( 100 ) );
185#else //KAB_EMBEDDED 181#else //KAB_EMBEDDED
186//US add teh nullcheck 182//US add teh nullcheck
187 if (px->isNull() != true ) 183 if (px->isNull() != true )
188 photo.setData( px->convertToImage() ); 184 photo.setData( px->convertToImage() );
189#endif //KAB_EMBEDDED 185#endif //KAB_EMBEDDED
190 186
191 photo.setType( "PNG" ); 187 photo.setType( "PNG" );
192 } 188 }
193 } 189 }
194 190
195 return photo; 191 return photo;
196} 192}
197 193
198void ImageWidget::setLogo( const KABC::Picture &logo ) 194void ImageWidget::setLogo( const KABC::Picture &logo )
199{ 195{
200 bool blocked = signalsBlocked(); 196 bool blocked = signalsBlocked();
201 blockSignals( true ); 197 blockSignals( true );
202 198
203 if ( logo.isIntern() ) { 199 if ( logo.isIntern() ) {
204//US 200//US
205//US mLogoLabel->setPixmap( logo.data() ); 201//US mLogoLabel->setPixmap( logo.data() );
206 if (logo.data().isNull() != true) 202 if (logo.data().isNull() != true)
207 { 203 {
208 QPixmap pm; 204 QPixmap pm;
209 pm.convertFromImage(logo.data()); 205 pm.convertFromImage(logo.data());
210 mLogoLabel->setPixmap( pm ); 206 mLogoLabel->setPixmap( pm );
211 } 207 }
212 mUseLogoUrl->setChecked( false ); 208 mUseLogoUrl->setChecked( false );
213 } else { 209 } else {
214 mLogoUrl->setURL( logo.url() ); 210 mLogoUrl->setURL( logo.url() );
215 if ( !logo.url().isEmpty() ) 211 if ( !logo.url().isEmpty() )
216 mUseLogoUrl->setChecked( true ); 212 mUseLogoUrl->setChecked( true );
217 loadLogo(); 213 loadLogo();
218 } 214 }
219 215
220 blockSignals( blocked ); 216 blockSignals( blocked );
221} 217}
222 218
223KABC::Picture ImageWidget::logo() const 219KABC::Picture ImageWidget::logo() const
224{ 220{
225 KABC::Picture logo; 221 KABC::Picture logo;
226 222
227 if ( mUseLogoUrl->isChecked() ) 223 if ( mUseLogoUrl->isChecked() )
228 logo.setUrl( mLogoUrl->url() ); 224 logo.setUrl( mLogoUrl->url() );
229 else { 225 else {
230 QPixmap *px = mLogoLabel->pixmap(); 226 QPixmap *px = mLogoLabel->pixmap();
231 if ( px ) { 227 if ( px ) {
232#ifndef KAB_EMBEDDED 228#ifndef KAB_EMBEDDED
233 if ( px->height() > px->width() ) 229 if ( px->height() > px->width() )
234 logo.setData( px->convertToImage().scaleHeight( 140 ) ); 230 logo.setData( px->convertToImage().scaleHeight( 140 ) );
235 else 231 else
236 logo.setData( px->convertToImage().scaleWidth( 100 ) ); 232 logo.setData( px->convertToImage().scaleWidth( 100 ) );
237#else //KAB_EMBEDDED 233#else //KAB_EMBEDDED
238 logo.setData( px->convertToImage() ); 234 logo.setData( px->convertToImage() );
239#endif //KAB_EMBEDDED 235#endif //KAB_EMBEDDED
240 236
241 logo.setType( "PNG" ); 237 logo.setType( "PNG" );
242 238
243 } 239 }
244 } 240 }
245 241
246 return logo; 242 return logo;
247} 243}
248 244
249void ImageWidget::loadPhoto() 245void ImageWidget::loadPhoto()
250{ 246{
251 mPhotoLabel->setPixmap( loadPixmap( mPhotoUrl->url() ) ); 247 mPhotoLabel->setPixmap( loadPixmap( mPhotoUrl->url() ) );
252} 248}
253 249
254void ImageWidget::loadLogo() 250void ImageWidget::loadLogo()
255{ 251{
256 mLogoLabel->setPixmap( loadPixmap( mLogoUrl->url() ) ); 252 mLogoLabel->setPixmap( loadPixmap( mLogoUrl->url() ) );
257} 253}
258 254
259void ImageWidget::updateGUI() 255void ImageWidget::updateGUI()
260{ 256{
261 KURLRequester *ptr = (KURLRequester*)sender(); 257 KURLRequester *ptr = (KURLRequester*)sender();
262 258
263#ifdef DESKTOP_VERSION 259
264 if ( ptr == mPhotoUrl ) 260 if ( ptr == mPhotoUrl )
265 mUsePhotoUrl->setEnabled( true ); 261 mUsePhotoUrl->setEnabled( true );
266 else if ( ptr == mLogoUrl ) 262 else if ( ptr == mLogoUrl )
267 mUseLogoUrl->setEnabled( true ); 263 mUseLogoUrl->setEnabled( true );
268#endif
269} 264}
270 265
271QPixmap ImageWidget::loadPixmap( const KURL &url ) 266QPixmap ImageWidget::loadPixmap( const KURL &url )
272{ 267{
273 QString tempFile; 268 QString tempFile;
274 QPixmap pixmap; 269 QPixmap pixmap;
275 270
276 if ( url.isEmpty() ) 271 if ( url.isEmpty() )
277 return pixmap; 272 return pixmap;
278 273
279 if ( url.isLocalFile() ) 274 if ( url.isLocalFile() )
280 pixmap = QPixmap( url.path() ); 275 pixmap = QPixmap( url.path() );
281 else 276 else
282 { 277 {
283#ifndef KAB_EMBEDDED 278#ifndef KAB_EMBEDDED
284 if ( KIO::NetAccess::download( url, tempFile ) ) { 279 if ( KIO::NetAccess::download( url, tempFile ) ) {
285 pixmap = QPixmap( tempFile ); 280 pixmap = QPixmap( tempFile );
286 KIO::NetAccess::removeTempFile( tempFile ); 281 KIO::NetAccess::removeTempFile( tempFile );
287 } 282 }
288#else //KAB_EMBEDDED 283#else //KAB_EMBEDDED
289 qDebug("ImageWidget::loadPixmap : only local pixmaps are allowed"); 284 qDebug("ImageWidget::loadPixmap : only local pixmaps are allowed");
290#endif //KAB_EMBEDDED 285#endif //KAB_EMBEDDED
291 286
292 } 287 }
293 288
294 return pixmap; 289 return pixmap;
295} 290}
296 291
297#ifndef KAB_EMBEDDED 292#ifndef KAB_EMBEDDED
298#include "imagewidget.moc" 293#include "imagewidget.moc"
299#endif //KAB_EMBEDDED 294#endif //KAB_EMBEDDED
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index f6bdda4..e14e579 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -937,425 +937,422 @@ void KABCore::beamVCard(const QStringList& uids)
937 connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) ); 937 connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) );
938 ir->send( fileName, description, "text/x-vCard" ); 938 ir->send( fileName, description, "text/x-vCard" );
939 } else { 939 } else {
940 qDebug("Error open temp beam file "); 940 qDebug("Error open temp beam file ");
941 return; 941 return;
942 } 942 }
943#endif 943#endif
944 944
945} 945}
946 946
947void KABCore::beamDone( Ir *ir ) 947void KABCore::beamDone( Ir *ir )
948{ 948{
949#ifndef DESKTOP_VERSION 949#ifndef DESKTOP_VERSION
950 delete ir; 950 delete ir;
951#endif 951#endif
952 topLevelWidget()->raise(); 952 topLevelWidget()->raise();
953 message( i18n("Beaming finished!") ); 953 message( i18n("Beaming finished!") );
954} 954}
955 955
956 956
957void KABCore::browse( const QString& url ) 957void KABCore::browse( const QString& url )
958{ 958{
959#ifndef KAB_EMBEDDED 959#ifndef KAB_EMBEDDED
960 kapp->invokeBrowser( url ); 960 kapp->invokeBrowser( url );
961#else //KAB_EMBEDDED 961#else //KAB_EMBEDDED
962 qDebug("KABCore::browse must be fixed"); 962 qDebug("KABCore::browse must be fixed");
963#endif //KAB_EMBEDDED 963#endif //KAB_EMBEDDED
964} 964}
965 965
966void KABCore::selectAllContacts() 966void KABCore::selectAllContacts()
967{ 967{
968 mViewManager->setSelected( QString::null, true ); 968 mViewManager->setSelected( QString::null, true );
969} 969}
970 970
971void KABCore::deleteContacts() 971void KABCore::deleteContacts()
972{ 972{
973 QStringList uidList = mViewManager->selectedUids(); 973 QStringList uidList = mViewManager->selectedUids();
974 deleteContacts( uidList ); 974 deleteContacts( uidList );
975} 975}
976 976
977void KABCore::deleteContacts( const QStringList &uids ) 977void KABCore::deleteContacts( const QStringList &uids )
978{ 978{
979 if ( uids.count() > 0 ) { 979 if ( uids.count() > 0 ) {
980 PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids ); 980 PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids );
981 UndoStack::instance()->push( command ); 981 UndoStack::instance()->push( command );
982 RedoStack::instance()->clear(); 982 RedoStack::instance()->clear();
983 983
984 // now if we deleted anything, refresh 984 // now if we deleted anything, refresh
985 setContactSelected( QString::null ); 985 setContactSelected( QString::null );
986 setModified( true ); 986 setModified( true );
987 } 987 }
988} 988}
989 989
990void KABCore::copyContacts() 990void KABCore::copyContacts()
991{ 991{
992 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 992 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
993 993
994 QString clipText = AddresseeUtil::addresseesToClipboard( addrList ); 994 QString clipText = AddresseeUtil::addresseesToClipboard( addrList );
995 995
996 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl; 996 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl;
997 997
998 QClipboard *cb = QApplication::clipboard(); 998 QClipboard *cb = QApplication::clipboard();
999 cb->setText( clipText ); 999 cb->setText( clipText );
1000} 1000}
1001 1001
1002void KABCore::cutContacts() 1002void KABCore::cutContacts()
1003{ 1003{
1004 QStringList uidList = mViewManager->selectedUids(); 1004 QStringList uidList = mViewManager->selectedUids();
1005 1005
1006//US if ( uidList.size() > 0 ) { 1006//US if ( uidList.size() > 0 ) {
1007 if ( uidList.count() > 0 ) { 1007 if ( uidList.count() > 0 ) {
1008 PwCutCommand *command = new PwCutCommand( mAddressBook, uidList ); 1008 PwCutCommand *command = new PwCutCommand( mAddressBook, uidList );
1009 UndoStack::instance()->push( command ); 1009 UndoStack::instance()->push( command );
1010 RedoStack::instance()->clear(); 1010 RedoStack::instance()->clear();
1011 1011
1012 setModified( true ); 1012 setModified( true );
1013 } 1013 }
1014} 1014}
1015 1015
1016void KABCore::pasteContacts() 1016void KABCore::pasteContacts()
1017{ 1017{
1018 QClipboard *cb = QApplication::clipboard(); 1018 QClipboard *cb = QApplication::clipboard();
1019 1019
1020 KABC::Addressee::List list = AddresseeUtil::clipboardToAddressees( cb->text() ); 1020 KABC::Addressee::List list = AddresseeUtil::clipboardToAddressees( cb->text() );
1021 1021
1022 pasteContacts( list ); 1022 pasteContacts( list );
1023} 1023}
1024 1024
1025void KABCore::pasteContacts( KABC::Addressee::List &list ) 1025void KABCore::pasteContacts( KABC::Addressee::List &list )
1026{ 1026{
1027 KABC::Resource *resource = requestResource( this ); 1027 KABC::Resource *resource = requestResource( this );
1028 KABC::Addressee::List::Iterator it; 1028 KABC::Addressee::List::Iterator it;
1029 for ( it = list.begin(); it != list.end(); ++it ) 1029 for ( it = list.begin(); it != list.end(); ++it )
1030 (*it).setResource( resource ); 1030 (*it).setResource( resource );
1031 1031
1032 PwPasteCommand *command = new PwPasteCommand( this, list ); 1032 PwPasteCommand *command = new PwPasteCommand( this, list );
1033 UndoStack::instance()->push( command ); 1033 UndoStack::instance()->push( command );
1034 RedoStack::instance()->clear(); 1034 RedoStack::instance()->clear();
1035 1035
1036 setModified( true ); 1036 setModified( true );
1037} 1037}
1038 1038
1039void KABCore::setWhoAmI() 1039void KABCore::setWhoAmI()
1040{ 1040{
1041 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 1041 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
1042 1042
1043 if ( addrList.count() > 1 ) { 1043 if ( addrList.count() > 1 ) {
1044 KMessageBox::sorry( this, i18n( "Please select only one contact." ) ); 1044 KMessageBox::sorry( this, i18n( "Please select only one contact." ) );
1045 return; 1045 return;
1046 } 1046 }
1047 1047
1048 QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) ); 1048 QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) );
1049 if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].assembledName() ) ) == KMessageBox::Yes ) 1049 if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].assembledName() ) ) == KMessageBox::Yes )
1050 static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] ); 1050 static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] );
1051} 1051}
1052void KABCore::editCategories() 1052void KABCore::editCategories()
1053{ 1053{
1054 KPIM::CategoryEditDialog dlg ( KABPrefs::instance(), this, "", true ); 1054 KPIM::CategoryEditDialog dlg ( KABPrefs::instance(), this, "", true );
1055 dlg.exec(); 1055 dlg.exec();
1056} 1056}
1057void KABCore::setCategories() 1057void KABCore::setCategories()
1058{ 1058{
1059 1059
1060 QStringList uids; 1060 QStringList uids;
1061 XXPortSelectDialog dlgx( this, false, this ); 1061 XXPortSelectDialog dlgx( this, false, this );
1062 if ( dlgx.exec() ) 1062 if ( dlgx.exec() )
1063 uids = dlgx.uids(); 1063 uids = dlgx.uids();
1064 else 1064 else
1065 return; 1065 return;
1066 if ( uids.isEmpty() ) 1066 if ( uids.isEmpty() )
1067 return; 1067 return;
1068 // qDebug("count %d ", uids.count()); 1068 // qDebug("count %d ", uids.count());
1069 1069
1070 1070
1071 KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true ); 1071 KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true );
1072 if ( !dlg.exec() ) { 1072 if ( !dlg.exec() ) {
1073 message( i18n("Setting categories cancelled") ); 1073 message( i18n("Setting categories cancelled") );
1074 return; 1074 return;
1075 } 1075 }
1076 bool merge = false; 1076 bool merge = false;
1077 QString msg = i18n( "Merge with existing categories?" ); 1077 QString msg = i18n( "Merge with existing categories?" );
1078 if ( KMessageBox::questionYesNo( this, msg ) == KMessageBox::Yes ) 1078 if ( KMessageBox::questionYesNo( this, msg ) == KMessageBox::Yes )
1079 merge = true; 1079 merge = true;
1080 1080
1081 message( i18n("Setting categories ... please wait!") ); 1081 message( i18n("Setting categories ... please wait!") );
1082 QStringList categories = dlg.selectedCategories(); 1082 QStringList categories = dlg.selectedCategories();
1083 1083
1084 //QStringList uids = mViewManager->selectedUids(); 1084 //QStringList uids = mViewManager->selectedUids();
1085 QStringList::Iterator it; 1085 QStringList::Iterator it;
1086 for ( it = uids.begin(); it != uids.end(); ++it ) { 1086 for ( it = uids.begin(); it != uids.end(); ++it ) {
1087 KABC::Addressee addr = mAddressBook->findByUid( *it ); 1087 KABC::Addressee addr = mAddressBook->findByUid( *it );
1088 if ( !addr.isEmpty() ) { 1088 if ( !addr.isEmpty() ) {
1089 if ( !merge ) 1089 if ( !merge )
1090 addr.setCategories( categories ); 1090 addr.setCategories( categories );
1091 else { 1091 else {
1092 QStringList addrCategories = addr.categories(); 1092 QStringList addrCategories = addr.categories();
1093 QStringList::Iterator catIt; 1093 QStringList::Iterator catIt;
1094 for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) { 1094 for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) {
1095 if ( !addrCategories.contains( *catIt ) ) 1095 if ( !addrCategories.contains( *catIt ) )
1096 addrCategories.append( *catIt ); 1096 addrCategories.append( *catIt );
1097 } 1097 }
1098 addr.setCategories( addrCategories ); 1098 addr.setCategories( addrCategories );
1099 } 1099 }
1100 mAddressBook->insertAddressee( addr ); 1100 mAddressBook->insertAddressee( addr );
1101 } 1101 }
1102 } 1102 }
1103 1103
1104 if ( uids.count() > 0 ) 1104 if ( uids.count() > 0 )
1105 setModified( true ); 1105 setModified( true );
1106 message( i18n("Setting categories completed!") ); 1106 message( i18n("Setting categories completed!") );
1107} 1107}
1108 1108
1109void KABCore::setSearchFields( const KABC::Field::List &fields ) 1109void KABCore::setSearchFields( const KABC::Field::List &fields )
1110{ 1110{
1111 mIncSearchWidget->setFields( fields ); 1111 mIncSearchWidget->setFields( fields );
1112} 1112}
1113 1113
1114void KABCore::incrementalSearch( const QString& text ) 1114void KABCore::incrementalSearch( const QString& text )
1115{ 1115{
1116 mViewManager->doSearch( text, mIncSearchWidget->currentField() ); 1116 mViewManager->doSearch( text, mIncSearchWidget->currentField() );
1117} 1117}
1118 1118
1119void KABCore::setModified() 1119void KABCore::setModified()
1120{ 1120{
1121 setModified( true ); 1121 setModified( true );
1122} 1122}
1123 1123
1124void KABCore::setModifiedWOrefresh() 1124void KABCore::setModifiedWOrefresh()
1125{ 1125{
1126 // qDebug("KABCore::setModifiedWOrefresh() "); 1126 // qDebug("KABCore::setModifiedWOrefresh() ");
1127 mModified = true; 1127 mModified = true;
1128 mActionSave->setEnabled( mModified ); 1128 mActionSave->setEnabled( mModified );
1129#ifdef DESKTOP_VERSION 1129
1130 mDetails->refreshView();
1131#endif
1132 1130
1133} 1131}
1134void KABCore::setModified( bool modified ) 1132void KABCore::setModified( bool modified )
1135{ 1133{
1136 mModified = modified; 1134 mModified = modified;
1137 mActionSave->setEnabled( mModified ); 1135 mActionSave->setEnabled( mModified );
1138 1136
1139 if ( modified ) 1137 if ( modified )
1140 mJumpButtonBar->recreateButtons(); 1138 mJumpButtonBar->recreateButtons();
1141 1139
1142 mViewManager->refreshView(); 1140 mViewManager->refreshView();
1143 mDetails->refreshView();
1144 1141
1145} 1142}
1146 1143
1147bool KABCore::modified() const 1144bool KABCore::modified() const
1148{ 1145{
1149 return mModified; 1146 return mModified;
1150} 1147}
1151 1148
1152void KABCore::contactModified( const KABC::Addressee &addr ) 1149void KABCore::contactModified( const KABC::Addressee &addr )
1153{ 1150{
1154 1151
1155 Command *command = 0; 1152 Command *command = 0;
1156 QString uid; 1153 QString uid;
1157 1154
1158 // check if it exists already 1155 // check if it exists already
1159 KABC::Addressee origAddr = mAddressBook->findByUid( addr.uid() ); 1156 KABC::Addressee origAddr = mAddressBook->findByUid( addr.uid() );
1160 if ( origAddr.isEmpty() ) 1157 if ( origAddr.isEmpty() )
1161 command = new PwNewCommand( mAddressBook, addr ); 1158 command = new PwNewCommand( mAddressBook, addr );
1162 else { 1159 else {
1163 command = new PwEditCommand( mAddressBook, origAddr, addr ); 1160 command = new PwEditCommand( mAddressBook, origAddr, addr );
1164 uid = addr.uid(); 1161 uid = addr.uid();
1165 } 1162 }
1166 1163
1167 UndoStack::instance()->push( command ); 1164 UndoStack::instance()->push( command );
1168 RedoStack::instance()->clear(); 1165 RedoStack::instance()->clear();
1169 1166 mDetails->setAddressee( addr );
1170 setModified( true ); 1167 setModified( true );
1171} 1168}
1172 1169
1173void KABCore::newContact() 1170void KABCore::newContact()
1174{ 1171{
1175 1172
1176 1173
1177 QPtrList<KABC::Resource> kabcResources = mAddressBook->resources(); 1174 QPtrList<KABC::Resource> kabcResources = mAddressBook->resources();
1178 1175
1179 QPtrList<KRES::Resource> kresResources; 1176 QPtrList<KRES::Resource> kresResources;
1180 QPtrListIterator<KABC::Resource> it( kabcResources ); 1177 QPtrListIterator<KABC::Resource> it( kabcResources );
1181 KABC::Resource *resource; 1178 KABC::Resource *resource;
1182 while ( ( resource = it.current() ) != 0 ) { 1179 while ( ( resource = it.current() ) != 0 ) {
1183 ++it; 1180 ++it;
1184 if ( !resource->readOnly() ) { 1181 if ( !resource->readOnly() ) {
1185 KRES::Resource *res = static_cast<KRES::Resource*>( resource ); 1182 KRES::Resource *res = static_cast<KRES::Resource*>( resource );
1186 if ( res ) 1183 if ( res )
1187 kresResources.append( res ); 1184 kresResources.append( res );
1188 } 1185 }
1189 } 1186 }
1190 1187
1191 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, this ); 1188 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, this );
1192 resource = static_cast<KABC::Resource*>( res ); 1189 resource = static_cast<KABC::Resource*>( res );
1193 1190
1194 if ( resource ) { 1191 if ( resource ) {
1195 KABC::Addressee addr; 1192 KABC::Addressee addr;
1196 addr.setResource( resource ); 1193 addr.setResource( resource );
1197 mEditorDialog->setAddressee( addr ); 1194 mEditorDialog->setAddressee( addr );
1198 KApplication::execDialog ( mEditorDialog ); 1195 KApplication::execDialog ( mEditorDialog );
1199 1196
1200 } else 1197 } else
1201 return; 1198 return;
1202 1199
1203 // mEditorDict.insert( dialog->addressee().uid(), dialog ); 1200 // mEditorDict.insert( dialog->addressee().uid(), dialog );
1204 1201
1205 1202
1206} 1203}
1207 1204
1208void KABCore::addEmail( QString aStr ) 1205void KABCore::addEmail( QString aStr )
1209{ 1206{
1210#ifndef KAB_EMBEDDED 1207#ifndef KAB_EMBEDDED
1211 QString fullName, email; 1208 QString fullName, email;
1212 1209
1213 KABC::Addressee::parseEmailAddress( aStr, fullName, email ); 1210 KABC::Addressee::parseEmailAddress( aStr, fullName, email );
1214 1211
1215 // Try to lookup the addressee matching the email address 1212 // Try to lookup the addressee matching the email address
1216 bool found = false; 1213 bool found = false;
1217 QStringList emailList; 1214 QStringList emailList;
1218 KABC::AddressBook::Iterator it; 1215 KABC::AddressBook::Iterator it;
1219 for ( it = mAddressBook->begin(); !found && (it != mAddressBook->end()); ++it ) { 1216 for ( it = mAddressBook->begin(); !found && (it != mAddressBook->end()); ++it ) {
1220 emailList = (*it).emails(); 1217 emailList = (*it).emails();
1221 if ( emailList.contains( email ) > 0 ) { 1218 if ( emailList.contains( email ) > 0 ) {
1222 found = true; 1219 found = true;
1223 (*it).setNameFromString( fullName ); 1220 (*it).setNameFromString( fullName );
1224 editContact( (*it).uid() ); 1221 editContact( (*it).uid() );
1225 } 1222 }
1226 } 1223 }
1227 1224
1228 if ( !found ) { 1225 if ( !found ) {
1229 KABC::Addressee addr; 1226 KABC::Addressee addr;
1230 addr.setNameFromString( fullName ); 1227 addr.setNameFromString( fullName );
1231 addr.insertEmail( email, true ); 1228 addr.insertEmail( email, true );
1232 1229
1233 mAddressBook->insertAddressee( addr ); 1230 mAddressBook->insertAddressee( addr );
1234 mViewManager->refreshView( addr.uid() ); 1231 mViewManager->refreshView( addr.uid() );
1235 editContact( addr.uid() ); 1232 editContact( addr.uid() );
1236 } 1233 }
1237#else //KAB_EMBEDDED 1234#else //KAB_EMBEDDED
1238 qDebug("KABCore::addEmail finsih method"); 1235 qDebug("KABCore::addEmail finsih method");
1239#endif //KAB_EMBEDDED 1236#endif //KAB_EMBEDDED
1240} 1237}
1241 1238
1242void KABCore::importVCard( const KURL &url, bool showPreview ) 1239void KABCore::importVCard( const KURL &url, bool showPreview )
1243{ 1240{
1244 mXXPortManager->importVCard( url, showPreview ); 1241 mXXPortManager->importVCard( url, showPreview );
1245} 1242}
1246void KABCore::importFromOL() 1243void KABCore::importFromOL()
1247{ 1244{
1248#ifdef _WIN32_ 1245#ifdef _WIN32_
1249 KAImportOLdialog* idgl = new KAImportOLdialog( i18n("Import Contacts from OL"), mAddressBook, this ); 1246 KAImportOLdialog* idgl = new KAImportOLdialog( i18n("Import Contacts from OL"), mAddressBook, this );
1250 idgl->exec(); 1247 idgl->exec();
1251 KABC::Addressee::List list = idgl->getAddressList(); 1248 KABC::Addressee::List list = idgl->getAddressList();
1252 if ( list.count() > 0 ) { 1249 if ( list.count() > 0 ) {
1253 KABC::Addressee::List listNew; 1250 KABC::Addressee::List listNew;
1254 KABC::Addressee::List listExisting; 1251 KABC::Addressee::List listExisting;
1255 KABC::Addressee::List::Iterator it; 1252 KABC::Addressee::List::Iterator it;
1256 KABC::AddressBook::Iterator iter; 1253 KABC::AddressBook::Iterator iter;
1257 for ( it = list.begin(); it != list.end(); ++it ) { 1254 for ( it = list.begin(); it != list.end(); ++it ) {
1258 if ( mAddressBook->findByUid((*it).uid() ).isEmpty()) 1255 if ( mAddressBook->findByUid((*it).uid() ).isEmpty())
1259 listNew.append( (*it) ); 1256 listNew.append( (*it) );
1260 else 1257 else
1261 listExisting.append( (*it) ); 1258 listExisting.append( (*it) );
1262 } 1259 }
1263 if ( listExisting.count() > 0 ) 1260 if ( listExisting.count() > 0 )
1264 KMessageBox::information( this, i18n("%1 contacts not added to addressbook\nbecause they were already in the addressbook!").arg( listExisting.count() )); 1261 KMessageBox::information( this, i18n("%1 contacts not added to addressbook\nbecause they were already in the addressbook!").arg( listExisting.count() ));
1265 if ( listNew.count() > 0 ) { 1262 if ( listNew.count() > 0 ) {
1266 pasteWithNewUid = false; 1263 pasteWithNewUid = false;
1267 pasteContacts( listNew ); 1264 pasteContacts( listNew );
1268 pasteWithNewUid = true; 1265 pasteWithNewUid = true;
1269 } 1266 }
1270 } 1267 }
1271 delete idgl; 1268 delete idgl;
1272#endif 1269#endif
1273} 1270}
1274 1271
1275void KABCore::importVCard( const QString &vCard, bool showPreview ) 1272void KABCore::importVCard( const QString &vCard, bool showPreview )
1276{ 1273{
1277 mXXPortManager->importVCard( vCard, showPreview ); 1274 mXXPortManager->importVCard( vCard, showPreview );
1278} 1275}
1279 1276
1280//US added a second method without defaultparameter 1277//US added a second method without defaultparameter
1281void KABCore::editContact2() { 1278void KABCore::editContact2() {
1282 editContact( QString::null ); 1279 editContact( QString::null );
1283} 1280}
1284 1281
1285void KABCore::editContact( const QString &uid ) 1282void KABCore::editContact( const QString &uid )
1286{ 1283{
1287 1284
1288 if ( mExtensionManager->isQuickEditVisible() ) 1285 if ( mExtensionManager->isQuickEditVisible() )
1289 return; 1286 return;
1290 1287
1291 // First, locate the contact entry 1288 // First, locate the contact entry
1292 QString localUID = uid; 1289 QString localUID = uid;
1293 if ( localUID.isNull() ) { 1290 if ( localUID.isNull() ) {
1294 QStringList uidList = mViewManager->selectedUids(); 1291 QStringList uidList = mViewManager->selectedUids();
1295 if ( uidList.count() > 0 ) 1292 if ( uidList.count() > 0 )
1296 localUID = *( uidList.at( 0 ) ); 1293 localUID = *( uidList.at( 0 ) );
1297 } 1294 }
1298 1295
1299 KABC::Addressee addr = mAddressBook->findByUid( localUID ); 1296 KABC::Addressee addr = mAddressBook->findByUid( localUID );
1300 if ( !addr.isEmpty() ) { 1297 if ( !addr.isEmpty() ) {
1301 mEditorDialog->setAddressee( addr ); 1298 mEditorDialog->setAddressee( addr );
1302 KApplication::execDialog ( mEditorDialog ); 1299 KApplication::execDialog ( mEditorDialog );
1303 } 1300 }
1304} 1301}
1305 1302
1306/** 1303/**
1307 Shows or edits the detail view for the given uid. If the uid is QString::null, 1304 Shows or edits the detail view for the given uid. If the uid is QString::null,
1308 the method will try to find a selected addressee in the view. 1305 the method will try to find a selected addressee in the view.
1309 */ 1306 */
1310void KABCore::executeContact( const QString &uid /*US = QString::null*/ ) 1307void KABCore::executeContact( const QString &uid /*US = QString::null*/ )
1311{ 1308{
1312 if ( mMultipleViewsAtOnce ) 1309 if ( mMultipleViewsAtOnce )
1313 { 1310 {
1314 editContact( uid ); 1311 editContact( uid );
1315 } 1312 }
1316 else 1313 else
1317 { 1314 {
1318 setDetailsVisible( true ); 1315 setDetailsVisible( true );
1319 mActionDetails->setChecked(true); 1316 mActionDetails->setChecked(true);
1320 } 1317 }
1321 1318
1322} 1319}
1323 1320
1324void KABCore::save() 1321void KABCore::save()
1325{ 1322{
1326 if (syncManager->blockSave()) 1323 if (syncManager->blockSave())
1327 return; 1324 return;
1328 if ( !mModified ) 1325 if ( !mModified )
1329 return; 1326 return;
1330 1327
1331 syncManager->setBlockSave(true); 1328 syncManager->setBlockSave(true);
1332 QString text = i18n( "There was an error while attempting to save\n the " 1329 QString text = i18n( "There was an error while attempting to save\n the "
1333 "address book. Please check that some \nother application is " 1330 "address book. Please check that some \nother application is "
1334 "not using it. " ); 1331 "not using it. " );
1335 message(i18n("Saving addressbook ... ")); 1332 message(i18n("Saving addressbook ... "));
1336#ifndef KAB_EMBEDDED 1333#ifndef KAB_EMBEDDED
1337 KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook ); 1334 KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook );
1338 if ( !b || !b->save() ) { 1335 if ( !b || !b->save() ) {
1339 KMessageBox::error( this, text, i18n( "Unable to Save" ) ); 1336 KMessageBox::error( this, text, i18n( "Unable to Save" ) );
1340 } 1337 }
1341#else //KAB_EMBEDDED 1338#else //KAB_EMBEDDED
1342 KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook ); 1339 KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook );
1343 if ( !b || !b->save() ) { 1340 if ( !b || !b->save() ) {
1344 QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok")); 1341 QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok"));
1345 } 1342 }
1346#endif //KAB_EMBEDDED 1343#endif //KAB_EMBEDDED
1347 1344
1348 message(i18n("Addressbook saved!")); 1345 message(i18n("Addressbook saved!"));
1349 setModified( false ); 1346 setModified( false );
1350 syncManager->setBlockSave(false); 1347 syncManager->setBlockSave(false);
1351} 1348}
1352 1349
1353 1350
1354void KABCore::undo() 1351void KABCore::undo()
1355{ 1352{
1356 UndoStack::instance()->undo(); 1353 UndoStack::instance()->undo();
1357 1354
1358 // Refresh the view 1355 // Refresh the view
1359 mViewManager->refreshView(); 1356 mViewManager->refreshView();
1360} 1357}
1361 1358
@@ -1444,385 +1441,384 @@ void KABCore::setDetailsVisible( bool visible )
1444void KABCore::extensionChanged( int id ) 1441void KABCore::extensionChanged( int id )
1445{ 1442{
1446 //change the details view only for non desktop systems 1443 //change the details view only for non desktop systems
1447#ifndef DESKTOP_VERSION 1444#ifndef DESKTOP_VERSION
1448 1445
1449 if (id == 0) 1446 if (id == 0)
1450 { 1447 {
1451 //the user disabled the extension. 1448 //the user disabled the extension.
1452 1449
1453 if (mMultipleViewsAtOnce) 1450 if (mMultipleViewsAtOnce)
1454 { // enable detailsview again 1451 { // enable detailsview again
1455 setDetailsVisible( true ); 1452 setDetailsVisible( true );
1456 mActionDetails->setChecked( true ); 1453 mActionDetails->setChecked( true );
1457 } 1454 }
1458 else 1455 else
1459 { //go back to the listview 1456 { //go back to the listview
1460 setDetailsVisible( false ); 1457 setDetailsVisible( false );
1461 mActionDetails->setChecked( false ); 1458 mActionDetails->setChecked( false );
1462 mActionDetails->setEnabled(true); 1459 mActionDetails->setEnabled(true);
1463 } 1460 }
1464 1461
1465 } 1462 }
1466 else 1463 else
1467 { 1464 {
1468 //the user enabled the extension. 1465 //the user enabled the extension.
1469 setDetailsVisible( false ); 1466 setDetailsVisible( false );
1470 mActionDetails->setChecked( false ); 1467 mActionDetails->setChecked( false );
1471 1468
1472 if (!mMultipleViewsAtOnce) 1469 if (!mMultipleViewsAtOnce)
1473 { 1470 {
1474 mActionDetails->setEnabled(false); 1471 mActionDetails->setEnabled(false);
1475 } 1472 }
1476 1473
1477 mExtensionManager->setSelectionChanged(); 1474 mExtensionManager->setSelectionChanged();
1478 1475
1479 } 1476 }
1480 1477
1481#endif// DESKTOP_VERSION 1478#endif// DESKTOP_VERSION
1482 1479
1483} 1480}
1484 1481
1485 1482
1486void KABCore::extensionModified( const KABC::Addressee::List &list ) 1483void KABCore::extensionModified( const KABC::Addressee::List &list )
1487{ 1484{
1488 1485
1489 if ( list.count() != 0 ) { 1486 if ( list.count() != 0 ) {
1490 KABC::Addressee::List::ConstIterator it; 1487 KABC::Addressee::List::ConstIterator it;
1491 for ( it = list.begin(); it != list.end(); ++it ) 1488 for ( it = list.begin(); it != list.end(); ++it )
1492 mAddressBook->insertAddressee( *it ); 1489 mAddressBook->insertAddressee( *it );
1493 if ( list.count() > 1 ) 1490 if ( list.count() > 1 )
1494 setModified(); 1491 setModified();
1495 else 1492 else
1496 setModifiedWOrefresh(); 1493 setModifiedWOrefresh();
1497 } 1494 }
1498 if ( list.count() == 0 ) 1495 if ( list.count() == 0 )
1499 mViewManager->refreshView(); 1496 mViewManager->refreshView();
1500 else 1497 else
1501 mViewManager->refreshView( list[ 0 ].uid() ); 1498 mViewManager->refreshView( list[ 0 ].uid() );
1502 1499
1503 1500
1504 1501
1505} 1502}
1506 1503
1507QString KABCore::getNameByPhone( const QString &phone ) 1504QString KABCore::getNameByPhone( const QString &phone )
1508{ 1505{
1509#ifndef KAB_EMBEDDED 1506#ifndef KAB_EMBEDDED
1510 QRegExp r( "[/*/-/ ]" ); 1507 QRegExp r( "[/*/-/ ]" );
1511 QString localPhone( phone ); 1508 QString localPhone( phone );
1512 1509
1513 bool found = false; 1510 bool found = false;
1514 QString ownerName = ""; 1511 QString ownerName = "";
1515 KABC::AddressBook::Iterator iter; 1512 KABC::AddressBook::Iterator iter;
1516 KABC::PhoneNumber::List::Iterator phoneIter; 1513 KABC::PhoneNumber::List::Iterator phoneIter;
1517 KABC::PhoneNumber::List phoneList; 1514 KABC::PhoneNumber::List phoneList;
1518 for ( iter = mAddressBook->begin(); !found && ( iter != mAddressBook->end() ); ++iter ) { 1515 for ( iter = mAddressBook->begin(); !found && ( iter != mAddressBook->end() ); ++iter ) {
1519 phoneList = (*iter).phoneNumbers(); 1516 phoneList = (*iter).phoneNumbers();
1520 for ( phoneIter = phoneList.begin(); !found && ( phoneIter != phoneList.end() ); 1517 for ( phoneIter = phoneList.begin(); !found && ( phoneIter != phoneList.end() );
1521 ++phoneIter) { 1518 ++phoneIter) {
1522 // Get rid of separator chars so just the numbers are compared. 1519 // Get rid of separator chars so just the numbers are compared.
1523 if ( (*phoneIter).number().replace( r, "" ) == localPhone.replace( r, "" ) ) { 1520 if ( (*phoneIter).number().replace( r, "" ) == localPhone.replace( r, "" ) ) {
1524 ownerName = (*iter).formattedName(); 1521 ownerName = (*iter).formattedName();
1525 found = true; 1522 found = true;
1526 } 1523 }
1527 } 1524 }
1528 } 1525 }
1529 1526
1530 return ownerName; 1527 return ownerName;
1531#else //KAB_EMBEDDED 1528#else //KAB_EMBEDDED
1532 qDebug("KABCore::getNameByPhone finsih method"); 1529 qDebug("KABCore::getNameByPhone finsih method");
1533 return ""; 1530 return "";
1534#endif //KAB_EMBEDDED 1531#endif //KAB_EMBEDDED
1535 1532
1536} 1533}
1537 1534
1538void KABCore::openConfigDialog() 1535void KABCore::openConfigDialog()
1539{ 1536{
1540 KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"kabconfigdialog", true ); 1537 KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"kabconfigdialog", true );
1541 KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" ); 1538 KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" );
1542 ConfigureDialog->addModule(kabcfg ); 1539 ConfigureDialog->addModule(kabcfg );
1543 KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( ConfigureDialog->getNewVBoxPage(i18n( "Global")) , "KCMKdeLibConfig" ); 1540 KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( ConfigureDialog->getNewVBoxPage(i18n( "Global")) , "KCMKdeLibConfig" );
1544 ConfigureDialog->addModule(kdelibcfg ); 1541 ConfigureDialog->addModule(kdelibcfg );
1545 1542
1546 connect( ConfigureDialog, SIGNAL( applyClicked() ), 1543 connect( ConfigureDialog, SIGNAL( applyClicked() ),
1547 this, SLOT( configurationChanged() ) ); 1544 this, SLOT( configurationChanged() ) );
1548 connect( ConfigureDialog, SIGNAL( okClicked() ), 1545 connect( ConfigureDialog, SIGNAL( okClicked() ),
1549 this, SLOT( configurationChanged() ) ); 1546 this, SLOT( configurationChanged() ) );
1550 saveSettings(); 1547 saveSettings();
1551#ifndef DESKTOP_VERSION 1548#ifndef DESKTOP_VERSION
1552 ConfigureDialog->showMaximized(); 1549 ConfigureDialog->showMaximized();
1553#endif 1550#endif
1554 if ( ConfigureDialog->exec() ) 1551 if ( ConfigureDialog->exec() )
1555 KMessageBox::information( this, i18n("Some changes are only\neffective after a restart!\n") ); 1552 KMessageBox::information( this, i18n("Some changes are only\neffective after a restart!\n") );
1556 delete ConfigureDialog; 1553 delete ConfigureDialog;
1557} 1554}
1558 1555
1559void KABCore::openLDAPDialog() 1556void KABCore::openLDAPDialog()
1560{ 1557{
1561#ifndef KAB_EMBEDDED 1558#ifndef KAB_EMBEDDED
1562 if ( !mLdapSearchDialog ) { 1559 if ( !mLdapSearchDialog ) {
1563 mLdapSearchDialog = new LDAPSearchDialog( mAddressBook, this ); 1560 mLdapSearchDialog = new LDAPSearchDialog( mAddressBook, this );
1564 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), mViewManager, 1561 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), mViewManager,
1565 SLOT( refreshView() ) ); 1562 SLOT( refreshView() ) );
1566 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), this, 1563 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), this,
1567 SLOT( setModified() ) ); 1564 SLOT( setModified() ) );
1568 } else 1565 } else
1569 mLdapSearchDialog->restoreSettings(); 1566 mLdapSearchDialog->restoreSettings();
1570 1567
1571 if ( mLdapSearchDialog->isOK() ) 1568 if ( mLdapSearchDialog->isOK() )
1572 mLdapSearchDialog->exec(); 1569 mLdapSearchDialog->exec();
1573#else //KAB_EMBEDDED 1570#else //KAB_EMBEDDED
1574 qDebug("KABCore::openLDAPDialog() finsih method"); 1571 qDebug("KABCore::openLDAPDialog() finsih method");
1575#endif //KAB_EMBEDDED 1572#endif //KAB_EMBEDDED
1576} 1573}
1577 1574
1578void KABCore::print() 1575void KABCore::print()
1579{ 1576{
1580#ifndef KAB_EMBEDDED 1577#ifndef KAB_EMBEDDED
1581 KPrinter printer; 1578 KPrinter printer;
1582 if ( !printer.setup( this ) ) 1579 if ( !printer.setup( this ) )
1583 return; 1580 return;
1584 1581
1585 KABPrinting::PrintingWizard wizard( &printer, mAddressBook, 1582 KABPrinting::PrintingWizard wizard( &printer, mAddressBook,
1586 mViewManager->selectedUids(), this ); 1583 mViewManager->selectedUids(), this );
1587 1584
1588 wizard.exec(); 1585 wizard.exec();
1589#else //KAB_EMBEDDED 1586#else //KAB_EMBEDDED
1590 qDebug("KABCore::print() finsih method"); 1587 qDebug("KABCore::print() finsih method");
1591#endif //KAB_EMBEDDED 1588#endif //KAB_EMBEDDED
1592 1589
1593} 1590}
1594 1591
1595 1592
1596void KABCore::addGUIClient( KXMLGUIClient *client ) 1593void KABCore::addGUIClient( KXMLGUIClient *client )
1597{ 1594{
1598 if ( mGUIClient ) 1595 if ( mGUIClient )
1599 mGUIClient->insertChildClient( client ); 1596 mGUIClient->insertChildClient( client );
1600 else 1597 else
1601 KMessageBox::error( this, "no KXMLGUICLient"); 1598 KMessageBox::error( this, "no KXMLGUICLient");
1602} 1599}
1603 1600
1604 1601
1605void KABCore::configurationChanged() 1602void KABCore::configurationChanged()
1606{ 1603{
1607 mExtensionManager->reconfigure(); 1604 mExtensionManager->reconfigure();
1608} 1605}
1609 1606
1610void KABCore::addressBookChanged() 1607void KABCore::addressBookChanged()
1611{ 1608{
1612/*US 1609/*US
1613 QDictIterator<AddresseeEditorDialog> it( mEditorDict ); 1610 QDictIterator<AddresseeEditorDialog> it( mEditorDict );
1614 while ( it.current() ) { 1611 while ( it.current() ) {
1615 if ( it.current()->dirty() ) { 1612 if ( it.current()->dirty() ) {
1616 QString text = i18n( "Data has been changed externally. Unsaved " 1613 QString text = i18n( "Data has been changed externally. Unsaved "
1617 "changes will be lost." ); 1614 "changes will be lost." );
1618 KMessageBox::information( this, text ); 1615 KMessageBox::information( this, text );
1619 } 1616 }
1620 it.current()->setAddressee( mAddressBook->findByUid( it.currentKey() ) ); 1617 it.current()->setAddressee( mAddressBook->findByUid( it.currentKey() ) );
1621 ++it; 1618 ++it;
1622 } 1619 }
1623*/ 1620*/
1624 if (mEditorDialog) 1621 if (mEditorDialog)
1625 { 1622 {
1626 if (mEditorDialog->dirty()) 1623 if (mEditorDialog->dirty())
1627 { 1624 {
1628 QString text = i18n( "Data has been changed externally. Unsaved " 1625 QString text = i18n( "Data has been changed externally. Unsaved "
1629 "changes will be lost." ); 1626 "changes will be lost." );
1630 KMessageBox::information( this, text ); 1627 KMessageBox::information( this, text );
1631 } 1628 }
1632 QString currentuid = mEditorDialog->addressee().uid(); 1629 QString currentuid = mEditorDialog->addressee().uid();
1633 mEditorDialog->setAddressee( mAddressBook->findByUid( currentuid ) ); 1630 mEditorDialog->setAddressee( mAddressBook->findByUid( currentuid ) );
1634 } 1631 }
1635 mViewManager->refreshView(); 1632 mViewManager->refreshView();
1636// mDetails->refreshView();
1637 1633
1638 1634
1639} 1635}
1640 1636
1641AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent, 1637AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent,
1642 const char *name ) 1638 const char *name )
1643{ 1639{
1644 1640
1645 if ( mEditorDialog == 0 ) { 1641 if ( mEditorDialog == 0 ) {
1646 mEditorDialog = new AddresseeEditorDialog( this, parent, 1642 mEditorDialog = new AddresseeEditorDialog( this, parent,
1647 name ? name : "editorDialog" ); 1643 name ? name : "editorDialog" );
1648 1644
1649 1645
1650 connect( mEditorDialog, SIGNAL( contactModified( const KABC::Addressee& ) ), 1646 connect( mEditorDialog, SIGNAL( contactModified( const KABC::Addressee& ) ),
1651 SLOT( contactModified( const KABC::Addressee& ) ) ); 1647 SLOT( contactModified( const KABC::Addressee& ) ) );
1652 //connect( mEditorDialog, SIGNAL( editorDestroyed( const QString& ) ), 1648 //connect( mEditorDialog, SIGNAL( editorDestroyed( const QString& ) ),
1653 // SLOT( slotEditorDestroyed( const QString& ) ) ; 1649 // SLOT( slotEditorDestroyed( const QString& ) ) ;
1654 } 1650 }
1655 1651
1656 return mEditorDialog; 1652 return mEditorDialog;
1657} 1653}
1658 1654
1659void KABCore::slotEditorDestroyed( const QString &uid ) 1655void KABCore::slotEditorDestroyed( const QString &uid )
1660{ 1656{
1661 //mEditorDict.remove( uid ); 1657 //mEditorDict.remove( uid );
1662} 1658}
1663 1659
1664void KABCore::initGUI() 1660void KABCore::initGUI()
1665{ 1661{
1666#ifndef KAB_EMBEDDED 1662#ifndef KAB_EMBEDDED
1667 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1663 QHBoxLayout *topLayout = new QHBoxLayout( this );
1668 topLayout->setSpacing( KDialogBase::spacingHint() ); 1664 topLayout->setSpacing( KDialogBase::spacingHint() );
1669 1665
1670 mExtensionBarSplitter = new QSplitter( this ); 1666 mExtensionBarSplitter = new QSplitter( this );
1671 mExtensionBarSplitter->setOrientation( Qt::Vertical ); 1667 mExtensionBarSplitter->setOrientation( Qt::Vertical );
1672 1668
1673 mDetailsSplitter = new QSplitter( mExtensionBarSplitter ); 1669 mDetailsSplitter = new QSplitter( mExtensionBarSplitter );
1674 1670
1675 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1671 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1676 mIncSearchWidget = new IncSearchWidget( viewSpace ); 1672 mIncSearchWidget = new IncSearchWidget( viewSpace );
1677 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1673 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1678 SLOT( incrementalSearch( const QString& ) ) ); 1674 SLOT( incrementalSearch( const QString& ) ) );
1679 1675
1680 mViewManager = new ViewManager( this, viewSpace ); 1676 mViewManager = new ViewManager( this, viewSpace );
1681 viewSpace->setStretchFactor( mViewManager, 1 ); 1677 viewSpace->setStretchFactor( mViewManager, 1 );
1682 1678
1683 mDetails = new ViewContainer( mDetailsSplitter ); 1679 mDetails = new ViewContainer( mDetailsSplitter );
1684 1680
1685 mJumpButtonBar = new JumpButtonBar( this, this ); 1681 mJumpButtonBar = new JumpButtonBar( this, this );
1686 1682
1687 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); 1683 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter );
1688 1684
1689 topLayout->addWidget( mExtensionBarSplitter ); 1685 topLayout->addWidget( mExtensionBarSplitter );
1690 topLayout->setStretchFactor( mExtensionBarSplitter, 100 ); 1686 topLayout->setStretchFactor( mExtensionBarSplitter, 100 );
1691 topLayout->addWidget( mJumpButtonBar ); 1687 topLayout->addWidget( mJumpButtonBar );
1692 topLayout->setStretchFactor( mJumpButtonBar, 1 ); 1688 topLayout->setStretchFactor( mJumpButtonBar, 1 );
1693 1689
1694 mXXPortManager = new XXPortManager( this, this ); 1690 mXXPortManager = new XXPortManager( this, this );
1695 1691
1696#else //KAB_EMBEDDED 1692#else //KAB_EMBEDDED
1697 //US initialize viewMenu before settingup viewmanager. 1693 //US initialize viewMenu before settingup viewmanager.
1698 // Viewmanager needs this menu to plugin submenues. 1694 // Viewmanager needs this menu to plugin submenues.
1699 viewMenu = new QPopupMenu( this ); 1695 viewMenu = new QPopupMenu( this );
1700 settingsMenu = new QPopupMenu( this ); 1696 settingsMenu = new QPopupMenu( this );
1701 //filterMenu = new QPopupMenu( this ); 1697 //filterMenu = new QPopupMenu( this );
1702 ImportMenu = new QPopupMenu( this ); 1698 ImportMenu = new QPopupMenu( this );
1703 ExportMenu = new QPopupMenu( this ); 1699 ExportMenu = new QPopupMenu( this );
1704 syncMenu = new QPopupMenu( this ); 1700 syncMenu = new QPopupMenu( this );
1705 changeMenu= new QPopupMenu( this ); 1701 changeMenu= new QPopupMenu( this );
1706 beamMenu= new QPopupMenu( this ); 1702 beamMenu= new QPopupMenu( this );
1707 1703
1708//US since we have no splitter for the embedded system, setup 1704//US since we have no splitter for the embedded system, setup
1709// a layout with two frames. One left and one right. 1705// a layout with two frames. One left and one right.
1710 1706
1711 QBoxLayout *topLayout; 1707 QBoxLayout *topLayout;
1712 1708
1713 // = new QHBoxLayout( this ); 1709 // = new QHBoxLayout( this );
1714// QBoxLayout *topLayout = (QBoxLayout*)layout(); 1710// QBoxLayout *topLayout = (QBoxLayout*)layout();
1715 1711
1716// QWidget *mainBox = new QWidget( this ); 1712// QWidget *mainBox = new QWidget( this );
1717// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox); 1713// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox);
1718 1714
1719#ifdef DESKTOP_VERSION 1715#ifdef DESKTOP_VERSION
1720 topLayout = new QHBoxLayout( this ); 1716 topLayout = new QHBoxLayout( this );
1721 1717
1722 1718
1723 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1719 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1724 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1720 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1725 1721
1726 topLayout->addWidget(mMiniSplitter ); 1722 topLayout->addWidget(mMiniSplitter );
1727 1723
1728 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter ); 1724 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter );
1729 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1725 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1730 mViewManager = new ViewManager( this, mExtensionBarSplitter ); 1726 mViewManager = new ViewManager( this, mExtensionBarSplitter );
1731 mDetails = new ViewContainer( mMiniSplitter ); 1727 mDetails = new ViewContainer( mMiniSplitter );
1732 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); 1728 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter );
1733#else 1729#else
1734 if ( QApplication::desktop()->width() > 480 ) { 1730 if ( QApplication::desktop()->width() > 480 ) {
1735 topLayout = new QHBoxLayout( this ); 1731 topLayout = new QHBoxLayout( this );
1736 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1732 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1737 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1733 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1738 } else { 1734 } else {
1739 1735
1740 topLayout = new QHBoxLayout( this ); 1736 topLayout = new QHBoxLayout( this );
1741 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this); 1737 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this);
1742 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1738 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1743 } 1739 }
1744 1740
1745 topLayout->addWidget(mMiniSplitter ); 1741 topLayout->addWidget(mMiniSplitter );
1746 mViewManager = new ViewManager( this, mMiniSplitter ); 1742 mViewManager = new ViewManager( this, mMiniSplitter );
1747 mDetails = new ViewContainer( mMiniSplitter ); 1743 mDetails = new ViewContainer( mMiniSplitter );
1748 1744
1749 1745
1750 mExtensionManager = new ExtensionManager( this, mMiniSplitter ); 1746 mExtensionManager = new ExtensionManager( this, mMiniSplitter );
1751#endif 1747#endif
1752 //eh->hide(); 1748 //eh->hide();
1753 // topLayout->addWidget(mExtensionManager ); 1749 // topLayout->addWidget(mExtensionManager );
1754 1750
1755 1751
1756/*US 1752/*US
1757#ifndef KAB_NOSPLITTER 1753#ifndef KAB_NOSPLITTER
1758 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1754 QHBoxLayout *topLayout = new QHBoxLayout( this );
1759//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1755//US topLayout->setSpacing( KDialogBase::spacingHint() );
1760 topLayout->setSpacing( 10 ); 1756 topLayout->setSpacing( 10 );
1761 1757
1762 mDetailsSplitter = new QSplitter( this ); 1758 mDetailsSplitter = new QSplitter( this );
1763 1759
1764 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1760 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1765 1761
1766 mViewManager = new ViewManager( this, viewSpace ); 1762 mViewManager = new ViewManager( this, viewSpace );
1767 viewSpace->setStretchFactor( mViewManager, 1 ); 1763 viewSpace->setStretchFactor( mViewManager, 1 );
1768 1764
1769 mDetails = new ViewContainer( mDetailsSplitter ); 1765 mDetails = new ViewContainer( mDetailsSplitter );
1770 1766
1771 topLayout->addWidget( mDetailsSplitter ); 1767 topLayout->addWidget( mDetailsSplitter );
1772 topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1768 topLayout->setStretchFactor( mDetailsSplitter, 100 );
1773#else //KAB_NOSPLITTER 1769#else //KAB_NOSPLITTER
1774 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1770 QHBoxLayout *topLayout = new QHBoxLayout( this );
1775//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1771//US topLayout->setSpacing( KDialogBase::spacingHint() );
1776 topLayout->setSpacing( 10 ); 1772 topLayout->setSpacing( 10 );
1777 1773
1778// mDetailsSplitter = new QSplitter( this ); 1774// mDetailsSplitter = new QSplitter( this );
1779 1775
1780 QVBox *viewSpace = new QVBox( this ); 1776 QVBox *viewSpace = new QVBox( this );
1781 1777
1782 mViewManager = new ViewManager( this, viewSpace ); 1778 mViewManager = new ViewManager( this, viewSpace );
1783 viewSpace->setStretchFactor( mViewManager, 1 ); 1779 viewSpace->setStretchFactor( mViewManager, 1 );
1784 1780
1785 mDetails = new ViewContainer( this ); 1781 mDetails = new ViewContainer( this );
1786 1782
1787 topLayout->addWidget( viewSpace ); 1783 topLayout->addWidget( viewSpace );
1788// topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1784// topLayout->setStretchFactor( mDetailsSplitter, 100 );
1789 topLayout->addWidget( mDetails ); 1785 topLayout->addWidget( mDetails );
1790#endif //KAB_NOSPLITTER 1786#endif //KAB_NOSPLITTER
1791*/ 1787*/
1792 1788
1793 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); 1789 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu);
1794 syncManager->setBlockSave(false); 1790 syncManager->setBlockSave(false);
1795 1791
1796 connect(syncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 1792 connect(syncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
1797 connect(syncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 1793 connect(syncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
1798 QString sync_file = sentSyncFile(); 1794 QString sync_file = sentSyncFile();
1799 qDebug("KABCore::initGUI()::setting tmp sync file to:%s ",sync_file.latin1()); 1795 qDebug("KABCore::initGUI()::setting tmp sync file to:%s ",sync_file.latin1());
1800 syncManager->setDefaultFileName( sync_file ); 1796 syncManager->setDefaultFileName( sync_file );
1801 //connect(syncManager , SIGNAL( ), this, SLOT( ) ); 1797 //connect(syncManager , SIGNAL( ), this, SLOT( ) );
1802 1798
1803#endif //KAB_EMBEDDED 1799#endif //KAB_EMBEDDED
1804 initActions(); 1800 initActions();
1805 1801
1806#ifdef KAB_EMBEDDED 1802#ifdef KAB_EMBEDDED
1807 addActionsManually(); 1803 addActionsManually();
1808 //US make sure the export and import menues are initialized before creating the xxPortManager. 1804 //US make sure the export and import menues are initialized before creating the xxPortManager.
1809 mXXPortManager = new XXPortManager( this, this ); 1805 mXXPortManager = new XXPortManager( this, this );
1810 1806
1811 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() ); 1807 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() );
1812 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget); 1808 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget);
1813 // mActionQuit->plug ( mMainWindow->toolBar()); 1809 // mActionQuit->plug ( mMainWindow->toolBar());
1814 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() ); 1810 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() );
1815 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget); 1811 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget);
1816 // mIncSearchWidget->hide(); 1812 // mIncSearchWidget->hide();
1817 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1813 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1818 SLOT( incrementalSearch( const QString& ) ) ); 1814 SLOT( incrementalSearch( const QString& ) ) );
1819 connect( mIncSearchWidget, SIGNAL( scrollUP() ),mViewManager, SLOT( scrollUP() ) ); 1815 connect( mIncSearchWidget, SIGNAL( scrollUP() ),mViewManager, SLOT( scrollUP() ) );
1820 connect( mIncSearchWidget, SIGNAL( scrollDOWN() ),mViewManager, SLOT( scrollDOWN() ) ); 1816 connect( mIncSearchWidget, SIGNAL( scrollDOWN() ),mViewManager, SLOT( scrollDOWN() ) );
1821 1817
1822 mJumpButtonBar = new JumpButtonBar( this, this ); 1818 mJumpButtonBar = new JumpButtonBar( this, this );
1823 1819
1824 topLayout->addWidget( mJumpButtonBar ); 1820 topLayout->addWidget( mJumpButtonBar );
1825//US topLayout->setStretchFactor( mJumpButtonBar, 10 ); 1821//US topLayout->setStretchFactor( mJumpButtonBar, 10 );
1826 1822
1827// mMainWindow->getIconToolBar()->raise(); 1823// mMainWindow->getIconToolBar()->raise();
1828 1824
@@ -2100,385 +2096,384 @@ void KABCore::addActionsManually()
2100 mActionMail->plug( fileMenu ); 2096 mActionMail->plug( fileMenu );
2101 fileMenu->insertSeparator(); 2097 fileMenu->insertSeparator();
2102 2098
2103 mActionNewContact->plug( fileMenu ); 2099 mActionNewContact->plug( fileMenu );
2104 mActionNewContact->plug( tb ); 2100 mActionNewContact->plug( tb );
2105 2101
2106 mActionEditAddressee->plug( fileMenu ); 2102 mActionEditAddressee->plug( fileMenu );
2107 // if ((KGlobal::getDesktopSize() > KGlobal::Small ) || 2103 // if ((KGlobal::getDesktopSize() > KGlobal::Small ) ||
2108 // (!KABPrefs::instance()->mMultipleViewsAtOnce )) 2104 // (!KABPrefs::instance()->mMultipleViewsAtOnce ))
2109 mActionEditAddressee->plug( tb ); 2105 mActionEditAddressee->plug( tb );
2110 2106
2111 fileMenu->insertSeparator(); 2107 fileMenu->insertSeparator();
2112 mActionSave->plug( fileMenu ); 2108 mActionSave->plug( fileMenu );
2113 fileMenu->insertItem( "&Import", ImportMenu ); 2109 fileMenu->insertItem( "&Import", ImportMenu );
2114 fileMenu->insertItem( "&Export", ExportMenu ); 2110 fileMenu->insertItem( "&Export", ExportMenu );
2115 fileMenu->insertItem( i18n("&Change"), changeMenu ); 2111 fileMenu->insertItem( i18n("&Change"), changeMenu );
2116#ifndef DESKTOP_VERSION 2112#ifndef DESKTOP_VERSION
2117 if ( Ir::supported() ) fileMenu->insertItem( i18n("&Beam"), beamMenu ); 2113 if ( Ir::supported() ) fileMenu->insertItem( i18n("&Beam"), beamMenu );
2118#endif 2114#endif
2119 2115
2120 fileMenu->insertSeparator(); 2116 fileMenu->insertSeparator();
2121 mActionMailVCard->plug( fileMenu ); 2117 mActionMailVCard->plug( fileMenu );
2122#ifndef DESKTOP_VERSION 2118#ifndef DESKTOP_VERSION
2123 if ( Ir::supported() ) mActionBR->plug( beamMenu ); 2119 if ( Ir::supported() ) mActionBR->plug( beamMenu );
2124 if ( Ir::supported() ) mActionBeamVCard->plug( beamMenu ); 2120 if ( Ir::supported() ) mActionBeamVCard->plug( beamMenu );
2125 if ( Ir::supported() ) mActionBeam->plug( beamMenu ); 2121 if ( Ir::supported() ) mActionBeam->plug( beamMenu );
2126#endif 2122#endif
2127 fileMenu->insertSeparator(); 2123 fileMenu->insertSeparator();
2128 mActionQuit->plug( fileMenu ); 2124 mActionQuit->plug( fileMenu );
2129#ifdef _WIN32_ 2125#ifdef _WIN32_
2130 mActionImportOL->plug( ImportMenu ); 2126 mActionImportOL->plug( ImportMenu );
2131#endif 2127#endif
2132 // edit menu 2128 // edit menu
2133 mActionUndo->plug( editMenu ); 2129 mActionUndo->plug( editMenu );
2134 mActionRedo->plug( editMenu ); 2130 mActionRedo->plug( editMenu );
2135 editMenu->insertSeparator(); 2131 editMenu->insertSeparator();
2136 mActionCut->plug( editMenu ); 2132 mActionCut->plug( editMenu );
2137 mActionCopy->plug( editMenu ); 2133 mActionCopy->plug( editMenu );
2138 mActionPaste->plug( editMenu ); 2134 mActionPaste->plug( editMenu );
2139 mActionDelete->plug( editMenu ); 2135 mActionDelete->plug( editMenu );
2140 editMenu->insertSeparator(); 2136 editMenu->insertSeparator();
2141 mActionSelectAll->plug( editMenu ); 2137 mActionSelectAll->plug( editMenu );
2142 2138
2143 mActionRemoveVoice->plug( changeMenu ); 2139 mActionRemoveVoice->plug( changeMenu );
2144 // settings menu 2140 // settings menu
2145//US special menuentry to configure the addressbook resources. On KDE 2141//US special menuentry to configure the addressbook resources. On KDE
2146// you do that through the control center !!! 2142// you do that through the control center !!!
2147 mActionConfigResources->plug( settingsMenu ); 2143 mActionConfigResources->plug( settingsMenu );
2148 settingsMenu->insertSeparator(); 2144 settingsMenu->insertSeparator();
2149 2145
2150 mActionConfigKAddressbook->plug( settingsMenu ); 2146 mActionConfigKAddressbook->plug( settingsMenu );
2151 2147
2152 if ( mIsPart ) { 2148 if ( mIsPart ) {
2153 //US not implemented yet 2149 //US not implemented yet
2154 //mActionConfigShortcuts->plug( settingsMenu ); 2150 //mActionConfigShortcuts->plug( settingsMenu );
2155 //mActionConfigureToolbars->plug( settingsMenu ); 2151 //mActionConfigureToolbars->plug( settingsMenu );
2156 2152
2157 } else { 2153 } else {
2158 //US not implemented yet 2154 //US not implemented yet
2159 //mActionKeyBindings->plug( settingsMenu ); 2155 //mActionKeyBindings->plug( settingsMenu );
2160 } 2156 }
2161 2157
2162 settingsMenu->insertSeparator(); 2158 settingsMenu->insertSeparator();
2163 2159
2164 mActionJumpBar->plug( settingsMenu ); 2160 mActionJumpBar->plug( settingsMenu );
2165 mActionDetails->plug( settingsMenu ); 2161 mActionDetails->plug( settingsMenu );
2166 //if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop ) 2162 //if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop )
2167 mActionDetails->plug( tb ); 2163 mActionDetails->plug( tb );
2168 settingsMenu->insertSeparator(); 2164 settingsMenu->insertSeparator();
2169#ifndef DESKTOP_VERSION 2165#ifndef DESKTOP_VERSION
2170 if ( Ir::supported() ) mActionBR->plug(settingsMenu ); 2166 if ( Ir::supported() ) mActionBR->plug(settingsMenu );
2171#endif 2167#endif
2172 settingsMenu->insertSeparator(); 2168 settingsMenu->insertSeparator();
2173 2169
2174 mActionWhoAmI->plug( settingsMenu ); 2170 mActionWhoAmI->plug( settingsMenu );
2175 mActionEditCategories->plug( settingsMenu ); 2171 mActionEditCategories->plug( settingsMenu );
2176 mActionEditCategories->plug( changeMenu ); 2172 mActionEditCategories->plug( changeMenu );
2177 mActionCategories->plug( changeMenu ); 2173 mActionCategories->plug( changeMenu );
2178 mActionManageCategories->plug( changeMenu ); 2174 mActionManageCategories->plug( changeMenu );
2179 2175
2180 mActionCategories->plug( settingsMenu ); 2176 mActionCategories->plug( settingsMenu );
2181 mActionManageCategories->plug( settingsMenu ); 2177 mActionManageCategories->plug( settingsMenu );
2182 2178
2183 2179
2184 mActionWN->plug( helpMenu ); 2180 mActionWN->plug( helpMenu );
2185 mActionSyncHowto->plug( helpMenu ); 2181 mActionSyncHowto->plug( helpMenu );
2186 mActionKdeSyncHowto->plug( helpMenu ); 2182 mActionKdeSyncHowto->plug( helpMenu );
2187 mActionMultiSyncHowto->plug( helpMenu ); 2183 mActionMultiSyncHowto->plug( helpMenu );
2188 mActionFaq->plug( helpMenu ); 2184 mActionFaq->plug( helpMenu );
2189 mActionLicence->plug( helpMenu ); 2185 mActionLicence->plug( helpMenu );
2190 mActionAboutKAddressbook->plug( helpMenu ); 2186 mActionAboutKAddressbook->plug( helpMenu );
2191 2187
2192 if (KGlobal::getDesktopSize() > KGlobal::Small ) { 2188 if (KGlobal::getDesktopSize() > KGlobal::Small ) {
2193 2189
2194 mActionSave->plug( tb ); 2190 mActionSave->plug( tb );
2195 mViewManager->getFilterAction()->plug ( tb); 2191 mViewManager->getFilterAction()->plug ( tb);
2196 //LR hide filteraction on started in 480x640 2192 //LR hide filteraction on started in 480x640
2197 if (QApplication::desktop()->width() == 480 ) { 2193 if (QApplication::desktop()->width() == 480 ) {
2198 mViewManager->getFilterAction()->setComboWidth( 0 ); 2194 mViewManager->getFilterAction()->setComboWidth( 0 );
2199 } 2195 }
2200 mActionUndo->plug( tb ); 2196 mActionUndo->plug( tb );
2201 mActionDelete->plug( tb ); 2197 mActionDelete->plug( tb );
2202 mActionRedo->plug( tb ); 2198 mActionRedo->plug( tb );
2203 } else { 2199 } else {
2204 mActionSave->plug( tb ); 2200 mActionSave->plug( tb );
2205 tb->enableMoving(false); 2201 tb->enableMoving(false);
2206 } 2202 }
2207 //mActionQuit->plug ( tb ); 2203 //mActionQuit->plug ( tb );
2208 // tb->insertWidget(-1, 0, mIncSearchWidget, 6); 2204 // tb->insertWidget(-1, 0, mIncSearchWidget, 6);
2209 2205
2210 //US link the searchwidget first to this. 2206 //US link the searchwidget first to this.
2211 // The real linkage to the toolbar happens later. 2207 // The real linkage to the toolbar happens later.
2212//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE); 2208//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE);
2213//US tb->insertItem( mIncSearchWidget ); 2209//US tb->insertItem( mIncSearchWidget );
2214/*US 2210/*US
2215 mIncSearchWidget = new IncSearchWidget( tb ); 2211 mIncSearchWidget = new IncSearchWidget( tb );
2216 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 2212 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
2217 SLOT( incrementalSearch( const QString& ) ) ); 2213 SLOT( incrementalSearch( const QString& ) ) );
2218 2214
2219 mJumpButtonBar = new JumpButtonBar( this, this ); 2215 mJumpButtonBar = new JumpButtonBar( this, this );
2220 2216
2221//US topLayout->addWidget( mJumpButtonBar ); 2217//US topLayout->addWidget( mJumpButtonBar );
2222 this->layout()->add( mJumpButtonBar ); 2218 this->layout()->add( mJumpButtonBar );
2223*/ 2219*/
2224 2220
2225#endif //KAB_EMBEDDED 2221#endif //KAB_EMBEDDED
2226 2222
2227 mActionExport2phone->plug( ExportMenu ); 2223 mActionExport2phone->plug( ExportMenu );
2228 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) ); 2224 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) );
2229 syncManager->fillSyncMenu(); 2225 syncManager->fillSyncMenu();
2230 2226
2231} 2227}
2232void KABCore::showLicence() 2228void KABCore::showLicence()
2233{ 2229{
2234 KApplication::showLicence(); 2230 KApplication::showLicence();
2235} 2231}
2236 2232
2237void KABCore::manageCategories( ) 2233void KABCore::manageCategories( )
2238{ 2234{
2239 KABCatPrefs* cp = new KABCatPrefs(); 2235 KABCatPrefs* cp = new KABCatPrefs();
2240 cp->show(); 2236 cp->show();
2241 int w =cp->sizeHint().width() ; 2237 int w =cp->sizeHint().width() ;
2242 int h = cp->sizeHint().height() ; 2238 int h = cp->sizeHint().height() ;
2243 int dw = QApplication::desktop()->width(); 2239 int dw = QApplication::desktop()->width();
2244 int dh = QApplication::desktop()->height(); 2240 int dh = QApplication::desktop()->height();
2245 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2241 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2246 if ( !cp->exec() ) { 2242 if ( !cp->exec() ) {
2247 delete cp; 2243 delete cp;
2248 return; 2244 return;
2249 } 2245 }
2250 int count = 0; 2246 int count = 0;
2251 message( i18n("Please wait, processing categories...")); 2247 message( i18n("Please wait, processing categories..."));
2252 if ( cp->addCat() ) { 2248 if ( cp->addCat() ) {
2253 KABC::AddressBook::Iterator it; 2249 KABC::AddressBook::Iterator it;
2254 QStringList catList = KABPrefs::instance()->mCustomCategories; 2250 QStringList catList = KABPrefs::instance()->mCustomCategories;
2255 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2251 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2256 QStringList catIncList = (*it).categories(); 2252 QStringList catIncList = (*it).categories();
2257 int i; 2253 int i;
2258 for( i = 0; i< catIncList.count(); ++i ) { 2254 for( i = 0; i< catIncList.count(); ++i ) {
2259 if ( !catList.contains (catIncList[i])) { 2255 if ( !catList.contains (catIncList[i])) {
2260 catList.append( catIncList[i] ); 2256 catList.append( catIncList[i] );
2261 //qDebug("add cat %s ", catIncList[i].latin1()); 2257 //qDebug("add cat %s ", catIncList[i].latin1());
2262 ++count; 2258 ++count;
2263 } 2259 }
2264 } 2260 }
2265 } 2261 }
2266 catList.sort(); 2262 catList.sort();
2267 KABPrefs::instance()->mCustomCategories = catList; 2263 KABPrefs::instance()->mCustomCategories = catList;
2268 KABPrefs::instance()->writeConfig(); 2264 KABPrefs::instance()->writeConfig();
2269 message(QString::number( count )+ i18n(" categories added to list! ")); 2265 message(QString::number( count )+ i18n(" categories added to list! "));
2270 } else { 2266 } else {
2271 QStringList catList = KABPrefs::instance()->mCustomCategories; 2267 QStringList catList = KABPrefs::instance()->mCustomCategories;
2272 QStringList catIncList; 2268 QStringList catIncList;
2273 QStringList newCatList; 2269 QStringList newCatList;
2274 KABC::AddressBook::Iterator it; 2270 KABC::AddressBook::Iterator it;
2275 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2271 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2276 QStringList catIncList = (*it).categories(); 2272 QStringList catIncList = (*it).categories();
2277 int i; 2273 int i;
2278 if ( catIncList.count() ) { 2274 if ( catIncList.count() ) {
2279 newCatList.clear(); 2275 newCatList.clear();
2280 for( i = 0; i< catIncList.count(); ++i ) { 2276 for( i = 0; i< catIncList.count(); ++i ) {
2281 if ( catList.contains (catIncList[i])) { 2277 if ( catList.contains (catIncList[i])) {
2282 newCatList.append( catIncList[i] ); 2278 newCatList.append( catIncList[i] );
2283 } 2279 }
2284 } 2280 }
2285 newCatList.sort(); 2281 newCatList.sort();
2286 (*it).setCategories( newCatList ); 2282 (*it).setCategories( newCatList );
2287 mAddressBook->insertAddressee( (*it) ); 2283 mAddressBook->insertAddressee( (*it) );
2288 } 2284 }
2289 } 2285 }
2290 setModified( true ); 2286 setModified( true );
2291 mViewManager->refreshView(); 2287 mViewManager->refreshView();
2292 mDetails->refreshView();
2293 message( i18n("Removing categories done!")); 2288 message( i18n("Removing categories done!"));
2294 } 2289 }
2295 delete cp; 2290 delete cp;
2296} 2291}
2297void KABCore::removeVoice() 2292void KABCore::removeVoice()
2298{ 2293{
2299 if ( KMessageBox::questionYesNo( this, i18n("After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as \"other\".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?") ) == KMessageBox::No ) 2294 if ( KMessageBox::questionYesNo( this, i18n("After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as \"other\".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?") ) == KMessageBox::No )
2300 return; 2295 return;
2301 KABC::Addressee::List list; 2296 KABC::Addressee::List list;
2302 XXPortSelectDialog dlg( this, false, this ); 2297 XXPortSelectDialog dlg( this, false, this );
2303 if ( dlg.exec() ) 2298 if ( dlg.exec() )
2304 list = dlg.contacts(); 2299 list = dlg.contacts();
2305 else 2300 else
2306 return; 2301 return;
2307 KABC::Addressee::List::Iterator it; 2302 KABC::Addressee::List::Iterator it;
2308 for ( it = list.begin(); it != list.end(); ++it ) { 2303 for ( it = list.begin(); it != list.end(); ++it ) {
2309 if ( (*it).removeVoice() ) 2304 if ( (*it).removeVoice() )
2310 contactModified((*it) ); 2305 contactModified((*it) );
2311 } 2306 }
2312} 2307}
2313 2308
2314 2309
2315 2310
2316void KABCore::clipboardDataChanged() 2311void KABCore::clipboardDataChanged()
2317{ 2312{
2318 2313
2319 if ( mReadWrite ) 2314 if ( mReadWrite )
2320 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); 2315 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() );
2321 2316
2322} 2317}
2323 2318
2324void KABCore::updateActionMenu() 2319void KABCore::updateActionMenu()
2325{ 2320{
2326 UndoStack *undo = UndoStack::instance(); 2321 UndoStack *undo = UndoStack::instance();
2327 RedoStack *redo = RedoStack::instance(); 2322 RedoStack *redo = RedoStack::instance();
2328 2323
2329 if ( undo->isEmpty() ) 2324 if ( undo->isEmpty() )
2330 mActionUndo->setText( i18n( "Undo" ) ); 2325 mActionUndo->setText( i18n( "Undo" ) );
2331 else 2326 else
2332 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) ); 2327 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) );
2333 2328
2334 mActionUndo->setEnabled( !undo->isEmpty() ); 2329 mActionUndo->setEnabled( !undo->isEmpty() );
2335 2330
2336 if ( !redo->top() ) 2331 if ( !redo->top() )
2337 mActionRedo->setText( i18n( "Redo" ) ); 2332 mActionRedo->setText( i18n( "Redo" ) );
2338 else 2333 else
2339 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) ); 2334 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) );
2340 2335
2341 mActionRedo->setEnabled( !redo->isEmpty() ); 2336 mActionRedo->setEnabled( !redo->isEmpty() );
2342} 2337}
2343 2338
2344void KABCore::configureKeyBindings() 2339void KABCore::configureKeyBindings()
2345{ 2340{
2346#ifndef KAB_EMBEDDED 2341#ifndef KAB_EMBEDDED
2347 KKeyDialog::configure( actionCollection(), true ); 2342 KKeyDialog::configure( actionCollection(), true );
2348#else //KAB_EMBEDDED 2343#else //KAB_EMBEDDED
2349 qDebug("KABCore::configureKeyBindings() not implemented"); 2344 qDebug("KABCore::configureKeyBindings() not implemented");
2350#endif //KAB_EMBEDDED 2345#endif //KAB_EMBEDDED
2351} 2346}
2352 2347
2353#ifdef KAB_EMBEDDED 2348#ifdef KAB_EMBEDDED
2354void KABCore::configureResources() 2349void KABCore::configureResources()
2355{ 2350{
2356 KRES::KCMKResources dlg( this, "" , 0 ); 2351 KRES::KCMKResources dlg( this, "" , 0 );
2357 2352
2358 if ( !dlg.exec() ) 2353 if ( !dlg.exec() )
2359 return; 2354 return;
2360 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); 2355 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") );
2361} 2356}
2362#endif //KAB_EMBEDDED 2357#endif //KAB_EMBEDDED
2363 2358
2364 2359
2365/* this method will be called through the QCop interface from Ko/Pi to select addresses 2360/* this method will be called through the QCop interface from Ko/Pi to select addresses
2366 * for the attendees list of an event. 2361 * for the attendees list of an event.
2367 */ 2362 */
2368void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) 2363void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid)
2369{ 2364{
2370 QStringList nameList; 2365 QStringList nameList;
2371 QStringList emailList; 2366 QStringList emailList;
2372 QStringList uidList; 2367 QStringList uidList;
2373 2368
2374 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); 2369 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this);
2375 uint i=0; 2370 uint i=0;
2376 for (i=0; i < list.count(); i++) 2371 for (i=0; i < list.count(); i++)
2377 { 2372 {
2378 nameList.append(list[i].realName()); 2373 nameList.append(list[i].realName());
2379 emailList.append(list[i].preferredEmail()); 2374 emailList.append(list[i].preferredEmail());
2380 uidList.append(list[i].uid()); 2375 uidList.append(list[i].uid());
2381 } 2376 }
2382 2377
2383 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList); 2378 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList);
2384 2379
2385} 2380}
2386 2381
2387/* this method will be called through the QCop interface from Ko/Pi to select birthdays 2382/* this method will be called through the QCop interface from Ko/Pi to select birthdays
2388 * to put them into the calendar. 2383 * to put them into the calendar.
2389 */ 2384 */
2390void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid) 2385void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid)
2391{ 2386{
2392 // qDebug("KABCore::requestForBirthdayList"); 2387 // qDebug("KABCore::requestForBirthdayList");
2393 QStringList birthdayList; 2388 QStringList birthdayList;
2394 QStringList anniversaryList; 2389 QStringList anniversaryList;
2395 QStringList realNameList; 2390 QStringList realNameList;
2396 QStringList preferredEmailList; 2391 QStringList preferredEmailList;
2397 QStringList assembledNameList; 2392 QStringList assembledNameList;
2398 QStringList uidList; 2393 QStringList uidList;
2399 2394
2400 KABC::AddressBook::Iterator it; 2395 KABC::AddressBook::Iterator it;
2401 2396
2402 int count = 0; 2397 int count = 0;
2403 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2398 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2404 ++count; 2399 ++count;
2405 } 2400 }
2406 QProgressBar bar(count,0 ); 2401 QProgressBar bar(count,0 );
2407 int w = 300; 2402 int w = 300;
2408 if ( QApplication::desktop()->width() < 320 ) 2403 if ( QApplication::desktop()->width() < 320 )
2409 w = 220; 2404 w = 220;
2410 int h = bar.sizeHint().height() ; 2405 int h = bar.sizeHint().height() ;
2411 int dw = QApplication::desktop()->width(); 2406 int dw = QApplication::desktop()->width();
2412 int dh = QApplication::desktop()->height(); 2407 int dh = QApplication::desktop()->height();
2413 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2408 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2414 bar.show(); 2409 bar.show();
2415 bar.setCaption (i18n("Collecting birthdays - close to abort!") ); 2410 bar.setCaption (i18n("Collecting birthdays - close to abort!") );
2416 qApp->processEvents(); 2411 qApp->processEvents();
2417 2412
2418 QDate bday; 2413 QDate bday;
2419 QString anni; 2414 QString anni;
2420 QString formattedbday; 2415 QString formattedbday;
2421 2416
2422 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) 2417 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it )
2423 { 2418 {
2424 if ( ! bar.isVisible() ) 2419 if ( ! bar.isVisible() )
2425 return; 2420 return;
2426 bar.setProgress( count++ ); 2421 bar.setProgress( count++ );
2427 qApp->processEvents(); 2422 qApp->processEvents();
2428 bday = (*it).birthday().date(); 2423 bday = (*it).birthday().date();
2429 anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" ); 2424 anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" );
2430 2425
2431 if ( bday.isValid() || !anni.isEmpty()) 2426 if ( bday.isValid() || !anni.isEmpty())
2432 { 2427 {
2433 if (bday.isValid()) 2428 if (bday.isValid())
2434 formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate); 2429 formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate);
2435 else 2430 else
2436 formattedbday = "NOTVALID"; 2431 formattedbday = "NOTVALID";
2437 if (anni.isEmpty()) 2432 if (anni.isEmpty())
2438 anni = "INVALID"; 2433 anni = "INVALID";
2439 2434
2440 birthdayList.append(formattedbday); 2435 birthdayList.append(formattedbday);
2441 anniversaryList.append(anni); //should be ISODate 2436 anniversaryList.append(anni); //should be ISODate
2442 realNameList.append((*it).realName()); 2437 realNameList.append((*it).realName());
2443 preferredEmailList.append((*it).preferredEmail()); 2438 preferredEmailList.append((*it).preferredEmail());
2444 assembledNameList.append((*it).assembledName()); 2439 assembledNameList.append((*it).assembledName());
2445 uidList.append((*it).uid()); 2440 uidList.append((*it).uid());
2446 2441
2447 //qDebug("found birthday in KA/Pi: %s,%s,%s,%s: %s, %s", (*it).realName().latin1(), (*it).preferredEmail().latin1(), (*it).assembledName().latin1(), (*it).uid().latin1(), formattedbday.latin1(), anni.latin1() ); 2442 //qDebug("found birthday in KA/Pi: %s,%s,%s,%s: %s, %s", (*it).realName().latin1(), (*it).preferredEmail().latin1(), (*it).assembledName().latin1(), (*it).uid().latin1(), formattedbday.latin1(), anni.latin1() );
2448 } 2443 }
2449 } 2444 }
2450 2445
2451 bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList); 2446 bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList);
2452 2447
2453} 2448}
2454 2449
2455/* this method will be called through the QCop interface from other apps to show details of a contact. 2450/* this method will be called through the QCop interface from other apps to show details of a contact.
2456 */ 2451 */
2457void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid) 2452void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid)
2458{ 2453{
2459 //qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1()); 2454 //qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1());
2460 2455
2461 QString foundUid = QString::null; 2456 QString foundUid = QString::null;
2462 if ( ! uid.isEmpty() ) { 2457 if ( ! uid.isEmpty() ) {
2463 Addressee adrr = mAddressBook->findByUid( uid ); 2458 Addressee adrr = mAddressBook->findByUid( uid );
2464 if ( !adrr.isEmpty() ) { 2459 if ( !adrr.isEmpty() ) {
2465 foundUid = uid; 2460 foundUid = uid;
2466 } 2461 }
2467 if ( email == "sendbacklist" ) { 2462 if ( email == "sendbacklist" ) {
2468 //qDebug("ssssssssssssssssssssssend "); 2463 //qDebug("ssssssssssssssssssssssend ");
2469 QStringList nameList; 2464 QStringList nameList;
2470 QStringList emailList; 2465 QStringList emailList;
2471 QStringList uidList; 2466 QStringList uidList;
2472 nameList.append(adrr.realName()); 2467 nameList.append(adrr.realName());
2473 emailList = adrr.emails(); 2468 emailList = adrr.emails();
2474 uidList.append( adrr.preferredEmail()); 2469 uidList.append( adrr.preferredEmail());
2475 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList); 2470 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList);
2476 return; 2471 return;
2477 } 2472 }
2478 2473
2479 } 2474 }
2480 2475
2481 if ( email == "sendbacklist" ) 2476 if ( email == "sendbacklist" )
2482 return; 2477 return;
2483 if (foundUid.isEmpty()) 2478 if (foundUid.isEmpty())
2484 { 2479 {
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index c7c12ff..85ffbdb 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -1,516 +1,515 @@
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#ifndef KABCORE_H 24#ifndef KABCORE_H
25#define KABCORE_H 25#define KABCORE_H
26 26
27#include <kabc/field.h> 27#include <kabc/field.h>
28 28
29#ifndef KAB_EMBEDDED 29#ifndef KAB_EMBEDDED
30#endif //KAB_EMBEDDED 30#endif //KAB_EMBEDDED
31#include <qdict.h> 31#include <qdict.h>
32#include <qtimer.h> 32#include <qtimer.h>
33 33
34#include <qwidget.h> 34#include <qwidget.h>
35#include <qpopupmenu.h> 35#include <qpopupmenu.h>
36#include <ksyncmanager.h> 36#include <ksyncmanager.h>
37#ifndef DESKTOP_VERSION 37#ifndef DESKTOP_VERSION
38#include <qcopchannel_qws.h> 38#include <qcopchannel_qws.h>
39#endif 39#endif
40 40
41namespace KABC { 41namespace KABC {
42class AddressBook; 42class AddressBook;
43} 43}
44 44
45#ifndef KAB_EMBEDDED 45#ifndef KAB_EMBEDDED
46class KAboutData; 46class KAboutData;
47class KConfig; 47class KConfig;
48 48
49class KAddressBookService; 49class KAddressBookService;
50class LDAPSearchDialog; 50class LDAPSearchDialog;
51#else //KAB_EMBEDDED 51#else //KAB_EMBEDDED
52class KAddressBookMain; 52class KAddressBookMain;
53//US class QAction; 53//US class QAction;
54#endif //KAB_EMBEDDED 54#endif //KAB_EMBEDDED
55class KCMultiDialog; 55class KCMultiDialog;
56class KXMLGUIClient; 56class KXMLGUIClient;
57class ExtensionManager; 57class ExtensionManager;
58class XXPortManager; 58class XXPortManager;
59class JumpButtonBar; 59class JumpButtonBar;
60class IncSearchWidget; 60class IncSearchWidget;
61class KDGanttMinimizeSplitter; 61class KDGanttMinimizeSplitter;
62class KAction; 62class KAction;
63class KActionCollection; 63class KActionCollection;
64class KToggleAction; 64class KToggleAction;
65class KSyncProfile; 65class KSyncProfile;
66 66
67class QAction; 67class QAction;
68class QMenuBar; 68class QMenuBar;
69class QSplitter; 69class QSplitter;
70class ViewContainer; 70class ViewContainer;
71class ViewManager; 71class ViewManager;
72class AddresseeEditorDialog; 72class AddresseeEditorDialog;
73class Ir; 73class Ir;
74 74
75class KABCore : public QWidget, public KSyncInterface 75class KABCore : public QWidget, public KSyncInterface
76{ 76{
77 Q_OBJECT 77 Q_OBJECT
78 78
79 public: 79 public:
80 KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name = 0 ); 80 KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name = 0 );
81 81
82 82
83 ~KABCore(); 83 ~KABCore();
84 84
85 85
86#ifdef KAB_EMBEDDED 86#ifdef KAB_EMBEDDED
87 //US added functionality 87 //US added functionality
88 QPopupMenu* getViewMenu() {return viewMenu;} 88 QPopupMenu* getViewMenu() {return viewMenu;}
89 QPopupMenu* getFilterMenu() {return filterMenu;} 89 QPopupMenu* getFilterMenu() {return filterMenu;}
90 QPopupMenu* getSettingsMenu() {return settingsMenu;} 90 QPopupMenu* getSettingsMenu() {return settingsMenu;}
91 void addActionsManually(); 91 void addActionsManually();
92#endif //KAB_EMBEDDED 92#endif //KAB_EMBEDDED
93 /** 93 /**
94 Restores the global settings. 94 Restores the global settings.
95 */ 95 */
96 void restoreSettings(); 96 void restoreSettings();
97 97
98 /** 98
99 Saves the global settings.
100 */
101 void saveSettings();
102 99
103 /** 100 /**
104 Returns a pointer to the StdAddressBook of the application. 101 Returns a pointer to the StdAddressBook of the application.
105 */ 102 */
106 KABC::AddressBook *addressBook() const; 103 KABC::AddressBook *addressBook() const;
107 104
108 /** 105 /**
109 Returns a pointer to the KConfig object of the application. 106 Returns a pointer to the KConfig object of the application.
110 */ 107 */
111 static KConfig *config(); 108 static KConfig *config();
112 109
113 /** 110 /**
114 Returns a pointer to the global KActionCollection object. So 111 Returns a pointer to the global KActionCollection object. So
115 other classes can register their actions easily. 112 other classes can register their actions easily.
116 */ 113 */
117 KActionCollection *actionCollection() const; 114 KActionCollection *actionCollection() const;
118 115
119 /** 116 /**
120 Returns the current search field of the Incremental Search Widget. 117 Returns the current search field of the Incremental Search Widget.
121 */ 118 */
122 KABC::Field *currentSearchField() const; 119 KABC::Field *currentSearchField() const;
123 120
124 /** 121 /**
125 Returns the uid list of the currently selected contacts. 122 Returns the uid list of the currently selected contacts.
126 */ 123 */
127 QStringList selectedUIDs() const; 124 QStringList selectedUIDs() const;
128 125
129 /** 126 /**
130 Displays the ResourceSelectDialog and returns the selected 127 Displays the ResourceSelectDialog and returns the selected
131 resource or a null pointer if no resource was selected by 128 resource or a null pointer if no resource was selected by
132 the user. 129 the user.
133 */ 130 */
134 KABC::Resource *requestResource( QWidget *parent ); 131 KABC::Resource *requestResource( QWidget *parent );
135 132
136#ifndef KAB_EMBEDDED 133#ifndef KAB_EMBEDDED
137 static KAboutData *createAboutData(); 134 static KAboutData *createAboutData();
138#endif //KAB_EMBEDDED 135#endif //KAB_EMBEDDED
139 136
140#ifdef KAB_EMBEDDED 137#ifdef KAB_EMBEDDED
141 inline QPopupMenu* getImportMenu() { return ImportMenu;} 138 inline QPopupMenu* getImportMenu() { return ImportMenu;}
142 inline QPopupMenu* getExportMenu() { return ExportMenu;} 139 inline QPopupMenu* getExportMenu() { return ExportMenu;}
143#endif //KAB_EMBEDDED 140#endif //KAB_EMBEDDED
144 141
145 public slots: 142 public slots:
146#ifdef KAB_EMBEDDED 143#ifdef KAB_EMBEDDED
147 void createAboutData(); 144 void createAboutData();
148#endif //KAB_EMBEDDED 145#endif //KAB_EMBEDDED
149 void setDetailsToggle(); 146 void setDetailsToggle();
150 147
151 void showLicence(); 148 void showLicence();
152 void faq(); 149 void faq();
153 void whatsnew() ; 150 void whatsnew() ;
154 void synchowto() ; 151 void synchowto() ;
155 void multisynchowto() ; 152 void multisynchowto() ;
156 void kdesynchowto() ; 153 void kdesynchowto() ;
157 void writeToPhone(); 154 void writeToPhone();
158 155
159 /** 156 /**
160 Is called whenever a contact is selected in the view. 157 Is called whenever a contact is selected in the view.
161 */ 158 */
162 void setContactSelected( const QString &uid ); 159 void setContactSelected( const QString &uid );
163 160
164 /** 161 /**
165 Opens the preferred mail composer with all selected contacts as 162 Opens the preferred mail composer with all selected contacts as
166 arguments. 163 arguments.
167 */ 164 */
168 void sendMail(); 165 void sendMail();
169 166
170 /** 167 /**
171 Opens the preferred mail composer with the given contacts as 168 Opens the preferred mail composer with the given contacts as
172 arguments. 169 arguments.
173 */ 170 */
174 void sendMail( const QString& email ); 171 void sendMail( const QString& email );
175 172
176 173
177 void mailVCard(); 174 void mailVCard();
178 void mailVCard(const QStringList& uids); 175 void mailVCard(const QStringList& uids);
179 176
180 /** 177 /**
181 Beams the "WhoAmI contact. 178 Beams the "WhoAmI contact.
182 */ 179 */
183 void beamMySelf(); 180 void beamMySelf();
184 181
185 void beamVCard(); 182 void beamVCard();
186 void export2phone(); 183 void export2phone();
187 void beamVCard(const QStringList& uids); 184 void beamVCard(const QStringList& uids);
188 void beamDone( Ir *ir ); 185 void beamDone( Ir *ir );
189 186
190 187
191 /** 188 /**
192 Starts the preferred web browser with the given URL as argument. 189 Starts the preferred web browser with the given URL as argument.
193 */ 190 */
194 void browse( const QString& url ); 191 void browse( const QString& url );
195 192
196 /** 193 /**
197 Select all contacts in the view. 194 Select all contacts in the view.
198 */ 195 */
199 void selectAllContacts(); 196 void selectAllContacts();
200 197
201 /** 198 /**
202 Deletes all selected contacts from the address book. 199 Deletes all selected contacts from the address book.
203 */ 200 */
204 void deleteContacts(); 201 void deleteContacts();
205 202
206 /** 203 /**
207 Deletes given contacts from the address book. 204 Deletes given contacts from the address book.
208 205
209 @param uids The uids of the contacts, which shall be deleted. 206 @param uids The uids of the contacts, which shall be deleted.
210 */ 207 */
211 void deleteContacts( const QStringList &uids ); 208 void deleteContacts( const QStringList &uids );
212 209
213 /** 210 /**
214 Copys the selected contacts into clipboard for later pasting. 211 Copys the selected contacts into clipboard for later pasting.
215 */ 212 */
216 void copyContacts(); 213 void copyContacts();
217 214
218 /** 215 /**
219 Cuts the selected contacts and stores them for later pasting. 216 Cuts the selected contacts and stores them for later pasting.
220 */ 217 */
221 void cutContacts(); 218 void cutContacts();
222 219
223 /** 220 /**
224 Paste contacts from clipboard into the address book. 221 Paste contacts from clipboard into the address book.
225 */ 222 */
226 void pasteContacts(); 223 void pasteContacts();
227 224
228 /** 225 /**
229 Paste given contacts into the address book. 226 Paste given contacts into the address book.
230 227
231 @param list The list of addressee, which shall be pasted. 228 @param list The list of addressee, which shall be pasted.
232 */ 229 */
233 void pasteContacts( KABC::Addressee::List &list ); 230 void pasteContacts( KABC::Addressee::List &list );
234 231
235 /** 232 /**
236 Sets the whoAmI contact, that is used by many other programs to 233 Sets the whoAmI contact, that is used by many other programs to
237 get personal information about the current user. 234 get personal information about the current user.
238 */ 235 */
239 void setWhoAmI(); 236 void setWhoAmI();
240 237
241 /** 238 /**
242 Displays the category dialog and applies the result to all 239 Displays the category dialog and applies the result to all
243 selected contacts. 240 selected contacts.
244 */ 241 */
245 void setCategories(); 242 void setCategories();
246 void manageCategories(); 243 void manageCategories();
247 void editCategories(); 244 void editCategories();
248 245
249 /** 246 /**
250 Sets the field list of the Incremental Search Widget. 247 Sets the field list of the Incremental Search Widget.
251 */ 248 */
252 void setSearchFields( const KABC::Field::List &fields ); 249 void setSearchFields( const KABC::Field::List &fields );
253 250
254 /** 251 /**
255 Search with the current search field for a contact, that matches 252 Search with the current search field for a contact, that matches
256 the given text, and selects it in the view. 253 the given text, and selects it in the view.
257 */ 254 */
258 void incrementalSearch( const QString& text ); 255 void incrementalSearch( const QString& text );
259 256
260 /** 257 /**
261 Marks the address book as modified. 258 Marks the address book as modified.
262 */ 259 */
263 void setModified(); 260 void setModified();
264 /** 261 /**
265 Marks the address book as modified without refreshing the view. 262 Marks the address book as modified without refreshing the view.
266 */ 263 */
267 void setModifiedWOrefresh(); 264 void setModifiedWOrefresh();
268 265
269 /** 266 /**
270 Marks the address book as modified concerning the argument. 267 Marks the address book as modified concerning the argument.
271 */ 268 */
272 void setModified( bool modified ); 269 void setModified( bool modified );
273 270
274 /** 271 /**
275 Returns whether the address book is modified. 272 Returns whether the address book is modified.
276 */ 273 */
277 bool modified() const; 274 bool modified() const;
278 275
279 /** 276 /**
280 Called whenever an contact is modified in the contact editor 277 Called whenever an contact is modified in the contact editor
281 dialog or the quick edit. 278 dialog or the quick edit.
282 */ 279 */
283 void contactModified( const KABC::Addressee &addr ); 280 void contactModified( const KABC::Addressee &addr );
284 281
285 /** 282 /**
286 DCOP METHODS. 283 DCOP METHODS.
287 */ 284 */
288 void addEmail( QString addr ); 285 void addEmail( QString addr );
289 void importVCard( const KURL& url, bool showPreview ); 286 void importVCard( const KURL& url, bool showPreview );
290 void importVCard( const QString& vCard, bool showPreview ); 287 void importVCard( const QString& vCard, bool showPreview );
291 void newContact(); 288 void newContact();
292 QString getNameByPhone( const QString& phone ); 289 QString getNameByPhone( const QString& phone );
293 /** 290 /**
294 END DCOP METHODS 291 END DCOP METHODS
295 */ 292 */
296 293
297 /** 294 /**
298 Saves the contents of the AddressBook back to disk. 295 Saves the contents of the AddressBook back to disk.
299 */ 296 */
300 void save(); 297 void save();
301 298
302 /** 299 /**
303 Undos the last command using the undo stack. 300 Undos the last command using the undo stack.
304 */ 301 */
305 void undo(); 302 void undo();
306 303
307 /** 304 /**
308 Redos the last command that was undone, using the redo stack. 305 Redos the last command that was undone, using the redo stack.
309 */ 306 */
310 void redo(); 307 void redo();
311 308
312 /** 309 /**
313 Shows the edit dialog for the given uid. If the uid is QString::null, 310 Shows the edit dialog for the given uid. If the uid is QString::null,
314 the method will try to find a selected addressee in the view. 311 the method will try to find a selected addressee in the view.
315 */ 312 */
316 void editContact( const QString &uid /*US = QString::null*/ ); 313 void editContact( const QString &uid /*US = QString::null*/ );
317//US added a second method without defaultparameter 314//US added a second method without defaultparameter
318 void editContact2(); 315 void editContact2();
319 316
320 /** 317 /**
321 Shows or edits the detail view for the given uid. If the uid is QString::null, 318 Shows or edits the detail view for the given uid. If the uid is QString::null,
322 the method will try to find a selected addressee in the view. 319 the method will try to find a selected addressee in the view.
323 */ 320 */
324 void executeContact( const QString &uid /*US = QString::null*/ ); 321 void executeContact( const QString &uid /*US = QString::null*/ );
325 322
326 /** 323 /**
327 Launches the configuration dialog. 324 Launches the configuration dialog.
328 */ 325 */
329 void openConfigDialog(); 326 void openConfigDialog();
330 327
331 /** 328 /**
332 Launches the ldap search dialog. 329 Launches the ldap search dialog.
333 */ 330 */
334 void openLDAPDialog(); 331 void openLDAPDialog();
335 332
336 /** 333 /**
337 Creates a KAddressBookPrinter, which will display the print 334 Creates a KAddressBookPrinter, which will display the print
338 dialog and do the printing. 335 dialog and do the printing.
339 */ 336 */
340 void print(); 337 void print();
341 338
342 /** 339 /**
343 Registers a new GUI client, so plugins can register its actions. 340 Registers a new GUI client, so plugins can register its actions.
344 */ 341 */
345 void addGUIClient( KXMLGUIClient *client ); 342 void addGUIClient( KXMLGUIClient *client );
346 343
347 void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); 344 void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid);
348 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); 345 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid);
349 void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid); 346 void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid);
350 347
351 348
352 signals: 349 signals:
353 void contactSelected( const QString &name ); 350 void contactSelected( const QString &name );
354 void contactSelected( const QPixmap &pixmap ); 351 void contactSelected( const QPixmap &pixmap );
355 public slots: 352 public slots:
356 void recieve(QString cmsg ); 353 void recieve(QString cmsg );
357 void getFile( bool success ); 354 void getFile( bool success );
358 void syncFileRequest(); 355 void syncFileRequest();
359 void setDetailsVisible( bool visible ); 356 void setDetailsVisible( bool visible );
360 void setDetailsToState(); 357 void setDetailsToState();
361 // void slotSyncMenu( int ); 358
359 void saveSettings();
360
362 private slots: 361 private slots:
363 void updateToolBar(); 362 void updateToolBar();
364 void updateMainWindow(); 363 void updateMainWindow();
365 void receive( const QCString& cmsg, const QByteArray& data ); 364 void receive( const QCString& cmsg, const QByteArray& data );
366 void toggleBeamReceive( ); 365 void toggleBeamReceive( );
367 void disableBR(bool); 366 void disableBR(bool);
368 void setJumpButtonBarVisible( bool visible ); 367 void setJumpButtonBarVisible( bool visible );
369 void setCaptionBack(); 368 void setCaptionBack();
370 void importFromOL(); 369 void importFromOL();
371 void extensionModified( const KABC::Addressee::List &list ); 370 void extensionModified( const KABC::Addressee::List &list );
372 void extensionChanged( int id ); 371 void extensionChanged( int id );
373 void clipboardDataChanged(); 372 void clipboardDataChanged();
374 void updateActionMenu(); 373 void updateActionMenu();
375 void configureKeyBindings(); 374 void configureKeyBindings();
376 void removeVoice(); 375 void removeVoice();
377#ifdef KAB_EMBEDDED 376#ifdef KAB_EMBEDDED
378 void configureResources(); 377 void configureResources();
379#endif //KAB_EMBEDDED 378#endif //KAB_EMBEDDED
380 379
381 void slotEditorDestroyed( const QString &uid ); 380 void slotEditorDestroyed( const QString &uid );
382 void configurationChanged(); 381 void configurationChanged();
383 void addressBookChanged(); 382 void addressBookChanged();
384 383
385 private: 384 private:
386 void resizeEvent(QResizeEvent* e ); 385 void resizeEvent(QResizeEvent* e );
387 bool mBRdisabled; 386 bool mBRdisabled;
388#ifndef DESKTOP_VERSION 387#ifndef DESKTOP_VERSION
389 QCopChannel* infrared; 388 QCopChannel* infrared;
390#endif 389#endif
391 QTimer *mMessageTimer; 390 QTimer *mMessageTimer;
392 void initGUI(); 391 void initGUI();
393 void initActions(); 392 void initActions();
394 QString getPhoneFile(); 393 QString getPhoneFile();
395 394
396 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, 395 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent,
397 const char *name = 0 ); 396 const char *name = 0 );
398 397
399 KXMLGUIClient *mGUIClient; 398 KXMLGUIClient *mGUIClient;
400 399
401 KABC::AddressBook *mAddressBook; 400 KABC::AddressBook *mAddressBook;
402 401
403 ViewManager *mViewManager; 402 ViewManager *mViewManager;
404 // QSplitter *mDetailsSplitter; 403 // QSplitter *mDetailsSplitter;
405 KDGanttMinimizeSplitter *mExtensionBarSplitter; 404 KDGanttMinimizeSplitter *mExtensionBarSplitter;
406 ViewContainer *mDetails; 405 ViewContainer *mDetails;
407 KDGanttMinimizeSplitter* mMiniSplitter; 406 KDGanttMinimizeSplitter* mMiniSplitter;
408 XXPortManager *mXXPortManager; 407 XXPortManager *mXXPortManager;
409 JumpButtonBar *mJumpButtonBar; 408 JumpButtonBar *mJumpButtonBar;
410 IncSearchWidget *mIncSearchWidget; 409 IncSearchWidget *mIncSearchWidget;
411 ExtensionManager *mExtensionManager; 410 ExtensionManager *mExtensionManager;
412 411
413 KCMultiDialog *mConfigureDialog; 412 KCMultiDialog *mConfigureDialog;
414 413
415#ifndef KAB_EMBEDDED 414#ifndef KAB_EMBEDDED
416 LDAPSearchDialog *mLdapSearchDialog; 415 LDAPSearchDialog *mLdapSearchDialog;
417#endif //KAB_EMBEDDED 416#endif //KAB_EMBEDDED
418 // QDict<AddresseeEditorDialog> mEditorDict; 417 // QDict<AddresseeEditorDialog> mEditorDict;
419 AddresseeEditorDialog *mEditorDialog; 418 AddresseeEditorDialog *mEditorDialog;
420 bool mReadWrite; 419 bool mReadWrite;
421 bool mModified; 420 bool mModified;
422 bool mIsPart; 421 bool mIsPart;
423 bool mMultipleViewsAtOnce; 422 bool mMultipleViewsAtOnce;
424 423
425 424
426 //US file menu 425 //US file menu
427 KAction *mActionMail; 426 KAction *mActionMail;
428 KAction *mActionBeam; 427 KAction *mActionBeam;
429 KToggleAction *mActionBR; 428 KToggleAction *mActionBR;
430 KAction *mActionExport2phone; 429 KAction *mActionExport2phone;
431 KAction* mActionPrint; 430 KAction* mActionPrint;
432 KAction* mActionNewContact; 431 KAction* mActionNewContact;
433 KAction *mActionSave; 432 KAction *mActionSave;
434 KAction *mActionEditAddressee; 433 KAction *mActionEditAddressee;
435 KAction *mActionMailVCard; 434 KAction *mActionMailVCard;
436 KAction *mActionBeamVCard; 435 KAction *mActionBeamVCard;
437 436
438 KAction *mActionQuit; 437 KAction *mActionQuit;
439 438
440 //US edit menu 439 //US edit menu
441 KAction *mActionCopy; 440 KAction *mActionCopy;
442 KAction *mActionCut; 441 KAction *mActionCut;
443 KAction *mActionPaste; 442 KAction *mActionPaste;
444 KAction *mActionSelectAll; 443 KAction *mActionSelectAll;
445 KAction *mActionUndo; 444 KAction *mActionUndo;
446 KAction *mActionRedo; 445 KAction *mActionRedo;
447 KAction *mActionDelete; 446 KAction *mActionDelete;
448 447
449 //US settings menu 448 //US settings menu
450 KAction *mActionConfigResources; 449 KAction *mActionConfigResources;
451 KAction *mActionConfigKAddressbook; 450 KAction *mActionConfigKAddressbook;
452 KAction *mActionConfigShortcuts; 451 KAction *mActionConfigShortcuts;
453 KAction *mActionConfigureToolbars; 452 KAction *mActionConfigureToolbars;
454 KAction *mActionKeyBindings; 453 KAction *mActionKeyBindings;
455 KToggleAction *mActionJumpBar; 454 KToggleAction *mActionJumpBar;
456 KToggleAction *mActionDetails; 455 KToggleAction *mActionDetails;
457 KAction *mActionWhoAmI; 456 KAction *mActionWhoAmI;
458 KAction *mActionCategories; 457 KAction *mActionCategories;
459 KAction *mActionEditCategories; 458 KAction *mActionEditCategories;
460 KAction *mActionManageCategories; 459 KAction *mActionManageCategories;
461 KAction *mActionAboutKAddressbook; 460 KAction *mActionAboutKAddressbook;
462 KAction *mActionLicence; 461 KAction *mActionLicence;
463 KAction *mActionFaq; 462 KAction *mActionFaq;
464 KAction *mActionWN; 463 KAction *mActionWN;
465 KAction *mActionSyncHowto; 464 KAction *mActionSyncHowto;
466 KAction *mActionKdeSyncHowto; 465 KAction *mActionKdeSyncHowto;
467 KAction *mActionMultiSyncHowto; 466 KAction *mActionMultiSyncHowto;
468 467
469 KAction *mActionDeleteView; 468 KAction *mActionDeleteView;
470 469
471 QPopupMenu *viewMenu; 470 QPopupMenu *viewMenu;
472 QPopupMenu *filterMenu; 471 QPopupMenu *filterMenu;
473 QPopupMenu *settingsMenu; 472 QPopupMenu *settingsMenu;
474 QPopupMenu *changeMenu; 473 QPopupMenu *changeMenu;
475 QPopupMenu *beamMenu; 474 QPopupMenu *beamMenu;
476//US QAction *mActionSave; 475//US QAction *mActionSave;
477 QPopupMenu *ImportMenu; 476 QPopupMenu *ImportMenu;
478 QPopupMenu *ExportMenu; 477 QPopupMenu *ExportMenu;
479 //LR additional methods 478 //LR additional methods
480 KAction *mActionRemoveVoice; 479 KAction *mActionRemoveVoice;
481 KAction * mActionImportOL; 480 KAction * mActionImportOL;
482 481
483#ifndef KAB_EMBEDDED 482#ifndef KAB_EMBEDDED
484 KAddressBookService *mAddressBookService; 483 KAddressBookService *mAddressBookService;
485#endif //KAB_EMBEDDED 484#endif //KAB_EMBEDDED
486 485
487 class KABCorePrivate; 486 class KABCorePrivate;
488 KABCorePrivate *d; 487 KABCorePrivate *d;
489 //US bool mBlockSaveFlag; 488 //US bool mBlockSaveFlag;
490 489
491#ifdef KAB_EMBEDDED 490#ifdef KAB_EMBEDDED
492 KAddressBookMain *mMainWindow; // should be the same like mGUIClient 491 KAddressBookMain *mMainWindow; // should be the same like mGUIClient
493#endif //KAB_EMBEDDED 492#endif //KAB_EMBEDDED
494 493
495 //this are the overwritten callbackmethods from the syncinterface 494 //this are the overwritten callbackmethods from the syncinterface
496 virtual bool sync(KSyncManager* manager, QString filename, int mode); 495 virtual bool sync(KSyncManager* manager, QString filename, int mode);
497 virtual bool syncExternal(KSyncManager* manager, QString resource); 496 virtual bool syncExternal(KSyncManager* manager, QString resource);
498 virtual void removeSyncInfo( QString syncProfile); 497 virtual void removeSyncInfo( QString syncProfile);
499 bool syncPhone(); 498 bool syncPhone();
500 void message( QString m ); 499 void message( QString m );
501 500
502 // LR ******************************* 501 // LR *******************************
503 // sync stuff! 502 // sync stuff!
504 QString sentSyncFile(); 503 QString sentSyncFile();
505 QPopupMenu *syncMenu; 504 QPopupMenu *syncMenu;
506 KSyncManager* syncManager; 505 KSyncManager* syncManager;
507 int mGlobalSyncMode; 506 int mGlobalSyncMode;
508 bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode); 507 bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode);
509 KABC::Addressee getLastSyncAddressee(); 508 KABC::Addressee getLastSyncAddressee();
510 QDateTime mLastAddressbookSync; 509 QDateTime mLastAddressbookSync;
511 int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full ); 510 int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full );
512 // ********************* 511 // *********************
513 512
514}; 513};
515 514
516#endif 515#endif
diff --git a/kaddressbook/viewmanager.cpp b/kaddressbook/viewmanager.cpp
index 33bef5a..59bddd9 100644
--- a/kaddressbook/viewmanager.cpp
+++ b/kaddressbook/viewmanager.cpp
@@ -416,310 +416,311 @@ void ViewManager::addView()
416 if ( !firstConflict ) { 416 if ( !firstConflict ) {
417 newName = newName.left( newName.length() - 4 ); 417 newName = newName.left( newName.length() - 4 );
418 firstConflict = false; 418 firstConflict = false;
419 } 419 }
420 420
421 newName = QString( "%1 <%2>" ).arg( newName ).arg( numTries ); 421 newName = QString( "%1 <%2>" ).arg( newName ).arg( numTries );
422 numTries++; 422 numTries++;
423 } 423 }
424 424
425 // Add the new one to the list 425 // Add the new one to the list
426 mViewNameList.append( newName ); 426 mViewNameList.append( newName );
427 427
428 // write the view to the config file, 428 // write the view to the config file,
429 KConfig *config = mCore->config(); 429 KConfig *config = mCore->config();
430 430
431 config->deleteGroup( newName ); 431 config->deleteGroup( newName );
432 432
433 KConfigGroupSaver saver( config, newName ); 433 KConfigGroupSaver saver( config, newName );
434 434
435 config->writeEntry( "Type", type ); 435 config->writeEntry( "Type", type );
436 436
437 // try to set the active view 437 // try to set the active view
438 mActionSelectView->setItems( mViewNameList ); 438 mActionSelectView->setItems( mViewNameList );
439 mActionSelectView->setCurrentItem( mViewNameList.findIndex( newName ) ); 439 mActionSelectView->setCurrentItem( mViewNameList.findIndex( newName ) );
440 setActiveView( newName ); 440 setActiveView( newName );
441 441
442 editView(); 442 editView();
443 443
444 mActionDeleteView->setEnabled( mViewNameList.count() > 1 ); 444 mActionDeleteView->setEnabled( mViewNameList.count() > 1 );
445 } 445 }
446} 446}
447 447
448void ViewManager::createViewFactories() 448void ViewManager::createViewFactories()
449{ 449{
450#ifndef KAB_EMBEDDED 450#ifndef KAB_EMBEDDED
451 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/View" ); 451 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/View" );
452 KTrader::OfferList::ConstIterator it; 452 KTrader::OfferList::ConstIterator it;
453 for ( it = plugins.begin(); it != plugins.end(); ++it ) { 453 for ( it = plugins.begin(); it != plugins.end(); ++it ) {
454 if ( !(*it)->hasServiceType( "KAddressBook/View" ) ) 454 if ( !(*it)->hasServiceType( "KAddressBook/View" ) )
455 continue; 455 continue;
456 456
457 KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() ); 457 KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() );
458 458
459 if ( !factory ) { 459 if ( !factory ) {
460 kdDebug(5720) << "ViewManager::createViewFactories(): Factory creation failed" << endl; 460 kdDebug(5720) << "ViewManager::createViewFactories(): Factory creation failed" << endl;
461 continue; 461 continue;
462 } 462 }
463 463
464 ViewFactory *viewFactory = static_cast<ViewFactory*>( factory ); 464 ViewFactory *viewFactory = static_cast<ViewFactory*>( factory );
465 465
466 if ( !viewFactory ) { 466 if ( !viewFactory ) {
467 kdDebug(5720) << "ViewManager::createViewFactories(): Cast failed" << endl; 467 kdDebug(5720) << "ViewManager::createViewFactories(): Cast failed" << endl;
468 continue; 468 continue;
469 } 469 }
470 470
471 mViewFactoryDict.insert( viewFactory->type(), viewFactory ); 471 mViewFactoryDict.insert( viewFactory->type(), viewFactory );
472 } 472 }
473 473
474#else //KAB_EMBEDDED 474#else //KAB_EMBEDDED
475 ViewFactory* viewFactory = new IconViewFactory(); 475 ViewFactory* viewFactory = new IconViewFactory();
476 mViewFactoryDict.insert( viewFactory->type(), viewFactory ); 476 mViewFactoryDict.insert( viewFactory->type(), viewFactory );
477// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1()); 477// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1());
478 478
479 viewFactory = new TableViewFactory(); 479 viewFactory = new TableViewFactory();
480 mViewFactoryDict.insert( viewFactory->type(), viewFactory ); 480 mViewFactoryDict.insert( viewFactory->type(), viewFactory );
481// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1()); 481// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1());
482 482
483 viewFactory = new CardViewFactory(); 483 viewFactory = new CardViewFactory();
484 mViewFactoryDict.insert( viewFactory->type(), viewFactory ); 484 mViewFactoryDict.insert( viewFactory->type(), viewFactory );
485// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1()); 485// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1());
486 486
487#endif //KAB_EMBEDDED 487#endif //KAB_EMBEDDED
488 488
489} 489}
490 490
491void ViewManager::dropped( QDropEvent *e ) 491void ViewManager::dropped( QDropEvent *e )
492{ 492{
493 kdDebug(5720) << "ViewManager::dropped: got a drop event" << endl; 493 kdDebug(5720) << "ViewManager::dropped: got a drop event" << endl;
494 494
495#ifndef KAB_EMBEDDED 495#ifndef KAB_EMBEDDED
496 496
497 QString clipText, vcards; 497 QString clipText, vcards;
498 KURL::List urls; 498 KURL::List urls;
499 499
500 if ( KURLDrag::decode( e, urls) ) { 500 if ( KURLDrag::decode( e, urls) ) {
501 KURL::List::Iterator it = urls.begin(); 501 KURL::List::Iterator it = urls.begin();
502 int c = urls.count(); 502 int c = urls.count();
503 if ( c > 1 ) { 503 if ( c > 1 ) {
504 QString questionString = i18n( "Import one contact into your addressbook?", "Import %n contacts into your addressbook?", c ); 504 QString questionString = i18n( "Import one contact into your addressbook?", "Import %n contacts into your addressbook?", c );
505 if ( KMessageBox::questionYesNo( this, questionString, i18n( "Import Contacts?" ) ) == KMessageBox::Yes ) { 505 if ( KMessageBox::questionYesNo( this, questionString, i18n( "Import Contacts?" ) ) == KMessageBox::Yes ) {
506 for ( ; it != urls.end(); ++it ) 506 for ( ; it != urls.end(); ++it )
507 emit urlDropped( *it ); 507 emit urlDropped( *it );
508 } 508 }
509 } else if ( c == 1 ) 509 } else if ( c == 1 )
510 emit urlDropped( *it ); 510 emit urlDropped( *it );
511 } else if ( KVCardDrag::decode( e, vcards ) ) { 511 } else if ( KVCardDrag::decode( e, vcards ) ) {
512 KABC::Addressee addr; 512 KABC::Addressee addr;
513 KABC::VCardConverter converter; 513 KABC::VCardConverter converter;
514 QStringList list = QStringList::split( "\r\n\r\n", vcards ); 514 QStringList list = QStringList::split( "\r\n\r\n", vcards );
515 QStringList::Iterator it; 515 QStringList::Iterator it;
516 for ( it = list.begin(); it != list.end(); ++it ) { 516 for ( it = list.begin(); it != list.end(); ++it ) {
517 if ( converter.vCardToAddressee( (*it).stripWhiteSpace(), addr ) ) { 517 if ( converter.vCardToAddressee( (*it).stripWhiteSpace(), addr ) ) {
518 KABC::Addressee a = mCore->addressBook()->findByUid( addr.uid() ); 518 KABC::Addressee a = mCore->addressBook()->findByUid( addr.uid() );
519 if ( a.isEmpty() ) { 519 if ( a.isEmpty() ) {
520 mCore->addressBook()->insertAddressee( addr ); 520 mCore->addressBook()->insertAddressee( addr );
521 emit modified(); 521 emit modified();
522 } 522 }
523 } 523 }
524 } 524 }
525 525
526 mActiveView->refresh(); 526 mActiveView->refresh();
527 } 527 }
528#else //KAB_EMBEDDED 528#else //KAB_EMBEDDED
529qDebug("ViewManager::dropped() has to be changed!!" ); 529qDebug("ViewManager::dropped() has to be changed!!" );
530#endif //KAB_EMBEDDED 530#endif //KAB_EMBEDDED
531 531
532} 532}
533 533
534void ViewManager::startDrag() 534void ViewManager::startDrag()
535{ 535{
536 kdDebug(5720) << "ViewManager::startDrag: starting to drag" << endl; 536 kdDebug(5720) << "ViewManager::startDrag: starting to drag" << endl;
537 537
538#ifndef KAB_EMBEDDED 538#ifndef KAB_EMBEDDED
539 539
540 // Get the list of all the selected addressees 540 // Get the list of all the selected addressees
541 KABC::Addressee::List addrList; 541 KABC::Addressee::List addrList;
542 QStringList uidList = selectedUids(); 542 QStringList uidList = selectedUids();
543 QStringList::Iterator iter; 543 QStringList::Iterator iter;
544 for ( iter = uidList.begin(); iter != uidList.end(); ++iter ) 544 for ( iter = uidList.begin(); iter != uidList.end(); ++iter )
545 addrList.append( mCore->addressBook()->findByUid( *iter ) ); 545 addrList.append( mCore->addressBook()->findByUid( *iter ) );
546 546
547 KMultipleDrag *drag = new KMultipleDrag( this ); 547 KMultipleDrag *drag = new KMultipleDrag( this );
548 drag->addDragObject( new QTextDrag( AddresseeUtil::addresseesToClipboard(addrList), this ) ); 548 drag->addDragObject( new QTextDrag( AddresseeUtil::addresseesToClipboard(addrList), this ) );
549 KABC::Addressee::List::Iterator it; 549 KABC::Addressee::List::Iterator it;
550 QStringList vcards; 550 QStringList vcards;
551 for ( it = addrList.begin(); it != addrList.end(); ++it ) { 551 for ( it = addrList.begin(); it != addrList.end(); ++it ) {
552 QString vcard = QString::null; 552 QString vcard = QString::null;
553 KABC::VCardConverter converter; 553 KABC::VCardConverter converter;
554 if ( converter.addresseeToVCard( *it, vcard ) ) 554 if ( converter.addresseeToVCard( *it, vcard ) )
555 vcards.append( vcard ); 555 vcards.append( vcard );
556 } 556 }
557 drag->addDragObject( new KVCardDrag( vcards.join( "\r\n" ), this ) ); 557 drag->addDragObject( new KVCardDrag( vcards.join( "\r\n" ), this ) );
558 558
559 drag->setPixmap( KGlobal::iconLoader()->loadIcon( "vcard", KIcon::Desktop ) ); 559 drag->setPixmap( KGlobal::iconLoader()->loadIcon( "vcard", KIcon::Desktop ) );
560 drag->dragCopy(); 560 drag->dragCopy();
561 561
562#else //KAB_EMBEDDED 562#else //KAB_EMBEDDED
563qDebug("ViewManager::startDrag() has to be changed!!" ); 563qDebug("ViewManager::startDrag() has to be changed!!" );
564#endif //KAB_EMBEDDED 564#endif //KAB_EMBEDDED
565 565
566} 566}
567void ViewManager::doSearch( const QString& s,KABC::Field *field ) 567void ViewManager::doSearch( const QString& s,KABC::Field *field )
568{ 568{
569 if ( mActiveView ) 569 if ( mActiveView )
570 mActiveView->doSearch( s, field ); 570 mActiveView->doSearch( s, field );
571 571
572} 572}
573void ViewManager::setActiveFilter( int index ) 573void ViewManager::setActiveFilter( int index )
574{ 574{
575 Filter currentFilter; 575 Filter currentFilter;
576 576
577 if ( ( index - 1 ) < 0 ) 577 if ( ( index - 1 ) < 0 )
578 currentFilter = Filter(); 578 currentFilter = Filter();
579 else 579 else
580 currentFilter = mFilterList[ index - 1 ]; 580 currentFilter = mFilterList[ index - 1 ];
581 581
582 // Check if we have a view. Since the filter combo is created before 582 // Check if we have a view. Since the filter combo is created before
583 // the view, this slot could be called before there is a valid view. 583 // the view, this slot could be called before there is a valid view.
584 if ( mActiveView ) { 584 if ( mActiveView ) {
585 mActiveView->setFilter( currentFilter ); 585 mActiveView->setFilter( currentFilter );
586 mActiveView->refresh(); 586 mActiveView->refresh();
587 emit selected( QString::null ); 587 emit selected( QString::null );
588 } 588 }
589} 589}
590 590
591void ViewManager::configureFilters() 591void ViewManager::configureFilters()
592{ 592{
593 FilterDialog dlg( this ); 593 FilterDialog dlg( this );
594 594
595 dlg.setFilters( mFilterList ); 595 dlg.setFilters( mFilterList );
596 596
597 if ( dlg.exec() ) 597 if ( dlg.exec() )
598 mFilterList = dlg.filters(); 598 mFilterList = dlg.filters();
599 599
600 uint pos = mActionSelectFilter->currentItem(); 600 uint pos = mActionSelectFilter->currentItem();
601 mActionSelectFilter->setItems( filterNames() ); 601 mActionSelectFilter->setItems( filterNames() );
602 mActionSelectFilter->setCurrentItem( pos ); 602 mActionSelectFilter->setCurrentItem( pos );
603 setActiveFilter( pos ); 603 setActiveFilter( pos );
604 int cw = 150; 604 int cw = 150;
605 if (QApplication::desktop()->width() == 480 ) 605 if (QApplication::desktop()->width() == 480 )
606 cw = 0; 606 cw = 0;
607 mActionSelectFilter->setComboWidth( cw ); 607 mActionSelectFilter->setComboWidth( cw );
608 saveSettings();
608} 609}
609 610
610QStringList ViewManager::filterNames() const 611QStringList ViewManager::filterNames() const
611{ 612{
612 QStringList names( i18n( "No Filter" ) ); 613 QStringList names( i18n( "No Filter" ) );
613 614
614 Filter::List::ConstIterator it; 615 Filter::List::ConstIterator it;
615 for ( it = mFilterList.begin(); it != mFilterList.end(); ++it ) 616 for ( it = mFilterList.begin(); it != mFilterList.end(); ++it )
616 names.append( (*it).name() ); 617 names.append( (*it).name() );
617 618
618 return names; 619 return names;
619} 620}
620 621
621int ViewManager::filterPosition( const QString &name ) const 622int ViewManager::filterPosition( const QString &name ) const
622{ 623{
623 int pos = 0; 624 int pos = 0;
624 625
625 Filter::List::ConstIterator it; 626 Filter::List::ConstIterator it;
626 for ( it = mFilterList.begin(); it != mFilterList.end(); ++it, ++pos ) 627 for ( it = mFilterList.begin(); it != mFilterList.end(); ++it, ++pos )
627 if ( name == (*it).name() ) 628 if ( name == (*it).name() )
628 return pos + 1; 629 return pos + 1;
629 630
630 return 0; 631 return 0;
631} 632}
632 633
633void ViewManager::initActions() 634void ViewManager::initActions()
634{ 635{
635//US <ActionList name="view_loadedviews"/> 636//US <ActionList name="view_loadedviews"/>
636//US <Separator/> 637//US <Separator/>
637 638
638#ifdef KAB_EMBEDDED 639#ifdef KAB_EMBEDDED
639 QPopupMenu *viewmenu = (QPopupMenu*)mCore->getViewMenu(); 640 QPopupMenu *viewmenu = (QPopupMenu*)mCore->getViewMenu();
640 QPopupMenu *settingsmenu = (QPopupMenu*)mCore->getSettingsMenu(); 641 QPopupMenu *settingsmenu = (QPopupMenu*)mCore->getSettingsMenu();
641 QPopupMenu *filtermenu = (QPopupMenu*)mCore->getFilterMenu(); 642 QPopupMenu *filtermenu = (QPopupMenu*)mCore->getFilterMenu();
642#endif //KAB_EMBEDDED 643#endif //KAB_EMBEDDED
643 644
644 mActionSelectView = new KSelectAction( i18n( "Select View" ), 0, mCore->actionCollection(), "select_view" ); 645 mActionSelectView = new KSelectAction( i18n( "Select View" ), 0, mCore->actionCollection(), "select_view" );
645#if KDE_VERSION >= 309 646#if KDE_VERSION >= 309
646 mActionSelectView->setMenuAccelsEnabled( false ); 647 mActionSelectView->setMenuAccelsEnabled( false );
647#endif 648#endif
648 connect( mActionSelectView, SIGNAL( activated( const QString& ) ), 649 connect( mActionSelectView, SIGNAL( activated( const QString& ) ),
649 SLOT( setActiveView( const QString& ) ) ); 650 SLOT( setActiveView( const QString& ) ) );
650 651
651 652
652#ifdef KAB_EMBEDDED 653#ifdef KAB_EMBEDDED
653 mActionSelectView->plug(viewmenu); 654 mActionSelectView->plug(viewmenu);
654 viewmenu->insertSeparator(); 655 viewmenu->insertSeparator();
655#endif //KAB_EMBEDDED 656#endif //KAB_EMBEDDED
656 657
657 KAction *action; 658 KAction *action;
658 659
659 action = new KAction( i18n( "Modify View..." ), "configure", 0, this, 660 action = new KAction( i18n( "Modify View..." ), "configure", 0, this,
660 SLOT( editView() ), mCore->actionCollection(), "view_modify" ); 661 SLOT( editView() ), mCore->actionCollection(), "view_modify" );
661#ifndef KAB_EMBEDDED 662#ifndef KAB_EMBEDDED
662 action->setWhatsThis( i18n( "By pressing this button a dialog opens that allows you to modify the view of the addressbook. There you can add or remove fields that you want to be shown or hidden in the addressbook like the name for example." ) ); 663 action->setWhatsThis( i18n( "By pressing this button a dialog opens that allows you to modify the view of the addressbook. There you can add or remove fields that you want to be shown or hidden in the addressbook like the name for example." ) );
663#else //KAB_EMBEDDED 664#else //KAB_EMBEDDED
664 action->plug(viewmenu); 665 action->plug(viewmenu);
665#endif //KAB_EMBEDDED 666#endif //KAB_EMBEDDED
666 667
667 action = new KAction( i18n( "Add View..." ), "window_new", 0, this, 668 action = new KAction( i18n( "Add View..." ), "window_new", 0, this,
668 SLOT( addView() ), mCore->actionCollection(), "view_add" ); 669 SLOT( addView() ), mCore->actionCollection(), "view_add" );
669#ifndef KAB_EMBEDDED 670#ifndef KAB_EMBEDDED
670 action->setWhatsThis( i18n( "You can add a new view by choosing one of the dialog that appears after pressing the button. You have to give the view a name, so that you can distinguish between the different views." ) ); 671 action->setWhatsThis( i18n( "You can add a new view by choosing one of the dialog that appears after pressing the button. You have to give the view a name, so that you can distinguish between the different views." ) );
671#else //KAB_EMBEDDED 672#else //KAB_EMBEDDED
672 action->plug(viewmenu); 673 action->plug(viewmenu);
673#endif //KAB_EMBEDDED 674#endif //KAB_EMBEDDED
674 675
675 mActionDeleteView = new KAction( i18n( "Delete View" ), "view_remove", 0, 676 mActionDeleteView = new KAction( i18n( "Delete View" ), "view_remove", 0,
676 this, SLOT( deleteView() ), 677 this, SLOT( deleteView() ),
677 mCore->actionCollection(), "view_delete" ); 678 mCore->actionCollection(), "view_delete" );
678#ifndef KAB_EMBEDDED 679#ifndef KAB_EMBEDDED
679 mActionDeleteView->setWhatsThis( i18n( "By pressing this button you can delete the actual view, which you have added before." ) ); 680 mActionDeleteView->setWhatsThis( i18n( "By pressing this button you can delete the actual view, which you have added before." ) );
680#else //KAB_EMBEDDED 681#else //KAB_EMBEDDED
681 mActionDeleteView->plug(viewmenu); 682 mActionDeleteView->plug(viewmenu);
682 viewmenu->insertSeparator(); 683 viewmenu->insertSeparator();
683#endif //KAB_EMBEDDED 684#endif //KAB_EMBEDDED
684 685
685#ifndef KAB_EMBEDDED 686#ifndef KAB_EMBEDDED
686 action = new KAction( i18n( "Refresh View" ), "reload", 0, this, 687 action = new KAction( i18n( "Refresh View" ), "reload", 0, this,
687 SLOT( refreshView(const QString &) ), mCore->actionCollection(), 688 SLOT( refreshView(const QString &) ), mCore->actionCollection(),
688 "view_refresh" ); 689 "view_refresh" );
689 action->setWhatsThis( i18n( "The view will be refreshed by pressing this button." ) ); 690 action->setWhatsThis( i18n( "The view will be refreshed by pressing this button." ) );
690#else //KAB_EMBEDDED 691#else //KAB_EMBEDDED
691 action = new KAction( i18n( "Refresh View" ), "reload", 0, this, 692 action = new KAction( i18n( "Refresh View" ), "reload", 0, this,
692 SLOT( refreshView()), mCore->actionCollection(), 693 SLOT( refreshView()), mCore->actionCollection(),
693 "view_refresh" ); 694 "view_refresh" );
694 action->plug(viewmenu); 695 action->plug(viewmenu);
695 viewmenu->insertSeparator(); 696 viewmenu->insertSeparator();
696#endif //KAB_EMBEDDED 697#endif //KAB_EMBEDDED
697 698
698 action = new KAction( i18n( "Edit &Filters..." ), "filter", 0, this, 699 action = new KAction( i18n( "Edit &Filters..." ), "filter", 0, this,
699 SLOT( configureFilters() ), mCore->actionCollection(), 700 SLOT( configureFilters() ), mCore->actionCollection(),
700 "options_edit_filters" ); 701 "options_edit_filters" );
701 702
702 mActionSelectFilter = new KSelectAction( i18n( "Select Filter" ), "filter", mCore->actionCollection(), "select_filter" ); 703 mActionSelectFilter = new KSelectAction( i18n( "Select Filter" ), "filter", mCore->actionCollection(), "select_filter" );
703#if KDE_VERSION >= 309 704#if KDE_VERSION >= 309
704 mActionSelectFilter->setMenuAccelsEnabled( false ); 705 mActionSelectFilter->setMenuAccelsEnabled( false );
705#endif 706#endif
706 connect( mActionSelectFilter, SIGNAL( activated( int ) ), 707 connect( mActionSelectFilter, SIGNAL( activated( int ) ),
707 SLOT( setActiveFilter( int ) ) ); 708 SLOT( setActiveFilter( int ) ) );
708 709
709#ifdef KAB_EMBEDDED 710#ifdef KAB_EMBEDDED
710 action->plug(settingsmenu); 711 action->plug(settingsmenu);
711 mActionSelectFilter->plug(viewmenu); 712 mActionSelectFilter->plug(viewmenu);
712#endif //KAB_EMBEDDED 713#endif //KAB_EMBEDDED
713 714
714} 715}
715 716
716void ViewManager::initGUI() 717void ViewManager::initGUI()
717{ 718{
718 QHBoxLayout *layout = new QHBoxLayout( this, 0, 0 ); 719 QHBoxLayout *layout = new QHBoxLayout( this, 0, 0 );
719 mViewWidgetStack = new QWidgetStack( this ); 720 mViewWidgetStack = new QWidgetStack( this );
720 layout->addWidget( mViewWidgetStack ); 721 layout->addWidget( mViewWidgetStack );
721} 722}
722 723
723#ifndef KAB_EMBEDDED 724#ifndef KAB_EMBEDDED
724#include "viewmanager.moc" 725#include "viewmanager.moc"
725#endif //KAB_EMBEDDED 726#endif //KAB_EMBEDDED