summaryrefslogtreecommitdiffabout
path: root/kaddressbook/phoneeditwidget.h
Unidiff
Diffstat (limited to 'kaddressbook/phoneeditwidget.h') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/phoneeditwidget.h21
1 files changed, 14 insertions, 7 deletions
diff --git a/kaddressbook/phoneeditwidget.h b/kaddressbook/phoneeditwidget.h
index c730c7b..df5aff9 100644
--- a/kaddressbook/phoneeditwidget.h
+++ b/kaddressbook/phoneeditwidget.h
@@ -6,93 +6,99 @@
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or 9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version. 10 (at your option) any later version.
11 11
12 This program is distributed in the hope that it will be useful, 12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details. 15 GNU General Public License for more details.
16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 20
21 As a special exception, permission is given to link this program 21 As a special exception, permission is given to link this program
22 with any edition of Qt, and distribute the resulting executable, 22 with any edition of Qt, and distribute the resulting executable,
23 without including the source code for Qt in the source distribution. 23 without including the source code for Qt in the source distribution.
24*/ 24*/
25 25
26#include <kdialogbase.h> 26#include <kdialogbase.h>
27#include <kiconloader.h> 27#include <kiconloader.h>
28#include <qpushbutton.h> 28#include <qpushbutton.h>
29#include <qlayout.h> 29#include <qlayout.h>
30#include <qpopupmenu.h>
30 31
31#include <qptrlist.h> 32#include <qptrlist.h>
32#include <qscrollview.h> 33#include <qscrollview.h>
33 34
34#include "addresseeconfig.h" 35#include "addresseeconfig.h"
35#include "typecombo.h" 36#include "typecombo.h"
36 37
37class QButtonGroup; 38class QButtonGroup;
38class QCheckBox; 39class QCheckBox;
39class PhoneTypeNumberEdit; 40class PhoneTypeNumberEdit;
40 41
41#include <klineedit.h> 42#include <klineedit.h>
42#include <kcombobox.h> 43#include <kcombobox.h>
43#include <kabc/phonenumber.h> 44#include <kabc/phonenumber.h>
44 45
45typedef TypeCombo<KABC::PhoneNumber> PhoneTypeCombo; 46typedef TypeCombo<KABC::PhoneNumber> PhoneTypeCombo;
46 47
47/** 48/**
48 Widget for editing phone numbers. 49 Widget for editing phone numbers.
49*/ 50*/
50class PhoneEditWidget : public QScrollView 51class PhoneEditWidget : public QWidget
51{ 52{
52 Q_OBJECT 53 Q_OBJECT
53 54
54 public: 55 public:
55 PhoneEditWidget( QWidget *parent, const char *name = 0 ); 56 PhoneEditWidget( QWidget *parent, const char *name = 0 );
56 ~PhoneEditWidget(); 57 ~PhoneEditWidget();
57 58
58 void setPhoneNumbers( const KABC::PhoneNumber::List &list ); 59 void setPhoneNumbers( const KABC::PhoneNumber::List &list );
59 KABC::PhoneNumber::List phoneNumbers(); 60 KABC::PhoneNumber::List phoneNumbers();
60 61
61 // void updateTypeCombo( const KABC::PhoneNumber::List&, KComboBox* ); 62 // void updateTypeCombo( const KABC::PhoneNumber::List&, KComboBox* );
62 //KABC::PhoneNumber currentPhoneNumber( KComboBox*, int ); 63 //KABC::PhoneNumber currentPhoneNumber( KComboBox*, int );
63 64
64 signals: 65 signals:
65 void modified(); 66 void modified();
66 void typeChange( int oldType, int newType ); 67 void typeChange( int oldType, int newType );
67 68
68 private slots: 69 private slots:
70 void bottomVisible();
71 void addNumberInt( int );
69 void deleteEdit( PhoneTypeNumberEdit* ew ); 72 void deleteEdit( PhoneTypeNumberEdit* ew );
70 void addNumber(); 73 void addNumber();
71 void pendingDelete(); 74 void pendingDelete();
72 protected: 75 protected:
73 76
74 private: 77 private:
78 QScrollView* sv;
79 QPopupMenu *mPopup;
80 int mPopupCount;
75 PhoneTypeNumberEdit* mPendingDelete; 81 PhoneTypeNumberEdit* mPendingDelete;
76 void setDefaults(); 82 void setDefaults();
77 PhoneTypeNumberEdit* appendEditCombo(); 83 PhoneTypeNumberEdit* appendEditCombo();
78 QWidget* mw; 84 QWidget* mw;
79 QVBoxLayout* mainLayout; 85 QVBoxLayout* mainLayout;
80 QPtrList <PhoneTypeNumberEdit> mTypeNumberEditList; 86 QPtrList <PhoneTypeNumberEdit> mTypeNumberEditList;
81 87
82 KABC::PhoneNumber::List mPhoneList; 88 KABC::PhoneNumber::List mPhoneList;
83}; 89};
84 90
85 91
86 92
87 93
88 94
89#if 0 95#if 0
90class PhoneEditWidget : public QWidget 96class PhoneEditWidget : public QWidget
91{ 97{
92 Q___OBJECT 98 Q___OBJECT
93 99
94 public: 100 public:
95 PhoneEditWidget( QWidget *parent, const char *name = 0 ); 101 PhoneEditWidget( QWidget *parent, const char *name = 0 );
96 ~PhoneEditWidget(); 102 ~PhoneEditWidget();
97 103
98 void setPhoneNumbers( const KABC::PhoneNumber::List &list ); 104 void setPhoneNumbers( const KABC::PhoneNumber::List &list );
@@ -205,83 +211,84 @@ public:
205 lay->setMargin( KDialogBase::marginHintSmall() ); 211 lay->setMargin( KDialogBase::marginHintSmall() );
206 mMinusButton = new QPushButton ( this ); 212 mMinusButton = new QPushButton ( this );
207 mMinusButton->setPixmap ( SmallIcon("minus")); 213 mMinusButton->setPixmap ( SmallIcon("minus"));
208 mCombo = new KComboBox( this ); 214 mCombo = new KComboBox( this );
209 mNumber = new KLineEdit( this ); 215 mNumber = new KLineEdit( this );
210 lay->addWidget( mMinusButton ); 216 lay->addWidget( mMinusButton );
211 lay->addWidget( mCombo ); 217 lay->addWidget( mCombo );
212 lay->addWidget( mNumber ); 218 lay->addWidget( mNumber );
213 connect( mMinusButton , SIGNAL ( clicked() ), this, SLOT ( deleteNumber() ) ); 219 connect( mMinusButton , SIGNAL ( clicked() ), this, SLOT ( deleteNumber() ) );
214 connect( mCombo , SIGNAL ( activated ( int ) ), this, SLOT ( comboTypeChange( int ) ) ); 220 connect( mCombo , SIGNAL ( activated ( int ) ), this, SLOT ( comboTypeChange( int ) ) );
215 connect( mNumber , SIGNAL ( textChanged ( const QString & ) ), 221 connect( mNumber , SIGNAL ( textChanged ( const QString & ) ),
216 this, SLOT ( textChanged ( const QString & ) ) ); 222 this, SLOT ( textChanged ( const QString & ) ) );
217 mCombo->insertStringList( PhoneNumber::supportedTypeListNames() ); 223 mCombo->insertStringList( PhoneNumber::supportedTypeListNames() );
218 } 224 }
219 ~PhoneTypeNumberEdit() { 225 ~PhoneTypeNumberEdit() {
220 // qDebug("~PhoneTypeNumberEdit() "); 226 // qDebug("~PhoneTypeNumberEdit() ");
221 } 227 }
222 void setPhoneNumber( const KABC::PhoneNumber &phoneNumber ) 228 void setPhoneNumber( const KABC::PhoneNumber &phoneNumber )
223 { 229 {
224 mPhoneNumber = phoneNumber; 230 mPhoneNumber = phoneNumber;
225 int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() ); 231 int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() );
226 mCombo->setCurrentItem( index ); 232 mCombo->setCurrentItem( index );
227 mNumber->setText( mPhoneNumber.number() ); 233 mNumber->setText( mPhoneNumber.number() );
228 show(); 234 show();
229 235 mNumber->setFocus();
230 } 236 }
231 KABC::PhoneNumber phoneNumber() 237 KABC::PhoneNumber phoneNumber()
232 { 238 {
233 mPhoneNumber.setNumber( mNumber->text() ); 239 mPhoneNumber.setNumber( mNumber->text() );
234 int index = mCombo->currentItem(); 240 int index = mCombo->currentItem();
235 mPhoneNumber.setType( PhoneNumber::supportedTypeList()[index] ); 241 mPhoneNumber.setType( PhoneNumber::supportedTypeList()[index] );
236 return mPhoneNumber; 242 return mPhoneNumber;
237 } 243 }
238 bool isValid() 244 bool isValid()
239 { 245 {
240 if ( mNumber->text().isEmpty() )return false; 246 if ( mNumber->text().isEmpty() )return false;
241 return true; 247 return true;
242 } 248 }
249 int currentType()
250 {
251 return mCombo->currentItem();
252 }
243 private slots: 253 private slots:
244 void typeExternalChanged( int oldType, int newType ) 254 void typeExternalChanged( int oldType, int newType )
245 { 255 {
246 if ( mPhoneNumber.type() == newType ) { 256 if ( mPhoneNumber.type() == newType ) {
247 mPhoneNumber.setType(oldType); 257 mPhoneNumber.setType(oldType);
248 int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() ); 258 int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() );
249 mCombo->setCurrentItem( index ); 259 mCombo->setCurrentItem( index );
250 } 260 }
251 } 261 }
252 void deleteNumber() 262 void deleteNumber()
253 { 263 {
254 emit deleteMe( this ); 264 emit deleteMe( this );
255 } 265 }
256 void comboTypeChange( int index ) 266 void comboTypeChange( int index )
257 { 267 {
258 int old = mPhoneNumber.type(); 268 int old = mPhoneNumber.type();
259 int newT = PhoneNumber::supportedTypeList()[index]; 269 int newT = PhoneNumber::supportedTypeList()[index];
260 if ( old != newT ) { 270 if ( old != newT ) {
261 emit modified(); 271 emit modified();
262 emit typeChange ( old, newT ); 272 if ( newT != PhoneNumber::Voice )
273 emit typeChange ( old, newT );
263 mPhoneNumber.setType(newT ); 274 mPhoneNumber.setType(newT );
264 } 275 }
265 276
266 } 277 }
267 int currentType()
268 {
269 return mCombo->currentItem();
270 }
271 void textChanged ( const QString & ) 278 void textChanged ( const QString & )
272 { 279 {
273 emit modified(); 280 emit modified();
274 } 281 }
275 signals: 282 signals:
276void typeChange( int oldType, int newType ); 283void typeChange( int oldType, int newType );
277 void modified(); 284 void modified();
278 void deleteMe( PhoneTypeNumberEdit* ); 285 void deleteMe( PhoneTypeNumberEdit* );
279 286
280private: 287private:
281 KABC::PhoneNumber mPhoneNumber; 288 KABC::PhoneNumber mPhoneNumber;
282 QPushButton* mMinusButton; 289 QPushButton* mMinusButton;
283 KComboBox *mCombo; 290 KComboBox *mCombo;
284 KLineEdit *mNumber; 291 KLineEdit *mNumber;
285}; 292};
286 293
287#endif 294#endif