-rw-r--r-- | kaddressbook/imagewidget.cpp | 25 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 52 | ||||
-rw-r--r-- | kaddressbook/xxportselectdialog.cpp | 48 | ||||
-rw-r--r-- | kaddressbook/xxportselectdialog.h | 1 |
4 files changed, 87 insertions, 39 deletions
diff --git a/kaddressbook/imagewidget.cpp b/kaddressbook/imagewidget.cpp index 9ee4eac..1e9743c 100644 --- a/kaddressbook/imagewidget.cpp +++ b/kaddressbook/imagewidget.cpp | |||
@@ -1,211 +1,210 @@ | |||
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 <qpushbutton.h> | 44 | #include <qpushbutton.h> |
45 | #include <qapplication.h> | 45 | #include <qapplication.h> |
46 | 46 | ||
47 | #include "imagewidget.h" | 47 | #include "imagewidget.h" |
48 | 48 | ||
49 | ImageWidget::ImageWidget( QWidget *parent, const char *name ) | 49 | ImageWidget::ImageWidget( QWidget *parent, const char *name ) |
50 | : QWidget( parent, name ) | 50 | : QWidget( parent, name ) |
51 | { | 51 | { |
52 | QGridLayout *topLayout = new QGridLayout( this, 2, 1, KDialog::marginHint(), | 52 | QGridLayout *topLayout = new QGridLayout( this, 2, 1, KDialog::marginHint(), |
53 | KDialog::spacingHint() ); | 53 | KDialog::spacingHint() ); |
54 | 54 | ||
55 | QGroupBox *photoBox = new QGroupBox( 0, Qt::Vertical, i18n( "Photo" ), this ); | 55 | QGroupBox *photoBox = new QGroupBox( 0, Qt::Vertical, i18n( "Photo" ), this ); |
56 | QGridLayout *boxLayout = new QGridLayout( photoBox->layout(), 4, 2, | 56 | QGridLayout *boxLayout = new QGridLayout( photoBox->layout(), 3, 2, |
57 | KDialog::spacingHint() ); | 57 | KDialog::spacingHint() ); |
58 | boxLayout->setRowStretch( 2, 1 ); | 58 | boxLayout->setRowStretch( 2, 1 ); |
59 | 59 | ||
60 | mPhotoLabel = new QLabel( photoBox ); | 60 | mPhotoLabel = new QLabel( photoBox ); |
61 | int fac = 9; | 61 | int fac = 9; |
62 | if ( QApplication::desktop()->width() > 320 ) | 62 | if ( QApplication::desktop()->width() > 320 ) |
63 | fac = 6; | 63 | fac = 6; |
64 | mPhotoLabel->setFixedSize( 50*9/fac, 70*9/fac ); | 64 | mPhotoLabel->setFixedSize( 50*9/fac, 70*9/fac ); |
65 | mPhotoLabel->setScaledContents( true ); | 65 | mPhotoLabel->setScaledContents( true ); |
66 | mPhotoLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken ); | 66 | mPhotoLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken ); |
67 | boxLayout->addMultiCellWidget( mPhotoLabel, 0, 3, 0, 0 ); | 67 | boxLayout->addMultiCellWidget( mPhotoLabel, 0, 3, 0, 0 ); |
68 | 68 | ||
69 | mPhotoUrl = new KURLRequester( photoBox ); | 69 | mPhotoUrl = new KURLRequester( photoBox ); |
70 | #ifndef KAB_EMBEDDED | 70 | #ifndef KAB_EMBEDDED |
71 | mPhotoUrl->setFilter( KImageIO::pattern() ); | 71 | mPhotoUrl->setFilter( KImageIO::pattern() ); |
72 | #else //KAB_EMBEDDED | 72 | #else //KAB_EMBEDDED |
73 | //US qDebug("ImageWidget::ImageWidget KImageIO not defined. Does this harm ???"); | 73 | //US qDebug("ImageWidget::ImageWidget KImageIO not defined. Does this harm ???"); |
74 | #endif //KAB_EMBEDDED | 74 | #endif //KAB_EMBEDDED |
75 | 75 | ||
76 | 76 | ||
77 | boxLayout->addWidget( mPhotoUrl, 0, 1 ); | 77 | boxLayout->addWidget( mPhotoUrl, 0, 1 ); |
78 | 78 | QHBox *hb1 = new QHBox ( photoBox ); | |
79 | mUsePhotoUrl = new QCheckBox( i18n( "Store as URL" ), photoBox ); | 79 | mUsePhotoUrl = new QCheckBox( i18n( "Store as URL" ), hb1 ); |
80 | mUsePhotoUrl->setEnabled( false ); | 80 | mUsePhotoUrl->setEnabled( false ); |
81 | boxLayout->addWidget( mUsePhotoUrl, 1, 1 ); | 81 | boxLayout->addWidget( hb1, 1, 1 ); |
82 | 82 | ||
83 | QPushButton * pb = new QPushButton( i18n( "Remove" ), photoBox ); | 83 | QPushButton * pb = new QPushButton( i18n( "Remove" ), hb1 ); |
84 | connect( pb, SIGNAL( clicked() ),this, SLOT( removePhoto() ) ); | 84 | connect( pb, SIGNAL( clicked() ),this, SLOT( removePhoto() ) ); |
85 | boxLayout->addWidget( pb, 2, 1 ); | 85 | boxLayout->addWidget( new QLabel( photoBox ), 2, 1 ); |
86 | boxLayout->addWidget( new QLabel( photoBox ), 3, 1 ); | ||
87 | 86 | ||
88 | topLayout->addWidget( photoBox, 0, 0 ); | 87 | topLayout->addWidget( photoBox, 0, 0 ); |
89 | 88 | ||
90 | QGroupBox *logoBox = new QGroupBox( 0, Qt::Vertical, i18n( "Logo" ), this ); | 89 | QGroupBox *logoBox = new QGroupBox( 0, Qt::Vertical, i18n( "Logo" ), this ); |
91 | boxLayout = new QGridLayout( logoBox->layout(), 4, 2, KDialog::spacingHint() ); | 90 | boxLayout = new QGridLayout( logoBox->layout(), 3, 2, KDialog::spacingHint() ); |
92 | boxLayout->setRowStretch( 2, 1 ); | 91 | boxLayout->setRowStretch( 2, 1 ); |
93 | 92 | ||
94 | mLogoLabel = new QLabel( logoBox ); | 93 | mLogoLabel = new QLabel( logoBox ); |
95 | mLogoLabel->setFixedSize( 50*9/fac, 70*9/fac ); | 94 | mLogoLabel->setFixedSize( 50*9/fac, 70*9/fac ); |
96 | mLogoLabel->setScaledContents( true ); | 95 | mLogoLabel->setScaledContents( true ); |
97 | mLogoLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken ); | 96 | mLogoLabel->setFrameStyle( QFrame::Panel | QFrame::Sunken ); |
98 | boxLayout->addMultiCellWidget( mLogoLabel, 0, 3, 0, 0 ); | 97 | boxLayout->addMultiCellWidget( mLogoLabel, 0, 3, 0, 0 ); |
99 | 98 | ||
100 | mLogoUrl = new KURLRequester( logoBox ); | 99 | mLogoUrl = new KURLRequester( logoBox ); |
101 | #ifndef KAB_EMBEDDED | 100 | #ifndef KAB_EMBEDDED |
102 | mLogoUrl->setFilter( KImageIO::pattern() ); | 101 | mLogoUrl->setFilter( KImageIO::pattern() ); |
103 | #else //KAB_EMBEDDED | 102 | #else //KAB_EMBEDDED |
104 | //US qDebug("ImageWidget::ImageWidget KImageIO not defined 2"); | 103 | //US qDebug("ImageWidget::ImageWidget KImageIO not defined 2"); |
105 | #endif //KAB_EMBEDDED | 104 | #endif //KAB_EMBEDDED |
106 | boxLayout->addWidget( mLogoUrl, 0, 1 ); | 105 | boxLayout->addWidget( mLogoUrl, 0, 1 ); |
107 | 106 | ||
108 | mUseLogoUrl = new QCheckBox( i18n( "Store as URL" ), logoBox ); | 107 | QHBox *hb2 = new QHBox ( logoBox ); |
108 | mUseLogoUrl = new QCheckBox( i18n( "Store as URL" ), hb2 ); | ||
109 | mUseLogoUrl->setEnabled( false ); | 109 | mUseLogoUrl->setEnabled( false ); |
110 | boxLayout->addWidget( mUseLogoUrl, 1, 1 ); | 110 | boxLayout->addWidget( hb2, 1, 1 ); |
111 | 111 | ||
112 | pb = new QPushButton( i18n( "Remove" ), logoBox ); | 112 | pb = new QPushButton( i18n( "Remove" ), hb2 ); |
113 | connect( pb, SIGNAL( clicked() ),this, SLOT( removeLogo() ) ); | 113 | connect( pb, SIGNAL( clicked() ),this, SLOT( removeLogo() ) ); |
114 | boxLayout->addWidget( pb, 2, 1 ); | 114 | boxLayout->addWidget( new QLabel( logoBox ), 2, 1 ); |
115 | boxLayout->addWidget( new QLabel( logoBox ), 3, 1 ); | ||
116 | topLayout->addWidget( logoBox, 1, 0 ); | 115 | topLayout->addWidget( logoBox, 1, 0 ); |
117 | 116 | ||
118 | connect( mPhotoUrl, SIGNAL( textChanged( const QString& ) ), | 117 | connect( mPhotoUrl, SIGNAL( textChanged( const QString& ) ), |
119 | SIGNAL( changed() ) ); | 118 | SIGNAL( changed() ) ); |
120 | connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ), | 119 | connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ), |
121 | SLOT( loadPhoto() ) ); | 120 | SLOT( loadPhoto() ) ); |
122 | connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ), | 121 | connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ), |
123 | SIGNAL( changed() ) ); | 122 | SIGNAL( changed() ) ); |
124 | connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ), | 123 | connect( mPhotoUrl, SIGNAL( urlSelected( const QString& ) ), |
125 | SLOT( updateGUI() ) ); | 124 | SLOT( updateGUI() ) ); |
126 | connect( mUsePhotoUrl, SIGNAL( toggled( bool ) ), | 125 | connect( mUsePhotoUrl, SIGNAL( toggled( bool ) ), |
127 | SIGNAL( changed() ) ); | 126 | SIGNAL( changed() ) ); |
128 | 127 | ||
129 | connect( mLogoUrl, SIGNAL( textChanged( const QString& ) ), | 128 | connect( mLogoUrl, SIGNAL( textChanged( const QString& ) ), |
130 | SIGNAL( changed() ) ); | 129 | SIGNAL( changed() ) ); |
131 | connect( mLogoUrl, SIGNAL( urlSelected( const QString& ) ), | 130 | connect( mLogoUrl, SIGNAL( urlSelected( const QString& ) ), |
132 | SLOT( loadLogo() ) ); | 131 | SLOT( loadLogo() ) ); |
133 | connect( mLogoUrl, SIGNAL( urlSelected( const QString& ) ), | 132 | connect( mLogoUrl, SIGNAL( urlSelected( const QString& ) ), |
134 | SIGNAL( changed() ) ); | 133 | SIGNAL( changed() ) ); |
135 | connect( mLogoUrl, SIGNAL( urlSelected( const QString& ) ), | 134 | connect( mLogoUrl, SIGNAL( urlSelected( const QString& ) ), |
136 | SLOT( updateGUI() ) ); | 135 | SLOT( updateGUI() ) ); |
137 | connect( mUseLogoUrl, SIGNAL( toggled( bool ) ), | 136 | connect( mUseLogoUrl, SIGNAL( toggled( bool ) ), |
138 | SIGNAL( changed() ) ); | 137 | SIGNAL( changed() ) ); |
139 | 138 | ||
140 | #ifndef KAB_EMBEDDED | 139 | #ifndef KAB_EMBEDDED |
141 | KAcceleratorManager::manage( this ); | 140 | KAcceleratorManager::manage( this ); |
142 | #endif //KAB_EMBEDDED | 141 | #endif //KAB_EMBEDDED |
143 | 142 | ||
144 | } | 143 | } |
145 | 144 | ||
146 | ImageWidget::~ImageWidget() | 145 | ImageWidget::~ImageWidget() |
147 | { | 146 | { |
148 | } | 147 | } |
149 | 148 | ||
150 | void ImageWidget::setPhoto( const KABC::Picture &photo ) | 149 | void ImageWidget::setPhoto( const KABC::Picture &photo ) |
151 | { | 150 | { |
152 | bool blocked = signalsBlocked(); | 151 | bool blocked = signalsBlocked(); |
153 | blockSignals( true ); | 152 | blockSignals( true ); |
154 | 153 | ||
155 | if ( photo.isIntern() ) { | 154 | if ( photo.isIntern() ) { |
156 | //US | 155 | //US |
157 | //US mPhotoLabel->setPixmap( photo.data() ); | 156 | //US mPhotoLabel->setPixmap( photo.data() ); |
158 | if (photo.data().isNull() != true) | 157 | if (photo.data().isNull() != true) |
159 | { | 158 | { |
160 | QPixmap pm; | 159 | QPixmap pm; |
161 | pm.convertFromImage(photo.data()); | 160 | pm.convertFromImage(photo.data()); |
162 | 161 | ||
163 | mPhotoLabel->setPixmap( pm ); | 162 | mPhotoLabel->setPixmap( pm ); |
164 | } | 163 | } |
165 | 164 | ||
166 | mUsePhotoUrl->setChecked( false ); | 165 | mUsePhotoUrl->setChecked( false ); |
167 | } else { | 166 | } else { |
168 | mPhotoUrl->setURL( photo.url() ); | 167 | mPhotoUrl->setURL( photo.url() ); |
169 | if ( !photo.url().isEmpty() ) | 168 | if ( !photo.url().isEmpty() ) |
170 | mUsePhotoUrl->setChecked( true ); | 169 | mUsePhotoUrl->setChecked( true ); |
171 | loadPhoto(); | 170 | loadPhoto(); |
172 | } | 171 | } |
173 | 172 | ||
174 | blockSignals( blocked ); | 173 | blockSignals( blocked ); |
175 | } | 174 | } |
176 | 175 | ||
177 | KABC::Picture ImageWidget::photo() const | 176 | KABC::Picture ImageWidget::photo() const |
178 | { | 177 | { |
179 | KABC::Picture photo; | 178 | KABC::Picture photo; |
180 | 179 | ||
181 | if ( mUsePhotoUrl->isChecked() ) | 180 | if ( mUsePhotoUrl->isChecked() ) |
182 | photo.setUrl( mPhotoUrl->url() ); | 181 | photo.setUrl( mPhotoUrl->url() ); |
183 | else { | 182 | else { |
184 | QPixmap *px = mPhotoLabel->pixmap(); | 183 | QPixmap *px = mPhotoLabel->pixmap(); |
185 | if ( px ) { | 184 | if ( px ) { |
186 | #ifndef KAB_EMBEDDED | 185 | #ifndef KAB_EMBEDDED |
187 | if ( px->height() > px->width() ) | 186 | if ( px->height() > px->width() ) |
188 | photo.setData( px->convertToImage().scaleHeight( 140 ) ); | 187 | photo.setData( px->convertToImage().scaleHeight( 140 ) ); |
189 | else | 188 | else |
190 | photo.setData( px->convertToImage().scaleWidth( 100 ) ); | 189 | photo.setData( px->convertToImage().scaleWidth( 100 ) ); |
191 | #else //KAB_EMBEDDED | 190 | #else //KAB_EMBEDDED |
192 | //US add teh nullcheck | 191 | //US add teh nullcheck |
193 | if (px->isNull() != true ) | 192 | if (px->isNull() != true ) |
194 | photo.setData( px->convertToImage() ); | 193 | photo.setData( px->convertToImage() ); |
195 | #endif //KAB_EMBEDDED | 194 | #endif //KAB_EMBEDDED |
196 | 195 | ||
197 | photo.setType( "PNG" ); | 196 | photo.setType( "PNG" ); |
198 | } | 197 | } |
199 | } | 198 | } |
200 | 199 | ||
201 | return photo; | 200 | return photo; |
202 | } | 201 | } |
203 | 202 | ||
204 | void ImageWidget::setLogo( const KABC::Picture &logo ) | 203 | void ImageWidget::setLogo( const KABC::Picture &logo ) |
205 | { | 204 | { |
206 | bool blocked = signalsBlocked(); | 205 | bool blocked = signalsBlocked(); |
207 | blockSignals( true ); | 206 | blockSignals( true ); |
208 | 207 | ||
209 | if ( logo.isIntern() ) { | 208 | if ( logo.isIntern() ) { |
210 | //US | 209 | //US |
211 | //US mLogoLabel->setPixmap( logo.data() ); | 210 | //US mLogoLabel->setPixmap( logo.data() ); |
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 9526f23..d393660 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -132,193 +132,194 @@ $Id$ | |||
132 | #include <qlayout.h> | 132 | #include <qlayout.h> |
133 | #include <qclipboard.h> | 133 | #include <qclipboard.h> |
134 | #include <qtextstream.h> | 134 | #include <qtextstream.h> |
135 | #include <qradiobutton.h> | 135 | #include <qradiobutton.h> |
136 | #include <qbuttongroup.h> | 136 | #include <qbuttongroup.h> |
137 | 137 | ||
138 | #include <libkdepim/categoryselectdialog.h> | 138 | #include <libkdepim/categoryselectdialog.h> |
139 | #include <libkdepim/categoryeditdialog.h> | 139 | #include <libkdepim/categoryeditdialog.h> |
140 | #include <kabc/vcardconverter.h> | 140 | #include <kabc/vcardconverter.h> |
141 | 141 | ||
142 | 142 | ||
143 | #include "addresseeutil.h" | 143 | #include "addresseeutil.h" |
144 | #include "undocmds.h" | 144 | #include "undocmds.h" |
145 | #include "addresseeeditordialog.h" | 145 | #include "addresseeeditordialog.h" |
146 | #include "viewmanager.h" | 146 | #include "viewmanager.h" |
147 | #include "details/detailsviewcontainer.h" | 147 | #include "details/detailsviewcontainer.h" |
148 | #include "kabprefs.h" | 148 | #include "kabprefs.h" |
149 | #include "xxportmanager.h" | 149 | #include "xxportmanager.h" |
150 | #include "incsearchwidget.h" | 150 | #include "incsearchwidget.h" |
151 | #include "jumpbuttonbar.h" | 151 | #include "jumpbuttonbar.h" |
152 | #include "extensionmanager.h" | 152 | #include "extensionmanager.h" |
153 | #include "addresseeconfig.h" | 153 | #include "addresseeconfig.h" |
154 | #include "nameeditdialog.h" | 154 | #include "nameeditdialog.h" |
155 | #include <kcmultidialog.h> | 155 | #include <kcmultidialog.h> |
156 | 156 | ||
157 | #ifdef _WIN32_ | 157 | #ifdef _WIN32_ |
158 | 158 | ||
159 | #include "kaimportoldialog.h" | 159 | #include "kaimportoldialog.h" |
160 | #else | 160 | #else |
161 | #include <unistd.h> | 161 | #include <unistd.h> |
162 | #endif | 162 | #endif |
163 | // sync includes | 163 | // sync includes |
164 | #include <libkdepim/ksyncprofile.h> | 164 | #include <libkdepim/ksyncprofile.h> |
165 | #include <libkdepim/ksyncprefsdialog.h> | 165 | #include <libkdepim/ksyncprefsdialog.h> |
166 | 166 | ||
167 | 167 | ||
168 | class KABCatPrefs : public QDialog | 168 | class KABCatPrefs : public QDialog |
169 | { | 169 | { |
170 | public: | 170 | public: |
171 | KABCatPrefs( QWidget *parent=0, const char *name=0 ) : | 171 | KABCatPrefs( QWidget *parent=0, const char *name=0 ) : |
172 | QDialog( parent, name, true ) | 172 | QDialog( parent, name, true ) |
173 | { | 173 | { |
174 | setCaption( i18n("Manage new Categories") ); | 174 | setCaption( i18n("Manage new Categories") ); |
175 | QVBoxLayout* lay = new QVBoxLayout( this ); | 175 | QVBoxLayout* lay = new QVBoxLayout( this ); |
176 | lay->setSpacing( 3 ); | 176 | lay->setSpacing( 3 ); |
177 | lay->setMargin( 3 ); | 177 | lay->setMargin( 3 ); |
178 | QLabel * lab = new QLabel( i18n("After importing/loading/syncing\nthere may be new categories in\naddressees\nwhich are not in the category list.\nPlease choose what to do:\n "), this ); | 178 | QLabel * lab = new QLabel( i18n("After importing/loading/syncing\nthere may be new categories in\naddressees\nwhich are not in the category list.\nPlease choose what to do:\n "), this ); |
179 | lay->addWidget( lab ); | 179 | lay->addWidget( lab ); |
180 | QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("New categories not in list:"), this ); | 180 | QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("New categories not in list:"), this ); |
181 | lay->addWidget( format ); | 181 | lay->addWidget( format ); |
182 | format->setExclusive ( true ) ; | 182 | format->setExclusive ( true ) ; |
183 | addCatBut = new QRadioButton(i18n("Add to category list"), format ); | 183 | addCatBut = new QRadioButton(i18n("Add to category list"), format ); |
184 | new QRadioButton(i18n("Remove from addressees"), format ); | 184 | new QRadioButton(i18n("Remove from addressees"), format ); |
185 | addCatBut->setChecked( true ); | 185 | addCatBut->setChecked( true ); |
186 | QPushButton * ok = new QPushButton( i18n("OK"), this ); | 186 | QPushButton * ok = new QPushButton( i18n("OK"), this ); |
187 | lay->addWidget( ok ); | 187 | lay->addWidget( ok ); |
188 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); | 188 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); |
189 | lay->addWidget( cancel ); | 189 | lay->addWidget( cancel ); |
190 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); | 190 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); |
191 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | 191 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); |
192 | resize( 200, 200 ); | 192 | resize( 200, 200 ); |
193 | } | 193 | } |
194 | 194 | ||
195 | bool addCat() { return addCatBut->isChecked(); } | 195 | bool addCat() { return addCatBut->isChecked(); } |
196 | private: | 196 | private: |
197 | QRadioButton* addCatBut; | 197 | QRadioButton* addCatBut; |
198 | }; | 198 | }; |
199 | 199 | ||
200 | class KABFormatPrefs : public QDialog | 200 | class KABFormatPrefs : public QDialog |
201 | { | 201 | { |
202 | public: | 202 | public: |
203 | KABFormatPrefs( QWidget *parent=0, const char *name=0 ) : | 203 | KABFormatPrefs( QWidget *parent=0, const char *name=0 ) : |
204 | QDialog( parent, name, true ) | 204 | QDialog( parent, name, true ) |
205 | { | 205 | { |
206 | setCaption( i18n("Set formatted name") ); | 206 | setCaption( i18n("Set formatted name") ); |
207 | QVBoxLayout* lay = new QVBoxLayout( this ); | 207 | QVBoxLayout* lay = new QVBoxLayout( this ); |
208 | lay->setSpacing( 3 ); | 208 | lay->setSpacing( 3 ); |
209 | lay->setMargin( 3 ); | 209 | lay->setMargin( 3 ); |
210 | QLabel * lab = new QLabel( i18n("You can set the formatted name\nfor a list of contacts in one go."), this ); | 210 | QLabel * lab = new QLabel( i18n("You can set the formatted name\nfor a list of contacts in one go."), this ); |
211 | lay->addWidget( lab ); | 211 | lay->addWidget( lab ); |
212 | QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("Set formatted name to:"), this ); | 212 | QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("Set formatted name to:"), this ); |
213 | lay->addWidget( format ); | 213 | lay->addWidget( format ); |
214 | format->setExclusive ( true ) ; | 214 | format->setExclusive ( true ) ; |
215 | simple = new QRadioButton(i18n("Simple: James Bond"), format ); | 215 | simple = new QRadioButton(i18n("Simple: James Bond"), format ); |
216 | full = new QRadioButton(i18n("Full: Mr. James 007 Bond I"), format ); | 216 | full = new QRadioButton(i18n("Full: Mr. James 007 Bond I"), format ); |
217 | reverse = new QRadioButton(i18n("Reverse: Bond, James"), format ); | 217 | reverse = new QRadioButton(i18n("Reverse: Bond, James"), format ); |
218 | company = new QRadioButton(i18n("Organization: MI6"), format ); | 218 | company = new QRadioButton(i18n("Organization: MI6"), format ); |
219 | simple->setChecked( true ); | 219 | simple->setChecked( true ); |
220 | setCompany = new QCheckBox(i18n("Set formatted name to\norganization, if name empty"), this); | 220 | setCompany = new QCheckBox(i18n("Set formatted name to\norganization, if name empty"), this); |
221 | lay->addWidget( setCompany ); | 221 | lay->addWidget( setCompany ); |
222 | QPushButton * ok = new QPushButton( i18n("Select contact list"), this ); | 222 | QPushButton * ok = new QPushButton( i18n("Select contact list"), this ); |
223 | lay->addWidget( ok ); | 223 | lay->addWidget( ok ); |
224 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); | 224 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); |
225 | lay->addWidget( cancel ); | 225 | lay->addWidget( cancel ); |
226 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); | 226 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); |
227 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | 227 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); |
228 | resize( 200, 200 ); | 228 | //resize( 200, 200 ); |
229 | |||
229 | } | 230 | } |
230 | public: | 231 | public: |
231 | QRadioButton* simple, *full, *reverse, *company; | 232 | QRadioButton* simple, *full, *reverse, *company; |
232 | QCheckBox* setCompany; | 233 | QCheckBox* setCompany; |
233 | }; | 234 | }; |
234 | 235 | ||
235 | 236 | ||
236 | 237 | ||
237 | class KAex2phonePrefs : public QDialog | 238 | class KAex2phonePrefs : public QDialog |
238 | { | 239 | { |
239 | public: | 240 | public: |
240 | KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) : | 241 | KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) : |
241 | QDialog( parent, name, true ) | 242 | QDialog( parent, name, true ) |
242 | { | 243 | { |
243 | setCaption( i18n("Export to phone options") ); | 244 | setCaption( i18n("Export to phone options") ); |
244 | QVBoxLayout* lay = new QVBoxLayout( this ); | 245 | QVBoxLayout* lay = new QVBoxLayout( this ); |
245 | lay->setSpacing( 3 ); | 246 | lay->setSpacing( 3 ); |
246 | lay->setMargin( 3 ); | 247 | lay->setMargin( 3 ); |
247 | QLabel *lab; | 248 | QLabel *lab; |
248 | lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); | 249 | lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); |
249 | lab->setAlignment (AlignHCenter ); | 250 | lab->setAlignment (AlignHCenter ); |
250 | QHBox* temphb; | 251 | QHBox* temphb; |
251 | temphb = new QHBox( this ); | 252 | temphb = new QHBox( this ); |
252 | new QLabel( i18n("I/O device: "), temphb ); | 253 | new QLabel( i18n("I/O device: "), temphb ); |
253 | mPhoneDevice = new QLineEdit( temphb); | 254 | mPhoneDevice = new QLineEdit( temphb); |
254 | lay->addWidget( temphb ); | 255 | lay->addWidget( temphb ); |
255 | temphb = new QHBox( this ); | 256 | temphb = new QHBox( this ); |
256 | new QLabel( i18n("Connection: "), temphb ); | 257 | new QLabel( i18n("Connection: "), temphb ); |
257 | mPhoneConnection = new QLineEdit( temphb); | 258 | mPhoneConnection = new QLineEdit( temphb); |
258 | lay->addWidget( temphb ); | 259 | lay->addWidget( temphb ); |
259 | temphb = new QHBox( this ); | 260 | temphb = new QHBox( this ); |
260 | new QLabel( i18n("Model(opt.): "), temphb ); | 261 | new QLabel( i18n("Model(opt.): "), temphb ); |
261 | mPhoneModel = new QLineEdit( temphb); | 262 | mPhoneModel = new QLineEdit( temphb); |
262 | lay->addWidget( temphb ); | 263 | lay->addWidget( temphb ); |
263 | // mWriteToSim = new QCheckBox( i18n("Write Contacts to SIM card\n(if not, write to phone memory)"), this ); | 264 | // mWriteToSim = new QCheckBox( i18n("Write Contacts to SIM card\n(if not, write to phone memory)"), this ); |
264 | // lay->addWidget( mWriteToSim ); | 265 | // lay->addWidget( mWriteToSim ); |
265 | lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ncontact data on phone!"), this ) ); | 266 | lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ncontact data on phone!"), this ) ); |
266 | lab->setAlignment (AlignHCenter); | 267 | lab->setAlignment (AlignHCenter); |
267 | QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); | 268 | QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); |
268 | lay->addWidget( ok ); | 269 | lay->addWidget( ok ); |
269 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); | 270 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); |
270 | lay->addWidget( cancel ); | 271 | lay->addWidget( cancel ); |
271 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); | 272 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); |
272 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | 273 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); |
273 | resize( 220, 240 ); | 274 | resize( 220, 240 ); |
274 | 275 | ||
275 | } | 276 | } |
276 | 277 | ||
277 | public: | 278 | public: |
278 | QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; | 279 | QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; |
279 | QCheckBox* mWriteToSim; | 280 | QCheckBox* mWriteToSim; |
280 | }; | 281 | }; |
281 | 282 | ||
282 | 283 | ||
283 | bool pasteWithNewUid = true; | 284 | bool pasteWithNewUid = true; |
284 | 285 | ||
285 | #ifdef KAB_EMBEDDED | 286 | #ifdef KAB_EMBEDDED |
286 | KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) | 287 | KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) |
287 | : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), | 288 | : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), |
288 | mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ | 289 | mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ |
289 | mReadWrite( readWrite ), mModified( false ), mMainWindow(client) | 290 | mReadWrite( readWrite ), mModified( false ), mMainWindow(client) |
290 | #else //KAB_EMBEDDED | 291 | #else //KAB_EMBEDDED |
291 | KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) | 292 | KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) |
292 | : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), | 293 | : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), |
293 | mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), | 294 | mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), |
294 | mReadWrite( readWrite ), mModified( false ) | 295 | mReadWrite( readWrite ), mModified( false ) |
295 | #endif //KAB_EMBEDDED | 296 | #endif //KAB_EMBEDDED |
296 | { | 297 | { |
297 | // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); | 298 | // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); |
298 | // syncManager->setBlockSave(false); | 299 | // syncManager->setBlockSave(false); |
299 | mMiniSplitter = 0; | 300 | mMiniSplitter = 0; |
300 | mExtensionBarSplitter = 0; | 301 | mExtensionBarSplitter = 0; |
301 | mIsPart = !parent->inherits( "KAddressBookMain" ); | 302 | mIsPart = !parent->inherits( "KAddressBookMain" ); |
302 | mAddressBook = KABC::StdAddressBook::self(); | 303 | mAddressBook = KABC::StdAddressBook::self(); |
303 | KABC::StdAddressBook::setAutomaticSave( false ); | 304 | KABC::StdAddressBook::setAutomaticSave( false ); |
304 | 305 | ||
305 | #ifndef KAB_EMBEDDED | 306 | #ifndef KAB_EMBEDDED |
306 | mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); | 307 | mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); |
307 | #endif //KAB_EMBEDDED | 308 | #endif //KAB_EMBEDDED |
308 | 309 | ||
309 | connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), | 310 | connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), |
310 | SLOT( addressBookChanged() ) ); | 311 | SLOT( addressBookChanged() ) ); |
311 | 312 | ||
312 | #if 0 | 313 | #if 0 |
313 | // LP moved to addressbook init method | 314 | // LP moved to addressbook init method |
314 | mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, | 315 | mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, |
315 | "X-Department", "KADDRESSBOOK" ); | 316 | "X-Department", "KADDRESSBOOK" ); |
316 | mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, | 317 | mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, |
317 | "X-Profession", "KADDRESSBOOK" ); | 318 | "X-Profession", "KADDRESSBOOK" ); |
318 | mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, | 319 | mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, |
319 | "X-AssistantsName", "KADDRESSBOOK" ); | 320 | "X-AssistantsName", "KADDRESSBOOK" ); |
320 | mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, | 321 | mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, |
321 | "X-ManagersName", "KADDRESSBOOK" ); | 322 | "X-ManagersName", "KADDRESSBOOK" ); |
322 | mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, | 323 | mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, |
323 | "X-SpousesName", "KADDRESSBOOK" ); | 324 | "X-SpousesName", "KADDRESSBOOK" ); |
324 | mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, | 325 | mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, |
@@ -1280,193 +1281,194 @@ void KABCore::addEmail( QString aStr ) | |||
1280 | #endif //KAB_EMBEDDED | 1281 | #endif //KAB_EMBEDDED |
1281 | } | 1282 | } |
1282 | 1283 | ||
1283 | void KABCore::importVCard( const KURL &url, bool showPreview ) | 1284 | void KABCore::importVCard( const KURL &url, bool showPreview ) |
1284 | { | 1285 | { |
1285 | mXXPortManager->importVCard( url, showPreview ); | 1286 | mXXPortManager->importVCard( url, showPreview ); |
1286 | } | 1287 | } |
1287 | void KABCore::importFromOL() | 1288 | void KABCore::importFromOL() |
1288 | { | 1289 | { |
1289 | #ifdef _WIN32_ | 1290 | #ifdef _WIN32_ |
1290 | KAImportOLdialog* idgl = new KAImportOLdialog( i18n("Import Contacts from OL"), mAddressBook, this ); | 1291 | KAImportOLdialog* idgl = new KAImportOLdialog( i18n("Import Contacts from OL"), mAddressBook, this ); |
1291 | idgl->exec(); | 1292 | idgl->exec(); |
1292 | KABC::Addressee::List list = idgl->getAddressList(); | 1293 | KABC::Addressee::List list = idgl->getAddressList(); |
1293 | if ( list.count() > 0 ) { | 1294 | if ( list.count() > 0 ) { |
1294 | KABC::Addressee::List listNew; | 1295 | KABC::Addressee::List listNew; |
1295 | KABC::Addressee::List listExisting; | 1296 | KABC::Addressee::List listExisting; |
1296 | KABC::Addressee::List::Iterator it; | 1297 | KABC::Addressee::List::Iterator it; |
1297 | KABC::AddressBook::Iterator iter; | 1298 | KABC::AddressBook::Iterator iter; |
1298 | for ( it = list.begin(); it != list.end(); ++it ) { | 1299 | for ( it = list.begin(); it != list.end(); ++it ) { |
1299 | if ( mAddressBook->findByUid((*it).uid() ).isEmpty()) | 1300 | if ( mAddressBook->findByUid((*it).uid() ).isEmpty()) |
1300 | listNew.append( (*it) ); | 1301 | listNew.append( (*it) ); |
1301 | else | 1302 | else |
1302 | listExisting.append( (*it) ); | 1303 | listExisting.append( (*it) ); |
1303 | } | 1304 | } |
1304 | if ( listExisting.count() > 0 ) | 1305 | if ( listExisting.count() > 0 ) |
1305 | KMessageBox::information( this, i18n("%1 contacts not added to addressbook\nbecause they were already in the addressbook!").arg( listExisting.count() )); | 1306 | KMessageBox::information( this, i18n("%1 contacts not added to addressbook\nbecause they were already in the addressbook!").arg( listExisting.count() )); |
1306 | if ( listNew.count() > 0 ) { | 1307 | if ( listNew.count() > 0 ) { |
1307 | pasteWithNewUid = false; | 1308 | pasteWithNewUid = false; |
1308 | pasteContacts( listNew ); | 1309 | pasteContacts( listNew ); |
1309 | pasteWithNewUid = true; | 1310 | pasteWithNewUid = true; |
1310 | } | 1311 | } |
1311 | } | 1312 | } |
1312 | delete idgl; | 1313 | delete idgl; |
1313 | #endif | 1314 | #endif |
1314 | } | 1315 | } |
1315 | 1316 | ||
1316 | void KABCore::importVCard( const QString &vCard, bool showPreview ) | 1317 | void KABCore::importVCard( const QString &vCard, bool showPreview ) |
1317 | { | 1318 | { |
1318 | mXXPortManager->importVCard( vCard, showPreview ); | 1319 | mXXPortManager->importVCard( vCard, showPreview ); |
1319 | } | 1320 | } |
1320 | 1321 | ||
1321 | //US added a second method without defaultparameter | 1322 | //US added a second method without defaultparameter |
1322 | void KABCore::editContact2() { | 1323 | void KABCore::editContact2() { |
1323 | editContact( QString::null ); | 1324 | editContact( QString::null ); |
1324 | } | 1325 | } |
1325 | 1326 | ||
1326 | void KABCore::editContact( const QString &uid ) | 1327 | void KABCore::editContact( const QString &uid ) |
1327 | { | 1328 | { |
1328 | 1329 | ||
1329 | if ( mExtensionManager->isQuickEditVisible() ) | 1330 | if ( mExtensionManager->isQuickEditVisible() ) |
1330 | return; | 1331 | return; |
1331 | 1332 | ||
1332 | // First, locate the contact entry | 1333 | // First, locate the contact entry |
1333 | QString localUID = uid; | 1334 | QString localUID = uid; |
1334 | if ( localUID.isNull() ) { | 1335 | if ( localUID.isNull() ) { |
1335 | QStringList uidList = mViewManager->selectedUids(); | 1336 | QStringList uidList = mViewManager->selectedUids(); |
1336 | if ( uidList.count() > 0 ) | 1337 | if ( uidList.count() > 0 ) |
1337 | localUID = *( uidList.at( 0 ) ); | 1338 | localUID = *( uidList.at( 0 ) ); |
1338 | } | 1339 | } |
1339 | 1340 | ||
1340 | KABC::Addressee addr = mAddressBook->findByUid( localUID ); | 1341 | KABC::Addressee addr = mAddressBook->findByUid( localUID ); |
1341 | if ( !addr.isEmpty() ) { | 1342 | if ( !addr.isEmpty() ) { |
1342 | mEditorDialog->setAddressee( addr ); | 1343 | mEditorDialog->setAddressee( addr ); |
1343 | KApplication::execDialog ( mEditorDialog ); | 1344 | KApplication::execDialog ( mEditorDialog ); |
1344 | } | 1345 | } |
1345 | } | 1346 | } |
1346 | 1347 | ||
1347 | /** | 1348 | /** |
1348 | Shows or edits the detail view for the given uid. If the uid is QString::null, | 1349 | Shows or edits the detail view for the given uid. If the uid is QString::null, |
1349 | the method will try to find a selected addressee in the view. | 1350 | the method will try to find a selected addressee in the view. |
1350 | */ | 1351 | */ |
1351 | void KABCore::executeContact( const QString &uid /*US = QString::null*/ ) | 1352 | void KABCore::executeContact( const QString &uid /*US = QString::null*/ ) |
1352 | { | 1353 | { |
1353 | if ( mMultipleViewsAtOnce ) | 1354 | if ( mMultipleViewsAtOnce ) |
1354 | { | 1355 | { |
1355 | editContact( uid ); | 1356 | editContact( uid ); |
1356 | } | 1357 | } |
1357 | else | 1358 | else |
1358 | { | 1359 | { |
1359 | setDetailsVisible( true ); | 1360 | setDetailsVisible( true ); |
1360 | mActionDetails->setChecked(true); | 1361 | mActionDetails->setChecked(true); |
1361 | } | 1362 | } |
1362 | 1363 | ||
1363 | } | 1364 | } |
1364 | 1365 | ||
1365 | void KABCore::save() | 1366 | void KABCore::save() |
1366 | { | 1367 | { |
1367 | if (syncManager->blockSave()) | 1368 | if (syncManager->blockSave()) |
1368 | return; | 1369 | return; |
1369 | if ( !mModified ) | 1370 | if ( !mModified ) |
1370 | return; | 1371 | return; |
1371 | 1372 | ||
1372 | syncManager->setBlockSave(true); | 1373 | syncManager->setBlockSave(true); |
1373 | QString text = i18n( "There was an error while attempting to save\n the " | 1374 | QString text = i18n( "There was an error while attempting to save\n the " |
1374 | "address book. Please check that some \nother application is " | 1375 | "address book. Please check that some \nother application is " |
1375 | "not using it. " ); | 1376 | "not using it. " ); |
1376 | message(i18n("Saving addressbook ... ")); | 1377 | message(i18n("Saving ... please wait! ")); |
1378 | qApp->processEvents(); | ||
1377 | #ifndef KAB_EMBEDDED | 1379 | #ifndef KAB_EMBEDDED |
1378 | KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook ); | 1380 | KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook ); |
1379 | if ( !b || !b->save() ) { | 1381 | if ( !b || !b->save() ) { |
1380 | KMessageBox::error( this, text, i18n( "Unable to Save" ) ); | 1382 | KMessageBox::error( this, text, i18n( "Unable to Save" ) ); |
1381 | } | 1383 | } |
1382 | #else //KAB_EMBEDDED | 1384 | #else //KAB_EMBEDDED |
1383 | KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook ); | 1385 | KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook ); |
1384 | if ( !b || !b->save() ) { | 1386 | if ( !b || !b->save() ) { |
1385 | QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok")); | 1387 | QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok")); |
1386 | } | 1388 | } |
1387 | #endif //KAB_EMBEDDED | 1389 | #endif //KAB_EMBEDDED |
1388 | 1390 | ||
1389 | message(i18n("Addressbook saved!")); | 1391 | message(i18n("Addressbook saved!")); |
1390 | setModified( false ); | 1392 | setModified( false ); |
1391 | syncManager->setBlockSave(false); | 1393 | syncManager->setBlockSave(false); |
1392 | } | 1394 | } |
1393 | 1395 | ||
1394 | 1396 | ||
1395 | void KABCore::undo() | 1397 | void KABCore::undo() |
1396 | { | 1398 | { |
1397 | UndoStack::instance()->undo(); | 1399 | UndoStack::instance()->undo(); |
1398 | 1400 | ||
1399 | // Refresh the view | 1401 | // Refresh the view |
1400 | mViewManager->refreshView(); | 1402 | mViewManager->refreshView(); |
1401 | } | 1403 | } |
1402 | 1404 | ||
1403 | void KABCore::redo() | 1405 | void KABCore::redo() |
1404 | { | 1406 | { |
1405 | RedoStack::instance()->redo(); | 1407 | RedoStack::instance()->redo(); |
1406 | 1408 | ||
1407 | // Refresh the view | 1409 | // Refresh the view |
1408 | mViewManager->refreshView(); | 1410 | mViewManager->refreshView(); |
1409 | } | 1411 | } |
1410 | 1412 | ||
1411 | void KABCore::setJumpButtonBarVisible( bool visible ) | 1413 | void KABCore::setJumpButtonBarVisible( bool visible ) |
1412 | { | 1414 | { |
1413 | if (mMultipleViewsAtOnce) | 1415 | if (mMultipleViewsAtOnce) |
1414 | { | 1416 | { |
1415 | if ( visible ) | 1417 | if ( visible ) |
1416 | mJumpButtonBar->show(); | 1418 | mJumpButtonBar->show(); |
1417 | else | 1419 | else |
1418 | mJumpButtonBar->hide(); | 1420 | mJumpButtonBar->hide(); |
1419 | } | 1421 | } |
1420 | else | 1422 | else |
1421 | { | 1423 | { |
1422 | // show the jumpbar only if "the details are hidden" == "viewmanager are shown" | 1424 | // show the jumpbar only if "the details are hidden" == "viewmanager are shown" |
1423 | if (mViewManager->isVisible()) | 1425 | if (mViewManager->isVisible()) |
1424 | { | 1426 | { |
1425 | if ( visible ) | 1427 | if ( visible ) |
1426 | mJumpButtonBar->show(); | 1428 | mJumpButtonBar->show(); |
1427 | else | 1429 | else |
1428 | mJumpButtonBar->hide(); | 1430 | mJumpButtonBar->hide(); |
1429 | } | 1431 | } |
1430 | else | 1432 | else |
1431 | { | 1433 | { |
1432 | mJumpButtonBar->hide(); | 1434 | mJumpButtonBar->hide(); |
1433 | } | 1435 | } |
1434 | } | 1436 | } |
1435 | } | 1437 | } |
1436 | 1438 | ||
1437 | 1439 | ||
1438 | void KABCore::setDetailsToState() | 1440 | void KABCore::setDetailsToState() |
1439 | { | 1441 | { |
1440 | setDetailsVisible( mActionDetails->isChecked() ); | 1442 | setDetailsVisible( mActionDetails->isChecked() ); |
1441 | } | 1443 | } |
1442 | void KABCore::setDetailsToggle() | 1444 | void KABCore::setDetailsToggle() |
1443 | { | 1445 | { |
1444 | mActionDetails->setChecked( !mActionDetails->isChecked() ); | 1446 | mActionDetails->setChecked( !mActionDetails->isChecked() ); |
1445 | setDetailsToState(); | 1447 | setDetailsToState(); |
1446 | } | 1448 | } |
1447 | 1449 | ||
1448 | 1450 | ||
1449 | 1451 | ||
1450 | void KABCore::setDetailsVisible( bool visible ) | 1452 | void KABCore::setDetailsVisible( bool visible ) |
1451 | { | 1453 | { |
1452 | if (visible && mDetails->isHidden()) | 1454 | if (visible && mDetails->isHidden()) |
1453 | { | 1455 | { |
1454 | KABC::Addressee::List addrList = mViewManager->selectedAddressees(); | 1456 | KABC::Addressee::List addrList = mViewManager->selectedAddressees(); |
1455 | if ( addrList.count() > 0 ) | 1457 | if ( addrList.count() > 0 ) |
1456 | mDetails->setAddressee( addrList[ 0 ] ); | 1458 | mDetails->setAddressee( addrList[ 0 ] ); |
1457 | } | 1459 | } |
1458 | 1460 | ||
1459 | // mMultipleViewsAtOnce=false: mDetails is always visible. But we switch between | 1461 | // mMultipleViewsAtOnce=false: mDetails is always visible. But we switch between |
1460 | // the listview and the detailview. We do that by changing the splitbar size. | 1462 | // the listview and the detailview. We do that by changing the splitbar size. |
1461 | if (mMultipleViewsAtOnce) | 1463 | if (mMultipleViewsAtOnce) |
1462 | { | 1464 | { |
1463 | if ( visible ) | 1465 | if ( visible ) |
1464 | mDetails->show(); | 1466 | mDetails->show(); |
1465 | else | 1467 | else |
1466 | mDetails->hide(); | 1468 | mDetails->hide(); |
1467 | } | 1469 | } |
1468 | else | 1470 | else |
1469 | { | 1471 | { |
1470 | if ( visible ) { | 1472 | if ( visible ) { |
1471 | mViewManager->hide(); | 1473 | mViewManager->hide(); |
1472 | mDetails->show(); | 1474 | mDetails->show(); |
@@ -2270,217 +2272,223 @@ void KABCore::addActionsManually() | |||
2270 | */ | 2272 | */ |
2271 | 2273 | ||
2272 | #endif //KAB_EMBEDDED | 2274 | #endif //KAB_EMBEDDED |
2273 | 2275 | ||
2274 | mActionExport2phone->plug( ExportMenu ); | 2276 | mActionExport2phone->plug( ExportMenu ); |
2275 | connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) ); | 2277 | connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) ); |
2276 | syncManager->fillSyncMenu(); | 2278 | syncManager->fillSyncMenu(); |
2277 | 2279 | ||
2278 | } | 2280 | } |
2279 | void KABCore::showLicence() | 2281 | void KABCore::showLicence() |
2280 | { | 2282 | { |
2281 | KApplication::showLicence(); | 2283 | KApplication::showLicence(); |
2282 | } | 2284 | } |
2283 | 2285 | ||
2284 | void KABCore::manageCategories( ) | 2286 | void KABCore::manageCategories( ) |
2285 | { | 2287 | { |
2286 | KABCatPrefs* cp = new KABCatPrefs(); | 2288 | KABCatPrefs* cp = new KABCatPrefs(); |
2287 | cp->show(); | 2289 | cp->show(); |
2288 | int w =cp->sizeHint().width() ; | 2290 | int w =cp->sizeHint().width() ; |
2289 | int h = cp->sizeHint().height() ; | 2291 | int h = cp->sizeHint().height() ; |
2290 | int dw = QApplication::desktop()->width(); | 2292 | int dw = QApplication::desktop()->width(); |
2291 | int dh = QApplication::desktop()->height(); | 2293 | int dh = QApplication::desktop()->height(); |
2292 | cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | 2294 | cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); |
2293 | if ( !cp->exec() ) { | 2295 | if ( !cp->exec() ) { |
2294 | delete cp; | 2296 | delete cp; |
2295 | return; | 2297 | return; |
2296 | } | 2298 | } |
2297 | int count = 0; | 2299 | int count = 0; |
2298 | message( i18n("Please wait, processing categories...")); | 2300 | message( i18n("Please wait, processing categories...")); |
2299 | if ( cp->addCat() ) { | 2301 | if ( cp->addCat() ) { |
2300 | KABC::AddressBook::Iterator it; | 2302 | KABC::AddressBook::Iterator it; |
2301 | QStringList catList = KABPrefs::instance()->mCustomCategories; | 2303 | QStringList catList = KABPrefs::instance()->mCustomCategories; |
2302 | for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { | 2304 | for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { |
2303 | QStringList catIncList = (*it).categories(); | 2305 | QStringList catIncList = (*it).categories(); |
2304 | int i; | 2306 | int i; |
2305 | for( i = 0; i< catIncList.count(); ++i ) { | 2307 | for( i = 0; i< catIncList.count(); ++i ) { |
2306 | if ( !catList.contains (catIncList[i])) { | 2308 | if ( !catList.contains (catIncList[i])) { |
2307 | catList.append( catIncList[i] ); | 2309 | catList.append( catIncList[i] ); |
2308 | //qDebug("add cat %s ", catIncList[i].latin1()); | 2310 | //qDebug("add cat %s ", catIncList[i].latin1()); |
2309 | ++count; | 2311 | ++count; |
2310 | } | 2312 | } |
2311 | } | 2313 | } |
2312 | } | 2314 | } |
2313 | catList.sort(); | 2315 | catList.sort(); |
2314 | KABPrefs::instance()->mCustomCategories = catList; | 2316 | KABPrefs::instance()->mCustomCategories = catList; |
2315 | KABPrefs::instance()->writeConfig(); | 2317 | KABPrefs::instance()->writeConfig(); |
2316 | message(QString::number( count )+ i18n(" categories added to list! ")); | 2318 | message(QString::number( count )+ i18n(" categories added to list! ")); |
2317 | } else { | 2319 | } else { |
2318 | QStringList catList = KABPrefs::instance()->mCustomCategories; | 2320 | QStringList catList = KABPrefs::instance()->mCustomCategories; |
2319 | QStringList catIncList; | 2321 | QStringList catIncList; |
2320 | QStringList newCatList; | 2322 | QStringList newCatList; |
2321 | KABC::AddressBook::Iterator it; | 2323 | KABC::AddressBook::Iterator it; |
2322 | for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { | 2324 | for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { |
2323 | QStringList catIncList = (*it).categories(); | 2325 | QStringList catIncList = (*it).categories(); |
2324 | int i; | 2326 | int i; |
2325 | if ( catIncList.count() ) { | 2327 | if ( catIncList.count() ) { |
2326 | newCatList.clear(); | 2328 | newCatList.clear(); |
2327 | for( i = 0; i< catIncList.count(); ++i ) { | 2329 | for( i = 0; i< catIncList.count(); ++i ) { |
2328 | if ( catList.contains (catIncList[i])) { | 2330 | if ( catList.contains (catIncList[i])) { |
2329 | newCatList.append( catIncList[i] ); | 2331 | newCatList.append( catIncList[i] ); |
2330 | } | 2332 | } |
2331 | } | 2333 | } |
2332 | newCatList.sort(); | 2334 | newCatList.sort(); |
2333 | (*it).setCategories( newCatList ); | 2335 | (*it).setCategories( newCatList ); |
2334 | mAddressBook->insertAddressee( (*it) ); | 2336 | mAddressBook->insertAddressee( (*it) ); |
2335 | } | 2337 | } |
2336 | } | 2338 | } |
2337 | setModified( true ); | 2339 | setModified( true ); |
2338 | mViewManager->refreshView(); | 2340 | mViewManager->refreshView(); |
2339 | message( i18n("Removing categories done!")); | 2341 | message( i18n("Removing categories done!")); |
2340 | } | 2342 | } |
2341 | delete cp; | 2343 | delete cp; |
2342 | } | 2344 | } |
2343 | void KABCore::removeVoice() | 2345 | void KABCore::removeVoice() |
2344 | { | 2346 | { |
2345 | 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 ) | 2347 | 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 ) |
2346 | return; | 2348 | return; |
2347 | KABC::Addressee::List list; | 2349 | KABC::Addressee::List list; |
2348 | XXPortSelectDialog dlg( this, false, this ); | 2350 | XXPortSelectDialog dlg( this, false, this ); |
2349 | if ( dlg.exec() ) | 2351 | if ( dlg.exec() ) |
2350 | list = dlg.contacts(); | 2352 | list = dlg.contacts(); |
2351 | else | 2353 | else |
2352 | return; | 2354 | return; |
2353 | KABC::Addressee::List::Iterator it; | 2355 | KABC::Addressee::List::Iterator it; |
2354 | for ( it = list.begin(); it != list.end(); ++it ) { | 2356 | for ( it = list.begin(); it != list.end(); ++it ) { |
2355 | if ( (*it).removeVoice() ) | 2357 | if ( (*it).removeVoice() ) |
2356 | addrModified((*it), false ); | 2358 | addrModified((*it), false ); |
2357 | } | 2359 | } |
2358 | } | 2360 | } |
2359 | 2361 | ||
2360 | void KABCore::setFormattedName() | 2362 | void KABCore::setFormattedName() |
2361 | { | 2363 | { |
2362 | KABFormatPrefs setpref; | 2364 | KABFormatPrefs setpref; |
2363 | if ( !setpref.exec() ) { | 2365 | if ( !setpref.exec() ) { |
2364 | return; | 2366 | return; |
2365 | } | 2367 | } |
2366 | KABC::Addressee::List list; | ||
2367 | XXPortSelectDialog dlg( this, false, this ); | 2368 | XXPortSelectDialog dlg( this, false, this ); |
2368 | if ( dlg.exec() ) | 2369 | if ( !dlg.exec() ) |
2369 | list = dlg.contacts(); | ||
2370 | else | ||
2371 | return; | 2370 | return; |
2372 | KABC::Addressee::List::Iterator it; | 2371 | mAddressBook->setUntagged(); |
2373 | for ( it = list.begin(); it != list.end(); ++it ) { | 2372 | dlg.tagSelected(); |
2374 | QString fName; | 2373 | int count = 0; |
2375 | if ( setpref.simple->isChecked() ) | 2374 | KABC::AddressBook::Iterator it; |
2376 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::SimpleName ); | 2375 | for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { |
2377 | else if ( setpref.full->isChecked() ) | 2376 | if ( (*it).tagged() ) { |
2378 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::FullName ); | 2377 | message(i18n("Changing contact #%1").arg( ++count ) ); |
2379 | else if ( setpref.reverse->isChecked() ) | 2378 | qApp->processEvents(); |
2380 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::ReverseName ); | 2379 | QString fName; |
2381 | else | 2380 | if ( setpref.simple->isChecked() ) |
2382 | fName = (*it).organization(); | 2381 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::SimpleName ); |
2383 | if ( setpref.setCompany->isChecked() ) | 2382 | else if ( setpref.full->isChecked() ) |
2384 | if ( fName.isEmpty() || fName =="," ) | 2383 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::FullName ); |
2384 | else if ( setpref.reverse->isChecked() ) | ||
2385 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::ReverseName ); | ||
2386 | else | ||
2385 | fName = (*it).organization(); | 2387 | fName = (*it).organization(); |
2386 | (*it).setFormattedName( fName ); | 2388 | if ( setpref.setCompany->isChecked() ) |
2387 | addrModified((*it),false ); | 2389 | if ( fName.isEmpty() || fName =="," ) |
2390 | fName = (*it).organization(); | ||
2391 | (*it).setFormattedName( fName ); | ||
2392 | } | ||
2388 | } | 2393 | } |
2394 | message(i18n("Refreshing view...") ); | ||
2395 | mViewManager->refreshView( "" ); | ||
2389 | Addressee add; | 2396 | Addressee add; |
2390 | mDetails->setAddressee( add ); | 2397 | mDetails->setAddressee( add ); |
2398 | message(i18n("Setting formatted name completed!") ); | ||
2391 | } | 2399 | } |
2392 | 2400 | ||
2393 | void KABCore::clipboardDataChanged() | 2401 | void KABCore::clipboardDataChanged() |
2394 | { | 2402 | { |
2395 | 2403 | ||
2396 | if ( mReadWrite ) | 2404 | if ( mReadWrite ) |
2397 | mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); | 2405 | mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); |
2398 | 2406 | ||
2399 | } | 2407 | } |
2400 | 2408 | ||
2401 | void KABCore::updateActionMenu() | 2409 | void KABCore::updateActionMenu() |
2402 | { | 2410 | { |
2403 | UndoStack *undo = UndoStack::instance(); | 2411 | UndoStack *undo = UndoStack::instance(); |
2404 | RedoStack *redo = RedoStack::instance(); | 2412 | RedoStack *redo = RedoStack::instance(); |
2405 | 2413 | ||
2406 | if ( undo->isEmpty() ) | 2414 | if ( undo->isEmpty() ) |
2407 | mActionUndo->setText( i18n( "Undo" ) ); | 2415 | mActionUndo->setText( i18n( "Undo" ) ); |
2408 | else | 2416 | else |
2409 | mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) ); | 2417 | mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) ); |
2410 | 2418 | ||
2411 | mActionUndo->setEnabled( !undo->isEmpty() ); | 2419 | mActionUndo->setEnabled( !undo->isEmpty() ); |
2412 | 2420 | ||
2413 | if ( !redo->top() ) | 2421 | if ( !redo->top() ) |
2414 | mActionRedo->setText( i18n( "Redo" ) ); | 2422 | mActionRedo->setText( i18n( "Redo" ) ); |
2415 | else | 2423 | else |
2416 | mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) ); | 2424 | mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) ); |
2417 | 2425 | ||
2418 | mActionRedo->setEnabled( !redo->isEmpty() ); | 2426 | mActionRedo->setEnabled( !redo->isEmpty() ); |
2419 | } | 2427 | } |
2420 | 2428 | ||
2421 | void KABCore::configureKeyBindings() | 2429 | void KABCore::configureKeyBindings() |
2422 | { | 2430 | { |
2423 | #ifndef KAB_EMBEDDED | 2431 | #ifndef KAB_EMBEDDED |
2424 | KKeyDialog::configure( actionCollection(), true ); | 2432 | KKeyDialog::configure( actionCollection(), true ); |
2425 | #else //KAB_EMBEDDED | 2433 | #else //KAB_EMBEDDED |
2426 | qDebug("KABCore::configureKeyBindings() not implemented"); | 2434 | qDebug("KABCore::configureKeyBindings() not implemented"); |
2427 | #endif //KAB_EMBEDDED | 2435 | #endif //KAB_EMBEDDED |
2428 | } | 2436 | } |
2429 | 2437 | ||
2430 | #ifdef KAB_EMBEDDED | 2438 | #ifdef KAB_EMBEDDED |
2431 | void KABCore::configureResources() | 2439 | void KABCore::configureResources() |
2432 | { | 2440 | { |
2433 | KRES::KCMKResources dlg( this, "" , 0 ); | 2441 | KRES::KCMKResources dlg( this, "" , 0 ); |
2434 | 2442 | ||
2435 | if ( !dlg.exec() ) | 2443 | if ( !dlg.exec() ) |
2436 | return; | 2444 | return; |
2437 | KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); | 2445 | KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); |
2438 | } | 2446 | } |
2439 | #endif //KAB_EMBEDDED | 2447 | #endif //KAB_EMBEDDED |
2440 | 2448 | ||
2441 | 2449 | ||
2442 | /* this method will be called through the QCop interface from Ko/Pi to select addresses | 2450 | /* this method will be called through the QCop interface from Ko/Pi to select addresses |
2443 | * for the attendees list of an event. | 2451 | * for the attendees list of an event. |
2444 | */ | 2452 | */ |
2445 | void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) | 2453 | void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) |
2446 | { | 2454 | { |
2447 | QStringList nameList; | 2455 | QStringList nameList; |
2448 | QStringList emailList; | 2456 | QStringList emailList; |
2449 | QStringList uidList; | 2457 | QStringList uidList; |
2450 | 2458 | ||
2451 | KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); | 2459 | KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); |
2452 | uint i=0; | 2460 | uint i=0; |
2453 | for (i=0; i < list.count(); i++) | 2461 | for (i=0; i < list.count(); i++) |
2454 | { | 2462 | { |
2455 | nameList.append(list[i].realName()); | 2463 | nameList.append(list[i].realName()); |
2456 | emailList.append(list[i].preferredEmail()); | 2464 | emailList.append(list[i].preferredEmail()); |
2457 | uidList.append(list[i].uid()); | 2465 | uidList.append(list[i].uid()); |
2458 | } | 2466 | } |
2459 | 2467 | ||
2460 | bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList); | 2468 | bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList); |
2461 | 2469 | ||
2462 | } | 2470 | } |
2463 | 2471 | ||
2464 | /* this method will be called through the QCop interface from Ko/Pi to select birthdays | 2472 | /* this method will be called through the QCop interface from Ko/Pi to select birthdays |
2465 | * to put them into the calendar. | 2473 | * to put them into the calendar. |
2466 | */ | 2474 | */ |
2467 | void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid) | 2475 | void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid) |
2468 | { | 2476 | { |
2469 | // qDebug("KABCore::requestForBirthdayList"); | 2477 | // qDebug("KABCore::requestForBirthdayList"); |
2470 | QStringList birthdayList; | 2478 | QStringList birthdayList; |
2471 | QStringList anniversaryList; | 2479 | QStringList anniversaryList; |
2472 | QStringList realNameList; | 2480 | QStringList realNameList; |
2473 | QStringList preferredEmailList; | 2481 | QStringList preferredEmailList; |
2474 | QStringList assembledNameList; | 2482 | QStringList assembledNameList; |
2475 | QStringList uidList; | 2483 | QStringList uidList; |
2476 | 2484 | ||
2477 | KABC::AddressBook::Iterator it; | 2485 | KABC::AddressBook::Iterator it; |
2478 | 2486 | ||
2479 | int count = 0; | 2487 | int count = 0; |
2480 | for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { | 2488 | for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { |
2481 | ++count; | 2489 | ++count; |
2482 | } | 2490 | } |
2483 | QProgressBar bar(count,0 ); | 2491 | QProgressBar bar(count,0 ); |
2484 | int w = 300; | 2492 | int w = 300; |
2485 | if ( QApplication::desktop()->width() < 320 ) | 2493 | if ( QApplication::desktop()->width() < 320 ) |
2486 | w = 220; | 2494 | w = 220; |
@@ -3113,164 +3121,164 @@ bool KABCore::sync(KSyncManager* manager, QString filename, int mode) | |||
3113 | AddressBook abLocal(filename,"syncContact"); | 3121 | AddressBook abLocal(filename,"syncContact"); |
3114 | bool syncOK = false; | 3122 | bool syncOK = false; |
3115 | if ( abLocal.load() ) { | 3123 | if ( abLocal.load() ) { |
3116 | qDebug("AB loaded %s,sync mode %d",filename.latin1(), mode ); | 3124 | qDebug("AB loaded %s,sync mode %d",filename.latin1(), mode ); |
3117 | bool external = false; | 3125 | bool external = false; |
3118 | bool isXML = false; | 3126 | bool isXML = false; |
3119 | if ( filename.right(4) == ".xml") { | 3127 | if ( filename.right(4) == ".xml") { |
3120 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; | 3128 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; |
3121 | isXML = true; | 3129 | isXML = true; |
3122 | abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true ); | 3130 | abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true ); |
3123 | } else { | 3131 | } else { |
3124 | external = !manager->mIsKapiFile; | 3132 | external = !manager->mIsKapiFile; |
3125 | if ( external ) { | 3133 | if ( external ) { |
3126 | qDebug("Setting vcf mode to external "); | 3134 | qDebug("Setting vcf mode to external "); |
3127 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; | 3135 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; |
3128 | AddressBook::Iterator it; | 3136 | AddressBook::Iterator it; |
3129 | for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { | 3137 | for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { |
3130 | (*it).setID( mCurrentSyncDevice, (*it).uid() ); | 3138 | (*it).setID( mCurrentSyncDevice, (*it).uid() ); |
3131 | (*it).computeCsum( mCurrentSyncDevice ); | 3139 | (*it).computeCsum( mCurrentSyncDevice ); |
3132 | } | 3140 | } |
3133 | } | 3141 | } |
3134 | } | 3142 | } |
3135 | //AddressBook::Iterator it; | 3143 | //AddressBook::Iterator it; |
3136 | //QStringList vcards; | 3144 | //QStringList vcards; |
3137 | //for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { | 3145 | //for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { |
3138 | // qDebug("Name %s ", (*it).familyName().latin1()); | 3146 | // qDebug("Name %s ", (*it).familyName().latin1()); |
3139 | //} | 3147 | //} |
3140 | syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode ); | 3148 | syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode ); |
3141 | if ( syncOK ) { | 3149 | if ( syncOK ) { |
3142 | if ( syncManager->mWriteBackFile ) | 3150 | if ( syncManager->mWriteBackFile ) |
3143 | { | 3151 | { |
3144 | if ( external ) | 3152 | if ( external ) |
3145 | abLocal.removeSyncAddressees( !isXML); | 3153 | abLocal.removeSyncAddressees( !isXML); |
3146 | qDebug("Saving remote AB "); | 3154 | qDebug("Saving remote AB "); |
3147 | if ( ! abLocal.saveAB()) | 3155 | if ( ! abLocal.saveAB()) |
3148 | qDebug("Error writing back AB to file "); | 3156 | qDebug("Error writing back AB to file "); |
3149 | if ( external ) { | 3157 | if ( external ) { |
3150 | // afterwrite processing | 3158 | // afterwrite processing |
3151 | abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ,isXML); | 3159 | abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ,isXML); |
3152 | } | 3160 | } |
3153 | } | 3161 | } |
3154 | } | 3162 | } |
3155 | setModified(); | 3163 | setModified(); |
3156 | 3164 | ||
3157 | } | 3165 | } |
3158 | abLocal.removeResources(); | 3166 | abLocal.removeResources(); |
3159 | if ( syncOK ) | 3167 | if ( syncOK ) |
3160 | mViewManager->refreshView(); | 3168 | mViewManager->refreshView(); |
3161 | return syncOK; | 3169 | return syncOK; |
3162 | 3170 | ||
3163 | } | 3171 | } |
3164 | void KABCore::removeSyncInfo( QString syncProfile) | 3172 | void KABCore::removeSyncInfo( QString syncProfile) |
3165 | { | 3173 | { |
3166 | qDebug("AB:removeSyncInfo for profile %s ", syncProfile.latin1()); | 3174 | qDebug("AB:removeSyncInfo for profile %s ", syncProfile.latin1()); |
3167 | mAddressBook->removeSyncInfo( syncProfile ); | 3175 | mAddressBook->removeSyncInfo( syncProfile ); |
3168 | setModified(); | 3176 | setModified(); |
3169 | } | 3177 | } |
3170 | 3178 | ||
3171 | 3179 | ||
3172 | //this is a overwritten callbackmethods from the syncinterface | 3180 | //this is a overwritten callbackmethods from the syncinterface |
3173 | bool KABCore::syncExternal(KSyncManager* manager, QString resource) | 3181 | bool KABCore::syncExternal(KSyncManager* manager, QString resource) |
3174 | { | 3182 | { |
3175 | if ( resource == "phone" ) | 3183 | if ( resource == "phone" ) |
3176 | return syncPhone(); | 3184 | return syncPhone(); |
3177 | disableBR( true ); | 3185 | disableBR( true ); |
3178 | if ( manager != syncManager ) | 3186 | if ( manager != syncManager ) |
3179 | qDebug("KABCore::syncExternal:: ERROR! :: manager != syncManager "); | 3187 | qDebug("KABCore::syncExternal:: ERROR! :: manager != syncManager "); |
3180 | QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); | 3188 | QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); |
3181 | 3189 | ||
3182 | AddressBook abLocal( resource,"syncContact"); | 3190 | AddressBook abLocal( resource,"syncContact"); |
3183 | bool syncOK = false; | 3191 | bool syncOK = false; |
3184 | if ( abLocal.load() ) { | 3192 | if ( abLocal.load() ) { |
3185 | qDebug("AB sharp loaded ,sync device %s",mCurrentSyncDevice.latin1()); | 3193 | qDebug("AB sharp loaded ,sync device %s",mCurrentSyncDevice.latin1()); |
3186 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; | 3194 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; |
3187 | abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, false ); | 3195 | abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, false ); |
3188 | syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs ); | 3196 | syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs ); |
3189 | if ( syncOK ) { | 3197 | if ( syncOK ) { |
3190 | if ( syncManager->mWriteBackFile ) { | 3198 | if ( syncManager->mWriteBackFile ) { |
3191 | abLocal.removeSyncAddressees( false ); | 3199 | abLocal.removeSyncAddressees( false ); |
3192 | abLocal.saveAB(); | 3200 | abLocal.saveAB(); |
3193 | abLocal.postExternSync( mAddressBook,mCurrentSyncDevice, true ); | 3201 | abLocal.postExternSync( mAddressBook,mCurrentSyncDevice, true ); |
3194 | } | 3202 | } |
3195 | } else | 3203 | } else |
3196 | message( i18n("Sync cancelled or failed.") ); | 3204 | message( i18n("Sync cancelled or failed.") ); |
3197 | setModified(); | 3205 | setModified(); |
3198 | } | 3206 | } |
3199 | abLocal.removeResources(); | 3207 | abLocal.removeResources(); |
3200 | if ( syncOK ) | 3208 | if ( syncOK ) |
3201 | mViewManager->refreshView(); | 3209 | mViewManager->refreshView(); |
3202 | disableBR( false ); | 3210 | disableBR( false ); |
3203 | return syncOK; | 3211 | return syncOK; |
3204 | 3212 | ||
3205 | } | 3213 | } |
3206 | void KABCore::message( QString m ) | 3214 | void KABCore::message( QString m ) |
3207 | { | 3215 | { |
3208 | topLevelWidget()->setCaption( m ); | 3216 | topLevelWidget()->setCaption( m ); |
3209 | mMessageTimer->start( 15000, true ); | 3217 | mMessageTimer->start( 20000, true ); |
3210 | } | 3218 | } |
3211 | bool KABCore::syncPhone() | 3219 | bool KABCore::syncPhone() |
3212 | { | 3220 | { |
3213 | QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); | 3221 | QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); |
3214 | QString fileName = getPhoneFile(); | 3222 | QString fileName = getPhoneFile(); |
3215 | if ( !PhoneAccess::readFromPhone( fileName) ) { | 3223 | if ( !PhoneAccess::readFromPhone( fileName) ) { |
3216 | message(i18n("Phone access failed!")); | 3224 | message(i18n("Phone access failed!")); |
3217 | return false; | 3225 | return false; |
3218 | } | 3226 | } |
3219 | AddressBook abLocal( fileName,"syncContact"); | 3227 | AddressBook abLocal( fileName,"syncContact"); |
3220 | bool syncOK = false; | 3228 | bool syncOK = false; |
3221 | { | 3229 | { |
3222 | abLocal.importFromFile( fileName ); | 3230 | abLocal.importFromFile( fileName ); |
3223 | qDebug("AB phone loaded ,sync device %s",mCurrentSyncDevice.latin1()); | 3231 | qDebug("AB phone loaded ,sync device %s",mCurrentSyncDevice.latin1()); |
3224 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; | 3232 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; |
3225 | abLocal.preparePhoneSync( mCurrentSyncDevice, true ); | 3233 | abLocal.preparePhoneSync( mCurrentSyncDevice, true ); |
3226 | abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true ); | 3234 | abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true ); |
3227 | syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs ); | 3235 | syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs ); |
3228 | if ( syncOK ) { | 3236 | if ( syncOK ) { |
3229 | if ( syncManager->mWriteBackFile ) { | 3237 | if ( syncManager->mWriteBackFile ) { |
3230 | abLocal.removeSyncAddressees( true ); | 3238 | abLocal.removeSyncAddressees( true ); |
3231 | abLocal.saveABphone( fileName ); | 3239 | abLocal.saveABphone( fileName ); |
3232 | abLocal.findNewExtIds( fileName, mCurrentSyncDevice ); | 3240 | abLocal.findNewExtIds( fileName, mCurrentSyncDevice ); |
3233 | //abLocal.preparePhoneSync( mCurrentSyncDevice, false ); | 3241 | //abLocal.preparePhoneSync( mCurrentSyncDevice, false ); |
3234 | abLocal.postExternSync( mAddressBook,mCurrentSyncDevice, true ); | 3242 | abLocal.postExternSync( mAddressBook,mCurrentSyncDevice, true ); |
3235 | } | 3243 | } |
3236 | } | 3244 | } |
3237 | setModified(); | 3245 | setModified(); |
3238 | } | 3246 | } |
3239 | abLocal.removeResources(); | 3247 | abLocal.removeResources(); |
3240 | if ( syncOK ) | 3248 | if ( syncOK ) |
3241 | mViewManager->refreshView(); | 3249 | mViewManager->refreshView(); |
3242 | return syncOK; | 3250 | return syncOK; |
3243 | } | 3251 | } |
3244 | void KABCore::getFile( bool success ) | 3252 | void KABCore::getFile( bool success ) |
3245 | { | 3253 | { |
3246 | if ( ! success ) { | 3254 | if ( ! success ) { |
3247 | message( i18n("Error receiving file. Nothing changed!") ); | 3255 | message( i18n("Error receiving file. Nothing changed!") ); |
3248 | return; | 3256 | return; |
3249 | } | 3257 | } |
3250 | int count = mAddressBook->importFromFile( sentSyncFile() , false, true ); | 3258 | int count = mAddressBook->importFromFile( sentSyncFile() , false, true ); |
3251 | if ( count ) | 3259 | if ( count ) |
3252 | setModified( true ); | 3260 | setModified( true ); |
3253 | message( i18n("Pi-Sync successful!") ); | 3261 | message( i18n("Pi-Sync successful!") ); |
3254 | mViewManager->refreshView(); | 3262 | mViewManager->refreshView(); |
3255 | } | 3263 | } |
3256 | void KABCore::syncFileRequest() | 3264 | void KABCore::syncFileRequest() |
3257 | { | 3265 | { |
3258 | if ( KABPrefs::instance()->mPassiveSyncWithDesktop ) { | 3266 | if ( KABPrefs::instance()->mPassiveSyncWithDesktop ) { |
3259 | syncManager->slotSyncMenu( 999 ); | 3267 | syncManager->slotSyncMenu( 999 ); |
3260 | } | 3268 | } |
3261 | mAddressBook->export2File( sentSyncFile() ); | 3269 | mAddressBook->export2File( sentSyncFile() ); |
3262 | } | 3270 | } |
3263 | QString KABCore::sentSyncFile() | 3271 | QString KABCore::sentSyncFile() |
3264 | { | 3272 | { |
3265 | #ifdef DESKTOP_VERSION | 3273 | #ifdef DESKTOP_VERSION |
3266 | return locateLocal( "tmp", "copysyncab.vcf" ); | 3274 | return locateLocal( "tmp", "copysyncab.vcf" ); |
3267 | #else | 3275 | #else |
3268 | return QString( "/tmp/copysyncab.vcf" ); | 3276 | return QString( "/tmp/copysyncab.vcf" ); |
3269 | #endif | 3277 | #endif |
3270 | } | 3278 | } |
3271 | 3279 | ||
3272 | void KABCore::setCaptionBack() | 3280 | void KABCore::setCaptionBack() |
3273 | { | 3281 | { |
3274 | mMessageTimer->stop(); | 3282 | mMessageTimer->stop(); |
3275 | topLevelWidget()->setCaption( i18n("KAddressbook/Pi") ); | 3283 | topLevelWidget()->setCaption( i18n("KAddressbook/Pi") ); |
3276 | } | 3284 | } |
diff --git a/kaddressbook/xxportselectdialog.cpp b/kaddressbook/xxportselectdialog.cpp index 6282453..e7bc8c0 100644 --- a/kaddressbook/xxportselectdialog.cpp +++ b/kaddressbook/xxportselectdialog.cpp | |||
@@ -1,294 +1,334 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KAddressBook. | 2 | This file is part of KAddressBook. |
3 | Copyright (c) 2002 Anders Lund <anders.lund@lund.tdcadsl.dk> | 3 | Copyright (c) 2002 Anders Lund <anders.lund@lund.tdcadsl.dk> |
4 | Tobias Koenig <tokoe@kde.org> | 4 | Tobias Koenig <tokoe@kde.org> |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify | 6 | This program is free software; you can redistribute it and/or modify |
7 | it under the terms of the GNU General Public License as published by | 7 | it under the terms of the GNU General Public License as published by |
8 | the Free Software Foundation; either version 2 of the License, or | 8 | the Free Software Foundation; either version 2 of the License, or |
9 | (at your option) any later version. | 9 | (at your option) any later version. |
10 | 10 | ||
11 | This program is distributed in the hope that it will be useful, | 11 | This program is distributed in the hope that it will be useful, |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | GNU General Public License for more details. | 14 | GNU General Public License for more details. |
15 | 15 | ||
16 | You should have received a copy of the GNU General Public License | 16 | You should have received a copy of the GNU General Public License |
17 | along with this program; if not, write to the Free Software | 17 | along with this program; if not, write to the Free Software |
18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
19 | 19 | ||
20 | As a special exception, permission is given to link this program | 20 | As a special exception, permission is given to link this program |
21 | with any edition of Qt, and distribute the resulting executable, | 21 | with any edition of Qt, and distribute the resulting executable, |
22 | without including the source code for Qt in the source distribution. | 22 | without including the source code for Qt in the source distribution. |
23 | */ | 23 | */ |
24 | 24 | ||
25 | /* | 25 | /* |
26 | Enhanced Version of the file for platform independent KDE tools. | 26 | Enhanced Version of the file for platform independent KDE tools. |
27 | Copyright (c) 2004 Ulf Schenk | 27 | Copyright (c) 2004 Ulf Schenk |
28 | 28 | ||
29 | $Id$ | 29 | $Id$ |
30 | */ | 30 | */ |
31 | 31 | ||
32 | #include <kabc/addressbook.h> | 32 | #include <kabc/addressbook.h> |
33 | #include <kapplication.h> | 33 | #include <kapplication.h> |
34 | #include <kcombobox.h> | 34 | #include <kcombobox.h> |
35 | #include <klocale.h> | 35 | #include <klocale.h> |
36 | #include <kglobal.h> | 36 | #include <kglobal.h> |
37 | 37 | ||
38 | #include <qapplication.h> | 38 | #include <qapplication.h> |
39 | #include <qbuttongroup.h> | 39 | #include <qbuttongroup.h> |
40 | #include <qcombobox.h> | 40 | #include <qcombobox.h> |
41 | #include <qheader.h> | 41 | #include <qheader.h> |
42 | #include <qlabel.h> | 42 | #include <qlabel.h> |
43 | #include <qlayout.h> | 43 | #include <qlayout.h> |
44 | #include <qlistview.h> | 44 | #include <qlistview.h> |
45 | #include <qpushbutton.h> | 45 | #include <qpushbutton.h> |
46 | #include <qradiobutton.h> | 46 | #include <qradiobutton.h> |
47 | #include <qstringlist.h> | 47 | #include <qstringlist.h> |
48 | #include <qwhatsthis.h> | 48 | #include <qwhatsthis.h> |
49 | 49 | ||
50 | #include "kabcore.h" | 50 | #include "kabcore.h" |
51 | #include "kabprefs.h" | 51 | #include "kabprefs.h" |
52 | 52 | ||
53 | #include "xxportselectdialog.h" | 53 | #include "xxportselectdialog.h" |
54 | 54 | ||
55 | XXPortSelectDialog::XXPortSelectDialog( KABCore *core, bool sort, | 55 | XXPortSelectDialog::XXPortSelectDialog( KABCore *core, bool sort, |
56 | QWidget* parent, const char* name ) | 56 | QWidget* parent, const char* name ) |
57 | : KDialogBase( Plain, i18n( "Choose which contacts to select" ), Help | Ok | Cancel, | 57 | : KDialogBase( Plain, i18n( "Choose contact selection" ), Help | Ok | Cancel, |
58 | Ok, parent, name, true, true ), mCore( core ), | 58 | Ok, parent, name, true, true ), mCore( core ), |
59 | mUseSorting( sort ) | 59 | mUseSorting( sort ) |
60 | { | 60 | { |
61 | initGUI(); | 61 | initGUI(); |
62 | 62 | ||
63 | connect( mFiltersCombo, SIGNAL( activated( int ) ), | 63 | connect( mFiltersCombo, SIGNAL( activated( int ) ), |
64 | SLOT( filterChanged( int ) ) ); | 64 | SLOT( filterChanged( int ) ) ); |
65 | connect( mCategoriesView, SIGNAL( clicked( QListViewItem* ) ), | 65 | connect( mCategoriesView, SIGNAL( clicked( QListViewItem* ) ), |
66 | SLOT( categoryClicked( QListViewItem* ) ) ); | 66 | SLOT( categoryClicked( QListViewItem* ) ) ); |
67 | 67 | ||
68 | // setup filters | 68 | // setup filters |
69 | #ifndef KAB_EMBEDDED | 69 | #ifndef KAB_EMBEDDED |
70 | mFilters = Filter::restore( kapp->config(), "Filter" ); | 70 | mFilters = Filter::restore( kapp->config(), "Filter" ); |
71 | Filter::List::iterator filterIt; | 71 | Filter::List::iterator filterIt; |
72 | #else //KAB_EMBEDDED | 72 | #else //KAB_EMBEDDED |
73 | mFilters = Filter::restore( KGlobal::config(), "Filter" ); | 73 | mFilters = Filter::restore( KGlobal::config(), "Filter" ); |
74 | Filter::List::Iterator filterIt; | 74 | Filter::List::Iterator filterIt; |
75 | #endif //KAB_EMBEDDED | 75 | #endif //KAB_EMBEDDED |
76 | QStringList filters; | 76 | QStringList filters; |
77 | for ( filterIt = mFilters.begin(); filterIt != mFilters.end(); ++filterIt ) | 77 | for ( filterIt = mFilters.begin(); filterIt != mFilters.end(); ++filterIt ) |
78 | filters.append( (*filterIt).name() ); | 78 | filters.append( (*filterIt).name() ); |
79 | 79 | ||
80 | mFiltersCombo->insertStringList( filters ); | 80 | mFiltersCombo->insertStringList( filters ); |
81 | mUseFilters->setEnabled( filters.count() > 0 ); | 81 | mUseFilters->setEnabled( filters.count() > 0 ); |
82 | 82 | ||
83 | // setup categories | 83 | // setup categories |
84 | QStringList categories = KABPrefs::instance()->mCustomCategories; | 84 | QStringList categories = KABPrefs::instance()->mCustomCategories; |
85 | QStringList::Iterator it; | 85 | QStringList::Iterator it; |
86 | for ( it = categories.begin(); it != categories.end(); ++it ) | 86 | for ( it = categories.begin(); it != categories.end(); ++it ) |
87 | new QCheckListItem( mCategoriesView, *it, QCheckListItem::CheckBox ); | 87 | new QCheckListItem( mCategoriesView, *it, QCheckListItem::CheckBox ); |
88 | mUseCategories->setEnabled( categories.count() > 0 ); | 88 | mUseCategories->setEnabled( categories.count() > 0 ); |
89 | 89 | ||
90 | int count = mCore->selectedUIDs().count(); | 90 | int count = mCore->selectedUIDs().count(); |
91 | mUseSelection->setEnabled( count != 0 ); | 91 | mUseSelection->setEnabled( count != 0 ); |
92 | mUseSelection->setChecked( count > 1 ); | 92 | mUseSelection->setChecked( count > 1 ); |
93 | 93 | ||
94 | mSortTypeCombo->insertItem( i18n( "Ascending" ) ); | 94 | mSortTypeCombo->insertItem( i18n( "Ascending" ) ); |
95 | mSortTypeCombo->insertItem( i18n( "Descending" ) ); | 95 | mSortTypeCombo->insertItem( i18n( "Descending" ) ); |
96 | 96 | ||
97 | mFields = mCore->addressBook()->fields( KABC::Field::All ); | 97 | mFields = mCore->addressBook()->fields( KABC::Field::All ); |
98 | KABC::Field::List::Iterator fieldIt; | 98 | KABC::Field::List::Iterator fieldIt; |
99 | for ( fieldIt = mFields.begin(); fieldIt != mFields.end(); ++fieldIt ) | 99 | for ( fieldIt = mFields.begin(); fieldIt != mFields.end(); ++fieldIt ) |
100 | mFieldCombo->insertItem( (*fieldIt)->label() ); | 100 | mFieldCombo->insertItem( (*fieldIt)->label() ); |
101 | } | 101 | } |
102 | 102 | ||
103 | QStringList XXPortSelectDialog::uids() | 103 | QStringList XXPortSelectDialog::uids() |
104 | { | 104 | { |
105 | QStringList uidlist; | 105 | QStringList uidlist; |
106 | KABC::AddresseeList list = contacts(); | 106 | KABC::AddresseeList list = contacts(); |
107 | KABC::Addressee::List::Iterator it; | 107 | KABC::Addressee::List::Iterator it; |
108 | for ( it = list.begin(); it != list.end(); ++it ) | 108 | for ( it = list.begin(); it != list.end(); ++it ) |
109 | uidlist.append((*it).uid()); | 109 | uidlist.append((*it).uid()); |
110 | return uidlist; | 110 | return uidlist; |
111 | } | 111 | } |
112 | void XXPortSelectDialog::tagSelected() | ||
113 | { | ||
114 | if ( mUseSelection->isChecked() ) { | ||
115 | |||
116 | QStringList selection = mCore->selectedUIDs(); | ||
117 | KABC::AddressBook::Iterator it; | ||
118 | for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) { | ||
119 | if ( selection.findIndex((*it).uid()) >= 0 ) | ||
120 | (*it).setTagged( true ); | ||
121 | } | ||
122 | } else if ( mUseFilters->isChecked() ) { | ||
123 | // find contacts that can pass selected filter | ||
124 | Filter::List::Iterator filterIt; | ||
125 | for ( filterIt = mFilters.begin(); filterIt != mFilters.end(); ++filterIt ) | ||
126 | if ( (*filterIt).name() == mFiltersCombo->currentText() ) | ||
127 | break; | ||
128 | KABC::AddressBook::Iterator it; | ||
129 | for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) { | ||
130 | if ( (*filterIt).filterAddressee( *it ) ) | ||
131 | (*it).setTagged( true ); | ||
132 | } | ||
133 | } else if ( mUseCategories->isChecked() ) { | ||
134 | QStringList categorieList = categories(); | ||
135 | KABC::AddressBook::Iterator it; | ||
136 | for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) { | ||
137 | QStringList tmp( (*it).categories() ); | ||
138 | QStringList::Iterator tmpIt; | ||
139 | for ( tmpIt = tmp.begin(); tmpIt != tmp.end(); ++tmpIt ) | ||
140 | if ( categorieList.contains( *tmpIt ) ) { | ||
141 | (*it).setTagged( true ); | ||
142 | break; | ||
143 | } | ||
144 | } | ||
145 | } else { | ||
146 | // create a string list of all entries: | ||
147 | KABC::AddressBook::Iterator it; | ||
148 | for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) | ||
149 | (*it).setTagged( true ); | ||
150 | } | ||
151 | } | ||
112 | KABC::AddresseeList XXPortSelectDialog::contacts() | 152 | KABC::AddresseeList XXPortSelectDialog::contacts() |
113 | { | 153 | { |
114 | QStringList selection = mCore->selectedUIDs(); | ||
115 | 154 | ||
116 | KABC::AddresseeList list; | 155 | KABC::AddresseeList list; |
117 | if ( mUseSelection->isChecked() ) { | 156 | if ( mUseSelection->isChecked() ) { |
118 | QStringList::Iterator it; | 157 | QStringList::Iterator it; |
158 | QStringList selection = mCore->selectedUIDs(); | ||
119 | for ( it = selection.begin(); it != selection.end(); ++it ) { | 159 | for ( it = selection.begin(); it != selection.end(); ++it ) { |
120 | KABC::Addressee addr = mCore->addressBook()->findByUid( *it ); | 160 | KABC::Addressee addr = mCore->addressBook()->findByUid( *it ); |
121 | if ( !addr.isEmpty() ) | 161 | if ( !addr.isEmpty() ) |
122 | list.append( addr ); | 162 | list.append( addr ); |
123 | } | 163 | } |
124 | } else if ( mUseFilters->isChecked() ) { | 164 | } else if ( mUseFilters->isChecked() ) { |
125 | // find contacts that can pass selected filter | 165 | // find contacts that can pass selected filter |
126 | Filter::List::Iterator filterIt; | 166 | Filter::List::Iterator filterIt; |
127 | for ( filterIt = mFilters.begin(); filterIt != mFilters.end(); ++filterIt ) | 167 | for ( filterIt = mFilters.begin(); filterIt != mFilters.end(); ++filterIt ) |
128 | if ( (*filterIt).name() == mFiltersCombo->currentText() ) | 168 | if ( (*filterIt).name() == mFiltersCombo->currentText() ) |
129 | break; | 169 | break; |
130 | 170 | ||
131 | KABC::AddressBook::Iterator it; | 171 | KABC::AddressBook::Iterator it; |
132 | for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) { | 172 | for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) { |
133 | if ( (*filterIt).filterAddressee( *it ) ) | 173 | if ( (*filterIt).filterAddressee( *it ) ) |
134 | list.append( *it ); | 174 | list.append( *it ); |
135 | } | 175 | } |
136 | } else if ( mUseCategories->isChecked() ) { | 176 | } else if ( mUseCategories->isChecked() ) { |
137 | QStringList categorieList = categories(); | 177 | QStringList categorieList = categories(); |
138 | KABC::AddressBook::Iterator it; | 178 | KABC::AddressBook::Iterator it; |
139 | for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) { | 179 | for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) { |
140 | QStringList tmp( (*it).categories() ); | 180 | QStringList tmp( (*it).categories() ); |
141 | QStringList::Iterator tmpIt; | 181 | QStringList::Iterator tmpIt; |
142 | for ( tmpIt = tmp.begin(); tmpIt != tmp.end(); ++tmpIt ) | 182 | for ( tmpIt = tmp.begin(); tmpIt != tmp.end(); ++tmpIt ) |
143 | if ( categorieList.contains( *tmpIt ) ) { | 183 | if ( categorieList.contains( *tmpIt ) ) { |
144 | list.append( *it ); | 184 | list.append( *it ); |
145 | break; | 185 | break; |
146 | } | 186 | } |
147 | } | 187 | } |
148 | } else { | 188 | } else { |
149 | // create a string list of all entries: | 189 | // create a string list of all entries: |
150 | KABC::AddressBook::Iterator it; | 190 | KABC::AddressBook::Iterator it; |
151 | for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) | 191 | for ( it = mCore->addressBook()->begin(); it != mCore->addressBook()->end(); ++it ) |
152 | list.append( *it ); | 192 | list.append( *it ); |
153 | } | 193 | } |
154 | 194 | ||
155 | if ( mUseSorting ) { | 195 | if ( mUseSorting ) { |
156 | list.setReverseSorting( mSortTypeCombo->currentItem() == 1 ); | 196 | list.setReverseSorting( mSortTypeCombo->currentItem() == 1 ); |
157 | uint pos = mFieldCombo->currentItem(); | 197 | uint pos = mFieldCombo->currentItem(); |
158 | if ( pos < mFields.count() ) | 198 | if ( pos < mFields.count() ) |
159 | list.sortByField( mFields[ pos ] ); | 199 | list.sortByField( mFields[ pos ] ); |
160 | } | 200 | } |
161 | 201 | ||
162 | return list; | 202 | return list; |
163 | } | 203 | } |
164 | 204 | ||
165 | QStringList XXPortSelectDialog::categories() const | 205 | QStringList XXPortSelectDialog::categories() const |
166 | { | 206 | { |
167 | QStringList list; | 207 | QStringList list; |
168 | 208 | ||
169 | QListViewItemIterator it( mCategoriesView ); | 209 | QListViewItemIterator it( mCategoriesView ); |
170 | for ( ; it.current(); ++it ) { | 210 | for ( ; it.current(); ++it ) { |
171 | QCheckListItem* qcli = static_cast<QCheckListItem*>(it.current()); | 211 | QCheckListItem* qcli = static_cast<QCheckListItem*>(it.current()); |
172 | if ( qcli->isOn() ) | 212 | if ( qcli->isOn() ) |
173 | list.append( it.current()->text( 0 ) ); | 213 | list.append( it.current()->text( 0 ) ); |
174 | } | 214 | } |
175 | 215 | ||
176 | return list; | 216 | return list; |
177 | } | 217 | } |
178 | 218 | ||
179 | void XXPortSelectDialog::filterChanged( int ) | 219 | void XXPortSelectDialog::filterChanged( int ) |
180 | { | 220 | { |
181 | mUseFilters->setChecked( true ); | 221 | mUseFilters->setChecked( true ); |
182 | } | 222 | } |
183 | 223 | ||
184 | void XXPortSelectDialog::categoryClicked( QListViewItem *i ) | 224 | void XXPortSelectDialog::categoryClicked( QListViewItem *i ) |
185 | { | 225 | { |
186 | QCheckListItem *qcli = static_cast<QCheckListItem*>( i ); | 226 | QCheckListItem *qcli = static_cast<QCheckListItem*>( i ); |
187 | if ( qcli->isOn() ) | 227 | if ( qcli->isOn() ) |
188 | mUseCategories->setChecked( true ); | 228 | mUseCategories->setChecked( true ); |
189 | } | 229 | } |
190 | 230 | ||
191 | void XXPortSelectDialog::slotHelp() | 231 | void XXPortSelectDialog::slotHelp() |
192 | { | 232 | { |
193 | #ifndef KAB_EMBEDDED | 233 | #ifndef KAB_EMBEDDED |
194 | kapp->invokeHelp( "import-and-export" ); | 234 | kapp->invokeHelp( "import-and-export" ); |
195 | #else //KAB_EMBEDDED | 235 | #else //KAB_EMBEDDED |
196 | qDebug("XXPortSelectDialog::slotHelp is not implemented yet"); | 236 | qDebug("XXPortSelectDialog::slotHelp is not implemented yet"); |
197 | #endif //KAB_EMBEDDED | 237 | #endif //KAB_EMBEDDED |
198 | 238 | ||
199 | } | 239 | } |
200 | 240 | ||
201 | void XXPortSelectDialog::initGUI() | 241 | void XXPortSelectDialog::initGUI() |
202 | { | 242 | { |
203 | QFrame *page = plainPage(); | 243 | QFrame *page = plainPage(); |
204 | 244 | ||
205 | QVBoxLayout *topLayout = new QVBoxLayout( page, KDialog::marginHint(), | 245 | QVBoxLayout *topLayout = new QVBoxLayout( page, KDialog::marginHint(), |
206 | KDialog::spacingHint() ); | 246 | KDialog::spacingHint() ); |
207 | 247 | ||
208 | QLabel *label = new QLabel( i18n( "Which contacts do you want to select?" ), page ); | 248 | QLabel *label = new QLabel( i18n( "Which contacts do you want to select?" ), page ); |
209 | topLayout->addWidget( label ); | 249 | topLayout->addWidget( label ); |
210 | 250 | ||
211 | mButtonGroup = new QButtonGroup( i18n( "Contact Selection" ), page ); | 251 | mButtonGroup = new QButtonGroup( i18n( "Contact Selection" ), page ); |
212 | mButtonGroup->setColumnLayout( 0, Qt::Vertical ); | 252 | mButtonGroup->setColumnLayout( 0, Qt::Vertical ); |
213 | mButtonGroup->layout()->setSpacing( KDialog::spacingHint() ); | 253 | mButtonGroup->layout()->setSpacing( KDialog::spacingHint() ); |
214 | mButtonGroup->layout()->setMargin( KDialog::marginHint() ); | 254 | mButtonGroup->layout()->setMargin( KDialog::marginHint() ); |
215 | 255 | ||
216 | QGridLayout *groupLayout = new QGridLayout( mButtonGroup->layout() ); | 256 | QGridLayout *groupLayout = new QGridLayout( mButtonGroup->layout() ); |
217 | groupLayout->setAlignment( Qt::AlignTop ); | 257 | groupLayout->setAlignment( Qt::AlignTop ); |
218 | 258 | ||
219 | mUseWholeBook = new QRadioButton( i18n( "&All" ), mButtonGroup ); | 259 | mUseWholeBook = new QRadioButton( i18n( "&All" ), mButtonGroup ); |
220 | mUseWholeBook->setChecked( true ); | 260 | mUseWholeBook->setChecked( true ); |
221 | QWhatsThis::add( mUseWholeBook, i18n( "Select the entire address book" ) ); | 261 | QWhatsThis::add( mUseWholeBook, i18n( "Select the entire address book" ) ); |
222 | groupLayout->addWidget( mUseWholeBook, 0, 0 ); | 262 | groupLayout->addWidget( mUseWholeBook, 0, 0 ); |
223 | 263 | ||
224 | mUseSelection = new QRadioButton( i18n( "&Selected" ), mButtonGroup ); | 264 | mUseSelection = new QRadioButton( i18n( "&Selected" ), mButtonGroup ); |
225 | QWhatsThis::add( mUseSelection, i18n( "Only contacts selected in KAddressBook.\n" | 265 | QWhatsThis::add( mUseSelection, i18n( "Only contacts selected in KAddressBook.\n" |
226 | "This option is disabled if no contacts are selected." ) ); | 266 | "This option is disabled if no contacts are selected." ) ); |
227 | groupLayout->addWidget( mUseSelection, 1, 0 ); | 267 | groupLayout->addWidget( mUseSelection, 1, 0 ); |
228 | 268 | ||
229 | mUseFilters = new QRadioButton( i18n( "By matching &filter" ), mButtonGroup ); | 269 | mUseFilters = new QRadioButton( i18n( "By matching &filter" ), mButtonGroup ); |
230 | QWhatsThis::add( mUseFilters, i18n( "Only contacts matching the selected filter.\n" | 270 | QWhatsThis::add( mUseFilters, i18n( "Only contacts matching the selected filter.\n" |
231 | "This option is disabled if you haven't defined any filters" ) ); | 271 | "This option is disabled if you haven't defined any filters" ) ); |
232 | groupLayout->addWidget( mUseFilters, 2, 0 ); | 272 | groupLayout->addWidget( mUseFilters, 2, 0 ); |
233 | 273 | ||
234 | mUseCategories = new QRadioButton( i18n( "By Cate&gories" ), mButtonGroup ); | 274 | mUseCategories = new QRadioButton( i18n( "By Cate&gories" ), mButtonGroup ); |
235 | QWhatsThis::add( mUseCategories, i18n( "Only contacts who are members of a category that is checked on the list to the left.\n" | 275 | QWhatsThis::add( mUseCategories, i18n( "Only contacts who are members of a category that is checked on the list to the left.\n" |
236 | "This option is disabled if you have no categories." ) ); | 276 | "This option is disabled if you have no categories." ) ); |
237 | groupLayout->addWidget( mUseCategories, 3, 0 ); | 277 | groupLayout->addWidget( mUseCategories, 3, 0 ); |
238 | 278 | ||
239 | mFiltersCombo = new QComboBox( false, mButtonGroup ); | 279 | mFiltersCombo = new QComboBox( false, mButtonGroup ); |
240 | QWhatsThis::add( mFiltersCombo, i18n( "Select a filter to decide which contacts to select." ) ); | 280 | QWhatsThis::add( mFiltersCombo, i18n( "Select a filter to decide which contacts to select." ) ); |
241 | groupLayout->addWidget( mFiltersCombo, 2, 1 ); | 281 | groupLayout->addWidget( mFiltersCombo, 2, 1 ); |
242 | 282 | ||
243 | mCategoriesView = new QListView( mButtonGroup ); | 283 | mCategoriesView = new QListView( mButtonGroup ); |
244 | mCategoriesView->addColumn( "" ); | 284 | mCategoriesView->addColumn( "" ); |
245 | mCategoriesView->header()->hide(); | 285 | mCategoriesView->header()->hide(); |
246 | QWhatsThis::add( mCategoriesView, i18n( "Check the categories whose members you want to select." ) ); | 286 | QWhatsThis::add( mCategoriesView, i18n( "Check the categories whose members you want to select." ) ); |
247 | groupLayout->addWidget( mCategoriesView, 3, 1 ); | 287 | groupLayout->addWidget( mCategoriesView, 3, 1 ); |
248 | 288 | ||
249 | // if (QApplication::desktop()->height() == 480 ) | 289 | if (QApplication::desktop()->height() == 480 ) |
250 | // mCategoriesView->setMaximumHeight( 240 ); | 290 | mCategoriesView->setMaximumHeight( 240 ); |
251 | topLayout->addWidget( mButtonGroup ); | 291 | topLayout->addWidget( mButtonGroup ); |
252 | 292 | ||
253 | QButtonGroup *sortingGroup = new QButtonGroup( i18n( "Sorting" ), page ); | 293 | QButtonGroup *sortingGroup = new QButtonGroup( i18n( "Sorting" ), page ); |
254 | sortingGroup->setColumnLayout( 0, Qt::Vertical ); | 294 | sortingGroup->setColumnLayout( 0, Qt::Vertical ); |
255 | QGridLayout *sortLayout = new QGridLayout( sortingGroup->layout(), 2, 2, | 295 | QGridLayout *sortLayout = new QGridLayout( sortingGroup->layout(), 2, 2, |
256 | KDialog::spacingHint() ); | 296 | KDialog::spacingHint() ); |
257 | sortLayout->setAlignment( Qt::AlignTop ); | 297 | sortLayout->setAlignment( Qt::AlignTop ); |
258 | 298 | ||
259 | label = new QLabel( i18n( "Criterion:" ), sortingGroup ); | 299 | label = new QLabel( i18n( "Criterion:" ), sortingGroup ); |
260 | sortLayout->addWidget( label, 0, 0 ); | 300 | sortLayout->addWidget( label, 0, 0 ); |
261 | 301 | ||
262 | #ifndef KAB_EMBEDDED | 302 | #ifndef KAB_EMBEDDED |
263 | mFieldCombo = new KComboBox( false, sortingGroup ); | 303 | mFieldCombo = new KComboBox( false, sortingGroup ); |
264 | #else //KAB_EMBEDDED | 304 | #else //KAB_EMBEDDED |
265 | //US Combobox is not editable anyway | 305 | //US Combobox is not editable anyway |
266 | mFieldCombo = new KComboBox( sortingGroup ); | 306 | mFieldCombo = new KComboBox( sortingGroup ); |
267 | #endif //KAB_EMBEDDED | 307 | #endif //KAB_EMBEDDED |
268 | sortLayout->addWidget( mFieldCombo, 0, 1 ); | 308 | sortLayout->addWidget( mFieldCombo, 0, 1 ); |
269 | 309 | ||
270 | label = new QLabel( i18n( "Order:" ), sortingGroup ); | 310 | label = new QLabel( i18n( "Order:" ), sortingGroup ); |
271 | sortLayout->addWidget( label, 1, 0 ); | 311 | sortLayout->addWidget( label, 1, 0 ); |
272 | 312 | ||
273 | #ifndef KAB_EMBEDDED | 313 | #ifndef KAB_EMBEDDED |
274 | mSortTypeCombo = new KComboBox( false, sortingGroup ); | 314 | mSortTypeCombo = new KComboBox( false, sortingGroup ); |
275 | #else //KAB_EMBEDDED | 315 | #else //KAB_EMBEDDED |
276 | //US Combobox is not editable anyway | 316 | //US Combobox is not editable anyway |
277 | mSortTypeCombo = new KComboBox( sortingGroup ); | 317 | mSortTypeCombo = new KComboBox( sortingGroup ); |
278 | #endif //KAB_EMBEDDED | 318 | #endif //KAB_EMBEDDED |
279 | sortLayout->addWidget( mSortTypeCombo, 1, 1 ); | 319 | sortLayout->addWidget( mSortTypeCombo, 1, 1 ); |
280 | 320 | ||
281 | topLayout->addWidget( sortingGroup ); | 321 | topLayout->addWidget( sortingGroup ); |
282 | 322 | ||
283 | if ( !mUseSorting ) | 323 | if ( !mUseSorting ) |
284 | sortingGroup->hide(); | 324 | sortingGroup->hide(); |
285 | #ifndef DESKTOP_VERSION | 325 | #ifndef DESKTOP_VERSION |
286 | hideButtons(); | 326 | hideButtons(); |
287 | #endif | 327 | #endif |
288 | } | 328 | } |
289 | 329 | ||
290 | #ifndef KAB_EMBEDDED | 330 | #ifndef KAB_EMBEDDED |
291 | #include "xxportselectdialog.moc" | 331 | #include "xxportselectdialog.moc" |
292 | #endif //KAB_EMBEDDED | 332 | #endif //KAB_EMBEDDED |
293 | 333 | ||
294 | 334 | ||
diff --git a/kaddressbook/xxportselectdialog.h b/kaddressbook/xxportselectdialog.h index 3bb696f..28b1fef 100644 --- a/kaddressbook/xxportselectdialog.h +++ b/kaddressbook/xxportselectdialog.h | |||
@@ -1,82 +1,83 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KAddressBook. | 2 | This file is part of KAddressBook. |
3 | Copyright (c) 2002 Anders Lund <anders.lund@lund.tdcadsl.dk> | 3 | Copyright (c) 2002 Anders Lund <anders.lund@lund.tdcadsl.dk> |
4 | Tobias Koenig <tokoe@kde.org> | 4 | Tobias Koenig <tokoe@kde.org> |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify | 6 | This program is free software; you can redistribute it and/or modify |
7 | it under the terms of the GNU General Public License as published by | 7 | it under the terms of the GNU General Public License as published by |
8 | the Free Software Foundation; either version 2 of the License, or | 8 | the Free Software Foundation; either version 2 of the License, or |
9 | (at your option) any later version. | 9 | (at your option) any later version. |
10 | 10 | ||
11 | This program is distributed in the hope that it will be useful, | 11 | This program is distributed in the hope that it will be useful, |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | GNU General Public License for more details. | 14 | GNU General Public License for more details. |
15 | 15 | ||
16 | You should have received a copy of the GNU General Public License | 16 | You should have received a copy of the GNU General Public License |
17 | along with this program; if not, write to the Free Software | 17 | along with this program; if not, write to the Free Software |
18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
19 | 19 | ||
20 | As a special exception, permission is given to link this program | 20 | As a special exception, permission is given to link this program |
21 | with any edition of Qt, and distribute the resulting executable, | 21 | with any edition of Qt, and distribute the resulting executable, |
22 | without including the source code for Qt in the source distribution. | 22 | without including the source code for Qt in the source distribution. |
23 | */ | 23 | */ |
24 | #ifndef XXPORTSELECTDIALOG_H | 24 | #ifndef XXPORTSELECTDIALOG_H |
25 | #define XXPORTSELECTDIALOG_H | 25 | #define XXPORTSELECTDIALOG_H |
26 | 26 | ||
27 | #include <kabc/addresseelist.h> | 27 | #include <kabc/addresseelist.h> |
28 | #include <kabc/field.h> | 28 | #include <kabc/field.h> |
29 | #include <kdialogbase.h> | 29 | #include <kdialogbase.h> |
30 | 30 | ||
31 | #include "filter.h" | 31 | #include "filter.h" |
32 | 32 | ||
33 | class QButtonGroup; | 33 | class QButtonGroup; |
34 | class QComboBox; | 34 | class QComboBox; |
35 | class QListView; | 35 | class QListView; |
36 | class QListViewItem; | 36 | class QListViewItem; |
37 | class QRadioButton; | 37 | class QRadioButton; |
38 | 38 | ||
39 | class KABCore; | 39 | class KABCore; |
40 | class KComboBox; | 40 | class KComboBox; |
41 | 41 | ||
42 | class XXPortSelectDialog : public KDialogBase | 42 | class XXPortSelectDialog : public KDialogBase |
43 | { | 43 | { |
44 | Q_OBJECT | 44 | Q_OBJECT |
45 | 45 | ||
46 | public: | 46 | public: |
47 | XXPortSelectDialog( KABCore *core, bool sort, QWidget* parent, | 47 | XXPortSelectDialog( KABCore *core, bool sort, QWidget* parent, |
48 | const char* name = 0 ); | 48 | const char* name = 0 ); |
49 | 49 | ||
50 | KABC::AddresseeList contacts(); | 50 | KABC::AddresseeList contacts(); |
51 | void tagSelected(); | ||
51 | QStringList uids(); | 52 | QStringList uids(); |
52 | 53 | ||
53 | private slots: | 54 | private slots: |
54 | void filterChanged( int ); | 55 | void filterChanged( int ); |
55 | void categoryClicked( QListViewItem * i ); | 56 | void categoryClicked( QListViewItem * i ); |
56 | 57 | ||
57 | protected slots: | 58 | protected slots: |
58 | void slotHelp(); | 59 | void slotHelp(); |
59 | 60 | ||
60 | private: | 61 | private: |
61 | void initGUI(); | 62 | void initGUI(); |
62 | QStringList categories() const; | 63 | QStringList categories() const; |
63 | 64 | ||
64 | QButtonGroup* mButtonGroup; | 65 | QButtonGroup* mButtonGroup; |
65 | QRadioButton* mUseCategories; | 66 | QRadioButton* mUseCategories; |
66 | QRadioButton* mUseFilters; | 67 | QRadioButton* mUseFilters; |
67 | QRadioButton* mUseWholeBook; | 68 | QRadioButton* mUseWholeBook; |
68 | QRadioButton* mUseSelection; | 69 | QRadioButton* mUseSelection; |
69 | QComboBox* mFiltersCombo; | 70 | QComboBox* mFiltersCombo; |
70 | QListView* mCategoriesView; | 71 | QListView* mCategoriesView; |
71 | 72 | ||
72 | KComboBox *mFieldCombo; | 73 | KComboBox *mFieldCombo; |
73 | KComboBox *mSortTypeCombo; | 74 | KComboBox *mSortTypeCombo; |
74 | 75 | ||
75 | KABCore *mCore; | 76 | KABCore *mCore; |
76 | KABC::AddresseeList mAddresseeList; | 77 | KABC::AddresseeList mAddresseeList; |
77 | Filter::List mFilters; | 78 | Filter::List mFilters; |
78 | KABC::Field::List mFields; | 79 | KABC::Field::List mFields; |
79 | bool mUseSorting; | 80 | bool mUseSorting; |
80 | }; | 81 | }; |
81 | 82 | ||
82 | #endif | 83 | #endif |