diff options
Diffstat (limited to 'framework/source')
-rw-r--r-- | framework/source/classes/menumanager.cxx | 75 | ||||
-rw-r--r-- | framework/source/classes/taskcreator.cxx | 3 | ||||
-rw-r--r-- | framework/source/dispatch/closedispatcher.cxx | 10 | ||||
-rw-r--r-- | framework/source/dispatch/startmoduledispatcher.cxx | 7 | ||||
-rw-r--r-- | framework/source/jobs/helponstartup.cxx | 24 | ||||
-rw-r--r-- | framework/source/jobs/job.cxx | 18 | ||||
-rw-r--r-- | framework/source/loadenv/loadenv.cxx | 7 | ||||
-rw-r--r-- | framework/source/services/autorecovery.cxx | 13 | ||||
-rw-r--r-- | framework/source/services/backingwindow.cxx | 8 | ||||
-rw-r--r-- | framework/source/services/backingwindow.hxx | 1 | ||||
-rw-r--r-- | framework/source/services/desktop.cxx | 10 | ||||
-rw-r--r-- | framework/source/services/sessionlistener.cxx | 4 | ||||
-rw-r--r-- | framework/source/uielement/menubarmanager.cxx | 35 |
13 files changed, 101 insertions, 114 deletions
diff --git a/framework/source/classes/menumanager.cxx b/framework/source/classes/menumanager.cxx index d12f80c54555..54e4dc34ffd1 100644 --- a/framework/source/classes/menumanager.cxx +++ b/framework/source/classes/menumanager.cxx @@ -35,7 +35,7 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/frame/XFramesSupplier.hpp> -#include <com/sun/star/frame/XDesktop.hpp> +#include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/container/XEnumeration.hpp> #include <com/sun/star/util/XStringWidth.hpp> @@ -622,39 +622,35 @@ void MenuManager::UpdateSpecialFileMenu( Menu* pMenu ) } } -void MenuManager::UpdateSpecialWindowMenu( Menu* pMenu,const Reference< XMultiServiceFactory >& xServiceFactory,framework::IMutex& _rMutex ) +void MenuManager::UpdateSpecialWindowMenu( Menu* pMenu,const Reference< XComponentContext >& xContext,framework::IMutex& _rMutex ) { // update window list ::std::vector< ::rtl::OUString > aNewWindowListVector; - Reference< XDesktop > xDesktop( xServiceFactory->createInstance( SERVICENAME_DESKTOP ), UNO_QUERY ); + Reference< XDesktop2 > xDesktop = Desktop::create( xContext ); sal_uInt16 nActiveItemId = 0; sal_uInt16 nItemId = START_ITEMID_WINDOWLIST; - if ( xDesktop.is() ) + Reference< XFrame > xCurrentFrame = xDesktop->getCurrentFrame(); + Reference< XIndexAccess > xList( xDesktop->getFrames(), UNO_QUERY ); + sal_Int32 nFrameCount = xList->getCount(); + aNewWindowListVector.reserve(nFrameCount); + for (sal_Int32 i=0; i<nFrameCount; ++i ) { - Reference< XFramesSupplier > xTasksSupplier( xDesktop, UNO_QUERY ); - Reference< XFrame > xCurrentFrame = xDesktop->getCurrentFrame(); - Reference< XIndexAccess > xList( xTasksSupplier->getFrames(), UNO_QUERY ); - sal_Int32 nCount = xList->getCount(); - aNewWindowListVector.reserve(nCount); - for (sal_Int32 i=0; i<nCount; ++i ) + Reference< XFrame > xFrame; + xList->getByIndex(i) >>= xFrame; + + if (xFrame.is()) { - Reference< XFrame > xFrame; - xList->getByIndex(i) >>= xFrame; + if ( xFrame == xCurrentFrame ) + nActiveItemId = nItemId; - if (xFrame.is()) + Window* pWin = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() ); + if ( pWin && pWin->IsVisible() ) { - if ( xFrame == xCurrentFrame ) - nActiveItemId = nItemId; - - Window* pWin = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() ); - if ( pWin && pWin->IsVisible() ) - { - aNewWindowListVector.push_back( pWin->GetText() ); - ++nItemId; - } + aNewWindowListVector.push_back( pWin->GetText() ); + ++nItemId; } } } @@ -767,7 +763,7 @@ IMPL_LINK( MenuManager, Activate, Menu *, pMenu ) if ( m_aMenuItemCommand == aSpecialFileMenu || m_aMenuItemCommand == aSlotSpecialFileMenu || aCommand == aSpecialFileCommand ) UpdateSpecialFileMenu( pMenu ); else if ( m_aMenuItemCommand == aSpecialWindowMenu || m_aMenuItemCommand == aSlotSpecialWindowMenu || aCommand == aSpecialWindowCommand ) - UpdateSpecialWindowMenu( pMenu, getServiceFactory(), m_aLock ); + UpdateSpecialWindowMenu( pMenu, comphelper::getComponentContext(getServiceFactory()), m_aLock ); // Check if some modes have changed so we have to update our menu images if ( bShowMenuImages != m_bShowMenuImages ) @@ -866,28 +862,25 @@ IMPL_LINK( MenuManager, Select, Menu *, pMenu ) { // window list menu item selected - Reference< XFramesSupplier > xDesktop( getServiceFactory()->createInstance( SERVICENAME_DESKTOP ), UNO_QUERY ); + Reference< XDesktop2 > xDesktop = Desktop::create( comphelper::getComponentContext(getServiceFactory()) ); - if ( xDesktop.is() ) + sal_uInt16 nTaskId = START_ITEMID_WINDOWLIST; + Reference< XIndexAccess > xList( xDesktop->getFrames(), UNO_QUERY ); + sal_Int32 nCount = xList->getCount(); + for ( sal_Int32 i=0; i<nCount; ++i ) { - sal_uInt16 nTaskId = START_ITEMID_WINDOWLIST; - Reference< XIndexAccess > xList( xDesktop->getFrames(), UNO_QUERY ); - sal_Int32 nCount = xList->getCount(); - for ( sal_Int32 i=0; i<nCount; ++i ) - { - Reference< XFrame > xFrame; - xList->getByIndex(i) >>= xFrame; + Reference< XFrame > xFrame; + xList->getByIndex(i) >>= xFrame; - if ( xFrame.is() && nTaskId == nCurItemId ) - { - Window* pWin = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() ); - pWin->GrabFocus(); - pWin->ToTop( TOTOP_RESTOREWHENMIN ); - break; - } - - nTaskId++; + if ( xFrame.is() && nTaskId == nCurItemId ) + { + Window* pWin = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() ); + pWin->GrabFocus(); + pWin->ToTop( TOTOP_RESTOREWHENMIN ); + break; } + + nTaskId++; } } else diff --git a/framework/source/classes/taskcreator.cxx b/framework/source/classes/taskcreator.cxx index 74e212bdc6d2..87dd6d302073 100644 --- a/framework/source/classes/taskcreator.cxx +++ b/framework/source/classes/taskcreator.cxx @@ -23,6 +23,7 @@ #include <loadenv/targethelper.hxx> #include <services.h> +#include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/lang/XSingleServiceFactory.hpp> #include <com/sun/star/beans/NamedValue.hpp> @@ -102,7 +103,7 @@ css::uno::Reference< css::frame::XFrame > TaskCreator::createTask( const ::rtl:: css::beans::NamedValue aArg ; aArg.Name = rtl::OUString(ARGUMENT_PARENTFRAME); - aArg.Value <<= css::uno::Reference< css::frame::XFrame >(xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY_THROW); + aArg.Value <<= css::uno::Reference< css::frame::XFrame >( css::frame::Desktop::create( comphelper::getComponentContext(xSMGR) ), css::uno::UNO_QUERY_THROW); lArgs[0] <<= aArg; aArg.Name = rtl::OUString(ARGUMENT_CREATETOPWINDOW); diff --git a/framework/source/dispatch/closedispatcher.cxx b/framework/source/dispatch/closedispatcher.cxx index 258b5b575acd..675c507ab898 100644 --- a/framework/source/dispatch/closedispatcher.cxx +++ b/framework/source/dispatch/closedispatcher.cxx @@ -25,7 +25,7 @@ #include <services.h> #include <general.h> -#include <com/sun/star/frame/XDesktop.hpp> +#include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/frame/XController.hpp> #include <com/sun/star/frame/CommandGroup.hpp> #include <com/sun/star/lang/DisposedException.hpp> @@ -39,6 +39,7 @@ #include "vcl/syswin.hxx" #include <osl/mutex.hxx> #include <unotools/moduleoptions.hxx> +#include <comphelper/processfactory.hxx> using namespace com::sun::star; @@ -299,7 +300,7 @@ IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback) // Analyze the environment a first time. // If we found some special cases, we can // make some decisions erliar! - css::uno::Reference< css::frame::XFramesSupplier > xDesktop(xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY_THROW); + css::uno::Reference< css::frame::XFramesSupplier > xDesktop( css::frame::Desktop::create(comphelper::getComponentContext(xSMGR)), css::uno::UNO_QUERY_THROW); FrameListAnalyzer aCheck1(xDesktop, xCloseFrame, FrameListAnalyzer::E_HELP | FrameListAnalyzer::E_BACKINGCOMPONENT); // a) If the curent frame (where the close dispatch was requested for) does not have @@ -471,7 +472,7 @@ sal_Bool CloseDispatcher::implts_prepareFrameForClosing(const css::uno::Referenc aReadLock.unlock(); // <- SAFE ---------------------------------- - css::uno::Reference< css::frame::XFramesSupplier > xDesktop(xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY_THROW); + css::uno::Reference< css::frame::XFramesSupplier > xDesktop( css::frame::Desktop::create( comphelper::getComponentContext(xSMGR) ), css::uno::UNO_QUERY_THROW); FrameListAnalyzer aCheck(xDesktop, xFrame, FrameListAnalyzer::E_ALL); sal_Int32 c = aCheck.m_lModelFrames.getLength(); @@ -573,8 +574,7 @@ sal_Bool CloseDispatcher::implts_terminateApplication() aReadLock.unlock(); // <- SAFE ---------------------------------- - css::uno::Reference< css::frame::XDesktop > xDesktop( - xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY_THROW); + css::uno::Reference< css::frame::XDesktop2 > xDesktop = css::frame::Desktop::create( comphelper::getComponentContext(xSMGR) ); return xDesktop->terminate(); } diff --git a/framework/source/dispatch/startmoduledispatcher.cxx b/framework/source/dispatch/startmoduledispatcher.cxx index c609a83a6ecb..ed7959d41116 100644 --- a/framework/source/dispatch/startmoduledispatcher.cxx +++ b/framework/source/dispatch/startmoduledispatcher.cxx @@ -29,7 +29,7 @@ #include <services.h> #include <general.h> -#include <com/sun/star/frame/XDesktop.hpp> +#include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/frame/XController.hpp> #include <com/sun/star/frame/CommandGroup.hpp> #include <com/sun/star/awt/XTopWindow.hpp> @@ -41,6 +41,7 @@ #include <vcl/svapp.hxx> #include <osl/mutex.hxx> #include <unotools/moduleoptions.hxx> +#include <comphelper/processfactory.hxx> namespace framework{ @@ -152,7 +153,7 @@ void SAL_CALL StartModuleDispatcher::removeStatusListener(const css::uno::Refere // <- SAFE ---------------------------------- css::uno::Reference< css::frame::XFramesSupplier > xDesktop( - xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); + css::frame::Desktop::create( comphelper::getComponentContext(xSMGR) ), css::uno::UNO_QUERY); FrameListAnalyzer aCheck( xDesktop, @@ -182,7 +183,7 @@ void SAL_CALL StartModuleDispatcher::removeStatusListener(const css::uno::Refere aReadLock.unlock(); // <- SAFE ---------------------------------- - css::uno::Reference< css::frame::XFrame > xDesktop (xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); + css::uno::Reference< css::frame::XDesktop2> xDesktop = css::frame::Desktop::create( comphelper::getComponentContext(xSMGR) ); css::uno::Reference< css::frame::XFrame > xFrame = xDesktop->findFrame (SPECIALTARGET_BLANK, 0); css::uno::Reference< css::awt::XWindow > xContainerWindow = xFrame->getContainerWindow (); diff --git a/framework/source/jobs/helponstartup.cxx b/framework/source/jobs/helponstartup.cxx index 3d1285e3c222..0d90cf279467 100644 --- a/framework/source/jobs/helponstartup.cxx +++ b/framework/source/jobs/helponstartup.cxx @@ -39,7 +39,7 @@ #include <com/sun/star/frame/FrameSearchFlag.hpp> #include <com/sun/star/frame/ModuleManager.hpp> #include <com/sun/star/frame/XFramesSupplier.hpp> -#include <com/sun/star/frame/XDesktop.hpp> +#include <com/sun/star/frame/Desktop.hpp> namespace framework{ @@ -69,7 +69,7 @@ static ::rtl::OUString ENVTYPE_DOCUMENTEVENT ("DOCUMENTEVENT"); //----------------------------------------------- -DEFINE_XSERVICEINFO_MULTISERVICE(HelpOnStartup , +DEFINE_XSERVICEINFO_MULTISERVICE_2(HelpOnStartup , ::cppu::OWeakObject , SERVICENAME_JOB , IMPLEMENTATIONNAME_HELPONSTARTUP) @@ -82,23 +82,20 @@ DEFINE_INIT_SERVICE(HelpOnStartup, see macro DEFINE_XSERVICEINFO_MULTISERVICE and "impl_initService()" for further informations! */ // create some needed uno services and cache it - css::uno::Reference<css::uno::XComponentContext> xContext = comphelper::getComponentContext(m_xSMGR); - m_xModuleManager = css::frame::ModuleManager::create( xContext ); + m_xModuleManager = css::frame::ModuleManager::create( m_xContext ); - m_xDesktop = css::uno::Reference< css::frame::XFrame >( - m_xSMGR->createInstance(SERVICENAME_DESKTOP), - css::uno::UNO_QUERY_THROW); + m_xDesktop = css::frame::Desktop::create(m_xContext); m_xConfig = css::uno::Reference< css::container::XNameAccess >( ::comphelper::ConfigurationHelper::openConfig( - xContext, + m_xContext, CFG_PACKAGE_MODULES, ::comphelper::ConfigurationHelper::E_READONLY), css::uno::UNO_QUERY_THROW); // ask for office locale ::comphelper::ConfigurationHelper::readDirectKey( - xContext, + m_xContext, CFG_PACKAGE_SETUP, CFG_PATH_L10N, CFG_KEY_LOCALE, @@ -106,7 +103,7 @@ DEFINE_INIT_SERVICE(HelpOnStartup, // detect system ::comphelper::ConfigurationHelper::readDirectKey( - xContext, + m_xContext, CFG_PACKAGE_COMMON, CFG_PATH_HELP, CFG_KEY_HELPSYSTEM, @@ -128,9 +125,9 @@ DEFINE_INIT_SERVICE(HelpOnStartup, ) //----------------------------------------------- -HelpOnStartup::HelpOnStartup(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR) +HelpOnStartup::HelpOnStartup(const css::uno::Reference< css::uno::XComponentContext >& xContext) : ThreadHelpBase( ) - , m_xSMGR (xSMGR) + , m_xContext (xContext) { } @@ -265,7 +262,7 @@ void SAL_CALL HelpOnStartup::disposing(const css::lang::EventObject& aEvent) { // SAFE -> ResetableGuard aLock(m_aLock); - css::uno::Reference< css::frame::XFrame > xDesktop = m_xDesktop; + css::uno::Reference< css::frame::XDesktop2 > xDesktop = m_xDesktop; aLock.unlock(); // <- SAFE @@ -310,7 +307,6 @@ void SAL_CALL HelpOnStartup::disposing(const css::lang::EventObject& aEvent) // SAFE -> ResetableGuard aLock(m_aLock); - css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR (m_xSMGR, css::uno::UNO_QUERY_THROW); css::uno::Reference< css::container::XNameAccess > xConfig = m_xConfig; ::rtl::OUString sLocale = m_sLocale; ::rtl::OUString sSystem = m_sSystem; diff --git a/framework/source/jobs/job.cxx b/framework/source/jobs/job.cxx index 62ec7ebdd573..a38c2f499c92 100644 --- a/framework/source/jobs/job.cxx +++ b/framework/source/jobs/job.cxx @@ -23,6 +23,7 @@ #include <general.h> #include <services.h> +#include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/task/XJob.hpp> #include <com/sun/star/task/XAsyncJob.hpp> #include <com/sun/star/util/XCloseBroadcaster.hpp> @@ -337,7 +338,7 @@ void Job::die() m_xJob = css::uno::Reference< css::uno::XInterface >(); m_xFrame = css::uno::Reference< css::frame::XFrame >(); m_xModel = css::uno::Reference< css::frame::XModel >(); - m_xDesktop = css::uno::Reference< css::frame::XDesktop >(); + m_xDesktop = css::uno::Reference< css::frame::XDesktop2 >(); m_xResultListener = css::uno::Reference< css::frame::XDispatchResultListener >(); m_xResultSourceFake = css::uno::Reference< css::uno::XInterface >(); m_bPendingCloseFrame = sal_False; @@ -541,17 +542,14 @@ void Job::impl_startListening() { try { - m_xDesktop = css::uno::Reference< css::frame::XDesktop >(m_xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); + m_xDesktop = css::frame::Desktop::create( comphelper::getComponentContext(m_xSMGR) ); css::uno::Reference< css::frame::XTerminateListener > xThis(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); - if (m_xDesktop.is()) - { - m_xDesktop->addTerminateListener(xThis); - m_bListenOnDesktop = sal_True; - } + m_xDesktop->addTerminateListener(xThis); + m_bListenOnDesktop = sal_True; } catch(const css::uno::Exception&) { - m_xDesktop = css::uno::Reference< css::frame::XDesktop >(); + m_xDesktop.clear(); } } @@ -614,7 +612,7 @@ void Job::impl_stopListening() { css::uno::Reference< css::frame::XTerminateListener > xThis(static_cast< ::cppu::OWeakObject* >(this) , css::uno::UNO_QUERY); m_xDesktop->removeTerminateListener(xThis); - m_xDesktop = css::uno::Reference< css::frame::XDesktop >(); + m_xDesktop.clear(); m_bListenOnDesktop = sal_False; } catch(const css::uno::Exception&) @@ -887,7 +885,7 @@ void SAL_CALL Job::disposing( const css::lang::EventObject& aEvent ) throw(css:: if (m_xDesktop.is() && aEvent.Source == m_xDesktop) { - m_xDesktop = css::uno::Reference< css::frame::XDesktop >(); + m_xDesktop.clear(); m_bListenOnDesktop = sal_False; } else if (m_xFrame.is() && aEvent.Source == m_xFrame) diff --git a/framework/source/loadenv/loadenv.cxx b/framework/source/loadenv/loadenv.cxx index 78bc67c8c42f..0b5f95db11a1 100644 --- a/framework/source/loadenv/loadenv.cxx +++ b/framework/source/loadenv/loadenv.cxx @@ -50,6 +50,7 @@ #include <com/sun/star/awt/XWindow.hpp> #include <com/sun/star/awt/XWindow2.hpp> #include <com/sun/star/awt/XTopWindow.hpp> +#include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/frame/XModel.hpp> #include <com/sun/star/frame/XFrameLoader.hpp> #include <com/sun/star/frame/XSynchronousFrameLoader.hpp> @@ -972,7 +973,7 @@ sal_Bool LoadEnv::impl_furtherDocsAllowed() aVal >>= nMaxOpenDocuments; css::uno::Reference< css::frame::XFramesSupplier > xDesktop( - xSMGR->createInstance(SERVICENAME_DESKTOP), + css::frame::Desktop::create( comphelper::getComponentContext(xSMGR)), css::uno::UNO_QUERY_THROW); FrameListAnalyzer aAnalyzer(xDesktop, @@ -1295,7 +1296,7 @@ css::uno::Reference< css::frame::XFrame > LoadEnv::impl_searchAlreadyLoaded() // otherwhise - iterate through the tasks of the desktop container // to find out, which of them might contains the requested document - css::uno::Reference< css::frame::XFramesSupplier > xSupplier(m_xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); + css::uno::Reference< css::frame::XDesktop2 > xSupplier = css::frame::Desktop::create( comphelper::getComponentContext(m_xSMGR) ); css::uno::Reference< css::container::XIndexAccess > xTaskList(xSupplier->getFrames() , css::uno::UNO_QUERY); if (!xTaskList.is()) @@ -1436,7 +1437,7 @@ css::uno::Reference< css::frame::XFrame > LoadEnv::impl_searchRecycleTarget() if (m_lMediaDescriptor.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_HIDDEN(), sal_False) == sal_True) return css::uno::Reference< css::frame::XFrame >(); - css::uno::Reference< css::frame::XFramesSupplier > xSupplier(m_xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); + css::uno::Reference< css::frame::XFramesSupplier > xSupplier( css::frame::Desktop::create( comphelper::getComponentContext(m_xSMGR) ), css::uno::UNO_QUERY); FrameListAnalyzer aTasksAnalyzer(xSupplier, css::uno::Reference< css::frame::XFrame >(), FrameListAnalyzer::E_BACKINGCOMPONENT); if (aTasksAnalyzer.m_xBackingComponent.is()) { diff --git a/framework/source/services/autorecovery.cxx b/framework/source/services/autorecovery.cxx index 3d4a794eba89..d84086b69c0f 100644 --- a/framework/source/services/autorecovery.cxx +++ b/framework/source/services/autorecovery.cxx @@ -36,6 +36,7 @@ #include <com/sun/star/ucb/NameClash.hpp> #include <com/sun/star/container/XNameAccess.hpp> +#include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/frame/GlobalEventBroadcaster.hpp> #include <com/sun/star/frame/XLoadable.hpp> #include <com/sun/star/frame/XModel2.hpp> @@ -1988,7 +1989,7 @@ void AutoRecovery::implts_changeAllDocVisibility(sal_Bool bVisible) aReadLock.unlock(); // <- SAFE ---------------------------------- - css::uno::Reference< css::frame::XFramesSupplier > xDesktop(xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); + css::uno::Reference< css::frame::XFramesSupplier > xDesktop( css::frame::Desktop::create( comphelper::getComponentContext(xSMGR) ), css::uno::UNO_QUERY); lcl_changeVisibility( xDesktop, bVisible ); aReadLock.unlock(); @@ -2128,8 +2129,8 @@ AutoRecovery::ETimerType AutoRecovery::implts_saveDocs( sal_Bool bAl if (pParams) xExternalProgress = pParams->m_xProgress; - css::uno::Reference< css::frame::XFramesSupplier > xDesktop (xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); - ::rtl::OUString sBackupPath (SvtPathOptions().GetBackupPath()); + css::uno::Reference< css::frame::XDesktop2 > xDesktop = css::frame::Desktop::create( comphelper::getComponentContext(xSMGR)); + ::rtl::OUString sBackupPath(SvtPathOptions().GetBackupPath()); css::uno::Reference< css::frame::XController > xActiveController; css::uno::Reference< css::frame::XModel > xActiveModel ; @@ -2625,7 +2626,7 @@ void AutoRecovery::implts_openOneDoc(const ::rtl::OUString& sURL aReadLock.unlock(); // <- SAFE ---------------------------------- - css::uno::Reference< css::frame::XFrame > xDesktop( xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY_THROW ); + css::uno::Reference< css::frame::XDesktop2 > xDesktop = css::frame::Desktop::create( comphelper::getComponentContext(xSMGR)); ::std::vector< Reference< XComponent > > aCleanup; try @@ -3361,9 +3362,7 @@ void AutoRecovery::implts_verifyCacheAgainstDesktopDocumentList() try { - css::uno::Reference< css::frame::XFramesSupplier > xDesktop( - xSMGR->createInstance(SERVICENAME_DESKTOP), - css::uno::UNO_QUERY_THROW); + css::uno::Reference< css::frame::XDesktop2 > xDesktop = css::frame::Desktop::create( comphelper::getComponentContext(xSMGR)); css::uno::Reference< css::container::XIndexAccess > xContainer( xDesktop->getFrames(), diff --git a/framework/source/services/backingwindow.cxx b/framework/source/services/backingwindow.cxx index c6d83b3cc86f..d633f8760b49 100644 --- a/framework/source/services/backingwindow.cxx +++ b/framework/source/services/backingwindow.cxx @@ -51,6 +51,7 @@ #include "rtl/ustrbuf.hxx" #include "osl/file.h" +#include "com/sun/star/frame/Desktop.hpp" #include "com/sun/star/lang/XMultiServiceFactory.hpp" #include "com/sun/star/container/XNameAccess.hpp" #include "com/sun/star/configuration/theDefaultProvider.hpp" @@ -213,9 +214,8 @@ BackingWindow::BackingWindow( Window* i_pParent ) : maToolbox.ShowItem( nItemId_Info ); // get dispatch provider - mxDesktop = Reference<XDesktop>( comphelper::getProcessServiceFactory()->createInstance(SERVICENAME_DESKTOP ),UNO_QUERY ); - if( mxDesktop.is() ) - mxDesktopDispatchProvider = Reference< XDispatchProvider >( mxDesktop, UNO_QUERY ); + Reference<XDesktop2> xDesktop = Desktop::create( comphelper::getProcessComponentContext() ); + mxDesktopDispatchProvider = Reference< XDispatchProvider >( xDesktop, UNO_QUERY ); maWriterButton.SetHelpId( ".HelpId:StartCenter:WriterButton" ); maCalcButton.SetHelpId( ".HelpId:StartCenter:CalcButton" ); @@ -702,7 +702,7 @@ long BackingWindow::Notify( NotifyEvent& rNEvt ) if( ! mpAccExec ) { mpAccExec = svt::AcceleratorExecute::createAcceleratorHelper(); - mpAccExec->init( comphelper::getProcessServiceFactory(), mxFrame); + mpAccExec->init( comphelper::getProcessComponentContext(), mxFrame); } const KeyEvent* pEvt = rNEvt.GetKeyEvent(); diff --git a/framework/source/services/backingwindow.hxx b/framework/source/services/backingwindow.hxx index fdacdbfa630e..94c16dd24eb6 100644 --- a/framework/source/services/backingwindow.hxx +++ b/framework/source/services/backingwindow.hxx @@ -75,7 +75,6 @@ namespace framework com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > aArgSeq; }; - com::sun::star::uno::Reference<com::sun::star::frame::XDesktop> mxDesktop; com::sun::star::uno::Reference<com::sun::star::frame::XDispatchProvider > mxDesktopDispatchProvider; com::sun::star::uno::Reference<com::sun::star::frame::XFrame> mxFrame; com::sun::star::uno::Reference<com::sun::star::document::XEventBroadcaster> mxBroadcaster; diff --git a/framework/source/services/desktop.cxx b/framework/source/services/desktop.cxx index 7913bdb1db5a..a695eb2000a9 100644 --- a/framework/source/services/desktop.cxx +++ b/framework/source/services/desktop.cxx @@ -79,10 +79,11 @@ namespace framework{ //***************************************************************************************************************** // XInterface, XTypeProvider, XServiceInfo //***************************************************************************************************************** -DEFINE_XINTERFACE_15 ( Desktop , +DEFINE_XINTERFACE_16 ( Desktop , OWeakObject , DIRECT_INTERFACE( css::lang::XTypeProvider ), DIRECT_INTERFACE( css::lang::XServiceInfo ), + DIRECT_INTERFACE( css::frame::XDesktop2 ), DIRECT_INTERFACE( css::frame::XDesktop ), DIRECT_INTERFACE( css::frame::XComponentLoader ), DIRECT_INTERFACE( css::frame::XTasksSupplier ), @@ -98,9 +99,10 @@ DEFINE_XINTERFACE_15 ( Desktop DIRECT_INTERFACE( css::frame::XUntitledNumbers ) ) -DEFINE_XTYPEPROVIDER_15 ( Desktop , +DEFINE_XTYPEPROVIDER_16 ( Desktop , css::lang::XTypeProvider , css::lang::XServiceInfo , + css::frame::XDesktop2 , css::frame::XDesktop , css::frame::XComponentLoader , css::frame::XTasksSupplier , @@ -118,7 +120,7 @@ DEFINE_XTYPEPROVIDER_15 ( Desktop DEFINE_XSERVICEINFO_ONEINSTANCESERVICE ( Desktop , ::cppu::OWeakObject , - SERVICENAME_DESKTOP , + DECLARE_ASCII("com.sun.star.frame.Desktop" ), IMPLEMENTATIONNAME_DESKTOP ) @@ -198,7 +200,7 @@ Desktop::Desktop( const css::uno::Reference< css::lang::XMultiServiceFactory >& // Init baseclasses first // Attention: Don't change order of initialization! // ThreadHelpBase is a struct with a lock as member. We can't use a lock as direct member! - // We must garant right initialization and a valid value of this to initialize other baseclasses! + // We must guarantee right initialization and a valid value of this to initialize other baseclasses! : ThreadHelpBase ( &Application::GetSolarMutex() ) , TransactionBase ( ) , ::cppu::OBroadcastHelperVar< ::cppu::OMultiTypeInterfaceContainerHelper, ::cppu::OMultiTypeInterfaceContainerHelper::keyType > ( m_aLock.getShareableOslMutex() ) diff --git a/framework/source/services/sessionlistener.cxx b/framework/source/services/sessionlistener.cxx index 1cda58996e62..51f7a398ee86 100644 --- a/framework/source/services/sessionlistener.cxx +++ b/framework/source/services/sessionlistener.cxx @@ -41,7 +41,7 @@ #include <com/sun/star/frame/XStorable.hpp> #include <com/sun/star/frame/XComponentLoader.hpp> #include <com/sun/star/frame/XDispatch.hpp> -#include <com/sun/star/frame/XDesktop.hpp> +#include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/util/XModifiable.hpp> #include <com/sun/star/util/XChangesBatch.hpp> #include <com/sun/star/util/URLTransformer.hpp> @@ -301,7 +301,7 @@ void SAL_CALL SessionListener::approveInteraction( sal_Bool bInteractionGranted // first of all let the session be stored to be sure that we lose no information StoreSession( sal_False ); - css::uno::Reference< css::frame::XDesktop > xDesktop( m_xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY_THROW); + css::uno::Reference< css::frame::XDesktop2 > xDesktop = css::frame::Desktop::create( comphelper::getComponentContext(m_xSMGR) ); // honestly: how many implementations of XDesktop will we ever have? // so casting this directly to the implementation Desktop* pDesktop(dynamic_cast<Desktop*>(xDesktop.get())); diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx index 49c35c4cc83f..4303f4e58bc1 100644 --- a/framework/source/uielement/menubarmanager.cxx +++ b/framework/source/uielement/menubarmanager.cxx @@ -35,7 +35,7 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/lang/DisposedException.hpp> #include <com/sun/star/frame/XFramesSupplier.hpp> -#include <com/sun/star/frame/XDesktop.hpp> +#include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/frame/PopupMenuControllerFactory.hpp> #include <com/sun/star/container/XEnumeration.hpp> #include <com/sun/star/util/XStringWidth.hpp> @@ -853,7 +853,7 @@ IMPL_LINK( MenuBarManager, Activate, Menu *, pMenu ) ::rtl::OUString aMenuCommand( m_aMenuItemCommand ); if ( m_aMenuItemCommand == aSpecialWindowMenu || m_aMenuItemCommand == aSlotSpecialWindowMenu || aMenuCommand == aSpecialWindowCommand ) - MenuManager::UpdateSpecialWindowMenu( pMenu,getServiceFactory(),m_aLock ); + MenuManager::UpdateSpecialWindowMenu( pMenu, comphelper::getComponentContext(getServiceFactory()), m_aLock ); // Check if some modes have changed so we have to update our menu images sal_Int16 nSymbolsStyle = SvtMiscOptions().GetCurrentSymbolsStyle(); @@ -1078,27 +1078,24 @@ IMPL_LINK( MenuBarManager, Select, Menu *, pMenu ) { // window list menu item selected - Reference< XFramesSupplier > xDesktop( getServiceFactory()->createInstance( SERVICENAME_DESKTOP ), UNO_QUERY ); + Reference< XDesktop2 > xDesktop = Desktop::create( comphelper::getComponentContext(getServiceFactory()) ); - if ( xDesktop.is() ) + sal_uInt16 nTaskId = START_ITEMID_WINDOWLIST; + Reference< XIndexAccess > xList( xDesktop->getFrames(), UNO_QUERY ); + sal_Int32 nCount = xList->getCount(); + for ( sal_Int32 i=0; i<nCount; ++i ) { - sal_uInt16 nTaskId = START_ITEMID_WINDOWLIST; - Reference< XIndexAccess > xList( xDesktop->getFrames(), UNO_QUERY ); - sal_Int32 nCount = xList->getCount(); - for ( sal_Int32 i=0; i<nCount; ++i ) + Reference< XFrame > xFrame; + xList->getByIndex(i) >>= xFrame; + if ( xFrame.is() && nTaskId == nCurItemId ) { - Reference< XFrame > xFrame; - xList->getByIndex(i) >>= xFrame; - if ( xFrame.is() && nTaskId == nCurItemId ) - { - Window* pWin = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() ); - pWin->GrabFocus(); - pWin->ToTop( TOTOP_RESTOREWHENMIN ); - break; - } - - nTaskId++; + Window* pWin = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() ); + pWin->GrabFocus(); + pWin->ToTop( TOTOP_RESTOREWHENMIN ); + break; } + + nTaskId++; } } else |