summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorAndras Timar <atimar@suse.com>2012-06-28 12:33:25 +0200
committerAndras Timar <atimar@suse.com>2012-06-28 19:48:53 +0200
commitfbc9e19443167bdfd98474ff979bf2c34530efca (patch)
tree178c295bf894b3807b3f44c062e3274d2bb0fe87 /desktop
parent2009ee83ba068ec45654a4c8e4efa6c18a543a76 (diff)
fdo#46510 optionally turn on Quickstarter by installer
Change-Id: Ie002ab01a804cceea06e0a2ba7e6b2fe2a495344
Diffstat (limited to 'desktop')
-rw-r--r--desktop/source/app/app.cxx36
1 files changed, 36 insertions, 0 deletions
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 7f037c11a7e7..b7136de52574 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -102,6 +102,18 @@
#include <sys/wait.h>
#endif
+#ifdef WNT
+#ifdef _MSC_VER
+#pragma warning(push, 1) /* disable warnings within system headers */
+#endif
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+#endif //WNT
+
+
using rtl::OUString;
using rtl::OUStringBuffer;
@@ -3053,6 +3065,30 @@ void Desktop::CheckFirstRun( )
m_firstRunTimer.SetTimeoutHdl(LINK(this, Desktop, AsyncInitFirstRun));
m_firstRunTimer.Start();
+#ifdef WNT
+ // Check if Quckstarter should be started (on Windows only)
+ TCHAR szValue[8192];
+ DWORD nValueSize = sizeof(szValue);
+ HKEY hKey;
+ if ( ERROR_SUCCESS == RegOpenKey( HKEY_LOCAL_MACHINE, "Software\\LibreOffice", &hKey ) )
+ {
+ if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("RunQuickstartAtFirstStart"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
+ {
+ sal_Bool bQuickstart( sal_True );
+ sal_Bool bAutostart( sal_True );
+ Sequence< Any > aSeq( 2 );
+ aSeq[0] <<= bQuickstart;
+ aSeq[1] <<= bAutostart;
+
+ Reference < XInitialization > xQuickstart( ::comphelper::getProcessServiceFactory()->createInstance(
+ OUString::createFromAscii( "com.sun.star.office.Quickstart" )),UNO_QUERY );
+ if ( xQuickstart.is() )
+ xQuickstart->initialize( aSeq );
+ RegCloseKey( hKey );
+ }
+ }
+#endif
+
// --------------------------------------------------------------------
// reset the config flag