summaryrefslogtreecommitdiffabout
path: root/kaddressbook/phoneeditwidget.h
Unidiff
Diffstat (limited to 'kaddressbook/phoneeditwidget.h') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/phoneeditwidget.h112
1 files changed, 0 insertions, 112 deletions
diff --git a/kaddressbook/phoneeditwidget.h b/kaddressbook/phoneeditwidget.h
index 0477b6c..fbf9fe7 100644
--- a/kaddressbook/phoneeditwidget.h
+++ b/kaddressbook/phoneeditwidget.h
@@ -1,295 +1,183 @@
1#ifndef PHONEEDITWIDGET_H 1#ifndef PHONEEDITWIDGET_H
2#define PHONEEDITWIDGET_H 2#define PHONEEDITWIDGET_H
3/* 3/*
4 This file is part of KAddressBook. 4 This file is part of KAddressBook.
5 Copyright (c) 2002 Mike Pilone <mpilone@slac.com> 5 Copyright (c) 2002 Mike Pilone <mpilone@slac.com>
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#include <qpopupmenu.h>
31 31
32#include <qptrlist.h> 32#include <qptrlist.h>
33#include <qscrollview.h> 33#include <qscrollview.h>
34 34
35#include "addresseeconfig.h" 35#include "addresseeconfig.h"
36#include "typecombo.h" 36#include "typecombo.h"
37 37
38class QButtonGroup; 38class QButtonGroup;
39class QCheckBox; 39class QCheckBox;
40class PhoneTypeNumberEdit; 40class PhoneTypeNumberEdit;
41 41
42#include <klineedit.h> 42#include <klineedit.h>
43#include <kcombobox.h> 43#include <kcombobox.h>
44#include <kabc/phonenumber.h> 44#include <kabc/phonenumber.h>
45 45
46typedef TypeCombo<KABC::PhoneNumber> PhoneTypeCombo; 46typedef TypeCombo<KABC::PhoneNumber> PhoneTypeCombo;
47 47
48/** 48/**
49 Widget for editing phone numbers. 49 Widget for editing phone numbers.
50*/ 50*/
51class PhoneEditWidget : public QWidget 51class PhoneEditWidget : public QWidget
52{ 52{
53 Q_OBJECT 53 Q_OBJECT
54 54
55 public: 55 public:
56 PhoneEditWidget( QWidget *parent, const char *name = 0 ); 56 PhoneEditWidget( QWidget *parent, const char *name = 0 );
57 ~PhoneEditWidget(); 57 ~PhoneEditWidget();
58 58
59 void setPhoneNumbers( const KABC::PhoneNumber::List &list ); 59 void setPhoneNumbers( const KABC::PhoneNumber::List &list );
60 KABC::PhoneNumber::List phoneNumbers(); 60 KABC::PhoneNumber::List phoneNumbers();
61 61
62 // void updateTypeCombo( const KABC::PhoneNumber::List&, KComboBox* ); 62 // void updateTypeCombo( const KABC::PhoneNumber::List&, KComboBox* );
63 //KABC::PhoneNumber currentPhoneNumber( KComboBox*, int ); 63 //KABC::PhoneNumber currentPhoneNumber( KComboBox*, int );
64 64
65 signals: 65 signals:
66 void modified(); 66 void modified();
67 void typeChange( int oldType, int newType ); 67 void typeChange( int oldType, int newType );
68 68
69 private slots: 69 private slots:
70 void bottomVisible(); 70 void bottomVisible();
71 void addNumberInt( int ); 71 void addNumberInt( int );
72 void deleteEdit( PhoneTypeNumberEdit* ew ); 72 void deleteEdit( PhoneTypeNumberEdit* ew );
73 void addNumber(); 73 void addNumber();
74 void pendingDelete(); 74 void pendingDelete();
75 protected: 75 protected:
76 76
77 private: 77 private:
78 QScrollView* sv; 78 QScrollView* sv;
79 QPopupMenu *mPopup; 79 QPopupMenu *mPopup;
80 int mPopupCount; 80 int mPopupCount;
81 PhoneTypeNumberEdit* mPendingDelete; 81 PhoneTypeNumberEdit* mPendingDelete;
82 void setDefaults(); 82 void setDefaults();
83 PhoneTypeNumberEdit* appendEditCombo(); 83 PhoneTypeNumberEdit* appendEditCombo();
84 QWidget* mw; 84 QWidget* mw;
85 QVBoxLayout* mainLayout; 85 QVBoxLayout* mainLayout;
86 QPtrList <PhoneTypeNumberEdit> mTypeNumberEditList; 86 QPtrList <PhoneTypeNumberEdit> mTypeNumberEditList;
87 87
88 KABC::PhoneNumber::List mPhoneList;
89}; 88};
90 89
91 90
92
93
94
95#if 0
96class PhoneEditWidget : public QWidget
97{
98 Q___OBJECT
99
100 public:
101 PhoneEditWidget( QWidget *parent, const char *name = 0 );
102 ~PhoneEditWidget();
103
104 void setPhoneNumbers( const KABC::PhoneNumber::List &list );
105 KABC::PhoneNumber::List phoneNumbers();
106
107 void updateTypeCombo( const KABC::PhoneNumber::List&, KComboBox* );
108 KABC::PhoneNumber currentPhoneNumber( KComboBox*, int );
109
110 sig_nals:
111 void modified();
112 void typeChange( int oldType, int newType );
113
114 private sl_ots:
115 void edit();
116
117 void updatePrefEdit();
118 void updateSecondEdit();
119 void updateThirdEdit();
120 void updateFourthEdit();
121
122 void slotPrefEditChanged();
123 void slotSecondEditChanged();
124 void slotThirdEditChanged();
125 void slotFourthEditChanged();
126
127 protected:
128 void updateLineEdits();
129 void updateCombos();
130
131 private:
132 QPtrList <PhoneTypeNumberEdit> mTypeNumberEditList;
133 void updateEdit( PhoneTypeCombo *combo );
134 void updatePhoneNumber( PhoneTypeCombo *combo );
135 void updateOtherEdit( PhoneTypeCombo *combo, PhoneTypeCombo *otherCombo );
136
137 PhoneTypeCombo *mPrefCombo;
138 PhoneTypeCombo *mSecondCombo;
139 PhoneTypeCombo *mThirdCombo;
140 PhoneTypeCombo *mFourthCombo;
141
142 KLineEdit *mPrefEdit;
143 KLineEdit *mSecondEdit;
144 KLineEdit *mThirdEdit;
145 KLineEdit *mFourthEdit;
146
147 KABC::PhoneNumber::List mPhoneList;
148};
149
150/**
151 Dialog for editing lists of phonenumbers.
152*/
153class PhoneEditDialog : public KDialogBase
154{
155 Q___OBJECT
156
157 public:
158 PhoneEditDialog( const KABC::PhoneNumber::List &list, QWidget *parent, const char *name = 0 );
159 ~PhoneEditDialog();
160
161 const KABC::PhoneNumber::List &phoneNumbers();
162 bool changed() const;
163
164 protected s__lots:
165 void slotAddPhoneNumber();
166 void slotRemovePhoneNumber();
167 void slotEditPhoneNumber();
168 void slotSelectionChanged();
169
170 private:
171 KABC::PhoneNumber::List mPhoneNumberList;
172 KABC::PhoneNumber::TypeList mTypeList;
173 KComboBox *mTypeBox;
174 KListView *mListView;
175
176 QPushButton *mRemoveButton;
177 QPushButton *mEditButton;
178
179 bool mChanged;
180};
181
182/**
183 Dialog for editing phone number types.
184*/
185class PhoneTypeDialog : public KDialogBase
186{
187 Q___OBJECT
188public:
189 PhoneTypeDialog( const KABC::PhoneNumber &phoneNumber, QWidget *parent, const char *name = 0 );
190
191 KABC::PhoneNumber phoneNumber();
192
193private:
194 KABC::PhoneNumber mPhoneNumber;
195 KABC::PhoneNumber::TypeList mTypeList;
196
197 QButtonGroup *mGroup;
198 QCheckBox *mPreferredBox;
199 KLineEdit *mNumber;
200};
201#endif
202
203class PhoneTypeNumberEdit : public QWidget 91class PhoneTypeNumberEdit : public QWidget
204{ 92{
205 Q_OBJECT 93 Q_OBJECT
206public: 94public:
207 PhoneTypeNumberEdit( QWidget *parent, const char *name = 0 ) :QWidget( parent ) 95 PhoneTypeNumberEdit( QWidget *parent, const char *name = 0 ) :QWidget( parent )
208 { 96 {
209 QHBoxLayout * lay = new QHBoxLayout( this ); 97 QHBoxLayout * lay = new QHBoxLayout( this );
210 lay->setSpacing( 2 ); 98 lay->setSpacing( 2 );
211 lay->setMargin( 0 ); 99 lay->setMargin( 0 );
212 mMinusButton = new QPushButton ( this ); 100 mMinusButton = new QPushButton ( this );
213 mMinusButton->setPixmap ( SmallIcon("minus")); 101 mMinusButton->setPixmap ( SmallIcon("minus"));
214 mCombo = new KComboBox( this ); 102 mCombo = new KComboBox( this );
215 mNumber = new KLineEdit( this ); 103 mNumber = new KLineEdit( this );
216 mMinusButton->setMaximumHeight( mNumber->sizeHint().height() + 6); 104 mMinusButton->setMaximumHeight( mNumber->sizeHint().height() + 6);
217 lay->addWidget( mMinusButton ); 105 lay->addWidget( mMinusButton );
218 lay->addWidget( mCombo ); 106 lay->addWidget( mCombo );
219 lay->addWidget( mNumber ); 107 lay->addWidget( mNumber );
220 connect( mMinusButton , SIGNAL ( clicked() ), this, SLOT ( deleteNumber() ) ); 108 connect( mMinusButton , SIGNAL ( clicked() ), this, SLOT ( deleteNumber() ) );
221 connect( mCombo , SIGNAL ( activated ( int ) ), this, SLOT ( comboTypeChange( int ) ) ); 109 connect( mCombo , SIGNAL ( activated ( int ) ), this, SLOT ( comboTypeChange( int ) ) );
222 connect( mNumber , SIGNAL ( textChanged ( const QString & ) ), 110 connect( mNumber , SIGNAL ( textChanged ( const QString & ) ),
223 this, SLOT ( textChanged ( const QString & ) ) ); 111 this, SLOT ( textChanged ( const QString & ) ) );
224 mCombo->insertStringList( PhoneNumber::supportedTypeListNames() ); 112 mCombo->insertStringList( PhoneNumber::supportedTypeListNames() );
225 } 113 }
226 ~PhoneTypeNumberEdit() { 114 ~PhoneTypeNumberEdit() {
227 // qDebug("~PhoneTypeNumberEdit() "); 115 // qDebug("~PhoneTypeNumberEdit() ");
228 } 116 }
229 void setPhoneNumber( const KABC::PhoneNumber &phoneNumber ) 117 void setPhoneNumber( const KABC::PhoneNumber &phoneNumber )
230 { 118 {
231 mPhoneNumber = phoneNumber; 119 mPhoneNumber = phoneNumber;
232 int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() ); 120 int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() );
233 mCombo->setCurrentItem( index ); 121 mCombo->setCurrentItem( index );
234 mNumber->setText( mPhoneNumber.number() ); 122 mNumber->setText( mPhoneNumber.number() );
235 show(); 123 show();
236 mNumber->setFocus(); 124 mNumber->setFocus();
237 } 125 }
238 KABC::PhoneNumber phoneNumber() 126 KABC::PhoneNumber phoneNumber()
239 { 127 {
240 mPhoneNumber.setNumber( mNumber->text() ); 128 mPhoneNumber.setNumber( mNumber->text() );
241 int index = mCombo->currentItem(); 129 int index = mCombo->currentItem();
242 mPhoneNumber.setType( PhoneNumber::supportedTypeList()[index] ); 130 mPhoneNumber.setType( PhoneNumber::supportedTypeList()[index] );
243 return mPhoneNumber; 131 return mPhoneNumber;
244 } 132 }
245 bool isValid() 133 bool isValid()
246 { 134 {
247 if ( mNumber->text().isEmpty() )return false; 135 if ( mNumber->text().isEmpty() )return false;
248 return true; 136 return true;
249 } 137 }
250 int currentType() 138 int currentType()
251 { 139 {
252 return mCombo->currentItem(); 140 return mCombo->currentItem();
253 } 141 }
254 private slots: 142 private slots:
255 void typeExternalChanged( int oldType, int newType ) 143 void typeExternalChanged( int oldType, int newType )
256 { 144 {
257 if ( mPhoneNumber.type() == newType ) { 145 if ( mPhoneNumber.type() == newType ) {
258 mPhoneNumber.setType(oldType); 146 mPhoneNumber.setType(oldType);
259 int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() ); 147 int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() );
260 mCombo->setCurrentItem( index ); 148 mCombo->setCurrentItem( index );
261 } 149 }
262 } 150 }
263 void deleteNumber() 151 void deleteNumber()
264 { 152 {
265 emit deleteMe( this ); 153 emit deleteMe( this );
266 } 154 }
267 void comboTypeChange( int index ) 155 void comboTypeChange( int index )
268 { 156 {
269 int old = mPhoneNumber.type(); 157 int old = mPhoneNumber.type();
270 int newT = PhoneNumber::supportedTypeList()[index]; 158 int newT = PhoneNumber::supportedTypeList()[index];
271 if ( old != newT ) { 159 if ( old != newT ) {
272 emit modified(); 160 emit modified();
273 if ( newT != PhoneNumber::Voice ) 161 if ( newT != PhoneNumber::Voice )
274 emit typeChange ( old, newT ); 162 emit typeChange ( old, newT );
275 mPhoneNumber.setType(newT ); 163 mPhoneNumber.setType(newT );
276 } 164 }
277 165
278 } 166 }
279 void textChanged ( const QString & ) 167 void textChanged ( const QString & )
280 { 168 {
281 emit modified(); 169 emit modified();
282 } 170 }
283 signals: 171 signals:
284void typeChange( int oldType, int newType ); 172void typeChange( int oldType, int newType );
285 void modified(); 173 void modified();
286 void deleteMe( PhoneTypeNumberEdit* ); 174 void deleteMe( PhoneTypeNumberEdit* );
287 175
288private: 176private:
289 KABC::PhoneNumber mPhoneNumber; 177 KABC::PhoneNumber mPhoneNumber;
290 QPushButton* mMinusButton; 178 QPushButton* mMinusButton;
291 KComboBox *mCombo; 179 KComboBox *mCombo;
292 KLineEdit *mNumber; 180 KLineEdit *mNumber;
293}; 181};
294 182
295#endif 183#endif