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 );
45 QToolButton *button =
new QToolButton;
46 button->setText( i18n(
"..." ) );
47 layout->addWidget( button );
49 connect( mNameEdit, SIGNAL(textChanged(QString)),
this, SLOT(textChanged(QString)) );
50 connect( button, SIGNAL(clicked()),
this, SLOT(openNameEditDialog()) );
53 NameEditWidget::~NameEditWidget()
59 mNameEdit->setReadOnly( readOnly );
66 disconnect( mNameEdit, SIGNAL(textChanged(QString)),
this, SLOT(textChanged(QString)) );
67 mNameEdit->setText( contact.assembledName() );
68 connect( mNameEdit, SIGNAL(textChanged(QString)),
this, SLOT(textChanged(QString)) );
73 contact.setPrefix( mContact.prefix() );
74 contact.setGivenName( mContact.givenName() );
75 contact.setAdditionalName( mContact.additionalName() );
76 contact.setFamilyName( mContact.familyName() );
77 contact.setSuffix( mContact.suffix() );
80 void NameEditWidget::textChanged(
const QString &text )
82 mContact.setNameFromString( text );
84 emit nameChanged( mContact );
87 void NameEditWidget::openNameEditDialog()
89 QPointer<NameEditDialog> dlg =
new NameEditDialog(
this );
91 dlg->setPrefix( mContact.prefix() );
92 dlg->setGivenName( mContact.givenName() );
93 dlg->setAdditionalName( mContact.additionalName() );
94 dlg->setFamilyName( mContact.familyName() );
95 dlg->setSuffix( mContact.suffix() );
97 if ( dlg->exec() == QDialog::Accepted ) {
98 mContact.setPrefix( dlg->prefix() );
99 mContact.setGivenName( dlg->givenName() );
100 mContact.setAdditionalName( dlg->additionalName() );
101 mContact.setFamilyName( dlg->familyName() );
102 mContact.setSuffix( dlg->suffix() );
104 disconnect( mNameEdit, SIGNAL(textChanged(QString)),
this, SLOT(textChanged(QString)) );
105 mNameEdit->setText( mContact.assembledName() );
106 connect( mNameEdit, SIGNAL(textChanged(QString)),
this, SLOT(textChanged(QString)) );
108 emit nameChanged( mContact );