Skip to content

Commit dd50dba

Browse files
authored
bugfix(worldbuilder): Avoid taking action on cancel button for script conditions and actions (TheSuperHackers#2065)
1 parent b981e31 commit dd50dba

File tree

6 files changed

+54
-42
lines changed

6 files changed

+54
-42
lines changed

Generals/Code/Tools/WorldBuilder/src/ScriptActionsFalse.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,13 @@ void ScriptActionsFalse::OnEditAction()
116116
}
117117
EditAction cDlg;
118118
cDlg.setAction(m_falseAction);
119-
cDlg.DoModal();
120-
ScriptDialog::updateScriptWarning(m_script);
121-
pList->DeleteString(m_index);
122-
pList->InsertString(m_index, m_falseAction->getUiText().str());
123-
pList->SetCurSel(m_index);
119+
if (cDlg.DoModal() == IDOK)
120+
{
121+
ScriptDialog::updateScriptWarning(m_script);
122+
pList->DeleteString(m_index);
123+
pList->InsertString(m_index, m_falseAction->getUiText().str());
124+
pList->SetCurSel(m_index);
125+
}
124126
}
125127

126128
void ScriptActionsFalse::enableUI()

Generals/Code/Tools/WorldBuilder/src/ScriptActionsTrue.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,13 @@ void ScriptActionsTrue::OnEditAction()
116116
}
117117
EditAction cDlg;
118118
cDlg.setAction(m_action);
119-
cDlg.DoModal();
120-
ScriptDialog::updateScriptWarning(m_script);
121-
pList->DeleteString(m_index);
122-
pList->InsertString(m_index, m_action->getUiText().str());
123-
pList->SetCurSel(m_index);
119+
if (cDlg.DoModal() == IDOK)
120+
{
121+
ScriptDialog::updateScriptWarning(m_script);
122+
pList->DeleteString(m_index);
123+
pList->InsertString(m_index, m_action->getUiText().str());
124+
pList->SetCurSel(m_index);
125+
}
124126
}
125127

126128
void ScriptActionsTrue::enableUI()

Generals/Code/Tools/WorldBuilder/src/ScriptConditions.cpp

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -126,18 +126,20 @@ void ScriptConditionsDlg::OnEditCondition()
126126
}
127127
EditCondition cDlg;
128128
cDlg.setCondition(m_condition);
129-
cDlg.DoModal();
130-
ScriptDialog::updateScriptWarning(m_script);
131-
pList->DeleteString(m_index);
132-
AsciiString label;
133-
Bool first = false;
134-
if (m_orCondition && m_orCondition->getFirstAndCondition() == m_condition) {
135-
first = true;
129+
if (cDlg.DoModal() == IDOK)
130+
{
131+
ScriptDialog::updateScriptWarning(m_script);
132+
pList->DeleteString(m_index);
133+
AsciiString label;
134+
Bool first = false;
135+
if (m_orCondition && m_orCondition->getFirstAndCondition() == m_condition) {
136+
first = true;
137+
}
138+
if (first) label = " ";
139+
else label = " AND ";
140+
label.concat(m_condition->getUiText());
141+
pList->InsertString(m_index, label.str());
136142
}
137-
if (first) label = " ";
138-
else label = " AND ";
139-
label.concat(m_condition->getUiText());
140-
pList->InsertString(m_index, label.str());
141143
}
142144

143145
void ScriptConditionsDlg::enableUI()

GeneralsMD/Code/Tools/WorldBuilder/src/ScriptActionsFalse.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,13 @@ void ScriptActionsFalse::OnEditAction()
116116
}
117117
EditAction cDlg;
118118
cDlg.setAction(m_falseAction);
119-
cDlg.DoModal();
120-
ScriptDialog::updateScriptWarning(m_script);
121-
pList->DeleteString(m_index);
122-
pList->InsertString(m_index, m_falseAction->getUiText().str());
123-
pList->SetCurSel(m_index);
119+
if (cDlg.DoModal() == IDOK)
120+
{
121+
ScriptDialog::updateScriptWarning(m_script);
122+
pList->DeleteString(m_index);
123+
pList->InsertString(m_index, m_falseAction->getUiText().str());
124+
pList->SetCurSel(m_index);
125+
}
124126
}
125127

126128
void ScriptActionsFalse::enableUI()

GeneralsMD/Code/Tools/WorldBuilder/src/ScriptActionsTrue.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,13 @@ void ScriptActionsTrue::OnEditAction()
116116
}
117117
EditAction cDlg;
118118
cDlg.setAction(m_action);
119-
cDlg.DoModal();
120-
ScriptDialog::updateScriptWarning(m_script);
121-
pList->DeleteString(m_index);
122-
pList->InsertString(m_index, m_action->getUiText().str());
123-
pList->SetCurSel(m_index);
119+
if (cDlg.DoModal() == IDOK)
120+
{
121+
ScriptDialog::updateScriptWarning(m_script);
122+
pList->DeleteString(m_index);
123+
pList->InsertString(m_index, m_action->getUiText().str());
124+
pList->SetCurSel(m_index);
125+
}
124126
}
125127

126128
void ScriptActionsTrue::enableUI()

GeneralsMD/Code/Tools/WorldBuilder/src/ScriptConditions.cpp

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -126,18 +126,20 @@ void ScriptConditionsDlg::OnEditCondition()
126126
}
127127
EditCondition cDlg;
128128
cDlg.setCondition(m_condition);
129-
cDlg.DoModal();
130-
ScriptDialog::updateScriptWarning(m_script);
131-
pList->DeleteString(m_index);
132-
AsciiString label;
133-
Bool first = false;
134-
if (m_orCondition && m_orCondition->getFirstAndCondition() == m_condition) {
135-
first = true;
129+
if (cDlg.DoModal() == IDOK)
130+
{
131+
ScriptDialog::updateScriptWarning(m_script);
132+
pList->DeleteString(m_index);
133+
AsciiString label;
134+
Bool first = false;
135+
if (m_orCondition && m_orCondition->getFirstAndCondition() == m_condition) {
136+
first = true;
137+
}
138+
if (first) label = " ";
139+
else label = " AND ";
140+
label.concat(m_condition->getUiText());
141+
pList->InsertString(m_index, label.str());
136142
}
137-
if (first) label = " ";
138-
else label = " AND ";
139-
label.concat(m_condition->getUiText());
140-
pList->InsertString(m_index, label.str());
141143
}
142144

143145
void ScriptConditionsDlg::enableUI()

0 commit comments

Comments
 (0)