update to 5.2.0 beta1

f41
David Tardon 9 years ago
parent ab9c14362d
commit db5d455404

3
.gitignore vendored

@ -15,3 +15,6 @@
/libreoffice-5.2.0.0.alpha1.tar.xz
/libreoffice-help-5.2.0.0.alpha1.tar.xz
/libreoffice-translations-5.2.0.0.alpha1.tar.xz
/libreoffice-5.2.0.0.beta1.tar.xz
/libreoffice-help-5.2.0.0.beta1.tar.xz
/libreoffice-translations-5.2.0.0.beta1.tar.xz

@ -1,44 +0,0 @@
From b35b601d9e3b43eaedb8576b70d10b657f625d6e Mon Sep 17 00:00:00 2001
From: Eike Rathke <erack@redhat.com>
Date: Fri, 13 May 2016 14:56:01 +0200
Subject: [PATCH] Resolves: tdf#99730 lower the barrier for inferior systems,
cripple the test
Change-Id: Ifdb9330a0614800831d2e0b673d975e6304738e5
---
sc/qa/unit/ucalc_formula.cxx | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index fa49e0d..fb63065 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -6847,16 +6847,22 @@ void Test::testFuncMDETERM()
aFormulaBuffer[13] = static_cast<sal_Unicode>( '0' + nSize );
m_pDoc->SetString(aPos, aFormulaBuffer.toString());
+#if SAL_TYPES_SIZEOFPOINTER == 4
// On crappy 32-bit targets, presumably without extended precision on
// interim results or optimization not catching it, this test fails
// when comparing to 0.0, so have a narrow error margin. See also
// commit message of 8140309d636d4a870875f2dd75ed3dfff2c0fbaf
-#if SAL_TYPES_SIZEOFPOINTER == 4
CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE("Calculation of MDETERM incorrect for singular integer matrix",
0.0, m_pDoc->GetValue(aPos), 1e-12);
#else
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of MDETERM incorrect for singular integer matrix",
- 0.0, m_pDoc->GetValue(aPos));
+ // Even on one (and only one) x86_64 target the result was
+ // 6.34413156928661e-17 instead of 0.0 (tdf#99730) so lower the bar to
+ // 10e-14.
+ // Then again on aarch64, ppc64* and s390x it also fails.
+ // Sigh.. why do we even test this? The original complaint in tdf#32834
+ // was about -9.51712667007776E-016
+ CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE("Calculation of MDETERM incorrect for singular integer matrix",
+ 0.0, m_pDoc->GetValue(aPos), 1e-14);
#endif
}
--
2.7.4

