update to 4.3.0 beta1

f41
David Tardon 11 years ago
parent bb34c7aec8
commit ca8f0c16f9

8
.gitignore vendored

@ -16,15 +16,20 @@
/47203e7cade74e5c385aa812f21e7932-mdds_0.10.2.tar.bz2
/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz
/4ceb9316488b0ea01acf011023cf7fff-raptor2-2.0.9.tar.gz
/594eb47b4b1210e25438d51825404d5a-glew-1.10.0.zip
/7681383be6ce489d84c1c74f4e7f9643-liborcus-0.7.0.tar.bz2
/861ef15fa0bc018f9ddc932c4ad8b6dd-lcms2-2.4.tar.gz
/a3dcac551fae5ebbec16e844810828c4-libwpd-0.9.9.tar.bz2
/aa5ca9d1ed1082890835afab26400a39-mdds_0.10.3.tar.bz2
/ae330b9493bd4503ac390106ff6060d7-libexttextcat-3.4.3.tar.bz2
/b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.tar.gz
/b85436266b2ac91d351ab5684b181151-libwpg-0.2.2.tar.bz2
/d6eef4b4cacb2183f2bf265a5a03a354-boost_1_55_0.tar.bz2
/ea2acaf140ae40a87a952caa75184f4d-liborcus-0.5.1.tar.bz2
/Firebird-2.5.2.26540-0.tar.bz2
/harfbuzz-0.9.23.tar.bz2
/language-subtag-registry-2014-03-27.tar.bz2
/lcms2-2.6.tar.gz
/libabw-0.0.2.tar.bz2
/libatomic_ops-7_2d.zip
/libcdr-0.0.15.tar.bz2
@ -42,3 +47,6 @@
/libreoffice-4.2.4.2.tar.xz
/libreoffice-help-4.2.4.2.tar.xz
/libreoffice-translations-4.2.4.2.tar.xz
/libreoffice-4.3.0.0.beta1.tar.xz
/libreoffice-help-4.3.0.0.beta1.tar.xz
/libreoffice-translations-4.3.0.0.beta1.tar.xz

@ -1,209 +0,0 @@
From a59e5ecd611ddd41cec6d9c78773f55887df67e6 Mon Sep 17 00:00:00 2001
From: Stephan Bergmann <sbergman@redhat.com>
Date: Tue, 25 Feb 2014 15:44:16 +0100
Subject: [PATCH] Change SDK javaodc from static Package to dynamic
GeneratedPackage
...as e.g. the list of resrouces/*.gif apparently varies per javadoc version.
Change-Id: Idcf95229295c1c5cd16e565bcd168c1a0e7d4f0c
---
odk/GeneratedPackage_odk_javadoc.mk | 16 ++++
odk/Module_odk.mk | 2 +-
odk/Package_javadoc.mk | 146 ------------------------------------
3 files changed, 17 insertions(+), 147 deletions(-)
create mode 100644 odk/GeneratedPackage_odk_javadoc.mk
delete mode 100644 odk/Package_javadoc.mk
diff --git a/odk/GeneratedPackage_odk_javadoc.mk b/odk/GeneratedPackage_odk_javadoc.mk
new file mode 100644
index 0000000..569377b
--- /dev/null
+++ b/odk/GeneratedPackage_odk_javadoc.mk
@@ -0,0 +1,16 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# 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/.
+#
+
+$(eval $(call gb_GeneratedPackage_GeneratedPackage,odk_javadoc,$(call gb_CustomTarget_get_workdir,odk/docs/java/ref)))
+
+$(eval $(call gb_GeneratedPackage_add_dir,odk_javadoc,$(INSTDIR)/$(SDKDIRNAME)/docs/java/ref,.))
+
+$(eval $(call gb_GeneratedPackage_use_customtarget,odk_javadoc,odk/docs/java/ref))
+
+# vim: set noet sw=4 ts=4:
diff --git a/odk/Module_odk.mk b/odk/Module_odk.mk
index 9ddc400..32bdfc1 100644
--- a/odk/Module_odk.mk
+++ b/odk/Module_odk.mk
@@ -44,9 +44,9 @@ $(eval $(call gb_Module_add_targets,odk,\
$(if $(filter YESGCC,$(BUILD_UNOWINREG)$(COM)),CustomTarget_unowinreg) \
CustomTarget_classes \
CustomTarget_javadoc \
+ GeneratedPackage_odk_javadoc \
GeneratedPackage_uno_loader_classes \
$(if $(filter WNT,$(OS)),Library_unowinreg) \
- Package_javadoc \
Package_unowinreg \
))
endif
diff --git a/odk/Package_javadoc.mk b/odk/Package_javadoc.mk
deleted file mode 100644
index 5f0ea44..0000000
--- a/odk/Package_javadoc.mk
+++ /dev/null
@@ -1,146 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# 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/.
-#
-
-$(eval $(call gb_Package_Package,odk_javadoc,$(call gb_CustomTarget_get_workdir,odk/docs/java/ref)))
-
-$(eval $(call gb_Package_set_outdir,odk_javadoc,$(INSTDIR)))
-
-$(eval $(call gb_Package_add_files_with_dir,odk_javadoc,$(SDKDIRNAME)/docs/java/ref,\
- allclasses-frame.html \
- allclasses-noframe.html \
- com/sun/star/comp/helper/Bootstrap.html \
- com/sun/star/comp/helper/BootstrapException.html \
- com/sun/star/comp/helper/ComponentContext.html \
- com/sun/star/comp/helper/ComponentContextEntry.html \
- com/sun/star/comp/helper/SharedLibraryLoader.html \
- com/sun/star/comp/helper/class-use/Bootstrap.html \
- com/sun/star/comp/helper/class-use/BootstrapException.html \
- com/sun/star/comp/helper/class-use/ComponentContext.html \
- com/sun/star/comp/helper/class-use/ComponentContextEntry.html \
- com/sun/star/comp/helper/class-use/SharedLibraryLoader.html \
- com/sun/star/comp/helper/package-frame.html \
- com/sun/star/comp/helper/package-summary.html \
- com/sun/star/comp/helper/package-tree.html \
- com/sun/star/comp/helper/package-use.html \
- com/sun/star/lib/uno/helper/ComponentBase.html \
- com/sun/star/lib/uno/helper/Factory.html \
- com/sun/star/lib/uno/helper/InterfaceContainer.html \
- com/sun/star/lib/uno/helper/MultiTypeInterfaceContainer.html \
- com/sun/star/lib/uno/helper/PropertySet.html \
- com/sun/star/lib/uno/helper/PropertySetMixin.BoundListeners.html \
- com/sun/star/lib/uno/helper/PropertySetMixin.html \
- com/sun/star/lib/uno/helper/UnoUrl.html \
- com/sun/star/lib/uno/helper/WeakAdapter.html \
- com/sun/star/lib/uno/helper/WeakBase.html \
- com/sun/star/lib/uno/helper/class-use/ComponentBase.html \
- com/sun/star/lib/uno/helper/class-use/Factory.html \
- com/sun/star/lib/uno/helper/class-use/InterfaceContainer.html \
- com/sun/star/lib/uno/helper/class-use/MultiTypeInterfaceContainer.html \
- com/sun/star/lib/uno/helper/class-use/PropertySet.html \
- com/sun/star/lib/uno/helper/class-use/PropertySetMixin.BoundListeners.html \
- com/sun/star/lib/uno/helper/class-use/PropertySetMixin.html \
- com/sun/star/lib/uno/helper/class-use/UnoUrl.html \
- com/sun/star/lib/uno/helper/class-use/WeakAdapter.html \
- com/sun/star/lib/uno/helper/class-use/WeakBase.html \
- com/sun/star/lib/uno/helper/package-frame.html \
- com/sun/star/lib/uno/helper/package-summary.html \
- com/sun/star/lib/uno/helper/package-tree.html \
- com/sun/star/lib/uno/helper/package-use.html \
- com/sun/star/lib/unoloader/UnoClassLoader.html \
- com/sun/star/lib/unoloader/UnoLoader.html \
- com/sun/star/lib/unoloader/class-use/UnoClassLoader.html \
- com/sun/star/lib/unoloader/class-use/UnoLoader.html \
- com/sun/star/lib/unoloader/package-frame.html \
- com/sun/star/lib/unoloader/package-summary.html \
- com/sun/star/lib/unoloader/package-tree.html \
- com/sun/star/lib/unoloader/package-use.html \
- com/sun/star/lib/util/UrlToFileMapper.html \
- com/sun/star/lib/util/class-use/UrlToFileMapper.html \
- com/sun/star/lib/util/package-frame.html \
- com/sun/star/lib/util/package-summary.html \
- com/sun/star/lib/util/package-tree.html \
- com/sun/star/lib/util/package-use.html \
- com/sun/star/uno/Any.html \
- com/sun/star/uno/AnyConverter.html \
- com/sun/star/uno/Ascii.html \
- com/sun/star/uno/AsciiString.html \
- com/sun/star/uno/Enum.html \
- com/sun/star/uno/IBridge.html \
- com/sun/star/uno/IEnvironment.html \
- com/sun/star/uno/IFieldDescription.html \
- com/sun/star/uno/IMapping.html \
- com/sun/star/uno/IMemberDescription.html \
- com/sun/star/uno/IMethodDescription.html \
- com/sun/star/uno/IQueryInterface.html \
- com/sun/star/uno/ITypeDescription.html \
- com/sun/star/uno/MappingException.html \
- com/sun/star/uno/Type.html \
- com/sun/star/uno/Union.html \
- com/sun/star/uno/UnoRuntime.html \
- com/sun/star/uno/WeakReference.html \
- com/sun/star/uno/class-use/Any.html \
- com/sun/star/uno/class-use/AnyConverter.html \
- com/sun/star/uno/class-use/Ascii.html \
- com/sun/star/uno/class-use/AsciiString.html \
- com/sun/star/uno/class-use/Enum.html \
- com/sun/star/uno/class-use/IBridge.html \
- com/sun/star/uno/class-use/IEnvironment.html \
- com/sun/star/uno/class-use/IFieldDescription.html \
- com/sun/star/uno/class-use/IMapping.html \
- com/sun/star/uno/class-use/IMemberDescription.html \
- com/sun/star/uno/class-use/IMethodDescription.html \
- com/sun/star/uno/class-use/IQueryInterface.html \
- com/sun/star/uno/class-use/ITypeDescription.html \
- com/sun/star/uno/class-use/MappingException.html \
- com/sun/star/uno/class-use/Type.html \
- com/sun/star/uno/class-use/Union.html \
- com/sun/star/uno/class-use/UnoRuntime.html \
- com/sun/star/uno/class-use/WeakReference.html \
- com/sun/star/uno/package-frame.html \
- com/sun/star/uno/package-summary.html \
- com/sun/star/uno/package-tree.html \
- com/sun/star/uno/package-use.html \
- constant-values.html \
- deprecated-list.html \
- help-doc.html \
- index-files/index-1.html \
- index-files/index-10.html \
- index-files/index-11.html \
- index-files/index-12.html \
- index-files/index-13.html \
- index-files/index-14.html \
- index-files/index-15.html \
- index-files/index-16.html \
- index-files/index-17.html \
- index-files/index-18.html \
- index-files/index-19.html \
- index-files/index-2.html \
- index-files/index-20.html \
- index-files/index-21.html \
- index-files/index-3.html \
- index-files/index-4.html \
- index-files/index-5.html \
- index-files/index-6.html \
- index-files/index-7.html \
- index-files/index-8.html \
- index-files/index-9.html \
- index.html \
- overview-frame.html \
- overview-summary.html \
- overview-tree.html \
- package-list \
- resources/background.gif \
- resources/tab.gif \
- resources/titlebar.gif \
- resources/titlebar_end.gif \
- serialized-form.html \
- stylesheet.css \
-))
-
-# vim: set noet sw=4 ts=4:
--
1.9.0

@ -1,51 +0,0 @@
From e44a7eefb7f632977b4c8c91ad14244372c6e04d Mon Sep 17 00:00:00 2001
From: Maxim Monastirsky <momonasmon@gmail.com>
Date: Wed, 26 Feb 2014 17:02:38 +0200
Subject: [PATCH] KDE: don't throw on TemplatePathVariable
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is required after commit
838b77f5f3d6d8fd98891e99a23ff78a6a357cb2.
Actual functionality is still missing.
Change-Id: Ib94d8a982609de730d9c61bf7bf9886093c51f5b
Reviewed-on: https://gerrit.libreoffice.org/8367
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
---
shell/source/backends/kde4be/kde4backend.cxx | 2 +-
shell/source/backends/kdebe/kdebackend.cxx | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/shell/source/backends/kde4be/kde4backend.cxx b/shell/source/backends/kde4be/kde4backend.cxx
index bf12683..1d486e4 100644
--- a/shell/source/backends/kde4be/kde4backend.cxx
+++ b/shell/source/backends/kde4be/kde4backend.cxx
@@ -172,7 +172,7 @@ css::uno::Any Service::getPropertyValue(OUString const & PropertyName)
|| PropertyName == "SourceViewFontName" || PropertyName == "WorkPathVariable" || PropertyName == "ooInetFTPProxyName"
|| PropertyName == "ooInetFTPProxyPort" || PropertyName == "ooInetHTTPProxyName" || PropertyName == "ooInetHTTPProxyPort"
|| PropertyName == "ooInetHTTPSProxyName" || PropertyName == "ooInetHTTPSProxyPort" || PropertyName == "ooInetNoProxy"
- || PropertyName == "ooInetProxyType" )
+ || PropertyName == "ooInetProxyType" || PropertyName == "TemplatePathVariable" )
{
return css::uno::makeAny(
enabled_
diff --git a/shell/source/backends/kdebe/kdebackend.cxx b/shell/source/backends/kdebe/kdebackend.cxx
index 8089632..08915e8 100644
--- a/shell/source/backends/kdebe/kdebackend.cxx
+++ b/shell/source/backends/kdebe/kdebackend.cxx
@@ -172,7 +172,7 @@ css::uno::Any Service::getPropertyValue(OUString const & PropertyName)
|| PropertyName == "SourceViewFontName" || PropertyName == "WorkPathVariable" || PropertyName == "ooInetFTPProxyName"
|| PropertyName == "ooInetFTPProxyPort" || PropertyName == "ooInetHTTPProxyName" || PropertyName == "ooInetHTTPProxyPort"
|| PropertyName == "ooInetHTTPSProxyName" || PropertyName == "ooInetHTTPSProxyPort" || PropertyName == "ooInetNoProxy"
- || PropertyName == "ooInetProxyType" )
+ || PropertyName == "ooInetProxyType" || PropertyName == "TemplatePathVariable" )
{
return css::uno::makeAny(
enabled_
--
1.8.5.3

@ -1,26 +0,0 @@
From c17e40a9b712142c268e0f57fe2e092350d2f2c0 Mon Sep 17 00:00:00 2001
From: Stephan Bergmann <sbergman@redhat.com>
Date: Tue, 25 Feb 2014 16:03:21 +0100
Subject: [PATCH] Package -> GeneratedPackage fixup
Change-Id: Ib6e7a456b2f39c47da44552184669005d18d4fa4
---
odk/CustomTarget_check.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/odk/CustomTarget_check.mk b/odk/CustomTarget_check.mk
index 88af63a..175d44d 100644
--- a/odk/CustomTarget_check.mk
+++ b/odk/CustomTarget_check.mk
@@ -38,7 +38,7 @@ $(call gb_CustomTarget_get_workdir,odk/check)/checkbin : \
) \
$(call gb_Package_get_target,odk_docs) \
$(call gb_Package_get_target,odk_html) \
- $(if $(ENABLE_JAVA),$(call gb_Package_get_target,odk_javadoc)) \
+ $(if $(ENABLE_JAVA),$(call gb_GeneratedPackage_get_target,odk_javadoc)) \
$(call gb_Package_get_target,odk_lib) \
$(call gb_Package_get_target,odk_settings) \
$(call gb_Package_get_target,odk_settings_generated) \
--
1.9.0

@ -1,104 +0,0 @@
From 9fd97266ce7dbeac33c93b6dace69d64c02d222c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Wed, 23 Apr 2014 15:22:13 +0100
Subject: [PATCH] Related: fdo#36815 center scaled comment page vertically
so comments at the top of the page don't get clipped
off the true printable area
Change-Id: Icb796c901372437b276e7ce4e31c08e0bf2ec250
---
sw/source/core/view/vprint.cxx | 56 +++++++++++++++---------------------------
1 file changed, 20 insertions(+), 36 deletions(-)
diff --git a/sw/source/core/view/vprint.cxx b/sw/source/core/view/vprint.cxx
index b680e52..0022fff 100644
--- a/sw/source/core/view/vprint.cxx
+++ b/sw/source/core/view/vprint.cxx
@@ -455,26 +455,6 @@ sal_Bool SwViewShell::PrintOrPDFExport(
// output device is now provided by a call from outside the Writer)
pOutDev->Push();
- // fdo#36815 for comments in margins print to a metafile
- // and then scale that metafile down so that the comments
- // will fit on the real page, and replay that scaled
- // output to the real outputdevice
- GDIMetaFile *pOrigRecorder(NULL);
- GDIMetaFile *pMetaFile(NULL);
- sal_Int16 nPostItMode = rPrintData.GetPrintPostIts();
- if (nPostItMode == POSTITS_INMARGINS)
- {
- //get and disable the existing recorder
- pOrigRecorder = pOutDev->GetConnectMetaFile();
- pOutDev->SetConnectMetaFile(NULL);
- // turn off output to the device
- pOutDev->EnableOutput(false);
- // just record the rendering commands to the metafile
- // instead
- pMetaFile = new GDIMetaFile;
- pMetaFile->Record(pOutDev);
- }
-
// Print/PDF export for (multi-)selection has already generated a
// temporary document with the selected text.
// (see XRenderable implementation in unotxdoc.cxx)
@@ -490,6 +470,8 @@ sal_Bool SwViewShell::PrintOrPDFExport(
pDrawView->SetBufferedOverlayAllowed( false );
}
+ sal_Int16 nPostItMode = rPrintData.GetPrintPostIts();
+
{ // additional scope so that the CurrShell is reset before destroying the shell
SET_CURR_SHELL( pShell );
@@ -537,22 +519,6 @@ sal_Bool SwViewShell::PrintOrPDFExport(
pPostItManager->CalcRects();
pPostItManager->LayoutPostIts();
pPostItManager->DrawNotesForPage(pOutDev, nPage-1);
-
- //Now scale the recorded page down so the notes
- //will fit in the final page
- pMetaFile->Stop();
- pMetaFile->WindStart();
- double fScale = 0.75;
- pMetaFile->Scale( fScale, fScale );
- pMetaFile->WindStart();
-
- //Enable output the the device again
- pOutDev->EnableOutput(true);
- //Restore the original recorder
- pOutDev->SetConnectMetaFile(pOrigRecorder);
- //play back the scaled page
- pMetaFile->Play(pOutDev);
- delete pMetaFile;
}
}
@@ -562,6 +528,24 @@ sal_Bool SwViewShell::PrintOrPDFExport(
// output device is now provided by a call from outside the Writer)
pOutDev->Pop();
+ // fdo#36815 for comments in margins get the metafile we are printing to
+ // and then scale and vertically center that metafile down so that the
+ // comments will fit on the real page
+ GDIMetaFile *pRecorder = pOutDev->GetConnectMetaFile();
+ if (nPostItMode == POSTITS_INMARGINS && pRecorder)
+ {
+ pRecorder->Stop();
+ pRecorder->WindStart();
+ double fScale = 0.75;
+ long nOrigHeight = pOutDev->GetOutputSize().Height();
+ long nNewHeight = nOrigHeight*fScale;
+ long nShiftY = (nOrigHeight-nNewHeight)/2;
+ pRecorder->Scale(fScale, fScale);
+ pRecorder->WindStart();
+ pRecorder->Move(0, nShiftY, pOutDev->ImplGetDPIX(), pOutDev->ImplGetDPIY());
+ pRecorder->WindStart();
+ }
+
return sal_True;
}
--
1.9.0

@ -1,102 +0,0 @@
From 0709713ad7ee0fa26b2a4f12720834e47e5dd681 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 6 May 2014 15:56:23 +0100
Subject: [PATCH] Related: fdo#36815 clip overlarge comment contents
and add an indicator that the comment won't fit in the space available
Change-Id: I8dce7dfa678a606e8c4532addc4ba70c2a43644e
---
sw/source/ui/docvw/SidebarTxtControl.cxx | 23 ++++-------------------
sw/source/ui/docvw/SidebarWin.cxx | 31 ++++++++++++++++++++++---------
2 files changed, 26 insertions(+), 28 deletions(-)
diff --git a/sw/source/ui/docvw/SidebarTxtControl.cxx b/sw/source/ui/docvw/SidebarTxtControl.cxx
index 15af740..889c3bb 100644
--- a/sw/source/ui/docvw/SidebarTxtControl.cxx
+++ b/sw/source/ui/docvw/SidebarTxtControl.cxx
@@ -120,28 +120,13 @@ void SidebarTxtControl::RequestHelp(const HelpEvent &rEvt)
void SidebarTxtControl::Draw(OutputDevice* pDev, const Point& rPt, const Size& rSz, sal_uLong)
{
- if ( !Application::GetSettings().GetStyleSettings().GetHighContrastMode() )
- {
- if ( mrSidebarWin.IsMouseOverSidebarWin() ||
- HasFocus() )
- {
- pDev->DrawGradient( Rectangle( Point(0,0) + rPt, PixelToLogic(GetSizePixel()) ),
- Gradient( GradientStyle_LINEAR,
- mrSidebarWin.ColorDark(),
- mrSidebarWin.ColorDark() ) );
- }
- else
- {
- pDev->DrawGradient( Rectangle( Point(0,0) + rPt, PixelToLogic(GetSizePixel()) ),
- Gradient( GradientStyle_LINEAR,
- mrSidebarWin.ColorLight(),
- mrSidebarWin.ColorDark()));
- }
- }
+ //Take the control's height, but overwrite the scrollbar area if there was one
+ Size aSize(PixelToLogic(GetSizePixel()));
+ aSize.Width() = rSz.Width();
if ( GetTextView() )
{
- GetTextView()->GetOutliner()->Draw(pDev, Rectangle(rPt, rSz));
+ GetTextView()->GetOutliner()->Draw(pDev, Rectangle(rPt, aSize));
}
if ( mrSidebarWin.GetLayoutStatus()==SwPostItHelper::DELETED )
diff --git a/sw/source/ui/docvw/SidebarWin.cxx b/sw/source/ui/docvw/SidebarWin.cxx
index c3aa5b0..ebc4d4c 100644
--- a/sw/source/ui/docvw/SidebarWin.cxx
+++ b/sw/source/ui/docvw/SidebarWin.cxx
@@ -218,15 +218,7 @@ void SwSidebarWin::Draw(OutputDevice* pDev, const Point& rPt, const Size& rSz, s
{
if (mpMetadataAuthor->IsVisible() )
{
- //draw left over space
- if ( Application::GetSettings().GetStyleSettings().GetHighContrastMode() )
- {
- pDev->SetFillColor(COL_BLACK);
- }
- else
- {
- pDev->SetFillColor(mColorDark);
- }
+ pDev->SetFillColor(mColorDark);
pDev->SetLineColor();
pDev->DrawRect( Rectangle( rPt, rSz ) );
}
@@ -265,6 +257,27 @@ void SwSidebarWin::Draw(OutputDevice* pDev, const Point& rPt, const Size& rSz, s
pProcessor->process(rSequence);
delete pProcessor;
+
+ if (mpVScrollbar->IsVisible())
+ {
+ Font aOrigFont(mpMetadataDate->GetControlFont());
+ Color aOrigBg( mpMetadataDate->GetControlBackground() );
+ OUString sOrigText(mpMetadataDate->GetText());
+
+ Size aSize(PixelToLogic(mpMenuButton->GetSizePixel()));
+ Point aPos(PixelToLogic(mpMenuButton->GetPosPixel()));
+ aPos += rPt;
+
+ Font aFont( mpMetadataDate->GetSettings().GetStyleSettings().GetFieldFont() );
+ mpMetadataDate->SetControlFont( aFont );
+ mpMetadataDate->SetControlBackground( 0xFFFFFF );
+ mpMetadataDate->SetText("...");
+ mpMetadataDate->Draw(pDev, aPos, aSize, nInFlags);
+
+ mpMetadataDate->SetText(sOrigText);
+ mpMetadataDate->SetControlFont( aOrigFont );
+ mpMetadataDate->SetControlBackground( aOrigBg );
+ }
}
void SwSidebarWin::SetPosSizePixelRect( long nX,
--
1.9.0

@ -1,24 +0,0 @@
From fede08ac7d8b9d6c0abd2ba1b09fd3beb1c1b7e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 17 Apr 2014 08:41:07 +0100
Subject: [PATCH] Related: fdo#36815 print the text highlight range as well
Change-Id: Ic332b1968b5dc72d26bd704cce70a496ec81e0b8
---
sw/source/core/layout/paintfrm.cxx | 2 +-
sw/source/core/uibase/docvw/SidebarWin.cxx | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index a5cbf3b..eb3133a 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -6172,7 +6172,7 @@ static void lcl_paintBitmapExToRect(OutputDevice *pOut, const Point& aPoint, con
SwAlignRect( aPageRect, _pViewShell );
const SwPostItMgr *pMgr = _pViewShell->GetPostItMgr();
- if (pMgr /*&& pMgr->ShowNotes()*/ && pMgr->HasNotes()) // do not show anything in print preview
+ if (pMgr && pMgr->ShowNotes() && pMgr->HasNotes()) // do not show anything in print preview
{
sal_Int32 nScrollerHeight = pMgr->GetSidebarScrollerHeight();
const Rectangle &aVisRect = _pViewShell->VisArea().SVRect();

@ -1,63 +0,0 @@
From 62b0eaf37c08dd27244e77b8bc90c691b000ebd6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 29 Apr 2014 14:17:11 +0100
Subject: [PATCH] Related: fdo#50697 reset the cache timeout on GetGraphic
so the graphic gets swapped out Xms after the last use and not Xms after
initial creation regardless of if it got used a moment earlier.
Change-Id: I1458f307d090ecd8d8d031b545f23e78bf1bcb67
---
include/svtools/grfmgr.hxx | 2 ++
svtools/source/graphic/grfmgr.cxx | 20 ++++++++++++++++++--
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/include/svtools/grfmgr.hxx b/include/svtools/grfmgr.hxx
index 3e1423a..251ee6d 100644
--- a/include/svtools/grfmgr.hxx
+++ b/include/svtools/grfmgr.hxx
@@ -299,6 +299,8 @@ private:
DECL_LINK( ImplAutoSwapOutHdl, void* );
+ void SVT_DLLPRIVATE ResetCacheTimeOut();
+
protected:
virtual void GraphicManagerDestroyed();
diff --git a/svtools/source/graphic/grfmgr.cxx b/svtools/source/graphic/grfmgr.cxx
index 087d27b..a405ea7 100644
--- a/svtools/source/graphic/grfmgr.cxx
+++ b/svtools/source/graphic/grfmgr.cxx
@@ -744,10 +744,26 @@ void GraphicObject::StopAnimation( OutputDevice* pOut, long nExtraData )
mpSimpleCache->maGraphic.StopAnimation( pOut, nExtraData );
}
+void GraphicObject::ResetCacheTimeOut()
+{
+ if (mpSwapOutTimer)
+ {
+ mpSwapOutTimer->Stop();
+ mpSwapOutTimer->Start();
+ }
+}
+
const Graphic& GraphicObject::GetGraphic() const
{
- if( mbAutoSwapped )
- ( (GraphicObject*) this )->ImplAutoSwapIn();
+ GraphicObject *pThis = const_cast<GraphicObject*>(this);
+
+ if (mbAutoSwapped)
+ pThis->ImplAutoSwapIn();
+
+ //fdo#50697 If we've been asked to provide the graphic, then reset
+ //the cache timeout to start from now and not remain at the
+ //time of creation
+ pThis->ResetCacheTimeOut();
return maGraphic;
}
--
1.9.0

