Diffstat (limited to 'kaddressbook/addresseditwidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kaddressbook/addresseditwidget.cpp | 55 |
1 files changed, 31 insertions, 24 deletions
diff --git a/kaddressbook/addresseditwidget.cpp b/kaddressbook/addresseditwidget.cpp index 3dcd592..83908d0 100644 --- a/kaddressbook/addresseditwidget.cpp +++ b/kaddressbook/addresseditwidget.cpp | |||
@@ -1,385 +1,392 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KAddressBook. | 2 | This file is part of KAddressBook. |
3 | Copyright (c) 2002 Mike Pilone <mpilone@slac.com> | 3 | Copyright (c) 2002 Mike Pilone <mpilone@slac.com> |
4 | 2003 Tobias Koenig <tokoe@kde.org> | 4 | 2003 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 | #include <qbuttongroup.h> | 25 | #include <q3buttongroup.h> |
26 | #include <qcheckbox.h> | 26 | #include <qcheckbox.h> |
27 | #include <qhbox.h> | 27 | #include <q3hbox.h> |
28 | #include <qlabel.h> | 28 | #include <qlabel.h> |
29 | #include <qlayout.h> | 29 | #include <qlayout.h> |
30 | #include <qlistbox.h> | 30 | #include <q3listbox.h> |
31 | #include <qlistview.h> | 31 | #include <q3listview.h> |
32 | #include <qpushbutton.h> | 32 | #include <qpushbutton.h> |
33 | #include <qsignal.h> | 33 | #include <q3signal.h> |
34 | #include <qstring.h> | 34 | #include <qstring.h> |
35 | #include <qapplication.h> | 35 | #include <qapplication.h> |
36 | #include <QDesktopWidget> | ||
37 | |||
38 | #include <Q3VBoxLayout> | ||
39 | #include <Q3GridLayout> | ||
36 | 40 | ||
37 | #ifndef KAB_EMBEDDED | 41 | #ifndef KAB_EMBEDDED |
38 | #include <qtextedit.h> | 42 | #include <q3textedit.h> |
43 | //Added by qt3to4: | ||
44 | #include <Q3ValueList> | ||
45 | #include <Q3VBoxLayout> | ||
39 | #include <kaccelmanager.h> | 46 | #include <kaccelmanager.h> |
40 | #include <kbuttonbox.h> | 47 | #include <kbuttonbox.h> |
41 | #else //KAB_EMBEDDED | 48 | #else //KAB_EMBEDDED |
42 | #include <qmultilineedit.h> | 49 | #include <q3multilineedit.h> |
43 | #endif //KAB_EMBEDDED | 50 | #endif //KAB_EMBEDDED |
44 | 51 | ||
45 | #include <qtoolbutton.h> | 52 | #include <qtoolbutton.h> |
46 | #include <qtooltip.h> | 53 | #include <qtooltip.h> |
47 | 54 | ||
48 | #include <kapplication.h> | 55 | #include <kapplication.h> |
49 | #include <kcombobox.h> | 56 | #include <kcombobox.h> |
50 | #include <kconfig.h> | 57 | #include <kconfig.h> |
51 | #include <kdebug.h> | 58 | #include <kdebug.h> |
52 | #include <kdialog.h> | 59 | #include <kdialog.h> |
53 | #include <kiconloader.h> | 60 | #include <kiconloader.h> |
54 | #include <klineedit.h> | 61 | #include <klineedit.h> |
55 | #include <klistview.h> | 62 | #include <klistview.h> |
56 | #include <klocale.h> | 63 | #include <klocale.h> |
57 | #include <kglobal.h> | 64 | #include <kglobal.h> |
58 | #include <kmessagebox.h> | 65 | #include <kmessagebox.h> |
59 | #include <kseparator.h> | 66 | #include <kseparator.h> |
60 | 67 | ||
61 | #include "addresseditwidget.h" | 68 | #include "addresseditwidget.h" |
62 | 69 | ||
63 | 70 | ||
64 | 71 | ||
65 | AddressEditWidget::AddressEditWidget( QWidget *parent, const char *name ) | 72 | AddressEditWidget::AddressEditWidget( QWidget *parent, const char *name ) |
66 | : QWidget( parent, name ) | 73 | : QWidget( parent, name ) |
67 | { | 74 | { |
68 | 75 | ||
69 | mConfig = AddresseeConfig::instance(); | 76 | mConfig = AddresseeConfig::instance(); |
70 | QVBoxLayout *layout = new QVBoxLayout( this ); | 77 | Q3VBoxLayout *layout = new Q3VBoxLayout( this ); |
71 | layout->setSpacing( KDialog::spacingHintSmall() ); | 78 | layout->setSpacing( KDialog::spacingHintSmall() ); |
72 | QHBox *b1 = new QHBox( this); | 79 | Q3HBox *b1 = new Q3HBox( this); |
73 | //QLabel * label = new QLabel( b1 ); | 80 | //QLabel * label = new QLabel( b1 ); |
74 | //label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop, 0 ) ); | 81 | //label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop, 0 ) ); |
75 | 82 | ||
76 | 83 | ||
77 | //label->setAlignment( AlignCenter); | 84 | //label->setAlignment( AlignCenter); |
78 | layout->addWidget( b1 ); | 85 | layout->addWidget( b1 ); |
79 | mTypeCombo = new AddressTypeCombo( mAddressList, b1 ); | 86 | mTypeCombo = new AddressTypeCombo( mAddressList, b1 ); |
80 | QPushButton *editButton = new QPushButton( i18n( "&Edit Addresses..." ), | 87 | QPushButton *editButton = new QPushButton( i18n( "&Edit Addresses..." ), |
81 | b1 ); | 88 | b1 ); |
82 | connect( mTypeCombo, SIGNAL( activated( int ) ), | 89 | connect( mTypeCombo, SIGNAL( activated( int ) ), |
83 | SLOT( updateAddressEdit() ) ); | 90 | SLOT( updateAddressEdit() ) ); |
84 | // layout->addWidget( mTypeCombo ); | 91 | // layout->addWidget( mTypeCombo ); |
85 | 92 | ||
86 | #ifndef KAB_EMBEDDED | 93 | #ifndef KAB_EMBEDDED |
87 | mAddressTextEdit = new QTextEdit( this ); | 94 | mAddressTextEdit = new Q3TextEdit( this ); |
88 | mAddressTextEdit->setReadOnly( true ); | 95 | mAddressTextEdit->setReadOnly( true ); |
89 | mAddressTextEdit->setMinimumHeight( 20 ); | 96 | mAddressTextEdit->setMinimumHeight( 20 ); |
90 | #else //KAB_EMBEDDED | 97 | #else //KAB_EMBEDDED |
91 | mAddressTextEdit = new QMultiLineEdit( this ); | 98 | mAddressTextEdit = new Q3MultiLineEdit( this ); |
92 | mAddressTextEdit->setReadOnly( true ); | 99 | mAddressTextEdit->setReadOnly( true ); |
93 | mAddressTextEdit->setMinimumHeight( 20 ); | 100 | mAddressTextEdit->setMinimumHeight( 20 ); |
94 | #endif //KAB_EMBEDDED | 101 | #endif //KAB_EMBEDDED |
95 | 102 | ||
96 | layout->addWidget( mAddressTextEdit ); | 103 | layout->addWidget( mAddressTextEdit ); |
97 | 104 | ||
98 | 105 | ||
99 | connect( editButton, SIGNAL( clicked() ), SLOT( edit() ) ); | 106 | connect( editButton, SIGNAL( clicked() ), SLOT( edit() ) ); |
100 | } | 107 | } |
101 | 108 | ||
102 | AddressEditWidget::~AddressEditWidget() | 109 | AddressEditWidget::~AddressEditWidget() |
103 | { | 110 | { |
104 | 111 | ||
105 | } | 112 | } |
106 | 113 | ||
107 | KABC::Address::List AddressEditWidget::addresses() | 114 | KABC::Address::List AddressEditWidget::addresses() |
108 | { | 115 | { |
109 | KABC::Address::List retList; | 116 | KABC::Address::List retList; |
110 | 117 | ||
111 | KABC::Address::List::Iterator it; | 118 | KABC::Address::List::Iterator it; |
112 | for ( it = mAddressList.begin(); it != mAddressList.end(); ++it ) | 119 | for ( it = mAddressList.begin(); it != mAddressList.end(); ++it ) |
113 | if ( !(*it).isEmpty() ) | 120 | if ( !(*it).isEmpty() ) |
114 | retList.append( *it ); | 121 | retList.append( *it ); |
115 | 122 | ||
116 | return retList; | 123 | return retList; |
117 | } | 124 | } |
118 | 125 | ||
119 | void AddressEditWidget::setAddresses( const KABC::Addressee &addr, | 126 | void AddressEditWidget::setAddresses( const KABC::Addressee &addr, |
120 | const KABC::Address::List &list ) | 127 | const KABC::Address::List &list ) |
121 | { | 128 | { |
122 | mAddressee = addr; | 129 | mAddressee = addr; |
123 | 130 | ||
124 | mAddressList.clear(); | 131 | mAddressList.clear(); |
125 | 132 | ||
126 | // Insert types for existing numbers. | 133 | // Insert types for existing numbers. |
127 | mTypeCombo->insertTypeList( list ); | 134 | mTypeCombo->insertTypeList( list ); |
128 | 135 | ||
129 | QValueList<int> defaultTypes; | 136 | Q3ValueList<int> defaultTypes; |
130 | defaultTypes << KABC::Address::Home; | 137 | defaultTypes << KABC::Address::Home; |
131 | defaultTypes << KABC::Address::Work; | 138 | defaultTypes << KABC::Address::Work; |
132 | 139 | ||
133 | mConfig->setUid( mAddressee.uid() ); | 140 | mConfig->setUid( mAddressee.uid() ); |
134 | QValueList<int> configList = mConfig->noDefaultAddrTypes(); | 141 | Q3ValueList<int> configList = mConfig->noDefaultAddrTypes(); |
135 | QValueList<int>::ConstIterator it; | 142 | Q3ValueList<int>::ConstIterator it; |
136 | for ( it = configList.begin(); it != configList.end(); ++it ) | 143 | for ( it = configList.begin(); it != configList.end(); ++it ) |
137 | defaultTypes.remove( *it ); | 144 | defaultTypes.remove( *it ); |
138 | 145 | ||
139 | // Insert default types. | 146 | // Insert default types. |
140 | // Doing this for mPrefCombo is enough because the list is shared by all | 147 | // Doing this for mPrefCombo is enough because the list is shared by all |
141 | // combos. | 148 | // combos. |
142 | for( it = defaultTypes.begin(); it != defaultTypes.end(); ++it ) { | 149 | for( it = defaultTypes.begin(); it != defaultTypes.end(); ++it ) { |
143 | if ( !mTypeCombo->hasType( *it ) ) | 150 | if ( !mTypeCombo->hasType( *it ) ) |
144 | mTypeCombo->insertType( list, *it, Address( *it ) ); | 151 | mTypeCombo->insertType( list, *it, Address( *it ) ); |
145 | } | 152 | } |
146 | 153 | ||
147 | mTypeCombo->updateTypes(); | 154 | mTypeCombo->updateTypes(); |
148 | 155 | ||
149 | // find preferred address which will be shown | 156 | // find preferred address which will be shown |
150 | int preferred = KABC::Address::Home; // default if no preferred address set | 157 | int preferred = KABC::Address::Home; // default if no preferred address set |
151 | uint i; | 158 | uint i; |
152 | for (i = 0; i < list.count(); i++) | 159 | for (i = 0; i < list.count(); i++) |
153 | if ( list[i].type() & KABC::Address::Pref ) { | 160 | if ( list[i].type() & KABC::Address::Pref ) { |
154 | preferred = list[i].type(); | 161 | preferred = list[i].type(); |
155 | break; | 162 | break; |
156 | } | 163 | } |
157 | 164 | ||
158 | mTypeCombo->selectType( preferred ); | 165 | mTypeCombo->selectType( preferred ); |
159 | 166 | ||
160 | updateAddressEdit(); | 167 | updateAddressEdit(); |
161 | } | 168 | } |
162 | 169 | ||
163 | void AddressEditWidget::edit() | 170 | void AddressEditWidget::edit() |
164 | { | 171 | { |
165 | AddressEditDialog dialog( mAddressList, mTypeCombo->currentItem(), this ); | 172 | AddressEditDialog dialog( mAddressList, mTypeCombo->currentItem(), this ); |
166 | if ( dialog.exec() ) { | 173 | if ( dialog.exec() ) { |
167 | if ( dialog.changed() ) { | 174 | if ( dialog.changed() ) { |
168 | mAddressList = dialog.addresses(); | 175 | mAddressList = dialog.addresses(); |
169 | 176 | ||
170 | bool hasHome = false, hasWork = false; | 177 | bool hasHome = false, hasWork = false; |
171 | KABC::Address::List::Iterator it; | 178 | KABC::Address::List::Iterator it; |
172 | for ( it = mAddressList.begin(); it != mAddressList.end(); ++it ) { | 179 | for ( it = mAddressList.begin(); it != mAddressList.end(); ++it ) { |
173 | if ( (*it).type() == KABC::Address::Home ) { | 180 | if ( (*it).type() == KABC::Address::Home ) { |
174 | if ( !(*it).isEmpty() ) | 181 | if ( !(*it).isEmpty() ) |
175 | hasHome = true; | 182 | hasHome = true; |
176 | } | 183 | } |
177 | if ( (*it).type() == KABC::Address::Work ) { | 184 | if ( (*it).type() == KABC::Address::Work ) { |
178 | if ( !(*it).isEmpty() ) | 185 | if ( !(*it).isEmpty() ) |
179 | hasWork = true; | 186 | hasWork = true; |
180 | } | 187 | } |
181 | } | 188 | } |
182 | 189 | ||
183 | mConfig->setUid( mAddressee.uid() ); | 190 | mConfig->setUid( mAddressee.uid() ); |
184 | QValueList<int> configList; | 191 | Q3ValueList<int> configList; |
185 | if ( !hasHome ) { | 192 | if ( !hasHome ) { |
186 | configList << KABC::Address::Home; | 193 | configList << KABC::Address::Home; |
187 | } | 194 | } |
188 | if ( !hasWork ) { | 195 | if ( !hasWork ) { |
189 | configList << KABC::Address::Work; | 196 | configList << KABC::Address::Work; |
190 | } | 197 | } |
191 | mConfig->setNoDefaultAddrTypes( configList ); | 198 | mConfig->setNoDefaultAddrTypes( configList ); |
192 | 199 | ||
193 | mTypeCombo->updateTypes(); | 200 | mTypeCombo->updateTypes(); |
194 | updateAddressEdit(); | 201 | updateAddressEdit(); |
195 | emit modified(); | 202 | emit modified(); |
196 | } | 203 | } |
197 | } | 204 | } |
198 | } | 205 | } |
199 | 206 | ||
200 | void AddressEditWidget::updateAddressEdit() | 207 | void AddressEditWidget::updateAddressEdit() |
201 | { | 208 | { |
202 | KABC::Address::List::Iterator it = mTypeCombo->selectedElement(); | 209 | KABC::Address::List::Iterator it = mTypeCombo->selectedElement(); |
203 | 210 | ||
204 | bool block = signalsBlocked(); | 211 | bool block = signalsBlocked(); |
205 | blockSignals( true ); | 212 | blockSignals( true ); |
206 | 213 | ||
207 | mAddressTextEdit->setText( "" ); | 214 | mAddressTextEdit->setText( "" ); |
208 | 215 | ||
209 | if ( it != mAddressList.end() ) { | 216 | if ( it != mAddressList.end() ) { |
210 | KABC::Address a = *it; | 217 | KABC::Address a = *it; |
211 | if ( !a.isEmpty() ) { | 218 | if ( !a.isEmpty() ) { |
212 | #if KDE_VERSION >= 319 | 219 | #if KDE_VERSION >= 319 |
213 | if ( a.type() & KABC::Address::Work ) { | 220 | if ( a.type() & KABC::Address::Work ) { |
214 | mAddressTextEdit->setText( a.formattedAddress( mAddressee.realName(), | 221 | mAddressTextEdit->setText( a.formattedAddress( mAddressee.realName(), |
215 | mAddressee.organization() ) ); | 222 | mAddressee.organization() ) ); |
216 | } else { | 223 | } else { |
217 | mAddressTextEdit->setText( a.formattedAddress( mAddressee.realName() ) ); | 224 | mAddressTextEdit->setText( a.formattedAddress( mAddressee.realName() ) ); |
218 | } | 225 | } |
219 | #else | 226 | #else |
220 | QString text; | 227 | QString text; |
221 | if ( !a.street().isEmpty() ) | 228 | if ( !a.street().isEmpty() ) |
222 | text += a.street() + "\n"; | 229 | text += a.street() + "\n"; |
223 | 230 | ||
224 | if ( !a.postOfficeBox().isEmpty() ) | 231 | if ( !a.postOfficeBox().isEmpty() ) |
225 | text += a.postOfficeBox() + "\n"; | 232 | text += a.postOfficeBox() + "\n"; |
226 | 233 | ||
227 | text += a.locality() + QString(" ") + a.region(); | 234 | text += a.locality() + QString(" ") + a.region(); |
228 | 235 | ||
229 | if ( !a.postalCode().isEmpty() ) | 236 | if ( !a.postalCode().isEmpty() ) |
230 | text += QString(", ") + a.postalCode(); | 237 | text += QString(", ") + a.postalCode(); |
231 | 238 | ||
232 | text += "\n"; | 239 | text += "\n"; |
233 | 240 | ||
234 | if ( !a.country().isEmpty() ) | 241 | if ( !a.country().isEmpty() ) |
235 | text += a.country() + "\n"; | 242 | text += a.country() + "\n"; |
236 | 243 | ||
237 | text += a.extended(); | 244 | text += a.extended(); |
238 | 245 | ||
239 | mAddressTextEdit->setText( text ); | 246 | mAddressTextEdit->setText( text ); |
240 | #endif | 247 | #endif |
241 | } | 248 | } |
242 | } | 249 | } |
243 | 250 | ||
244 | blockSignals( block ); | 251 | blockSignals( block ); |
245 | } | 252 | } |
246 | 253 | ||
247 | AddressEditDialog::AddressEditDialog( const KABC::Address::List &list, | 254 | AddressEditDialog::AddressEditDialog( const KABC::Address::List &list, |
248 | int selected, QWidget *parent, | 255 | int selected, QWidget *parent, |
249 | const char *name ) | 256 | const char *name ) |
250 | : KDialogBase( Plain, i18n( "Edit Address" ), Ok | Cancel, Ok, | 257 | : KDialogBase( Plain, i18n( "Edit Address" ), Ok | Cancel, Ok, |
251 | parent, name, true, true ), | 258 | parent, name, true, true ), |
252 | mPreviousAddress( 0 ) | 259 | mPreviousAddress( 0 ) |
253 | { | 260 | { |
254 | mAddressList = list; | 261 | mAddressList = list; |
255 | 262 | ||
256 | QWidget *page = plainPage(); | 263 | QWidget *page = plainPage(); |
257 | 264 | ||
258 | QGridLayout *topLayout = new QGridLayout( page, 8, 2 ); | 265 | Q3GridLayout *topLayout = new Q3GridLayout( page, 8, 2 ); |
259 | topLayout->setSpacing( spacingHintSmall() ); | 266 | topLayout->setSpacing( spacingHintSmall() ); |
260 | 267 | ||
261 | mTypeCombo = new AddressTypeCombo( mAddressList, page ); | 268 | mTypeCombo = new AddressTypeCombo( mAddressList, page ); |
262 | topLayout->addMultiCellWidget( mTypeCombo, 0, 0, 0, 1 ); | 269 | topLayout->addMultiCellWidget( mTypeCombo, 0, 0, 0, 1 ); |
263 | 270 | ||
264 | QLabel *label = new QLabel( i18n( "Street:" ), page ); | 271 | QLabel *label = new QLabel( i18n( "Street:" ), page ); |
265 | label->setAlignment( Qt::AlignTop | Qt::AlignLeft ); | 272 | label->setAlignment( Qt::AlignTop | Qt::AlignLeft ); |
266 | topLayout->addWidget( label, 1, 0 ); | 273 | topLayout->addWidget( label, 1, 0 ); |
267 | 274 | ||
268 | #ifndef KAB_EMBEDDED | 275 | #ifndef KAB_EMBEDDED |
269 | mStreetTextEdit = new QTextEdit( page ); | 276 | mStreetTextEdit = new Q3TextEdit( page ); |
270 | #else //KAB_EMBEDDED | 277 | #else //KAB_EMBEDDED |
271 | mStreetTextEdit = new QMultiLineEdit( page ); | 278 | mStreetTextEdit = new Q3MultiLineEdit( page ); |
272 | //US qDebug("AddressEditDialog::AddressEditDialog has to be changed"); | 279 | //US qDebug("AddressEditDialog::AddressEditDialog has to be changed"); |
273 | #endif //KAB_EMBEDDED | 280 | #endif //KAB_EMBEDDED |
274 | 281 | ||
275 | label->setBuddy( mStreetTextEdit ); | 282 | label->setBuddy( mStreetTextEdit ); |
276 | topLayout->addWidget( mStreetTextEdit, 1, 1 ); | 283 | topLayout->addWidget( mStreetTextEdit, 1, 1 ); |
277 | 284 | ||
278 | label = new QLabel( i18n( "Post office box:" ), page ); | 285 | label = new QLabel( i18n( "Post office box:" ), page ); |
279 | topLayout->addWidget( label, 2 , 0 ); | 286 | topLayout->addWidget( label, 2 , 0 ); |
280 | mPOBoxEdit = new KLineEdit( page ); | 287 | mPOBoxEdit = new KLineEdit( page ); |
281 | label->setBuddy( mPOBoxEdit ); | 288 | label->setBuddy( mPOBoxEdit ); |
282 | topLayout->addWidget( mPOBoxEdit, 2, 1 ); | 289 | topLayout->addWidget( mPOBoxEdit, 2, 1 ); |
283 | int maxwid = QApplication::desktop()->width(); | 290 | int maxwid = QApplication::desktop()->width(); |
284 | maxwid -= (spacingHintSmall()+label->sizeHint().width() ); | 291 | maxwid -= (spacingHintSmall()+label->sizeHint().width() ); |
285 | label = new QLabel( i18n( "Locality:" ), page ); | 292 | label = new QLabel( i18n( "Locality:" ), page ); |
286 | topLayout->addWidget( label, 3, 0 ); | 293 | topLayout->addWidget( label, 3, 0 ); |
287 | mLocalityEdit = new KLineEdit( page ); | 294 | mLocalityEdit = new KLineEdit( page ); |
288 | label->setBuddy( mLocalityEdit ); | 295 | label->setBuddy( mLocalityEdit ); |
289 | topLayout->addWidget( mLocalityEdit, 3, 1 ); | 296 | topLayout->addWidget( mLocalityEdit, 3, 1 ); |
290 | 297 | ||
291 | label = new QLabel( i18n( "Region:" ), page ); | 298 | label = new QLabel( i18n( "Region:" ), page ); |
292 | topLayout->addWidget( label, 4, 0 ); | 299 | topLayout->addWidget( label, 4, 0 ); |
293 | mRegionEdit = new KLineEdit( page ); | 300 | mRegionEdit = new KLineEdit( page ); |
294 | label->setBuddy( mRegionEdit ); | 301 | label->setBuddy( mRegionEdit ); |
295 | topLayout->addWidget( mRegionEdit, 4, 1 ); | 302 | topLayout->addWidget( mRegionEdit, 4, 1 ); |
296 | 303 | ||
297 | label = new QLabel( i18n( "Postal code:" ), page ); | 304 | label = new QLabel( i18n( "Postal code:" ), page ); |
298 | topLayout->addWidget( label, 5, 0 ); | 305 | topLayout->addWidget( label, 5, 0 ); |
299 | mPostalCodeEdit = new KLineEdit( page ); | 306 | mPostalCodeEdit = new KLineEdit( page ); |
300 | label->setBuddy( mPostalCodeEdit ); | 307 | label->setBuddy( mPostalCodeEdit ); |
301 | topLayout->addWidget( mPostalCodeEdit, 5, 1 ); | 308 | topLayout->addWidget( mPostalCodeEdit, 5, 1 ); |
302 | 309 | ||
303 | label = new QLabel( i18n( "Country:" ), page ); | 310 | label = new QLabel( i18n( "Country:" ), page ); |
304 | topLayout->addWidget( label, 6, 0 ); | 311 | topLayout->addWidget( label, 6, 0 ); |
305 | mCountryCombo = new KComboBox( page ); | 312 | mCountryCombo = new KComboBox( page ); |
306 | 313 | ||
307 | mCountryCombo->setMaximumWidth( maxwid -10 ); | 314 | mCountryCombo->setMaximumWidth( maxwid -10 ); |
308 | mCountryCombo->setEditable( true ); | 315 | mCountryCombo->setEditable( true ); |
309 | mCountryCombo->setDuplicatesEnabled( false ); | 316 | mCountryCombo->setDuplicatesEnabled( false ); |
310 | mCountryCombo->setAutoCompletion( true ); | 317 | mCountryCombo->setAutoCompletion( true ); |
311 | fillCountryCombo(); | 318 | fillCountryCombo(); |
312 | label->setBuddy( mCountryCombo ); | 319 | label->setBuddy( mCountryCombo ); |
313 | topLayout->addWidget( mCountryCombo, 6, 1 ); | 320 | topLayout->addWidget( mCountryCombo, 6, 1 ); |
314 | mCountryCombo->setSizeLimit( 8); | 321 | mCountryCombo->setMaxVisibleItems( 8); |
315 | mPreferredCheckBox = new QCheckBox( i18n( "This is the preferred address" ), page ); | 322 | mPreferredCheckBox = new QCheckBox( i18n( "This is the preferred address" ), page ); |
316 | topLayout->addMultiCellWidget( mPreferredCheckBox, 7, 7, 0, 1 ); | 323 | topLayout->addMultiCellWidget( mPreferredCheckBox, 7, 7, 0, 1 ); |
317 | /* | 324 | /* |
318 | KSeparator *sep = new KSeparator( KSeparator::HLine, page ); | 325 | KSeparator *sep = new KSeparator( KSeparator::HLine, page ); |
319 | topLayout->addMultiCellWidget( sep, 8, 8, 0, 1 ); | 326 | topLayout->addMultiCellWidget( sep, 8, 8, 0, 1 ); |
320 | */ | 327 | */ |
321 | QHBox *buttonBox = new QHBox( page ); | 328 | Q3HBox *buttonBox = new Q3HBox( page ); |
322 | buttonBox->setSpacing( spacingHint() ); | 329 | buttonBox->setSpacing( spacingHint() ); |
323 | topLayout->addMultiCellWidget( buttonBox, 9, 9, 0, 1 ); | 330 | topLayout->addMultiCellWidget( buttonBox, 9, 9, 0, 1 ); |
324 | 331 | ||
325 | QPushButton *addButton = new QPushButton( i18n( "New..." ), buttonBox ); | 332 | QPushButton *addButton = new QPushButton( i18n( "New..." ), buttonBox ); |
326 | connect( addButton, SIGNAL( clicked() ), SLOT( addAddress() ) ); | 333 | connect( addButton, SIGNAL( clicked() ), SLOT( addAddress() ) ); |
327 | 334 | ||
328 | mRemoveButton = new QPushButton( i18n( "Remove" ), buttonBox ); | 335 | mRemoveButton = new QPushButton( i18n( "Remove" ), buttonBox ); |
329 | connect( mRemoveButton, SIGNAL( clicked() ), SLOT( removeAddress() ) ); | 336 | connect( mRemoveButton, SIGNAL( clicked() ), SLOT( removeAddress() ) ); |
330 | 337 | ||
331 | mChangeTypeButton = new QPushButton( i18n( "Change Type" ), buttonBox ); | 338 | mChangeTypeButton = new QPushButton( i18n( "Change Type" ), buttonBox ); |
332 | connect( mChangeTypeButton, SIGNAL( clicked() ), SLOT( changeType() ) ); | 339 | connect( mChangeTypeButton, SIGNAL( clicked() ), SLOT( changeType() ) ); |
333 | 340 | ||
334 | mTypeCombo->updateTypes(); | 341 | mTypeCombo->updateTypes(); |
335 | mTypeCombo->setCurrentItem( selected ); | 342 | mTypeCombo->setCurrentItem( selected ); |
336 | 343 | ||
337 | updateAddressEdits(); | 344 | updateAddressEdits(); |
338 | 345 | ||
339 | connect( mTypeCombo, SIGNAL( activated( int ) ), | 346 | connect( mTypeCombo, SIGNAL( activated( int ) ), |
340 | SLOT( updateAddressEdits() ) ); | 347 | SLOT( updateAddressEdits() ) ); |
341 | connect( mStreetTextEdit, SIGNAL( textChanged() ), SLOT( modified() ) ); | 348 | connect( mStreetTextEdit, SIGNAL( textChanged() ), SLOT( modified() ) ); |
342 | connect( mPOBoxEdit, SIGNAL( textChanged( const QString& ) ), SLOT( modified() ) ); | 349 | connect( mPOBoxEdit, SIGNAL( textChanged( const QString& ) ), SLOT( modified() ) ); |
343 | connect( mLocalityEdit, SIGNAL( textChanged( const QString& ) ), SLOT( modified() ) ); | 350 | connect( mLocalityEdit, SIGNAL( textChanged( const QString& ) ), SLOT( modified() ) ); |
344 | connect( mRegionEdit, SIGNAL( textChanged( const QString& ) ), SLOT( modified() ) ); | 351 | connect( mRegionEdit, SIGNAL( textChanged( const QString& ) ), SLOT( modified() ) ); |
345 | connect( mPostalCodeEdit, SIGNAL( textChanged( const QString& ) ), SLOT( modified() ) ); | 352 | connect( mPostalCodeEdit, SIGNAL( textChanged( const QString& ) ), SLOT( modified() ) ); |
346 | connect( mCountryCombo, SIGNAL( textChanged( const QString& ) ), SLOT( modified() ) ); | 353 | connect( mCountryCombo, SIGNAL( textChanged( const QString& ) ), SLOT( modified() ) ); |
347 | connect( mPreferredCheckBox, SIGNAL( toggled( bool ) ), SLOT( modified() ) ); | 354 | connect( mPreferredCheckBox, SIGNAL( toggled( bool ) ), SLOT( modified() ) ); |
348 | 355 | ||
349 | #ifndef KAB_EMBEDDED | 356 | #ifndef KAB_EMBEDDED |
350 | KAcceleratorManager::manage( this ); | 357 | KAcceleratorManager::manage( this ); |
351 | #else //KAB_EMBEDDED | 358 | #else //KAB_EMBEDDED |
352 | //US qDebug("AddressEditDialog::AddressEditDialog has to be changed 2"); | 359 | //US qDebug("AddressEditDialog::AddressEditDialog has to be changed 2"); |
353 | #endif //KAB_EMBEDDED | 360 | #endif //KAB_EMBEDDED |
354 | 361 | ||
355 | mChanged = false; | 362 | mChanged = false; |
356 | 363 | ||
357 | bool state = (mAddressList.count() > 0); | 364 | bool state = (mAddressList.count() > 0); |
358 | mRemoveButton->setEnabled( state ); | 365 | mRemoveButton->setEnabled( state ); |
359 | mChangeTypeButton->setEnabled( state ); | 366 | mChangeTypeButton->setEnabled( state ); |
360 | #ifndef DESKTOP_VERSION | 367 | #ifndef DESKTOP_VERSION |
361 | showMaximized(); | 368 | showMaximized(); |
362 | #endif | 369 | #endif |
363 | } | 370 | } |
364 | 371 | ||
365 | AddressEditDialog::~AddressEditDialog() | 372 | AddressEditDialog::~AddressEditDialog() |
366 | { | 373 | { |
367 | } | 374 | } |
368 | 375 | ||
369 | KABC::Address::List AddressEditDialog::addresses() | 376 | KABC::Address::List AddressEditDialog::addresses() |
370 | { | 377 | { |
371 | saveAddress( *(mTypeCombo->selectedElement()) ); | 378 | saveAddress( *(mTypeCombo->selectedElement()) ); |
372 | 379 | ||
373 | return mAddressList; | 380 | return mAddressList; |
374 | } | 381 | } |
375 | 382 | ||
376 | bool AddressEditDialog::changed() const | 383 | bool AddressEditDialog::changed() const |
377 | { | 384 | { |
378 | return mChanged; | 385 | return mChanged; |
379 | } | 386 | } |
380 | 387 | ||
381 | void AddressEditDialog::addAddress() | 388 | void AddressEditDialog::addAddress() |
382 | { | 389 | { |
383 | AddressTypeDialog dlg( mTypeCombo->selectedType(), this ); | 390 | AddressTypeDialog dlg( mTypeCombo->selectedType(), this ); |
384 | if ( dlg.exec() ) { | 391 | if ( dlg.exec() ) { |
385 | mAddressList.append( Address( dlg.type() ) ); | 392 | mAddressList.append( Address( dlg.type() ) ); |
@@ -522,101 +529,101 @@ void AddressEditDialog::fillCountryCombo() | |||
522 | i18n( "Jamaica" ), i18n( "Japan" ), i18n( "Jordan" ), | 529 | i18n( "Jamaica" ), i18n( "Japan" ), i18n( "Jordan" ), |
523 | i18n( "Kazakhstan" ), i18n( "Kenya" ), i18n( "Kiribati" ), | 530 | i18n( "Kazakhstan" ), i18n( "Kenya" ), i18n( "Kiribati" ), |
524 | i18n( "Korea, North" ), i18n( "Korea, South" ), | 531 | i18n( "Korea, North" ), i18n( "Korea, South" ), |
525 | i18n( "Kuwait" ), i18n( "Kyrgyzstan" ), i18n( "Laos" ), | 532 | i18n( "Kuwait" ), i18n( "Kyrgyzstan" ), i18n( "Laos" ), |
526 | i18n( "Latvia" ), i18n( "Lebanon" ), i18n( "Lesotho" ), | 533 | i18n( "Latvia" ), i18n( "Lebanon" ), i18n( "Lesotho" ), |
527 | i18n( "Liberia" ), i18n( "Libya" ), i18n( "Liechtenstein" ), | 534 | i18n( "Liberia" ), i18n( "Libya" ), i18n( "Liechtenstein" ), |
528 | i18n( "Lithuania" ), i18n( "Luxembourg" ), i18n( "Macau" ), | 535 | i18n( "Lithuania" ), i18n( "Luxembourg" ), i18n( "Macau" ), |
529 | i18n( "Madagascar" ), i18n( "Malawi" ), i18n( "Malaysia" ), | 536 | i18n( "Madagascar" ), i18n( "Malawi" ), i18n( "Malaysia" ), |
530 | i18n( "Maldives" ), i18n( "Mali" ), i18n( "Malta" ), | 537 | i18n( "Maldives" ), i18n( "Mali" ), i18n( "Malta" ), |
531 | i18n( "Marshall Islands" ), i18n( "Martinique" ), i18n( "Mauritania" ), | 538 | i18n( "Marshall Islands" ), i18n( "Martinique" ), i18n( "Mauritania" ), |
532 | i18n( "Mauritius" ), i18n( "Mexico" ), | 539 | i18n( "Mauritius" ), i18n( "Mexico" ), |
533 | i18n( "Micronesia, Federated States Of" ), i18n( "Moldova" ), | 540 | i18n( "Micronesia, Federated States Of" ), i18n( "Moldova" ), |
534 | i18n( "Monaco" ), i18n( "Mongolia" ), i18n( "Montserrat" ), | 541 | i18n( "Monaco" ), i18n( "Mongolia" ), i18n( "Montserrat" ), |
535 | i18n( "Morocco" ), i18n( "Mozambique" ), i18n( "Myanmar" ), | 542 | i18n( "Morocco" ), i18n( "Mozambique" ), i18n( "Myanmar" ), |
536 | i18n( "Namibia" ), | 543 | i18n( "Namibia" ), |
537 | i18n( "Nauru" ), i18n( "Nepal" ), i18n( "Netherlands" ), | 544 | i18n( "Nauru" ), i18n( "Nepal" ), i18n( "Netherlands" ), |
538 | i18n( "Netherlands Antilles" ), i18n( "New Caledonia" ), | 545 | i18n( "Netherlands Antilles" ), i18n( "New Caledonia" ), |
539 | i18n( "New Zealand" ), i18n( "Nicaragua" ), i18n( "Niger" ), | 546 | i18n( "New Zealand" ), i18n( "Nicaragua" ), i18n( "Niger" ), |
540 | i18n( "Nigeria" ), i18n( "Niue" ), i18n( "North Korea" ), | 547 | i18n( "Nigeria" ), i18n( "Niue" ), i18n( "North Korea" ), |
541 | i18n( "Northern Ireland" ), i18n( "Northern Mariana Islands" ), | 548 | i18n( "Northern Ireland" ), i18n( "Northern Mariana Islands" ), |
542 | i18n( "Norway" ), i18n( "Oman" ), i18n( "Pakistan" ), i18n( "Palau" ), | 549 | i18n( "Norway" ), i18n( "Oman" ), i18n( "Pakistan" ), i18n( "Palau" ), |
543 | i18n( "Palestinian" ), i18n( "Panama" ), i18n( "Papua New Guinea" ), | 550 | i18n( "Palestinian" ), i18n( "Panama" ), i18n( "Papua New Guinea" ), |
544 | i18n( "Paraguay" ), i18n( "Peru" ), i18n( "Philippines" ), | 551 | i18n( "Paraguay" ), i18n( "Peru" ), i18n( "Philippines" ), |
545 | i18n( "Poland" ), i18n( "Portugal" ), i18n( "Puerto Rico" ), | 552 | i18n( "Poland" ), i18n( "Portugal" ), i18n( "Puerto Rico" ), |
546 | i18n( "Qatar" ), i18n( "Romania" ), i18n( "Russia" ), i18n( "Rwanda" ), | 553 | i18n( "Qatar" ), i18n( "Romania" ), i18n( "Russia" ), i18n( "Rwanda" ), |
547 | i18n( "St. Kitts and Nevis" ), i18n( "St. Lucia" ), | 554 | i18n( "St. Kitts and Nevis" ), i18n( "St. Lucia" ), |
548 | i18n( "St. Vincent and the Grenadines" ), i18n( "San Marino" ), | 555 | i18n( "St. Vincent and the Grenadines" ), i18n( "San Marino" ), |
549 | i18n( "Sao Tome and Principe" ), i18n( "Saudi Arabia" ), | 556 | i18n( "Sao Tome and Principe" ), i18n( "Saudi Arabia" ), |
550 | i18n( "Senegal" ), i18n( "Serbia & Montenegro" ), i18n( "Seychelles" ), | 557 | i18n( "Senegal" ), i18n( "Serbia & Montenegro" ), i18n( "Seychelles" ), |
551 | i18n( "Sierra Leone" ), i18n( "Singapore" ), i18n( "Slovakia" ), | 558 | i18n( "Sierra Leone" ), i18n( "Singapore" ), i18n( "Slovakia" ), |
552 | i18n( "Slovenia" ), i18n( "Solomon Islands" ), i18n( "Somalia" ), | 559 | i18n( "Slovenia" ), i18n( "Solomon Islands" ), i18n( "Somalia" ), |
553 | i18n( "South Africa" ), i18n( "South Korea" ), i18n( "Spain" ), | 560 | i18n( "South Africa" ), i18n( "South Korea" ), i18n( "Spain" ), |
554 | i18n( "Sri Lanka" ), i18n( "St. Kitts and Nevis" ), i18n( "Sudan" ), | 561 | i18n( "Sri Lanka" ), i18n( "St. Kitts and Nevis" ), i18n( "Sudan" ), |
555 | i18n( "Suriname" ), i18n( "Swaziland" ), i18n( "Sweden" ), | 562 | i18n( "Suriname" ), i18n( "Swaziland" ), i18n( "Sweden" ), |
556 | i18n( "Switzerland" ), i18n( "Syria" ), i18n( "Taiwan" ), | 563 | i18n( "Switzerland" ), i18n( "Syria" ), i18n( "Taiwan" ), |
557 | i18n( "Tajikistan" ), i18n( "Tanzania" ), i18n( "Thailand" ), | 564 | i18n( "Tajikistan" ), i18n( "Tanzania" ), i18n( "Thailand" ), |
558 | i18n( "Tibet" ), i18n( "Togo" ), i18n( "Tonga" ), | 565 | i18n( "Tibet" ), i18n( "Togo" ), i18n( "Tonga" ), |
559 | i18n( "Trinidad and Tobago" ), i18n( "Tunisia" ), i18n( "Turkey" ), | 566 | i18n( "Trinidad and Tobago" ), i18n( "Tunisia" ), i18n( "Turkey" ), |
560 | i18n( "Turkmenistan" ), i18n( "Turks and Caicos Islands" ), | 567 | i18n( "Turkmenistan" ), i18n( "Turks and Caicos Islands" ), |
561 | i18n( "Tuvalu" ), i18n( "Uganda " ), i18n( "Ukraine" ), | 568 | i18n( "Tuvalu" ), i18n( "Uganda " ), i18n( "Ukraine" ), |
562 | i18n( "United Arab Emirates" ), i18n( "United Kingdom" ), | 569 | i18n( "United Arab Emirates" ), i18n( "United Kingdom" ), |
563 | i18n( "United States" ), i18n( "Uruguay" ), i18n( "Uzbekistan" ), | 570 | i18n( "United States" ), i18n( "Uruguay" ), i18n( "Uzbekistan" ), |
564 | i18n( "Vanuatu" ), i18n( "Vatican City" ), i18n( "Venezuela" ), | 571 | i18n( "Vanuatu" ), i18n( "Vatican City" ), i18n( "Venezuela" ), |
565 | i18n( "Vietnam" ), i18n( "Western Samoa" ), i18n( "Yemen" ), | 572 | i18n( "Vietnam" ), i18n( "Western Samoa" ), i18n( "Yemen" ), |
566 | i18n( "Yugoslavia" ), i18n( "Zaire" ), i18n( "Zambia" ), | 573 | i18n( "Yugoslavia" ), i18n( "Zaire" ), i18n( "Zambia" ), |
567 | i18n( "Zimbabwe" ), | 574 | i18n( "Zimbabwe" ), |
568 | "" | 575 | "" |
569 | }; | 576 | }; |
570 | 577 | ||
571 | QStringList countries; | 578 | QStringList countries; |
572 | for ( int i = 0; !country[ i ].isEmpty(); ++i ) | 579 | for ( int i = 0; !country[ i ].isEmpty(); ++i ) |
573 | countries.append( country[ i ] ); | 580 | countries.append( country[ i ] ); |
574 | 581 | ||
575 | countries.sort(); | 582 | countries.sort(); |
576 | 583 | ||
577 | mCountryCombo->insertStringList( countries ); | 584 | mCountryCombo->insertStringList( countries ); |
578 | } | 585 | } |
579 | 586 | ||
580 | 587 | ||
581 | AddressTypeDialog::AddressTypeDialog( int type, QWidget *parent ) | 588 | AddressTypeDialog::AddressTypeDialog( int type, QWidget *parent ) |
582 | : KDialogBase( Plain, i18n( "Edit Address Type" ), Ok | Cancel, Ok, | 589 | : KDialogBase( Plain, i18n( "Edit Address Type" ), Ok | Cancel, Ok, |
583 | parent, "AddressTypeDialog" ) | 590 | parent, "AddressTypeDialog" ) |
584 | { | 591 | { |
585 | QWidget *page = plainPage(); | 592 | QWidget *page = plainPage(); |
586 | QVBoxLayout *layout = new QVBoxLayout( page ); | 593 | Q3VBoxLayout *layout = new Q3VBoxLayout( page ); |
587 | 594 | ||
588 | mGroup = new QButtonGroup( 2, Horizontal, i18n( "Address Types" ), page ); | 595 | mGroup = new Q3ButtonGroup( 2, Qt::Horizontal, i18n( "Address Types" ), page ); |
589 | layout->addWidget( mGroup ); | 596 | layout->addWidget( mGroup ); |
590 | 597 | ||
591 | mTypeList = KABC::Address::typeList(); | 598 | mTypeList = KABC::Address::typeList(); |
592 | mTypeList.remove( KABC::Address::Pref ); | 599 | mTypeList.remove( KABC::Address::Pref ); |
593 | 600 | ||
594 | KABC::Address::TypeList::Iterator it; | 601 | KABC::Address::TypeList::Iterator it; |
595 | for ( it = mTypeList.begin(); it != mTypeList.end(); ++it ) | 602 | for ( it = mTypeList.begin(); it != mTypeList.end(); ++it ) |
596 | new QCheckBox( KABC::Address::typeLabel( *it ), mGroup ); | 603 | new QCheckBox( KABC::Address::typeLabel( *it ), mGroup ); |
597 | 604 | ||
598 | for ( int i = 0; i < mGroup->count(); ++i ) { | 605 | for ( int i = 0; i < mGroup->count(); ++i ) { |
599 | QCheckBox *box = (QCheckBox*)mGroup->find( i ); | 606 | QCheckBox *box = (QCheckBox*)mGroup->find( i ); |
600 | box->setChecked( type & mTypeList[ i ] ); | 607 | box->setChecked( type & mTypeList[ i ] ); |
601 | } | 608 | } |
602 | } | 609 | } |
603 | 610 | ||
604 | AddressTypeDialog::~AddressTypeDialog() | 611 | AddressTypeDialog::~AddressTypeDialog() |
605 | { | 612 | { |
606 | } | 613 | } |
607 | 614 | ||
608 | int AddressTypeDialog::type() const | 615 | int AddressTypeDialog::type() const |
609 | { | 616 | { |
610 | int type = 0; | 617 | int type = 0; |
611 | for ( int i = 0; i < mGroup->count(); ++i ) { | 618 | for ( int i = 0; i < mGroup->count(); ++i ) { |
612 | QCheckBox *box = (QCheckBox*)mGroup->find( i ); | 619 | QCheckBox *box = (QCheckBox*)mGroup->find( i ); |
613 | if ( box->isChecked() ) | 620 | if ( box->isChecked() ) |
614 | type += mTypeList[ i ]; | 621 | type += mTypeList[ i ]; |
615 | } | 622 | } |
616 | 623 | ||
617 | return type; | 624 | return type; |
618 | } | 625 | } |
619 | 626 | ||
620 | #ifndef KAB_EMBEDDED | 627 | #ifndef KAB_EMBEDDED_ |
621 | #include "addresseditwidget.moc" | 628 | #include "moc_addresseditwidget.cpp" |
622 | #endif //KAB_EMBEDDED | 629 | #endif //KAB_EMBEDDED |