@ -1,210 +0,0 @@
From db729f3b685fd832a3ec7387b339cf2bbeb4bd4d Mon Sep 17 00:00:00 2001
From: Kohei Yoshida <kohei.yoshida@gmail.com>
Date: Wed, 11 May 2016 21:45:56 -0400
Subject: [PATCH] Update mdds to 1.2.0. Note that the API version is also up.
liborcus-0.11.2 is out only to make it buildable with mdds-1.2.
Change-Id: I9648d827b008da252c57be0ebfd2efccb008ac70
Reviewed-on: https://gerrit.libreoffice.org/24944
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
---
configure.ac | 4 +--
download.lst | 8 +++---
external/mdds/0001-Fix-some-build-snuffs.patch | 38 --------------------------
external/mdds/UnpackedTarball_mdds.mk | 1 -
sc/inc/mtvelements.hxx | 2 ++
sc/source/core/tool/scmatrix.cxx | 9 +++---
svl/source/misc/gridprinter.cxx | 8 ++----
7 files changed, 15 insertions(+), 55 deletions(-)
delete mode 100644 external/mdds/0001-Fix-some-build-snuffs.patch
diff --git a/configure.ac b/configure.ac
index 3f1b7f0..6dea282 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8832,7 +8832,7 @@ AC_SUBST(SYSTEM_BOOST)
dnl ===================================================================
dnl Check for system mdds
dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([mdds], [MDDS], [mdds-1.0 >= 1.1.0], ["-I${WORKDIR}/UnpackedTarball/mdds/include"])
+libo_CHECK_SYSTEM_MODULE([mdds], [MDDS], [mdds-1.2 >= 1.2.0], ["-I${WORKDIR}/UnpackedTarball/mdds/include"])
dnl ===================================================================
dnl Check for system glm
@@ -9148,7 +9148,7 @@ if test -z "$enable_orcus" -o "$enable_orcus" != no; then
ENABLE_ORCUS="TRUE"
AC_DEFINE(ENABLE_ORCUS)
- libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.11 >= 0.11.0])
+ libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.11 >= 0.11.2])
if test "$with_system_orcus" != "yes"; then
if test "$SYSTEM_BOOST" = "TRUE"; then
# ===========================================================
diff --git a/download.lst b/download.lst
index a2483c2..ddd6edc 100644
--- a/download.lst
+++ b/download.lst
@@ -97,8 +97,8 @@ export LIBXML_TARBALL := daece17e045f1c107610e137ab50c179-libxml2-2.9.3.tar.gz
export LIBXSLT_TARBALL := 9667bf6f9310b957254fdcf6596600b7-libxslt-1.1.28.tar.gz
export LPSOLVE_TARBALL := 26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz
export MARIADB_TARBALL := a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz
-export MDDS_MD5SUM := c300541adac09008aa4a305eacd1dca6
-export MDDS_TARBALL := mdds-1.1.0.tar.bz2
+export MDDS_MD5SUM := 9f3383fb7bae825eab69f3a6ec1d74b2
+export MDDS_TARBALL := mdds-1.2.0.tar.bz2
export MDNSRESPONDER_MD5SUM := 940057ac8b513b00e8e9ca12ef796762
export MDNSRESPONDER_TARBALL := mDNSResponder-576.30.4.tar.gz
export MSPUB_MD5SUM := ff9d0f9dd8fbc523408ea1953d5bde41
@@ -118,8 +118,8 @@ export OPENCOLLADA_TARBALL := OpenCOLLADA-master-6509aa13af.tar.bz2
export OPENLDAP_TARBALL := 804c6cb5698db30b75ad0ff1c25baefd-openldap-2.4.31.tgz
export OPENSSL_MD5SUM := f3c710c045cdee5fd114feb69feba7aa
export OPENSSL_TARBALL := openssl-1.0.2g.tar.gz
-export ORCUS_MD5SUM := 2bff8a3683caa70a438d5cdfda4cfb4f
-export ORCUS_TARBALL := liborcus-0.11.1.tar.gz
+export ORCUS_MD5SUM := 205badaee72adf99422add8c4c49d669
+export ORCUS_TARBALL := liborcus-0.11.2.tar.gz
export OWNCLOUD_ANDROID_LIB_MD5SUM := 593f0aa47bf2efc0efda2d28fae063b2
export OWNCLOUD_ANDROID_LIB_TARBALL := owncloud-android-library-0.9.4-no-binary-deps.tar.gz
export PAGEMAKER_MD5SUM := 5c4985a68be0b79d3f809da5e12b143c
diff --git a/external/mdds/0001-Fix-some-build-snuffs.patch b/external/mdds/0001-Fix-some-build-snuffs.patch
deleted file mode 100644
index 5f32a98..0000000
--- a/external/mdds/0001-Fix-some-build-snuffs.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From cbd1fb07b96f48ec9ed3c3806a18dbd8a7fd5703 Mon Sep 17 00:00:00 2001
-From: Kohei Yoshida <kohei.yoshida@gmail.com>
-Date: Thu, 11 Feb 2016 22:20:41 -0500
-Subject: [PATCH] Fix some build snuffs.
-
----
- include/mdds/multi_type_vector_def.inl | 1 -
- include/mdds/sorted_string_map_def.inl | 2 +-
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/include/mdds/multi_type_vector_def.inl b/include/mdds/multi_type_vector_def.inl
-index a2d2fe0..549502b 100644
---- include/mdds/multi_type_vector_def.inl
-+++ include/mdds/multi_type_vector_def.inl
-@@ -1936,7 +1936,6 @@ multi_type_vector<_CellBlockFunc, _EventFunc>::transfer_multi_blocks(
- else
- {
- // Just move the whole block over.
-- block* blk = m_blocks[block_index2];
- dest.m_blocks[dest_block_pos] = blk;
- if (blk->mp_data)
- {
-diff --git a/include/mdds/sorted_string_map_def.inl b/include/mdds/sorted_string_map_def.inl
-index 1983460..1509e30 100644
---- include/mdds/sorted_string_map_def.inl
-+++ include/mdds/sorted_string_map_def.inl
-@@ -65,7 +65,7 @@ sorted_string_map<_ValueT>::sorted_string_map(const entry* entries, size_type en
- m_entry_end(m_entries+m_entry_size)
- {
- #ifdef _GLIBCXX_DEBUG
-- assert(std::is_sorted(m_entries, m_entry_end, compare<_ValueT>));
-+ assert(std::is_sorted(m_entries, m_entry_end, detail::compare<_ValueT>));
- #endif
- }
-
---
-1.9.1
-
diff --git a/external/mdds/UnpackedTarball_mdds.mk b/external/mdds/UnpackedTarball_mdds.mk
index 2e4af67..c015f4c 100644
--- a/external/mdds/UnpackedTarball_mdds.mk
+++ b/external/mdds/UnpackedTarball_mdds.mk
@@ -14,7 +14,6 @@ $(eval $(call gb_UnpackedTarball_set_tarball,mdds,$(MDDS_TARBALL)))
$(eval $(call gb_UnpackedTarball_set_patchlevel,mdds,0))
$(eval $(call gb_UnpackedTarball_add_patches,mdds,\
- external/mdds/0001-Fix-some-build-snuffs.patch \
))
# vim: set noet sw=4 ts=4:
diff --git a/sc/inc/mtvelements.hxx b/sc/inc/mtvelements.hxx
index 0bc5162..18edafc 100644
--- a/sc/inc/mtvelements.hxx
+++ b/sc/inc/mtvelements.hxx
@@ -53,6 +53,7 @@ const mdds::mtv::element_t element_type_cellnote = mdds::mtv::element_type_user_
/// Mapped standard element types (for convenience).
const mdds::mtv::element_t element_type_numeric = mdds::mtv::element_type_numeric;
const mdds::mtv::element_t element_type_empty = mdds::mtv::element_type_empty;
+const mdds::mtv::element_t element_type_uint16 = mdds::mtv::element_type_ushort;
/// Custom element blocks.
@@ -65,6 +66,7 @@ typedef mdds::mtv::noncopyable_managed_element_block<element_type_formula, ScFor
/// Mapped standard element blocks (for convenience).
typedef mdds::mtv::numeric_element_block numeric_block;
+typedef mdds::mtv::ushort_element_block uint16_block;
/// This needs to be in the same namespace as CellTextAttr.
MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(CellTextAttr, element_type_celltextattr, CellTextAttr(), celltextattr_block)
diff --git a/sc/source/core/tool/scmatrix.cxx b/sc/source/core/tool/scmatrix.cxx
index f1ce9a5..1689809 100644
--- a/sc/source/core/tool/scmatrix.cxx
+++ b/sc/source/core/tool/scmatrix.cxx
@@ -57,17 +57,15 @@ using ::std::unary_function;
* Custom string trait struct to tell mdds::multi_type_matrix about the
* custom string type and how to handle blocks storing them.
*/
-struct custom_string_trait
+struct matrix_trait
{
- typedef svl::SharedString string_type;
typedef sc::string_block string_element_block;
-
- static const mdds::mtv::element_t string_type_identifier = sc::element_type_string;
+ typedef sc::uint16_block integer_element_block;
typedef mdds::mtv::custom_block_func1<sc::string_block> element_block_func;
};
-typedef mdds::multi_type_matrix<custom_string_trait> MatrixImplType;
+typedef mdds::multi_type_matrix<matrix_trait> MatrixImplType;
namespace {
@@ -2304,6 +2302,7 @@ public:
}
}
break;
+ case mdds::mtm::element_integer:
case mdds::mtm::element_empty:
break;
}
diff --git a/svl/source/misc/gridprinter.cxx b/svl/source/misc/gridprinter.cxx
index 4044b3e..70e7439 100644
--- a/svl/source/misc/gridprinter.cxx
+++ b/svl/source/misc/gridprinter.cxx
@@ -26,12 +26,10 @@ const mdds::mtv::element_t element_type_string = mdds::mtv::element_type_user_st
// String block
typedef mdds::mtv::default_element_block<element_type_string, OUString> string_block;
-struct custom_string_trait
+struct matrix_trait
{
- typedef OUString string_type;
typedef string_block string_element_block;
-
- static const mdds::mtv::element_t string_type_identifier = element_type_string;
+ typedef mdds::mtv::ushort_element_block integer_element_block;
typedef mdds::mtv::custom_block_func1<string_block> element_block_func;
};
@@ -48,7 +46,7 @@ MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(OUString, svl::element_type_string, OUString()
namespace svl {
-typedef mdds::multi_type_matrix<custom_string_trait> MatrixImplType;
+typedef mdds::multi_type_matrix<matrix_trait> MatrixImplType;
struct GridPrinter::Impl
{
--
2.7.4

@ -1,24 +0,0 @@
From adbd9c70d4326e2577c4b5eff486f1809777fa90 Mon Sep 17 00:00:00 2001
From: rpmbuild <rpmbuild@fedoraproject.org>
Date: Mon, 26 May 2014 10:01:33 +0200
Subject: [PATCH] disable PSD import test which deadlocks on ARM
---
filter/Module_filter.mk | 1 -
1 file changed, 1 deletion(-)
diff --git a/filter/Module_filter.mk b/filter/Module_filter.mk
index 3558f44..3f3301f 100644
--- a/filter/Module_filter.mk
+++ b/filter/Module_filter.mk
@@ -87,7 +87,6 @@ $(eval $(call gb_Module_add_check_targets,filter,\
CppunitTest_filter_pcx_test \
CppunitTest_filter_pict_test \
CppunitTest_filter_ppm_test \
- CppunitTest_filter_psd_test \
CppunitTest_filter_ras_test \
CppunitTest_filter_tiff_test \
CppunitTest_filter_tga_test \
--
1.9.0

@ -1,77 +0,0 @@
From 2fb31f248fe86c52c1070cbc8b18b24872a4bedc Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Fri, 6 May 2016 09:33:37 +0200
Subject: [PATCH] improve perf. of VCL event dispatch, take II
Change-Id: I5052f0c3e2c8739b336da52ef9590e5008255247
---
vcl/inc/window.h | 2 ++
vcl/source/window/event.cxx | 15 ++++++++++++++-
vcl/source/window/window.cxx | 1 +
3 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index e06a6b1..302e9d0 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -201,6 +201,8 @@ public:
VclPtr<vcl::Window> mpLastFocusWindow;
VclPtr<vcl::Window> mpDlgCtrlDownWindow;
std::vector<Link<VclWindowEvent&,void>> maEventListeners;
+ int mnEventListenersIteratingCount;
+ std::set<Link<VclWindowEvent&,void>> maEventListenersDeleted;
std::vector<Link<VclWindowEvent&,void>> maChildEventListeners;
int mnChildEventListenersIteratingCount;
std::set<Link<VclWindowEvent&,void>> maChildEventListenersDeleted;
diff --git a/vcl/source/window/event.cxx b/vcl/source/window/event.cxx
index 10a85ed..c7d1777 100644
--- a/vcl/source/window/event.cxx
+++ b/vcl/source/window/event.cxx
@@ -216,11 +216,22 @@ void Window::CallEventListeners( sal_uLong nEvent, void* pData )
{
// Copy the list, because this can be destroyed when calling a Link...
std::vector<Link<VclWindowEvent&,void>> aCopy( mpWindowImpl->maEventListeners );
+ // we use an iterating counter/flag and a set of deleted Link's to avoid O(n^2) behaviour
+ mpWindowImpl->mnEventListenersIteratingCount++;
+ auto& rWindowImpl = *mpWindowImpl;
+ comphelper::ScopeGuard aGuard(
+ [&rWindowImpl]()
+ {
+ rWindowImpl.mnEventListenersIteratingCount--;
+ if (rWindowImpl.mnEventListenersIteratingCount == 0)
+ rWindowImpl.maEventListenersDeleted.clear();
+ }
+ );
for ( Link<VclWindowEvent&,void>& rLink : aCopy )
{
if (xWindow->IsDisposed()) break;
// check this hasn't been removed in some re-enterancy scenario fdo#47368
- if( std::find(mpWindowImpl->maEventListeners.begin(), mpWindowImpl->maEventListeners.end(), rLink) != mpWindowImpl->maEventListeners.end() )
+ if( rWindowImpl.maEventListenersDeleted.find(rLink) == rWindowImpl.maEventListenersDeleted.end() )
rLink.Call( aEvent );
}
}
@@ -279,6 +290,8 @@ void Window::RemoveEventListener( const Link<VclWindowEvent&,void>& rEventListen
{
auto& rListeners = mpWindowImpl->maEventListeners;
rListeners.erase( std::remove(rListeners.begin(), rListeners.end(), rEventListener ), rListeners.end() );
+ if (mpWindowImpl->mnEventListenersIteratingCount)
+ mpWindowImpl->maEventListenersDeleted.insert(rEventListener);
}
}
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index f245c47..d1c1ffe 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -615,6 +615,7 @@ WindowImpl::WindowImpl( WindowType nType )
mpNextOverlap = nullptr; // next overlap window of frame
mpLastFocusWindow = nullptr; // window for focus restore
mpDlgCtrlDownWindow = nullptr; // window for dialog control
+ mnEventListenersIteratingCount = 0;
mnChildEventListenersIteratingCount = 0;
mpUserData = nullptr; // user data
mpCursor = nullptr; // cursor
--
2.7.4

@ -1,54 +0,0 @@
From fd99dc83659b8c9e4dff9c55ed43c936f9a5b7fd Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Thu, 5 May 2016 17:47:03 +0200
Subject: [PATCH] only set cur. page once when removing mult. pages
Change-Id: Id9da135a91d9591eed04fb25d2891169c45ecaaf
---
.../ui/slidesorter/controller/SlsSelectionManager.cxx | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/sd/source/ui/slidesorter/controller/SlsSelectionManager.cxx b/sd/source/ui/slidesorter/controller/SlsSelectionManager.cxx
index a954aed..c861fbf 100644
--- a/sd/source/ui/slidesorter/controller/SlsSelectionManager.cxx
+++ b/sd/source/ui/slidesorter/controller/SlsSelectionManager.cxx
@@ -36,6 +36,9 @@
#include "view/SlideSorterView.hxx"
#include "view/SlsLayouter.hxx"
#include "drawdoc.hxx"
+#include "drawview.hxx"
+#include "DrawViewShell.hxx"
+#include "ViewShellBase.hxx"
#include "Window.hxx"
#include <svx/svxids.hrc>
#include <com/sun/star/drawing/XMasterPagesSupplier.hpp>
@@ -108,6 +111,13 @@ void SelectionManager::DeleteSelectedPages (const bool bSelectFollowingPage)
else
--nNewCurrentSlide;
+ const auto pViewShell = mrSlideSorter.GetViewShell();
+ const auto pDrawViewShell = pViewShell ? std::dynamic_pointer_cast<sd::DrawViewShell>(pViewShell->GetViewShellBase().GetMainViewShell()) : nullptr;
+ const auto pDrawView = pDrawViewShell ? dynamic_cast<sd::DrawView*>(pDrawViewShell->GetDrawView()) : nullptr;
+
+ if (pDrawView)
+ pDrawView->BlockPageOrderChangedHint(true);
+
// The actual deletion of the selected pages is done in one of two
// helper functions. They are specialized for normal respectively for
// master pages.
@@ -120,6 +130,12 @@ void SelectionManager::DeleteSelectedPages (const bool bSelectFollowingPage)
mrController.HandleModelChange();
aLock.Release();
+ if (pDrawView)
+ {
+ assert(pDrawViewShell);
+ pDrawView->BlockPageOrderChangedHint(false);
+ pDrawViewShell->ResetActualPage();
+ }
// Show focus and move it to next valid location.
if (bIsFocusShowing)
--
2.7.4

@ -1,26 +0,0 @@
From 590d80cea8fcd7c51140cff38392c4c180327330 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Fri, 22 Apr 2016 14:32:07 +0200
Subject: [PATCH] pass original CFLAGS
Change-Id: Ia37fa1ad21a9411d78b0c30c769b3934d43d1389
---
external/libxmlsec/ExternalProject_xmlsec.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/external/libxmlsec/ExternalProject_xmlsec.mk b/external/libxmlsec/ExternalProject_xmlsec.mk
index a22b426..6a81306 100644
--- a/external/libxmlsec/ExternalProject_xmlsec.mk
+++ b/external/libxmlsec/ExternalProject_xmlsec.mk
@@ -55,7 +55,7 @@ $(call gb_ExternalProject_get_state_target,xmlsec,build) :
autoreconf \
&& ./configure \
--with-pic --disable-shared --disable-crypto-dl --without-libxslt --without-gnutls \
- CFLAGS="$(if $(debug),$(gb_COMPILERNOOPTFLAGS) $(gb_DEBUG_CFLAGS),$(gb_COMPILEROPTFLAGS))" \
+ CFLAGS="$(CFLAGS) $(if $(debug),$(gb_COMPILERNOOPTFLAGS) $(gb_DEBUG_CFLAGS),$(gb_COMPILEROPTFLAGS))" \
$(if $(or $(filter-out ANDROID,$(OS)),$(DISABLE_OPENSSL)),--without-openssl,--with-openssl=$(call gb_UnpackedTarball_get_dir,openssl)) \
$(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
$(if $(SYSTEM_NSS),,$(if $(filter MACOSX,$(OS)),--disable-pkgconfig)) \
--
2.5.0

@ -1,296 +0,0 @@
From b876bbe2cacce8af379b10d82da6c7e7d229b361 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Tue, 26 Apr 2016 09:17:11 +0200
Subject: [PATCH] rhbz#1326602 avoid exp. bg bitmaps from deleted slides
ODF export uses SvxUnoBitmapTable (impl. of
com.sun.star.drawing.BitmapTable) to create fill bitmap styles. That
returns all XATTR_FILLBITMAP items that are in the document's pool. So
we ensure that bitmaps that are only used on deleted (either explicitly
or by undoing their insertion) slides are not in the pool.
Change-Id: I54c594a94989158f22b156fe660c1e716b988b3e
---
include/svx/svdundo.hxx | 9 ++++++
sd/source/ui/func/undoback.cxx | 43 ++++++++++++++++++++++++--
sd/source/ui/inc/undoback.hxx | 6 ++++
svx/source/svdraw/svdundo.cxx | 70 ++++++++++++++++++++++++++++++++++++++++++
4 files changed, 126 insertions(+), 2 deletions(-)
diff --git a/include/svx/svdundo.hxx b/include/svx/svdundo.hxx
index 5f3ee5f..dc09f22 100644
--- a/include/svx/svdundo.hxx
+++ b/include/svx/svdundo.hxx
@@ -22,6 +22,7 @@
#include <sal/config.h>
+#include <memory>
#include <vector>
#include <svl/solar.hrc>
@@ -33,6 +34,7 @@
#include <svx/svxdllapi.h>
class SfxItemSet;
+class SfxPoolItem;
class SfxStyleSheet;
class SdrView;
class SdrPageView;
@@ -584,6 +586,8 @@ class SVX_DLLPUBLIC SdrUndoDelPage : public SdrUndoPageList
// When deleting a MasterPage, we remember all relations of the
// Character Page with the MasterPage in this UndoGroup.
SdrUndoGroup* pUndoGroup;
+ std::unique_ptr<SfxPoolItem> mpFillBitmapItem;
+ bool mbHasFillBitmap;
public:
SdrUndoDelPage(SdrPage& rNewPg);
@@ -597,6 +601,11 @@ public:
virtual void SdrRepeat(SdrView& rView) override;
virtual bool CanSdrRepeat(SdrView& rView) const override;
+
+private:
+ void queryFillBitmap(const SfxItemSet &rItemSet);
+ void clearFillBitmap();
+ void restoreFillBitmap();
};
/**
diff --git a/sd/source/ui/func/undoback.cxx b/sd/source/ui/func/undoback.cxx
index 126101f..704b551 100644
--- a/sd/source/ui/func/undoback.cxx
+++ b/sd/source/ui/func/undoback.cxx
@@ -21,8 +21,14 @@
#include "sdpage.hxx"
#include "sdresid.hxx"
#include "strings.hrc"
+
+#include <com/sun/star/drawing/FillStyle.hpp>
+
+#include <o3tl/make_unique.hxx>
+
#include <svl/itemset.hxx>
+#include <svx/xfillit0.hxx>
SdBackgroundObjUndoAction::SdBackgroundObjUndoAction(
SdDrawDocument& rDoc,
@@ -30,10 +36,12 @@ SdBackgroundObjUndoAction::SdBackgroundObjUndoAction(
const SfxItemSet& rItenSet)
: SdUndoAction(&rDoc),
mrPage(rPage),
- mpItemSet(new SfxItemSet(rItenSet))
+ mpItemSet(new SfxItemSet(rItenSet)),
+ mbHasFillBitmap(false)
{
OUString aString( SdResId( STR_UNDO_CHANGE_PAGEFORMAT ) );
SetComment( aString );
+ saveFillBitmap(*mpItemSet);
}
SdBackgroundObjUndoAction::~SdBackgroundObjUndoAction()
@@ -45,9 +53,14 @@ void SdBackgroundObjUndoAction::ImplRestoreBackgroundObj()
{
SfxItemSet* pNew = new SfxItemSet(mrPage.getSdrPageProperties().GetItemSet());
mrPage.getSdrPageProperties().ClearItem();
+ if (bool(mpFillBitmapItem))
+ restoreFillBitmap(*mpItemSet);
+ mpFillBitmapItem.reset();
+ mbHasFillBitmap = false;
mrPage.getSdrPageProperties().PutItemSet(*mpItemSet);
delete mpItemSet;
mpItemSet = pNew;
+ saveFillBitmap(*mpItemSet);
// tell the page that it's visualization has changed
mrPage.ActionChanged();
@@ -65,7 +78,33 @@ void SdBackgroundObjUndoAction::Redo()
SdUndoAction* SdBackgroundObjUndoAction::Clone() const
{
- return new SdBackgroundObjUndoAction(*mpDoc, mrPage, *mpItemSet);
+ std::unique_ptr<SdBackgroundObjUndoAction> pCopy = o3tl::make_unique<SdBackgroundObjUndoAction>(*mpDoc, mrPage, *mpItemSet);
+ if (mpFillBitmapItem)
+ pCopy->mpFillBitmapItem.reset(mpFillBitmapItem->Clone());
+ pCopy->mbHasFillBitmap = mbHasFillBitmap;
+ return pCopy.release();
+}
+
+void SdBackgroundObjUndoAction::saveFillBitmap(SfxItemSet &rItemSet)
+{
+ const SfxPoolItem *pItem = nullptr;
+ if (rItemSet.GetItemState(XATTR_FILLBITMAP, false, &pItem) == SfxItemState::SET)
+ mpFillBitmapItem.reset(pItem->Clone());
+ if (bool(mpFillBitmapItem))
+ {
+ if (rItemSet.GetItemState(XATTR_FILLSTYLE, false, &pItem) == SfxItemState::SET)
+ mbHasFillBitmap = static_cast<const XFillStyleItem*>(pItem)->GetValue() == css::drawing::FillStyle_BITMAP;
+ rItemSet.ClearItem(XATTR_FILLBITMAP);
+ if (mbHasFillBitmap)
+ rItemSet.ClearItem(XATTR_FILLSTYLE);
+ }
+}
+
+void SdBackgroundObjUndoAction::restoreFillBitmap(SfxItemSet &rItemSet)
+{
+ rItemSet.Put(*mpFillBitmapItem);
+ if (mbHasFillBitmap)
+ rItemSet.Put(XFillStyleItem(css::drawing::FillStyle_BITMAP));
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/inc/undoback.hxx b/sd/source/ui/inc/undoback.hxx
index 3b1553b..35370ca 100644
--- a/sd/source/ui/inc/undoback.hxx
+++ b/sd/source/ui/inc/undoback.hxx
@@ -20,11 +20,13 @@
#ifndef INCLUDED_SD_SOURCE_UI_INC_UNDOBACK_HXX
#define INCLUDED_SD_SOURCE_UI_INC_UNDOBACK_HXX
+#include <memory>
#include "sdundo.hxx"
class SdDrawDocument;
class SdPage;
class SfxItemSet;
+class SfxPoolItem;
// SdBackgroundObjUndoAction
class SdBackgroundObjUndoAction : public SdUndoAction
@@ -33,8 +35,12 @@ private:
SdPage& mrPage;
SfxItemSet* mpItemSet;
+ std::unique_ptr<SfxPoolItem> mpFillBitmapItem;
+ bool mbHasFillBitmap;
void ImplRestoreBackgroundObj();
+ void saveFillBitmap(SfxItemSet &rItemSet);
+ void restoreFillBitmap(SfxItemSet &rItemSet);
public:
diff --git a/svx/source/svdraw/svdundo.cxx b/svx/source/svdraw/svdundo.cxx
index e3cc478..675edb8 100644
--- a/svx/source/svdraw/svdundo.cxx
+++ b/svx/source/svdraw/svdundo.cxx
@@ -17,6 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <com/sun/star/drawing/FillStyle.hpp>
#include <svl/lstner.hxx>
@@ -27,6 +28,7 @@
#include <svx/svdlayer.hxx>
#include <svx/svdmodel.hxx>
#include <svx/svdview.hxx>
+#include <svx/xfillit0.hxx>
#include "svx/svdstr.hrc"
#include "svdglob.hxx"
#include <svx/scene3d.hxx>
@@ -1445,9 +1447,24 @@ SdrUndoPageList::~SdrUndoPageList()
SdrUndoDelPage::SdrUndoDelPage(SdrPage& rNewPg)
: SdrUndoPageList(rNewPg)
, pUndoGroup(nullptr)
+ , mbHasFillBitmap(false)
{
bItsMine = true;
+ // keep fill bitmap separately to remove it from pool if not used elsewhere
+ if (mrPage.IsMasterPage())
+ {
+ SfxStyleSheet* const pStyleSheet = mrPage.getSdrPageProperties().GetStyleSheet();
+ if (pStyleSheet)
+ queryFillBitmap(pStyleSheet->GetItemSet());
+ }
+ else
+ {
+ queryFillBitmap(mrPage.getSdrPageProperties().GetItemSet());
+ }
+ if (bool(mpFillBitmapItem))
+ clearFillBitmap();
+
// now remember the master page relationships
if(mrPage.IsMasterPage())
{
@@ -1482,6 +1499,8 @@ SdrUndoDelPage::~SdrUndoDelPage()
void SdrUndoDelPage::Undo()
{
+ if (bool(mpFillBitmapItem))
+ restoreFillBitmap();
ImpInsertPage(nPageNum);
if (pUndoGroup!=nullptr)
{
@@ -1495,6 +1514,8 @@ void SdrUndoDelPage::Undo()
void SdrUndoDelPage::Redo()
{
ImpRemovePage(nPageNum);
+ if (bool(mpFillBitmapItem))
+ clearFillBitmap();
// master page relations are dissolved automatically
DBG_ASSERT(!bItsMine,"RedoDeletePage: mrPage already belongs to UndoAction.");
bItsMine=true;
@@ -1523,6 +1544,55 @@ bool SdrUndoDelPage::CanSdrRepeat(SdrView& /*rView*/) const
return false;
}
+void SdrUndoDelPage::queryFillBitmap(const SfxItemSet& rItemSet)
+{
+ const SfxPoolItem *pItem = nullptr;
+ if (rItemSet.GetItemState(XATTR_FILLBITMAP, false, &pItem) == SfxItemState::SET)
+ mpFillBitmapItem.reset(pItem->Clone());
+ if (rItemSet.GetItemState(XATTR_FILLSTYLE, false, &pItem) == SfxItemState::SET)
+ mbHasFillBitmap = static_cast<const XFillStyleItem*>(pItem)->GetValue() == css::drawing::FillStyle_BITMAP;
+}
+
+void SdrUndoDelPage::clearFillBitmap()
+{
+ if (mrPage.IsMasterPage())
+ {
+ SfxStyleSheet* const pStyleSheet = mrPage.getSdrPageProperties().GetStyleSheet();
+ assert(bool(pStyleSheet)); // who took away my stylesheet?
+ SfxItemSet& rItemSet = pStyleSheet->GetItemSet();
+ rItemSet.ClearItem(XATTR_FILLBITMAP);
+ if (mbHasFillBitmap)
+ rItemSet.ClearItem(XATTR_FILLSTYLE);
+ }
+ else
+ {
+ SdrPageProperties &rPageProps = mrPage.getSdrPageProperties();
+ rPageProps.ClearItem(XATTR_FILLBITMAP);
+ if (mbHasFillBitmap)
+ rPageProps.ClearItem(XATTR_FILLSTYLE);
+ }
+}
+
+void SdrUndoDelPage::restoreFillBitmap()
+{
+ if (mrPage.IsMasterPage())
+ {
+ SfxStyleSheet* const pStyleSheet = mrPage.getSdrPageProperties().GetStyleSheet();
+ assert(bool(pStyleSheet)); // who took away my stylesheet?
+ SfxItemSet& rItemSet = pStyleSheet->GetItemSet();
+ rItemSet.Put(*mpFillBitmapItem);
+ if (mbHasFillBitmap)
+ rItemSet.Put(XFillStyleItem(css::drawing::FillStyle_BITMAP));
+ }
+ else
+ {
+ SdrPageProperties &rPageProps = mrPage.getSdrPageProperties();
+ rPageProps.PutItem(*mpFillBitmapItem);
+ if (mbHasFillBitmap)
+ rPageProps.PutItem(XFillStyleItem(css::drawing::FillStyle_BITMAP));
+ }
+}
+
void SdrUndoNewPage::Undo()
{
--
2.7.4

@ -1,26 +0,0 @@
From 03701c986cd1082c5cd9aea7b479811c7a079bca Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Mon, 16 May 2016 14:52:47 +0200
Subject: [PATCH] rhbz#1327847 emit .desktop trans. in predictable order
Change-Id: Ib07e27a9df6a08868ea505e141e2526435d2a0ef
---
solenv/bin/desktop-translate.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/solenv/bin/desktop-translate.pl b/solenv/bin/desktop-translate.pl
index 0680431..259e7da 100644
--- a/solenv/bin/desktop-translate.pl
+++ b/solenv/bin/desktop-translate.pl
@@ -144,7 +144,7 @@ foreach $template (keys %templates) {
print OUTFILE $keyline;
if (/$key/) {
my $translations = $templates{$template}->{'translations'};
- foreach my $locale (keys %{$translations}) {
+ foreach my $locale (sort (keys %{$translations})) {
my $value = $translations->{$locale};
# print "locale is $locale\n";
# print "value is $value\n";
--
2.7.4

@ -1,44 +0,0 @@
From 390ddd3bde617388e481b6747aa7bbea17d5ddf1 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Tue, 3 May 2016 14:49:34 +0200
Subject: [PATCH] tdf#99353 take the footgun away from FilterCache
FilterCache::impl_saveItem changes the properties of a config. item
one-by-one. But it also listens to the configuration changes and reloads
the whole item from the configuration on change...
Change-Id: I9e4ed1c6b013925d07f0942717fe3421f924279d
---
filter/source/config/cache/filtercache.cxx | 2 +-
filter/source/config/cache/filtercache.hxx | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/filter/source/config/cache/filtercache.cxx b/filter/source/config/cache/filtercache.cxx
index b9d15cf..6f5616d 100644
--- a/filter/source/config/cache/filtercache.cxx
+++ b/filter/source/config/cache/filtercache.cxx
@@ -1786,7 +1786,7 @@ CacheItemList::iterator FilterCache::impl_loadItemOnDemand( EItemType
void FilterCache::impl_saveItem(const css::uno::Reference< css::container::XNameReplace >& xItem,
EItemType eType,
- const CacheItem& aItem)
+ const CacheItem aItem)
throw(css::uno::Exception)
{
CacheItem::const_iterator pIt;
diff --git a/filter/source/config/cache/filtercache.hxx b/filter/source/config/cache/filtercache.hxx
index 93c8d78..4f8b063 100644
--- a/filter/source/config/cache/filtercache.hxx
+++ b/filter/source/config/cache/filtercache.hxx
@@ -809,7 +809,7 @@ class FilterCache : public BaseLock
/** TODO */
static void impl_saveItem(const css::uno::Reference< css::container::XNameReplace >& xSet ,
EItemType eType ,
- const CacheItem& aValue)
+ const CacheItem aValue)
throw(css::uno::Exception);
--
2.7.4

@ -3,7 +3,7 @@
# Should contain .alphaX / .betaX, if this is pre-release (actually
# pre-RC) version. The pre-release string is part of tarball file names,
# so we need a way to define it easily at one place.
%define libo_prerelease .alpha1
%define libo_prerelease .beta1
# Should contain any suffix of release tarball name, e.g., -buildfix1.
%define libo_buildfix %{nil}
# rhbz#715152 state vendor
@ -55,7 +55,7 @@ Summary: Free Software Productivity Suite
Name: libreoffice
Epoch: 1
Version: %{libo_version}.0
Release: 6%{?libo_prerelease}%{?dist}
Release: 7%{?libo_prerelease}%{?dist}
License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0 and CC0
URL: http://www.libreoffice.org/
@ -233,17 +233,6 @@ Patch4: 0001-disable-firebird-unit-test.patch
Patch5: 0001-never-run-autogen.sh.patch
# not upstreamed
Patch6: 0001-add-X-TryExec-entries-to-desktop-files.patch
Patch7: 0001-pass-original-CFLAGS.patch
Patch8: 0001-rbhz-1326602-avoid-exp.-bg-bitmaps-from-deleted-slid.patch
Patch9: 0001-tdf-99353-take-the-footgun-away-from-FilterCache.patch
Patch10: 0001-only-set-cur.-page-once-when-removing-mult.-pages.patch
Patch11: 0001-improve-perf.-of-VCL-event-dispatch-take-II.patch
Patch12: 0001-Resolves-tdf-99730-lower-the-barrier-for-inferior-sy.patch
Patch13: 0001-rhbz-1327847-emit-.desktop-trans.-in-predictable-ord.patch
%if ! 0%{?rhel}
Patch400: 0001-Update-mdds-to-1.2.0.-Note-that-the-API-version-is-a.patch
%endif
%if 0%{?rhel}
# not upstreamed
@ -2244,6 +2233,9 @@ done
%endif
%changelog
* Thu May 26 2016 David Tardon <dtardon@redhat.com> - 1:5.2.0.0-7.beta1
- update to 5.2.0 beta1
* Mon May 16 2016 David Tardon <dtardon@redhat.com> - 1:5.2.0.0-6.alpha1-UNBUILT
- Resolves: rhbz#1327847 remove multilib conflicts in .desktop files

@ -6,7 +6,7 @@ a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.
0168229624cfac409e766913506961a8 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
12fb8b5b0d5132726e57b9b9fc7e22c4 libreoffice-multiliblauncher.sh
4b87018f7fff1d054939d19920b751a0 4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2
ba58bf0be24ef20e3e77d19e595c5e3d libreoffice-5.2.0.0.alpha1.tar.xz
4d71c1d2d265a022eb522be9de7ef62e libreoffice-help-5.2.0.0.alpha1.tar.xz
e5fac1dd61b67cbb0c38c427023a4907 libreoffice-translations-5.2.0.0.alpha1.tar.xz
ce12af00283eb90d9281956524250d6e ce12af00283eb90d9281956524250d6e-xmlsec1-1.2.20.tar.gz
33371d32594fc54dcb5ecd2dad51d6e5 libreoffice-5.2.0.0.beta1.tar.xz
a667b24fc7f830587673cf4f6c5cec9d libreoffice-help-5.2.0.0.beta1.tar.xz
4951526c374d3c49a01e2609908e503e libreoffice-translations-5.2.0.0.beta1.tar.xz

Loading…
Cancel
Save