diff options
author | Oliver-Rainer Wittmann <orw@apache.org> | 2013-04-10 08:20:16 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2013-05-20 11:33:10 +0100 |
commit | d02f75a8c36705924ddd6a5921fe3012fafce812 (patch) | |
tree | 40da9f25714a77f5e9e17ef7bee81c33a1a11b4b /sd/source/ui/framework | |
parent | d8d55787b81cdc955b73c8befa4ab608f46e32aa (diff) |
Resolves: #i121420# merge sidebar feature
(cherry picked from commit 0a0a9b32aa5bf1ce2554ad37cbba3c7a105db2b5)
Conflicts:
chart2/source/controller/dialogs/dlg_View3D.cxx
chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx
chart2/source/controller/drawinglayer/ViewElementListProvider.cxx
chart2/source/controller/inc/ViewElementListProvider.hxx
chart2/source/controller/inc/dlg_View3D.hxx
chart2/source/controller/main/ShapeController.cxx
chart2/source/inc/chartview/DrawModelWrapper.hxx
chart2/source/view/main/DrawModelWrapper.cxx
cui/source/inc/border.hxx
cui/source/inc/cuitabarea.hxx
cui/source/inc/cuitabline.hxx
cui/source/inc/sdrcelldlg.hxx
cui/source/inc/treeopt.hxx
cui/source/options/optchart.cxx
cui/source/options/optchart.hxx
cui/source/options/optcolor.cxx
cui/source/options/treeopt.cxx
cui/source/tabpages/backgrnd.cxx
cui/source/tabpages/border.cxx
cui/source/tabpages/chardlg.cxx
cui/source/tabpages/numpages.cxx
cui/source/tabpages/tpcolor.cxx
cui/source/tabpages/tplneend.cxx
editeng/inc/editeng/outliner.hxx
extensions/source/propctrlr/standardcontrol.cxx
framework/source/register/registerservices.cxx
offapi/com/sun/star/ui/makefile.mk
officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
officecfg/registry/data/org/openoffice/Office/UI/makefile.mk
officecfg/registry/schema/org/openoffice/Office/UI/makefile.mk
postprocess/packregistry/makefile.mk
reportdesign/source/ui/dlg/Condition.cxx
reportdesign/source/ui/misc/UITools.cxx
sc/inc/document.hxx
sc/inc/helpids.h
sc/inc/sc.hrc
sc/prj/build.lst
sc/sdi/scalc.sdi
sc/source/core/data/documen9.cxx
sc/source/core/data/drwlayer.cxx
sc/source/ui/app/scdll.cxx
sc/source/ui/app/typemap.cxx
sc/source/ui/dbgui/scendlg.cxx
sc/source/ui/docshell/docsh2.cxx
sc/source/ui/docshell/docsh4.cxx
sc/source/ui/drawfunc/chartsh.cxx
sc/source/ui/drawfunc/drawsh.cxx
sc/source/ui/drawfunc/drawsh2.cxx
sc/source/ui/drawfunc/drawsh4.cxx
sc/source/ui/drawfunc/drformsh.cxx
sc/source/ui/drawfunc/drtxtob.cxx
sc/source/ui/drawfunc/drtxtob1.cxx
sc/source/ui/drawfunc/drtxtob2.cxx
sc/source/ui/drawfunc/graphsh.cxx
sc/source/ui/drawfunc/oleobjsh.cxx
sc/source/ui/inc/chartsh.hxx
sc/source/ui/inc/formatsh.hxx
sc/source/ui/miscdlgs/tabbgcolordlg.cxx
sc/source/ui/navipi/navipi.cxx
sc/source/ui/optdlg/opredlin.cxx
sc/source/ui/optdlg/tpview.cxx
sc/source/ui/sidebar/makefile.mk
sc/source/ui/view/auditsh.cxx
sc/source/ui/view/cellsh.cxx
sc/source/ui/view/editsh.cxx
sc/source/ui/view/formatsh.cxx
sc/source/ui/view/pivotsh.cxx
sc/source/ui/view/tabvwsh.cxx
sc/util/makefile.mk
sd/inc/sdabstdlg.hxx
sd/prj/build.lst
sd/sdi/ToolPanelViewShell.sdi
sd/sdi/makefile.mk
sd/source/ui/accessibility/makefile.mk
sd/source/ui/animations/CustomAnimationDialog.cxx
sd/source/ui/dlg/PaneChildWindows.cxx
sd/source/ui/dlg/PaneShells.cxx
sd/source/ui/dlg/copydlg.cxx
sd/source/ui/dlg/navigatr.cxx
sd/source/ui/dlg/sddlgfact.cxx
sd/source/ui/dlg/sddlgfact.hxx
sd/source/ui/docshell/docshel3.cxx
sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx
sd/source/ui/framework/factories/TaskPanelFactory.cxx
sd/source/ui/framework/factories/TaskPanelFactory.hxx
sd/source/ui/framework/factories/ViewShellWrapper.cxx
sd/source/ui/framework/factories/makefile.mk
sd/source/ui/framework/module/ImpressModule.cxx
sd/source/ui/framework/module/ToolPanelModule.cxx
sd/source/ui/framework/tools/FrameworkHelper.cxx
sd/source/ui/func/fuolbull.cxx
sd/source/ui/inc/DrawViewShell.hxx
sd/source/ui/inc/PaneChildWindows.hxx
sd/source/ui/inc/celltempl.hxx
sd/source/ui/inc/copydlg.hxx
sd/source/ui/inc/dlgpage.hxx
sd/source/ui/inc/framework/FrameworkHelper.hxx
sd/source/ui/inc/prltempl.hxx
sd/source/ui/inc/tabtempl.hxx
sd/source/ui/inc/taskpane/ILayoutableWindow.hxx
sd/source/ui/inc/taskpane/PanelId.hxx
sd/source/ui/inc/tpaction.hxx
sd/source/ui/sidebar/AllMasterPagesSelector.cxx
sd/source/ui/sidebar/AllMasterPagesSelector.hxx
sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx
sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx
sd/source/ui/sidebar/DocumentHelper.cxx
sd/source/ui/sidebar/DocumentHelper.hxx
sd/source/ui/sidebar/LayoutMenu.cxx
sd/source/ui/sidebar/LayoutMenu.hxx
sd/source/ui/sidebar/MasterPageContainer.cxx
sd/source/ui/sidebar/MasterPageContainer.hxx
sd/source/ui/sidebar/MasterPageContainerFiller.cxx
sd/source/ui/sidebar/MasterPageContainerFiller.hxx
sd/source/ui/sidebar/MasterPageContainerProviders.cxx
sd/source/ui/sidebar/MasterPageContainerProviders.hxx
sd/source/ui/sidebar/MasterPageContainerQueue.cxx
sd/source/ui/sidebar/MasterPageContainerQueue.hxx
sd/source/ui/sidebar/MasterPageDescriptor.cxx
sd/source/ui/sidebar/MasterPageDescriptor.hxx
sd/source/ui/sidebar/MasterPageObserver.cxx
sd/source/ui/sidebar/MasterPagesSelector.cxx
sd/source/ui/sidebar/MasterPagesSelector.hxx
sd/source/ui/sidebar/PreviewValueSet.cxx
sd/source/ui/sidebar/PreviewValueSet.hxx
sd/source/ui/sidebar/RecentMasterPagesSelector.cxx
sd/source/ui/sidebar/RecentlyUsedMasterPages.cxx
sd/source/ui/sidebar/SidebarShellManager.cxx
sd/source/ui/sidebar/SlideTransitionPanel.hxx
sd/source/ui/sidebar/makefile.mk
sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx
sd/source/ui/table/TableDesignPane.hxx
sd/source/ui/toolpanel/ControlContainer.cxx
sd/source/ui/toolpanel/ControlContainerDescriptor.hxx
sd/source/ui/toolpanel/MethodGuard.hxx
sd/source/ui/toolpanel/ScrollPanel.cxx
sd/source/ui/toolpanel/SlideSorterCacheDisplay.cxx
sd/source/ui/toolpanel/SubToolPanel.cxx
sd/source/ui/toolpanel/TaskPaneFocusManager.cxx
sd/source/ui/toolpanel/TaskPaneTreeNode.cxx
sd/source/ui/toolpanel/TitleBar.cxx
sd/source/ui/toolpanel/TitledControl.cxx
sd/source/ui/toolpanel/ToolPanel.cxx
sd/source/ui/toolpanel/ToolPanel.hxx
sd/source/ui/toolpanel/ToolPanelFactory.cxx
sd/source/ui/toolpanel/ToolPanelUIElement.cxx
sd/source/ui/toolpanel/ToolPanelUIElement.hxx
sd/source/ui/toolpanel/ToolPanelViewShell.cxx
sd/source/ui/toolpanel/controls/CustomAnimationPanel.cxx
sd/source/ui/toolpanel/controls/CustomAnimationPanel.hxx
sd/source/ui/toolpanel/controls/MasterPagesPanel.cxx
sd/source/ui/toolpanel/controls/MasterPagesPanel.hxx
sd/source/ui/toolpanel/controls/SlideTransitionPanel.cxx
sd/source/ui/toolpanel/controls/SlideTransitionPanel.hxx
sd/source/ui/toolpanel/controls/TableDesignPanel.cxx
sd/source/ui/toolpanel/controls/TableDesignPanel.hxx
sd/source/ui/unoidl/UnoDocumentSettings.cxx
sd/source/ui/view/ViewShellBase.cxx
sd/source/ui/view/drtxtob.cxx
sd/source/ui/view/drviews3.cxx
sd/source/ui/view/drviews7.cxx
sd/source/ui/view/drviewsa.cxx
sd/source/ui/view/drviewsf.cxx
sd/source/ui/view/outlnvsh.cxx
sd/source/ui/view/sdview.cxx
sd/source/ui/view/viewshel.cxx
sd/uiconfig/sdraw/menubar/menubar.xml
sd/util/makefile.mk
sfx2/Package_inc.mk
sfx2/inc/sfx2/sfx.hrc
sfx2/inc/sfx2/sfxsids.hrc
sfx2/source/control/bindings.cxx
sfx2/source/dialog/templdlg.cxx
sfx2/source/inc/templdgi.hxx
svx/AllLangResTarget_svx.mk
svx/Package_inc.mk
svx/inc/svx/XPropertyTable.hxx
svx/inc/svx/bmpmask.hxx
svx/inc/svx/colrctrl.hxx
svx/inc/svx/dialogs.hrc
svx/inc/svx/dlgctrl.hxx
svx/inc/svx/dlgutil.hxx
svx/inc/svx/drawitem.hxx
svx/inc/svx/fontwork.hxx
svx/inc/svx/galbrws.hxx
svx/inc/svx/sdr/table/tablecontroller.hxx
svx/inc/svx/svdmodel.hxx
svx/inc/svx/svdstr.hrc
svx/inc/svx/svxids.hrc
svx/inc/svx/svxitems.hrc
svx/inc/svx/xattr.hxx
svx/inc/svx/xflgrit.hxx
svx/inc/svx/xflhtit.hxx
svx/inc/svx/xit.hxx
svx/inc/svx/xlineit.hxx
svx/inc/svx/xlndsit.hxx
svx/inc/svx/xlnedit.hxx
svx/inc/svx/xlnstit.hxx
svx/inc/svx/xtable.hxx
svx/sdi/svx.sdi
svx/source/dialog/_bmpmask.cxx
svx/source/dialog/dialcontrol.cxx
svx/source/dialog/dlgctrl.cxx
svx/source/dialog/dlgutil.cxx
svx/source/dialog/fontwork.cxx
svx/source/gallery2/galbrws.cxx
svx/source/gallery2/galbrws1.cxx
svx/source/gallery2/gallery1.cxx
svx/source/items/drawitem.cxx
svx/source/items/svxitems.src
svx/source/sdr/attribute/sdrformtextattribute.cxx
svx/source/sidebar/ColorPanel.hxx
svx/source/sidebar/EmptyPanel.hrc
svx/source/sidebar/EmptyPanel.hxx
svx/source/sidebar/gallery/GalleryPanel.hxx
svx/source/svdraw/svdedtv1.cxx
svx/source/svdraw/svdmodel.cxx
svx/source/svdraw/svdogrp.cxx
svx/source/svdraw/svdstr.src
svx/source/tbxctrls/tbcontrl.cxx
svx/source/unodraw/XPropertyTable.cxx
svx/source/unodraw/unoctabl.cxx
svx/source/xoutdev/XPropertyEntry.cxx
svx/source/xoutdev/xattr.cxx
svx/source/xoutdev/xattr2.cxx
svx/source/xoutdev/xtabbtmp.cxx
svx/source/xoutdev/xtabcolr.cxx
svx/source/xoutdev/xtabdash.cxx
svx/source/xoutdev/xtabgrdt.cxx
svx/source/xoutdev/xtabhtch.cxx
svx/source/xoutdev/xtable.cxx
svx/source/xoutdev/xtablend.cxx
svx/util/svx.component
sw/inc/cmdid.h
sw/inc/docsh.hxx
sw/inc/editsh.hxx
sw/inc/helpid.h
sw/inc/rcid.hrc
sw/inc/swabstdlg.hxx
sw/inc/swcommands.h
sw/sdi/swriter.sdi
sw/source/core/doc/docdesc.cxx
sw/source/core/draw/drawdoc.cxx
sw/source/ui/app/docsh2.cxx
sw/source/ui/app/docshdrw.cxx
sw/source/ui/app/docshini.cxx
sw/source/ui/app/docst.cxx
sw/source/ui/config/optpage.cxx
sw/source/ui/dialog/swdlgfact.cxx
sw/source/ui/dialog/swdlgfact.hxx
sw/source/ui/fmtui/tmpdlg.cxx
sw/source/ui/inc/tmpdlg.hxx
sw/source/ui/misc/pggrid.cxx
sw/source/ui/shells/annotsh.cxx
sw/source/ui/shells/basesh.cxx
sw/source/ui/shells/beziersh.cxx
sw/source/ui/shells/drawdlg.cxx
sw/source/ui/shells/drawsh.cxx
sw/source/ui/shells/drformsh.cxx
sw/source/ui/shells/drwbassh.cxx
sw/source/ui/shells/drwtxtex.cxx
sw/source/ui/shells/drwtxtsh.cxx
sw/source/ui/shells/frmsh.cxx
sw/source/ui/shells/grfsh.cxx
sw/source/ui/shells/olesh.cxx
sw/source/ui/shells/tabsh.cxx
sw/source/ui/shells/textsh.cxx
sw/source/ui/shells/textsh1.cxx
sw/source/ui/shells/txtnum.cxx
sw/source/ui/uiview/viewtab.cxx
sw/source/ui/uno/unofreg.cxx
sw/source/ui/utlui/navipi.cxx
sw/util/sw.component
vcl/inc/vcl/split.hxx
vcl/inc/vcl/window.hxx
vcl/inc/window.h
vcl/source/window/split.cxx
vcl/source/window/window.cxx
vcl/source/window/window4.cxx
Change-Id: Idebaff59f9d60e4e93290cefefdda4c5a1e9215e
Resolves: #i122194# Adapted license text in propertypanel.hrc
then renamed it to ResourceDefinitions.hrc
(cherry picked from commit e952d1401c1adc41934118ba7f542611ef9da11b)
Conflicts:
sfx2/Package_inc.mk
sfx2/source/sidebar/SidebarChildWindow.cxx
svx/source/sidebar/graphic/GraphicPropertyPanel.cxx
svx/source/sidebar/line/LinePropertyPanel.cxx
svx/source/sidebar/possize/PosSizePropertyPanel.cxx
sw/source/ui/sidebar/PagePropertyPanel.src
sw/source/ui/sidebar/WrapPropertyPanel.src
Change-Id: Ie009056a78ab108556717a501399c83b477b3548
Resolves: #i122194# finally I got the correct file name
Change-Id: If7a075af8c9a829f6f0a69f883c5c6d4ac97ba2a
More merge changes for optional sidebar:
revert toolpanel removal, restore and re-enable task pane
remove apparently un-used SidebarFactory module
add extra visibility annotation to ItemReceiverUpdate
Diffstat (limited to 'sd/source/ui/framework')
12 files changed, 336 insertions, 68 deletions
diff --git a/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx b/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx index 4b9f3e8b7adb..16a96f2ecca0 100644 --- a/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx +++ b/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx @@ -150,9 +150,9 @@ void ConfigurationControllerResourceManager::ActivateResource ( // of registered factories. mpResourceFactoryContainer->RemoveFactoryForReference(xFactory); } - catch(Exception&) + catch (Exception& e) { - DBG_UNHANDLED_EXCEPTION(); + (void)e; } if (xResource.is()) @@ -187,9 +187,10 @@ void ConfigurationControllerResourceManager::ActivateResource ( /* In this method we do following steps. 1. Remove the resource from the URL->Object map of the configuration controller. - 2. Notify listeners. + 2. Notify listeners that deactivation has started. 3. Remove the resource id from the current configuration. 4. Release the resource. + 5. Notify listeners about that deactivation is completed. */ void ConfigurationControllerResourceManager::DeactivateResource ( const Reference<XResourceId>& rxResourceId, @@ -244,6 +245,12 @@ void ConfigurationControllerResourceManager::DeactivateResource ( DBG_UNHANDLED_EXCEPTION(); } + // 5. Notifiy listeners that the resource is being deactivated. + mpBroadcaster->NotifyListeners( + FrameworkHelper::msResourceDeactivationEndEvent, + rxResourceId, + NULL); + #if OSL_DEBUG_LEVEL >= 1 if (bSuccess) SAL_INFO("sd.fwk", OSL_THIS_FUNC << ": successfully deactivated " << OUStringToOString( diff --git a/sd/source/ui/framework/configuration/ResourceFactoryManager.cxx b/sd/source/ui/framework/configuration/ResourceFactoryManager.cxx index f059efdb8c81..90b1d4359508 100644 --- a/sd/source/ui/framework/configuration/ResourceFactoryManager.cxx +++ b/sd/source/ui/framework/configuration/ResourceFactoryManager.cxx @@ -32,6 +32,9 @@ using namespace ::com::sun::star; using namespace ::com::sun::star::uno; using namespace ::com::sun::star::drawing::framework; +#undef VERBOSE +//#define VERBOSE 1 + namespace sd { namespace framework { ResourceFactoryManager::ResourceFactoryManager (const Reference<XControllerManager>& rxManager) @@ -75,10 +78,22 @@ void ResourceFactoryManager::AddFactory ( { // The URL is a URL pattern not an single URL. maFactoryPatternList.push_back(FactoryPatternList::value_type(rsURL, rxFactory)); + +#if defined VERBOSE && VERBOSE>=1 + OSL_TRACE("ResourceFactoryManager::AddFactory pattern %s %x\n", + OUStringToOString(rsURL, RTL_TEXTENCODING_UTF8).getStr(), + rxFactory.get()); +#endif } else { maFactoryMap[rsURL] = rxFactory; + +#if defined VERBOSE && VERBOSE>=1 + OSL_TRACE("ResourceFactoryManager::AddFactory fixed %s %x\n", + OUStringToOString(rsURL, RTL_TEXTENCODING_UTF8).getStr(), + rxFactory.get()); +#endif } } diff --git a/sd/source/ui/framework/factories/BasicPaneFactory.cxx b/sd/source/ui/framework/factories/BasicPaneFactory.cxx index 4d2651dff923..5c5a043d41c7 100644 --- a/sd/source/ui/framework/factories/BasicPaneFactory.cxx +++ b/sd/source/ui/framework/factories/BasicPaneFactory.cxx @@ -45,8 +45,7 @@ namespace { CenterPaneId, FullScreenPaneId, LeftImpressPaneId, - LeftDrawPaneId, - RightPaneId + LeftDrawPaneId }; static const sal_Int32 gnConfigurationUpdateStartEvent(0); @@ -194,7 +193,7 @@ void SAL_CALL BasicPaneFactory::initialize (const Sequence<Any>& aArguments) mxConfigurationControllerWeak = xCC; // Add pane factories for the two left panes (one for Impress and one for - // Draw), the center pane, and the right pane. + // Draw) and the center pane. if (xController.is() && xCC.is()) { PaneDescriptor aDescriptor; @@ -220,11 +219,6 @@ void SAL_CALL BasicPaneFactory::initialize (const Sequence<Any>& aArguments) aDescriptor.mePaneId = LeftDrawPaneId; mpPaneContainer->push_back(aDescriptor); xCC->addResourceFactory(aDescriptor.msPaneURL, this); - - aDescriptor.msPaneURL = FrameworkHelper::msRightPaneURL; - aDescriptor.mePaneId = RightPaneId; - mpPaneContainer->push_back(aDescriptor); - xCC->addResourceFactory(aDescriptor.msPaneURL, this); } // Register as configuration change listener. @@ -293,7 +287,6 @@ Reference<XResource> SAL_CALL BasicPaneFactory::createResource ( case LeftImpressPaneId: case LeftDrawPaneId: - case RightPaneId: xPane = CreateChildWindowPane( rxPaneId, *iDescriptor); @@ -479,11 +472,6 @@ Reference<XResource> BasicPaneFactory::CreateChildWindowPane ( nChildWindowId = ::sd::LeftPaneDrawChildWindow::GetChildWindowId(); break; - case RightPaneId: - pShell.reset(new ToolPanelPaneShell()); - nChildWindowId = ::sd::ToolPanelChildWindow::GetChildWindowId(); - break; - default: break; } diff --git a/sd/source/ui/framework/factories/BasicPaneFactory.hxx b/sd/source/ui/framework/factories/BasicPaneFactory.hxx index 472609a17677..de9c81b9d564 100644 --- a/sd/source/ui/framework/factories/BasicPaneFactory.hxx +++ b/sd/source/ui/framework/factories/BasicPaneFactory.hxx @@ -59,7 +59,6 @@ namespace sd { namespace framework { private:resource/pane/FullScreenPane private:resource/pane/LeftImpressPane private:resource/pane/LeftDrawPane - private:resource/pane/RightPane There are two left panes because this is (seems to be) the only way to show different titles for the left pane in Draw and Impress. */ diff --git a/sd/source/ui/framework/factories/BasicViewFactory.cxx b/sd/source/ui/framework/factories/BasicViewFactory.cxx index 927a26159cd4..78d79888a9bc 100644 --- a/sd/source/ui/framework/factories/BasicViewFactory.cxx +++ b/sd/source/ui/framework/factories/BasicViewFactory.cxx @@ -33,7 +33,6 @@ #include "DrawViewShell.hxx" #include "GraphicViewShell.hxx" #include "OutlineViewShell.hxx" -#include "taskpane/ToolPanelViewShell.hxx" #include "PresentationViewShell.hxx" #include "SlideSorterViewShell.hxx" #include "FrameView.hxx" @@ -319,7 +318,6 @@ void SAL_CALL BasicViewFactory::initialize (const Sequence<Any>& aArguments) mxConfigurationController->addResourceFactory(FrameworkHelper::msNotesViewURL, this); mxConfigurationController->addResourceFactory(FrameworkHelper::msHandoutViewURL, this); mxConfigurationController->addResourceFactory(FrameworkHelper::msPresentationViewURL, this); - mxConfigurationController->addResourceFactory(FrameworkHelper::msTaskPaneURL, this); mxConfigurationController->addResourceFactory(FrameworkHelper::msSlideSorterURL, this); } catch (RuntimeException&) @@ -449,15 +447,6 @@ void SAL_CALL BasicViewFactory::initialize (const Sequence<Any>& aArguments) &rWindow, pFrameView)); } - else if (rsViewURL.equals(FrameworkHelper::msTaskPaneURL)) - { - pViewShell.reset( - new ::sd::toolpanel::ToolPanelViewShell( - &rFrame, - *mpBase, - &rWindow, - pFrameView)); - } else if (rsViewURL.equals(FrameworkHelper::msSlideSorterURL)) { pViewShell = ::sd::slidesorter::SlideSorterViewShell::Create ( @@ -533,8 +522,6 @@ bool BasicViewFactory::IsCacheable (const ::boost::shared_ptr<ViewDescriptor>& r FrameworkHelper::msSlideSorterURL, FrameworkHelper::msLeftDrawPaneURL)); maCacheableResources.push_back(pHelper->CreateResourceId( FrameworkHelper::msSlideSorterURL, FrameworkHelper::msLeftImpressPaneURL)); - maCacheableResources.push_back(pHelper->CreateResourceId( - FrameworkHelper::msTaskPaneURL, FrameworkHelper::msRightPaneURL)); } ::std::vector<Reference<XResourceId> >::const_iterator iId; diff --git a/sd/source/ui/framework/factories/Pane.cxx b/sd/source/ui/framework/factories/Pane.cxx index 4eeb5c5f3e0c..30bcaa0f9c9f 100644 --- a/sd/source/ui/framework/factories/Pane.cxx +++ b/sd/source/ui/framework/factories/Pane.cxx @@ -75,6 +75,16 @@ void Pane::disposing (void) +void Pane::SetWindow (::Window* pWindow) +{ + OSL_TRACE("setting Pane::mpWindow to %x", pWindow); + mpWindow = pWindow; + mxWindow = VCLUnoHelper::GetInterface(mpWindow); +} + + + + //----- XPane ----------------------------------------------------------------- Reference<awt::XWindow> SAL_CALL Pane::getWindow (void) diff --git a/sd/source/ui/framework/factories/TaskPanelResource.cxx b/sd/source/ui/framework/factories/TaskPanelResource.cxx new file mode 100644 index 000000000000..f3201adea23d --- /dev/null +++ b/sd/source/ui/framework/factories/TaskPanelResource.cxx @@ -0,0 +1,129 @@ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#include "precompiled_sd.hxx" + +#include "framework/TaskPanelResource.hxx" + +#include <vcl/window.hxx> +#include <toolkit/helper/vclunohelper.hxx> + + +using namespace css; +using namespace cssu; +using namespace cssdf; + + +namespace sd { namespace framework { + +namespace { + ::Window* GetWindowForResource ( + ViewShellBase& rViewShellBase, + const cssu::Reference<cssdf::XResourceId>& rxResourceId) + { + ::Window* pWindow = NULL; + if (rxResourceId.is() && rxResourceId->getAnchor().is()) + { + ::boost::shared_ptr<FrameworkHelper> pFrameworkHelper (FrameworkHelper::Instance(rViewShellBase)); + Reference<awt::XWindow> xWindow ( + pFrameworkHelper->GetPaneWindow(rxResourceId->getAnchor()->getAnchor())); + pWindow = VCLUnoHelper::GetWindow(xWindow); + } + return pWindow; + } +} + + + + +TaskPanelResource::TaskPanelResource ( + sidebar::SidebarViewShell& rSidebarViewShell, + sidebar::PanelId ePanelId, + const Reference<XResourceId>& rxResourceId) + : TaskPanelResourceInterfaceBase(m_aMutex), + mxResourceId(rxResourceId), + mpControl(rSidebarViewShell.CreatePanel( + GetWindowForResource(rSidebarViewShell.GetViewShellBase(), rxResourceId), + ePanelId)) +{ + if (mpControl.get() != NULL) + { + mpControl->Show(); + mpControl->GetParent()->Show(); + mpControl->AddEventListener(LINK(this,TaskPanelResource,WindowEventHandler)); + } +} + + + + +TaskPanelResource::~TaskPanelResource (void) +{ + mpControl.reset(); +} + + + + +void SAL_CALL TaskPanelResource::disposing () +{ + mpControl.reset(); +} + + + + +Reference<XResourceId> SAL_CALL TaskPanelResource::getResourceId () + throw (css::uno::RuntimeException) +{ + return mxResourceId; +} + + + + +sal_Bool SAL_CALL TaskPanelResource::isAnchorOnly (void) + throw (RuntimeException) +{ + return false; +} + + + + +::Window* TaskPanelResource::GetControl (void) const +{ + return mpControl.get(); +} + + + + +IMPL_LINK(TaskPanelResource,WindowEventHandler,VclWindowEvent*,pEvent) +{ + if (pEvent!=NULL && pEvent->GetId()==SFX_HINT_DYING) + { + // Somebody else deleted the window. Release our reference so + // that we do not delete it again. + mpControl.release(); + return sal_True; + } + else + return sal_False; +} + +} } // end of namespace sd::framework diff --git a/sd/source/ui/framework/factories/ViewShellWrapper.cxx b/sd/source/ui/framework/factories/ViewShellWrapper.cxx index e017cbf21566..1ff46da11d48 100644 --- a/sd/source/ui/framework/factories/ViewShellWrapper.cxx +++ b/sd/source/ui/framework/factories/ViewShellWrapper.cxx @@ -20,7 +20,6 @@ #include "framework/ViewShellWrapper.hxx" #include "framework/Pane.hxx" -#include "taskpane/ToolPanelViewShell.hxx" #include "sdpage.hxx" #include "ViewShell.hxx" #include "Window.hxx" @@ -55,7 +54,6 @@ using ::com::sun::star::awt::XWindow; using ::com::sun::star::rendering::XCanvas; using ::com::sun::star::lang::DisposedException; -using ::sd::toolpanel::ToolPanelViewShell; namespace sd { namespace framework { diff --git a/sd/source/ui/framework/module/ImpressModule.cxx b/sd/source/ui/framework/module/ImpressModule.cxx index 50e9cfb67f45..240a94a23cf3 100644 --- a/sd/source/ui/framework/module/ImpressModule.cxx +++ b/sd/source/ui/framework/module/ImpressModule.cxx @@ -47,7 +47,7 @@ void ImpressModule::Initialize (Reference<frame::XController>& rxController) FrameworkHelper::msLeftImpressPaneURL); new ToolPanelModule( rxController, - FrameworkHelper::msRightPaneURL); + FrameworkHelper::msSidebarViewURL); new ToolBarModule(rxController); new ShellStackGuard(rxController); } diff --git a/sd/source/ui/framework/module/ModuleController.cxx b/sd/source/ui/framework/module/ModuleController.cxx index 25abb78d2df9..1406d6e14d5a 100644 --- a/sd/source/ui/framework/module/ModuleController.cxx +++ b/sd/source/ui/framework/module/ModuleController.cxx @@ -282,10 +282,19 @@ void SAL_CALL ModuleController::requestResource (const OUString& rsResourceURL) // Create the factory service. Sequence<Any> aArguments(1); aArguments[0] <<= mxController; - xFactory = xContext->getServiceManager()->createInstanceWithArgumentsAndContext( - iFactory->second, - aArguments, - xContext); + OSL_TRACE("creating resource %s", + OUStringToOString(iFactory->second, RTL_TEXTENCODING_ASCII_US).getStr()); + try + { + xFactory = xContext->getServiceManager()->createInstanceWithArgumentsAndContext( + iFactory->second, + aArguments, + xContext); + } + catch (const Exception&) + { + OSL_TRACE("caught exception while creating factory."); + } // Remember that this factory has been instanced. (*mpLoadedFactories)[iFactory->second] = xFactory; diff --git a/sd/source/ui/framework/module/ToolPanelModule.cxx b/sd/source/ui/framework/module/ToolPanelModule.cxx index aa2c9e8a9e24..c607fbd3820a 100644 --- a/sd/source/ui/framework/module/ToolPanelModule.cxx +++ b/sd/source/ui/framework/module/ToolPanelModule.cxx @@ -42,9 +42,9 @@ namespace sd { namespace framework { ToolPanelModule::ToolPanelModule ( const Reference<frame::XController>& rxController, - const OUString& rsRightPaneURL) + const OUString& rsSidebarPaneURL) : ResourceManager(rxController, - FrameworkHelper::CreateResourceId(FrameworkHelper::msTaskPaneURL, rsRightPaneURL)), + FrameworkHelper::CreateResourceId(FrameworkHelper::msSidebarViewURL, rsSidebarPaneURL)), mxControllerManager(rxController,UNO_QUERY) { if (mxConfigurationController.is()) diff --git a/sd/source/ui/framework/tools/FrameworkHelper.cxx b/sd/source/ui/framework/tools/FrameworkHelper.cxx index fb7fa1a2a328..f3ed52523c39 100644 --- a/sd/source/ui/framework/tools/FrameworkHelper.cxx +++ b/sd/source/ui/framework/tools/FrameworkHelper.cxx @@ -17,7 +17,6 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ - #include <osl/time.h> #include "framework/FrameworkHelper.hxx" @@ -32,6 +31,7 @@ #include "DrawController.hxx" #include "app.hrc" #include <com/sun/star/drawing/framework/XControllerManager.hpp> +#include <com/sun/star/drawing/framework/XPane.hpp> #include <cppuhelper/compbase1.hxx> #include <svl/lstner.hxx> @@ -97,8 +97,10 @@ public: virtual ~CallbackCaller (void); virtual void SAL_CALL disposing (void); + // XEventListener virtual void SAL_CALL disposing (const lang::EventObject& rEvent) throw (RuntimeException); + // XConfigurationChangeListener virtual void SAL_CALL notifyConfigurationChange (const ConfigurationChangeEvent& rEvent) throw (RuntimeException); @@ -169,7 +171,7 @@ const OUString FrameworkHelper::msCenterPaneURL( msPaneURLPrefix + "CenterPane") const OUString FrameworkHelper::msFullScreenPaneURL( msPaneURLPrefix + "FullScreenPane"); const OUString FrameworkHelper::msLeftImpressPaneURL( msPaneURLPrefix + "LeftImpressPane"); const OUString FrameworkHelper::msLeftDrawPaneURL( msPaneURLPrefix + "LeftDrawPane"); -const OUString FrameworkHelper::msRightPaneURL( msPaneURLPrefix + "RightPane"); +const OUString FrameworkHelper::msSidebarPaneURL( msPaneURLPrefix + "SidebarPane"); // View URLs. @@ -182,7 +184,7 @@ const OUString FrameworkHelper::msNotesViewURL( msViewURLPrefix + "NotesView"); const OUString FrameworkHelper::msHandoutViewURL( msViewURLPrefix + "HandoutView"); const OUString FrameworkHelper::msSlideSorterURL( msViewURLPrefix + "SlideSorter"); const OUString FrameworkHelper::msPresentationViewURL( msViewURLPrefix + "PresentationView"); -const OUString FrameworkHelper::msTaskPaneURL( msViewURLPrefix + "TaskPane"); +const OUString FrameworkHelper::msSidebarViewURL( msViewURLPrefix + "SidebarView"); // Tool bar URLs. @@ -192,21 +194,25 @@ const OUString FrameworkHelper::msViewTabBarURL( msToolBarURLPrefix + "ViewTabBa // Task panel URLs. -const OUString FrameworkHelper::msTaskPanelURLPrefix("private:resource/toolpanel/DrawingFramework/"); +const OUString FrameworkHelper::msTaskPanelURLPrefix( "private:resource/toolpanel/" ); const OUString FrameworkHelper::msMasterPagesTaskPanelURL( msTaskPanelURLPrefix + "MasterPages"); -const OUString FrameworkHelper::msLayoutTaskPanelURL( msTaskPanelURLPrefix + "Layouts"); -const OUString FrameworkHelper::msTableDesignPanelURL( msTaskPanelURLPrefix + "TableDesign"); -const OUString FrameworkHelper::msCustomAnimationTaskPanelURL( msTaskPanelURLPrefix + "CustomAnimations"); -const OUString FrameworkHelper::msSlideTransitionTaskPanelURL( msTaskPanelURLPrefix + "SlideTransitions"); +const OUString FrameworkHelper::msAllMasterPagesTaskPanelURL( msTaskPanelURLPrefix + "AllMasterPages" ); +const OUString FrameworkHelper::msRecentMasterPagesTaskPanelURL( msTaskPanelURLPrefix + "RecentMasterPages" ); +const OUString FrameworkHelper::msUsedMasterPagesTaskPanelURL( msTaskPanelURLPrefix + "UsedMasterPages" ); +const OUString FrameworkHelper::msLayoutTaskPanelURL( msTaskPanelURLPrefix + "Layouts" ); +const OUString FrameworkHelper::msTableDesignPanelURL( msTaskPanelURLPrefix + "TableDesign" ); +const OUString FrameworkHelper::msCustomAnimationTaskPanelURL( msTaskPanelURLPrefix + "CustomAnimations" ); +const OUString FrameworkHelper::msSlideTransitionTaskPanelURL( msTaskPanelURLPrefix + "SlideTransitions" ); // Event URLs. -const OUString FrameworkHelper::msResourceActivationRequestEvent("ResourceActivationRequested"); -const OUString FrameworkHelper::msResourceDeactivationRequestEvent("ResourceDeactivationRequest"); -const OUString FrameworkHelper::msResourceActivationEvent("ResourceActivation"); -const OUString FrameworkHelper::msResourceDeactivationEvent("ResourceDeactivation"); -const OUString FrameworkHelper::msConfigurationUpdateStartEvent("ConfigurationUpdateStart"); -const OUString FrameworkHelper::msConfigurationUpdateEndEvent("ConfigurationUpdateEnd"); +const OUString FrameworkHelper::msResourceActivationRequestEvent( "ResourceActivationRequested" ); +const OUString FrameworkHelper::msResourceDeactivationRequestEvent( "ResourceDeactivationRequest" ); +const OUString FrameworkHelper::msResourceActivationEvent( "ResourceActivation" ); +const OUString FrameworkHelper::msResourceDeactivationEvent( "ResourceDeactivation" ); +const OUString FrameworkHelper::msResourceDeactivationEndEvent( "ResourceDeactivationEnd" ); +const OUString FrameworkHelper::msConfigurationUpdateStartEvent( "ConfigurationUpdateStart" ); +const OUString FrameworkHelper::msConfigurationUpdateEndEvent( "ConfigurationUpdateEnd" ); // Service names of controllers. @@ -301,6 +307,20 @@ private: +//----- FrameworkHelper::Deleter ---------------------------------------------- + +class FrameworkHelper::Deleter +{ +public: + void operator()(FrameworkHelper* pObject) + { + delete pObject; + } +}; + + + + //----- FrameworkHelper ------------------------------------------------------- ::boost::scoped_ptr<FrameworkHelper::ViewURLMap> FrameworkHelper::mpViewURLMap(new ViewURLMap()); @@ -345,7 +365,9 @@ FrameworkHelper::InstanceMap FrameworkHelper::maInstanceMap; ::osl::MutexGuard aGuard (aMutexFunctor()); if (iHelper == maInstanceMap.end()) { - pHelper = ::boost::shared_ptr<FrameworkHelper>(new FrameworkHelper(rBase)); + pHelper = ::boost::shared_ptr<FrameworkHelper>( + new FrameworkHelper(rBase), + FrameworkHelper::Deleter()); pHelper->Initialize(); OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER(); SdGlobalResourceContainer::Instance().AddResource(pHelper); @@ -489,6 +511,61 @@ Reference<XView> FrameworkHelper::GetView (const Reference<XResourceId>& rxPaneO +Reference<awt::XWindow> FrameworkHelper::GetPaneWindow (const Reference<XResourceId>& rxPaneId) +{ + Reference<awt::XWindow> xWindow; + + if (rxPaneId.is() && mxConfigurationController.is()) + { + try + { + if (rxPaneId->getResourceURL().match(msPaneURLPrefix)) + { + Reference<XPane> xPane (mxConfigurationController->getResource(rxPaneId), UNO_QUERY); + if (xPane.is()) + xWindow = xPane->getWindow(); + } + } + catch (lang::DisposedException&) + { + Dispose(); + } + catch (RuntimeException&) + { + } + } + + return xWindow; +} + + + + +Reference<XResource> FrameworkHelper::GetResource (const Reference<XResourceId>& rxResourceId) +{ + Reference<XResource> xResource; + + if (rxResourceId.is() && mxConfigurationController.is()) + { + try + { + return mxConfigurationController->getResource(rxResourceId); + } + catch (lang::DisposedException&) + { + Dispose(); + } + catch (RuntimeException&) + { + } + } + + return NULL; +} + + + + Reference<XResourceId> FrameworkHelper::RequestView ( const OUString& rsResourceURL, const OUString& rsAnchorURL) @@ -524,7 +601,7 @@ Reference<XResourceId> FrameworkHelper::RequestView ( -void FrameworkHelper::RequestTaskPanel ( +Reference<XResourceId> FrameworkHelper::RequestSidebarPanel ( const OUString& rsTaskPanelURL, const bool bEnsureTaskPaneIsVisible) { @@ -537,26 +614,29 @@ void FrameworkHelper::RequestTaskPanel ( { Reference<XConfiguration> xConfiguration ( mxConfigurationController->getCurrentConfiguration()); - if (xConfiguration.is()) - if ( ! xConfiguration->hasResource( - CreateResourceId(msTaskPaneURL, msRightPaneURL))) - { - // Task pane does is not active. Do not force it. - return; - } + if (xConfiguration.is()) + if ( ! xConfiguration->hasResource( + CreateResourceId(msSidebarViewURL, msSidebarPaneURL))) + { + // Task pane is not active. Do not force it. + return NULL; + } } - // Create the resource id from URLs for the pane, the task pane - // view, and the task panel. + // Create the resource id from URLs for the sidebar pane + // and view and the requested panel. mxConfigurationController->requestResourceActivation( - CreateResourceId(msRightPaneURL), + CreateResourceId(msSidebarPaneURL), ResourceActivationMode_ADD); mxConfigurationController->requestResourceActivation( - CreateResourceId(msTaskPaneURL, msRightPaneURL), + CreateResourceId(msSidebarViewURL, msSidebarPaneURL), ResourceActivationMode_REPLACE); + Reference<XResourceId> xPanelId (CreateResourceId(rsTaskPanelURL, msSidebarViewURL, msSidebarPaneURL)); mxConfigurationController->requestResourceActivation( - CreateResourceId(rsTaskPanelURL, msTaskPaneURL, msRightPaneURL), + xPanelId, ResourceActivationMode_REPLACE); + + return xPanelId; } } catch (lang::DisposedException&) @@ -565,6 +645,26 @@ void FrameworkHelper::RequestTaskPanel ( } catch (RuntimeException&) {} + + return NULL; +} + + + + +void FrameworkHelper::RequestResourceDeactivation (const cssu::Reference<cssdf::XResourceId>& rxResourceId) +{ + try + { + if (mxConfigurationController.is() && rxResourceId.is()) + mxConfigurationController->requestResourceDeactivation(rxResourceId); + } + catch (lang::DisposedException&) + { + Dispose(); + } + catch (RuntimeException&) + {} } @@ -582,6 +682,7 @@ ViewShell::ShellType FrameworkHelper::GetViewId (const OUString& rsViewURL) (*mpViewURLMap)[msSlideSorterURL] = ViewShell::ST_SLIDE_SORTER; (*mpViewURLMap)[msPresentationViewURL] = ViewShell::ST_PRESENTATION; (*mpViewURLMap)[msTaskPaneURL] = ViewShell::ST_TASK_PANE; + (*mpViewURLMap)[msSidebarViewURL] = ViewShell::ST_SIDEBAR; } ViewURLMap::const_iterator iView (mpViewURLMap->find(rsViewURL)); if (iView != mpViewURLMap->end()) @@ -605,6 +706,7 @@ OUString FrameworkHelper::GetViewURL (ViewShell::ShellType eType) case ViewShell::ST_SLIDE_SORTER : return msSlideSorterURL; case ViewShell::ST_PRESENTATION : return msPresentationViewURL; case ViewShell::ST_TASK_PANE : return msTaskPaneURL; + case ViewShell::ST_SIDEBAR : return msSidebarViewURL; default: return OUString(); } @@ -753,6 +855,30 @@ void FrameworkHelper::RunOnResourceActivation( +void FrameworkHelper::RunOnResourceDeactivation( + const css::uno::Reference<css::drawing::framework::XResourceId>& rxResourceId, + const Callback& rCallback, + const bool bRunOnDeactivationEnd) +{ + if (mxConfigurationController.is() + && ! mxConfigurationController->getResource(rxResourceId).is()) + { + rCallback(false); + } + else + { + RunOnEvent( + bRunOnDeactivationEnd + ? msResourceDeactivationEndEvent + : msResourceDeactivationEvent, + FrameworkHelperResourceIdFilter(rxResourceId), + rCallback); + } +} + + + + /** A callback that sets a flag to a specified value when the callback is called. */ |