22 #include "nameeditwidget.h" 
   24 #include "nameeditdialog.h" 
   26 #include <QtCore/QPointer> 
   27 #include <QHBoxLayout> 
   28 #include <QToolButton> 
   30 #include <kabc/addressee.h> 
   32 #include <klineedit.h> 
   33 #include <klocalizedstring.h> 
   35 NameEditWidget::NameEditWidget( QWidget *parent )
 
   38   QHBoxLayout *layout = 
new QHBoxLayout( 
this );
 
   39   layout->setMargin( 0 );
 
   40   layout->setSpacing( KDialog::spacingHint() );
 
   42   mNameEdit = 
new KLineEdit;
 
   43   layout->addWidget( mNameEdit );
 
   44   setFocusProxy( mNameEdit );
 
   45   setFocusPolicy( Qt::StrongFocus );
 
   47   mButtonEdit = 
new QToolButton;
 
   48   mButtonEdit->setText(i18n(
"..."));
 
   49   layout->addWidget(mButtonEdit);
 
   52   connect( mNameEdit, SIGNAL(textChanged(QString)), 
this, SLOT(textChanged(QString)) );
 
   53   connect( mButtonEdit, SIGNAL(clicked()), 
this, SLOT(openNameEditDialog()) );
 
   56 NameEditWidget::~NameEditWidget()
 
   62   mNameEdit->setReadOnly( readOnly );
 
   63   mButtonEdit->setEnabled(!readOnly);
 
   70   disconnect( mNameEdit, SIGNAL(textChanged(QString)), 
this, SLOT(textChanged(QString)) );
 
   71   mNameEdit->setText( contact.assembledName() );
 
   72   connect( mNameEdit, SIGNAL(textChanged(QString)), 
this, SLOT(textChanged(QString)) );
 
   77   contact.setPrefix( mContact.prefix() );
 
   78   contact.setGivenName( mContact.givenName() );
 
   79   contact.setAdditionalName( mContact.additionalName() );
 
   80   contact.setFamilyName( mContact.familyName() );
 
   81   contact.setSuffix( mContact.suffix() );
 
   84 void NameEditWidget::textChanged( 
const QString &text )
 
   86   mContact.setNameFromString( text );
 
   91 void NameEditWidget::openNameEditDialog()
 
   93   QPointer<NameEditDialog> dlg = 
new NameEditDialog( 
this );
 
   95   dlg->setPrefix( mContact.prefix() );
 
   96   dlg->setGivenName( mContact.givenName() );
 
   97   dlg->setAdditionalName( mContact.additionalName() );
 
   98   dlg->setFamilyName( mContact.familyName() );
 
   99   dlg->setSuffix( mContact.suffix() );
 
  101   if ( dlg->exec() == QDialog::Accepted ) {
 
  102     mContact.setPrefix( dlg->prefix() );
 
  103     mContact.setGivenName( dlg->givenName() );
 
  104     mContact.setAdditionalName( dlg->additionalName() );
 
  105     mContact.setFamilyName( dlg->familyName() );
 
  106     mContact.setSuffix( dlg->suffix() );
 
  108     disconnect( mNameEdit, SIGNAL(textChanged(QString)), 
this, SLOT(textChanged(QString)) );
 
  109     mNameEdit->setText( mContact.assembledName() );
 
  110     connect( mNameEdit, SIGNAL(textChanged(QString)), 
this, SLOT(textChanged(QString)) );