summaryrefslogtreecommitdiffabout
path: root/kaddressbook/phoneeditwidget.h
Side-by-side diff
Diffstat (limited to 'kaddressbook/phoneeditwidget.h') (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/phoneeditwidget.h87
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;