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 );
88 emit nameChanged( mContact );
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)) );
112 emit nameChanged( mContact );