diff options
Diffstat (limited to 'src/modules/options')
| -rw-r--r-- | src/modules/options/optw_identity.cpp | 47 | ||||
| -rw-r--r-- | src/modules/options/optw_identity.h | 14 |
2 files changed, 37 insertions, 24 deletions
diff --git a/src/modules/options/optw_identity.cpp b/src/modules/options/optw_identity.cpp index 380dc571f..b90b45673 100644 --- a/src/modules/options/optw_identity.cpp +++ b/src/modules/options/optw_identity.cpp @@ -694,6 +694,8 @@ KviIdentityProfileOptionsWidget::KviIdentityProfileOptionsWidget(QWidget * pPare : KviOptionsWidget(pParent) { setObjectName("identity_profiles_option_widget"); + m_pEditor = 0; + m_iCurrentEditedProfile = -1; createLayout(); QGridLayout * pLayout = layout(); @@ -782,9 +784,13 @@ void KviIdentityProfileOptionsWidget::toggleControls() void KviIdentityProfileOptionsWidget::addProfileEntry() { KviIdentityProfile profile; - KviIdentityProfileEditor editor(this); + m_iCurrentEditedProfile = -1; - if(editor.editProfile(&profile)) + if(m_pEditor) + delete m_pEditor; + m_pEditor = new KviIdentityProfileEditor(this); + + if(m_pEditor->editProfile(&profile)) { QTreeWidgetItem * pItem = new QTreeWidgetItem(m_pTreeWidget); pItem->setText(0,profile.name()); @@ -811,8 +817,12 @@ void KviIdentityProfileOptionsWidget::editProfileEntry() profile.setUserName(pItem->text(4)); profile.setRealName(pItem->text(5)); - KviIdentityProfileEditor editor(this); - if(editor.editProfile(&profile)) + m_iCurrentEditedProfile=m_pTreeWidget->indexOfTopLevelItem(pItem); + + if(m_pEditor) + delete m_pEditor; + m_pEditor = new KviIdentityProfileEditor(this); + if(m_pEditor->editProfile(&profile)) { pItem->setText(0,profile.name()); pItem->setText(1,profile.network()); @@ -823,6 +833,20 @@ void KviIdentityProfileOptionsWidget::editProfileEntry() } } +void KviIdentityProfileOptionsWidget::editProfileOkPressed() +{ + for(int i=0; i < m_pTreeWidget->topLevelItemCount(); i++) + { + if(m_pEditor->m_pNameEdit->text() == m_pTreeWidget->topLevelItem(i)->text(0) && i!=m_iCurrentEditedProfile) + { + QMessageBox::warning(this,__tr2qs_ctx("Invalid Profile Rule","options"),__tr2qs_ctx("There is already a profile with that name","options"),__tr2qs_ctx("OK","options")); + return; + } + } + + m_pEditor->accept(); +} + void KviIdentityProfileOptionsWidget::delProfileEntry() { QTreeWidgetItem * pItem = (QTreeWidgetItem *)m_pTreeWidget->currentItem(); @@ -932,7 +956,7 @@ KviIdentityProfileEditor::KviIdentityProfileEditor(QWidget * pParent) m_pBtnOk = new QPushButton(__tr2qs_ctx("OK","options"),pBox); m_pBtnOk->setEnabled(false); - connect(m_pBtnOk,SIGNAL(clicked()),this,SLOT(okPressed())); + connect(m_pBtnOk,SIGNAL(clicked()),pParent,SLOT(editProfileOkPressed())); pLayout->setColumnStretch(1,1); @@ -988,19 +1012,6 @@ void KviIdentityProfileEditor::toggleButton(const QString & szText) m_pBtnOk->setEnabled(bEnabled); } -void KviIdentityProfileEditor::okPressed() -{ - KviIdentityProfileSet * pSet = KviIdentityProfileSet::instance(); - - if(pSet->findName(m_pNameEdit->text())) - { - QMessageBox::warning(this,__tr2qs_ctx("Invalid Profile Rule","options"),__tr2qs_ctx("There is already a profile with that name","options"),__tr2qs_ctx("OK","options")); - return; - } - - accept(); -} - #ifndef COMPILE_USE_STANDALONE_MOC_SOURCES #include "m_optw_identity.moc" #endif //COMPILE_USE_STANDALONE_MOC_SOURCES diff --git a/src/modules/options/optw_identity.h b/src/modules/options/optw_identity.h index ae9b69a35..b1664d86f 100644 --- a/src/modules/options/optw_identity.h +++ b/src/modules/options/optw_identity.h @@ -129,7 +129,6 @@ public: bool editProfile(KviIdentityProfile * pProfile); protected slots: void toggleButton(const QString & szText); - void okPressed(); }; @@ -236,11 +235,13 @@ public: KviIdentityProfileOptionsWidget(QWidget * pParent); ~KviIdentityProfileOptionsWidget(); protected: - QTreeWidget * m_pTreeWidget; - QCheckBox * m_pProfilesCheck; - QPushButton * m_pBtnAddProfile; - QPushButton * m_pBtnEditProfile; - QPushButton * m_pBtnDelProfile; + QTreeWidget * m_pTreeWidget; + QCheckBox * m_pProfilesCheck; + QPushButton * m_pBtnAddProfile; + QPushButton * m_pBtnEditProfile; + QPushButton * m_pBtnDelProfile; + KviIdentityProfileEditor * m_pEditor; + int m_iCurrentEditedProfile; public: virtual void commit(); protected slots: @@ -248,6 +249,7 @@ protected slots: void addProfileEntry(); void editProfileEntry(); void delProfileEntry(); + void editProfileOkPressed(); }; #endif //_OPTW_IDENTITY_H_ |
