summaryrefslogtreecommitdiff
path: root/offapi
diff options
context:
space:
mode:
authorKatarina Behrens <Katarina.Behrens@cib.de>2019-07-01 18:20:02 +0200
committerKatarina Behrens <Katarina.Behrens@cib.de>2019-10-25 16:27:04 +0200
commita8b1699ca9c7e8c43eff79467451fd1fcb4fde9b (patch)
tree685f005a1b6c417c3b582d80dce51d0138970cff /offapi
parentedcc3d66f9a107b8d9ffb3c5899e7863cf508484 (diff)
speed-up shape import if shapes need z-order rearranging
setting z-order individually on each shape and broadcasting is O(n^2) (remaining shapes also need reordering) and this is bad bad bad for performance Change-Id: Ic9c9137a097f6ff524192693910f221885f77cc4 Reviewed-on: https://gerrit.libreoffice.org/75055 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
Diffstat (limited to 'offapi')
-rw-r--r--offapi/UnoApi_offapi.mk1
-rw-r--r--offapi/com/sun/star/drawing/XShapes3.idl43
2 files changed, 44 insertions, 0 deletions
diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk
index 4e36995a7d53..5fa55f8f191d 100644
--- a/offapi/UnoApi_offapi.mk
+++ b/offapi/UnoApi_offapi.mk
@@ -2376,6 +2376,7 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,com/sun/star/drawing,\
XShapeMirror \
XShapes \
XShapes2 \
+ XShapes3 \
XSlidePreviewCache \
XSlidePreviewCacheListener \
XSlideRenderer \
diff --git a/offapi/com/sun/star/drawing/XShapes3.idl b/offapi/com/sun/star/drawing/XShapes3.idl
new file mode 100644
index 000000000000..ebb23e7d3a11
--- /dev/null
+++ b/offapi/com/sun/star/drawing/XShapes3.idl
@@ -0,0 +1,43 @@
+/* -*- 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 __com_sun_star_drawing_XShapes3_idl__
+#define __com_sun_star_drawing_XShapes3_idl__
+
+#include <com/sun/star/drawing/XShapes.idl>
+
+module com { module sun { module star { module drawing {
+
+/**
+ * Yet another XShapes interface, enables sorting shapes with
+ * some extra attention paid to shapes with textboxes and overall
+ * performance
+ *
+ * @since LibreOffice 6.4
+ */
+interface XShapes3
+{
+ /**
+ * Sort shapes according to given sort order, for perf reason
+ * just rearrange and don't broadcast
+ *
+ * @param desired order of the shapes
+ *
+ * @since LibreOffice 6.4
+ */
+
+ void sort( [in] sequence< long> sortOrder )
+ raises( com::sun::star::lang::IllegalArgumentException );
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */