summaryrefslogtreecommitdiff
path: root/sdext/source/minimizer/optimizerdialog.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sdext/source/minimizer/optimizerdialog.cxx')
-rw-r--r--sdext/source/minimizer/optimizerdialog.cxx31
1 files changed, 25 insertions, 6 deletions
diff --git a/sdext/source/minimizer/optimizerdialog.cxx b/sdext/source/minimizer/optimizerdialog.cxx
index 62b364345674..17eb90630715 100644
--- a/sdext/source/minimizer/optimizerdialog.cxx
+++ b/sdext/source/minimizer/optimizerdialog.cxx
@@ -21,7 +21,6 @@
#include "optimizerdialog.hxx"
#include "impoptimizer.hxx"
#include "fileopendialog.hxx"
-#include "errordialog.hxx"
#include <com/sun/star/frame/XStorable.hpp>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
@@ -30,6 +29,9 @@
#include <com/sun/star/util/XCloseBroadcaster.hpp>
#include <sal/macros.h>
#include <osl/time.h>
+#include <vcl/errinf.hxx>
+#include <svtools/sfxecode.hxx>
+#include <svtools/ehdl.hxx>
#include <tools/urlobj.hxx>
#include <bitmaps.hlst>
@@ -568,6 +570,8 @@ void ActionListener::actionPerformed( const ActionEvent& rEvent )
lArguments[ 2 ].Name = "InformationDialog";
lArguments[ 2 ].Value <<= mrOptimizerDialog.GetFrame();
+
+ ErrCode errorCode;
try
{
ImpOptimizer aOptimizer(
@@ -577,15 +581,30 @@ void ActionListener::actionPerformed( const ActionEvent& rEvent )
}
catch (css::io::IOException&)
{
- mrOptimizerDialog.maStats.SetStatusValue(TK_Progress, Any(static_cast<sal_Int32>(0)));
+ // We always receive just ERRCODE_IO_CANTWRITE in case of problems, so no need to bother
+ // about extracting error code from exception text
+ errorCode = ERRCODE_IO_CANTWRITE;
+ }
+ catch (css::uno::Exception&)
+ {
+ // Other general exception
+ errorCode = ERRCODE_IO_GENERAL;
+ }
+
+ if (errorCode != ERRCODE_NONE)
+ {
+ // Restore wizard controls
+ mrOptimizerDialog.maStats.SetStatusValue(TK_Progress,
+ Any(static_cast<sal_Int32>(0)));
mrOptimizerDialog.setControlProperty("btnNavBack", "Enabled", Any(true));
mrOptimizerDialog.setControlProperty("btnNavNext", "Enabled", Any(false));
mrOptimizerDialog.setControlProperty("btnNavFinish", "Enabled", Any(true));
mrOptimizerDialog.setControlProperty("btnNavCancel", "Enabled", Any(true));
- ErrorDialog aInformationDialog(
- mrOptimizerDialog.UnoDialog::mxContext, mrOptimizerDialog.GetFrame(),
- mrOptimizerDialog.getString(STR_ERROR_IO));
- aInformationDialog.execute();
+
+ OUString aFileName;
+ mrOptimizerDialog.GetConfigProperty(TK_SaveAsURL) >>= aFileName;
+ SfxErrorContext aEc(ERRCTX_SFX_SAVEASDOC, aFileName);
+ ErrorHandler::HandleError(errorCode);
break;
}