start quickstarter on every launch if configured to use it
This commit is contained in:
parent
4b3d53ce72
commit
ddfe78d7a7
3 changed files with 25 additions and 4 deletions
|
@ -155,6 +155,7 @@ class Desktop : public Application
|
|||
sal_Bool InitializeInstallation( const rtl::OUString& rAppFilename );
|
||||
sal_Bool InitializeConfiguration();
|
||||
void FlushConfiguration();
|
||||
static sal_Bool shouldLaunchQuickstart();
|
||||
sal_Bool InitializeQuickstartMode( com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& rSMgr );
|
||||
|
||||
void HandleBootstrapPathErrors( ::utl::Bootstrap::Status, const ::rtl::OUString& aMsg );
|
||||
|
|
|
@ -140,6 +140,9 @@
|
|||
#include <vcl/stdtext.hxx>
|
||||
#include <vcl/msgbox.hxx>
|
||||
#include <sfx2/sfx.hrc>
|
||||
#include <sfx2/app.hxx>
|
||||
#include <svl/itemset.hxx>
|
||||
#include <svl/eitem.hxx>
|
||||
#include <ucbhelper/contentbroker.hxx>
|
||||
#include <unotools/bootstrap.hxx>
|
||||
#include <cppuhelper/bootstrap.hxx>
|
||||
|
@ -2071,6 +2074,22 @@ void Desktop::FlushConfiguration()
|
|||
}
|
||||
}
|
||||
|
||||
sal_Bool Desktop::shouldLaunchQuickstart()
|
||||
{
|
||||
sal_Bool bQuickstart = GetCommandLineArgs()->IsQuickstart();
|
||||
if (!bQuickstart)
|
||||
{
|
||||
const SfxPoolItem* pItem=0;
|
||||
SfxItemSet aQLSet(SFX_APP()->GetPool(), SID_ATTR_QUICKLAUNCHER, SID_ATTR_QUICKLAUNCHER);
|
||||
SFX_APP()->GetOptions(aQLSet);
|
||||
SfxItemState eState = aQLSet.GetItemState(SID_ATTR_QUICKLAUNCHER, FALSE, &pItem);
|
||||
if (SFX_ITEM_SET == eState)
|
||||
bQuickstart = ((SfxBoolItem*)pItem)->GetValue();
|
||||
}
|
||||
return bQuickstart;
|
||||
}
|
||||
|
||||
|
||||
sal_Bool Desktop::InitializeQuickstartMode( Reference< XMultiServiceFactory >& rSMgr )
|
||||
{
|
||||
try
|
||||
|
@ -2080,9 +2099,7 @@ sal_Bool Desktop::InitializeQuickstartMode( Reference< XMultiServiceFactory >& r
|
|||
// this will only be activated if -quickstart was specified on cmdline
|
||||
RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) createInstance com.sun.star.office.Quickstart" );
|
||||
|
||||
sal_Bool bQuickstart = GetCommandLineArgs()->IsQuickstart();
|
||||
Sequence< Any > aSeq( 1 );
|
||||
aSeq[0] <<= bQuickstart;
|
||||
sal_Bool bQuickstart = shouldLaunchQuickstart();
|
||||
|
||||
// Try to instanciate quickstart service. This service is not mandatory, so
|
||||
// do nothing if service is not available
|
||||
|
@ -2095,6 +2112,8 @@ sal_Bool Desktop::InitializeQuickstartMode( Reference< XMultiServiceFactory >& r
|
|||
if ( bQuickstart )
|
||||
#endif
|
||||
{
|
||||
Sequence< Any > aSeq( 1 );
|
||||
aSeq[0] <<= bQuickstart;
|
||||
Reference < XComponent > xQuickstart( rSMgr->createInstanceWithArguments(
|
||||
DEFINE_CONST_UNICODE( "com.sun.star.office.Quickstart" ), aSeq ),
|
||||
UNO_QUERY );
|
||||
|
|
|
@ -286,7 +286,8 @@ void Desktop::DoRestartActionsIfNecessary( sal_Bool bQuickStart )
|
|||
Reference< util::XChangesBatch >( xPSet, UNO_QUERY_THROW )->commitChanges();
|
||||
|
||||
Sequence< Any > aSeq( 1 );
|
||||
aSeq[0] <<= sal_True;
|
||||
sal_Bool bQuickstart = shouldLaunchQuickstart();
|
||||
aSeq[0] <<= bQuickstart;
|
||||
|
||||
Reference < XInitialization > xQuickstart( ::comphelper::getProcessServiceFactory()->createInstance(
|
||||
OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.office.Quickstart" ) ) ),UNO_QUERY_THROW );
|
||||
|
|
Loading…
Reference in a new issue