summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/kaddressbook/germantranslation.txt4
-rw-r--r--kabc/addressee.cpp4
-rw-r--r--kabc/addresseeview.cpp2
-rw-r--r--kaddressbook/phoneeditwidget.cpp112
-rw-r--r--kaddressbook/phoneeditwidget.h87
5 files changed, 193 insertions, 16 deletions
diff --git a/bin/kdepim/kaddressbook/germantranslation.txt b/bin/kdepim/kaddressbook/germantranslation.txt
index dcf43c1..f12f880 100644
--- a/bin/kdepim/kaddressbook/germantranslation.txt
+++ b/bin/kdepim/kaddressbook/germantranslation.txt
@@ -821,8 +821,8 @@
{ "Fax (Home)","Fax (Privat)" },
{ "Assistent","Sekretär(in)" },
{ "Company","Firma" },
-{ "Mobile2 (work)","Handy2 (Arbeit)" },
-{ "Mobile2 (car)","Handy2 (Auto)" },
+{ "Mobile2 (Work)","Handy2 (Arbeit)" },
+{ "Mobile2 (Car)","Handy2 (Auto)" },
{ "Callback","Rückruf" },
{ "Fax (Other)","Fax (Anderes)" },
{ "Primary","Bevorzugt" },
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp
index 19c78ee..789a694 100644
--- a/kabc/addressee.cpp
+++ b/kabc/addressee.cpp
@@ -1059,7 +1059,7 @@ QString Addressee::mobilePhoneLabel()
}
QString Addressee::mobileWorkPhoneLabel()
{
- return i18n("Mobile2 (work)");
+ return i18n("Mobile2 (Work)");
}
QString Addressee::mobileHomePhoneLabel()
{
@@ -1081,7 +1081,7 @@ QString Addressee::businessFaxLabel()
QString Addressee::carPhoneLabel()
{
- return i18n("Mobile2 (car)");
+ return i18n("Mobile2 (Car)");
}
diff --git a/kabc/addresseeview.cpp b/kabc/addresseeview.cpp
index 05d604f..aae923c 100644
--- a/kabc/addresseeview.cpp
+++ b/kabc/addresseeview.cpp
@@ -584,9 +584,11 @@ QString AddresseeView::getPhoneNumbers( KABC::PhoneNumber::List phones ,bool pr
else if ((phonetype & KABC::PhoneNumber::Pager) == KABC::PhoneNumber::Pager) {
if (kpagerAvail) extension = "pagerto:";
}
+#if 0
else if ((phonetype & KABC::PhoneNumber::Sip) == KABC::PhoneNumber::Sip) {
if (ksipAvail) extension = "sipto:";
}
+#endif
else if (kphoneAvail) {
extension = "phoneto:";
}
diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp
index 2bce39a..b20275d 100644
--- a/kaddressbook/phoneeditwidget.cpp
+++ b/kaddressbook/phoneeditwidget.cpp
@@ -30,6 +30,7 @@
#include <qlistbox.h>
#include <qlistview.h>
#include <qbuttongroup.h>
+#include <qhbox.h>
#include <kbuttonbox.h>
#include <klistview.h>
@@ -50,6 +51,115 @@
#include "phoneeditwidget.h"
PhoneEditWidget::PhoneEditWidget( QWidget *parent, const char *name )
+ : QScrollView(parent,name)
+{
+ setFrameStyle ( QFrame::Panel | QFrame::Plain );
+ setLineWidth ( 1 );
+ setMidLineWidth ( 1 );
+ mw = new QWidget ( viewport() );
+ addChild(mw);
+ setResizePolicy( AutoOneFit );
+ mainLayout = new QVBoxLayout ( mw );
+ mainLayout->setMargin( 2 );
+ mainLayout->setSpacing( 2 );
+ QWidget* hb = new QWidget ( mw );
+ mainLayout->add( hb );
+ QHBoxLayout* hbLayout = new QHBoxLayout ( hb );
+ QPushButton *addBut = new QPushButton ( "add", hb );
+ hbLayout->add( addBut );
+ addBut->setPixmap ( SmallIcon("plus"));
+ addBut->setMaximumSize( addBut->sizeHint().height(),addBut->sizeHint().height() );
+ connect(addBut,SIGNAL(clicked()),SLOT(addNumber()));
+ //QLabel * temp = new QLabel( i18n("Phone Type"), hb );
+ QLabel *temp = new QLabel( i18n("Phone Number"),hb );
+ temp->setAlignment( Qt::AlignCenter );
+ temp->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) );
+ hbLayout->add( temp );
+ appendEditCombo();
+ appendEditCombo();
+ appendEditCombo();
+ setDefaults();
+}
+
+PhoneEditWidget::~PhoneEditWidget()
+{
+}
+void PhoneEditWidget::setDefaults()
+{
+ PhoneTypeNumberEdit* edit = mTypeNumberEditList.first();
+ KABC::PhoneNumber phoneNumber;
+ phoneNumber.setType( KABC::PhoneNumber::Home | KABC::PhoneNumber::Pref );
+ edit->setPhoneNumber( phoneNumber );
+ edit = mTypeNumberEditList.next();
+ phoneNumber.setType( KABC::PhoneNumber::Work | KABC::PhoneNumber::Pref );
+ edit->setPhoneNumber( phoneNumber );
+ edit = mTypeNumberEditList.next();
+ phoneNumber.setType( KABC::PhoneNumber::Cell );
+ edit->setPhoneNumber( phoneNumber );
+ edit = mTypeNumberEditList.next();
+ while ( edit ) {
+ edit->hide();
+ edit = mTypeNumberEditList.next();
+ }
+}
+void PhoneEditWidget::addNumber()
+{
+
+}
+PhoneTypeNumberEdit* PhoneEditWidget::appendEditCombo()
+{
+ PhoneTypeNumberEdit* edit = new PhoneTypeNumberEdit( mw );
+ connect ( edit, SIGNAL ( typeChange( int , int) ), this, SIGNAL ( typeChange( int , int)) );
+ connect ( edit, SIGNAL ( modified() ), this, SIGNAL ( modified() ) );
+ connect ( this, SIGNAL ( typeChange( int , int)), edit, SLOT ( typeExternalChanged( int, int)) );
+
+ mainLayout->add( edit );
+ mTypeNumberEditList.append( edit );
+ return edit;
+}
+
+void PhoneEditWidget::setPhoneNumbers( const KABC::PhoneNumber::List &li )
+{
+ if ( li.isEmpty() ) {
+ setDefaults();
+ return;
+ }
+ KABC::PhoneNumber::List::Iterator it;
+ KABC::PhoneNumber::List list = li;
+ PhoneTypeNumberEdit* edit = mTypeNumberEditList.first();
+ for ( it = list.begin(); it != list.end(); ++it ) {
+ if ( edit ) {
+ edit->setPhoneNumber( (*it ) );
+ edit = mTypeNumberEditList.next();
+ } else {
+ PhoneTypeNumberEdit* editNew = appendEditCombo();
+ editNew->setPhoneNumber( (*it ) );
+ }
+ }
+ while ( edit ) {
+ edit->hide();
+ edit = mTypeNumberEditList.next();
+ }
+ //mainLayout->invalidate ();
+ mw->update();
+}
+KABC::PhoneNumber::List PhoneEditWidget::phoneNumbers()
+{
+ KABC::PhoneNumber::List retList;
+
+ PhoneTypeNumberEdit* edit = mTypeNumberEditList.first();
+ while ( edit ) {
+ if ( edit->isValid() ) {
+ retList.append( edit->phoneNumber());
+ }
+ edit = mTypeNumberEditList.next();
+
+ }
+ return retList;
+}
+
+#if 0
+PhoneEditWidget::PhoneEditWidget( QWidget *parent, const char *name )
: QWidget( parent, name )
{
QGridLayout *layout = new QGridLayout( this, 4, 1 );
@@ -550,7 +660,7 @@ KABC::PhoneNumber PhoneTypeDialog::phoneNumber()
return mPhoneNumber;
}
-
+#endif
#ifndef KAB_EMBEDDED
#include "phoneeditwidget.moc"
#endif //KAB_EMBEDDED
diff --git a/kaddressbook/phoneeditwidget.h b/kaddressbook/phoneeditwidget.h
index 0241cf0..6a514ed 100644
--- a/kaddressbook/phoneeditwidget.h
+++ b/kaddressbook/phoneeditwidget.h
@@ -28,23 +28,26 @@
#include <qpushbutton.h>
#include <qlayout.h>
+#include <qptrlist.h>
+#include <qscrollview.h>
#include "addresseeconfig.h"
#include "typecombo.h"
class QButtonGroup;
class QCheckBox;
+class PhoneTypeNumberEdit;
#include <klineedit.h>
#include <kcombobox.h>
-class KListView;
+#include <kabc/phonenumber.h>
typedef TypeCombo<KABC::PhoneNumber> PhoneTypeCombo;
/**
Widget for editing phone numbers.
*/
-class PhoneEditWidget : public QWidget
+class PhoneEditWidget : public QScrollView
{
Q_OBJECT
@@ -55,13 +58,51 @@ class PhoneEditWidget : public QWidget
void setPhoneNumbers( const KABC::PhoneNumber::List &list );
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();
void updatePrefEdit();
@@ -79,6 +120,7 @@ class PhoneEditWidget : public QWidget
void updateCombos();
private:
+ QPtrList <PhoneTypeNumberEdit> mTypeNumberEditList;
void updateEdit( PhoneTypeCombo *combo );
void updatePhoneNumber( PhoneTypeCombo *combo );
void updateOtherEdit( PhoneTypeCombo *combo, PhoneTypeCombo *otherCombo );
@@ -101,7 +143,7 @@ class PhoneEditWidget : public QWidget
*/
class PhoneEditDialog : public KDialogBase
{
- Q_OBJECT
+ Q___OBJECT
public:
PhoneEditDialog( const KABC::PhoneNumber::List &list, QWidget *parent, const char *name = 0 );
@@ -110,7 +152,7 @@ class PhoneEditDialog : public KDialogBase
const KABC::PhoneNumber::List &phoneNumbers();
bool changed() const;
- protected slots:
+ protected s__lots:
void slotAddPhoneNumber();
void slotRemovePhoneNumber();
void slotEditPhoneNumber();
@@ -133,7 +175,7 @@ class PhoneEditDialog : public KDialogBase
*/
class PhoneTypeDialog : public KDialogBase
{
- Q_OBJECT
+ Q___OBJECT
public:
PhoneTypeDialog( const KABC::PhoneNumber &phoneNumber, QWidget *parent, const char *name = 0 );
@@ -147,11 +189,13 @@ private:
QCheckBox *mPreferredBox;
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 );
lay->setSpacing( KDialogBase::spacingHintSmall() );
@@ -165,7 +209,10 @@ public:
lay->addWidget( mNumber );
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;
}
void setPhoneNumber( const KABC::PhoneNumber &phoneNumber )
@@ -174,6 +221,7 @@ public:
int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() );
mCombo->setCurrentItem( index );
mNumber->setText( mPhoneNumber.number() );
+ mIsValid = true;
show();
}
@@ -183,8 +231,13 @@ public:
int index = mCombo->currentItem();
mPhoneNumber.setType( PhoneNumber::supportedTypeList()[index] );
return mPhoneNumber;
-
}
+ bool isValid()
+ {
+ if ( !mIsValid ) return false;
+ if ( mNumber->text().isEmpty() )return false;
+ return true;
+ }
private slots:
void typeExternalChanged( int oldType, int newType )
{
@@ -193,26 +246,38 @@ public:
int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() );
mCombo->setCurrentItem( index );
}
-
}
void deleteNumber()
{
+ emit modified();
hide();
+ mIsValid = false;
}
void comboTypeChange( int index )
{
int old = mPhoneNumber.type();
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;
KComboBox *mCombo;