summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--desktop/source/app/app.cxx44
-rw-r--r--desktop/source/app/updater.cxx5
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Update.xcs19
3 files changed, 68 insertions, 0 deletions
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 1a765eaa884f..0e7f37fe0c48 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -75,6 +75,8 @@
#include <com/sun/star/ui/theUIElementFactoryManager.hpp>
#include <com/sun/star/ui/theWindowStateConfiguration.hpp>
#include <com/sun/star/office/Quickstart.hpp>
+#include <com/sun/star/system/XSystemShellExecute.hpp>
+#include <com/sun/star/system/SystemShellExecute.hpp>
#include <desktop/exithelper.h>
#include <sal/log.hxx>
@@ -1465,6 +1467,41 @@ int Desktop::Main()
#if HAVE_FEATURE_UPDATE_MAR
if (officecfg::Office::Update::Update::Enabled::get())
{
+ // check if we just updated
+ bool bUpdateRunning = officecfg::Office::Update::Update::UpdateRunning::get();
+ if (bUpdateRunning)
+ {
+ OUString aSeeAlso = officecfg::Office::Update::Update::SeeAlso::get();
+ OUString aOldBuildID = officecfg::Office::Update::Update::OldBuildID::get();
+
+ OUString aBuildID("${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE("version") ":buildid}");
+ rtl::Bootstrap::expandMacros(aBuildID);
+ if (aOldBuildID == aBuildID)
+ {
+ SAL_INFO("desktop", "failed updater");
+ }
+ else
+ {
+ if (!aSeeAlso.isEmpty())
+ {
+ SAL_INFO("desktop", "See also: " << aSeeAlso);
+ Reference< css::system::XSystemShellExecute > xSystemShell(
+ SystemShellExecute::create(::comphelper::getProcessComponentContext()) );
+
+ xSystemShell->execute( aSeeAlso, OUString(), SystemShellExecuteFlags::URIS_ONLY );
+ }
+ }
+
+ // reset all the configuration values,
+ // all values need to be read before this code
+ std::shared_ptr< comphelper::ConfigurationChanges > batch(
+ comphelper::ConfigurationChanges::create());
+ officecfg::Office::Update::Update::UpdateRunning::set(false, batch);
+ officecfg::Office::Update::Update::SeeAlso::set(OUString(), batch);
+ officecfg::Office::Update::Update::OldBuildID::set(OUString(), batch);
+ batch->commit();
+ }
+
osl::DirectoryItem aPatchInfo;
osl::DirectoryItem::get(Updater::getUpdateInfoURL(), aPatchInfo);
osl::DirectoryItem aDirectoryItem;
@@ -1472,6 +1509,13 @@ int Desktop::Main()
if (aPatchInfo.is() && aDirectoryItem.is())
{
+ OUString aBuildID("${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE("version") ":buildid}");
+ rtl::Bootstrap::expandMacros(aBuildID);
+ std::shared_ptr< comphelper::ConfigurationChanges > batch(
+ comphelper::ConfigurationChanges::create());
+ officecfg::Office::Update::Update::OldBuildID::set(aBuildID, batch);
+ officecfg::Office::Update::Update::UpdateRunning::set(true, batch);
+ batch->commit();
update();
}
else if (isTimeForUpdateCheck())
diff --git a/desktop/source/app/updater.cxx b/desktop/source/app/updater.cxx
index 468c94b4e74c..1d2b7585321c 100644
--- a/desktop/source/app/updater.cxx
+++ b/desktop/source/app/updater.cxx
@@ -694,6 +694,11 @@ void update_checker()
}
}
CreateValidUpdateDir(aUpdateInfo);
+ OUString aSeeAlsoURL = aUpdateInfo.aSeeAlsoURL;
+ std::shared_ptr< comphelper::ConfigurationChanges > batch(
+ comphelper::ConfigurationChanges::create());
+ officecfg::Office::Update::Update::SeeAlso::set(aSeeAlsoURL, batch);
+ batch->commit();
}
}
}
diff --git a/officecfg/registry/schema/org/openoffice/Office/Update.xcs b/officecfg/registry/schema/org/openoffice/Office/Update.xcs
index 5ad40022e3e5..16f57bc8a986 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Update.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Update.xcs
@@ -47,6 +47,25 @@
</info>
<value>daily-master-gandalf</value>
</prop>
+ <prop oor:name="UpdateRunning" oor:type="xs:boolean" oor:nillable="false">
+ <info>
+ <desc>Determines if we are currently in an update process.
+ Needs to be reset after the update has been applied</desc>
+ </info>
+ <value>false</value>
+ </prop>
+ <prop oor:name="OldBuildID" oor:type="xs:string" oor:nillable="false">
+ <info>
+ <desc>The build ID of the build before the update</desc>
+ </info>
+ <value></value>
+ </prop>
+ <prop oor:name="SeeAlso" oor:type="xs:string" oor:nillable="false">
+ <info>
+ <desc>The URL to open after a successful update.</desc>
+ </info>
+ <value></value>
+ </prop>
</group>
</component>
</oor:component-schema>