@ -1,36 +0,0 @@
From 5620f5ba2fa123f029ac449f69a89ffc5703c71e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 21 Nov 2013 15:27:59 +0000
Subject: [PATCH] Related: rhbz#1032774 bodge-around reported NULL value here
Change-Id: I9c4791b8f82cdd6e4823f88f592ad9ce233b6966
---
sd/source/ui/slideshow/slideshow.cxx | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/sd/source/ui/slideshow/slideshow.cxx b/sd/source/ui/slideshow/slideshow.cxx
index 2bab38d..b71cad6 100644
--- a/sd/source/ui/slideshow/slideshow.cxx
+++ b/sd/source/ui/slideshow/slideshow.cxx
@@ -1235,10 +1235,15 @@ void SlideShow::StartFullscreenPresentation( )
// frame view of the current view shell. This avoids that
// changes made by the presentation have an effect on the other
// view shells.
- FrameView* pOriginalFrameView = mpCurrentViewShellBase ? mpCurrentViewShellBase->GetMainViewShell()->GetFrameView() : 0;
+ FrameView* pOriginalFrameView = 0;
+ if (mpCurrentViewShellBase)
+ {
+ ::boost::shared_ptr<ViewShell> xShell(mpCurrentViewShellBase->GetMainViewShell());
+ if (xShell.get())
+ pOriginalFrameView = xShell->GetFrameView();
+ }
- if( mpFullScreenFrameView )
- delete mpFullScreenFrameView;
+ delete mpFullScreenFrameView;
mpFullScreenFrameView = new FrameView(mpDoc, pOriginalFrameView);
// The new frame is created hidden. To make it visible and activate the
--
1.8.3.1

