diff options
| -rw-r--r-- | src/modules/aliaseditor/aliaseditor.cpp | 42 | ||||
| -rw-r--r-- | src/modules/aliaseditor/aliaseditor.h | 17 |
2 files changed, 34 insertions, 25 deletions
diff --git a/src/modules/aliaseditor/aliaseditor.cpp b/src/modules/aliaseditor/aliaseditor.cpp index fd750ffbe..26716ab0f 100644 --- a/src/modules/aliaseditor/aliaseditor.cpp +++ b/src/modules/aliaseditor/aliaseditor.cpp @@ -237,6 +237,7 @@ void KviAliasEditorTreeWidget::mousePressEvent (QMouseEvent *e) KviAliasEditor::KviAliasEditor(QWidget * par) : QWidget(par) { + m_bSaving = false; m_pLastEditedItem = 0; m_pLastClickedItem = 0; m_szDir = QDir::homePath(); @@ -444,26 +445,30 @@ void KviAliasEditor::oneTimeSetup() } void KviAliasEditor::aliasRefresh(const QString &szName) { - KviAliasTreeWidgetItem * item; - KviKvsScript * alias = KviKvsAliasManager::instance()->aliasDict()->find(szName); - item = createFullAliasItem(szName); - if (item!=m_pLastEditedItem) - item->setBuffer(alias->code()); - else{ - if(QMessageBox::warning(0,__tr2qs("OverWrite Curernt Alias"), - __tr2qs("You are about to overwrite current alias!"), - QMessageBox::Yes,QMessageBox::No|QMessageBox::Default|QMessageBox::Escape) != QMessageBox::Yes)return ; - else { - item->setBuffer(alias->code()); - m_pEditor->setText(alias->code()); - } - } - - + if(m_bSaving) return; + KviAliasTreeWidgetItem * item; + KviKvsScript * alias = KviKvsAliasManager::instance()->aliasDict()->find(szName); + item = createFullAliasItem(szName); + if(item!=m_pLastEditedItem) + { + item->setBuffer(alias->code()); + } else { + if(QMessageBox::warning(0,__tr2qs("OverWrite Current Alias"), + __tr2qs("An external script has changed the alias you are currently editing. Do you want to accept the external changes?"), + QMessageBox::Yes,QMessageBox::No|QMessageBox::Default|QMessageBox::Escape) != QMessageBox::Yes) + { + return; + } else { + item->setBuffer(alias->code()); + m_pEditor->setText(alias->code()); + } + } } void KviAliasEditor::itemRenamed(QTreeWidgetItem *it,int col) { + if(it!=m_pLastEditedItem) return; + ((KviAliasEditorTreeWidgetItem *)it)->setName(it->text(col)); QString szNam = buildFullItemName((KviAliasEditorTreeWidgetItem *)it); QString szLabelText; @@ -1447,7 +1452,6 @@ void KviAliasEditor::saveLastEditedItem() void KviAliasEditor::currentItemChanged(QTreeWidgetItem *it,QTreeWidgetItem *) { - saveLastEditedItem(); m_pLastEditedItem = (KviAliasEditorTreeWidgetItem *)it; @@ -1513,7 +1517,9 @@ void KviAliasEditor::recursiveCommit(KviAliasEditorTreeWidgetItem * it) void KviAliasEditor::commit() { + m_bSaving = true; saveLastEditedItem(); + // KviKvsAliasManager::instance()->clear(); for(int i=0;i<m_pTreeWidget->topLevelItemCount();i++) { @@ -1521,6 +1527,8 @@ void KviAliasEditor::commit() recursiveCommit(item); } g_pApp->saveAliases(); + + m_bSaving = false; } void KviAliasEditor::getUniqueItemName(KviAliasEditorTreeWidgetItem *item,QString &buffer,KviAliasEditorTreeWidgetItem::Type eType) diff --git a/src/modules/aliaseditor/aliaseditor.h b/src/modules/aliaseditor/aliaseditor.h index 9c569452c..5b806222f 100644 --- a/src/modules/aliaseditor/aliaseditor.h +++ b/src/modules/aliaseditor/aliaseditor.h @@ -119,16 +119,17 @@ public: KviAliasEditor(QWidget * par); ~KviAliasEditor(); public: - KviScriptEditor * m_pEditor; - KviAliasEditorTreeWidget * m_pTreeWidget; - QLabel * m_pNameLabel; - QPushButton * m_pRenameButton; + KviScriptEditor * m_pEditor; + KviAliasEditorTreeWidget * m_pTreeWidget; + QLabel * m_pNameLabel; + QPushButton * m_pRenameButton; KviAliasEditorTreeWidgetItem * m_pLastEditedItem; KviAliasEditorTreeWidgetItem * m_pLastClickedItem; - //KviAliasTreeWidgetItem * m_pLastEditedItem; - KviTalPopupMenu * m_pContextPopup; - QSplitter * m_pSplitter; - QString m_szDir; + //KviAliasTreeWidgetItem * m_pLastEditedItem; + KviTalPopupMenu * m_pContextPopup; + QSplitter * m_pSplitter; + QString m_szDir; + bool m_bSaving; public: //bool modified(){ return m_bModified; }; void commit(); |
