summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorLionel Elie Mamane <lionel@mamane.lu>2015-10-18 20:54:49 +0200
committerLionel Elie Mamane <lionel@mamane.lu>2015-10-18 20:54:49 +0200
commitddc2de207a55b56a9f706ce3ddfc8ddb48bdf2e8 (patch)
tree651eec2317e8e2bba1e798b5b0d6980fe262e4f2 /svx
parent36303eee68680dd1f7a080b93caf8fca65672799 (diff)
reorganise code, no behaviour change intended
... at leat in normal circumstances. assumed that the dialog can only return Yes/No/Cancel if it doesn't, then behaviour change, be more conservative and save only on yes. the order between rController->commitCurrentRecord( ) and GetImpl()->didPrepareClose( true ) is changed, that's on purpose. If commitCurrentRecord( ) throws, then don't do GetImpl()->didPrepareClose( true ) Change-Id: Ieb88c04a27e71b313e7f1386d48f370a1e94c6c2
Diffstat (limited to 'svx')
-rw-r--r--svx/source/form/fmshell.cxx11
1 files changed, 4 insertions, 7 deletions
diff --git a/svx/source/form/fmshell.cxx b/svx/source/form/fmshell.cxx
index 31d9e5543c66..99bcb04f61ba 100644
--- a/svx/source/form/fmshell.cxx
+++ b/svx/source/form/fmshell.cxx
@@ -265,7 +265,7 @@ bool FmFormShell::PrepareClose(bool bUI)
const svx::ControllerFeatures& rController = GetImpl()->getActiveControllerFeatures();
if ( rController->commitCurrentControl() )
{
- bool bModified = rController->isModifiedRow();
+ const bool bModified = rController->isModifiedRow();
if ( bModified && bUI )
{
@@ -274,19 +274,16 @@ bool FmFormShell::PrepareClose(bool bUI)
"svx/ui/savemodifieddialog.ui");
switch (aQry->Execute())
{
- case RET_NO:
- bModified = false;
- // fallthrough to next case
case RET_YES:
+ bResult = rController->commitCurrentRecord( );
+ // fallthrough to next case
+ case RET_NO:
GetImpl()->didPrepareClose( true );
break;
case RET_CANCEL:
return false;
}
-
- if ( bModified )
- bResult = rController->commitCurrentRecord( );
}
}
}