summaryrefslogtreecommitdiffabout
path: root/kaddressbook/phoneeditwidget.cpp
Side-by-side diff
Diffstat (limited to 'kaddressbook/phoneeditwidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/phoneeditwidget.cpp112
1 files changed, 111 insertions, 1 deletions
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