@ -1,108 +0,0 @@
From c7d2d4953e4d9825157f09345ed45b8730522f36 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 25 Apr 2014 19:27:57 +0100
Subject: [PATCH] Related: rhbz#1032774 slide restarter should disable
auto-exit
The scenario is a pps that exits the app when the presentation
is complete. But using "switch screens" in the presenter
console will stop and restart the presentation. So protect
that "stop" against existing by disabling the autoexit
and restoring it afterwards
(cherry picked from commit b7197cfe5d207b171412760c6d72353f31947e93)
Conflicts:
sd/source/ui/slideshow/slideshow.cxx
Change-Id: Id986ad7e3cfafb8068540fb90d05443f329b554c
---
sd/source/ui/inc/slideshow.hxx | 5 ++++-
sd/source/ui/slideshow/SlideShowRestarter.cxx | 3 +++
sd/source/ui/slideshow/slideshow.cxx | 20 +++++++++++++++-----
3 files changed, 22 insertions(+), 6 deletions(-)
diff --git a/sd/source/ui/inc/slideshow.hxx b/sd/source/ui/inc/slideshow.hxx
index 6573b2b..f6567e1 100644
--- a/sd/source/ui/inc/slideshow.hxx
+++ b/sd/source/ui/inc/slideshow.hxx
@@ -178,6 +178,9 @@ public:
static sal_Int32 GetDisplay();
+ bool IsExitAfterPresenting() const;
+ void SetExitAfterPresenting(bool bExit);
+
private:
SlideShow( SdDrawDocument* pDoc );
@@ -187,7 +190,7 @@ private:
void StartInPlacePresentation();
void StartFullscreenPresentation();
- void ThrowIfDisposed() throw (::com::sun::star::uno::RuntimeException);
+ void ThrowIfDisposed() const throw (css::uno::RuntimeException);
void CreateController( ViewShell* pViewSh, ::sd::View* pView, ::Window* pParentWindow );
WorkWindow *GetWorkWindow();
diff --git a/sd/source/ui/slideshow/SlideShowRestarter.cxx b/sd/source/ui/slideshow/SlideShowRestarter.cxx
index 822e8be..63fae11 100644
--- a/sd/source/ui/slideshow/SlideShowRestarter.cxx
+++ b/sd/source/ui/slideshow/SlideShowRestarter.cxx
@@ -83,7 +83,10 @@ IMPL_LINK_NOARG(SlideShowRestarter, EndPresentation)
{
if (mnDisplayCount != (sal_Int32)Application::GetScreenCount())
{
+ bool bIsExitAfterPresenting = mpSlideShow->IsExitAfterPresenting();
+ mpSlideShow->SetExitAfterPresenting(false);
mpSlideShow->end();
+ mpSlideShow->SetExitAfterPresenting(bIsExitAfterPresenting);
// The following piece of code should not be here because the
// slide show should be aware of the existence of the presenter
diff --git a/sd/source/ui/slideshow/slideshow.cxx b/sd/source/ui/slideshow/slideshow.cxx
index 2bab38d..20a210b 100644
--- a/sd/source/ui/slideshow/slideshow.cxx
+++ b/sd/source/ui/slideshow/slideshow.cxx
@@ -146,16 +146,12 @@ SlideShow::SlideShow( SdDrawDocument* pDoc )
{
}
-// --------------------------------------------------------------------
-
-void SlideShow::ThrowIfDisposed() throw (RuntimeException)
+void SlideShow::ThrowIfDisposed() const throw (RuntimeException)
{
if( mpDoc == 0 )
throw DisposedException();
}
-// --------------------------------------------------------------------
-
/// used by the model to create a slideshow for it
rtl::Reference< SlideShow > SlideShow::Create( SdDrawDocument* pDoc )
{
@@ -678,6 +674,20 @@ WorkWindow *SlideShow::GetWorkWindow()
return dynamic_cast<WorkWindow*>(pShell->GetViewFrame()->GetTopFrame().GetWindow().GetParent());
}
+bool SlideShow::IsExitAfterPresenting() const
+{
+ SolarMutexGuard aGuard;
+ ThrowIfDisposed();
+ return mpDoc->IsExitAfterPresenting();
+}
+
+void SlideShow::SetExitAfterPresenting(bool bExit)
+{
+ SolarMutexGuard aGuard;
+ ThrowIfDisposed();
+ mpDoc->SetExitAfterPresenting(bExit);
+}
+
void SAL_CALL SlideShow::end() throw(RuntimeException)
{
SolarMutexGuard aGuard;
--
1.9.0

@ -1,204 +0,0 @@
From 2fc88c27a7c329753f2c58ec5ee1caa3678200ae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Mon, 24 Feb 2014 15:27:36 +0000
Subject: [PATCH] Related: rhbz#1065807 rework #i66157# for multiple writable
template dirs
if there are multiple user-level template dirs then we should be able to
remove/rename content in all of them, not just the default writable target.
The target scenario here is to default to ~/Templates when it exists as the
template dir, but to retain ~/.config/libreoffice/user/template in the dir for
any pre-existing templates and to treat both as equivalent in terms of removing
their content etc.
i#66157# wanted to avoid remove extensions templates and other internal
ones, so rework that logic to instead just be hands off internal templates
and allow modification of the remainder
Change-Id: I56afe991d4297ba692e914ae95ea02d68553f60a
---
sfx2/source/doc/doctemplates.cxx | 82 ++++++++++++++++++++++++++++++++--------
1 file changed, 67 insertions(+), 15 deletions(-)
diff --git a/sfx2/source/doc/doctemplates.cxx b/sfx2/source/doc/doctemplates.cxx
index ff07ef3..fe43a40 100644
--- a/sfx2/source/doc/doctemplates.cxx
+++ b/sfx2/source/doc/doctemplates.cxx
@@ -54,6 +54,7 @@
#include <com/sun/star/ucb/XContentAccess.hpp>
#include <com/sun/star/frame/ModuleManager.hpp>
#include <com/sun/star/uno/Exception.hpp>
+#include <com/sun/star/util/PathSettings.hpp>
#include <svtools/templatefoldercache.hxx>
#include <unotools/configmgr.hxx>
@@ -180,6 +181,7 @@ class SfxDocTplService_Impl
::osl::Mutex maMutex;
Sequence< OUString > maTemplateDirs;
+ Sequence< OUString > maInternalTemplateDirs;
OUString maRootURL;
NameList_Impl maNames;
Locale maLocale;
@@ -264,8 +266,16 @@ class SfxDocTplService_Impl
void updateData( DocTemplates_EntryData_Impl *pData );
+ //See: #i66157# and rhbz#1065807
+ //return which template dir the rURL is a subpath of
+ OUString findParentTemplateDir(const OUString& rURL) const;
+
+ //See: #i66157# and rhbz#1065807
+ //return true if rURL is a path (or subpath of) a dir which is not a user path
+ //which implies neither it or its contents can be removed
+ bool isInternalTemplateDir(const OUString& rURL) const;
public:
- SfxDocTplService_Impl( const uno::Reference< XComponentContext > & xContext );
+ SfxDocTplService_Impl( const uno::Reference< XComponentContext > & xContext );
~SfxDocTplService_Impl();
sal_Bool init() { if ( !mbIsInitialized ) init_Impl(); return mbIsInitialized; }
@@ -545,7 +555,7 @@ void SfxDocTplService_Impl::getDirList()
// TODO/LATER: let use service, register listener
INetURLObject aURL;
OUString aDirs = SvtPathOptions().GetTemplatePath();
- sal_uInt16 nCount = comphelper::string::getTokenCount(aDirs, C_DELIM);
+ sal_Int32 nCount = comphelper::string::getTokenCount(aDirs, C_DELIM);
maTemplateDirs = Sequence< OUString >( nCount );
@@ -553,7 +563,7 @@ void SfxDocTplService_Impl::getDirList()
const OUString aPrefix(
"vnd.sun.star.expand:" );
- for ( sal_uInt16 i=0; i<nCount; i++ )
+ for (sal_Int32 i = 0; i < nCount; ++i)
{
aURL.SetSmartProtocol( INET_PROT_FILE );
aURL.SetURL( aDirs.getToken( i, C_DELIM ) );
@@ -571,6 +581,23 @@ void SfxDocTplService_Impl::getDirList()
aValue <<= maTemplateDirs;
+ css::uno::Reference< css::util::XPathSettings > xPathSettings =
+ css::util::PathSettings::create( mxContext );
+
+ // load internal paths
+ OUString sProp( "Template_internal" );
+ Any aAny = xPathSettings->getPropertyValue( sProp );
+ aAny >>= maInternalTemplateDirs;
+
+ nCount = maInternalTemplateDirs.getLength();
+ for (sal_Int32 i = 0; i < nCount; ++i)
+ {
+ //expand vnd.sun.star.expand: and remove "..." from them
+ //to normalize into the expected url patterns
+ maRelocator.makeRelocatableURL(maInternalTemplateDirs[i]);
+ maRelocator.makeAbsoluteURL(maInternalTemplateDirs[i]);
+ }
+
// Store the template dir list
setProperty( maRootContent, aPropName, aValue );
}
@@ -1547,13 +1574,16 @@ sal_Bool SfxDocTplService_Impl::removeGroup( const OUString& rGroupName )
if ( !maTemplateDirs.getLength() )
return sal_False;
- OUString aGeneralTempPath = maTemplateDirs[ maTemplateDirs.getLength() - 1 ];
// check that the fs location is in writeble folder and this is not a "My templates" folder
INetURLObject aGroupParentFolder( aGroupTargetURL );
- if ( !aGroupParentFolder.removeSegment()
- || !::utl::UCBContentHelper::IsSubPath( aGeneralTempPath,
- aGroupParentFolder.GetMainURL( INetURLObject::NO_DECODE ) ) )
+ if (!aGroupParentFolder.removeSegment())
+ return sal_False;
+
+ OUString aGeneralTempPath = findParentTemplateDir(
+ aGroupParentFolder.GetMainURL(INetURLObject::NO_DECODE));
+
+ if (aGeneralTempPath.isEmpty())
return sal_False;
// now get the content of the Group
@@ -1661,14 +1691,14 @@ sal_Bool SfxDocTplService_Impl::renameGroup( const OUString& rOldName,
if ( !maTemplateDirs.getLength() )
return sal_False;
- OUString aGeneralTempPath = maTemplateDirs[ maTemplateDirs.getLength() - 1 ];
// check that the fs location is in writeble folder and this is not a "My templates" folder
INetURLObject aGroupParentFolder( aGroupTargetURL );
- if ( !aGroupParentFolder.removeSegment()
- || !::utl::UCBContentHelper::IsSubPath( aGeneralTempPath,
- aGroupParentFolder.GetMainURL( INetURLObject::NO_DECODE ) ) )
+ if (!aGroupParentFolder.removeSegment() ||
+ isInternalTemplateDir(aGroupParentFolder.GetMainURL(INetURLObject::NO_DECODE)))
+ {
return sal_False;
+ }
// check that the group can be renamed ( all the contents must be in target location )
sal_Bool bCanBeRenamed = sal_False;
@@ -1770,7 +1800,7 @@ sal_Bool SfxDocTplService_Impl::storeTemplate( const OUString& rGroupName,
aValue >>= aTemplateToRemoveTargetURL;
if ( aGroupTargetURL.isEmpty() || !maTemplateDirs.getLength()
- || (!aTemplateToRemoveTargetURL.isEmpty() && !::utl::UCBContentHelper::IsSubPath( maTemplateDirs[ maTemplateDirs.getLength() - 1 ], aTemplateToRemoveTargetURL )) )
+ || (!aTemplateToRemoveTargetURL.isEmpty() && isInternalTemplateDir(aTemplateToRemoveTargetURL)) )
return sal_False; // it is not allowed to remove the template
}
@@ -1909,6 +1939,30 @@ sal_Bool SfxDocTplService_Impl::storeTemplate( const OUString& rGroupName,
}
}
+bool SfxDocTplService_Impl::isInternalTemplateDir(const OUString& rURL) const
+{
+ const sal_Int32 nDirs = maInternalTemplateDirs.getLength();
+ const OUString* pDirs = maInternalTemplateDirs.getConstArray();
+ for (sal_Int32 i = 0; i < nDirs; ++i, ++pDirs)
+ {
+ if (::utl::UCBContentHelper::IsSubPath(*pDirs, rURL))
+ return true;
+ }
+ return false;
+}
+
+OUString SfxDocTplService_Impl::findParentTemplateDir(const OUString& rURL) const
+{
+ const sal_Int32 nDirs = maTemplateDirs.getLength();
+ const OUString* pDirs = maTemplateDirs.getConstArray();
+ for (sal_Int32 i = 0; i < nDirs; ++i, ++pDirs)
+ {
+ if (::utl::UCBContentHelper::IsSubPath(*pDirs, rURL))
+ return *pDirs;
+ }
+ return OUString();
+}
+
//-----------------------------------------------------------------------------
sal_Bool SfxDocTplService_Impl::addTemplate( const OUString& rGroupName,
const OUString& rTemplateName,
@@ -2032,7 +2086,6 @@ sal_Bool SfxDocTplService_Impl::addTemplate( const OUString& rGroupName,
catch ( Exception& )
{ return sal_False; }
-
// either the document has title and it is the same as requested, or we have to set it
sal_Bool bCorrectTitle = ( bDocHasTitle && aTitle.equals( rTemplateName ) );
if ( !bCorrectTitle )
@@ -2101,8 +2154,7 @@ sal_Bool SfxDocTplService_Impl::removeTemplate( const OUString& rGroupName,
// delete the target template
if ( !aTargetURL.isEmpty() )
{
- if ( !maTemplateDirs.getLength()
- || !::utl::UCBContentHelper::IsSubPath( maTemplateDirs[ maTemplateDirs.getLength() - 1 ], aTargetURL ) )
+ if (isInternalTemplateDir(aTargetURL))
return sal_False;
removeContent( aTargetURL );
--
1.8.5.3

@ -1,31 +0,0 @@
From 90af0348216a5a3c2eecd660e012500d2917b279 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Sat, 10 May 2014 10:13:44 +0200
Subject: [PATCH] Related: rhbz#1071604 don't paint anim. effect icon
... unless the slide does have custom animations. This drops dep of Draw
on libanimcore, which is in module impress, so it might not be present.
If it is not present, the Pages panel is not drawn.
Change-Id: I9d7377a4fb3289e230887752bc4a105ca1c9f812
---
sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx b/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx
index 0eafa0b..60c51fa 100644
--- a/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx
+++ b/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx
@@ -94,7 +94,8 @@ void PageObjectPainter::PaintPageObject (
PaintPreview(rDevice, rpDescriptor);
PaintPageNumber(rDevice, rpDescriptor);
PaintTransitionEffect(rDevice, rpDescriptor);
- PaintCustomAnimationEffect(rDevice, rpDescriptor);
+ if (rpDescriptor->GetPage()->hasAnimationNode())
+ PaintCustomAnimationEffect(rDevice, rpDescriptor);
rDevice.SetAntialiasing(nSavedAntialiasingMode);
}
}
--
1.9.0

@ -1,34 +0,0 @@
From 7d53f81f0a88afcff0f60bbd066a5645ac2e6a8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 14 Mar 2014 15:30:31 +0000
Subject: [PATCH] Related: rhbz#1075951 abrt crash in
MSWordExportBase::OutputFormat
Change-Id: I681fa40196eb04f4824e49458cba0acc15b26193
---
sw/source/filter/ww8/ww8atr.cxx | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx
index 7eb3134..da25acc 100644
--- a/sw/source/filter/ww8/ww8atr.cxx
+++ b/sw/source/filter/ww8/ww8atr.cxx
@@ -745,10 +745,13 @@ void MSWordExportBase::OutputFormat( const SwFmt& rFmt, bool bPapFmt, bool bChpF
case RES_TXTFMTCOLL:
if( bPapFmt )
{
+ int nLvl = MAXLEVEL;
+
if (((const SwTxtFmtColl&)rFmt).IsAssignedToListLevelOfOutlineStyle())
- {
- int nLvl = ((const SwTxtFmtColl&)rFmt).GetAssignedOutlineStyleLevel();
+ nLvl = ((const SwTxtFmtColl&)rFmt).GetAssignedOutlineStyleLevel();
+ if (nLvl >= 0 && nLvl < MAXLEVEL)
+ {
//if outline numbered
// if Write StyleDefinition then write the OutlineRule
const SwNumFmt& rNFmt = pDoc->GetOutlineNumRule()->Get( static_cast<sal_uInt16>( nLvl ) );
--
1.8.5.3

@ -1,496 +0,0 @@
From fd3cf8a32c58ee1b0f9d676cfb393478cf9b1ba2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 15 Apr 2014 09:42:32 +0100
Subject: [PATCH] Resolves: fdo#36815 enable printing WYSIWYG sidewindow
comments
in order for that to happen the document has to be scaled down
so that the comments outside the border of the sheet of paper
can be brought inside the printable area
Change-Id: Ifafb8eec10a4ea3ea0014097728888603e61e5a4
---
sw/inc/PostItMgr.hxx | 3 ++
sw/inc/SidebarWin.hxx | 1 +
sw/inc/printdata.hxx | 1 +
sw/source/core/layout/paintfrm.cxx | 2 +-
sw/source/core/view/printdata.cxx | 7 ++--
sw/source/core/view/vprint.cxx | 49 ++++++++++++++++++++++++--
sw/source/ui/config/optdlg.src | 1 +
sw/source/ui/config/optpage.cxx | 7 ++++
sw/source/ui/docvw/PostItMgr.cxx | 16 +++++++++
sw/source/ui/docvw/SidebarTxtControl.cxx | 40 ++++++++++++++++++++++
sw/source/ui/docvw/SidebarTxtControl.hxx | 2 ++
sw/source/ui/docvw/SidebarWin.cxx | 55 ++++++++++++++++++++++++++++++
sw/source/ui/inc/optpage.hxx | 1 +
sw/uiconfig/swriter/ui/printoptionspage.ui | 23 +++++++++++--
14 files changed, 200 insertions(+), 8 deletions(-)
diff --git a/sw/inc/PostItMgr.hxx b/sw/inc/PostItMgr.hxx
index 4c38d40..0ac0273 100644
--- a/sw/inc/PostItMgr.hxx
+++ b/sw/inc/PostItMgr.hxx
@@ -33,6 +33,7 @@
#include <SidebarWindowsTypes.hxx>
#include <svl/lstner.hxx>
+class OutputDevice;
class SwWrtShell;
class SwDoc;
class SwView;
@@ -279,6 +280,8 @@ class SwPostItMgr: public SfxListener
const sal_Int32 nIndex );
void GetAllSidebarWinForFrm( const SwFrm& rFrm,
std::vector< Window* >* pChildren );
+
+ void DrawNotesForPage(OutputDevice *pOutDev, sal_uInt32 nPage);
};
#endif
diff --git a/sw/inc/SidebarWin.hxx b/sw/inc/SidebarWin.hxx
index b3c4c82..5c8c527 100644
--- a/sw/inc/SidebarWin.hxx
+++ b/sw/inc/SidebarWin.hxx
@@ -163,6 +163,7 @@ class SwSidebarWin : public Window
void ChangeSidebarItem( SwSidebarItem& rSidebarItem );
virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible();
+ virtual void Draw(OutputDevice* pDev, const Point&, const Size&, sal_uLong);
protected:
virtual void DataChanged( const DataChangedEvent& aEvent);
diff --git a/sw/inc/printdata.hxx b/sw/inc/printdata.hxx
index b688608..b2f49b7 100644
--- a/sw/inc/printdata.hxx
+++ b/sw/inc/printdata.hxx
@@ -307,6 +307,7 @@ public:
#define POSTITS_ONLY 1
#define POSTITS_ENDDOC 2
#define POSTITS_ENDPAGE 3
+#define POSTITS_INMARGINS 4
namespace sw {
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index 3e4ed87..2e88ef7 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -6213,7 +6213,7 @@ static void lcl_paintBitmapExToRect(OutputDevice *pOut, Point aPoint, BitmapEx&
SwAlignRect( aPageRect, _pViewShell );
const SwPostItMgr *pMgr = _pViewShell->GetPostItMgr();
- if (pMgr && pMgr->ShowNotes() && pMgr->HasNotes()) // do not show anything in print preview
+ if (pMgr /*&& pMgr->ShowNotes()*/ && pMgr->HasNotes()) // do not show anything in print preview
{
sal_Int32 nScrollerHeight = pMgr->GetSidebarScrollerHeight();
const Rectangle &aVisRect = _pViewShell->VisArea().SVRect();
diff --git a/sw/source/core/view/printdata.cxx b/sw/source/core/view/printdata.cxx
index 192ae5a..b2e2ef5 100644
--- a/sw/source/core/view/printdata.cxx
+++ b/sw/source/core/view/printdata.cxx
@@ -172,8 +172,8 @@ SwPrintUIOptions::SwPrintUIOptions(
{
ResStringArray aLocalizedStrings( SW_RES( STR_PRINTOPTUI ) );
- OSL_ENSURE( aLocalizedStrings.Count() >= 30, "resource incomplete" );
- if( aLocalizedStrings.Count() < 30 ) // bad resource ?
+ OSL_ENSURE( aLocalizedStrings.Count() >= 31, "resource incomplete" );
+ if( aLocalizedStrings.Count() < 31 ) // bad resource ?
return;
// printing HTML sources does not have any valid UI options.
@@ -322,11 +322,12 @@ SwPrintUIOptions::SwPrintUIOptions(
OUString(), aContentsOpt);
// create a list box for notes content
const sal_Int16 nPrintPostIts = rDefaultPrintData.GetPrintPostIts();
- aChoices.realloc( 4 );
+ aChoices.realloc( 5 );
aChoices[0] = aLocalizedStrings.GetString( 13 );
aChoices[1] = aLocalizedStrings.GetString( 14 );
aChoices[2] = aLocalizedStrings.GetString( 15 );
aChoices[3] = aLocalizedStrings.GetString( 16 );
+ aChoices[4] = aLocalizedStrings.GetString( 30 );
aHelpIds.realloc( 2 );
aHelpIds[0] = ".HelpID:vcl:PrintDialog:PrintAnnotationMode:FixedText";
aHelpIds[1] = ".HelpID:vcl:PrintDialog:PrintAnnotationMode:ListBox";
diff --git a/sw/source/core/view/vprint.cxx b/sw/source/core/view/vprint.cxx
index ff5ffb2..13c829b 100644
--- a/sw/source/core/view/vprint.cxx
+++ b/sw/source/core/view/vprint.cxx
@@ -69,6 +69,7 @@
#include <viscrs.hxx>
#include <fmtpdsc.hxx>
#include <globals.hrc>
+#include "PostItMgr.hxx"
using namespace ::com::sun::star;
@@ -454,13 +455,33 @@ sal_Bool SwViewShell::PrintOrPDFExport(
// output device is now provided by a call from outside the Writer)
pOutDev->Push();
+ // fdo#36815 for comments in margins print to a metafile
+ // and then scale that metafile down so that the comments
+ // will fit on the real page, and replay that scaled
+ // output to the real outputdevice
+ GDIMetaFile *pOrigRecorder(NULL);
+ GDIMetaFile *pMetaFile(NULL);
+ sal_Int16 nPostItMode = rPrintData.GetPrintPostIts();
+ if (nPostItMode == POSTITS_INMARGINS)
+ {
+ //get and disable the existing recorder
+ pOrigRecorder = pOutDev->GetConnectMetaFile();
+ pOutDev->SetConnectMetaFile(NULL);
+ // turn off output to the device
+ pOutDev->EnableOutput(false);
+ // just record the rendering commands to the metafile
+ // instead
+ pMetaFile = new GDIMetaFile;
+ pMetaFile->Record(pOutDev);
+ }
+
// Print/PDF export for (multi-)selection has already generated a
// temporary document with the selected text.
// (see XRenderable implementation in unotxdoc.cxx)
// It is implemented this way because PDF export calls this Prt function
// once per page and we do not like to always have the temporary document
// to be created that often here.
- SwViewShell *pShell = new SwViewShell( *this, 0, pOutDev );
+ SwViewShell *pShell = new SwViewShell(*this, 0, pOutDev);
SdrView *pDrawView = pShell->GetDrawView();
if (pDrawView)
@@ -502,13 +523,37 @@ sal_Bool SwViewShell::PrintOrPDFExport(
::SetSwVisArea( pViewSh2, pStPage->Frm() );
- pShell->InitPrt( pOutDev );
+ pShell->InitPrt(pOutDev);
::SetSwVisArea( pViewSh2, pStPage->Frm() );
pStPage->GetUpper()->Paint( pStPage->Frm(), &rPrintData );
SwPaintQueue::Repaint();
+
+ if (nPostItMode == POSTITS_INMARGINS)
+ {
+ SwPostItMgr *pPostItManager = pShell->GetPostItMgr();
+ pPostItManager->CalcRects();
+ pPostItManager->LayoutPostIts();
+ pPostItManager->DrawNotesForPage(pOutDev, nPage-1);
+
+ //Now scale the recorded page down so the notes
+ //will fit in the final page
+ pMetaFile->Stop();
+ pMetaFile->WindStart();
+ double fScale = 0.75;
+ pMetaFile->Scale( fScale, fScale );
+ pMetaFile->WindStart();
+
+ //Enable output the the device again
+ pOutDev->EnableOutput(true);
+ //Restore the original recorder
+ pOutDev->SetConnectMetaFile(pOrigRecorder);
+ //play back the scaled page
+ pMetaFile->Play(pOutDev);
+ delete pMetaFile;
+ }
}
delete pShell;
diff --git a/sw/source/ui/config/optdlg.src b/sw/source/ui/config/optdlg.src
index 748560a..b5ae69c 100644
--- a/sw/source/ui/config/optdlg.src
+++ b/sw/source/ui/config/optdlg.src
@@ -71,6 +71,7 @@ StringArray STR_PRINTOPTUI
< "~All pages"; >;
< "Pa~ges"; >;
< "~Selection"; >;
+ < "Place in margins"; >;
};
};
diff --git a/sw/source/ui/config/optpage.cxx b/sw/source/ui/config/optpage.cxx
index d7efd53..4549402 100644
--- a/sw/source/ui/config/optpage.cxx
+++ b/sw/source/ui/config/optpage.cxx
@@ -312,6 +312,7 @@ SwAddPrinterTabPage::SwAddPrinterTabPage(Window* pParent,
get(m_pOnlyRB, "only");
get(m_pEndRB, "end");
get(m_pEndPageRB, "endpage");
+ get(m_pInMarginsRB, "inmargins");
get(m_pPrintEmptyPagesCB, "blankpages");
get(m_pPaperFromSetupCB, "papertray");
get(m_pFaxLB, "fax");
@@ -332,6 +333,7 @@ SwAddPrinterTabPage::SwAddPrinterTabPage(Window* pParent,
m_pPaperFromSetupCB->SetClickHdl( aLk );
m_pPrintEmptyPagesCB->SetClickHdl( aLk );
m_pEndPageRB->SetClickHdl( aLk );
+ m_pInMarginsRB->SetClickHdl( aLk );
m_pEndRB->SetClickHdl( aLk );
m_pOnlyRB->SetClickHdl( aLk );
m_pNoRB->SetClickHdl( aLk );
@@ -398,6 +400,8 @@ sal_Bool SwAddPrinterTabPage::FillItemSet( SfxItemSet& rCoreSet )
POSTITS_ENDDOC;
if (m_pEndPageRB->IsChecked()) aAddPrinterAttr.nPrintPostIts =
POSTITS_ENDPAGE;
+ if (m_pInMarginsRB->IsChecked()) aAddPrinterAttr.nPrintPostIts =
+ POSTITS_INMARGINS;
OUString sFax = m_pFaxLB->GetSelectEntry();
aAddPrinterAttr.sFaxName = sNone == sFax ? aEmptyOUStr : sFax;
@@ -431,6 +435,7 @@ void SwAddPrinterTabPage::Reset( const SfxItemSet& )
m_pOnlyRB->Check (pAddPrinterAttr->nPrintPostIts== POSTITS_ONLY ) ;
m_pEndRB->Check (pAddPrinterAttr->nPrintPostIts== POSTITS_ENDDOC ) ;
m_pEndPageRB->Check (pAddPrinterAttr->nPrintPostIts== POSTITS_ENDPAGE ) ;
+ m_pInMarginsRB->Check (pAddPrinterAttr->nPrintPostIts== POSTITS_INMARGINS ) ;
m_pFaxLB->SelectEntry( pAddPrinterAttr->sFaxName );
}
if (m_pProspectCB->IsChecked())
@@ -440,6 +445,7 @@ void SwAddPrinterTabPage::Reset( const SfxItemSet& )
m_pOnlyRB->Enable( sal_False );
m_pEndRB->Enable( sal_False );
m_pEndPageRB->Enable( sal_False );
+ m_pInMarginsRB->Enable( sal_False );
}
else
m_pProspectCB_RTL->Enable( sal_False );
@@ -461,6 +467,7 @@ IMPL_LINK_NOARG_INLINE_START(SwAddPrinterTabPage, AutoClickHdl)
m_pOnlyRB->Enable( !bIsProspect );
m_pEndRB->Enable( !bIsProspect );
m_pEndPageRB->Enable( !bIsProspect );
+ m_pInMarginsRB->Enable( !bIsProspect );
return 0;
}
IMPL_LINK_NOARG_INLINE_END(SwAddPrinterTabPage, AutoClickHdl)
diff --git a/sw/source/ui/docvw/PostItMgr.cxx b/sw/source/ui/docvw/PostItMgr.cxx
index 8ca06e7..e6b7cb6 100644
--- a/sw/source/ui/docvw/PostItMgr.cxx
+++ b/sw/source/ui/docvw/PostItMgr.cxx
@@ -807,6 +807,22 @@ bool SwPostItMgr::BorderOverPageBorder(unsigned long aPage) const
return false;
}
+void SwPostItMgr::DrawNotesForPage(OutputDevice *pOutDev, sal_uInt32 nPage)
+{
+ assert(nPage < mPages.size());
+ if (nPage >= mPages.size())
+ return;
+ for(SwSidebarItem_iterator i = mPages[nPage]->mList->begin(); i != mPages[nPage]->mList->end(); ++i)
+ {
+ SwSidebarWin* pPostIt = (*i)->pPostIt;
+ if (!pPostIt)
+ continue;
+ Point aPoint(mpEditWin->PixelToLogic(pPostIt->GetPosPixel()));
+ Size aSize(pPostIt->PixelToLogic(pPostIt->GetSizePixel()));
+ pPostIt->Draw(pOutDev, aPoint, aSize, 0);
+ }
+}
+
void SwPostItMgr::Scroll(const long lScroll,const unsigned long aPage)
{
OSL_ENSURE((lScroll % GetScrollSize() )==0,"SwPostItMgr::Scroll: scrolling by wrong value");
diff --git a/sw/source/ui/docvw/SidebarTxtControl.cxx b/sw/source/ui/docvw/SidebarTxtControl.cxx
index b1d3767..15af740 100644
--- a/sw/source/ui/docvw/SidebarTxtControl.cxx
+++ b/sw/source/ui/docvw/SidebarTxtControl.cxx
@@ -118,6 +118,46 @@ void SidebarTxtControl::RequestHelp(const HelpEvent &rEvt)
}
}
+void SidebarTxtControl::Draw(OutputDevice* pDev, const Point& rPt, const Size& rSz, sal_uLong)
+{
+ if ( !Application::GetSettings().GetStyleSettings().GetHighContrastMode() )
+ {
+ if ( mrSidebarWin.IsMouseOverSidebarWin() ||
+ HasFocus() )
+ {
+ pDev->DrawGradient( Rectangle( Point(0,0) + rPt, PixelToLogic(GetSizePixel()) ),
+ Gradient( GradientStyle_LINEAR,
+ mrSidebarWin.ColorDark(),
+ mrSidebarWin.ColorDark() ) );
+ }
+ else
+ {
+ pDev->DrawGradient( Rectangle( Point(0,0) + rPt, PixelToLogic(GetSizePixel()) ),
+ Gradient( GradientStyle_LINEAR,
+ mrSidebarWin.ColorLight(),
+ mrSidebarWin.ColorDark()));
+ }
+ }
+
+ if ( GetTextView() )
+ {
+ GetTextView()->GetOutliner()->Draw(pDev, Rectangle(rPt, rSz));
+ }
+
+ if ( mrSidebarWin.GetLayoutStatus()==SwPostItHelper::DELETED )
+ {
+ SetLineColor(mrSidebarWin.GetChangeColor());
+ pDev->DrawLine( PixelToLogic( GetPosPixel(), pDev->GetMapMode() ),
+ PixelToLogic( GetPosPixel() +
+ Point( GetSizePixel().Width(),
+ GetSizePixel().Height() ), pDev->GetMapMode() ) );
+ pDev->DrawLine( PixelToLogic( GetPosPixel() +
+ Point( GetSizePixel().Width(),0), pDev->GetMapMode() ),
+ PixelToLogic( GetPosPixel() +
+ Point( 0, GetSizePixel().Height() ), pDev->GetMapMode() ) );
+ }
+}
+
void SidebarTxtControl::Paint( const Rectangle& rRect)
{
if ( !Application::GetSettings().GetStyleSettings().GetHighContrastMode() )
diff --git a/sw/source/ui/docvw/SidebarTxtControl.hxx b/sw/source/ui/docvw/SidebarTxtControl.hxx
index 37829b2..66e282f 100644
--- a/sw/source/ui/docvw/SidebarTxtControl.hxx
+++ b/sw/source/ui/docvw/SidebarTxtControl.hxx
@@ -66,6 +66,8 @@ class SidebarTxtControl : public Control
DECL_LINK( OnlineSpellCallback, SpellCallbackInfo*);
virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible();
+ virtual void Draw(OutputDevice* pDev, const Point&, const Size&, sal_uLong);
+
};
} } // end of namespace sw::sidebarwindows
diff --git a/sw/source/ui/docvw/SidebarWin.cxx b/sw/source/ui/docvw/SidebarWin.cxx
index 4cf128a..275b72e 100644
--- a/sw/source/ui/docvw/SidebarWin.cxx
+++ b/sw/source/ui/docvw/SidebarWin.cxx
@@ -64,10 +64,12 @@
#include <langhelper.hxx>
#include <sw_primitivetypes2d.hxx>
+#include <drawinglayer/processor2d/baseprocessor2d.hxx>
#include <drawinglayer/primitive2d/primitivetools2d.hxx>
#include <drawinglayer/primitive2d/fillgradientprimitive2d.hxx>
#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
#include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
+#include <drawinglayer/processor2d/processorfromoutputdevice.hxx>
#include <drawinglayer/primitive2d/shadowprimitive2d.hxx>
namespace sw { namespace sidebarwindows {
@@ -212,6 +214,59 @@ void SwSidebarWin::Paint( const Rectangle& rRect)
}
}
+void SwSidebarWin::Draw(OutputDevice* pDev, const Point& rPt, const Size& rSz, sal_uLong nInFlags)
+{
+ if (mpMetadataAuthor->IsVisible() )
+ {
+ //draw left over space
+ if ( Application::GetSettings().GetStyleSettings().GetHighContrastMode() )
+ {
+ pDev->SetFillColor(COL_BLACK);
+ }
+ else
+ {
+ pDev->SetFillColor(mColorDark);
+ }
+ pDev->SetLineColor();
+ pDev->DrawRect( Rectangle( rPt, rSz ) );
+ }
+
+ if (mpMetadataAuthor->IsVisible())
+ {
+ Font aOrigFont(mpMetadataAuthor->GetControlFont());
+ Size aSize(PixelToLogic(mpMetadataAuthor->GetSizePixel()));
+ Point aPos(PixelToLogic(mpMetadataAuthor->GetPosPixel()));
+ aPos += rPt;
+ Font aFont( mpMetadataAuthor->GetSettings().GetStyleSettings().GetFieldFont() );
+ mpMetadataAuthor->SetControlFont( aFont );
+ mpMetadataAuthor->Draw(pDev, aPos, aSize, nInFlags);
+ mpMetadataAuthor->SetControlFont( aOrigFont );
+ }
+
+ if (mpMetadataDate->IsVisible())
+ {
+ Font aOrigFont(mpMetadataDate->GetControlFont());
+ Size aSize(PixelToLogic(mpMetadataDate->GetSizePixel()));
+ Point aPos(PixelToLogic(mpMetadataDate->GetPosPixel()));
+ aPos += rPt;
+ Font aFont( mpMetadataDate->GetSettings().GetStyleSettings().GetFieldFont() );
+ mpMetadataDate->SetControlFont( aFont );
+ mpMetadataDate->Draw(pDev, aPos, aSize, nInFlags);
+ mpMetadataDate->SetControlFont( aOrigFont );
+ }
+
+ mpSidebarTxtControl->Draw(pDev, rPt, rSz, nInFlags);
+
+ const drawinglayer::primitive2d::Primitive2DSequence& rSequence = mpAnchor->getOverlayObjectPrimitive2DSequence();
+ const drawinglayer::geometry::ViewInformation2D aNewViewInfos;
+ drawinglayer::processor2d::BaseProcessor2D * pProcessor =
+ drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(
+ *pDev, aNewViewInfos );
+
+ pProcessor->process(rSequence);
+ delete pProcessor;
+}
+
void SwSidebarWin::SetPosSizePixelRect( long nX,
long nY,
long nWidth,
diff --git a/sw/source/ui/inc/optpage.hxx b/sw/source/ui/inc/optpage.hxx
index 3e196e2..fa8f6b7 100644
--- a/sw/source/ui/inc/optpage.hxx
+++ b/sw/source/ui/inc/optpage.hxx
@@ -104,6 +104,7 @@ class SwAddPrinterTabPage : public SfxTabPage
RadioButton* m_pOnlyRB;
RadioButton* m_pEndRB;
RadioButton* m_pEndPageRB;
+ RadioButton* m_pInMarginsRB;
CheckBox* m_pPrintEmptyPagesCB;
CheckBox* m_pPaperFromSetupCB;
diff --git a/sw/uiconfig/swriter/ui/printoptionspage.ui b/sw/uiconfig/swriter/ui/printoptionspage.ui
index 0bf9afe..95e5ae2 100644
--- a/sw/uiconfig/swriter/ui/printoptionspage.ui
+++ b/sw/uiconfig/swriter/ui/printoptionspage.ui
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
<interface>
- <!-- interface-requires gtk+ 3.0 -->
+ <requires lib="gtk+" version="3.0"/>
<object class="GtkBox" id="PrintOptionsPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -344,7 +345,7 @@
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
- <property name="group">none</property>
+ <property name="group">inmargins</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -353,6 +354,24 @@
<property name="height">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkRadioButton" id="inmargins">
+ <property name="label" translatable="yes">In margins</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">none</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">4</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
</object>
</child>
</object>
--
1.8.5.3

@ -1,32 +0,0 @@
From a7228e0bdbb06de56145d1edeacfe4ede1a7a7d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Sat, 12 Apr 2014 13:35:20 +0100
Subject: [PATCH] Resolves: fdo#37130 use 10pt Default style font for comments
instead of 10pt UI font
Change-Id: I92e2b415ff37f8baae67a00cc077e431b12b924c
---
sw/source/core/uibase/docvw/SidebarWin.cxx | 6 ------
1 file changed, 6 deletions(-)
diff --git a/sw/source/core/uibase/docvw/SidebarWin.cxx b/sw/source/core/uibase/docvw/SidebarWin.cxx
index fb78b3b..930b95b 100644
--- a/sw/source/ui/docvw/SidebarWin.cxx
+++ b/sw/source/ui/docvw/SidebarWin.cxx
@@ -270,12 +270,6 @@ SfxItemSet SwSidebarWin::DefaultItem()
{
SfxItemSet aItem( mrView.GetDocShell()->GetPool() );
aItem.Put(SvxFontHeightItem(200,100,EE_CHAR_FONTHEIGHT));
- aItem.Put(SvxFontItem(FAMILY_SWISS,
- GetSettings().GetStyleSettings().GetFieldFont().GetName(),
- OUString(),
- PITCH_DONTKNOW,
- RTL_TEXTENCODING_DONTKNOW,
- EE_CHAR_FONTINFO));
return aItem;
}
--
1.9.0

@ -1,119 +0,0 @@
From 834c9363f67198e33880c2ee7bdd136b5558599d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 1 May 2014 17:10:21 +0100
Subject: [PATCH] Resolves: fdo#78128 go back to using an interim metafile
this time we know that the other varient of "Move" doesn't
handle pixel drawing stuff like the dpi-using one does.
and the move values have to be in 100TH_MM_MAP and
with the true numbers of the write page size
Change-Id: I15fdb78797d8744702bec649024fedbf3e39b342
---
sw/source/core/view/vprint.cxx | 68 +++++++++++++++++++++++++++++-------------
1 file changed, 48 insertions(+), 20 deletions(-)
diff --git a/sw/source/core/view/vprint.cxx b/sw/source/core/view/vprint.cxx
index c9c7e42..6bc53e8 100644
--- a/sw/source/core/view/vprint.cxx
+++ b/sw/source/core/view/vprint.cxx
@@ -455,6 +455,28 @@ sal_Bool SwViewShell::PrintOrPDFExport(
// output device is now provided by a call from outside the Writer)
pOutDev->Push();
+ // fdo#36815 for comments in margins print to a metafile
+ // and then scale that metafile down so that the comments
+ // will fit on the real page, and replay that scaled
+ // output to the real outputdevice
+ GDIMetaFile *pOrigRecorder(NULL);
+ GDIMetaFile *pMetaFile(NULL);
+ sal_Int16 nPostItMode = rPrintData.GetPrintPostIts();
+ if (nPostItMode == POSTITS_INMARGINS)
+ {
+ //get and disable the existing recorder
+ pOrigRecorder = pOutDev->GetConnectMetaFile();
+ pOutDev->SetConnectMetaFile(NULL);
+ // turn off output to the device
+ pOutDev->EnableOutput(false);
+ // just record the rendering commands to the metafile
+ // instead
+ pMetaFile = new GDIMetaFile;
+ pMetaFile->SetPrefSize(pOutDev->GetOutputSize());
+ pMetaFile->SetPrefMapMode(pOutDev->GetMapMode());
+ pMetaFile->Record(pOutDev);
+ }
+
// Print/PDF export for (multi-)selection has already generated a
// temporary document with the selected text.
// (see XRenderable implementation in unotxdoc.cxx)
@@ -470,8 +492,6 @@ sal_Bool SwViewShell::PrintOrPDFExport(
pDrawView->SetBufferedOverlayAllowed( false );
}
- sal_Int16 nPostItMode = rPrintData.GetPrintPostIts();
-
{ // additional scope so that the CurrShell is reset before destroying the shell
SET_CURR_SHELL( pShell );
@@ -519,6 +539,32 @@ sal_Bool SwViewShell::PrintOrPDFExport(
pPostItManager->CalcRects();
pPostItManager->LayoutPostIts();
pPostItManager->DrawNotesForPage(pOutDev, nPage-1);
+
+ //Stop recording now
+ pMetaFile->Stop();
+ pMetaFile->WindStart();
+ //Enable output to the device again
+ pOutDev->EnableOutput(true);
+ //Restore the original recorder
+ pOutDev->SetConnectMetaFile(pOrigRecorder);
+
+ //Now scale the recorded page down so the notes
+ //will fit in the final page
+ double fScale = 0.75;
+ long nOrigHeight = pStPage->Frm().Height();
+ long nNewHeight = nOrigHeight*fScale;
+ long nShiftY = (nOrigHeight-nNewHeight)/2;
+ pMetaFile->Scale( fScale, fScale );
+ pMetaFile->WindStart();
+ //Move the scaled page down to center it
+ //the other variant of Move does not map pixels
+ //back to the logical units correctly
+ pMetaFile->Move(0, TWIP_TO_MM100(nShiftY), pOutDev->ImplGetDPIX(), pOutDev->ImplGetDPIY());
+ pMetaFile->WindStart();
+
+ //play back the scaled page
+ pMetaFile->Play(pOutDev);
+ delete pMetaFile;
}
}
@@ -528,24 +574,6 @@ sal_Bool SwViewShell::PrintOrPDFExport(
// output device is now provided by a call from outside the Writer)
pOutDev->Pop();
- // fdo#36815 for comments in margins get the metafile we are printing to
- // and then scale and vertically center that metafile down so that the
- // comments will fit on the real page
- GDIMetaFile *pRecorder = pOutDev->GetConnectMetaFile();
- if (nPostItMode == POSTITS_INMARGINS && pRecorder)
- {
- pRecorder->Stop();
- pRecorder->WindStart();
- double fScale = 0.75;
- long nOrigHeight = pOutDev->GetOutputSize().Height();
- long nNewHeight = nOrigHeight*fScale;
- long nShiftY = (nOrigHeight-nNewHeight)/2;
- pRecorder->Scale(fScale, fScale);
- pRecorder->WindStart();
- pRecorder->Move(0, nShiftY, pOutDev->ImplGetDPIX(), pOutDev->ImplGetDPIY());
- pRecorder->WindStart();
- }
-
return sal_True;
}
--
1.9.0

@ -1,198 +0,0 @@
From cc9493e690c6dbe40a1da47a06acf7172a33ffa7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Mon, 24 Feb 2014 11:38:13 +0000
Subject: [PATCH 1/2] Resolves: rhbz#1065807 use xdg ~/Templates for default
Template location
(if it exists)
Change-Id: I98fc9fd54d1f56c8bed24ce4d2ebf53756ded2cc
---
framework/source/services/pathsettings.cxx | 6 ++++
.../registry/data/org/openoffice/Office/Paths.xcu | 13 +++++++
shell/source/backends/desktopbe/desktopbackend.cxx | 21 ++++++++---
shell/source/backends/gconfbe/gconfaccess.cxx | 41 ++++++++++++++++------
shell/source/backends/gconfbe/gconfaccess.hxx | 1 +
5 files changed, 66 insertions(+), 16 deletions(-)
diff --git a/framework/source/services/pathsettings.cxx b/framework/source/services/pathsettings.cxx
index 15fb3c0..bdb2949 100644
--- a/framework/source/services/pathsettings.cxx
+++ b/framework/source/services/pathsettings.cxx
@@ -280,6 +280,12 @@ PathSettings::PathInfo PathSettings::impl_readNewFormat(const OUString& sPath)
// read the writeable path
xPath->getByName(CFGPROP_WRITEPATH) >>= aPathVal.sWritePath;
+ // avoid duplicates, by removing the writeable path from
+ // the user defined path list if it happens to be there too
+ OUStringList::iterator aI = aPathVal.lUserPaths.find(aPathVal.sWritePath);
+ if (aI != aPathVal.lUserPaths.end())
+ aPathVal.lUserPaths.erase(aI);
+
// read state props
xPath->getByName(CFGPROP_ISSINGLEPATH) >>= aPathVal.bIsSinglePath;
diff --git a/officecfg/registry/data/org/openoffice/Office/Paths.xcu b/officecfg/registry/data/org/openoffice/Office/Paths.xcu
index 05f8e0b..2a9eb5c 100644
--- a/officecfg/registry/data/org/openoffice/Office/Paths.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Paths.xcu
@@ -161,8 +161,21 @@
<node oor:name="$(insturl)/@LIBO_SHARE_FOLDER@/template/common" oor:op="fuse"/>
<node oor:name="$(insturl)/@LIBO_SHARE_FOLDER@/template/$(vlang)" oor:op="fuse"/>
</node>
+ <!--
+ On unix check of we have a ~/Templates and use that as the write path.
+ On other platforms, or if ~/Templates doesn't exist, use the traditional
+ $(userurl)/template path.
+
+ If we end up using the new ~/Templates as the write path, we then want
+ to have $(userurl)/template in our userpath for any templates left behind
+ in that dir.
+ -->
<prop oor:name="WritePath">
<value>$(userurl)/template</value>
+ <value install:module="unixdesktop" oor:external="com.sun.star.configuration.backend.DesktopBackend TemplatePathVariable"/>
+ </prop>
+ <prop oor:name="UserPaths">
+ <value install:module="unixdesktop">$(userurl)/template</value>
</prop>
</node>
<node oor:name="UIConfig" oor:op="fuse" oor:mandatory="true">
diff --git a/shell/source/backends/desktopbe/desktopbackend.cxx b/shell/source/backends/desktopbe/desktopbackend.cxx
index 3e8e8c1..52d8358 100644
--- a/shell/source/backends/desktopbe/desktopbackend.cxx
+++ b/shell/source/backends/desktopbe/desktopbackend.cxx
@@ -154,11 +154,22 @@ css::uno::Any Default::getPropertyValue(OUString const & PropertyName)
css::beans::UnknownPropertyException, css::lang::WrappedTargetException,
css::uno::RuntimeException)
{
- if ( PropertyName == "EnableATToolSupport" || PropertyName == "ExternalMailer" || PropertyName == "SourceViewFontHeight"
- || PropertyName == "SourceViewFontName" || PropertyName == "WorkPathVariable" || PropertyName == "ooInetFTPProxyName"
- || PropertyName == "ooInetFTPProxyPort" || PropertyName == "ooInetHTTPProxyName" || PropertyName == "ooInetHTTPProxyPort"
- || PropertyName == "ooInetHTTPSProxyName" || PropertyName == "ooInetHTTPSProxyPort" || PropertyName == "ooInetNoProxy"
- || PropertyName == "ooInetProxyType" || PropertyName == "givenname" || PropertyName == "sn" )
+ if ( PropertyName == "EnableATToolSupport" ||
+ PropertyName == "ExternalMailer" ||
+ PropertyName == "SourceViewFontHeight" ||
+ PropertyName == "SourceViewFontName" ||
+ PropertyName == "TemplatePathVariable" ||
+ PropertyName == "WorkPathVariable" ||
+ PropertyName == "ooInetFTPProxyName" ||
+ PropertyName == "ooInetFTPProxyPort" ||
+ PropertyName == "ooInetHTTPProxyName" ||
+ PropertyName == "ooInetHTTPProxyPort" ||
+ PropertyName == "ooInetHTTPSProxyName" ||
+ PropertyName == "ooInetHTTPSProxyPort" ||
+ PropertyName == "ooInetNoProxy" ||
+ PropertyName == "ooInetProxyType" ||
+ PropertyName == "givenname" ||
+ PropertyName == "sn" )
{
return css::uno::makeAny(css::beans::Optional< css::uno::Any >());
}
diff --git a/shell/source/backends/gconfbe/gconfaccess.cxx b/shell/source/backends/gconfbe/gconfaccess.cxx
index de8eb29..0d407d6 100644
--- a/shell/source/backends/gconfbe/gconfaccess.cxx
+++ b/shell/source/backends/gconfbe/gconfaccess.cxx
@@ -23,6 +23,7 @@
#include <string.h>
#include "com/sun/star/uno/RuntimeException.hpp"
+#include "com/sun/star/uno/Sequence.hxx"
#include "osl/file.hxx"
#include "osl/security.hxx"
#include "osl/thread.h"
@@ -189,15 +190,8 @@ static OUString xdg_user_dir_lookup (const char *type)
if( osl::FileBase::E_None == aDocumentsDir.open() )
return aDocumentsDirURL;
}
- /* Special case desktop for historical compatibility */
- if (strcmp (type, "DESKTOP") == 0)
- {
- return aHomeDirURL + "/Desktop";
- }
- else
- {
- return aHomeDirURL + "/Documents";
- }
+ /* Use fallbacks historical compatibility if nothing else exists */
+ return aHomeDirURL + "/" + OUString::createFromAscii(type);
}
//------------------------------------------------------------------------------
@@ -317,11 +311,18 @@ uno::Any translateToOOo( const ConfigurationValue &rValue, GConfValue *pGconfVal
case SETTING_WORK_DIRECTORY:
{
- OUString aDocumentsDirURL = xdg_user_dir_lookup("DOCUMENTS");
+ OUString aDocumentsDirURL = xdg_user_dir_lookup("Documents");
return uno::makeAny( aDocumentsDirURL );
}
+ case SETTING_TEMPLATE_DIRECTORY:
+ {
+ OUString aTemplatesDirURL = xdg_user_dir_lookup("Templates");
+
+ return uno::makeAny( aTemplatesDirURL );
+ }
+
case SETTING_USER_GIVENNAME:
{
OUString aCompleteName( OStringToOUString(
@@ -392,7 +393,7 @@ sal_Bool SAL_CALL isDependencySatisfied( GConfClient* pClient, const Configurati
case SETTING_WORK_DIRECTORY:
{
- OUString aDocumentsDirURL = xdg_user_dir_lookup("DOCUMENTS");
+ OUString aDocumentsDirURL = xdg_user_dir_lookup("Documents");
osl::Directory aDocumentsDir( aDocumentsDirURL );
if( osl::FileBase::E_None == aDocumentsDir.open() )
@@ -400,6 +401,16 @@ sal_Bool SAL_CALL isDependencySatisfied( GConfClient* pClient, const Configurati
}
break;
+ case SETTING_TEMPLATE_DIRECTORY:
+ {
+ OUString aTemplatesDirURL = xdg_user_dir_lookup("Templates");
+ osl::Directory aTemplatesDir( aTemplatesDirURL );
+
+ if( osl::FileBase::E_None == aTemplatesDir.open() )
+ return sal_True;
+ }
+ break;
+
case SETTING_USER_GIVENNAME:
{
OUString aCompleteName( OStringToOUString(
@@ -563,6 +574,14 @@ ConfigurationValue const ConfigurationValues[] =
},
{
+ SETTING_TEMPLATE_DIRECTORY,
+ "/desktop/gnome/url-handlers/mailto/command", // dummy
+ RTL_CONSTASCII_STRINGPARAM("TemplatePathVariable"),
+ sal_True,
+ SETTING_TEMPLATE_DIRECTORY, // so that the existence of the dir can be checked
+ },
+
+ {
SETTING_USER_GIVENNAME,
"/desktop/gnome/url-handlers/mailto/command", // dummy
RTL_CONSTASCII_STRINGPARAM("givenname"),
diff --git a/shell/source/backends/gconfbe/gconfaccess.hxx b/shell/source/backends/gconfbe/gconfaccess.hxx
index 7f0a52a..3fcd217 100644
--- a/shell/source/backends/gconfbe/gconfaccess.hxx
+++ b/shell/source/backends/gconfbe/gconfaccess.hxx
@@ -47,6 +47,7 @@ enum ConfigurationSetting
SETTING_ENABLE_ACCESSIBILITY,
SETTING_MAILER_PROGRAM,
SETTING_WORK_DIRECTORY,
+ SETTING_TEMPLATE_DIRECTORY,
SETTING_SOURCEVIEWFONT_NAME,
SETTING_SOURCEVIEWFONT_HEIGHT,
SETTING_USER_GIVENNAME,
--
1.9.0

@ -1,83 +0,0 @@
From 903652fafacf5268aeac4a702d52de44a8388652 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 11 Apr 2014 14:45:39 +0100
Subject: [PATCH] Resolves: rhbz#1081176: don't jump to cursor pos when...
launching a new window view of a document. This was happening because of
(temporary) activation of the modified flag (from updating the document stats
in the bottom bar) triggering a scrolll to the current cursor position of the
old document
Change-Id: I6e1a3c07b66ff6373345850d1449f17c1f0baa17
(cherry picked from commit e12184393f0591b5c5d9218062cc0a4bced6d4e6)
---
sw/source/core/doc/doc.cxx | 39 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 38 insertions(+), 1 deletion(-)
diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx
index 6382d74..047b8b3 100644
--- a/sw/source/core/doc/doc.cxx
+++ b/sw/source/core/doc/doc.cxx
@@ -1650,6 +1650,40 @@ void SwDoc::CalculatePagePairsForProspectPrinting(
// thus we are done here.
}
+namespace
+{
+ class LockAllViews
+ {
+ std::vector<SwViewShell*> m_aViewWasUnLocked;
+ SwViewShell* m_pViewShell;
+ public:
+ LockAllViews(SwViewShell *pViewShell)
+ : m_pViewShell(pViewShell)
+ {
+ if (!m_pViewShell)
+ return;
+ SwViewShell *pSh = m_pViewShell;
+ do
+ {
+ if (!pSh->IsViewLocked())
+ {
+ m_aViewWasUnLocked.push_back(pSh);
+ pSh->LockView(true);
+ }
+ pSh = (SwViewShell*)pSh->GetNext();
+ } while (pSh != m_pViewShell);
+ }
+ ~LockAllViews()
+ {
+ for (std::vector<SwViewShell*>::iterator aI = m_aViewWasUnLocked.begin(); aI != m_aViewWasUnLocked.end(); ++aI)
+ {
+ SwViewShell *pSh = *aI;
+ pSh->LockView(false);
+ }
+ }
+ };
+}
+
// returns true while there is more to do
bool SwDoc::IncrementalDocStatCalculate(long nChars, bool bFields)
{
@@ -1720,7 +1754,7 @@ bool SwDoc::IncrementalDocStatCalculate(long nChars, bool bFields)
aStat[n++].Value <<= (sal_Int32)mpDocStat->nCharExcludingSpaces;
// For e.g. autotext documents there is no pSwgInfo (#i79945)
- SfxObjectShell * const pObjShell( GetDocShell() );
+ SwDocShell* pObjShell(GetDocShell());
if (pObjShell)
{
const uno::Reference<document::XDocumentPropertiesSupplier> xDPS(
@@ -1730,6 +1764,9 @@ bool SwDoc::IncrementalDocStatCalculate(long nChars, bool bFields)
// #i96786#: do not set modified flag when updating statistics
const bool bDocWasModified( IsModified() );
const ModifyBlocker_Impl b(pObjShell);
+ // rhbz#1081176: don't jump to cursor pos because of (temporary)
+ // activation of modified flag triggering move to input position
+ LockAllViews aViewGuard((SwViewShell*)pObjShell->GetWrtShell());
xDocProps->setDocumentStatistics(aStat);
if (!bDocWasModified)
{
--
1.8.5.3

@ -1,79 +0,0 @@
From 3ea40dc0c3be272fc700a439a99d802ed4542795 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 17 Apr 2014 11:56:17 +0100
Subject: [PATCH] Resolves: rhbz#1086714 overlarge pixmap
(cherry picked from commit f31ac2405bbd0755fb14daa6cb84d7bb7d84c492)
Conflicts:
canvas/source/cairo/cairo_xlib_cairo.cxx
vcl/unx/x11/xlimits.cxx
Change-Id: I015308406a43e6b039059a5e35316d59745d0a48
---
canvas/source/cairo/cairo_canvasbitmap.cxx | 2 +-
canvas/source/cairo/cairo_xlib_cairo.cxx | 9 +++++----
vcl/unx/x11/xlimits.cxx | 13 ++++++-------
3 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/canvas/source/cairo/cairo_canvasbitmap.cxx b/canvas/source/cairo/cairo_canvasbitmap.cxx
index 277c133..d243596 100644
--- a/canvas/source/cairo/cairo_canvasbitmap.cxx
+++ b/canvas/source/cairo/cairo_canvasbitmap.cxx
@@ -158,7 +158,7 @@ namespace cairocanvas
pPixels = cairo_image_surface_create( CAIRO_FORMAT_ARGB32,
aSize.Width(), aSize.Height() );
cairo_t *pCairo = cairo_create( pPixels );
- if( !pPixels || !pCairo )
+ if( !pPixels || !pCairo || cairo_status(pCairo) != CAIRO_STATUS_SUCCESS )
break;
// suck ourselves from the X server to this buffer so then we can fiddle with
diff --git a/canvas/source/cairo/cairo_xlib_cairo.cxx b/canvas/source/cairo/cairo_xlib_cairo.cxx
index bae6943..e5bb189 100644
--- a/canvas/source/cairo/cairo_xlib_cairo.cxx
+++ b/canvas/source/cairo/cairo_xlib_cairo.cxx
@@ -36,11 +36,12 @@ namespace
Pixmap limitXCreatePixmap(Display *display, Drawable d, unsigned int width, unsigned int height, unsigned int depth)
{
// The X protocol request CreatePixmap puts an upper bound
- // of 16 bit to the size.
- //
- // see, e.g. moz#424333, fdo#48961
+ // of 16 bit to the size. And in practice some drivers
+ // fall over with values close to the max.
+
+ // see, e.g. moz#424333, fdo#48961, rhbz#1086714
// we've a duplicate of this in vcl :-(
- if (width > SAL_MAX_INT16 || height > SAL_MAX_INT16)
+ if (width > SAL_MAX_INT16-10 || height > SAL_MAX_INT16-10)
{
SAL_WARN("canvas", "overlarge pixmap: " << width << " x " << height);
return None;
diff --git a/vcl/unx/x11/xlimits.cxx b/vcl/unx/x11/xlimits.cxx
index 71b9983..b8509cb 100644
--- a/vcl/unx/x11/xlimits.cxx
+++ b/vcl/unx/x11/xlimits.cxx
@@ -13,13 +13,12 @@
Pixmap limitXCreatePixmap(Display *display, Drawable d, unsigned int width, unsigned int height, unsigned int depth)
{
// The X protocol request CreatePixmap puts an upper bound
- // of 16 bit to the size. Beyond that there may be implementation
- // limits of the Xserver; which we should catch by a failed XCreatePixmap
- // call. However extra large values should be caught here since we'd run into
- // 16 bit truncation here without noticing.
- //
- // see, e.g. moz#424333
- if (width > SAL_MAX_INT16 || height > SAL_MAX_INT16)
+ // of 16 bit to the size. And in practice some drivers
+ // fall over with values close to the max.
+
+ // see, e.g. moz#424333, fdo#48961, rhbz#1086714
+ // we've a duplicate of this in canvas :-(
+ if (width > SAL_MAX_INT16-10 || height > SAL_MAX_INT16-10)
{
SAL_WARN("vcl", "overlarge pixmap: " << width << " x " << height);
return None;
--
1.9.0

@ -1,118 +0,0 @@
From 195e3a757e98c58ee9e0dd428cd3dbce58ed99b7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 22 Apr 2014 17:23:26 +0100
Subject: [PATCH] Resolves: rhbz#1089377 crash on loading a specific rtf
(cherry picked from commit 5aeaba2e6592dab0404301dcef644144f82ffcbf)
Change-Id: I26864f3a2247f5d7184f395cfed91eaf92e36295
---
writerfilter/source/dmapper/NumberingManager.cxx | 5 ++-
writerfilter/source/rtftok/rtfsdrimport.cxx | 48 ++++++++++++++++++------
2 files changed, 40 insertions(+), 13 deletions(-)
diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx
index 7a1787c..6038df6 100644
--- a/writerfilter/source/dmapper/NumberingManager.cxx
+++ b/writerfilter/source/dmapper/NumberingManager.cxx
@@ -531,6 +531,9 @@ OUString ListDef::GetStyleName( sal_Int32 nId )
uno::Sequence< uno::Sequence< beans::PropertyValue > > ListDef::GetPropertyValues( )
{
+ if (!m_pAbstractDef)
+ return uno::Sequence< uno::Sequence< beans::PropertyValue > >();
+
// [1] Call the same method on the abstract list
uno::Sequence< uno::Sequence< beans::PropertyValue > > aAbstract = m_pAbstractDef->GetPropertyValues( );
@@ -603,7 +606,7 @@ void ListDef::CreateNumberingRules( DomainMapper& rDMapper,
uno::Sequence< uno::Sequence< beans::PropertyValue > > aProps = GetPropertyValues( );
- sal_Int32 nAbstLevels = m_pAbstractDef->Size( );
+ sal_Int32 nAbstLevels = m_pAbstractDef ? m_pAbstractDef->Size() : 0;
sal_Int16 nLevel = 0;
while ( nLevel < nAbstLevels )
{
diff --git a/writerfilter/source/rtftok/rtfsdrimport.cxx b/writerfilter/source/rtftok/rtfsdrimport.cxx
index fa147d7..7788414 100644
--- a/writerfilter/source/rtftok/rtfsdrimport.cxx
+++ b/writerfilter/source/rtftok/rtfsdrimport.cxx
@@ -194,16 +194,16 @@ void RTFSdrImport::applyProperty(uno::Reference<drawing::XShape> xShape, OUStrin
xPropertySet->setPropertyValue("RotateAngle", uno::makeAny(sal_Int32(NormAngle360(nRotation * -1))));
}
- if (nHoriOrient != 0)
+ if (nHoriOrient != 0 && xPropertySet.is())
xPropertySet->setPropertyValue("HoriOrient", uno::makeAny(nHoriOrient));
- if (nVertOrient != 0)
+ if (nVertOrient != 0 && xPropertySet.is())
xPropertySet->setPropertyValue("VertOrient", uno::makeAny(nVertOrient));
- if (obFitShapeToText)
+ if (obFitShapeToText && xPropertySet.is())
{
xPropertySet->setPropertyValue("SizeType", uno::makeAny(*obFitShapeToText ? text::SizeType::MIN : text::SizeType::FIX));
xPropertySet->setPropertyValue("FrameIsAutomaticHeight", uno::makeAny(*obFitShapeToText));
}
- if (!bFilled)
+ if (!bFilled && xPropertySet.is())
{
if (m_bTextFrame)
xPropertySet->setPropertyValue("BackColorTransparency", uno::makeAny(sal_Int32(100)));
@@ -459,21 +459,45 @@ void RTFSdrImport::resolve(RTFShape& rShape, bool bClose)
}
// These are in EMU, convert to mm100.
else if (i->first == "dxTextLeft")
- xPropertySet->setPropertyValue("LeftBorderDistance", uno::makeAny(i->second.toInt32() / 360));
+ {
+ if (xPropertySet.is())
+ xPropertySet->setPropertyValue("LeftBorderDistance", uno::makeAny(i->second.toInt32() / 360));
+ }
else if (i->first == "dyTextTop")
- xPropertySet->setPropertyValue("TopBorderDistance", uno::makeAny(i->second.toInt32() / 360));
+ {
+ if (xPropertySet.is())
+ xPropertySet->setPropertyValue("TopBorderDistance", uno::makeAny(i->second.toInt32() / 360));
+ }
else if (i->first == "dxTextRight")
- xPropertySet->setPropertyValue("RightBorderDistance", uno::makeAny(i->second.toInt32() / 360));
+ {
+ if (xPropertySet.is())
+ xPropertySet->setPropertyValue("RightBorderDistance", uno::makeAny(i->second.toInt32() / 360));
+ }
else if (i->first == "dyTextBottom")
- xPropertySet->setPropertyValue("BottomBorderDistance", uno::makeAny(i->second.toInt32() / 360));
+ {
+ if (xPropertySet.is())
+ xPropertySet->setPropertyValue("BottomBorderDistance", uno::makeAny(i->second.toInt32() / 360));
+ }
else if (i->first == "dxWrapDistLeft")
- xPropertySet->setPropertyValue("LeftMargin", uno::makeAny(i->second.toInt32() / 360));
+ {
+ if (xPropertySet.is())
+ xPropertySet->setPropertyValue("LeftMargin", uno::makeAny(i->second.toInt32() / 360));
+ }
else if (i->first == "dyWrapDistTop")
- xPropertySet->setPropertyValue("TopMargin", uno::makeAny(i->second.toInt32() / 360));
+ {
+ if (xPropertySet.is())
+ xPropertySet->setPropertyValue("TopMargin", uno::makeAny(i->second.toInt32() / 360));
+ }
else if (i->first == "dxWrapDistRight")
- xPropertySet->setPropertyValue("RightMargin", uno::makeAny(i->second.toInt32() / 360));
+ {
+ if (xPropertySet.is())
+ xPropertySet->setPropertyValue("RightMargin", uno::makeAny(i->second.toInt32() / 360));
+ }
else if (i->first == "dyWrapDistBottom")
- xPropertySet->setPropertyValue("BottomMargin", uno::makeAny(i->second.toInt32() / 360));
+ {
+ if (xPropertySet.is())
+ xPropertySet->setPropertyValue("BottomMargin", uno::makeAny(i->second.toInt32() / 360));
+ }
else if (i->first == "fillType")
{
switch (i->second.toInt32())
--
1.9.0

@ -1,45 +0,0 @@
From e419b05d3ec7a4758c14e5653f11a23be4d162ff Mon Sep 17 00:00:00 2001
From: Stephan Bergmann <sbergman@redhat.com>
Date: Thu, 8 May 2014 13:10:46 +0200
Subject: [PATCH] Resolves: rhbz#1092589 Thoroughly check whether JRE is still
present
...not only on Mac OS X. Was able to reproduce this on Fedora 20 where current
JRE was /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.5.x86_64 but for whatever reason
there was also a left-behind /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.0.x86_64 tree
(containing just a handful of sub-dirs, but no real content) that was still
recorded in my ~/.config/libreoffice/4/user/config/javasettings_Linux_X86_64.xml
Change-Id: Ie477c5a506a430f6c29525f6c558dbc18bbf1c48
(cherry picked from commit f5ed2f4e926016d23617355c94dd2292b40e6986)
---
jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
index a3449c3..d3650f9 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
@@ -765,10 +765,10 @@ javaPluginError jfw_plugin_existJRE(const JavaInfo *pInfo, sal_Bool *exist)
{
ret = JFW_PLUGIN_E_ERROR;
}
-#ifdef MACOSX
//We can have the situation that the JavaVM runtime library is not
//contained within JAVA_HOME. Then the check for JAVA_HOME would return
//true although the runtime library may not be loadable.
+ //Or the JAVA_HOME directory of a deinstalled JRE left behind.
if (ret == JFW_PLUGIN_E_NONE && *exist == sal_True)
{
OUString sRuntimeLib = getRuntimeLib(pInfo->arVendorData);
@@ -796,7 +796,6 @@ javaPluginError jfw_plugin_existJRE(const JavaInfo *pInfo, sal_Bool *exist)
+ sRuntimeLib + " \n");
}
}
-#endif
return ret;
}
--
1.9.0

@ -1,102 +0,0 @@
From fd4b20efbb734f5a82c636ded2ec65dcb46c5129 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Mon, 12 May 2014 14:06:37 +0100
Subject: [PATCH] Resolves: rhbz#1096295 hard to distinguish selected from
mouseover
Change-Id: Id6c11afd161bea15266a54a595bf7ee305e954f0
---
.../ui/slidesorter/inc/view/SlsPageObjectPainter.hxx | 1 +
sd/source/ui/slidesorter/inc/view/SlsTheme.hxx | 1 +
sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx | 15 ++++++++-------
sd/source/ui/slidesorter/view/SlsTheme.cxx | 9 +++++----
4 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/sd/source/ui/slidesorter/inc/view/SlsPageObjectPainter.hxx b/sd/source/ui/slidesorter/inc/view/SlsPageObjectPainter.hxx
index ec698d0..7d417da 100644
--- a/sd/source/ui/slidesorter/inc/view/SlsPageObjectPainter.hxx
+++ b/sd/source/ui/slidesorter/inc/view/SlsPageObjectPainter.hxx
@@ -85,6 +85,7 @@ private:
Bitmap maFocusedBackground;
Bitmap maMouseOverBackground;
Bitmap maMouseOverFocusedBackground;
+ Bitmap maMouseOverSelectedBackground;
Bitmap maMouseOverSelectedAndFocusedBackground;
Size maSize;
diff --git a/sd/source/ui/slidesorter/inc/view/SlsTheme.hxx b/sd/source/ui/slidesorter/inc/view/SlsTheme.hxx
index 5a69142..55188af 100644
--- a/sd/source/ui/slidesorter/inc/view/SlsTheme.hxx
+++ b/sd/source/ui/slidesorter/inc/view/SlsTheme.hxx
@@ -82,6 +82,7 @@ public:
Gradient_SelectedPage,
Gradient_SelectedAndFocusedPage,
Gradient_MouseOverPage,
+ Gradient_MouseOverSelected,
Gradient_MouseOverSelectedAndFocusedPage,
Gradient_FocusedPage,
_GradientColorType_Size_
diff --git a/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx b/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx
index 60c51fa..736c6dc 100644
--- a/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx
+++ b/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx
@@ -53,13 +53,7 @@ PageObjectPainter::PageObjectPainter (
mpTheme(rSlideSorter.GetTheme()),
mpPageNumberFont(Theme::GetFont(Theme::Font_PageNumber, *rSlideSorter.GetContentWindow())),
mpShadowPainter(new FramePainter(mpTheme->GetIcon(Theme::Icon_RawShadow))),
- mpFocusBorderPainter(new FramePainter(mpTheme->GetIcon(Theme::Icon_FocusBorder))),
- maNormalBackground(),
- maSelectionBackground(),
- maFocusedSelectionBackground(),
- maMouseOverBackground(),
- maMouseOverFocusedBackground(),
- maSize()
+ mpFocusBorderPainter(new FramePainter(mpTheme->GetIcon(Theme::Icon_FocusBorder)))
{
// Replace the color (not the alpha values) in the focus border with a
// color derived from the current selection color.
@@ -148,6 +142,7 @@ void PageObjectPainter::InvalidateBitmaps (void)
maFocusedSelectionBackground.SetEmpty();
maFocusedBackground.SetEmpty();
maMouseOverBackground.SetEmpty();
+ maMouseOverSelectedBackground.SetEmpty();
maMouseOverFocusedBackground.SetEmpty();
maMouseOverSelectedAndFocusedBackground.SetEmpty();
}
@@ -399,6 +394,12 @@ Bitmap& PageObjectPainter::GetBackgroundForState (
true);
case MouseOver | Selected:
+ return GetBackground(
+ maMouseOverSelectedBackground,
+ Theme::Gradient_MouseOverSelected,
+ rReferenceDevice,
+ false);
+
case MouseOver:
return GetBackground(
maMouseOverBackground,
diff --git a/sd/source/ui/slidesorter/view/SlsTheme.cxx b/sd/source/ui/slidesorter/view/SlsTheme.cxx
index c38951c..3ac38cc 100644
--- a/sd/source/ui/slidesorter/view/SlsTheme.cxx
+++ b/sd/source/ui/slidesorter/view/SlsTheme.cxx
@@ -110,11 +110,12 @@ void Theme::Update (const ::boost::shared_ptr<controller::Properties>& rpPropert
maColor[Color_PageCountFontColor] = White;
// Set up gradients.
- SetGradient(Gradient_SelectedPage, aSelectionColor, 50, 50, +100,+100, +50,+25);
- SetGradient(Gradient_MouseOverPage, aSelectionColor, 75, 75, +100,+100, +50,+25);
- SetGradient(Gradient_SelectedAndFocusedPage, aSelectionColor, 50, 50, +100,+100, -50,-75);
- SetGradient(Gradient_MouseOverSelectedAndFocusedPage, aSelectionColor, 75, 75, +100,+100, -50,-75);
+ SetGradient(Gradient_MouseOverPage, aSelectionColor, 0, 60, +80,+100, +50,+25);
+ SetGradient(Gradient_SelectedPage, aSelectionColor, 50, 50, +80,+100, +50,+25);
SetGradient(Gradient_FocusedPage, aSelectionColor, -1,-1, 0,0, -50,-75);
+ SetGradient(Gradient_MouseOverSelected, aSelectionColor, 55, 60, +80,+100, +50,+25);
+ SetGradient(Gradient_SelectedAndFocusedPage, aSelectionColor, 50, 50, +80,+100, -50,-75);
+ SetGradient(Gradient_MouseOverSelectedAndFocusedPage, aSelectionColor, 55, 60, +80,+100, -50,-75);
SetGradient(Gradient_NormalPage, maBackgroundColor, -1,-1, 0,0, 0,0);
--
1.9.0

@ -1,74 +0,0 @@
From caa42a739923aa35734b6a840de7c1b8f039e9a0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Wed, 8 Jan 2014 11:22:25 +0000
Subject: [PATCH] Resolves: rhbz#1096486 avoid access to nonexisting parent
dialog
was Related: rhbz#1047174
(cherry picked from commit 794f5af121906668870a58700aed25b660381240)
Change-Id: I0bf9116d088adde838993ac5e909a6f3481f883e
---
svx/source/dialog/graphctl.cxx | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/svx/source/dialog/graphctl.cxx b/svx/source/dialog/graphctl.cxx
index 4fc18b7..d70bb3d 100644
--- a/svx/source/dialog/graphctl.cxx
+++ b/svx/source/dialog/graphctl.cxx
@@ -309,6 +309,8 @@ void GraphCtrl::KeyInput( const KeyEvent& rKEvt )
KeyCode aCode( rKEvt.GetKeyCode() );
bool bProc = false;
+ Dialog* pDialog = GetParentDialog();
+
switch ( aCode.GetCode() )
{
case KEY_DELETE:
@@ -318,8 +320,8 @@ void GraphCtrl::KeyInput( const KeyEvent& rKEvt )
{
pView->DeleteMarked();
bProc = true;
- if( !pView->AreObjectsMarked() )
- GetParentDialog()->GrabFocusToFirstControl();
+ if (!pView->AreObjectsMarked() && pDialog)
+ pDialog->GrabFocusToFirstControl();
}
}
break;
@@ -328,9 +330,11 @@ void GraphCtrl::KeyInput( const KeyEvent& rKEvt )
{
if ( bSdrMode )
{
+ bool bGrabFocusToFirstControl = true;
if ( pView->IsAction() )
{
pView->BrkAction();
+ bGrabFocusToFirstControl = false;
}
else if ( pView->AreObjectsMarked() )
{
@@ -340,16 +344,11 @@ void GraphCtrl::KeyInput( const KeyEvent& rKEvt )
if(pHdl)
{
((SdrHdlList&)rHdlList).ResetFocusHdl();
+ bGrabFocusToFirstControl = false;
}
- else
- {
- GetParentDialog()->GrabFocusToFirstControl();
- }
- }
- else
- {
- GetParentDialog()->GrabFocusToFirstControl();
}
+ if (bGrabFocusToFirstControl && pDialog)
+ pDialog->GrabFocusToFirstControl();
bProc = true;
}
}
--
1.9.0

@ -1,47 +0,0 @@
From 1ded21bfb99951ca947bd11a7442398668202ca6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Wed, 4 Dec 2013 15:04:04 +0000
Subject: [PATCH] Resolves: rhbz#912529 Kerkis SmallCaps shown instead of
Kerkis Regular
we encounter both fonts, but all their properties that we compare
are the same, so we think they are two versions of the same font
and throw away the "Regular" version.
Change-Id: I24369f10c7a0edba1faa02621bb78616e880966e
---
vcl/source/gdi/outdev3.cxx | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx
index c27cd93..f3f5a77 100644
--- a/vcl/source/gdi/outdev3.cxx
+++ b/vcl/source/gdi/outdev3.cxx
@@ -665,7 +665,7 @@ PhysicalFontFace::PhysicalFontFace( const ImplDevFontAttributes& rDFA, int nMagi
sal_Int32 PhysicalFontFace::CompareIgnoreSize( const PhysicalFontFace& rOther ) const
{
- // compare their width, weight, italic and style name
+ // compare their width, weight, italic, style name and family name
if( GetWidthType() < rOther.GetWidthType() )
return -1;
else if( GetWidthType() > rOther.GetWidthType() )
@@ -681,7 +681,14 @@ sal_Int32 PhysicalFontFace::CompareIgnoreSize( const PhysicalFontFace& rOther )
else if( GetSlant() > rOther.GetSlant() )
return 1;
- return GetFamilyName().compareTo( rOther.GetFamilyName() );
+ sal_Int32 nRet = GetFamilyName().compareTo( rOther.GetFamilyName() );
+
+ if (nRet == 0)
+ {
+ nRet = GetStyleName().compareTo( rOther.GetStyleName() );
+ }
+
+ return nRet;
}
sal_Int32 PhysicalFontFace::CompareWithSize( const PhysicalFontFace& rOther ) const
--
1.8.3.1

@ -1,73 +0,0 @@
From 633003965a4be0c535b43cc3072c5c4a95109d34 Mon Sep 17 00:00:00 2001
From: Tor Lillqvist <tml@collabora.com>
Date: Fri, 16 May 2014 16:43:25 +0300
Subject: [PATCH] Use SVM (metafile) instead of PNG for diagrams (SmartArt)
It seemed a bit pointless to waste CPU cycles on PNG-compressing a
bitmap image only to later then uncompress it anyway. vcl's PNG
writing code showed up as 13% on the time profile of TiledLibreOffice
when displaying a document full of SmartArts.
Miklos suggested I try using SVM (which I guess means "StarView
Metafile") instead. When using SVM, no rendering of diagrams to
bitmaps during loading is done, but the diagram stays stored in a
resolution-independent (vector-ish) form. Which means it will be
rendered nicely and crisply regardless of the zoom level.
At least, that is my understanding, and experimentation (on OS X and Linux)
seems to confirm.
ce8c0ff07559ddcc729bffd7a68f4c6f281882e3
Change-Id: Ice8c0ff07559ddcc729bffd7a68f4c6f281882e3
---
oox/source/drawingml/shape.cxx | 26 ++++++++++----------------
1 file changed, 10 insertions(+), 16 deletions(-)
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index b319c38..33c846c 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -1088,7 +1088,7 @@ Reference < XShape > Shape::renderDiagramToGraphic( XmlFilterBase& rFilterBase )
Reference < io::XOutputStream > xOutputStream( xStream->getOutputStream() );
// Rendering format
- OUString sFormat( "PNG" );
+ OUString sFormat( "SVM" );
// Size of the rendering
awt::Size aActualSize = mxShape->getSize();
@@ -1097,21 +1097,15 @@ Reference < XShape > Shape::renderDiagramToGraphic( XmlFilterBase& rFilterBase )
awt::Size aSize = awt::Size( static_cast < sal_Int32 > ( ( fPixelsPer100thmm * aActualSize.Width ) + 0.5 ),
static_cast < sal_Int32 > ( ( fPixelsPer100thmm * aActualSize.Height ) + 0.5 ) );
- Sequence< PropertyValue > aFilterData( 7 );
- aFilterData[ 0 ].Name = "Compression";
- aFilterData[ 0 ].Value <<= static_cast < sal_Int32 > ( 9 );
- aFilterData[ 1 ].Name = "Interlaced";
- aFilterData[ 1 ].Value <<= static_cast < sal_Int32 > ( 1 );
- aFilterData[ 2 ].Name = "Translucent";
- aFilterData[ 2 ].Value <<= static_cast < sal_Int32 > ( 1 );
- aFilterData[ 3 ].Name = "PixelWidth";
- aFilterData[ 3 ].Value <<= aSize.Width;
- aFilterData[ 4 ].Name = "PixelHeight";
- aFilterData[ 4 ].Value <<= aSize.Height;
- aFilterData[ 5 ].Name = "LogicalWidth";
- aFilterData[ 5 ].Value <<= aActualSize.Width;
- aFilterData[ 6 ].Name = "LogicalHeight";
- aFilterData[ 6 ].Value <<= aActualSize.Height;
+ Sequence< PropertyValue > aFilterData( 4 );
+ aFilterData[ 0 ].Name = "PixelWidth";
+ aFilterData[ 0 ].Value <<= aSize.Width;
+ aFilterData[ 1 ].Name = "PixelHeight";
+ aFilterData[ 1 ].Value <<= aSize.Height;
+ aFilterData[ 2 ].Name = "LogicalWidth";
+ aFilterData[ 2 ].Value <<= aActualSize.Width;
+ aFilterData[ 3 ].Name = "LogicalHeight";
+ aFilterData[ 3 ].Value <<= aActualSize.Height;
Sequence < PropertyValue > aDescriptor( 3 );
aDescriptor[ 0 ].Name = "OutputStream";
--
1.9.0

@ -1,33 +0,0 @@
From 97822e3cbc63d3bd110bc3c654b3fbb4d4d1904c Mon Sep 17 00:00:00 2001
From: Stephan Bergmann <sbergman@redhat.com>
Date: Mon, 3 Mar 2014 11:57:34 +0100
Subject: [PATCH] Wizards should look for templates in Template_internal, not
Template_user
...as only the former reliably denotes the share/template tree where the
wizard templates are stored. (Presumably the latter defaulted to the former as
long as it wasn't explicitly set in the past, but is now always explicitly set
since 838b77f5f3d6d8fd98891e99a23ff78a6a357cb2 "Resolves: rhbz#1065807 use xdg
~/Templates for default Template location.")
Change-Id: I7d1ac47d821c778fe342865465d0505a94b824bf
---
wizards/com/sun/star/wizards/ui/WizardDialog.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/wizards/com/sun/star/wizards/ui/WizardDialog.py b/wizards/com/sun/star/wizards/ui/WizardDialog.py
index 6cf9bc5..4e41fdf 100644
--- a/wizards/com/sun/star/wizards/ui/WizardDialog.py
+++ b/wizards/com/sun/star/wizards/ui/WizardDialog.py
@@ -126,7 +126,7 @@ class WizardDialog(UnoDialog2):
xPropertySet = \
self.xMSF.createInstance("com.sun.star.util.PathSettings")
self.sTemplatePath = \
- xPropertySet.getPropertyValue("Template_user")[0]
+ xPropertySet.getPropertyValue("Template_internal")[0]
self.sUserTemplatePath = \
xPropertySet.getPropertyValue("Template_writable")
--
1.8.5.3

@ -1,45 +0,0 @@
From 63c568821277e16db6b972b58b57c50d809df416 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 4 Mar 2014 13:31:41 +0000
Subject: [PATCH] actively search for wizards dir in all internal templates
Change-Id: I4ef6da4d9d1931917e0aaa6e110fd273bd917b26
---
wizards/com/sun/star/wizards/ui/WizardDialog.py | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/wizards/com/sun/star/wizards/ui/WizardDialog.py b/wizards/com/sun/star/wizards/ui/WizardDialog.py
index 239644b..08a8c2d 100644
--- a/wizards/com/sun/star/wizards/ui/WizardDialog.py
+++ b/wizards/com/sun/star/wizards/ui/WizardDialog.py
@@ -23,6 +23,7 @@ from .UnoDialog2 import UnoDialog2, Desktop, PropertyNames, UIConsts, \
from .event.CommonListener import TerminateListenerProcAdapter
from ..common.Resource import Resource
from ..common.HelpIds import HelpIds
+from ..common.FileAccess import FileAccess
from ..document.OfficeDocument import OfficeDocument
from ..text.TextDocument import TextDocument
@@ -114,10 +115,17 @@ class WizardDialog(UnoDialog2):
def initializePaths(self):
xPropertySet = \
self.xMSF.createInstance("com.sun.star.util.PathSettings")
- self.sTemplatePath = \
- xPropertySet.getPropertyValue("Template_internal")[0]
self.sUserTemplatePath = \
xPropertySet.getPropertyValue("Template_writable")
+ myFA = FileAccess(self.xMSF)
+ aInternalPaths = xPropertySet.getPropertyValue("Template_internal")
+ self.sTemplatePath = ""
+ for path in aInternalPaths:
+ if myFA.exists(path + "/wizard", False):
+ self.sTemplatePath = path
+ break
+ if self.sTemplatePath == "":
+ raise Exception("could not find wizard templates")
def addRoadmap(self):
try:
--
1.8.5.3

@ -1,4 +1,4 @@
From f04a62ef7e5146daefe19b04db95828198c0e1e0 Mon Sep 17 00:00:00 2001
From 5c6b12167e070e2713640e0756f40efa2fd7494c Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Mon, 28 Apr 2014 09:59:10 +0200
Subject: [PATCH] add X-TryExec entries to desktop files
@ -14,7 +14,7 @@ Change-Id: Ic3626f79fa8b0b6e0d6696799445eaea8b0ab47f
6 files changed, 6 insertions(+)
diff --git a/sysui/desktop/menus/base.desktop b/sysui/desktop/menus/base.desktop
index 62626d4..69ddaea 100755
index 26f1c6a..2861dfe 100644
--- a/sysui/desktop/menus/base.desktop
+++ b/sysui/desktop/menus/base.desktop
@@ -32,6 +32,7 @@ Keywords=Data;SQL;
@ -26,7 +26,7 @@ index 62626d4..69ddaea 100755
Actions=NewDocument;
[Desktop Action NewDocument]
diff --git a/sysui/desktop/menus/calc.desktop b/sysui/desktop/menus/calc.desktop
index e50de65..8e9d7ea 100755
index fc5e241..c50f380 100644
--- a/sysui/desktop/menus/calc.desktop
+++ b/sysui/desktop/menus/calc.desktop
@@ -32,6 +32,7 @@ Keywords=Accounting;Stats;OpenDocument Spreadsheet;Chart;Microsoft Excel;Microso
@ -38,7 +38,7 @@ index e50de65..8e9d7ea 100755
Actions=NewDocument;
[Desktop Action NewDocument]
diff --git a/sysui/desktop/menus/draw.desktop b/sysui/desktop/menus/draw.desktop
index a807fe0..4f5428f 100755
index b5d58ce..274275f 100644
--- a/sysui/desktop/menus/draw.desktop
+++ b/sysui/desktop/menus/draw.desktop
@@ -32,6 +32,7 @@ Keywords=Vector;Schema;Diagram;Layout;OpenDocument Graphics;Microsoft Publisher;
@ -50,7 +50,7 @@ index a807fe0..4f5428f 100755
Actions=NewDocument;
[Desktop Action NewDocument]
diff --git a/sysui/desktop/menus/impress.desktop b/sysui/desktop/menus/impress.desktop
index fda44e4..21336fe 100755
index c1f6231..7e70bfb 100644
--- a/sysui/desktop/menus/impress.desktop
+++ b/sysui/desktop/menus/impress.desktop
@@ -32,6 +32,7 @@ Keywords=Slideshow;Slides;OpenDocument Presentation;Microsoft PowerPoint;Microso
@ -62,7 +62,7 @@ index fda44e4..21336fe 100755
Actions=NewDocument;
[Desktop Action NewDocument]
diff --git a/sysui/desktop/menus/math.desktop b/sysui/desktop/menus/math.desktop
index 4822166..acb7d21 100755
index b6981f5..4d7bd3c 100644
--- a/sysui/desktop/menus/math.desktop
+++ b/sysui/desktop/menus/math.desktop
@@ -33,6 +33,7 @@ Keywords=Equation;OpenDocument Formula;Formula;odf;MathML;
@ -74,7 +74,7 @@ index 4822166..acb7d21 100755
Actions=NewDocument;
[Desktop Action NewDocument]
diff --git a/sysui/desktop/menus/writer.desktop b/sysui/desktop/menus/writer.desktop
index e59187e..ece25c2 100755
index c4cea12..6d943a9 100644
--- a/sysui/desktop/menus/writer.desktop
+++ b/sysui/desktop/menus/writer.desktop
@@ -32,6 +32,7 @@ Keywords=Text;Letter;Fax;Document;OpenDocument Text;Microsoft Word;Microsoft Wor

@ -1,441 +0,0 @@
From ebb728c9c01b5e86926381fa816cf69cb3eb1e37 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 22 Apr 2014 17:06:26 +0100
Subject: [PATCH] add a 'format all comments' feature
Change-Id: Ie9530f0f58b38d014beda60b9efba3ce93fe5c0e
---
.../org/openoffice/Office/UI/GenericCommands.xcu | 5 ++
sw/inc/PostItMgr.hxx | 5 ++
sw/inc/cmdid.h | 2 +-
sw/inc/swcommands.h | 1 +
sw/sdi/_annotsh.sdi | 6 ++
sw/sdi/_textsh.sdi | 5 ++
sw/sdi/swriter.sdi | 24 +++++++
.../core/uibase/docvw/AnnotationMenuButton.cxx | 2 +
sw/source/core/uibase/docvw/PostItMgr.cxx | 77 +++++++++++++++++++++-
sw/source/core/uibase/docvw/SidebarWin.cxx | 1 +
sw/source/core/uibase/docvw/annotation.hrc | 1 +
sw/source/core/uibase/inc/annotsh.hxx | 2 +
sw/source/core/uibase/shells/annotsh.cxx | 17 +++--
sw/source/core/uibase/shells/textfld.cxx | 14 +++-
sw/source/ui/app/mn.src | 6 ++
sw/source/ui/docvw/annotation.src | 5 ++
16 files changed, 166 insertions(+), 7 deletions(-)
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
index a16b900..a2d997c 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
@@ -5298,6 +5298,11 @@
<value xml:lang="en-US">Delete All Comments</value>
</prop>
</node>
+ <node oor:name=".uno:FormatAllNotes" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Format All Comments</value>
+ </prop>
+ </node>
<node oor:name=".uno:DeleteAuthor" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Delete All Comments by This Author</value>
diff --git a/sw/inc/PostItMgr.hxx b/sw/inc/PostItMgr.hxx
index 0ac0273..56760fd 100644
--- a/sw/inc/PostItMgr.hxx
+++ b/sw/inc/PostItMgr.hxx
@@ -44,6 +44,8 @@ class SfxBroadcaster;
class SfxHint;
class SwEditWin;
class Color;
+class SfxItemPool;
+class SfxItemSet;
class SvxSearchItem;
class SvxLanguageItem;
namespace sw { namespace annotation {
@@ -219,6 +221,9 @@ class SwPostItMgr: public SfxListener
void Delete(OUString aAuthor);
void Delete();
+ void ExecuteFormatAllDialog(SwView& rView);
+ void FormatAll(const SfxItemSet &rNewAttr);
+
void Hide( const OUString& rAuthor );
void Hide();
void Show();
diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h
index 7d506a3..b10359a 100644
--- a/sw/inc/cmdid.h
+++ b/sw/inc/cmdid.h
@@ -780,7 +780,7 @@ included in c-context files, so c++ style stuff will cause problems.
#define FN_DELETE_COMMENT (FN_NOTES+6)
#define FN_REPLY (FN_NOTES+7)
-
+#define FN_FORMAT_ALL_NOTES (FN_NOTES+8)
#define FN_HEADERFOOTER_EDIT (FN_HEADERFOOTER+1)
#define FN_HEADERFOOTER_DELETE (FN_HEADERFOOTER+2)
diff --git a/sw/inc/swcommands.h b/sw/inc/swcommands.h
index 0f5cd54..cc9bc07 100644
--- a/sw/inc/swcommands.h
+++ b/sw/inc/swcommands.h
@@ -116,6 +116,7 @@
#define CMD_FN_DELETE_COMMENT ".uno:DeleteComment"
#define CMD_FN_DELETE_NOTE_AUTHOR ".uno:DeleteAuthor"
#define CMD_FN_DELETE_ALL_NOTES ".uno:DeleteAllNotes"
+#define CMD_FN_FORMAT_ALL_NOTES ".uno:FormatAllNotes"
#define CMD_FN_HIDE_NOTE ".uno:HideNote"
#define CMD_FN_HIDE_NOTE_AUTHOR ".uno:HideAuthor"
#define CMD_FN_HIDE_ALL_NOTES ".uno:HideAllNotes"
diff --git a/sw/sdi/_annotsh.sdi b/sw/sdi/_annotsh.sdi
index 142d5e7..15f03ad 100644
--- a/sw/sdi/_annotsh.sdi
+++ b/sw/sdi/_annotsh.sdi
@@ -37,6 +37,12 @@ interface _Annotation
StateMethod = GetNoteState ;
]
+ FN_FORMAT_ALL_NOTES
+ [
+ ExecMethod = NoteExec ;
+ StateMethod = GetNoteState ;
+ ]
+
FN_HIDE_NOTE
[
ExecMethod = NoteExec ;
diff --git a/sw/sdi/_textsh.sdi b/sw/sdi/_textsh.sdi
index 0fb5cdb..c90bfcd 100644
--- a/sw/sdi/_textsh.sdi
+++ b/sw/sdi/_textsh.sdi
@@ -941,6 +941,11 @@ interface BaseText
ExecMethod = ExecField ;
StateMethod = StateField;
]
+ FN_FORMAT_ALL_NOTES
+ [
+ ExecMethod = ExecField ;
+ StateMethod = StateField;
+ ]
FN_HIDE_NOTE
[
ExecMethod = ExecField ;
diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi
index f8218fe..9312844 100644
--- a/sw/sdi/swriter.sdi
+++ b/sw/sdi/swriter.sdi
@@ -9920,6 +9920,30 @@ SfxVoidItem DeleteAllNotes FN_DELETE_ALL_NOTES
GroupId = GID_EDIT;
]
+SfxVoidItem FormatAllNotes FN_FORMAT_ALL_NOTES
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_EDIT;
+]
+
//--------------------------------------------------------------------------
SfxVoidItem HideNote FN_HIDE_NOTE
()
diff --git a/sw/source/ui/app/mn.src b/sw/source/ui/app/mn.src
index eb5ee0e..94ddb2f 100644
--- a/sw/source/ui/app/mn.src
+++ b/sw/source/ui/app/mn.src
@@ -761,6 +761,12 @@ location: <project>/uiconfig/[swriter|sweb|sglobal]/menubar/menubar.xml
HelpId = CMD_FN_DELETE_ALL_NOTES ;\
Text [ en-US ] = "~Delete All Comments" ;\
};\
+ MenuItem\
+ {\
+ Identifier = FN_FORMAT_ALL_NOTES ;\
+ HelpId = CMD_FN_FORMAT_ALL_NOTES ;\
+ Text [ en-US ] = "~Format All Comments" ;\
+ };\
/*
MenuItem\
{\
diff --git a/sw/source/ui/docvw/AnnotationMenuButton.cxx b/sw/source/ui/docvw/AnnotationMenuButton.cxx
index 0bd4bf2..218daee 100644
--- a/sw/source/ui/docvw/AnnotationMenuButton.cxx
+++ b/sw/source/ui/docvw/AnnotationMenuButton.cxx
@@ -74,12 +74,14 @@ void AnnotationMenuButton::MouseButtonDown( const MouseEvent& rMEvt )
pButtonPopup->EnableItem( FN_DELETE_COMMENT, false );
pButtonPopup->EnableItem( FN_DELETE_NOTE_AUTHOR, false );
pButtonPopup->EnableItem( FN_DELETE_ALL_NOTES, false );
+ pButtonPopup->EnableItem( FN_FORMAT_ALL_NOTES, false );
}
else
{
pButtonPopup->EnableItem( FN_DELETE_COMMENT, !mrSidebarWin.IsProtected() );
pButtonPopup->EnableItem( FN_DELETE_NOTE_AUTHOR, true );
pButtonPopup->EnableItem( FN_DELETE_ALL_NOTES, true );
+ pButtonPopup->EnableItem( FN_FORMAT_ALL_NOTES, true );
}
if ( mrSidebarWin.IsProtected() )
diff --git a/sw/source/ui/docvw/PostItMgr.cxx b/sw/source/ui/docvw/PostItMgr.cxx
index e6b7cb6..c2b1225 100644
--- a/sw/source/ui/docvw/PostItMgr.cxx
+++ b/sw/source/ui/docvw/PostItMgr.cxx
@@ -34,8 +34,8 @@
#include <vcl/scrbar.hxx>
#include <vcl/outdev.hxx>
+#include <chrdlgmodes.hxx>
#include <viewopt.hxx>
-
#include <view.hxx>
#include <docsh.hxx>
#include <wrtsh.hxx>
@@ -67,11 +67,14 @@
#include <svx/svdview.hxx>
#include <editeng/eeitem.hxx>
#include <editeng/langitem.hxx>
+#include <editeng/kernitem.hxx>
#include <editeng/outliner.hxx>
#include <i18nlangtag/mslangid.hxx>
#include <i18nlangtag/lang.h>
+#include "annotsh.hxx"
+#include "swabstdlg.hxx"
#include "swevent.hxx"
#include "switerator.hxx"
@@ -1227,6 +1230,78 @@ void SwPostItMgr::Delete()
CalcRects();
LayoutPostIts();
}
+
+void SwPostItMgr::ExecuteFormatAllDialog(SwView& rView)
+{
+ if (mvPostItFlds.empty())
+ return;
+ sw::sidebarwindows::SwSidebarWin *pOrigActiveWin = GetActiveSidebarWin();
+ sw::sidebarwindows::SwSidebarWin *pWin = pOrigActiveWin;
+ if (!pWin)
+ {
+ for (SwSidebarItem_iterator i = mvPostItFlds.begin(); i != mvPostItFlds.end(); ++i)
+ {
+ pWin = (*i)->pPostIt;
+ if (pWin)
+ break;
+ }
+ }
+ if (!pWin)
+ return;
+ SetActiveSidebarWin(pWin);
+ OutlinerView* pOLV = pWin->GetOutlinerView();
+ SfxItemSet aEditAttr(pOLV->GetAttribs());
+ SfxItemPool* pPool(SwAnnotationShell::GetAnnotationPool(rView));
+ SfxItemSet aDlgAttr(*pPool, EE_ITEMS_START, EE_ITEMS_END);
+ aDlgAttr.Put(aEditAttr);
+ SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
+ SfxAbstractTabDialog* pDlg = pFact->CreateSwCharDlg(rView.GetWindow(), rView, aDlgAttr, DLG_CHAR_ANN);
+ sal_uInt16 nRet = pDlg->Execute();
+ if (RET_OK == nRet)
+ {
+ aDlgAttr.Put(*pDlg->GetOutputItemSet());
+ FormatAll(aDlgAttr);
+ }
+ delete pDlg;
+ SetActiveSidebarWin(pOrigActiveWin);
+}
+
+void SwPostItMgr::FormatAll(const SfxItemSet &rNewAttr)
+{
+ mpWrtShell->StartAllAction();
+ SwRewriter aRewriter;
+ aRewriter.AddRule(UndoArg1, SW_RES(STR_FORMAT_ALL_NOTES) );
+ mpWrtShell->StartUndo( UNDO_INSATTR, &aRewriter );
+
+ for(SwSidebarItem_iterator i = mvPostItFlds.begin(); i != mvPostItFlds.end() ; ++i)
+ {
+ if (!(*i)->pPostIt)
+ continue;
+ OutlinerView* pOLV = (*i)->pPostIt->GetOutlinerView();
+ //save old selection
+ ESelection aOrigSel(pOLV->GetSelection());
+ //select all
+ Outliner *pOutliner = pOLV->GetOutliner();
+ if (pOutliner)
+ {
+ sal_Int32 nParaCount = pOutliner->GetParagraphCount();
+ if (nParaCount > 0)
+ pOLV->SelectRange(0, nParaCount);
+ }
+ //set new char properties
+ pOLV->SetAttribs(rNewAttr);
+ //restore old selection
+ pOLV->SetSelection(aOrigSel);
+ }
+
+ mpWrtShell->EndUndo();
+ PrepareView();
+ mpWrtShell->EndAllAction();
+ mbLayout = true;
+ CalcRects();
+ LayoutPostIts();
+}
+
void SwPostItMgr::Hide( const OUString& rAuthor )
{
for(SwSidebarItem_iterator i = mvPostItFlds.begin(); i != mvPostItFlds.end() ; ++i)
diff --git a/sw/source/ui/docvw/SidebarWin.cxx b/sw/source/ui/docvw/SidebarWin.cxx
index 275b72e..4a0d4a7 100644
--- a/sw/source/ui/docvw/SidebarWin.cxx
+++ b/sw/source/ui/docvw/SidebarWin.cxx
@@ -971,6 +971,7 @@ void SwSidebarWin::ExecuteCommand(sal_uInt16 nSlot)
//Delete(); // do not kill the parent of our open popup menu
mnEventId = Application::PostUserEvent( LINK( this, SwSidebarWin, DeleteHdl), 0 );
break;
+ case FN_FORMAT_ALL_NOTES:
case FN_DELETE_ALL_NOTES:
case FN_HIDE_ALL_NOTES:
// not possible as slot as this would require that "this" is the active postit
diff --git a/sw/source/ui/docvw/annotation.hrc b/sw/source/ui/docvw/annotation.hrc
index 7daf555..5fe3e49 100644
--- a/sw/source/ui/docvw/annotation.hrc
+++ b/sw/source/ui/docvw/annotation.hrc
@@ -32,6 +32,7 @@
#define STR_NOAUTHOR (RC_ANNOTATION_BEGIN + 6)
#define STR_REPLY (RC_ANNOTATION_BEGIN + 7)
+#define STR_FORMAT_ALL_NOTES (RC_ANNOTATION_BEGIN + 8)
#define ANNOTATION_ACT_END STR_REPLY
diff --git a/sw/source/ui/docvw/annotation.src b/sw/source/ui/docvw/annotation.src
index 46afad9..a45c3ca 100644
--- a/sw/source/ui/docvw/annotation.src
+++ b/sw/source/ui/docvw/annotation.src
@@ -35,6 +35,11 @@ String STR_DELETE_ALL_NOTES
Text [ en-US ] = "All Comments" ;
};
+String STR_FORMAT_ALL_NOTES
+{
+ Text [ en-US ] = "All Comments" ;
+};
+
String STR_DELETE_AUTHOR_NOTES
{
Text [ en-US ] = "Comments by " ;
diff --git a/sw/source/ui/inc/annotsh.hxx b/sw/source/ui/inc/annotsh.hxx
index 5872c95..09961a7 100644
--- a/sw/source/ui/inc/annotsh.hxx
+++ b/sw/source/ui/inc/annotsh.hxx
@@ -68,6 +68,8 @@ public:
virtual ::svl::IUndoManager*
GetUndoManager();
+
+ static SfxItemPool* GetAnnotationPool(SwView& rV);
};
#endif
diff --git a/sw/source/ui/shells/annotsh.cxx b/sw/source/ui/shells/annotsh.cxx
index 1106013..c83a99d 100644
--- a/sw/source/ui/shells/annotsh.cxx
+++ b/sw/source/ui/shells/annotsh.cxx
@@ -145,11 +145,16 @@ SFX_IMPL_INTERFACE(SwAnnotationShell, SfxShell, SW_RES(STR_SHELLNAME_DRAW_TEXT))
TYPEINIT1(SwAnnotationShell,SfxShell)
+SfxItemPool* SwAnnotationShell::GetAnnotationPool(SwView& rV)
+{
+ SwWrtShell &rSh = rV.GetWrtShell();
+ return rSh.GetAttrPool().GetSecondaryPool();
+}
+
SwAnnotationShell::SwAnnotationShell( SwView& r )
-: rView(r)
+ : rView(r)
{
- SwWrtShell &rSh = rView.GetWrtShell();
- SetPool(rSh.GetAttrPool().GetSecondaryPool());
+ SetPool(SwAnnotationShell::GetAnnotationPool(rView));
SfxShell::SetContextName(sfx2::sidebar::EnumContext::GetContextName(sfx2::sidebar::EnumContext::Context_Annotation));
}
@@ -1087,9 +1092,12 @@ void SwAnnotationShell::NoteExec(SfxRequest &rReq)
pPostItMgr->GetActiveSidebarWin()->ExecuteCommand(nSlot);
break;
- case FN_DELETE_ALL_NOTES:
+ case FN_DELETE_ALL_NOTES:
pPostItMgr->Delete();
break;
+ case FN_FORMAT_ALL_NOTES:
+ pPostItMgr->ExecuteFormatAllDialog(rView);
+ break;
case FN_DELETE_NOTE_AUTHOR:
{
SFX_REQUEST_ARG( rReq, pItem, SfxStringItem, nSlot, sal_False);
@@ -1124,6 +1132,7 @@ void SwAnnotationShell::GetNoteState(SfxItemSet &rSet)
case FN_POSTIT:
case FN_DELETE_NOTE_AUTHOR:
case FN_DELETE_ALL_NOTES:
+ case FN_FORMAT_ALL_NOTES:
case FN_HIDE_NOTE:
case FN_HIDE_NOTE_AUTHOR:
case FN_HIDE_ALL_NOTES:
diff --git a/sw/source/ui/shells/textfld.cxx b/sw/source/ui/shells/textfld.cxx
index a7050c4..7289f37 100644
--- a/sw/source/ui/shells/textfld.cxx
+++ b/sw/source/ui/shells/textfld.cxx
@@ -18,9 +18,13 @@
*/
+#include <chrdlgmodes.hxx>
#include <crsskip.hxx>
#include <hintids.hxx>
-
+#include <SidebarWin.hxx>
+#include <editeng/eeitem.hxx>
+#include <editeng/kernitem.hxx>
+#include <editeng/outliner.hxx>
#include <sfx2/lnkbase.hxx>
#include <fmtfld.hxx>
#include <vcl/msgbox.hxx>
@@ -321,6 +325,13 @@ void SwTextShell::ExecField(SfxRequest &rReq)
if ( GetView().GetPostItMgr() )
GetView().GetPostItMgr()->Delete();
break;
+ case FN_FORMAT_ALL_NOTES:
+ {
+ SwPostItMgr* pPostItMgr = GetView().GetPostItMgr();
+ if (pPostItMgr)
+ pPostItMgr->ExecuteFormatAllDialog(GetView());
+ }
+ break;
case FN_DELETE_NOTE_AUTHOR:
{
SFX_REQUEST_ARG( rReq, pNoteItem, SfxStringItem, nSlot, sal_False);
@@ -629,6 +640,7 @@ void SwTextShell::StateField( SfxItemSet &rSet )
case FN_DELETE_COMMENT:
case FN_DELETE_NOTE_AUTHOR:
case FN_DELETE_ALL_NOTES:
+ case FN_FORMAT_ALL_NOTES:
case FN_HIDE_NOTE:
case FN_HIDE_NOTE_AUTHOR:
case FN_HIDE_ALL_NOTES:

@ -1,232 +0,0 @@
From d6f5d4ee2cd0654497f1af37421d788411db762c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 8 May 2014 14:27:53 +0100
Subject: [PATCH] add a status bar icon to fit slide to window
Change-Id: I2c1d1fc7425b0aaad2a2445e0ac71ddc38410fdb
---
icon-themes/galaxy/svx/res/zoom_page_statusbar.png | Bin 0 -> 418 bytes
include/svx/dialogs.hrc | 6 ++-
include/svx/zoomctrl.hxx | 15 ++++++-
sd/source/ui/app/sddll.cxx | 1 +
sd/uiconfig/simpress/statusbar/statusbar.xml | 1 +
svx/source/stbctrls/modctrl.cxx | 7 ----
svx/source/stbctrls/stbctrls.src | 13 ++++++
svx/source/stbctrls/zoomctrl.cxx | 46 +++++++++++++++++----
8 files changed, 70 insertions(+), 19 deletions(-)
create mode 100644 icon-themes/galaxy/svx/res/zoom_page_statusbar.png
diff --git a/icon-themes/galaxy/svx/res/zoom_page_statusbar.png b/icon-themes/galaxy/svx/res/zoom_page_statusbar.png
new file mode 100644
index 0000000000000000000000000000000000000000..5fb2d59cf7549dbb665e9efc81f7a94c0f4e4980
GIT binary patch
literal 418
zcmeAS@N?(olHy`uVBq!ia0vp^d>}Rl8<3oNC%zs?aTa()76ZkPfH31!Z9ZwBAbW|Y
zuPggKRt_Em37r=8g+L+M%#er@=ltB<)VvZPmw~~#C^fMpHASI3vm`^o-P1Q9MK6_|
zfq_xN)5S4F<9zQVMQ;~Jf#dbYn_qus^<|gZlVlLhn=WYb!{o$M=H~ea)HIsH)+Pzs
zA7O3wT<!RQnWHN9NYYN((@OU~+wN#=ygT#n`E&LEns;A*lE%|;bX!fb0n4?}O5<dX
zBP$yYG;y3?)w5~73FFjRqO6}+&3XR1*2|{TW5xd8YXhd0oV`(6ZYBHdQ~vRt-H{3P
zO?(bLo2Cj)Kj7T+iE+x#cR@XuxEqyJ&pA!l`f-MH`F|l}t@3pYiCo3ckIt24FnsJV
zH9R!$%!)HFo`>b1UD040>XycHdeXZiA&sHNY`QYup??3pE~^|b;>byRP|ES8VP<`l
z`Gp^To!vF}*zE59-5A<;>sii<PkM)B1AO)tz3bC*Kj0PpkDZ@gvQdmDelaNUJYD@<
J);T3K0RSRFrP=@h
literal 0
HcmV?d00001
diff --git a/include/svx/dialogs.hrc b/include/svx/dialogs.hrc
index 4c3d681..797acfa 100644
--- a/include/svx/dialogs.hrc
+++ b/include/svx/dialogs.hrc
@@ -996,12 +996,14 @@
#define RID_SVXSTR_DOC_LOAD (SVX_OOO_BUILD_START + 6) // 1236
#define RID_SVXSTR_ERR_OLD_PASSWD (SVX_OOO_BUILD_START + 7) // 1237
#define RID_SVXSTR_ERR_REPEAT_PASSWD (SVX_OOO_BUILD_START + 8) // 1238
+#define RID_SVXBMP_ZOOM_PAGE (SVX_OOO_BUILD_START + 9) // 1239
+#define RID_SVXSTR_FIT_SLIDE (SVX_OOO_BUILD_START + 10) // 1240
// sidebar-related resources (defined in the appropriate .hrc's)
-#define RID_SVX_SIDEBAR_BEGIN (RID_SVX_START + 1240)
+#define RID_SVX_SIDEBAR_BEGIN (RID_SVX_START + 1241)
// !!! IMPORTANT: consider and update RID_SVXSTR_NEXTFREE when introducing new RIDs for Strings !!!
-#define RID_SVXSTR_NEXTFREE (RID_SVX_START + 1270)
+#define RID_SVXSTR_NEXTFREE (RID_SVX_START + 1271)
// ----------------------------------------------------------------------------
// if we have _a_lot_ time, we should group the resource ids by type, instead
diff --git a/include/svx/zoomctrl.hxx b/include/svx/zoomctrl.hxx
index 429ee9c..5d7950f 100644
--- a/include/svx/zoomctrl.hxx
+++ b/include/svx/zoomctrl.hxx
@@ -21,8 +21,7 @@
#include <sfx2/stbitem.hxx>
#include <svx/svxdllapi.h>
-
-// class SvxZoomToolBoxControl -------------------------------------------
+#include <vcl/image.hxx>
class SVX_DLLPUBLIC SvxZoomStatusBarControl : public SfxStatusBarControl
{
@@ -42,6 +41,18 @@ public:
};
+class SVX_DLLPUBLIC SvxZoomPageStatusBarControl : public SfxStatusBarControl
+{
+private:
+ Image maImage;
+public:
+ virtual void Paint( const UserDrawEvent& rEvt ) SAL_OVERRIDE;
+ virtual sal_Bool MouseButtonDown( const MouseEvent & rEvt ) SAL_OVERRIDE;
+
+ SFX_DECL_STATUSBAR_CONTROL();
+
+ SvxZoomPageStatusBarControl(sal_uInt16 nSlotId, sal_uInt16 nId, StatusBar& rStb);
+};
#endif
diff --git a/sd/source/ui/app/sddll.cxx b/sd/source/ui/app/sddll.cxx
index f7a27c0..b37d934 100644
--- a/sd/source/ui/app/sddll.cxx
+++ b/sd/source/ui/app/sddll.cxx
@@ -242,6 +242,7 @@ void SdDLL::RegisterControllers()
SvxCTLTextTbxCtrl::RegisterControl(SID_ATTR_PARA_RIGHT_TO_LEFT, pMod);
// register StatusBarControls
+ SvxZoomPageStatusBarControl::RegisterControl( SID_ZOOM_ENTIRE_PAGE, pMod );
SvxZoomStatusBarControl::RegisterControl( SID_ATTR_ZOOM, pMod );
SvxPosSizeStatusBarControl::RegisterControl( SID_ATTR_SIZE, pMod );
SvxModifyControl::RegisterControl( SID_DOC_MODIFIED, pMod );
diff --git a/sd/uiconfig/simpress/statusbar/statusbar.xml b/sd/uiconfig/simpress/statusbar/statusbar.xml
index 24224fe..78042ef 100644
--- a/sd/uiconfig/simpress/statusbar/statusbar.xml
+++ b/sd/uiconfig/simpress/statusbar/statusbar.xml
@@ -24,6 +24,7 @@
<statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16"/>
<statusbar:statusbaritem xlink:href=".uno:PageStatus" statusbar:align="left" statusbar:width="124"/>
<statusbar:statusbaritem xlink:href=".uno:LayoutStatus" statusbar:align="left" statusbar:autosize="true" statusbar:width="54"/>
+ <statusbar:statusbaritem xlink:href=".uno:ZoomPage" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="9"/>
<statusbar:statusbaritem xlink:href=".uno:ZoomSlider" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="130"/>
<statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="36"/>
</statusbar:statusbar>
diff --git a/svx/source/stbctrls/modctrl.cxx b/svx/source/stbctrls/modctrl.cxx
index db94f49..aff7e75 100644
--- a/svx/source/stbctrls/modctrl.cxx
+++ b/svx/source/stbctrls/modctrl.cxx
@@ -137,8 +137,6 @@ void SvxModifyControl::_repaint()
// -----------------------------------------------------------------------
-namespace {
-
/**
* Given a bounding rectangle and an image, determine the top-left position
* of the image so that the image would look centered both horizontally and
@@ -160,9 +158,6 @@ Point centerImage(const Rectangle& rBoundingRect, const Image& rImg)
return aPt;
}
-}
-
-
void SvxModifyControl::Paint( const UserDrawEvent& rUsrEvt )
{
OutputDevice* pDev = rUsrEvt.GetDevice();
diff --git a/svx/source/stbctrls/stbctrls.src b/svx/source/stbctrls/stbctrls.src
index 8d5beeb..5987d7a 100644
--- a/svx/source/stbctrls/stbctrls.src
+++ b/svx/source/stbctrls/stbctrls.src
@@ -120,6 +120,11 @@ String RID_SVXSTR_DOC_LOAD
Text [ en-US ] = "Loading document...";
};
+String RID_SVXSTR_FIT_SLIDE
+{
+ Text [ en-US ] = "Fit slide to current window.";
+};
+
// PopupMenu -------------------------------------------------------------
Menu RID_SVXMNU_ZOOM
{
@@ -337,5 +342,13 @@ Image RID_SVXBMP_DOC_MODIFIED_FEEDBACK
};
MaskColor = STD_MASKCOLOR;
};
+Image RID_SVXBMP_ZOOM_PAGE
+{
+ ImageBitmap = Bitmap
+ {
+ File = "zoom_page_statusbar.png" ;
+ };
+ MaskColor = STD_MASKCOLOR;
+};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/stbctrls/zoomctrl.cxx b/svx/source/stbctrls/zoomctrl.cxx
index b5be076..229f98d 100644
--- a/svx/source/stbctrls/zoomctrl.cxx
+++ b/svx/source/stbctrls/zoomctrl.cxx
@@ -25,7 +25,8 @@
#include <svx/dialogs.hrc>
-#include "svx/zoomctrl.hxx"
+#include <svx/zoomctrl.hxx>
+#include <svx/zoomslideritem.hxx>
#include <sfx2/zoomitem.hxx>
#include "stbctrls.h"
#include <svx/dialmgr.hxx>
@@ -95,7 +96,6 @@ void ZoomPopup_Impl::Select()
}
// class SvxZoomStatusBarControl ------------------------------------------
-
SvxZoomStatusBarControl::SvxZoomStatusBarControl( sal_uInt16 _nSlotId,
sal_uInt16 _nId,
StatusBar& rStb ) :
@@ -183,5 +183,41 @@ void SvxZoomStatusBarControl::Command( const CommandEvent& rCEvt )
SfxStatusBarControl::Command( rCEvt );
}
+SFX_IMPL_STATUSBAR_CONTROL(SvxZoomPageStatusBarControl,SfxVoidItem);
+
+SvxZoomPageStatusBarControl::SvxZoomPageStatusBarControl(sal_uInt16 _nSlotId,
+ sal_uInt16 _nId, StatusBar& rStb)
+ : SfxStatusBarControl(_nSlotId, _nId, rStb)
+ , maImage(SVX_RES(RID_SVXBMP_ZOOM_PAGE))
+{
+ GetStatusBar().SetQuickHelpText(GetId(), SVX_RESSTR(RID_SVXSTR_FIT_SLIDE));
+}
+
+extern Point centerImage(const Rectangle& rBoundingRect, const Image& rImg);
+
+void SvxZoomPageStatusBarControl::Paint(const UserDrawEvent& rUsrEvt)
+{
+ OutputDevice* pDev = rUsrEvt.GetDevice();
+ Rectangle aRect = rUsrEvt.GetRect();
+ Point aPt = centerImage(aRect, maImage);
+ pDev->DrawImage(aPt, maImage);
+}
+
+sal_Bool SvxZoomPageStatusBarControl::MouseButtonDown(const MouseEvent&)
+{
+ SvxZoomItem aZoom( SVX_ZOOM_WHOLEPAGE, 0, GetId() );
+
+ ::com::sun::star::uno::Any a;
+ INetURLObject aObj( m_aCommandURL );
+
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aArgs( 1 );
+ aArgs[0].Name = aObj.GetURLPath();
+ aZoom.QueryValue( a );
+ aArgs[0].Value = a;
+
+ execute( aArgs );
+
+ return true;
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

@ -1,77 +0,0 @@
From b179235f702e474b115ca479b603052f422346fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Wed, 7 May 2014 16:16:17 +0100
Subject: [PATCH] center slide after changing zoom
Change-Id: I08698b06d0485d2cd3573af665e0621b42d37349
---
sd/source/ui/inc/ViewShell.hxx | 1 +
sd/source/ui/view/viewshe2.cxx | 27 +++++++++++++++++++++++++++
sd/source/ui/view/viewshel.cxx | 1 +
3 files changed, 29 insertions(+)
diff --git a/sd/source/ui/inc/ViewShell.hxx b/sd/source/ui/inc/ViewShell.hxx
index ce5ea31..87edbc5 100644
--- a/sd/source/ui/inc/ViewShell.hxx
+++ b/sd/source/ui/inc/ViewShell.hxx
@@ -206,6 +206,7 @@ public:
virtual void UpdateScrollBars (void);
void Scroll(long nX, long nY);
void ScrollLines(long nX, long nY);
+ void ScrollCenter();
virtual void SetZoom(long nZoom);
virtual void SetZoomRect(const Rectangle& rZoomRect);
void InitWindows(const Point& rViewOrigin, const Size& rViewSize,
diff --git a/sd/source/ui/view/viewshe2.cxx b/sd/source/ui/view/viewshe2.cxx
index 5f98d68..8f91d6c 100644
--- a/sd/source/ui/view/viewshe2.cxx
+++ b/sd/source/ui/view/viewshe2.cxx
@@ -365,6 +365,33 @@ void ViewShell::SetZoom(long nZoom)
UpdateScrollBars();
}
+namespace
+{
+ void CenterScrollBar(ScrollBar *pBar)
+ {
+ long nVisSize = pBar->GetVisibleSize();
+ long nMin = pBar->GetRangeMin();
+ long nMax = pBar->GetRangeMax();
+ long nLen = nMax - nMin - nVisSize;
+ long nPos = nMin + nLen/2;
+ pBar->DoScroll(nPos);
+ }
+}
+
+void ViewShell::ScrollCenter()
+{
+ if (mpHorizontalScrollBar.get() != NULL)
+ CenterScrollBar(mpHorizontalScrollBar.get());
+
+ //zoom mode with no panning of the current slide, i.e. the
+ //scrollbar is in change slide mode not pan slide mode
+ if (IsPageFlipMode())
+ return;
+
+ if (mpVerticalScrollBar.get() != NULL)
+ CenterScrollBar(mpVerticalScrollBar.get());
+}
+
/**
* Set zoom rectangle for active window. Sets all split windows to the same zoom
* factor.
diff --git a/sd/source/ui/view/viewshel.cxx b/sd/source/ui/view/viewshel.cxx
index 28e272e..17bcf5f 100644
--- a/sd/source/ui/view/viewshel.cxx
+++ b/sd/source/ui/view/viewshel.cxx
@@ -683,6 +683,7 @@ bool ViewShell::HandleScrollCommand(const CommandEvent& rCEvt, ::sd::Window* pWi
nNewZoom = std::min( (long) pWin->GetMaxZoom(), basegfx::zoomtools::zoomIn( nOldZoom ));
SetZoom( nNewZoom );
+ ScrollCenter(); //center slide after changing zoom
Invalidate( SID_ATTR_ZOOM );
Invalidate( SID_ATTR_ZOOMSLIDER );
--
1.9.0

@ -1,114 +0,0 @@
From 84770f1fbfd456f70c5c48e158b268a773ca9c45 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 4 Apr 2014 13:52:01 +0100
Subject: [PATCH] drop OnlyShowIn from .desktop files
<mclasen> I see libreoffice installs desktop actions with OnlyShowIn=Unity
<mclasen> I believe OnlyShowIn for actions was kicked out when they got merged in the spec
<caolan> mclasen: so drop the "OnlyShowIn" lines ?
<mclasen> would be my recommendation
Change-Id: I5d119d361be197bac3fc20c08b4e43f11f4b0c0c
---
sysui/desktop/menus/base.desktop | 1 -
sysui/desktop/menus/calc.desktop | 1 -
sysui/desktop/menus/draw.desktop | 1 -
sysui/desktop/menus/impress.desktop | 1 -
sysui/desktop/menus/math.desktop | 1 -
sysui/desktop/menus/startcenter.desktop | 6 ------
sysui/desktop/menus/writer.desktop | 1 -
7 files changed, 12 deletions(-)
diff --git a/sysui/desktop/menus/base.desktop b/sysui/desktop/menus/base.desktop
index 62626d4..26f1c6a 100755
--- a/sysui/desktop/menus/base.desktop
+++ b/sysui/desktop/menus/base.desktop
@@ -37,4 +37,3 @@ Actions=NewDocument;
[Desktop Action NewDocument]
Name=New Database
Exec=${UNIXBASISROOTNAME} --base
-OnlyShowIn=Unity;
diff --git a/sysui/desktop/menus/calc.desktop b/sysui/desktop/menus/calc.desktop
index e50de65..fc5e241 100755
--- a/sysui/desktop/menus/calc.desktop
+++ b/sysui/desktop/menus/calc.desktop
@@ -37,4 +37,3 @@ Actions=NewDocument;
[Desktop Action NewDocument]
Name=New Spreadsheet
Exec=${UNIXBASISROOTNAME} --calc
-OnlyShowIn=Unity;
diff --git a/sysui/desktop/menus/draw.desktop b/sysui/desktop/menus/draw.desktop
index a807fe0..b5d58ce 100755
--- a/sysui/desktop/menus/draw.desktop
+++ b/sysui/desktop/menus/draw.desktop
@@ -37,4 +37,3 @@ Actions=NewDocument;
[Desktop Action NewDocument]
Name=New Drawing
Exec=${UNIXBASISROOTNAME} --draw
-OnlyShowIn=Unity;
diff --git a/sysui/desktop/menus/impress.desktop b/sysui/desktop/menus/impress.desktop
index fda44e4..c1f6231 100755
--- a/sysui/desktop/menus/impress.desktop
+++ b/sysui/desktop/menus/impress.desktop
@@ -37,4 +37,3 @@ Actions=NewDocument;
[Desktop Action NewDocument]
Name=New Presentation
Exec=${UNIXBASISROOTNAME} --impress
-OnlyShowIn=Unity;
diff --git a/sysui/desktop/menus/math.desktop b/sysui/desktop/menus/math.desktop
index 57b1734..b6981f5 100755
--- a/sysui/desktop/menus/math.desktop
+++ b/sysui/desktop/menus/math.desktop
@@ -38,4 +38,3 @@ Actions=NewDocument;
[Desktop Action NewDocument]
Name=New Formula
Exec=${UNIXBASISROOTNAME} --math
-OnlyShowIn=Unity;
diff --git a/sysui/desktop/menus/startcenter.desktop b/sysui/desktop/menus/startcenter.desktop
index dabe887..3858c89 100755
--- a/sysui/desktop/menus/startcenter.desktop
+++ b/sysui/desktop/menus/startcenter.desktop
@@ -38,31 +38,25 @@ Actions=Writer;Calc;Impress;Draw;Base;Math;
[Desktop Action Writer]
Name=Text Document
Exec=${UNIXBASISROOTNAME} --writer
-OnlyShowIn=Unity;
[Desktop Action Calc]
Name=Spreadsheet
Exec=${UNIXBASISROOTNAME} --calc
-OnlyShowIn=Unity;
[Desktop Action Impress]
Name=Presentation
Exec=${UNIXBASISROOTNAME} --impress
-OnlyShowIn=Unity;
[Desktop Action Draw]
Name=Drawing
Exec=${UNIXBASISROOTNAME} --draw
-OnlyShowIn=Unity;
[Desktop Action Base]
Name=Database
Exec=${UNIXBASISROOTNAME} --base
-OnlyShowIn=Unity;
[Desktop Action Math]
Name=Formula
Exec=${UNIXBASISROOTNAME} --math
-OnlyShowIn=Unity;
##End of actions menu
diff --git a/sysui/desktop/menus/writer.desktop b/sysui/desktop/menus/writer.desktop
index e59187e..c4cea12 100755
--- a/sysui/desktop/menus/writer.desktop
+++ b/sysui/desktop/menus/writer.desktop
@@ -37,4 +37,3 @@ Actions=NewDocument;
[Desktop Action NewDocument]
Name=New Document
Exec=${UNIXBASISROOTNAME} --writer
-OnlyShowIn=Unity;
--
1.9.0

@ -1,46 +0,0 @@
From d1d25c8cbc2962ce2501b4ed6034d2e4e4ccba9a Mon Sep 17 00:00:00 2001
From: Andras Timar <andras.timar@collabora.com>
Date: Thu, 24 Apr 2014 21:50:26 +0200
Subject: [PATCH] fdo#77242 fix crash
Change-Id: Ic28b2dccc02627446a794929fe970495b15eb0e1
Reviewed-on: https://gerrit.libreoffice.org/9154
Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
---
sfx2/source/dialog/tabdlg.cxx | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/sfx2/source/dialog/tabdlg.cxx b/sfx2/source/dialog/tabdlg.cxx
index 95bdbad..065a23c 100644
--- a/sfx2/source/dialog/tabdlg.cxx
+++ b/sfx2/source/dialog/tabdlg.cxx
@@ -1270,7 +1270,7 @@ IMPL_LINK( SfxTabDialog, ActivatePageHdl, TabControl *, pTabCtrl )
*/
{
- sal_uInt16 const nId = pTabCtrl->GetCurPageId();
+ sal_uInt16 nId = pTabCtrl->GetCurPageId();
DBG_ASSERT( pImpl->aData.size(), "no Pages registered" );
SFX_APP();
@@ -1278,6 +1278,16 @@ IMPL_LINK( SfxTabDialog, ActivatePageHdl, TabControl *, pTabCtrl )
// Tab Page schon da?
SfxTabPage* pTabPage = dynamic_cast<SfxTabPage*> (pTabCtrl->GetTabPage( nId ));
Data_Impl* pDataObject = Find( pImpl->aData, nId );
+
+ //UUUU fallback to 1st page when requested one does not exist
+ if(!pDataObject && pTabCtrl->GetPageCount())
+ {
+ pTabCtrl->SetCurPageId(pTabCtrl->GetPageId(0));
+ nId = pTabCtrl->GetCurPageId();
+ pTabPage = dynamic_cast< SfxTabPage* >(pTabCtrl->GetTabPage(nId));
+ pDataObject = Find(pImpl->aData, nId);
+ }
+
DBG_ASSERT( pDataObject, "Id not known" );
// Create TabPage if possible:
--
1.9.0

@ -1,125 +0,0 @@
From 624e5c34ce815af6f65ce6699ad6b3f2aa1bf0da Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Mon, 12 May 2014 14:02:13 +0200
Subject: [PATCH] fdo#78119 find the longest match for month name
Change-Id: Idad7b083ce5528f5c735f3a8bd091819bf043fc8
---
svl/source/numbers/zforfind.cxx | 69 ++++++++++++++++++++++++++++-------------
1 file changed, 48 insertions(+), 21 deletions(-)
diff --git a/svl/source/numbers/zforfind.cxx b/svl/source/numbers/zforfind.cxx
index a022d2d..c77bb0a 100644
--- a/svl/source/numbers/zforfind.cxx
+++ b/svl/source/numbers/zforfind.cxx
@@ -563,6 +563,7 @@ short ImpSvNumberInputScan::GetMonth( const OUString& rString, sal_Int32& nPos )
static const OUString aSepShortened("SEP");
short res = 0; // no month found
+ int nMatchLen = 0;
if (rString.getLength() > nPos) // only if needed
{
@@ -571,52 +572,78 @@ short ImpSvNumberInputScan::GetMonth( const OUString& rString, sal_Int32& nPos )
InitText();
}
sal_Int16 nMonths = pFormatter->GetCalendar()->getNumberOfMonthsInYear();
+ // Find the longest match. This is needed for, e.g., Czech, as &Ccaron;erven (June)
+ // is fully contained in &Ccaron;ervenec (July), so the latter could never be found
+ // if we stopped at the first match.
for ( sal_Int16 i = 0; i < nMonths; i++ )
{
if ( bScanGenitiveMonths && StringContains( pUpperGenitiveMonthText[i], rString, nPos ) )
{ // genitive full names first
- nPos = nPos + pUpperGenitiveMonthText[i].getLength();
- res = i + 1;
- break; // for
+ const int nMonthLen = pUpperGenitiveMonthText[i].getLength();
+ if (nMonthLen > nMatchLen)
+ {
+ nMatchLen = nMonthLen;
+ res = i + 1;
+ }
}
else if ( bScanGenitiveMonths && StringContains( pUpperGenitiveAbbrevMonthText[i], rString, nPos ) )
{ // genitive abbreviated
- nPos = nPos + pUpperGenitiveAbbrevMonthText[i].getLength();
- res = sal::static_int_cast< short >(-(i+1)); // negative
- break; // for
+ const int nMonthLen = pUpperGenitiveAbbrevMonthText[i].getLength();
+ if (nMonthLen > nMatchLen)
+ {
+ nMatchLen = nMonthLen;
+ res = sal::static_int_cast< short >(-(i+1)); // negative
+ }
}
else if ( bScanPartitiveMonths && StringContains( pUpperPartitiveMonthText[i], rString, nPos ) )
{ // partitive full names
- nPos = nPos + pUpperPartitiveMonthText[i].getLength();
- res = i+1;
- break; // for
+ const int nMonthLen = pUpperPartitiveMonthText[i].getLength();
+ if (nMonthLen > nMatchLen)
+ {
+ nMatchLen = nMonthLen;
+ res = i+1;
+ }
}
else if ( bScanPartitiveMonths && StringContains( pUpperPartitiveAbbrevMonthText[i], rString, nPos ) )
{ // partitive abbreviated
- nPos = nPos + pUpperPartitiveAbbrevMonthText[i].getLength();
- res = sal::static_int_cast< short >(-(i+1)); // negative
- break; // for
+ const int nMonthLen = pUpperPartitiveAbbrevMonthText[i].getLength();
+ if (nMonthLen > nMatchLen)
+ {
+ nMatchLen = nMonthLen;
+ res = sal::static_int_cast< short >(-(i+1)); // negative
+ }
}
else if ( StringContains( pUpperMonthText[i], rString, nPos ) )
{ // noun full names
- nPos = nPos + pUpperMonthText[i].getLength();
- res = i+1;
- break; // for
+ const int nMonthLen = pUpperMonthText[i].getLength();
+ if (nMonthLen > nMatchLen)
+ {
+ nMatchLen = nMonthLen;
+ res = i+1;
+ }
}
else if ( StringContains( pUpperAbbrevMonthText[i], rString, nPos ) )
{ // noun abbreviated
- nPos = nPos + pUpperAbbrevMonthText[i].getLength();
- res = sal::static_int_cast< short >(-(i+1)); // negative
- break; // for
+ const int nMonthLen = pUpperAbbrevMonthText[i].getLength();
+ if (nMonthLen > nMatchLen)
+ {
+ nMatchLen = nMonthLen;
+ res = sal::static_int_cast< short >(-(i+1)); // negative
+ }
}
else if ( i == 8 && pUpperAbbrevMonthText[i] == aSeptCorrect &&
StringContains( aSepShortened, rString, nPos ) )
{ // #102136# SEPT/SEP
- nPos = nPos + aSepShortened.getLength();
- res = sal::static_int_cast< short >(-(i+1)); // negative
- break; // for
+ const int nMonthLen = aSepShortened.getLength();
+ if (nMonthLen > nMatchLen)
+ {
+ nMatchLen = nMonthLen;
+ res = sal::static_int_cast< short >(-(i+1)); // negative
+ }
}
}
+
+ nPos += nMatchLen;
}
return res;
--
1.9.0

@ -1,41 +0,0 @@
From 2e9a77aa2d8e83f6296cd9204759d18b0ec5f0b5 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Thu, 15 May 2014 13:41:16 +0200
Subject: [PATCH] fix for doxygen 1.8.7
Earlier versions apparently used HTML as default if no output format was
specified. 1.8.7 no longer does that.
Change-Id: Ia8f908f54b344530e1b50e8800c032f782fb36e9
---
odk/docs/cpp/Doxyfile | 1 +
odk/docs/idl/Doxyfile | 1 +
2 files changed, 2 insertions(+)
diff --git a/odk/docs/cpp/Doxyfile b/odk/docs/cpp/Doxyfile
index 30346e0..2519f1b 100644
--- a/odk/docs/cpp/Doxyfile
+++ b/odk/docs/cpp/Doxyfile
@@ -24,6 +24,7 @@ WARN_FORMAT = "$file:$line: $text"
INPUT = %
RECURSIVE = YES
+GENERATE_HTML = YES
HTML_OUTPUT = .
GENERATE_LATEX = NO
diff --git a/odk/docs/idl/Doxyfile b/odk/docs/idl/Doxyfile
index 6eead54..c065b33 100644
--- a/odk/docs/idl/Doxyfile
+++ b/odk/docs/idl/Doxyfile
@@ -13,6 +13,7 @@ STRIP_FROM_PATH = %
INPUT = %
RECURSIVE = YES
+GENERATE_HTML = YES
HTML_OUTPUT = .
GENERATE_LATEX = NO
--
1.9.0

@ -1,31 +0,0 @@
From 3617ee56f8540f225f664650882b2158e0ccdb41 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 16 May 2014 16:06:10 +0100
Subject: [PATCH 1/2] fix memory leak on pasting metafiles into writer
copying from mspaint to writer and then deleting the image in a loop will
eventually exhaust all memory.
regression since 004a29b9ac66f68af5ea12a2303a4b2be77d8145
Change-Id: I381285cda3823de7df0c1725a339943caf9536fe
---
svtools/source/graphic/grfcache.cxx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/svtools/source/graphic/grfcache.cxx b/svtools/source/graphic/grfcache.cxx
index 26d766a..72fdc3a 100644
--- a/svtools/source/graphic/grfcache.cxx
+++ b/svtools/source/graphic/grfcache.cxx
@@ -367,7 +367,7 @@ void GraphicCacheEntry::GraphicObjectWasSwappedOut( const GraphicObject& /*rObj*
if( mbSwappedAll )
{
delete mpBmpEx, mpBmpEx = NULL;
- mpMtf = NULL; // No need to delete it as it has already been dereferenced
+ delete mpMtf, mpMtf = NULL;
delete mpAnimation, mpAnimation = NULL;
// #119176# also reset SvgData
--
1.9.0

@ -1,4 +1,4 @@
From 1be2e01e592466aec2e60fbf1af528cfab1572db Mon Sep 17 00:00:00 2001
From 9834a43821ccf9feb4cee971057f3fc136b5add8 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Thu, 1 Dec 2011 14:02:07 +0100
Subject: [PATCH] #i101274 a directory on command line is silently ignored
@ -9,10 +9,10 @@ Subject: [PATCH] #i101274 a directory on command line is silently ignored
2 files changed, 76 insertions(+)
diff --git a/comphelper/source/misc/stillreadwriteinteraction.cxx b/comphelper/source/misc/stillreadwriteinteraction.cxx
index b3dd6e8..d0f5738 100644
index 10f1855..650b88f 100644
--- a/comphelper/source/misc/stillreadwriteinteraction.cxx
+++ b/comphelper/source/misc/stillreadwriteinteraction.cxx
@@ -87,6 +87,7 @@ ucbhelper::InterceptedInteraction::EInterceptionState StillReadWriteInteraction:
@@ -85,6 +85,7 @@ ucbhelper::InterceptedInteraction::EInterceptionState StillReadWriteInteraction:
bAbort = (
(exIO.Code == css::ucb::IOErrorCode_ACCESS_DENIED )
|| (exIO.Code == css::ucb::IOErrorCode_LOCKING_VIOLATION )
@ -21,7 +21,7 @@ index b3dd6e8..d0f5738 100644
#ifdef MACOSX
// this is a workaround for MAC, on this platform if the file is locked
diff --git a/ucbhelper/source/client/content.cxx b/ucbhelper/source/client/content.cxx
index 95e589f..d7fc181 100644
index c8ccd88..ac5920a 100644
--- a/ucbhelper/source/client/content.cxx
+++ b/ucbhelper/source/client/content.cxx
@@ -27,6 +27,7 @@
@ -60,8 +60,8 @@ index 95e589f..d7fc181 100644
using namespace com::sun::star::container;
using namespace com::sun::star::beans;
@@ -283,6 +292,54 @@ static Reference< XContent > getContent(
return Reference< XContent >();
@@ -304,6 +313,54 @@ static Reference< XContent > getContentNoThrow(
return xContent;
}
+namespace
@ -112,10 +112,10 @@ index 95e589f..d7fc181 100644
+
+}
+
//=========================================================================
//=========================================================================
//
@@ -699,7 +756,10 @@ Reference< XInputStream > Content::openStream()
@@ -718,7 +775,10 @@ Reference< XInputStream > Content::openStream()
throw( CommandAbortedException, RuntimeException, Exception )
{
if ( !isDocument() )
@ -126,7 +126,7 @@ index 95e589f..d7fc181 100644
Reference< XActiveDataSink > xSink = new ActiveDataSink;
@@ -724,7 +784,10 @@ Reference< XInputStream > Content::openStreamNoLock()
@@ -743,7 +803,10 @@ Reference< XInputStream > Content::openStreamNoLock()
throw( CommandAbortedException, RuntimeException, Exception )
{
if ( !isDocument() )
@ -137,7 +137,7 @@ index 95e589f..d7fc181 100644
Reference< XActiveDataSink > xSink = new ActiveDataSink;
@@ -749,7 +812,10 @@ Reference< XStream > Content::openWriteableStream()
@@ -768,7 +831,10 @@ Reference< XStream > Content::openWriteableStream()
throw( CommandAbortedException, RuntimeException, Exception )
{
if ( !isDocument() )
@ -148,7 +148,7 @@ index 95e589f..d7fc181 100644
Reference< XActiveDataStreamer > xStreamer = new ActiveDataStreamer;
@@ -774,7 +840,10 @@ Reference< XStream > Content::openWriteableStreamNoLock()
@@ -793,7 +859,10 @@ Reference< XStream > Content::openWriteableStreamNoLock()
throw( CommandAbortedException, RuntimeException, Exception )
{
if ( !isDocument() )
@ -159,28 +159,28 @@ index 95e589f..d7fc181 100644
Reference< XActiveDataStreamer > xStreamer = new ActiveDataStreamer;
@@ -799,7 +868,10 @@ sal_Bool Content::openStream( const Reference< XActiveDataSink >& rSink )
@@ -818,7 +887,10 @@ bool Content::openStream( const Reference< XActiveDataSink >& rSink )
throw( CommandAbortedException, RuntimeException, Exception )
{
if ( !isDocument() )
+ {
+ lcl_displayMessage(m_xImpl->getComponentContext(), m_xImpl->getEnvironment(), getURL());
return sal_False;
return false;
+ }
OpenCommandArgument2 aArg;
aArg.Mode = OpenMode::DOCUMENT;
@@ -822,7 +894,10 @@ sal_Bool Content::openStream( const Reference< XOutputStream >& rStream )
@@ -841,7 +913,10 @@ bool Content::openStream( const Reference< XOutputStream >& rStream )
throw( CommandAbortedException, RuntimeException, Exception )
{
if ( !isDocument() )
+ {
+ lcl_displayMessage(m_xImpl->getComponentContext(), m_xImpl->getEnvironment(), getURL());
return sal_False;
return false;
+ }
OpenCommandArgument2 aArg;
aArg.Mode = OpenMode::DOCUMENT;
--
1.8.0
1.9.0

@ -1,76 +0,0 @@
From 2d3aabf379d546684f3229e14752a86d784feaa5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= <l.lunak@collabora.com>
Date: Tue, 25 Mar 2014 12:20:16 +0100
Subject: [PATCH 2/2] prevent KDE/Qt from interfering with the session manager
I occassionally get lockups in IceProcessMessages() called from QtCore,
I'm actually not exactly sure why, as theoretically two connections
from one app shouldn't be a problem, but since LO does its own
session handling, there's no need to the KDE/Qt code to be involved,
so prevent it from connecting to the session manager altogether.
Change-Id: Iebe20d4cb5403e5fea8bd5d8c1f69b62d1c2907b
---
vcl/unx/kde4/KDEXLib.cxx | 17 ++++++++++++++++-
vcl/unx/kde4/VCLKDEApplication.hxx | 8 --------
2 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/vcl/unx/kde4/KDEXLib.cxx b/vcl/unx/kde4/KDEXLib.cxx
index 820d39a..e4900a7 100644
--- a/vcl/unx/kde4/KDEXLib.cxx
+++ b/vcl/unx/kde4/KDEXLib.cxx
@@ -166,8 +166,23 @@ void KDEXLib::Init()
KCmdLineArgs::init( m_nFakeCmdLineArgs, m_pAppCmdLineArgs, kAboutData );
+ // LO does its own session management, so prevent KDE/Qt from interfering
+ // (QApplication::disableSessionManagement(false) wouldn't quite do,
+ // since that still actually connects to the session manager, it just
+ // won't save the application data on session shutdown).
+ char* session_manager = NULL;
+ if( getenv( "SESSION_MANAGER" ) != NULL )
+ {
+ session_manager = strdup( getenv( "SESSION_MANAGER" ));
+ unsetenv( "SESSION_MANAGER" );
+ }
m_pApplication = new VCLKDEApplication();
- kapp->disableSessionManagement();
+ if( session_manager != NULL )
+ {
+ setenv( "SESSION_MANAGER", session_manager, 1 );
+ free( session_manager );
+ }
+
KApplication::setQuitOnLastWindowClosed(false);
#if KDE_HAVE_GLIB
diff --git a/vcl/unx/kde4/VCLKDEApplication.hxx b/vcl/unx/kde4/VCLKDEApplication.hxx
index 412ee34..4ce0b2c 100644
--- a/vcl/unx/kde4/VCLKDEApplication.hxx
+++ b/vcl/unx/kde4/VCLKDEApplication.hxx
@@ -21,22 +21,14 @@
#define Region QtXRegion
-#include <QSessionManager>
-
#include <kapplication.h>
#undef Region
-/* #i59042# override KApplications method for session management
- * since it will interfere badly with our own.
- */
class VCLKDEApplication : public KApplication
{
public:
VCLKDEApplication();
-
- virtual void commitData(QSessionManager&) {};
-
virtual bool x11EventFilter(XEvent* event);
};
--
1.9.0

@ -1,197 +0,0 @@
From 9bcdcd06781ea8a291510c42075ab08154a6d666 Mon Sep 17 00:00:00 2001
Message-Id: <9bcdcd06781ea8a291510c42075ab08154a6d666.1399592425.git.erack@redhat.com>
From: Eike Rathke <erack@redhat.com>
Date: Fri, 9 May 2014 00:11:06 +0200
Subject: [PATCH] resolve fdo#77509 memory corruption / crash in Consolidate
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------erAck-patch-parts"
This is a multi-part message in MIME format.
--------------erAck-patch-parts
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit
Regression introduced with c81dec478ab0618f2acd2580654a93d3a7185444
memcpy some sizeof(OUString) is doomed to fail.
Change-Id: I81dc9cc7eaf02607ed05b4d284a7e5e462eeeb0a
(cherry picked from commit e891afeccba8f20f8bdaeacb20f2215cfcb1abfd)
---
sc/inc/consoli.hxx | 7 +++---
sc/source/core/tool/consoli.cxx | 52 +++++++++++++++--------------------------
2 files changed, 22 insertions(+), 37 deletions(-)
--------------erAck-patch-parts
Content-Type: text/x-patch; name="0001-resolve-fdo-77509-memory-corruption-crash-in-Consoli.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-resolve-fdo-77509-memory-corruption-crash-in-Consoli.patch"
diff --git a/sc/inc/consoli.hxx b/sc/inc/consoli.hxx
index 9ae5060..e93ea8a 100644
--- a/sc/inc/consoli.hxx
+++ b/sc/inc/consoli.hxx
@@ -80,11 +80,10 @@ private:
double** ppCount;
double** ppSumSqr;
ScReferenceList** ppRefs;
- OUString* mpColHeaders;
- OUString* mpRowHeaders;
+ ::std::vector<OUString> maColHeaders;
+ ::std::vector<OUString> maRowHeaders;
+ ::std::vector<OUString> maTitles;
SCSIZE nDataCount;
- SCSIZE nTitleCount;
- OUString* mpTitles;
SCSIZE** ppTitlePos;
sal_Bool bCornerUsed;
OUString aCornerText; // only for bColByName && bRowByName
diff --git a/sc/source/core/tool/consoli.cxx b/sc/source/core/tool/consoli.cxx
index 3dbe8f9..c2a5121 100644
--- a/sc/source/core/tool/consoli.cxx
+++ b/sc/source/core/tool/consoli.cxx
@@ -70,16 +70,9 @@ void ScReferenceList::AddEntry( SCCOL nCol, SCROW nRow, SCTAB nTab )
}
template< typename T >
-static void lcl_AddString( OUString*& pData, T& nCount, const OUString& rInsert )
+static void lcl_AddString( ::std::vector<OUString>& rData, T& nCount, const OUString& rInsert )
{
- OUString* pOldData = pData;
- pData = new OUString[ nCount+1 ];
- if (pOldData)
- {
- memcpy( pData, pOldData, nCount * sizeof(OUString) );
- delete[] pOldData;
- }
- pData[nCount] = rInsert;
+ rData.push_back( rInsert);
++nCount;
}
@@ -95,11 +88,7 @@ ScConsData::ScConsData() :
ppCount(NULL),
ppSumSqr(NULL),
ppRefs(NULL),
- mpColHeaders(NULL),
- mpRowHeaders(NULL),
nDataCount(0),
- nTitleCount(0),
- mpTitles(NULL),
ppTitlePos(NULL),
bCornerUsed(false)
{
@@ -140,16 +129,12 @@ void ScConsData::DeleteData()
DELETEARR( ppSumSqr,nColCount );
DELETEARR( ppUsed, nColCount ); // erst nach ppRefs !!!
DELETEARR( ppTitlePos, nRowCount );
- delete[] mpColHeaders;
- mpColHeaders = NULL;
- delete[] mpRowHeaders;
- mpRowHeaders = NULL;
- delete[] mpTitles;
- mpTitles = NULL;
- nTitleCount = 0;
+ ::std::vector<OUString>().swap( maColHeaders);
+ ::std::vector<OUString>().swap( maRowHeaders);
+ ::std::vector<OUString>().swap( maTitles);
nDataCount = 0;
- if (bColByName) nColCount = 0; // sonst stimmt mpColHeaders nicht
+ if (bColByName) nColCount = 0; // sonst stimmt maColHeaders nicht
if (bRowByName) nRowCount = 0;
bCornerUsed = false;
@@ -256,10 +241,10 @@ void ScConsData::AddFields( ScDocument* pSrcDoc, SCTAB nTab,
{
bool bFound = false;
for (SCSIZE i=0; i<nColCount && !bFound; i++)
- if ( mpColHeaders[i] == aTitle )
+ if ( maColHeaders[i] == aTitle )
bFound = true;
if (!bFound)
- lcl_AddString( mpColHeaders, nColCount, aTitle );
+ lcl_AddString( maColHeaders, nColCount, aTitle );
}
}
}
@@ -273,10 +258,10 @@ void ScConsData::AddFields( ScDocument* pSrcDoc, SCTAB nTab,
{
bool bFound = false;
for (SCSIZE i=0; i<nRowCount && !bFound; i++)
- if ( mpRowHeaders[i] == aTitle )
+ if ( maRowHeaders[i] == aTitle )
bFound = true;
if (!bFound)
- lcl_AddString( mpRowHeaders, nRowCount, aTitle );
+ lcl_AddString( maRowHeaders, nRowCount, aTitle );
}
}
}
@@ -289,7 +274,8 @@ void ScConsData::AddName( const OUString& rName )
if (bReference)
{
- lcl_AddString( mpTitles, nTitleCount, rName );
+ maTitles.push_back( rName);
+ size_t nTitleCount = maTitles.size();
for (nArrY=0; nArrY<nRowCount; nArrY++)
{
@@ -528,7 +514,7 @@ void ScConsData::AddData( ScDocument* pSrcDoc, SCTAB nTab,
{
bool bFound = false;
for (SCSIZE i=0; i<nColCount && !bFound; i++)
- if ( mpColHeaders[i] == aTitle )
+ if ( maColHeaders[i] == aTitle )
{
nPos = static_cast<SCCOL>(i);
bFound = true;
@@ -549,7 +535,7 @@ void ScConsData::AddData( ScDocument* pSrcDoc, SCTAB nTab,
{
bool bFound = false;
for (SCSIZE i=0; i<nRowCount && !bFound; i++)
- if ( mpRowHeaders[i] == aTitle )
+ if ( maRowHeaders[i] == aTitle )
{
nPos = static_cast<SCROW>(i);
bFound = true;
@@ -661,10 +647,10 @@ void ScConsData::OutputToDocument( ScDocument* pDestDoc, SCCOL nCol, SCROW nRow,
if (bColByName)
for (SCSIZE i=0; i<nColCount; i++)
- pDestDoc->SetString( sal::static_int_cast<SCCOL>(nStartCol+i), nRow, nTab, mpColHeaders[i] );
+ pDestDoc->SetString( sal::static_int_cast<SCCOL>(nStartCol+i), nRow, nTab, maColHeaders[i] );
if (bRowByName)
for (SCSIZE j=0; j<nRowCount; j++)
- pDestDoc->SetString( nCol, sal::static_int_cast<SCROW>(nStartRow+j), nTab, mpRowHeaders[j] );
+ pDestDoc->SetString( nCol, sal::static_int_cast<SCROW>(nStartRow+j), nTab, maRowHeaders[j] );
nCol = nStartCol;
nRow = nStartRow;
@@ -774,7 +760,7 @@ void ScConsData::OutputToDocument( ScDocument* pDestDoc, SCCOL nCol, SCROW nRow,
// Zwischentitel
- if (ppTitlePos && mpTitles && mpRowHeaders)
+ if (ppTitlePos && !maTitles.empty() && !maRowHeaders.empty())
{
OUString aDelim( " / " );
for (SCSIZE nPos=0; nPos<nDataCount; nPos++)
@@ -786,9 +772,9 @@ void ScConsData::OutputToDocument( ScDocument* pDestDoc, SCCOL nCol, SCROW nRow,
bDo = false; // leer
if ( bDo && nTPos < nNeeded )
{
- aString = mpRowHeaders[nArrY];
+ aString = maRowHeaders[nArrY];
aString += aDelim;
- aString += mpTitles[nPos];
+ aString += maTitles[nPos];
pDestDoc->SetString( nCol-1, nRow+nArrY+nTPos, nTab, aString );
}
}
--------------erAck-patch-parts--

@ -1,51 +0,0 @@
From 3efb6e5c35bb1129a78726b163f8fbf9bd94734a Mon Sep 17 00:00:00 2001
Message-Id: <3efb6e5c35bb1129a78726b163f8fbf9bd94734a.1399366556.git.erack@redhat.com>
From: Eike Rathke <erack@redhat.com>
Date: Mon, 5 May 2014 18:18:57 +0100
Subject: [PATCH] resolved fdo#78294 default null-date for document import is
1899-12-30
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------erAck-patch-parts"
This is a multi-part message in MIME format.
--------------erAck-patch-parts
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit
Change-Id: I9dfe76d422ad732a081442b95a995d8d395a098e
(cherry picked from commit 571cefca474e6b77d68f9fa31f805dcf692927fd)
Reviewed-on: https://gerrit.libreoffice.org/9253
Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
Tested-by: Kohei Yoshida <libreoffice@kohei.us>
---
sc/source/ui/docshell/docsh3.cxx | 6 ++++++
1 file changed, 6 insertions(+)
--------------erAck-patch-parts
Content-Type: text/x-patch; name="0001-resolved-fdo-78294-default-null-date-for-document-im.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-resolved-fdo-78294-default-null-date-for-document-im.patch"
diff --git a/sc/source/ui/docshell/docsh3.cxx b/sc/source/ui/docshell/docsh3.cxx
index fcb2760f..42817ee 100644
--- a/sc/source/ui/docshell/docsh3.cxx
+++ b/sc/source/ui/docshell/docsh3.cxx
@@ -428,6 +428,12 @@ void ScDocShell::InitOptions(bool bForLoading) // called from InitNew and L
// so it must not be taken from the global options.
// Calculation settings are handled separately in ScXMLBodyContext::EndElement.
aDocOpt.SetStdPrecision( SvNumberFormatter::UNLIMITED_PRECISION );
+
+ // fdo#78294 The default null-date if
+ // <table:null-date table:date-value='...' />
+ // is absent is 1899-12-30 regardless what the configuration is set to.
+ // Import filters may override this value.
+ aDocOpt.SetDate( 30, 12, 1899);
}
aDocument.SetDocOptions( aDocOpt );
--------------erAck-patch-parts--

@ -1,156 +0,0 @@
From 35f78e48582caa691a855101a0d661985ba067bb Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Wed, 5 Feb 2014 10:55:25 +0100
Subject: [PATCH] rhbz#1057977 avoid use of invalidated pointers
Change-Id: Ib81f79da696b5e8002f5a2ddcf160903231dc3f1
---
include/vcl/outdev.hxx | 6 +++++
vcl/source/gdi/outdev3.cxx | 59 +++++++++++++++++++++++++++++++++++++++++-----
2 files changed, 59 insertions(+), 6 deletions(-)
diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx
index 047a79d..4f157b7 100644
--- a/include/vcl/outdev.hxx
+++ b/include/vcl/outdev.hxx
@@ -547,9 +547,15 @@ protected:
OutputDevice();
private:
+ typedef void ( OutputDevice::* FontUpdateHandler_t )( bool );
+
SAL_DLLPRIVATE OutputDevice( const OutputDevice& rOutDev );
SAL_DLLPRIVATE OutputDevice& operator =( const OutputDevice& rOutDev );
+ SAL_DLLPRIVATE void ImplClearFontData( bool bNewFontLists );
+ SAL_DLLPRIVATE void ImplRefreshFontData( bool bNewFontLists );
+ SAL_DLLPRIVATE static void ImplUpdateFontDataForAllFrames( FontUpdateHandler_t pHdl, bool bNewFontLists );
+
public:
virtual ~OutputDevice();
diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx
index afe06f7..d789eb9 100644
--- a/vcl/source/gdi/outdev3.cxx
+++ b/vcl/source/gdi/outdev3.cxx
@@ -156,7 +156,7 @@ static void ImplRotatePos( long nOriginX, long nOriginY, long& rX, long& rY,
}
}
-void OutputDevice::ImplUpdateFontData( bool bNewFontLists )
+void OutputDevice::ImplClearFontData( const bool bNewFontLists )
{
// the currently selected logical font is no longer needed
if ( mpFontEntry )
@@ -207,6 +207,38 @@ void OutputDevice::ImplUpdateFontData( bool bNewFontLists )
delete mpFontList;
if( mpFontCache && mpFontCache != pSVData->maGDIData.mpScreenFontCache )
delete mpFontCache;
+ mpFontList = 0;
+ mpFontCache = 0;
+ }
+ }
+ }
+ }
+
+ // also update child windows if needed
+ if ( GetOutDevType() == OUTDEV_WINDOW )
+ {
+ Window* pChild = ((Window*)this)->mpWindowImpl->mpFirstChild;
+ while ( pChild )
+ {
+ pChild->ImplClearFontData( true );
+ pChild = pChild->mpWindowImpl->mpNext;
+ }
+ }
+}
+
+void OutputDevice::ImplRefreshFontData( const bool bNewFontLists )
+{
+// if ( GetOutDevType() == OUTDEV_PRINTER || mpPDFWriter )
+ {
+ ImplSVData* pSVData = ImplGetSVData();
+
+ if ( bNewFontLists )
+ {
+ // we need a graphics
+ if ( ImplGetGraphics() )
+ {
+ if( mpPDFWriter )
+ {
mpFontList = pSVData->maGDIData.mpScreenFontList->Clone( true, true );
mpFontCache = new ImplFontCache( sal_False );
}
@@ -227,16 +259,24 @@ void OutputDevice::ImplUpdateFontData( bool bNewFontLists )
Window* pChild = ((Window*)this)->mpWindowImpl->mpFirstChild;
while ( pChild )
{
- pChild->ImplUpdateFontData( true );
+ pChild->ImplRefreshFontData( true );
pChild = pChild->mpWindowImpl->mpNext;
}
}
}
+void OutputDevice::ImplUpdateFontData( bool bNewFontLists )
+{
+ ImplClearFontData( bNewFontLists );
+ ImplRefreshFontData( bNewFontLists );
+}
+
void OutputDevice::ImplUpdateAllFontData( bool bNewFontLists )
{
ImplSVData* pSVData = ImplGetSVData();
+ ImplUpdateFontDataForAllFrames( &OutputDevice::ImplClearFontData, bNewFontLists );
+
// clear global font lists to have them updated
pSVData->maGDIData.mpScreenFontCache->Invalidate();
if ( bNewFontLists )
@@ -255,16 +295,23 @@ void OutputDevice::ImplUpdateAllFontData( bool bNewFontLists )
}
}
+ ImplUpdateFontDataForAllFrames( &OutputDevice::ImplRefreshFontData, bNewFontLists );
+}
+
+void OutputDevice::ImplUpdateFontDataForAllFrames( const FontUpdateHandler_t pHdl, const bool bNewFontLists )
+{
+ ImplSVData* const pSVData = ImplGetSVData();
+
// update all windows
Window* pFrame = pSVData->maWinData.mpFirstFrame;
while ( pFrame )
{
- pFrame->ImplUpdateFontData( bNewFontLists );
+ ( pFrame->*pHdl )( bNewFontLists );
Window* pSysWin = pFrame->mpWindowImpl->mpFrameData->mpFirstOverlap;
while ( pSysWin )
{
- pSysWin->ImplUpdateFontData( bNewFontLists );
+ ( pSysWin->*pHdl )( bNewFontLists );
pSysWin = pSysWin->mpWindowImpl->mpNextOverlap;
}
@@ -275,7 +322,7 @@ void OutputDevice::ImplUpdateAllFontData( bool bNewFontLists )
VirtualDevice* pVirDev = pSVData->maGDIData.mpFirstVirDev;
while ( pVirDev )
{
- pVirDev->ImplUpdateFontData( bNewFontLists );
+ ( pVirDev->*pHdl )( bNewFontLists );
pVirDev = pVirDev->mpNext;
}
@@ -283,7 +330,7 @@ void OutputDevice::ImplUpdateAllFontData( bool bNewFontLists )
Printer* pPrinter = pSVData->maGDIData.mpFirstPrinter;
while ( pPrinter )
{
- pPrinter->ImplUpdateFontData( bNewFontLists );
+ ( pPrinter->*pHdl )( bNewFontLists );
pPrinter = pPrinter->mpNext;
}
}
--
1.8.5.3

@ -1,69 +0,0 @@
From df71f13b80c30cb98e310baf8f6aee11f8cbe81d Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Fri, 9 May 2014 13:07:33 +0200
Subject: [PATCH] rhbz#1071604 don't crash if slide layout configs are missing
Change-Id: I5cbf4ed0683cc5736a45fb980827b1b56bd0c74c
---
sd/source/core/drawdoc.cxx | 38 ++++++++++++++++++++++++++------------
1 file changed, 26 insertions(+), 12 deletions(-)
diff --git a/sd/source/core/drawdoc.cxx b/sd/source/core/drawdoc.cxx
index 1de1f33..5904a64 100644
--- a/sd/source/core/drawdoc.cxx
+++ b/sd/source/core/drawdoc.cxx
@@ -1008,12 +1008,19 @@ void SdDrawDocument::InitLayoutVector()
const Reference<XDocumentBuilder> xDocBuilder(
DocumentBuilder::create( comphelper::getComponentContext (xServiceFactory) ));
- // loop over every layout entry in current file
- const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
- const Reference<XNodeList> layoutlist = xDoc->getElementsByTagName("layout");
- const int nElements = layoutlist->getLength();
- for(int index=0; index < nElements; index++)
- maLayoutInfo.push_back( layoutlist->item(index) );
+ try
+ {
+ // loop over every layout entry in current file
+ const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
+ const Reference<XNodeList> layoutlist = xDoc->getElementsByTagName("layout");
+ const int nElements = layoutlist->getLength();
+ for(int index=0; index < nElements; index++)
+ maLayoutInfo.push_back( layoutlist->item(index) );
+ }
+ catch (const uno::Exception &)
+ {
+ // skip missing config. files
+ }
}
}
@@ -1037,12 +1044,19 @@ void SdDrawDocument::InitObjectVector()
const Reference<XDocumentBuilder> xDocBuilder(
DocumentBuilder::create( comphelper::getComponentContext (xServiceFactory) ));
- // loop over every object entry in current file
- const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
- const Reference<XNodeList> objectlist = xDoc->getElementsByTagName("object");
- const int nElements = objectlist->getLength();
- for(int index=0; index < nElements; index++)
- maPresObjectInfo.push_back( objectlist->item(index) );
+ try
+ {
+ // loop over every object entry in current file
+ const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
+ const Reference<XNodeList> objectlist = xDoc->getElementsByTagName("object");
+ const int nElements = objectlist->getLength();
+ for(int index=0; index < nElements; index++)
+ maPresObjectInfo.push_back( objectlist->item(index) );
+ }
+ catch (const uno::Exception &)
+ {
+ // skip missing config. files
+ }
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
--
1.9.0

@ -1,25 +0,0 @@
From 5dc66e7a9a86b40f4209eba08aad6cc9294e8845 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 16 May 2014 20:50:24 +0100
Subject: [PATCH] strangely obvious leaky code
Change-Id: I968cbb784d53e0cff0649061c58f752939226a09
---
svx/source/sdr/properties/itemsettools.cxx | 1 +
1 file changed, 1 insertion(+)
diff --git a/svx/source/sdr/properties/itemsettools.cxx b/svx/source/sdr/properties/itemsettools.cxx
index ce937b3..2879b48 100644
--- a/svx/source/sdr/properties/itemsettools.cxx
+++ b/svx/source/sdr/properties/itemsettools.cxx
@@ -120,6 +120,7 @@ namespace sdr
SfxPoolItem* pNewItem = pItem->Clone();
pNewItem->ScaleMetrics(nMul, nDiv);
rSet.Put(*pNewItem);
+ delete pNewItem;
}
}
nWhich = aIter.NextWhich();
--
1.9.0

File diff suppressed because it is too large Load Diff

@ -1,4 +1,4 @@
From 8208f795bb6882cf77adef940839f0c46b9befb2 Mon Sep 17 00:00:00 2001
From 174f9520dfec39799011cf8af12808b14293c7f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Mon, 5 Dec 2011 15:28:19 +0100
Subject: [PATCH] vertical content overflowing out of cell (#i88341#)
@ -9,23 +9,23 @@ Subject: [PATCH] vertical content overflowing out of cell (#i88341#)
2 files changed, 45 insertions(+), 23 deletions(-)
diff --git a/sc/source/ui/inc/output.hxx b/sc/source/ui/inc/output.hxx
index 1b8d8f5..6dcbe2e 100644
index ffb0e15..17e2a9b 100644
--- a/sc/source/ui/inc/output.hxx
+++ b/sc/source/ui/inc/output.hxx
@@ -296,6 +296,8 @@ public:
void DrawExtraShadow(sal_Bool bLeft, sal_Bool bTop, sal_Bool bRight, sal_Bool bBottom);
@@ -304,6 +304,8 @@ public:
void DrawExtraShadow(bool bLeft, bool bTop, bool bRight, bool bBottom);
void DrawFrame();
+ bool UseNormalClip(SCROW nCellY, const SfxItemSet* pCondSet);
+
// with logic MapMode set!
void DrawEdit(sal_Bool bPixelToLogic);
void DrawEdit(bool bPixelToLogic);
diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx
index ac6365c..141ef00 100644
index 6a1bbf1..ee1aba3 100644
--- a/sc/source/ui/view/output2.cxx
+++ b/sc/source/ui/view/output2.cxx
@@ -2905,13 +2905,7 @@ void ScOutputData::DrawEditStandard(DrawEditParam& rParam)
@@ -3014,13 +3014,7 @@ void ScOutputData::DrawEditStandard(DrawEditParam& rParam)
(ScMergeAttr*)&rParam.mpPattern->GetItem(ATTR_MERGE);
bool bMerged = pMerge->GetColMerge() > 1 || pMerge->GetRowMerge() > 1;
@ -40,7 +40,7 @@ index ac6365c..141ef00 100644
bClip = true;
else
bSimClip = true;
@@ -2946,6 +2940,19 @@ void ScOutputData::DrawEditStandard(DrawEditParam& rParam)
@@ -3055,6 +3049,19 @@ void ScOutputData::DrawEditStandard(DrawEditParam& rParam)
}
Rectangle aLogicClip;
@ -60,7 +60,7 @@ index ac6365c..141ef00 100644
if (bClip || bSimClip)
{
// Clip marks are already handled in GetOutputArea
@@ -3278,13 +3285,8 @@ void ScOutputData::DrawEditBottomTop(DrawEditParam& rParam)
@@ -4008,13 +4015,8 @@ void ScOutputData::DrawEditStacked(DrawEditParam& rParam)
(ScMergeAttr*)&rParam.mpPattern->GetItem(ATTR_MERGE);
bool bMerged = pMerge->GetColMerge() > 1 || pMerge->GetRowMerge() > 1;
@ -76,7 +76,7 @@ index ac6365c..141ef00 100644
bClip = true;
else
bSimClip = true;
@@ -3650,13 +3652,7 @@ void ScOutputData::DrawEditTopBottom(DrawEditParam& rParam)
@@ -4362,13 +4364,7 @@ void ScOutputData::DrawEditAsianVertical(DrawEditParam& rParam)
(ScMergeAttr*)&rParam.mpPattern->GetItem(ATTR_MERGE);
bool bMerged = pMerge->GetColMerge() > 1 || pMerge->GetRowMerge() > 1;
@ -91,7 +91,7 @@ index ac6365c..141ef00 100644
bClip = true;
else
bSimClip = true;
@@ -4547,6 +4543,20 @@ void ScOutputData::DrawEditAsianVertical(DrawEditParam& rParam)
@@ -4474,6 +4470,20 @@ void ScOutputData::DrawEditAsianVertical(DrawEditParam& rParam)
rParam.adjustForHyperlinkInPDF(aURLStart, mpDev);
}
@ -109,10 +109,10 @@ index ac6365c..141ef00 100644
+ return bNormalClip;
+}
+
void ScOutputData::DrawEdit(sal_Bool bPixelToLogic)
void ScOutputData::DrawEdit(bool bPixelToLogic)
{
ScFieldEditEngine* pEngine = NULL;
@@ -5258,11 +5268,21 @@ void ScOutputData::DrawRotated(sal_Bool bPixelToLogic)
boost::scoped_ptr<ScFieldEditEngine> pEngine;
@@ -5199,11 +5209,21 @@ void ScOutputData::DrawRotated(bool bPixelToLogic)
else
{
// bei gedrehtem Text ist Standard zentriert
@ -137,5 +137,5 @@ index ac6365c..141ef00 100644
}
--
1.8.0
1.9.0

@ -1,52 +0,0 @@
From cbb4637768e36bb53c9cdfb096398d027ff5ec91 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 16 May 2014 16:36:13 +0100
Subject: [PATCH] coverity: SfxBaseModel's pImpl of fallback TargetDocument for
paste leaks
e.g. repeatedly pasting a metafile into writer and deleting it.
==13369== 342 (232 direct, 110 indirect) bytes in 1 blocks are definitely lost in loss record 19,396 of 22,170
==13369== at 0x4A06965: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==13369== by 0x686D72E: SfxBaseModel::SfxBaseModel(SfxObjectShell*) (sfxbasemodel.cxx:518)
==13369== by 0x288CA9C1: SvxUnoDrawingModel::SvxUnoDrawingModel(SdrModel*) (unomod.cxx:255)
==13369== by 0x28961055: SvxDrawingLayerImport(SdrModel*, com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&, char const*) (xmlexport.cxx:164)
==13369== by 0x28960FA2: SvxDrawingLayerImport(SdrModel*, com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&) (xmlexport.cxx:148)
==13369== by 0x2896175E: SvxDrawingLayerImport(SdrModel*, com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&) (xmlexport.cxx:254)
==13369== by 0x240B1002: SwFEShell::Paste(SvStream&, unsigned short, Point const*) (fecopy.cxx:1333)
==13369== by 0x247B981A: SwTransferable::_PasteSdrFormat(TransferableDataHelper&, SwWrtShell&, unsigned short, Point const*, unsigned char, bool) (swdtflvr.cxx:2207)
==13369== by 0x247B678E: SwTransferable::PasteData(TransferableDataHelper&, SwWrtShell&, unsigned short, unsigned long, unsigned short, bool, bool, Point const*, signed char, bool) (swdtflvr.cxx:1481)
==13369== by 0x247B5AE4: SwTransferable::Paste(SwWrtShell&, TransferableDataHelper&) (swdtflvr.cxx:1150)
==13369== by 0x2488FCCE: SwBaseShell::ExecClpbrd(SfxRequest&) (basesh.cxx:277)
Reference< lang::XComponent > xTargetDocument( xComponent );
if( !xTargetDocument.is() )
{
> xTargetDocument = new SvxUnoDrawingModel( pModel );
pModel->setUnoModel( Reference< XInterface >::query( xTargetDocument ) );
}
Change-Id: I3bd0fc983d9b6bdcdc91071a4ec3d2c584397ebf
---
sfx2/source/doc/sfxbasemodel.cxx | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/sfx2/source/doc/sfxbasemodel.cxx b/sfx2/source/doc/sfxbasemodel.cxx
index 1de92d6..67096db 100644
--- a/sfx2/source/doc/sfxbasemodel.cxx
+++ b/sfx2/source/doc/sfxbasemodel.cxx
@@ -537,6 +537,11 @@ SfxBaseModel::SfxBaseModel( SfxObjectShell *pObjectShell )
SfxBaseModel::~SfxBaseModel()
{
DBG_DTOR(sfx2_SfxBaseModel,NULL);
+ //In SvxDrawingLayerImport when !xTargetDocument the fallback SvxUnoDrawingModel created there
+ //never gets disposed called on it, so m_pData leaks.
+ IMPL_SfxBaseModel_DataContainer* pData = m_pData;
+ m_pData = 0;
+ delete pData;
}
//________________________________________________________________________________________________________
--
1.9.0

@ -1,9 +1,9 @@
# download path contains version without the last (fourth) digit
%define libo_version 4.2.4
%define libo_version 4.3.0
# 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 %{nil}
%define libo_prerelease .beta1
# rhbz#715152 state vendor
%if 0%{?rhel}
%define vendoroption --with-vendor="Red Hat, Inc."
@ -36,8 +36,8 @@
Summary: Free Software Productivity Suite
Name: libreoffice
Epoch: 1
Version: %{libo_version}.2
Release: 14%{?libo_prerelease}%{?dist}
Version: %{libo_version}.0
Release: 1%{?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
Group: Applications/Productivity
URL: http://www.libreoffice.org/
@ -60,39 +60,40 @@ Source10: %{external_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zi
%endif
%if 0%{?rhel}
Source11: %{external_url}/47203e7cade74e5c385aa812f21e7932-mdds_0.10.2.tar.bz2
%global bundling_options %{?bundling_options} --without-system-mdds
Source11: %{external_url}/aa5ca9d1ed1082890835afab26400a39-mdds_0.10.3.tar.bz2
Source12: %{external_url}/594eb47b4b1210e25438d51825404d5a-glew-1.10.0.zip
%global bundling_options %{?bundling_options} --without-system-mdds --without-system-glew
%if 0%{?rhel} < 7
Source12: %{external_url}/46e92b68e31e858512b680b3b61dc4c1-mythes-1.2.3.tar.gz
Source13: %{external_url}/32f8e1417a64d3c6f2c727f9053f55ea-redland-1.0.16.tar.gz
Source14: %{external_url}/4ceb9316488b0ea01acf011023cf7fff-raptor2-2.0.9.tar.gz
Source15: %{external_url}/b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.tar.gz
Source16: %{external_url}/ae330b9493bd4503ac390106ff6060d7-libexttextcat-3.4.3.tar.bz2
Source17: %{external_url}/libcdr-0.0.15.tar.bz2
Source18: %{external_url}/b85436266b2ac91d351ab5684b181151-libwpg-0.2.2.tar.bz2
Source19: %{external_url}/a3dcac551fae5ebbec16e844810828c4-libwpd-0.9.9.tar.bz2
Source20: %{external_url}/46eb0e7f213ad61bd5dee0c494132cb0-libwps-0.2.9.tar.bz2
Source21: %{external_url}/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz
Source22: %{external_url}/libvisio-0.0.31.tar.bz2
Source23: %{external_url}/861ef15fa0bc018f9ddc932c4ad8b6dd-lcms2-2.4.tar.gz
Source24: %{external_url}/libmspub-0.0.6.tar.bz2
Source25: %{external_url}/ea2acaf140ae40a87a952caa75184f4d-liborcus-0.5.1.tar.bz2
Source26: %{external_url}/36271d3fa0d9dec1632029b6d7aac925-liblangtag-0.5.1.tar.bz2
Source27: %{external_url}/15cb8c0803064faef0c4ddf5bc5ca279-boost_1_54_0.tar.bz2
Source28: %{external_url}/harfbuzz-0.9.23.tar.bz2
Source13: %{external_url}/46e92b68e31e858512b680b3b61dc4c1-mythes-1.2.3.tar.gz
Source14: %{external_url}/32f8e1417a64d3c6f2c727f9053f55ea-redland-1.0.16.tar.gz
Source15: %{external_url}/4ceb9316488b0ea01acf011023cf7fff-raptor2-2.0.9.tar.gz
Source16: %{external_url}/b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.tar.gz
Source17: %{external_url}/ae330b9493bd4503ac390106ff6060d7-libexttextcat-3.4.3.tar.bz2
Source18: %{external_url}/libcdr-0.0.15.tar.bz2
Source19: %{external_url}/b85436266b2ac91d351ab5684b181151-libwpg-0.2.2.tar.bz2
Source20: %{external_url}/a3dcac551fae5ebbec16e844810828c4-libwpd-0.9.9.tar.bz2
Source21: %{external_url}/46eb0e7f213ad61bd5dee0c494132cb0-libwps-0.2.9.tar.bz2
Source22: %{external_url}/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz
Source23: %{external_url}/libvisio-0.0.31.tar.bz2
Source24: %{external_url}/lcms2-2.6.tar.gz
Source25: %{external_url}/libmspub-0.0.6.tar.bz2
Source26: %{external_url}/7681383be6ce489d84c1c74f4e7f9643-liborcus-0.7.0.tar.bz2
Source27: %{external_url}/36271d3fa0d9dec1632029b6d7aac925-liblangtag-0.5.1.tar.bz2
Source28: %{external_url}/d6eef4b4cacb2183f2bf265a5a03a354-boost_1_55_0.tar.bz2
Source29: %{external_url}/harfbuzz-0.9.23.tar.bz2
%global bundling_options %{?bundling_options} --without-system-mythes --without-system-redland --without-system-libexttextcat --without-system-libcdr --without-system-libwpg --without-system-libwpd --without-system-libwps --without-system-clucene --without-system-libvisio --without-system-lcms2 --without-system-libmspub --without-system-orcus --without-system-liblangtag --without-system-boost --without-system-harfbuzz
%endif
Source29: %{external_url}/22f8a85daf4a012180322e1f52a7563b-libcmis-0.4.1.tar.gz
Source30: %{external_url}/libodfgen-0.0.4.tar.bz2
Source31: %{external_url}/libmwaw-0.2.0.tar.bz2
Source32: %{external_url}/libetonyek-0.0.4.tar.bz2
Source33: %{external_url}/libfreehand-0.0.0.tar.bz2
Source34: %{external_url}/libe-book-0.0.3.tar.bz2
Source35: %{external_url}/Firebird-2.5.2.26540-0.tar.bz2
Source36: %{external_url}/libabw-0.0.2.tar.bz2
Source37: %{external_url}/libatomic_ops-7_2d.zip
Source38: %{external_url}/libeot-0.01.tar.bz2
Source39: %{external_url}/language-subtag-registry-2014-03-27.tar.bz2
Source30: %{external_url}/22f8a85daf4a012180322e1f52a7563b-libcmis-0.4.1.tar.gz
Source31: %{external_url}/libodfgen-0.0.4.tar.bz2
Source32: %{external_url}/libmwaw-0.2.0.tar.bz2
Source33: %{external_url}/libetonyek-0.0.4.tar.bz2
Source34: %{external_url}/libfreehand-0.0.0.tar.bz2
Source35: %{external_url}/libe-book-0.0.3.tar.bz2
Source36: %{external_url}/Firebird-2.5.2.26540-0.tar.bz2
Source37: %{external_url}/libabw-0.0.2.tar.bz2
Source38: %{external_url}/libatomic_ops-7_2d.zip
Source39: %{external_url}/libeot-0.01.tar.bz2
Source40: %{external_url}/language-subtag-registry-2014-03-27.tar.bz2
%global bundling_options %{?bundling_options} --without-system-libcmis --without-system-libodfgen --without-system-libmwaw --without-system-libetonyek --without-system-libfreehand --without-system-libebook --without-system-firebird --without-system-libabw --without-system-libatomic_ops --without-system-libeot
%endif
@ -138,6 +139,7 @@ BuildRequires: firebird-devel
BuildRequires: firebird-libfbembed
%endif
BuildRequires: fontpackages-devel
BuildRequires: glm-devel
BuildRequires: pkgconfig(freetype2)
%if 0%{?rhel} && 0%{?rhel} < 7
BuildRequires: gstreamer-devel
@ -183,7 +185,7 @@ BuildRequires: pkgconfig(libidn)
BuildRequires: libjpeg-turbo-devel
BuildRequires: pkgconfig(liblangtag)
BuildRequires: pkgconfig(libmspub-0.0)
BuildRequires: pkgconfig(liborcus-0.6)
BuildRequires: pkgconfig(liborcus-0.8)
BuildRequires: pkgconfig(libvisio-0.0)
BuildRequires: pkgconfig(libwpd-0.9)
BuildRequires: pkgconfig(libwpg-0.2)
@ -254,64 +256,34 @@ Requires: %{name}-math = %{epoch}:%{version}-%{release}
Requires: %{name}-base = %{epoch}:%{version}-%{release}
Requires: %{name}-emailmerge = %{epoch}:%{version}-%{release}
Patch1: openoffice.org-2.0.2.rh188467.printingdefaults.patch
Patch2: openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch
Patch3: openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch
Patch4: openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch
Patch5: openoffice.org-3.1.0.ooo101274.opening-a-directory.patch
Patch6: libreoffice-installfix.patch
# not upstreamed
Patch1: openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch
# not upstreamed
Patch2: 0001-vertical-content-overflowing-out-of-cell-i88341.patch
# not upstreamed
Patch3: openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch
# not upstreamed
Patch4: 0001-i101274-a-directory-on-command-line-is-silently-igno.patch
# not upstreamed
Patch5: libreoffice-installfix.patch
%if 0%{?rhel} && 0%{?rhel} < 7
# not upstreamed
Patch7: libreoffice-rhel6gcj.patch
Patch8: libreoffice-rhel6poppler.patch
Patch9: libreoffice-rhel6langs.patch
Patch10: libreoffice-rhel6glib.patch
%endif
Patch11: 0001-Related-rhbz-1032774-bodge-around-reported-NULL-valu.patch
Patch12: 0001-Resolves-rhbz-1035092-no-shortcut-key-for-Italian-To.patch
Patch13: 0001-Resolves-rhbz-912529-Kerkis-SmallCaps-shown-instead-.patch
Patch14: 0001-disable-firebird-unit-test.patch
Patch15: 0001-never-run-autogen.sh.patch
Patch16: 0001-Related-rhbz-1065807-rework-i66157-for-multiple-writ.patch
Patch17: 0001-Resolves-rhbz-1065807-use-xdg-Templates-for-default-.patch
Patch18: 0001-rhbz-1057977-avoid-use-of-invalidated-pointers.patch
Patch19: 0001-KDE-don-t-throw-on-TemplatePathVariable.patch
Patch20: 0001-Wizards-should-look-for-templates-in-Template_intern.patch
Patch21: 0001-actively-search-for-wizards-dir-in-all-internal-temp.patch
Patch22: 0001-Change-SDK-javaodc-from-static-Package-to-dynamic-Ge.patch
Patch23: 0001-Package-GeneratedPackage-fixup.patch
Patch24: 0001-Related-rhbz-1075951-abrt-crash-in-MSWordExportBase-.patch
Patch25: 0001-drop-OnlyShowIn-from-.desktop-files.patch
Patch26: 0001-Resolves-rhbz-1081176-don-t-jump-to-cursor-pos-when.patch
Patch27: 0001-prevent-KDE-Qt-from-interfering-with-the-session-man.patch
Patch28: 0001-Resolves-fdo-36815-enable-printing-WYSIWYG-sidewindo.patch
Patch29: 0001-Related-fdo-36815-print-the-text-highlight-range-as-.patch
Patch30: 0001-Resolves-rhbz-1086714-overlarge-pixmap.patch
Patch31: 0001-Resolves-rhbz-1089377-crash-on-loading-a-specific-rt.patch
Patch32: 0001-add-a-format-all-comments-feature.patch
Patch33: 0001-Resolves-fdo-37130-use-10pt-Default-style-font-for-c.patch
Patch34: 0001-Related-fdo-36815-center-scaled-comment-page-vertica.patch
Patch35: 0001-Resolves-fdo-78128-go-back-to-using-an-interim-metaf.patch
Patch36: 0001-Related-rhbz-1032774-slide-restarter-should-disable-.patch
Patch37: 0001-add-X-TryExec-entries-to-desktop-files.patch
Patch38: 0001-resolved-fdo-78294-default-null-date-for-document-im.patch
Patch39: 0001-Related-fdo-36815-clip-overlarge-comment-contents.patch
Patch40: 0001-Resolves-rhbz-1092589-Thoroughly-check-whether-JRE-i.patch
Patch41: 0001-center-slide-after-changing-zoom.patch
Patch42: 0001-add-a-status-bar-icon-to-fit-slide-to-window.patch
Patch43: 0001-Related-fdo-50697-reset-the-cache-timeout-on-GetGrap.patch
Patch44: 0001-resolve-fdo-77509-memory-corruption-crash-in-Consoli.patch
Patch45: 0001-rhbz-1071604-don-t-crash-if-slide-layout-configs-are.patch
Patch46: 0001-Related-rhbz-1071604-don-t-paint-anim.-effect-icon.patch
Patch47: 0001-Resolves-rhbz-1096486-avoid-access-to-nonexisting-pa.patch
Patch48: 0001-Resolves-rhbz-1096295-hard-to-distinguish-selected-f.patch
Patch49: 0001-fdo-78119-find-the-longest-match-for-month-name.patch
Patch50: 0001-fdo-77242-fix-crash.patch
Patch51: 0001-update-libxmlsec-config.-to-support-ppc64le.patch
Patch52: 0001-fix-for-doxygen-1.8.7.patch
Patch53: 0001-Use-SVM-metafile-instead-of-PNG-for-diagrams-SmartAr.patch
Patch54: 0001-fix-memory-leak-on-pasting-metafiles-into-writer.patch
Patch55: 0002-coverity-SfxBaseModel-s-pImpl-of-fallback-TargetDocu.patch
Patch56: 0001-strangely-obvious-leaky-code.patch
# not upstreamed
Patch7: libreoffice-rhel6poppler.patch
# not upstreamed
Patch8: libreoffice-rhel6langs.patch
# not upstreamed
Patch9: libreoffice-rhel6glib.patch
%endif
# not upstreamed
Patch10: 0001-Resolves-rhbz-1035092-no-shortcut-key-for-Italian-To.patch
# not upstreamed
Patch11: 0001-disable-firebird-unit-test.patch
# not upstreamed
Patch12: 0001-never-run-autogen.sh.patch
# not upstreamed
Patch13: 0001-add-X-TryExec-entries-to-desktop-files.patch
%define instdir %{_libdir}
%define baseinstdir %{instdir}/libreoffice
@ -1237,12 +1209,16 @@ aclocal -I m4
autoconf
%endif
# TODO: enable gltf?
# TODO: enable coinmp?
# avoid running autogen.sh on make
touch autogen.lastrun
%configure \
%vendoroption \
%{?with_lang} \
--disable-coinmp \
--disable-fetch-external \
--disable-gltf \
--disable-gnome-vfs \
--disable-openssl \
--enable-dbus \
@ -1510,7 +1486,7 @@ rm -rf %{buildroot}%{baseinstdir}/readmes
rm -rf %{buildroot}%{baseinstdir}/licenses
mkdir -p %{buildroot}%{baseinstdir}/share/psprint/driver
cp -p psprint_config/configuration/ppds/SGENPRT.PS %{buildroot}%{baseinstdir}/share/psprint/driver/SGENPRT.PS
cp -p vcl/unx/generic/printer/configuration/ppds/SGENPRT.PS %{buildroot}%{baseinstdir}/share/psprint/driver/SGENPRT.PS
# rhbz#452385 to auto have postgres in classpath if subsequently installed
sed -i -e "s#URE_MORE_JAVA_CLASSPATH_URLS.*#& file:///usr/share/java/postgresql-jdbc.jar#" %{buildroot}%{baseinstdir}/program/fundamentalrc
@ -1593,7 +1569,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar
%{baseinstdir}/program/libdeploymentgui.so
%{baseinstdir}/program/libdlgprovlo.so
%{baseinstdir}/program/libexpwraplo.so
%{baseinstdir}/program/libfastsaxlo.so
%{baseinstdir}/program/flat_logo.svg
%{baseinstdir}/program/libfps_officelo.so
%{baseinstdir}/program/gdbtrace
@ -1601,7 +1576,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar
%{baseinstdir}/program/gengal.bin
%{baseinstdir}/program/gnome-open-url
%{baseinstdir}/program/gnome-open-url.bin
%{baseinstdir}/program/libhatchwindowfactorylo.so
%{baseinstdir}/program/kde-open-url
%{baseinstdir}/program/libi18nsearchlo.so
%{baseinstdir}/program/libldapbe2lo.so
@ -1679,7 +1653,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar
%{baseinstdir}/program/libmtfrendererlo.so
%{baseinstdir}/program/libmysqllo.so
%{baseinstdir}/program/libodbclo.so
%{baseinstdir}/program/libodbcbaselo.so
%{baseinstdir}/program/liboglcanvaslo.so
%{baseinstdir}/program/liboffacclo.so
%{baseinstdir}/program/libooxlo.so
@ -1699,9 +1672,9 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar
%{baseinstdir}/program/libsdbtlo.so
%{baseinstdir}/program/libsddlo.so
%{baseinstdir}/program/libsduilo.so
%{baseinstdir}/program/libspalo.so
%{baseinstdir}/program/libspelllo.so
%{baseinstdir}/program/libsrtrs1.so
%{baseinstdir}/program/libstoragefdlo.so
%{baseinstdir}/program/libsvgiolo.so
%{baseinstdir}/program/libsvxlo.so
%{baseinstdir}/program/libsvxcorelo.so
@ -1710,7 +1683,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar
%{baseinstdir}/program/libtextconv_dict.so
%{baseinstdir}/program/libtextconversiondlgslo.so
%{baseinstdir}/program/libtextfdlo.so
%{baseinstdir}/program/libtvhlp1.so
%{baseinstdir}/program/libodfflatxmllo.so
# TODO: shouldn't it have lo suffix?
%{baseinstdir}/program/libucbhelper.so
@ -1776,13 +1748,11 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar
%{baseinstdir}/program/resource/scnen-US.res
%{baseinstdir}/program/resource/sden-US.res
%{baseinstdir}/program/resource/sfxen-US.res
%{baseinstdir}/program/resource/spaen-US.res
%{baseinstdir}/program/resource/sdbten-US.res
%{baseinstdir}/program/resource/svlen-US.res
%{baseinstdir}/program/resource/svten-US.res
%{baseinstdir}/program/resource/svxen-US.res
%{baseinstdir}/program/resource/swen-US.res
%{baseinstdir}/program/resource/textconversiondlgsen-US.res
%{baseinstdir}/program/resource/tplen-US.res
%{baseinstdir}/program/resource/uuien-US.res
%{baseinstdir}/program/resource/upden-US.res
@ -1796,7 +1766,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar
%{baseinstdir}/program/libsimplecanvaslo.so
%{baseinstdir}/program/libslideshowlo.so
%{baseinstdir}/program/libsofficeapp.so
%{baseinstdir}/program/spadmin.bin
%{baseinstdir}/program/libstringresourcelo.so
%{baseinstdir}/program/libsysshlo.so
%{baseinstdir}/program/libucpcmis1lo.so
@ -1824,8 +1793,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar
%{baseinstdir}/share/config/images_oxygen.zip
%{baseinstdir}/share/config/images_sifr.zip
%{baseinstdir}/share/config/images_tango.zip
%{baseinstdir}/share/config/psetup.xpm
%{baseinstdir}/share/config/psetupl.xpm
%dir %{baseinstdir}/share/config/soffice.cfg
%{baseinstdir}/share/config/soffice.cfg/modules
%if %{with langpacks}
@ -1911,7 +1878,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar
%{baseinstdir}/program/libsfxlo.so
%{baseinstdir}/program/libsotlo.so
%{baseinstdir}/program/libspllo.so
%{baseinstdir}/program/libspl_unxlo.so
%{baseinstdir}/program/libsvllo.so
%{baseinstdir}/program/libsvtlo.so
%{baseinstdir}/program/libtklo.so
@ -1920,6 +1886,8 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar
%{baseinstdir}/program/libucpfile1.so
%{baseinstdir}/program/libutllo.so
%{baseinstdir}/program/libvcllo.so
%{baseinstdir}/program/libvclopengllo.so
%{baseinstdir}/program/libwriterperfectlo.so
%{baseinstdir}/program/libxmlscriptlo.so
%{baseinstdir}/program/libxolo.so
%{baseinstdir}/program/liblocalebe1lo.so
@ -1944,11 +1912,14 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar
%{baseinstdir}/program/soffice
%{baseinstdir}/program/soffice.bin
%{baseinstdir}/program/sofficerc
%{baseinstdir}/program/spadmin
%{baseinstdir}/program/unoinfo
%{baseinstdir}/program/libnpsoplugin.so
%{baseinstdir}/program/oosplash
%{baseinstdir}/program/shell/
%dir %{baseinstdir}/share/filter
%{baseinstdir}/share/filter/oox-drawingml-adj-names
%{baseinstdir}/share/filter/oox-drawingml-cs-presets
%{baseinstdir}/share/filter/vml-shape-types
%{baseinstdir}/share/xdg/
%{baseinstdir}/program/redirectrc
%{_datadir}/applications/libreoffice-startcenter.desktop
@ -2275,6 +2246,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
%endif
%changelog
* Wed May 21 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.0-1.beta1
- update to 4.3.0 beta1
* Fri May 16 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.2.4.2-14
- render smart-art with a vector format so it can be scaled nicely
- fix leak on pasting metafiles into office

@ -7,10 +7,10 @@ Subject: [PATCH] rhbz#188467 printing defaults
psprint_config/configuration/ppds/SGENPRT.PS | 1 +
1 file changed, 1 insertion(+)
diff --git a/psprint_config/configuration/ppds/SGENPRT.PS b/psprint_config/configuration/ppds/SGENPRT.PS
diff --git a/vcl/unx/generic/printer/configuration/ppds/SGENPRT.PS b/vcl/unx/generic/printer/configuration/ppds/SGENPRT.PS
index 0446757..177e2c4 100644
--- a/psprint_config/configuration/ppds/SGENPRT.PS
+++ b/psprint_config/configuration/ppds/SGENPRT.PS
--- a/vcl/unx/generic/printer/configuration/ppds/SGENPRT.PS
+++ b/vcl/unx/generic/printer/configuration/ppds/SGENPRT.PS
@@ -42,6 +42,7 @@
*ColorDevice: True
*DefaultColorSpace: RGB

@ -6,6 +6,6 @@ a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.
1f24ab1d39f4a51faf22244c94a6203f 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
0168229624cfac409e766913506961a8 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
12fb8b5b0d5132726e57b9b9fc7e22c4 libreoffice-multiliblauncher.sh
698a482f0cacd8b5eba9865fdd8a5403 libreoffice-4.2.4.2.tar.xz
a0ed88ac1758d2f87687fcf4bb7c9432 libreoffice-help-4.2.4.2.tar.xz
3db05930dc7c694d2cf58875b3245c2e libreoffice-translations-4.2.4.2.tar.xz
c98ff0989252558dc21b71ec5e32049f libreoffice-4.3.0.0.beta1.tar.xz
5b3b55d75a9659dace93900c3e88d6a9 libreoffice-help-4.3.0.0.beta1.tar.xz
507657907ee417631287c79deb44cfc8 libreoffice-translations-4.3.0.0.beta1.tar.xz

Loading…
Cancel
Save