summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/kaddressbook/germantranslation.txt4
-rw-r--r--kabc/phonenumber.cpp26
-rw-r--r--kabc/phonenumber.h3
-rw-r--r--kaddressbook/addresseeeditorwidget.cpp34
-rw-r--r--kaddressbook/phoneeditwidget.h79
5 files changed, 134 insertions, 12 deletions
diff --git a/bin/kdepim/kaddressbook/germantranslation.txt b/bin/kdepim/kaddressbook/germantranslation.txt
index 2ae6eb9..dcf43c1 100644
--- a/bin/kdepim/kaddressbook/germantranslation.txt
+++ b/bin/kdepim/kaddressbook/germantranslation.txt
@@ -827,8 +827,8 @@
827{ "Fax (Other)","Fax (Anderes)" }, 827{ "Fax (Other)","Fax (Anderes)" },
828{ "Primary","Bevorzugt" }, 828{ "Primary","Bevorzugt" },
829{ "Mobile (Home)","Handy (Privat)" }, 829{ "Mobile (Home)","Handy (Privat)" },
830{ "","" }, 830{ "Unfiled","Nicht zugeordnet" },
831{ "","" }, 831{ "Format.n.:","Format.N.:" },
832{ "","" }, 832{ "","" },
833{ "","" }, 833{ "","" },
834{ "","" }, 834{ "","" },
diff --git a/kabc/phonenumber.cpp b/kabc/phonenumber.cpp
index 0d46ba7..eee25a5 100644
--- a/kabc/phonenumber.cpp
+++ b/kabc/phonenumber.cpp
@@ -222,6 +222,32 @@ PhoneNumber::TypeList PhoneNumber::typeList()
222 222
223 return list; 223 return list;
224} 224}
225PhoneNumber::TypeList PhoneNumber::supportedTypeList()
226{
227 static TypeList list;
228 if ( list.count() == 0 )
229 list << (Home| Pref) << (Work| Pref) << Cell << Home << Work << Car << (Work| Msg | Voice) << (Work| Msg) << (Home | Fax) << (Work| Fax) << Fax<< (Pcs|Pref)<< Pcs<< Pager << Isdn << Video << Msg << Pref << Voice;
230 return list;
231}
232QStringList PhoneNumber::supportedTypeListNames()
233{
234 static QStringList list;
235 if ( list.count() == 0 )
236 list << i18n("Home") << i18n("Work") << i18n("Mobile") << i18n("Home2")<< i18n("Work2") << i18n("Mobile2 (Work)") << i18n("Assistent") << i18n("Company") << i18n("Fax (Home)") << i18n("Fax (Work)") << i18n("Fax (Other)") << i18n("SIP") << i18n("VoIP") << i18n("Pager") << i18n("ISDN") << i18n("Video") << i18n("Callback") << i18n("Primary")<< i18n("Other");
237 return list;
238}
239
240int PhoneNumber::typeListIndex4Type(int type )
241{
242 TypeList list = supportedTypeList();
243 int i = 0;
244 while ( i < list.count() ) {
245 if ( list [i] == type )
246 return i;
247 ++i;
248 }
249 return list.count()-1;
250}
225 251
226QString PhoneNumber::label( int type ) 252QString PhoneNumber::label( int type )
227{ 253{
diff --git a/kabc/phonenumber.h b/kabc/phonenumber.h
index b9d6a17..feeba6c 100644
--- a/kabc/phonenumber.h
+++ b/kabc/phonenumber.h
@@ -148,6 +148,9 @@ class PhoneNumber
148 @obsolete 148 @obsolete
149 */ 149 */
150 static QString label( int type ); 150 static QString label( int type );
151 static TypeList supportedTypeList();
152 static QStringList supportedTypeListNames();
153 static int typeListIndex4Type(int type );
151 bool simplifyNumber(); 154 bool simplifyNumber();
152 void simplifyType(); 155 void simplifyType();
153 void makeCompat(); 156 void makeCompat();
diff --git a/kaddressbook/addresseeeditorwidget.cpp b/kaddressbook/addresseeeditorwidget.cpp
index 310d628..9814cd5 100644
--- a/kaddressbook/addresseeeditorwidget.cpp
+++ b/kaddressbook/addresseeeditorwidget.cpp
@@ -154,7 +154,14 @@ void AddresseeEditorWidget::setupTab1()
154 QWidget *tab1 = new QWidget( mTabWidget ); 154 QWidget *tab1 = new QWidget( mTabWidget );
155 155
156//US QGridLayout *layout = new QGridLayout( tab1, 11, 7 ); 156//US QGridLayout *layout = new QGridLayout( tab1, 11, 7 );
157 QGridLayout *layout = new QGridLayout( tab1, 7, 1 ); 157 bool horLayout = false;
158 int maxCol = 1;
159 if ( QApplication::desktop()->width() == 640 || QApplication::desktop()->width() == 320 ) {
160 horLayout = true;
161 maxCol = 3;
162 }
163 QGridLayout *layout = new QGridLayout( tab1, 8-maxCol, maxCol );
164
158 layout->setMargin( KDialogBase::marginHintSmall() ); 165 layout->setMargin( KDialogBase::marginHintSmall() );
159 layout->setSpacing( KDialogBase::spacingHintSmall() ); 166 layout->setSpacing( KDialogBase::spacingHintSmall() );
160 167
@@ -206,14 +213,25 @@ void AddresseeEditorWidget::setupTab1()
206 //label->setBuddy( mOrgEdit ); 213 //label->setBuddy( mOrgEdit );
207 connect( mOrgEdit, SIGNAL( textChanged( const QString& ) ), 214 connect( mOrgEdit, SIGNAL( textChanged( const QString& ) ),
208 SLOT( textChanged( const QString& ) ) ); 215 SLOT( textChanged( const QString& ) ) );
209 layout->addWidget( button, 2, 0 ); 216 if ( horLayout ) {
210 layout->addWidget( mOrgEdit, 2, 1 ); 217 layout->addWidget( button, 1, 2 );
218 layout->addWidget( mOrgEdit, 1, 3 );
219
220 } else {
221 layout->addWidget( button, 2, 0 );
222 layout->addWidget( mOrgEdit, 2, 1 );
223 }
211 224
212 // File as (formatted name) 225 // File as (formatted name)
213 label = new QLabel( i18n( "Formatted name:" ), tab1 ); 226 label = new QLabel( i18n( "Format.n.:" ), tab1 );
214 mFormattedNameLabel = new KSqueezedTextLabel( tab1 ); 227 mFormattedNameLabel = new KSqueezedTextLabel( tab1 );
215 layout->addWidget( label, 3, 0 ); 228 if ( horLayout ) {
216 layout->addWidget( mFormattedNameLabel, 3, 1 ); 229 layout->addWidget( label, 0,2 );
230 layout->addWidget( mFormattedNameLabel, 0, 3 );
231 } else {
232 layout->addWidget( label, 3, 0 );
233 layout->addWidget( mFormattedNameLabel, 3, 1 );
234 }
217 /* LR 235 /* LR
218 // Left hand separator. This separator doesn't go all the way 236 // Left hand separator. This separator doesn't go all the way
219 // across so the dialog still flows from top to bottom 237 // across so the dialog still flows from top to bottom
@@ -240,7 +258,7 @@ void AddresseeEditorWidget::setupTab1()
240#else 258#else
241 iii = 8; 259 iii = 8;
242#endif 260#endif
243 layout->addMultiCellWidget( mPhoneEditWidget, 4, iii, 0, 1 ); 261 layout->addMultiCellWidget( mPhoneEditWidget, 4, iii, 0, maxCol );
244 ++iii; 262 ++iii;
245 /* LR 263 /* LR
246 bar = new KSeparator( KSeparator::HLine, tab1 ); 264 bar = new KSeparator( KSeparator::HLine, tab1 );
@@ -321,7 +339,7 @@ void AddresseeEditorWidget::setupTab1()
321 connect( mSecrecyWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); 339 connect( mSecrecyWidget, SIGNAL( changed() ), SLOT( emitModified() ) );
322 340
323//US layout->addMultiCellWidget( categoryBox, 11, 11, 0, 6 ); 341//US layout->addMultiCellWidget( categoryBox, 11, 11, 0, 6 );
324 layout->addMultiCellWidget( categoryBox, iii, iii, 0, 1 ); 342 layout->addMultiCellWidget( categoryBox, iii, iii, 0, maxCol );
325 343
326 // Build the layout and add to the tab widget 344 // Build the layout and add to the tab widget
327 layout->activate(); // required 345 layout->activate(); // required
diff --git a/kaddressbook/phoneeditwidget.h b/kaddressbook/phoneeditwidget.h
index 7fe4bc0..0241cf0 100644
--- a/kaddressbook/phoneeditwidget.h
+++ b/kaddressbook/phoneeditwidget.h
@@ -24,6 +24,10 @@
24*/ 24*/
25 25
26#include <kdialogbase.h> 26#include <kdialogbase.h>
27#include <kiconloader.h>
28#include <qpushbutton.h>
29#include <qlayout.h>
30
27 31
28#include "addresseeconfig.h" 32#include "addresseeconfig.h"
29#include "typecombo.h" 33#include "typecombo.h"
@@ -31,9 +35,9 @@
31class QButtonGroup; 35class QButtonGroup;
32class QCheckBox; 36class QCheckBox;
33 37
38#include <klineedit.h>
39#include <kcombobox.h>
34class KListView; 40class KListView;
35class KLineEdit;
36class KComboBox;
37 41
38typedef TypeCombo<KABC::PhoneNumber> PhoneTypeCombo; 42typedef TypeCombo<KABC::PhoneNumber> PhoneTypeCombo;
39 43
@@ -143,5 +147,76 @@ private:
143 QCheckBox *mPreferredBox; 147 QCheckBox *mPreferredBox;
144 KLineEdit *mNumber; 148 KLineEdit *mNumber;
145}; 149};
150class PhoneTypeNumberEdit : public QWidget
151{
152 Q_OBJECT
153public:
154 PhoneTypeNumberEdit( QWidget *parent, const char *name = 0 )
155 {
156 QHBoxLayout * lay = new QHBoxLayout( this );
157 lay->setSpacing( KDialogBase::spacingHintSmall() );
158 lay->setMargin( KDialogBase::marginHintSmall() );
159 mMinusButton = new QPushButton ( this );
160 mMinusButton->setPixmap ( SmallIcon("minus"));
161 mCombo = new KComboBox( this );
162 mNumber = new KLineEdit( this );
163 lay->addWidget( mMinusButton );
164 lay->addWidget( mCombo );
165 lay->addWidget( mNumber );
166 connect( mMinusButton , SIGNAL ( clicked() ), this, SLOT ( deleteNumber() ) );
167 connect( mCombo , SIGNAL ( activated ( int ) ), this, SLOT ( comboTypeChange( int ) ) );
168 mCombo->insertStringList( PhoneNumber::supportedTypeListNames() );
169 }
170
171 void setPhoneNumber( const KABC::PhoneNumber &phoneNumber )
172 {
173 mPhoneNumber = phoneNumber;
174 int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() );
175 mCombo->setCurrentItem( index );
176 mNumber->setText( mPhoneNumber.number() );
177 show();
178
179 }
180 KABC::PhoneNumber phoneNumber()
181 {
182 mPhoneNumber.setNumber( mNumber->text() );
183 int index = mCombo->currentItem();
184 mPhoneNumber.setType( PhoneNumber::supportedTypeList()[index] );
185 return mPhoneNumber;
186
187 }
188 private slots:
189 void typeExternalChanged( int oldType, int newType )
190 {
191 if ( mPhoneNumber.type() == newType ) {
192 mPhoneNumber.setType(oldType);
193 int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() );
194 mCombo->setCurrentItem( index );
195 }
196
197 }
198 void deleteNumber()
199 {
200 hide();
201 }
202 void comboTypeChange( int index )
203 {
204 int old = mPhoneNumber.type();
205 int newT = PhoneNumber::supportedTypeList()[index];
206 if ( old != newT ) {
207 mPhoneNumber.setType(newT );
208 emit typeChange ( old, newT );
209 }
210
211 }
212 signals:
213void typeChange( int oldType, int newType );
214
215private:
216 KABC::PhoneNumber mPhoneNumber;
217 QPushButton* mMinusButton;
218 KComboBox *mCombo;
219 KLineEdit *mNumber;
220};
146 221
147#endif 222#endif