Diffstat (limited to 'kaddressbook/phoneeditwidget.h') (more/less context) (show whitespace changes)
-rw-r--r-- | kaddressbook/phoneeditwidget.h | 87 |
1 files changed, 76 insertions, 11 deletions
diff --git a/kaddressbook/phoneeditwidget.h b/kaddressbook/phoneeditwidget.h index 0241cf0..6a514ed 100644 --- a/kaddressbook/phoneeditwidget.h +++ b/kaddressbook/phoneeditwidget.h @@ -29,4 +29,6 @@ #include <qlayout.h> +#include <qptrlist.h> +#include <qscrollview.h> #include "addresseeconfig.h" @@ -35,8 +37,9 @@ class QButtonGroup; class QCheckBox; +class PhoneTypeNumberEdit; #include <klineedit.h> #include <kcombobox.h> -class KListView; +#include <kabc/phonenumber.h> typedef TypeCombo<KABC::PhoneNumber> PhoneTypeCombo; @@ -45,5 +48,5 @@ typedef TypeCombo<KABC::PhoneNumber> PhoneTypeCombo; Widget for editing phone numbers. */ -class PhoneEditWidget : public QWidget +class PhoneEditWidget : public QScrollView { Q_OBJECT @@ -56,11 +59,49 @@ class PhoneEditWidget : public QWidget KABC::PhoneNumber::List phoneNumbers(); - void updateTypeCombo( const KABC::PhoneNumber::List&, KComboBox* ); - KABC::PhoneNumber currentPhoneNumber( KComboBox*, int ); + // void updateTypeCombo( const KABC::PhoneNumber::List&, KComboBox* ); + //KABC::PhoneNumber currentPhoneNumber( KComboBox*, int ); signals: void modified(); + void typeChange( int oldType, int newType ); private slots: + void addNumber(); + protected: + + private: + void setDefaults(); + PhoneTypeNumberEdit* appendEditCombo(); + QWidget* mw; + QVBoxLayout* mainLayout; + QPtrList <PhoneTypeNumberEdit> mTypeNumberEditList; + + KABC::PhoneNumber::List mPhoneList; +}; + + + + + +#if 0 +class PhoneEditWidget : public QWidget +{ + Q___OBJECT + + public: + PhoneEditWidget( QWidget *parent, const char *name = 0 ); + ~PhoneEditWidget(); + + void setPhoneNumbers( const KABC::PhoneNumber::List &list ); + KABC::PhoneNumber::List phoneNumbers(); + + void updateTypeCombo( const KABC::PhoneNumber::List&, KComboBox* ); + KABC::PhoneNumber currentPhoneNumber( KComboBox*, int ); + + sig_nals: + void modified(); + void typeChange( int oldType, int newType ); + + private sl_ots: void edit(); @@ -80,4 +121,5 @@ class PhoneEditWidget : public QWidget private: + QPtrList <PhoneTypeNumberEdit> mTypeNumberEditList; void updateEdit( PhoneTypeCombo *combo ); void updatePhoneNumber( PhoneTypeCombo *combo ); @@ -102,5 +144,5 @@ class PhoneEditWidget : public QWidget class PhoneEditDialog : public KDialogBase { - Q_OBJECT + Q___OBJECT public: @@ -111,5 +153,5 @@ class PhoneEditDialog : public KDialogBase bool changed() const; - protected slots: + protected s__lots: void slotAddPhoneNumber(); void slotRemovePhoneNumber(); @@ -134,5 +176,5 @@ class PhoneEditDialog : public KDialogBase class PhoneTypeDialog : public KDialogBase { - Q_OBJECT + Q___OBJECT public: PhoneTypeDialog( const KABC::PhoneNumber &phoneNumber, QWidget *parent, const char *name = 0 ); @@ -148,9 +190,11 @@ private: KLineEdit *mNumber; }; +#endif + class PhoneTypeNumberEdit : public QWidget { Q_OBJECT public: - PhoneTypeNumberEdit( QWidget *parent, const char *name = 0 ) + PhoneTypeNumberEdit( QWidget *parent, const char *name = 0 ) :QWidget( parent ) { QHBoxLayout * lay = new QHBoxLayout( this ); @@ -166,5 +210,8 @@ public: connect( mMinusButton , SIGNAL ( clicked() ), this, SLOT ( deleteNumber() ) ); connect( mCombo , SIGNAL ( activated ( int ) ), this, SLOT ( comboTypeChange( int ) ) ); + connect( mNumber , SIGNAL ( textChanged ( const QString & ) ), + this, SLOT ( textChanged ( const QString & ) ) ); mCombo->insertStringList( PhoneNumber::supportedTypeListNames() ); + mIsValid = true; } @@ -175,4 +222,5 @@ public: mCombo->setCurrentItem( index ); mNumber->setText( mPhoneNumber.number() ); + mIsValid = true; show(); @@ -184,5 +232,10 @@ public: mPhoneNumber.setType( PhoneNumber::supportedTypeList()[index] ); return mPhoneNumber; - + } + bool isValid() + { + if ( !mIsValid ) return false; + if ( mNumber->text().isEmpty() )return false; + return true; } private slots: @@ -194,9 +247,10 @@ public: mCombo->setCurrentItem( index ); } - } void deleteNumber() { + emit modified(); hide(); + mIsValid = false; } void comboTypeChange( int index ) @@ -205,13 +259,24 @@ public: int newT = PhoneNumber::supportedTypeList()[index]; if ( old != newT ) { - mPhoneNumber.setType(newT ); + emit modified(); emit typeChange ( old, newT ); + mPhoneNumber.setType(newT ); } } + int currentType() + { + return mCombo->currentItem(); + } + void textChanged ( const QString & ) + { + emit modified(); + } signals: void typeChange( int oldType, int newType ); + void modified(); private: + bool mIsValid; KABC::PhoneNumber mPhoneNumber; QPushButton* mMinusButton; |