Files
loongoffice/sd/source/ui/framework/configuration/ResourceFactoryManager.cxx
Oliver-Rainer Wittmann d02f75a8c3 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
2013-05-20 11:33:10 +01:00

235 lines
6.9 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* 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 "ResourceFactoryManager.hxx"
#include <tools/wldcrd.hxx>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/util/URLTransformer.hpp>
#include <comphelper/processfactory.hxx>
#include <boost/bind.hpp>
#include <algorithm>
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)
: maMutex(),
maFactoryMap(),
maFactoryPatternList(),
mxControllerManager(rxManager),
mxURLTransformer()
{
// Create the URL transformer.
Reference<uno::XComponentContext> xContext(::comphelper::getProcessComponentContext());
mxURLTransformer = util::URLTransformer::create(xContext);
}
ResourceFactoryManager::~ResourceFactoryManager (void)
{
Reference<lang::XComponent> xComponent (mxURLTransformer, UNO_QUERY);
if (xComponent.is())
xComponent->dispose();
}
void ResourceFactoryManager::AddFactory (
const OUString& rsURL,
const Reference<XResourceFactory>& rxFactory)
throw (RuntimeException)
{
if ( ! rxFactory.is())
throw lang::IllegalArgumentException();
if (rsURL.isEmpty())
throw lang::IllegalArgumentException();
::osl::MutexGuard aGuard (maMutex);
if (rsURL.indexOf('*') >= 0 || rsURL.indexOf('?') >= 0)
{
// 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
}
}
void ResourceFactoryManager::RemoveFactoryForURL (
const OUString& rsURL)
throw (RuntimeException)
{
if (rsURL.isEmpty())
throw lang::IllegalArgumentException();
::osl::MutexGuard aGuard (maMutex);
FactoryMap::iterator iFactory (maFactoryMap.find(rsURL));
if (iFactory != maFactoryMap.end())
{
maFactoryMap.erase(iFactory);
}
else
{
// The URL may be a pattern. Look that up.
FactoryPatternList::iterator iPattern;
for (iPattern=maFactoryPatternList.begin();
iPattern!=maFactoryPatternList.end();
++iPattern)
{
if (iPattern->first == rsURL)
{
// Found the pattern. Remove it.
maFactoryPatternList.erase(iPattern);
break;
}
}
}
}
void ResourceFactoryManager::RemoveFactoryForReference(
const Reference<XResourceFactory>& rxFactory)
throw (RuntimeException)
{
::osl::MutexGuard aGuard (maMutex);
// Collect a list with all keys that map to the given factory.
::std::vector<OUString> aKeys;
FactoryMap::const_iterator iFactory;
for (iFactory=maFactoryMap.begin(); iFactory!=maFactoryMap.end(); ++iFactory)
if (iFactory->second == rxFactory)
aKeys.push_back(iFactory->first);
// Remove the entries whose keys we just have collected.
::std::vector<OUString>::const_iterator iKey;
for (iKey=aKeys.begin(); iKey!=aKeys.end(); ++iKey)
maFactoryMap.erase(maFactoryMap.find(*iKey));
// Remove the pattern entries whose factories are identical to the given
// factory.
FactoryPatternList::iterator iNewEnd (
std::remove_if(
maFactoryPatternList.begin(),
maFactoryPatternList.end(),
::boost::bind(
std::equal_to<Reference<XResourceFactory> >(),
::boost::bind(&FactoryPatternList::value_type::second, _1),
rxFactory)));
if (iNewEnd != maFactoryPatternList.end())
maFactoryPatternList.erase(iNewEnd, maFactoryPatternList.end());
}
Reference<XResourceFactory> ResourceFactoryManager::GetFactory (
const OUString& rsCompleteURL)
throw (RuntimeException)
{
OUString sURLBase (rsCompleteURL);
if (mxURLTransformer.is())
{
util::URL aURL;
aURL.Complete = rsCompleteURL;
if (mxURLTransformer->parseStrict(aURL))
sURLBase = aURL.Main;
}
Reference<XResourceFactory> xFactory = FindFactory(sURLBase);
if ( ! xFactory.is() && mxControllerManager.is())
{
Reference<XModuleController> xModuleController(mxControllerManager->getModuleController());
if (xModuleController.is())
{
// Ask the module controller to provide a factory of the
// requested view type. Note that this can (and should) cause
// intermediate calls to AddFactory().
xModuleController->requestResource(sURLBase);
xFactory = FindFactory(sURLBase);
}
}
return xFactory;
}
Reference<XResourceFactory> ResourceFactoryManager::FindFactory (const OUString& rsURLBase)
throw (RuntimeException)
{
::osl::MutexGuard aGuard (maMutex);
FactoryMap::const_iterator iFactory (maFactoryMap.find(rsURLBase));
if (iFactory != maFactoryMap.end())
return iFactory->second;
else
{
// Check the URL patterns.
FactoryPatternList::const_iterator iPattern;
for (iPattern=maFactoryPatternList.begin();
iPattern!=maFactoryPatternList.end();
++iPattern)
{
WildCard aWildCard (iPattern->first);
if (aWildCard.Matches(rsURLBase))
return iPattern->second;
}
}
return NULL;
}
} } // end of namespace sd::framework
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */