[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.1' - 6 commits - desktop/qa framework/inc framework/Library_fwl.mk framework/source framework/util include/svx sc/source sd/sdi sd/source sfx2/sdi sfx2/source svx/sdi sw/source vcl/source
Tor Lillqvist
tml at collabora.com
Sun Jun 12 21:35:58 UTC 2016
desktop/qa/desktop_lib/test_desktop_lib.cxx | 5
framework/Library_fwl.mk | 1
framework/inc/services.h | 1
framework/source/dispatch/dispatchdisabler.cxx | 171 +++++++++++++++++++++
framework/source/dispatch/interceptionhelper.cxx | 2
framework/source/inc/dispatch/dispatchdisabler.hxx | 117 ++++++++++++++
framework/source/register/registertemp.cxx | 6
framework/util/fwl.component | 3
include/svx/svxids.hrc | 6
sc/source/ui/view/tabvwsha.cxx | 11 +
sd/sdi/tables.sdi | 20 ++
sd/source/ui/table/tableobjectbar.cxx | 44 ++++-
sfx2/sdi/sfx.sdi | 2
sfx2/source/appl/appuno.cxx | 1
svx/sdi/svx.sdi | 78 +++++++++
sw/source/uibase/uno/SwXDocumentSettings.cxx | 2
vcl/source/outdev/font.cxx | 10 +
17 files changed, 461 insertions(+), 19 deletions(-)
New commits:
commit 9afccca15068e3796b30a5910f2abcd9457789ac
Author: Tor Lillqvist <tml at collabora.com>
Date: Sun May 8 08:25:31 2016 +0300
-Werror=missing-field-initializers.
Add missing initializer for member
‘comphelper::PropertyInfo::mnMemberId’.
(cherry picked from commit bd55be7ec88b1b8af3eb0b3b98be4f73453f9f89)
Change-Id: Id8c1adb24c68432ddbf6b491c419f359d228286a
diff --git a/sw/source/uibase/uno/SwXDocumentSettings.cxx b/sw/source/uibase/uno/SwXDocumentSettings.cxx
index 1dad3e0..f309399 100644
--- a/sw/source/uibase/uno/SwXDocumentSettings.cxx
+++ b/sw/source/uibase/uno/SwXDocumentSettings.cxx
@@ -206,7 +206,7 @@ static MasterPropertySetInfo * lcl_createSettingsInfo()
{ OUString("ApplyParagraphMarkFormatToNumbering"), HANDLE_APPLY_PARAGRAPH_MARK_FORMAT_TO_NUMBERING, cppu::UnoType<bool>::get(), 0},
{ OUString("PropLineSpacingShrinksFirstLine"), HANDLE_PROP_LINE_SPACING_SHRINKS_FIRST_LINE, cppu::UnoType<bool>::get(), 0},
{ OUString("SubtractFlysAnchoredAtFlys"), HANDLE_SUBTRACT_FLYS, cppu::UnoType<bool>::get(), 0},
- { OUString("InBrowseMode"), HANDLE_BROWSE_MODE, cppu::UnoType<bool>::get(), 0},
+ { OUString("InBrowseMode"), HANDLE_BROWSE_MODE, cppu::UnoType<bool>::get(), 0, 0},
/*
* As OS said, we don't have a view when we need to set this, so I have to
* find another solution before adding them to this property set - MTG
commit 1ae74a3605a95414cd592226ea5ace863ed113cf
Author: Pranav Kant <pranavk at collabora.com>
Date: Wed May 11 18:32:52 2016 +0530
sc: Add new param, DontTerminateEdit, to .uno:Save
... which determines if current editing mode before save should
be terminated with save or not.
Change-Id: I49318013f1244eb8681a19ed3da50fbecd336a3d
(cherry picked from commit a5a71cea62ac3041006c5e9815ae2317999639ac)
Reviewed-on: https://gerrit.libreoffice.org/24895
Reviewed-by: pranavk <pranavk at collabora.com>
Tested-by: pranavk <pranavk at collabora.com>
(cherry picked from commit fa4c2244122230e90e8e972950a6ef4a5b0c0dc5)
diff --git a/sc/source/ui/view/tabvwsha.cxx b/sc/source/ui/view/tabvwsha.cxx
index 7eebef0..6b9ef01 100644
--- a/sc/source/ui/view/tabvwsha.cxx
+++ b/sc/source/ui/view/tabvwsha.cxx
@@ -695,9 +695,16 @@ void ScTabViewShell::UpdateInputHandlerCellAdjust( SvxCellHorJustify eJust )
void ScTabViewShell::ExecuteSave( SfxRequest& rReq )
{
// only SID_SAVEDOC / SID_SAVEASDOC
+ bool bCommitChanges = true;
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+ const SfxPoolItem* pItem;
+
+ if (pReqArgs && pReqArgs->HasItem(FN_PARAM_1, &pItem))
+ bCommitChanges = !static_cast<const SfxBoolItem*>(pItem)->GetValue();
- // Finish entering in any case, even if a formula is being processed
- SC_MOD()->InputEnterHandler();
+ // Finish entering unless 'DontTerminateEdit' is specified, even if a formula is being processed
+ if (bCommitChanges)
+ SC_MOD()->InputEnterHandler();
if ( GetViewData().GetDocShell()->IsDocShared() )
{
diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi
index 4f2841c..8c3bad6 100644
--- a/sfx2/sdi/sfx.sdi
+++ b/sfx2/sdi/sfx.sdi
@@ -4934,7 +4934,7 @@ SfxVoidItem RunBasic SID_BASICRUN
SfxBoolItem Save SID_SAVEDOC
-(SfxStringItem VersionComment SID_DOCINFO_COMMENTS,SfxStringItem Author SID_DOCINFO_AUTHOR)
+(SfxStringItem VersionComment SID_DOCINFO_COMMENTS,SfxStringItem Author SID_DOCINFO_AUTHOR,SfxBoolItem DontTerminateEdit FN_PARAM_1)
[
/* flags: */
AutoUpdate = FALSE,
diff --git a/sfx2/source/appl/appuno.cxx b/sfx2/source/appl/appuno.cxx
index 42f4b54..4a2e6a1 100644
--- a/sfx2/source/appl/appuno.cxx
+++ b/sfx2/source/appl/appuno.cxx
@@ -84,6 +84,7 @@ SfxFormalArgument aFormalArgs[] = {
{ reinterpret_cast<SfxType*>(&aSfxStringItem_Impl), "SuggestedSaveAsDir", SID_DEFAULTFILEPATH },
{ reinterpret_cast<SfxType*>(&aSfxStringItem_Impl), "VersionAuthor", SID_DOCINFO_AUTHOR },
{ reinterpret_cast<SfxType*>(&aSfxStringItem_Impl), "VersionComment", SID_DOCINFO_COMMENTS },
+ { reinterpret_cast<SfxType*>(&aSfxBoolItem_Impl), "DontTerminateEdit", FN_PARAM_1 },
{ reinterpret_cast<SfxType*>(&aSfxBoolItem_Impl), "VersionMajor", SID_DOCINFO_MAJOR },
{ reinterpret_cast<SfxType*>(&aSfxStringItem_Impl), "FilterOptions", SID_FILE_FILTEROPTIONS },
{ reinterpret_cast<SfxType*>(&aSfxStringItem_Impl), "FilterName", SID_FILTER_NAME },
commit 88189919e8e7e4c2f611886d792416e175f23990
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Thu May 12 20:32:34 2016 +0200
framework: register DispatchDisabler service
Change-Id: I72d9f8b00ba8b2e4e5dc70d7fd77e13ccf9d3bcc
Reviewed-on: https://gerrit.libreoffice.org/24940
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
Tested-by: Jenkins <ci at libreoffice.org>
(cherry picked from commit 1f041bf31e071611a15ffa1559d2f5df05a685f0)
(cherry picked from commit 6f857ead2e530c5d570f035a39cdcd3765ad4660)
diff --git a/framework/util/fwl.component b/framework/util/fwl.component
index b035083..83e513c 100644
--- a/framework/util/fwl.component
+++ b/framework/util/fwl.component
@@ -70,4 +70,7 @@
<implementation name="com.sun.star.comp.framework.services.DispatchHelper">
<service name="com.sun.star.frame.DispatchHelper"/>
</implementation>
+ <implementation name="com.sun.star.comp.framework.services.DispatchDisabler">
+ <service name="com.sun.star.frame.DispatchDisabler"/>
+ </implementation>
</component>
commit 194b54868a0815e5f80f0be44a597a60f375c446
Author: Michael Meeks <michael.meeks at collabora.com>
Date: Thu Jan 7 19:24:41 2016 +0000
framework: initial implementation of a dispatch disabler.
This should allow remote, eg. URE dispatchers to trivially disable
lots of the UI without requiring a large volume of round-trip IPC.
Change-Id: Ibd0681ac993196f826b4ed411da5ffedb7f85786
Reviewed-on: https://gerrit.libreoffice.org/24938
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
(cherry picked from commit 02833c03ee856a62d7185829b7c47bc088e086cc)
diff --git a/framework/Library_fwl.mk b/framework/Library_fwl.mk
index c5e1ad1..ea325e0 100644
--- a/framework/Library_fwl.mk
+++ b/framework/Library_fwl.mk
@@ -59,6 +59,7 @@ $(eval $(call gb_Library_add_exception_objects,fwl,\
framework/source/recording/dispatchrecorder \
framework/source/recording/dispatchrecordersupplier \
framework/source/register/registertemp \
+ framework/source/dispatch/dispatchdisabler \
framework/source/services/dispatchhelper \
framework/source/services/mediatypedetectionhelper \
framework/source/services/uriabbreviation \
diff --git a/framework/inc/services.h b/framework/inc/services.h
index 522a966..9264337 100644
--- a/framework/inc/services.h
+++ b/framework/inc/services.h
@@ -44,6 +44,7 @@ namespace framework{
#define IMPLEMENTATIONNAME_MAILTODISPATCHER "com.sun.star.comp.framework.MailToDispatcher"
#define IMPLEMENTATIONNAME_SERVICEHANDLER "com.sun.star.comp.framework.ServiceHandler"
#define IMPLEMENTATIONNAME_DISPATCHHELPER "com.sun.star.comp.framework.services.DispatchHelper"
+#define IMPLEMENTATIONNAME_DISPATCHDISABLER "com.sun.star.comp.framework.services.DispatchDisabler"
#define IMPLEMENTATIONNAME_MACROSMENUCONTROLLER "com.sun.star.comp.framework.MacrosMenuController"
#define IMPLEMENTATIONNAME_FONTMENUCONTROLLER "com.sun.star.comp.framework.FontMenuController"
#define IMPLEMENTATIONNAME_FONTSIZEMENUCONTROLLER "com.sun.star.comp.framework.FontSizeMenuController"
diff --git a/framework/source/dispatch/dispatchdisabler.cxx b/framework/source/dispatch/dispatchdisabler.cxx
new file mode 100644
index 0000000..608b18d
--- /dev/null
+++ b/framework/source/dispatch/dispatchdisabler.cxx
@@ -0,0 +1,171 @@
+/* -*- 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/.
+ */
+
+#include <sal/config.h>
+
+#include "services.h"
+#include "dispatch/dispatchdisabler.hxx"
+
+#include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/frame/DispatchDescriptor.hpp>
+
+using namespace css;
+using namespace framework;
+
+DispatchDisabler::DispatchDisabler(const uno::Reference< uno::XComponentContext >& rxContext) :
+ mxContext( rxContext )
+{
+}
+
+// XInitialization
+void SAL_CALL DispatchDisabler::initialize( const uno::Sequence< uno::Any >& aArguments )
+ throw (uno::Exception, uno::RuntimeException, ::std::exception)
+{
+ uno::Sequence< OUString > aDisabledURLs;
+ if( aArguments.getLength() > 0 &&
+ ( aArguments[0] >>= aDisabledURLs ) )
+ {
+ for( sal_Int32 i = 0; i < aDisabledURLs.getLength(); ++i )
+ maDisabledURLs.insert(aDisabledURLs[i]);
+ }
+}
+
+// XDispatchProvider
+uno::Reference< frame::XDispatch > SAL_CALL
+DispatchDisabler::queryDispatch( const util::URL& rURL,
+ const OUString& rTargetFrameName,
+ ::sal_Int32 nSearchFlags )
+ throw (uno::RuntimeException, ::std::exception)
+{
+ // If present - disabled.
+ if( maDisabledURLs.find(rURL.Complete) != maDisabledURLs.end() ||
+ !mxSlave.is() )
+ return uno::Reference< frame::XDispatch >();
+ else
+ return mxSlave->queryDispatch(rURL, rTargetFrameName, nSearchFlags);
+}
+
+uno::Sequence< uno::Reference< frame::XDispatch > > SAL_CALL
+DispatchDisabler::queryDispatches( const uno::Sequence< frame::DispatchDescriptor >& rRequests )
+ throw (uno::RuntimeException, ::std::exception)
+{
+ uno::Sequence< uno::Reference< frame::XDispatch > > aResult(rRequests.getLength());
+ for( sal_Int32 i = 0; i < rRequests.getLength(); ++i )
+ aResult[i] = queryDispatch(rRequests[i].FeatureURL,
+ rRequests[i].FrameName,
+ rRequests[i].SearchFlags);
+ return aResult;
+}
+
+// XDispatchProviderInterceptor
+uno::Reference< frame::XDispatchProvider > SAL_CALL
+DispatchDisabler::getSlaveDispatchProvider() throw (uno::RuntimeException, ::std::exception)
+{
+ return mxSlave;
+}
+
+void SAL_CALL DispatchDisabler::setSlaveDispatchProvider( const uno::Reference< frame::XDispatchProvider >& xNewDispatchProvider )
+ throw (uno::RuntimeException, ::std::exception)
+{
+ mxSlave = xNewDispatchProvider;
+}
+
+uno::Reference< frame::XDispatchProvider > SAL_CALL
+DispatchDisabler::getMasterDispatchProvider() throw (uno::RuntimeException, ::std::exception)
+{
+ return mxMaster;
+}
+void SAL_CALL
+DispatchDisabler::setMasterDispatchProvider( const uno::Reference< frame::XDispatchProvider >& xNewSupplier )
+ throw (uno::RuntimeException, ::std::exception)
+{
+ mxMaster = xNewSupplier;
+}
+
+// XInterceptorInfo
+uno::Sequence< OUString > SAL_CALL
+ DispatchDisabler::getInterceptedURLs()
+ throw (uno::RuntimeException, ::std::exception)
+{
+ uno::Sequence< OUString > aDisabledURLs(maDisabledURLs.size());
+ sal_Int32 n = 0;
+ for (auto i = aDisabledURLs.begin(); i != aDisabledURLs.end(); ++i)
+ aDisabledURLs[n++] = *i;
+ return aDisabledURLs;
+}
+
+// XElementAccess
+uno::Type SAL_CALL DispatchDisabler::getElementType()
+ throw (uno::RuntimeException, ::std::exception)
+{
+ uno::Type aModuleType = cppu::UnoType<OUString>::get();
+ return aModuleType;
+}
+
+::sal_Bool SAL_CALL DispatchDisabler::hasElements()
+ throw (uno::RuntimeException, ::std::exception)
+{
+ return maDisabledURLs.size() > 0;
+}
+
+// XNameAccess
+uno::Any SAL_CALL DispatchDisabler::getByName( const OUString& )
+ throw (container::NoSuchElementException, lang::WrappedTargetException,
+ uno::RuntimeException, ::std::exception)
+{
+ return uno::Any();
+}
+
+uno::Sequence< OUString > SAL_CALL DispatchDisabler::getElementNames()
+ throw (uno::RuntimeException, ::std::exception)
+{
+ return getInterceptedURLs();
+}
+
+sal_Bool SAL_CALL DispatchDisabler::hasByName( const OUString& rName )
+ throw (uno::RuntimeException, ::std::exception)
+{
+ return maDisabledURLs.find(rName) != maDisabledURLs.end();
+}
+
+// XNameReplace
+void SAL_CALL DispatchDisabler::replaceByName( const OUString& rName, const uno::Any& aElement )
+ throw (lang::IllegalArgumentException, container::NoSuchElementException,
+ lang::WrappedTargetException, uno::RuntimeException, ::std::exception)
+{
+ removeByName( rName );
+ insertByName( rName, aElement );
+}
+
+// XNameContainer
+void DispatchDisabler::insertByName( const OUString& rName, const uno::Any& )
+ throw (lang::IllegalArgumentException, container::ElementExistException,
+ lang::WrappedTargetException, uno::RuntimeException, ::std::exception)
+{
+ maDisabledURLs.insert(rName);
+}
+
+void DispatchDisabler::removeByName( const OUString& rName )
+ throw (container::NoSuchElementException, lang::WrappedTargetException,
+ uno::RuntimeException, ::std::exception)
+{
+ auto it = maDisabledURLs.find(rName);
+ if( it != maDisabledURLs.end() )
+ maDisabledURLs.erase(it);
+}
+
+DEFINE_INIT_SERVICE(DispatchDisabler, {})
+
+// XServiceInfo
+DEFINE_XSERVICEINFO_MULTISERVICE_2(DispatchDisabler,
+ ::cppu::OWeakObject,
+ "com.sun.star.frame.DispatchDisabler",
+ IMPLEMENTATIONNAME_DISPATCHDISABLER)
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/dispatch/interceptionhelper.cxx b/framework/source/dispatch/interceptionhelper.cxx
index affce9a..a2bc6b2 100644
--- a/framework/source/dispatch/interceptionhelper.cxx
+++ b/framework/source/dispatch/interceptionhelper.cxx
@@ -101,7 +101,7 @@ css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL Inte
void SAL_CALL InterceptionHelper::registerDispatchProviderInterceptor(const css::uno::Reference< css::frame::XDispatchProviderInterceptor >& xInterceptor)
throw(css::uno::RuntimeException, std::exception)
{
- // reject wrong calling of this interface method
+ // reject incorrect calls of this interface method
css::uno::Reference< css::frame::XDispatchProvider > xThis(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY);
if (!xInterceptor.is())
throw css::uno::RuntimeException("NULL references not allowed as in parameter", xThis);
diff --git a/framework/source/inc/dispatch/dispatchdisabler.hxx b/framework/source/inc/dispatch/dispatchdisabler.hxx
new file mode 100644
index 0000000..3d7a618
--- /dev/null
+++ b/framework/source/inc/dispatch/dispatchdisabler.hxx
@@ -0,0 +1,117 @@
+/* -*- 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/.
+ */
+#ifndef INCLUDED_FRAMEWORK_INC_SERVICES_DISPATCH_DISABLER_HXX
+#define INCLUDED_FRAMEWORK_INC_SERVICES_DISPATCH_DISABLER_HXX
+
+#include <set>
+
+#include <cppuhelper/implbase.hxx>
+#include <cppuhelper/weakref.hxx>
+
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <com/sun/star/frame/XDispatch.hpp>
+#include <com/sun/star/frame/XInterceptorInfo.hpp>
+#include <com/sun/star/frame/XDispatchProvider.hpp>
+#include <com/sun/star/frame/XDispatchProviderInterceptor.hpp>
+
+#include <macros/xserviceinfo.hxx>
+
+namespace framework {
+
+/**
+ * Implementation of a service to make it easy to disable a whole
+ * suite of UNO commands in a batch - and have that act in-process.
+ *
+ * Often external re-use of LibreOffice wants a very cut-down set
+ * of functionality included, and disabling elements remotely one
+ * by one performs poorly.
+ */
+class DispatchDisabler : public ::cppu::WeakImplHelper<
+ css::lang::XInitialization,
+ css::container::XNameContainer,
+ css::frame::XDispatchProviderInterceptor,
+ css::frame::XInterceptorInfo,
+ css::lang::XServiceInfo >
+{
+ std::set<OUString> maDisabledURLs;
+ css::uno::Reference< css::frame::XDispatchProvider > mxSlave;
+ css::uno::Reference< css::frame::XDispatchProvider > mxMaster;
+ css::uno::Reference< css::uno::XComponentContext > mxContext;
+public:
+ DispatchDisabler(const css::uno::Reference< css::uno::XComponentContext >& rxContext);
+ virtual ~DispatchDisabler() {}
+
+ // XInitialization
+ virtual void SAL_CALL initialize( const ::css::uno::Sequence< ::css::uno::Any >& aArguments )
+ throw (::css::uno::Exception, ::css::uno::RuntimeException, ::std::exception) override;
+
+ // XDispatchProvider
+ virtual ::css::uno::Reference< ::css::frame::XDispatch > SAL_CALL
+ queryDispatch( const ::css::util::URL& URL,
+ const OUString& TargetFrameName,
+ ::sal_Int32 SearchFlags )
+ throw (::css::uno::RuntimeException, ::std::exception) override;
+ virtual ::css::uno::Sequence< ::css::uno::Reference< ::css::frame::XDispatch > > SAL_CALL
+ queryDispatches( const ::css::uno::Sequence< ::css::frame::DispatchDescriptor >& Requests )
+ throw (::css::uno::RuntimeException, ::std::exception) override;
+
+ // XDispatchProviderInterceptor
+ virtual ::css::uno::Reference< ::css::frame::XDispatchProvider > SAL_CALL
+ getSlaveDispatchProvider() throw (::css::uno::RuntimeException, ::std::exception) override;
+ virtual void SAL_CALL
+ setSlaveDispatchProvider( const ::css::uno::Reference< ::css::frame::XDispatchProvider >& NewDispatchProvider )
+ throw (::css::uno::RuntimeException, ::std::exception) override;
+ virtual ::css::uno::Reference< ::css::frame::XDispatchProvider > SAL_CALL
+ getMasterDispatchProvider() throw (::css::uno::RuntimeException, ::std::exception) override;
+ virtual void SAL_CALL
+ setMasterDispatchProvider( const ::css::uno::Reference< ::css::frame::XDispatchProvider >& NewSupplier )
+ throw (::css::uno::RuntimeException, ::std::exception) override;
+
+ // XInterceptorInfo
+ virtual ::css::uno::Sequence< OUString > SAL_CALL
+ getInterceptedURLs() throw (::css::uno::RuntimeException, ::std::exception) override;
+
+ // XElementAccess
+ virtual ::css::uno::Type SAL_CALL getElementType()
+ throw (::css::uno::RuntimeException, ::std::exception) override;
+ virtual ::sal_Bool SAL_CALL hasElements()
+ throw (::css::uno::RuntimeException, ::std::exception) override;
+
+ // XNameAccess
+ virtual ::css::uno::Any SAL_CALL getByName( const OUString& aName )
+ throw (::css::container::NoSuchElementException, ::css::lang::WrappedTargetException,
+ ::css::uno::RuntimeException, ::std::exception) override;
+ virtual ::css::uno::Sequence< OUString > SAL_CALL getElementNames()
+ throw (::css::uno::RuntimeException, ::std::exception) override;
+ virtual sal_Bool SAL_CALL hasByName( const OUString& aName )
+ throw (::css::uno::RuntimeException, ::std::exception) override;
+
+ // XNameReplace
+ virtual void SAL_CALL replaceByName( const OUString& aName, const ::css::uno::Any& aElement )
+ throw (::css::lang::IllegalArgumentException, ::css::container::NoSuchElementException,
+ ::css::lang::WrappedTargetException, ::css::uno::RuntimeException, ::std::exception) override;
+
+ // XNameContainer
+ virtual void SAL_CALL insertByName( const OUString& aName, const ::css::uno::Any& aElement )
+ throw (::css::lang::IllegalArgumentException, ::css::container::ElementExistException,
+ ::css::lang::WrappedTargetException, ::css::uno::RuntimeException, ::std::exception) override;
+ virtual void SAL_CALL removeByName( const OUString& Name )
+ throw (::css::container::NoSuchElementException, ::css::lang::WrappedTargetException,
+ ::css::uno::RuntimeException, ::std::exception) override;
+
+ DECLARE_XSERVICEINFO
+};
+
+} // namespace framework
+
+#endif // INCLUDED_FRAMEWORK_INC_SERVICES_DISPATCH_DISABLER_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/register/registertemp.cxx b/framework/source/register/registertemp.cxx
index e02195c..393c5bd 100644
--- a/framework/source/register/registertemp.cxx
+++ b/framework/source/register/registertemp.cxx
@@ -37,6 +37,7 @@
#include <dispatch/oxt_handler.hxx>
#include <dispatch/popupmenudispatcher.hxx>
#include <dispatch/servicehandler.hxx>
+#include <dispatch/dispatchdisabler.hxx>
#include <services/dispatchhelper.hxx>
#include <recording/dispatchrecorder.hxx>
#include <recording/dispatchrecordersupplier.hxx>
@@ -51,11 +52,12 @@
#include <uielement/toolbarsmenucontroller.hxx>
COMPONENTGETFACTORY ( fwl,
- IFFACTORY( ::framework::MediaTypeDetectionHelper )
- IFFACTORY( ::framework::MailToDispatcher ) else
+ IFFACTORY( ::framework::MediaTypeDetectionHelper )
+ IFFACTORY( ::framework::MailToDispatcher ) else
IFFACTORY( ::framework::ServiceHandler ) else
IFFACTORY( ::framework::PopupMenuDispatcher ) else
IFFACTORY( ::framework::DispatchHelper ) else
+ IFFACTORY( ::framework::DispatchDisabler ) else
IFFACTORY( ::framework::DispatchRecorder ) else
IFFACTORY( ::framework::DispatchRecorderSupplier ) else
IFFACTORY( ::framework::ToolbarsMenuController ) else
commit 178a3a7df15882bf21d9a676a8fecae0c068aebd
Author: Henry Castro <hcastro at collabora.com>
Date: Tue May 24 17:24:16 2016 -0400
lok: reset the font list when there are no items
In the pre-init stage the devices were initialized with no
font list, but later the font list is updated. So those devices
were not updated.
Change-Id: I157d4c7079f9b1252916eb92b512aadb8e77329f
(cherry picked from commit 260f3ff257d7839119c8221397d18a516afd8799)
diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx
index 1c48254..e8f6ff4 100644
--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
+++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
@@ -225,7 +225,8 @@ void DesktopLOKTest::testGetStyles()
void DesktopLOKTest::testGetFonts()
{
- LibLODocument_Impl* pDocument = loadDoc("blank_text.odt");
+ comphelper::LibreOfficeKit::setActive();
+ LibLODocument_Impl* pDocument = loadDoc("blank_presentation.odp");
boost::property_tree::ptree aTree;
char* pJSON = pDocument->m_pDocumentClass->getCommandValues(pDocument, ".uno:CharFontName");
std::stringstream aStream(pJSON);
@@ -240,6 +241,8 @@ void DesktopLOKTest::testGetFonts()
// check that we have font sizes available for each font
CPPUNIT_ASSERT( rPair.second.size() > 0);
}
+ free(pJSON);
+ comphelper::LibreOfficeKit::setActive(false);
}
void DesktopLOKTest::testCreateView()
diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx
index f2885f0..e15f2df 100644
--- a/vcl/source/outdev/font.cxx
+++ b/vcl/source/outdev/font.cxx
@@ -93,9 +93,19 @@ int OutputDevice::GetDevFontCount() const
if( !mpGetDevFontList )
{
if (!mpFontCollection)
+ {
return 0;
+ }
mpGetDevFontList = mpFontCollection->GetDevFontList();
+
+ if (!mpGetDevFontList->Count())
+ {
+ delete mpGetDevFontList;
+ mpGetDevFontList = nullptr;
+
+ return 0;
+ }
}
return mpGetDevFontList->Count();
}
commit 63582ab268fca7f2fb0f9d88d724f3da825d6dac
Author: Jan Holesovsky <kendy at collabora.com>
Date: Wed May 25 13:05:42 2016 +0200
sd bccu#1840: .uno: commands for inserting rows / columns in Impress.
Change-Id: Ic07722c3e1f75d909ec8f123919a1898dfde05b0
(cherry picked from commit 99b8598495ba76e8fd32af2ace17e0b29b3beffd)
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index 1ec7daa..b77b1b0 100644
--- a/include/svx/svxids.hrc
+++ b/include/svx/svxids.hrc
@@ -529,6 +529,12 @@
#define SID_RULER_PROTECT ( SID_SVX_START + 415 )
#define SID_COLOR_CONTROL ( SID_SVX_START + 417 )
+
+#define SID_TABLE_INSERT_COL_BEFORE ( SID_SVX_START + 418 )
+#define SID_TABLE_INSERT_COL_AFTER ( SID_SVX_START + 419 )
+#define SID_TABLE_INSERT_ROW_BEFORE ( SID_SVX_START + 420 )
+#define SID_TABLE_INSERT_ROW_AFTER ( SID_SVX_START + 421 )
+
#define SID_ATTR_3D_INTERN ( SID_SVX_START + 422 )
#define SID_PSZ_FUNCTION ( SID_SVX_START + 423 )
diff --git a/sd/sdi/tables.sdi b/sd/sdi/tables.sdi
index 0d3eb62..4e234a7 100644
--- a/sd/sdi/tables.sdi
+++ b/sd/sdi/tables.sdi
@@ -83,11 +83,31 @@ shell TableObjectBar
ExecMethod = Execute;
StateMethod = GetState;
]
+ SID_TABLE_INSERT_ROW_BEFORE
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ ]
+ SID_TABLE_INSERT_ROW_AFTER
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ ]
SID_TABLE_INSERT_COL_DLG
[
ExecMethod = Execute;
StateMethod = GetState;
]
+ SID_TABLE_INSERT_COL_BEFORE
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ ]
+ SID_TABLE_INSERT_COL_AFTER
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ ]
SID_TABLE_DELETE_ROW
[
ExecMethod = Execute;
diff --git a/sd/source/ui/table/tableobjectbar.cxx b/sd/source/ui/table/tableobjectbar.cxx
index 75ac910..2f19049 100644
--- a/sd/source/ui/table/tableobjectbar.cxx
+++ b/sd/source/ui/table/tableobjectbar.cxx
@@ -136,23 +136,45 @@ void TableObjectBar::Execute( SfxRequest& rReq )
switch( nSlotId )
{
case SID_TABLE_INSERT_ROW_DLG:
+ case SID_TABLE_INSERT_ROW_BEFORE:
+ case SID_TABLE_INSERT_ROW_AFTER:
case SID_TABLE_INSERT_COL_DLG:
+ case SID_TABLE_INSERT_COL_BEFORE:
+ case SID_TABLE_INSERT_COL_AFTER:
{
- SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
- std::unique_ptr<SvxAbstractInsRowColDlg> pDlg( pFact ? pFact->CreateSvxInsRowColDlg( mpView->GetViewShell()->GetParentWindow(), nSlotId == SID_TABLE_INSERT_COL_DLG, SD_MOD()->GetSlotPool()->GetSlot(nSlotId)->GetCommand()) : nullptr);
-
- if( pDlg.get() && (pDlg->Execute() == 1) )
+ std::unique_ptr<SvxAbstractInsRowColDlg> pDlg;
+ if (nSlotId == SID_TABLE_INSERT_ROW_DLG || nSlotId == SID_TABLE_INSERT_COL_DLG)
{
- if( nSlotId == SID_TABLE_INSERT_ROW_DLG )
- nSlotId = SID_TABLE_INSERT_ROW;
- else
- nSlotId = SID_TABLE_INSERT_COL;
+ SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
+ pDlg.reset(pFact ? pFact->CreateSvxInsRowColDlg(mpView->GetViewShell()->GetParentWindow(), nSlotId == SID_TABLE_INSERT_COL_DLG, SD_MOD()->GetSlotPool()->GetSlot(nSlotId)->GetCommand()) : nullptr);
+
+ if (!pDlg.get() || (pDlg->Execute() != 1))
+ break;
+ }
- rReq.AppendItem( SfxInt16Item( (sal_uInt16)nSlotId, (sal_uInt16)pDlg->getInsertCount() ) );
- rReq.AppendItem( SfxBoolItem( SID_TABLE_PARAM_INSERT_AFTER, !pDlg->isInsertBefore() ) );
+ sal_uInt16 nCount = 1;
+ bool bInsertAfter = (nSlotId == SID_TABLE_INSERT_ROW_AFTER) || (nSlotId == SID_TABLE_INSERT_COL_AFTER);
- rReq.SetSlot( (sal_uInt16)nSlotId );
+ if (nSlotId == SID_TABLE_INSERT_ROW_DLG)
+ {
+ nCount = pDlg->getInsertCount();
+ bInsertAfter = !pDlg->isInsertBefore();
}
+ else if (nSlotId == SID_TABLE_INSERT_COL_DLG)
+ {
+ nCount = pDlg->getInsertCount();
+ bInsertAfter = !pDlg->isInsertBefore();
+ }
+
+ if (nSlotId == SID_TABLE_INSERT_ROW_DLG || nSlotId == SID_TABLE_INSERT_ROW_BEFORE || nSlotId == SID_TABLE_INSERT_ROW_AFTER)
+ nSlotId = SID_TABLE_INSERT_ROW;
+ else
+ nSlotId = SID_TABLE_INSERT_COL;
+
+ rReq.AppendItem(SfxInt16Item((sal_uInt16)nSlotId, nCount));
+ rReq.AppendItem(SfxBoolItem(SID_TABLE_PARAM_INSERT_AFTER, bInsertAfter));
+
+ rReq.SetSlot( (sal_uInt16)nSlotId );
}
}
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 51b6e80..3d6b32f 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -15734,7 +15734,45 @@ SfxVoidItem InsertColumnDialog SID_TABLE_INSERT_COL_DLG
GroupId = GID_TABLE;
]
+SfxVoidItem InsertColumnsBefore SID_TABLE_INSERT_COL_BEFORE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ FastCall = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Asynchron;
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_TABLE;
+]
+
+SfxVoidItem InsertColumnsAfter SID_TABLE_INSERT_COL_AFTER
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ FastCall = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Asynchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_TABLE;
+]
SfxVoidItem InsertRowDialog SID_TABLE_INSERT_ROW_DLG
()
@@ -15760,6 +15798,46 @@ SfxVoidItem InsertRowDialog SID_TABLE_INSERT_ROW_DLG
GroupId = GID_TABLE;
]
+SfxVoidItem InsertRowsBefore SID_TABLE_INSERT_ROW_BEFORE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ FastCall = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Asynchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_TABLE;
+]
+
+SfxVoidItem InsertRowsAfter SID_TABLE_INSERT_ROW_AFTER
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ FastCall = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Asynchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_TABLE;
+]
+
SfxVoidItem PrepareMailExport SID_MAIL_PREPAREEXPORT
()
[
More information about the Libreoffice-commits
mailing list