aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/options
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/options')
-rw-r--r--src/modules/options/optw_identity.cpp47
-rw-r--r--src/modules/options/optw_identity.h14
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_