summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2016-12-12 17:29:28 +0100
committerSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2016-12-13 09:55:39 +0000
commit159ec429d136adc208922f27ba6044b529022dde (patch)
treefcec5d4ab6ee6e152c9c7625c250d35116b9db31 /sfx2
parent9c1d6f5e3549cf3c90d28f86b67db4af41dcbde8 (diff)
SafeMode: Restart goes into safe mode again
Looks like the XRestartManager keeps all command line arguments when restarting, so it also keeps --safe-mode. Solution is to add a flag file when restarting from safe mode, to prevent going into safe mode again. Change-Id: I9820d3ccbddf98b0bf6132f254c989f52ea5e808 Reviewed-on: https://gerrit.libreoffice.org/31913 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> (cherry picked from commit 0fda52cc4a5c78c55f96850faa734ea66891808c) Reviewed-on: https://gerrit.libreoffice.org/31937 Tested-by: Jenkins <ci@libreoffice.org>
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/safemode/safemode.cxx35
1 files changed, 30 insertions, 5 deletions
diff --git a/sfx2/source/safemode/safemode.cxx b/sfx2/source/safemode/safemode.cxx
index 3e84f7ed02e6..6d8dcf981a4d 100644
--- a/sfx2/source/safemode/safemode.cxx
+++ b/sfx2/source/safemode/safemode.cxx
@@ -20,7 +20,7 @@ namespace sfx2 {
bool SafeMode::putFlag()
{
- File safeModeFile(getFileName());
+ File safeModeFile(getFilePath("safemode"));
if (safeModeFile.open(osl_File_OpenFlag_Create) == FileBase::E_None)
{
safeModeFile.close();
@@ -30,7 +30,7 @@ bool SafeMode::putFlag()
}
bool SafeMode::hasFlag()
{
- File safeModeFile(getFileName());
+ File safeModeFile(getFilePath("safemode"));
if (safeModeFile.open(osl_File_OpenFlag_Read) == FileBase::E_None)
{
safeModeFile.close();
@@ -40,17 +40,42 @@ bool SafeMode::hasFlag()
}
bool SafeMode::removeFlag()
{
- return File::remove(getFileName()) == FileBase::E_None;
+ return File::remove(getFilePath("safemode")) == FileBase::E_None;
}
-OUString SafeMode::getFileName()
+bool SafeMode::putRestartFlag()
+{
+ File restartFile(getFilePath("safemode_restart"));
+ if (restartFile.open(osl_File_OpenFlag_Create) == FileBase::E_None)
+ {
+ restartFile.close();
+ return true;
+ }
+ return false;
+}
+bool SafeMode::hasRestartFlag()
+{
+ File restartFile(getFilePath("safemode_restart"));
+ if (restartFile.open(osl_File_OpenFlag_Read) == FileBase::E_None)
+ {
+ restartFile.close();
+ return true;
+ }
+ return false;
+}
+bool SafeMode::removeRestartFlag()
+{
+ return File::remove(getFilePath("safemode_restart")) == FileBase::E_None;
+}
+
+OUString SafeMode::getFilePath(const OUString& sFilename)
{
OUString url("${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE("bootstrap") ":UserInstallation}/");
rtl::Bootstrap::expandMacros(url);
OUString aProfilePath;
FileBase::getSystemPathFromFileURL(url, aProfilePath);
- FileBase::getAbsoluteFileURL(url, "safemode", aProfilePath);
+ FileBase::getAbsoluteFileURL(url, sFilename, aProfilePath);
return aProfilePath;
}