Diffstat (limited to 'kaddressbook/addresseeeditorwidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kaddressbook/addresseeeditorwidget.cpp | 50 |
1 files changed, 43 insertions, 7 deletions
diff --git a/kaddressbook/addresseeeditorwidget.cpp b/kaddressbook/addresseeeditorwidget.cpp index c4083a9..4313998 100644 --- a/kaddressbook/addresseeeditorwidget.cpp +++ b/kaddressbook/addresseeeditorwidget.cpp @@ -79,547 +79,583 @@ #include "addresseeeditorwidget.h" AddresseeEditorWidget::AddresseeEditorWidget( KABCore *core, bool isExtension, QWidget *parent, const char *name ) : ExtensionWidget( core, parent, name ), mIsExtension( isExtension ), mBlockSignals( false ) { mAConfig = AddresseeConfig::instance(); mFormattedNameType = NameEditDialog::CustomName; initGUI(); mCategoryDialog = 0; mCategoryEditDialog = 0; // Load the empty addressee as defaults load(); mDirty = false; } AddresseeEditorWidget::~AddresseeEditorWidget() { kdDebug(5720) << "~AddresseeEditorWidget()" << endl; } void AddresseeEditorWidget::contactsSelectionChanged() { KABC::Addressee::List list = selectedContacts(); mAddressee = list[ 0 ]; load(); } void AddresseeEditorWidget::setAddressee( const KABC::Addressee &addr ) { mAddressee = addr; load(); } const KABC::Addressee &AddresseeEditorWidget::addressee() { return mAddressee; } void AddresseeEditorWidget::textChanged( const QString& ) { emitModified(); } void AddresseeEditorWidget::initGUI() { QVBoxLayout *layout = new QVBoxLayout( this ); mTabWidget = new QTabWidget( this ); layout->addWidget( mTabWidget ); setupTab1(); setupTab1_1(); setupTab2(); setupTab2_1(); setupTab3(); setupTab3_1(); mNameEdit->setFocus(); connect( mTabWidget, SIGNAL( currentChanged(QWidget*) ), SLOT( pageChanged(QWidget*) ) ); } void AddresseeEditorWidget::setupTab1() { // This is the General tab QWidget *tab1 = new QWidget( mTabWidget ); //US QGridLayout *layout = new QGridLayout( tab1, 11, 7 ); bool horLayout = false; int maxCol = 1; if ( QApplication::desktop()->width() == 640 || QApplication::desktop()->width() == 320 ) { horLayout = true; maxCol = 3; } QGridLayout *layout = new QGridLayout( tab1, 7-maxCol, maxCol ); layout->setMargin( KDialogBase::marginHintSmall() ); layout->setSpacing( KDialogBase::spacingHintSmall() ); QLabel *label; KSeparator* bar; QPushButton *button; ////////////////////////////////// // Upper left group (person info) // Person icon /* LR label = new QLabel( tab1 ); //US ambiguous call. Add one more parameter //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop ) ); label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop, 0 ) ); layout->addMultiCellWidget( label, 0, 1, 0, 0 ); */ // First name button = new QPushButton( i18n( "Name..." ), tab1 ); //US QToolTip::add( button, i18n( "Edit the contact's name" ) ); mNameEdit = new KLineEdit( tab1, "mNameEdit" ); connect( mNameEdit, SIGNAL( textChanged( const QString& ) ), SLOT( nameTextChanged( const QString& ) ) ); connect( button, SIGNAL( clicked() ), SLOT( nameButtonClicked() ) ); mNameLabel = new KSqueezedTextLabel( tab1 ); mNameLabel->hide(); layout->addWidget( button, 0, 0 ); layout->addWidget( mNameEdit, 0, 1 ); layout->addWidget( mNameLabel, 0, 1 ); button = new QPushButton( i18n( "Role:" ), tab1 ); connect( button, SIGNAL( clicked() ), SLOT( setRole2FN() ) ); //label = new QLabel( i18n( "Role:" ), tab1 ); mRoleEdit = new KLineEdit( tab1 ); connect( mRoleEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); //label->setBuddy( mRoleEdit ); if ( horLayout ) { layout->addWidget( button, 0, 2 ); layout->addWidget( mRoleEdit, 0, 3 ); } else { layout->addWidget( button, 1, 0 ); layout->addWidget( mRoleEdit, 1, 1 ); } // Organization button = new QPushButton( i18n( "Organization:" ), tab1 ); connect( button, SIGNAL( clicked() ), SLOT( setCompany2FN() ) ); //label = new QLabel( i18n( "Organization:" ), tab1 ); mOrgEdit = new KLineEdit( tab1 ); //label->setBuddy( mOrgEdit ); connect( mOrgEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); if ( horLayout ) { layout->addWidget( button, 1, 2 ); layout->addWidget( mOrgEdit, 1, 3 ); } else { layout->addWidget( button, 2, 0 ); layout->addWidget( mOrgEdit, 2, 1 ); } // File as (formatted name) label = new QLabel( i18n( "Format.n.:" ), tab1 ); mFormattedNameLabel = new KSqueezedTextLabel( tab1 ); if ( horLayout ) { layout->addWidget( label, 1,0 ); layout->addWidget( mFormattedNameLabel, 1, 1 ); } else { layout->addWidget( label, 3, 0 ); layout->addWidget( mFormattedNameLabel, 3, 1 ); } /* LR // Left hand separator. This separator doesn't go all the way // across so the dialog still flows from top to bottom bar = new KSeparator( KSeparator::HLine, tab1 ); layout->addMultiCellWidget( bar, 4, 4, 0, 2 ); */ ////////////////////////////////////// /* LR // Phone numbers (upper right) label = new QLabel( tab1 ); //US loadIcon call is ambiguous. Add one more parameter //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop ) ); label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) ); //US layout->addMultiCellWidget( label, 0, 1, 3, 3 ); layout->addMultiCellWidget( label, 5, 6, 0, 0 ); */ mPhoneEditWidget = new PhoneEditWidget( tab1 ); connect( mPhoneEditWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); //US layout->addMultiCellWidget( mPhoneEditWidget, 0, 3, 4, 6 ); int iii; #ifndef DESKTOP_VERSION iii = 7; #else iii = 8; #endif layout->addMultiCellWidget( mPhoneEditWidget, 5-maxCol, 5-maxCol+4, 0, maxCol ); iii = 6-maxCol+4; /* LR bar = new KSeparator( KSeparator::HLine, tab1 ); //US layout->addMultiCellWidget( bar, 4, 4, 3, 6 ); layout->addMultiCellWidget( bar, 9, 9, 0, 2 ); */ /*US ////////////////////////////////////// // Addresses (lower left) label = new QLabel( tab1 ); //US loadIcon call is ambiguous. Add one more parameter //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop ) ); label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop, 0 ) ); layout->addMultiCellWidget( label, 5, 6, 0, 0 ); mAddressEditWidget = new AddressEditWidget( tab1 ); connect( mAddressEditWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); layout->addMultiCellWidget( mAddressEditWidget, 5, 9, 1, 2 ); ////////////////////////////////////// // Email / Web (lower right) label = new QLabel( tab1 ); //US loadIcon call is ambiguous. Add one more parameter //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "email", KIcon::Desktop) ); label->setPixmap( KGlobal::iconLoader()->loadIcon( "email", KIcon::Desktop, 0) ); layout->addMultiCellWidget( label, 5, 6, 3, 3 ); mEmailWidget = new EmailEditWidget( tab1 ); connect( mEmailWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); layout->addMultiCellWidget( mEmailWidget, 5, 6, 4, 6 ); // add the separator bar = new KSeparator( KSeparator::HLine, tab1 ); layout->addMultiCellWidget( bar, 7, 7, 3, 6 ); label = new QLabel( tab1 ); //US loadIcon call is ambiguous. Add one more parameter //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "homepage", KIcon::Desktop) ); label->setPixmap( KGlobal::iconLoader()->loadIcon( "homepage", KIcon::Desktop, 0) ); layout->addMultiCellWidget( label, 8, 9, 3, 3 ); label = new QLabel( i18n( "URL:" ), tab1 ); mURLEdit = new KLineEdit( tab1 ); connect( mURLEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); label->setBuddy( mURLEdit ); layout->addWidget( label, 8, 4 ); layout->addMultiCellWidget( mURLEdit, 8, 8, 5, 6 ); label = new QLabel( i18n( "&IM address:" ), tab1 ); mIMAddressEdit = new KLineEdit( tab1 ); connect( mIMAddressEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); label->setBuddy( mIMAddressEdit ); layout->addWidget( label, 9, 4 ); layout->addMultiCellWidget( mIMAddressEdit, 9, 9, 5, 6 ); layout->addColSpacing( 6, 50 ); bar = new KSeparator( KSeparator::HLine, tab1 ); layout->addMultiCellWidget( bar, 10, 10, 0, 6 ); */ /////////////////////////////////////// QHBox *categoryBox = new QHBox( tab1 ,"cato"); categoryBox->setSpacing( KDialogBase::spacingHint() ); categoryBox->setMargin( KDialogBase::marginHintSmall() ); // Categories - button = new QPushButton( i18n( "Categories" ), categoryBox ); + button = new QPushButton( i18n( "Categories" )+":", categoryBox ); connect( button, SIGNAL( clicked() ), SLOT( categoryButtonClicked() ) ); - mCategoryEdit = new KLineEdit( categoryBox ); - mCategoryEdit->setReadOnly( true ); - connect( mCategoryEdit, SIGNAL( textChanged( const QString& ) ), - SLOT( textChanged( const QString& ) ) ); + mCategoryEdit = new QPushButton ( categoryBox ); + mCategoryEdit->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::Fixed ,FALSE) ); + mCatPopup = new QPopupMenu ( categoryBox ); + mCategoryEdit->setPopup( mCatPopup ); + connect(mCatPopup,SIGNAL(aboutToShow () ), this ,SLOT(showCatPopup())); + connect(mCatPopup,SIGNAL( activated ( int ) ), this ,SLOT(selectedCatPopup( int ))); + //connect( mCategoryEdit, SIGNAL( textChanged( const QString& ) ), + // SLOT( textChanged( const QString& ) ) ); mSecrecyWidget = new SecrecyWidget( categoryBox ); connect( mSecrecyWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); //US layout->addMultiCellWidget( categoryBox, 11, 11, 0, 6 ); layout->addMultiCellWidget( categoryBox, iii, iii, 0, maxCol ); // Build the layout and add to the tab widget layout->activate(); // required mTabWidget->addTab( tab1, i18n( "&General" ) ); } +void AddresseeEditorWidget::showCatPopup() +{ + mCatPopup->clear(); + QStringList checkedCategories = QStringList::split (",", mCategoryEdit->text()); + int index = 0; + for (QStringList::Iterator it = KABPrefs::instance()->mCustomCategories.begin (); + it != KABPrefs::instance()->mCustomCategories.end (); + ++it) { + mCatPopup->insertItem (*it, index ); + //mCategory[index] = *it; + if (checkedCategories.find (*it) != checkedCategories.end ()) mCatPopup->setItemChecked (index, true); + ++index; + } +} +void AddresseeEditorWidget::selectedCatPopup( int index ) +{ + QStringList categories = QStringList::split (",", mCategoryEdit->text()); + QString colcat = categories.first(); + if (categories.find ( KABPrefs::instance()->mCustomCategories[index]) != categories.end ()) + categories.remove (KABPrefs::instance()->mCustomCategories[index]); + else + categories.insert (categories.end(), KABPrefs::instance()->mCustomCategories[index]); + categories.sort (); + if ( !colcat.isEmpty() ) { + if ( categories.find ( colcat ) != categories.end () ) { + categories.remove( colcat ); + categories.prepend( colcat ); + } + } + mCategoryEdit->setText( categories.join(",") ); + emitModified(); +} void AddresseeEditorWidget::setRole2FN() { if ( mRoleEdit->text().isEmpty() ) return; mFormattedNameType = NameEditDialog::CustomName; mAddressee.setFormattedName( mRoleEdit->text() ); mFormattedNameLabel->setText( mRoleEdit->text() ); - mDirty = true; + emitModified(); } void AddresseeEditorWidget::setCompany2FN() { if ( mOrgEdit->text().isEmpty() ) return; mFormattedNameType = NameEditDialog::CustomName; mAddressee.setFormattedName( mOrgEdit->text() ); mFormattedNameLabel->setText( mOrgEdit->text() ); - mDirty = true; + emitModified(); } void AddresseeEditorWidget::setupTab1_1() { // This is the Address tab QWidget *tab1_1 = new QWidget( mTabWidget ); //US QGridLayout *layout = new QGridLayout( tab1_1, 11, 7 ); QGridLayout *layout = new QGridLayout( tab1_1, 7, 2 ); layout->setMargin( KDialogBase::marginHintSmall() ); layout->setSpacing( KDialogBase::spacingHintSmall() ); QLabel *label; KSeparator* bar; QPushButton *button; /*US ////////////////////////////////// // Upper left group (person info) // Person icon label = new QLabel( tab1 ); //US ambiguous call. Add one more parameter //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop ) ); label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop, 0 ) ); layout->addMultiCellWidget( label, 0, 1, 0, 0 ); // First name button = new QPushButton( i18n( "Name..." ), tab1 ); QToolTip::add( button, i18n( "Edit the contact's name" ) ); mNameEdit = new KLineEdit( tab1, "mNameEdit" ); connect( mNameEdit, SIGNAL( textChanged( const QString& ) ), SLOT( nameTextChanged( const QString& ) ) ); connect( button, SIGNAL( clicked() ), SLOT( nameButtonClicked() ) ); #ifndef KAB_EMBEDDED mNameLabel = new KSqueezedTextLabel( tab1 ); mNameLabel->hide(); #else //KAB_EMBEDDED qDebug("AddresseeEditorWidget::setupTab1 has to be changed"); #endif //KAB_EMBEDDED layout->addWidget( button, 0, 1 ); layout->addWidget( mNameEdit, 0, 2 ); #ifndef KAB_EMBEDDED layout->addWidget( mNameLabel, 0, 2 ); #else //KAB_EMBEDDED qDebug("AddresseeEditorWidget::setupTab1 has to be changed"); #endif //KAB_EMBEDDED label = new QLabel( i18n( "Role:" ), tab1 ); mRoleEdit = new KLineEdit( tab1 ); connect( mRoleEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); label->setBuddy( mRoleEdit ); layout->addWidget( label, 1, 1 ); layout->addWidget( mRoleEdit, 1, 2 ); // Organization label = new QLabel( i18n( "Organization:" ), tab1 ); mOrgEdit = new KLineEdit( tab1 ); label->setBuddy( mOrgEdit ); connect( mOrgEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); layout->addWidget( label, 2, 1 ); layout->addWidget( mOrgEdit, 2, 2 ); // File as (formatted name) label = new QLabel( i18n( "Formatted name:" ), tab1 ); #ifndef KAB_EMBEDDED mFormattedNameLabel = new KSqueezedTextLabel( tab1 ); #else //KAB_EMBEDDED qDebug("AddresseeEditorWidget::setupTab1 has to be changed"); #endif //KAB_EMBEDDED layout->addWidget( label, 3, 1 ); #ifndef KAB_EMBEDDED layout->addWidget( mFormattedNameLabel, 3, 2 ); #else //KAB_EMBEDDED qDebug("AddresseeEditorWidget::setupTab1 has to be changed"); #endif //KAB_EMBEDDED // Left hand separator. This separator doesn't go all the way // across so the dialog still flows from top to bottom bar = new KSeparator( KSeparator::HLine, tab1 ); layout->addMultiCellWidget( bar, 4, 4, 0, 2 ); ////////////////////////////////////// // Phone numbers (upper right) label = new QLabel( tab1 ); //US loadIcon call is ambiguous. Add one more parameter //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop ) ); label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) ); layout->addMultiCellWidget( label, 0, 1, 3, 3 ); mPhoneEditWidget = new PhoneEditWidget( tab1 ); connect( mPhoneEditWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); layout->addMultiCellWidget( mPhoneEditWidget, 0, 3, 4, 6 ); bar = new KSeparator( KSeparator::HLine, tab1 ); layout->addMultiCellWidget( bar, 4, 4, 3, 6 ); */ ////////////////////////////////////// // Addresses (lower left) /* LR label = new QLabel( tab1_1 ); //US loadIcon call is ambiguous. Add one more parameter //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop ) ); label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop, 0 ) ); //US layout->addMultiCellWidget( label, 5, 6, 0, 0 ); layout->addMultiCellWidget( label, 0, 1, 0, 0 ); */ mAddressEditWidget = new AddressEditWidget( tab1_1 ); connect( mAddressEditWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); //US layout->addMultiCellWidget( mAddressEditWidget, 5, 9, 1, 2 ); layout->addMultiCellWidget( mAddressEditWidget, 0, 4, 0, 1 ); //US /* LR bar = new KSeparator( KSeparator::HLine, tab1_1 ); layout->addMultiCellWidget( bar, 5, 5, 0, 3 ); */ ////////////////////////////////////// // Email / Web (lower right) /* LR label = new QLabel( tab1_1 ); //US loadIcon call is ambiguous. Add one more parameter //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "email", KIcon::Desktop) ); label->setPixmap( KGlobal::iconLoader()->loadIcon( "email", KIcon::Desktop, 0) ); //US layout->addMultiCellWidget( label, 5, 6, 3, 3 ); layout->addMultiCellWidget( label, 6, 7, 0, 0 ); */ mEmailWidget = new EmailEditWidget( tab1_1 ); connect( mEmailWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); //US layout->addMultiCellWidget( mEmailWidget, 5, 6, 4, 6 ); layout->addMultiCellWidget( mEmailWidget, 5, 6, 0, 1 ); /* LR // add the separator bar = new KSeparator( KSeparator::HLine, tab1_1 ); //US layout->addMultiCellWidget( bar, 7, 7, 3, 6 ); layout->addMultiCellWidget( bar, 8, 8, 0, 3 ); label = new QLabel( tab1_1 ); //US loadIcon call is ambiguous. Add one more parameter //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "homepage", KIcon::Desktop) ); label->setPixmap( KGlobal::iconLoader()->loadIcon( "homepage", KIcon::Desktop, 0) ); //US layout->addMultiCellWidget( label, 8, 9, 3, 3 ); layout->addMultiCellWidget( label, 9, 10, 0, 0 ); */ label = new QLabel( i18n( "URL:" ), tab1_1 ); mURLEdit = new KLineEdit( tab1_1 ); connect( mURLEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); label->setBuddy( mURLEdit ); //US layout->addWidget( label, 8, 4 ); layout->addWidget( label, 7,0 ); //US layout->addMultiCellWidget( mURLEdit, 8, 8, 5, 6 ); layout->addWidget( mURLEdit, 7, 1); label = new QLabel( i18n( "&IM address:" ), tab1_1 ); mIMAddressEdit = new KLineEdit( tab1_1 ); connect( mIMAddressEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); label->setBuddy( mIMAddressEdit ); //US layout->addWidget( label, 9, 4 ); layout->addWidget( label, 8, 0 ); //US layout->addMultiCellWidget( mIMAddressEdit, 9, 9, 5, 6 ); layout->addWidget( mIMAddressEdit, 8,1 ); //US layout->addColSpacing( 6, 50 ); //US bar = new KSeparator( KSeparator::HLine, tab1_1 ); //US layout->addMultiCellWidget( bar, 10, 10, 0, 6 ); /*US /////////////////////////////////////// QHBox *categoryBox = new QHBox( tab1 ); categoryBox->setSpacing( KDialogBase::spacingHintSmall() ); // Categories button = new QPushButton( i18n( "Categories" ), categoryBox ); connect( button, SIGNAL( clicked() ), SLOT( categoryButtonClicked() ) ); mCategoryEdit = new KLineEdit( categoryBox ); mCategoryEdit->setReadOnly( true ); connect( mCategoryEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); mSecrecyWidget = new SecrecyWidget( categoryBox ); connect( mSecrecyWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); layout->addMultiCellWidget( categoryBox, 11, 11, 0, 6 ); */ // Build the layout and add to the tab widget layout->activate(); // required mTabWidget->addTab( tab1_1, i18n( "&Address" ) ); } void AddresseeEditorWidget::setupTab2() { // This is the Details tab QWidget *tab2 = new QWidget( mTabWidget ); QGridLayout *layout = new QGridLayout( tab2, 8, 3 ); layout->setMargin( KDialogBase::marginHintSmall() ); layout->setSpacing( KDialogBase::spacingHintSmall() ); QLabel *label; KSeparator* bar; /////////////////////// // Office info // Department label = new QLabel( tab2 ); //US loadIcon call is ambiguous. Add one more parameter //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "folder", KIcon::Desktop ) ); label->setPixmap( KGlobal::iconLoader()->loadIcon( "folder", KIcon::Desktop, 0 ) ); layout->addMultiCellWidget( label, 0, 1, 0, 0 ); label = new QLabel( i18n( "Department:" ), tab2 ); layout->addWidget( label, 0, 1 ); mDepartmentEdit = new KLineEdit( tab2 ); connect( mDepartmentEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); label->setBuddy( mDepartmentEdit ); layout->addWidget( mDepartmentEdit, 0, 2 ); label = new QLabel( i18n( "Office:" ), tab2 ); layout->addWidget( label, 1, 1 ); mOfficeEdit = new KLineEdit( tab2 ); connect( mOfficeEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); label->setBuddy( mOfficeEdit ); layout->addWidget( mOfficeEdit, 1, 2 ); label = new QLabel( i18n( "Profession:" ), tab2 ); layout->addWidget( label, 2, 1 ); mProfessionEdit = new KLineEdit( tab2 ); connect( mProfessionEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); label->setBuddy( mProfessionEdit ); layout->addWidget( mProfessionEdit, 2, 2 ); label = new QLabel( i18n( "Manager\'s name:" ), tab2 ); //US layout->addWidget( label, 0, 3 ); layout->addWidget( label, 3, 1 ); mManagerEdit = new KLineEdit( tab2 ); connect( mManagerEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); |