basctl/source/dlged/managelang.cxx | 2 basic/source/classes/sbxmod.cxx | 7 bin/run | 2 chart2/source/controller/dialogs/DataBrowser.cxx | 29 chart2/source/controller/dialogs/DataBrowser.hxx | 2 chart2/source/inc/DiagramHelper.hxx | 1 chart2/source/tools/DiagramHelper.cxx | 49 chart2/source/view/main/VDataSeries.cxx | 8 configure.ac | 2 cui/source/tabpages/numfmt.cxx | 9 editeng/source/editeng/impedit4.cxx | 3 external/apr/UnpackedTarball_apr.mk | 6 external/apr/uuid.patch | 241 + external/libetonyek/ExternalPackage_libetonyek.mk | 2 external/libetonyek/UnpackedTarball_libetonyek.mk | 8 external/libetonyek/libetonyek-bundled-soname.patch.0 | 11 external/libmwaw/ExternalPackage_libmwaw.mk | 2 external/libmwaw/UnpackedTarball_libmwaw.mk | 8 external/libmwaw/libmwaw-bundled-soname.patch.0 | 14 external/libodfgen/ExternalPackage_libodfgen.mk | 2 external/libodfgen/UnpackedTarball_libodfgen.mk | 9 external/libodfgen/libodfgen-bundled-soname.patch.0 | 11 external/librevenge/ExternalPackage_librevenge.mk | 2 external/librevenge/UnpackedTarball_librevenge.mk | 8 external/librevenge/librevenge-bundled-soname.patch.0 | 11 external/libwpd/ExternalPackage_libwpd.mk | 2 external/libwpd/UnpackedTarball_libwpd.mk | 8 external/libwpd/libwpd-bundled-soname.patch.0 | 11 external/libwpg/ExternalPackage_libwpg.mk | 2 external/libwpg/UnpackedTarball_libwpg.mk | 8 external/libwpg/libwpg-bundled-soname.patch.0 | 11 external/libwps/ExternalPackage_libwps.mk | 2 external/libwps/UnpackedTarball_libwps.mk | 8 external/libwps/libwps-bundled-soname.patch.0 | 11 filter/source/graphicfilter/eps/eps.cxx | 2 framework/source/helper/statusindicatorfactory.cxx | 11 icon-themes/breeze/framework/res/extension.png |binary icon-themes/breeze/framework/res/folder_32.png |binary icon-themes/breeze/framework/res/info_26.png |binary icon-themes/breeze/framework/res/recent-documents.png |binary icon-themes/breeze/framework/res/remote-documents.png |binary icon-themes/breeze/framework/res/templates_32.png |binary icon-themes/breeze/res/odb_32_8.png |binary icon-themes/breeze/res/odf_32_8.png |binary icon-themes/breeze/res/odg_32_8.png |binary icon-themes/breeze/res/odp_32_8.png |binary icon-themes/breeze/res/ods_32_8.png |binary icon-themes/breeze/res/odt_32_8.png |binary include/formula/grammar.hxx | 6 include/o3tl/lru_map.hxx | 141 include/vcl/edit.hxx | 4 include/vcl/salnativewidgets.hxx | 42 jurt/com/sun/star/lib/connections/socket/socketAcceptor.java | 5 jurt/com/sun/star/lib/connections/socket/socketConnector.java | 4 o3tl/CppunitTest_o3tl_tests.mk | 1 o3tl/qa/test-lru_map.cxx | 239 + offapi/com/sun/star/datatransfer/XTransferable2.idl | 2 officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu | 2 officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu | 2 oox/source/core/xmlfilterbase.cxx | 6 oox/source/shape/WpsContext.cxx | 33 oox/source/token/namespaces-strict.txt | 3 oox/source/token/namespaces.hxx.tail | 1 oox/source/token/namespaces.txt | 3 oox/source/token/tokens.txt | 8 postprocess/CustomTarget_registry.mk | 6 readlicense_oo/license/CREDITS.fodt | 2244 +++++----- sal/osl/w32/file_error.c | 2 sc/inc/calcconfig.hxx | 2 sc/inc/compare.hxx | 8 sc/inc/globstr.hrc | 4 sc/inc/unonames.hxx | 1 sc/qa/unit/ucalc_formula.cxx | 11 sc/sdi/scalc.sdi | 6 sc/source/core/data/bcaslot.cxx | 20 sc/source/core/data/column2.cxx | 14 sc/source/core/data/document.cxx | 8 sc/source/core/data/table3.cxx | 16 sc/source/core/inc/interpre.hxx | 2 sc/source/core/tool/calcconfig.cxx | 12 sc/source/core/tool/compare.cxx | 22 sc/source/core/tool/interpr1.cxx | 38 sc/source/core/tool/interpr5.cxx | 2 sc/source/core/tool/parclass.cxx | 6 sc/source/core/tool/scmatrix.cxx | 2 sc/source/filter/excel/excdoc.cxx | 13 sc/source/filter/excel/xeextlst.cxx | 45 sc/source/filter/inc/extlstcontext.hxx | 22 sc/source/filter/inc/xeextlst.hxx | 19 sc/source/filter/oox/extlstcontext.cxx | 54 sc/source/filter/oox/workbookfragment.cxx | 3 sc/source/filter/oox/workbookhelper.cxx | 22 sc/source/ui/namedlg/namemgrtable.cxx | 2 sc/source/ui/optdlg/calcoptionsdlg.cxx | 24 sc/source/ui/sidebar/CellLineStyleControl.cxx | 8 sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx | 5 sc/source/ui/src/globstr.src | 6 sc/source/ui/unoobj/confuno.cxx | 58 sc/source/ui/view/cellsh1.cxx | 2 sc/source/ui/view/output2.cxx | 52 sc/source/ui/view/viewdata.cxx | 6 sc/uiconfig/scalc/ui/formulacalculationoptions.ui | 1 sd/source/ui/table/TableDesignPane.cxx | 2 sd/source/ui/view/DocumentRenderer.cxx | 6 sd/source/ui/view/DocumentRenderer.src | 2 sot/source/base/exchange.cxx | 8 svl/source/numbers/zforfind.cxx | 57 svl/source/numbers/zforfind.hxx | 1 svl/source/numbers/zformat.cxx | 2 svtools/source/brwbox/editbrowsebox.cxx | 10 svtools/source/config/menuoptions.cxx | 2 svx/source/dialog/_contdlg.cxx | 2 svx/source/dialog/charmap.cxx | 7 svx/source/form/fmvwimp.cxx | 96 svx/source/form/formcontrolling.cxx | 12 svx/source/sidebar/PanelLayout.cxx | 12 svx/source/sidebar/graphic/GraphicPropertyPanel.cxx | 1 svx/source/sidebar/line/LineWidthControl.cxx | 4 svx/source/tbxctrls/tbcontrl.cxx | 12 svx/source/unodraw/unoshap4.cxx | 8 sw/inc/drawdoc.hxx | 2 sw/qa/core/data/ooxml/pass/tdf92157-1-minimized.docx |binary sw/qa/core/data/ooxml/pass/tdf93284.docx |binary sw/qa/core/data/ww8/pass/crash-2.doc |binary sw/qa/core/data/ww8/pass/hang-2.doc |binary sw/qa/core/data/ww8/pass/hang-3.doc |binary sw/qa/extras/ooxmlimport/data/tdf87924.docx |binary sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 8 sw/qa/extras/uiwriter/data/tdf89720.odt |binary sw/qa/extras/uiwriter/data/tdf89954.odt |binary sw/qa/extras/uiwriter/uiwriter.cxx | 85 sw/source/core/doc/DocumentLayoutManager.cxx | 9 sw/source/core/doc/DocumentLinksAdministrationManager.cxx | 3 sw/source/core/draw/drawdoc.cxx | 8 sw/source/core/layout/paintfrm.cxx | 3 sw/source/core/txtnode/fntcache.cxx | 10 sw/source/core/txtnode/thints.cxx | 2 sw/source/core/view/viewimp.cxx | 3 sw/source/core/view/viewsh.cxx | 30 sw/source/filter/ww8/WW8Sttbf.cxx | 2 sw/source/filter/ww8/wrtw8nds.cxx | 11 sw/source/filter/ww8/wrtww8gr.cxx | 16 sw/source/filter/ww8/ww8atr.cxx | 8 sw/source/filter/ww8/ww8par.cxx | 43 sw/source/filter/ww8/ww8par.hxx | 14 sw/source/filter/ww8/ww8scan.cxx | 82 sw/source/filter/ww8/ww8scan.hxx | 9 sw/source/ui/vba/vbatablehelper.cxx | 9 sw/source/uibase/docvw/SidebarWin.cxx | 3 sw/source/uibase/shells/frmsh.cxx | 6 sw/source/uibase/shells/textsh.cxx | 7 vcl/inc/opengl/salbmp.hxx | 2 vcl/inc/opengl/win/gdiimpl.hxx | 9 vcl/inc/opengl/x11/gdiimpl.hxx | 11 vcl/inc/openglgdiimpl.hxx | 6 vcl/inc/unx/gtk/gtkgdi.hxx | 1 vcl/inc/unx/salgdi.h | 6 vcl/inc/unx/x11/x11gdiimpl.h | 6 vcl/inc/window.h | 21 vcl/opengl/program.cxx | 1 vcl/opengl/salbmp.cxx | 7 vcl/opengl/scale.cxx | 52 vcl/opengl/win/gdiimpl.cxx | 85 vcl/opengl/x11/gdiimpl.cxx | 89 vcl/qa/cppunit/graphicfilter/data/emf/pass/crash-2.emf |binary vcl/qa/cppunit/graphicfilter/data/wmf/fail/hang-2.wmf |binary vcl/source/control/edit.cxx | 17 vcl/source/filter/wmf/enhwmf.cxx | 40 vcl/source/filter/wmf/winmtf.cxx | 6 vcl/source/gdi/impanmvw.cxx | 49 vcl/source/gdi/pdfwriter_impl.cxx | 9 vcl/source/outdev/rect.cxx | 2 vcl/source/window/cursor.cxx | 9 vcl/source/window/paint.cxx | 230 - vcl/unx/generic/gdi/gdiimpl.cxx | 11 vcl/unx/generic/gdi/gdiimpl.hxx | 5 vcl/unx/generic/gdi/salgdi2.cxx | 15 vcl/unx/gtk/app/gtkdata.cxx | 19 vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx | 23 vcl/unx/gtk3/app/gtk3gtkinst.cxx | 35 vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx | 52 vcl/win/source/gdi/gdiimpl.cxx | 14 vcl/win/source/gdi/gdiimpl.hxx | 6 vcl/win/source/gdi/salnativewidgets-luna.cxx | 25 184 files changed, 3609 insertions(+), 1666 deletions(-)
New commits: commit 2dd5ba7ee56dcb12e549d8916a4d7d1b7b1aac10 Author: Khaled Hosny <khaledho...@eglug.org> Date: Mon Aug 17 00:49:39 2015 +0200 Fix GTK3 right-to-left rendering * Reverse the direction of arrows e.g. in menus * Reverse the position of combobox button They are lumped together because fixing one breaks the other Change-Id: I65afb08785e67db72a72ad39f1de56db037b640a Reviewed-on: https://gerrit.libreoffice.org/17788 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Norbert Thiebaud <nthieb...@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/17845 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx index 126d6d1..1f04b2e 100644 --- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx @@ -77,6 +77,11 @@ static void NWConvertVCLStateToGTKState( ControlState nVCLState, if ( nVCLState & ControlState::FOCUSED ) *nGTKState = (GtkStateFlags) (*nGTKState | GTK_STATE_FLAG_FOCUSED); + + if (AllSettings::GetLayoutRTL()) + { + *nGTKState = (GtkStateFlags) (*nGTKState | GTK_STATE_FLAG_DIR_RTL); + } } enum { @@ -661,9 +666,11 @@ Rectangle GtkSalGraphics::NWGetComboBoxButtonRect( ControlType nType, nButtonWidth = nArrowWidth + padding.left + padding.right; if( nPart == PART_BUTTON_DOWN ) { + Point aPos = Point(aAreaRect.Left() + aAreaRect.GetWidth() - nButtonWidth, aAreaRect.Top()); + if (AllSettings::GetLayoutRTL()) + aPos.X() = aAreaRect.Left(); aButtonRect.SetSize( Size( nButtonWidth, aAreaRect.GetHeight() ) ); - aButtonRect.SetPos( Point( aAreaRect.Left() + aAreaRect.GetWidth() - nButtonWidth, - aAreaRect.Top() ) ); + aButtonRect.SetPos(aPos); } else if( nPart == PART_SUB_EDIT ) { @@ -675,7 +682,10 @@ Rectangle GtkSalGraphics::NWGetComboBoxButtonRect( ControlType nType, aButtonRect.SetSize( Size( aAreaRect.GetWidth() - nButtonWidth - (adjust_left + adjust_right), aAreaRect.GetHeight() - (adjust_top + adjust_bottom)) ); Point aEditPos = aAreaRect.TopLeft(); - aEditPos.X() += adjust_left; + if (AllSettings::GetLayoutRTL()) + aEditPos.X() += nButtonWidth; + else + aEditPos.X() += adjust_left; aEditPos.Y() += adjust_top; aButtonRect.SetPos( aEditPos ); } @@ -703,6 +713,8 @@ void GtkSalGraphics::PaintCombobox( GtkStateFlags flags, cairo_t *cr, Rectangle aEditBoxRect( areaRect ); aEditBoxRect.SetSize( Size( areaRect.GetWidth() - buttonRect.GetWidth(), aEditBoxRect.GetHeight() ) ); + if (AllSettings::GetLayoutRTL()) + aEditBoxRect.SetPos( Point( areaRect.Left() + buttonRect.GetWidth(), areaRect.Top() ) ); arrowRect.SetSize( Size( (gint)(ARROW_SIZE), (gint)(ARROW_SIZE) ) ); @@ -719,7 +731,10 @@ void GtkSalGraphics::PaintCombobox( GtkStateFlags flags, cairo_t *cr, { gtk_style_context_save(mpEntryStyle); gtk_style_context_set_state(mpEntryStyle, flags); - gtk_style_context_set_junction_sides(mpEntryStyle, GTK_JUNCTION_RIGHT); + if (AllSettings::GetLayoutRTL()) + gtk_style_context_set_junction_sides(mpEntryStyle, GTK_JUNCTION_LEFT); + else + gtk_style_context_set_junction_sides(mpEntryStyle, GTK_JUNCTION_RIGHT); gtk_render_background(mpComboboxStyle, cr, 0, 0, @@ -727,12 +742,13 @@ void GtkSalGraphics::PaintCombobox( GtkStateFlags flags, cairo_t *cr, gtk_render_frame(mpComboboxStyle, cr, 0, 0, areaRect.GetWidth(), areaRect.GetHeight()); - gtk_render_background(mpEntryStyle, cr, - 0, 0, + (aEditBoxRect.Left() - areaRect.Left()), + (aEditBoxRect.Top() - areaRect.Top()), aEditBoxRect.GetWidth(), aEditBoxRect.GetHeight() ); gtk_render_frame(mpEntryStyle, cr, - 0, 0, + (aEditBoxRect.Left() - areaRect.Left()), + (aEditBoxRect.Top() - areaRect.Top()), aEditBoxRect.GetWidth(), aEditBoxRect.GetHeight() ); gtk_style_context_restore(mpEntryStyle); commit db6a9f71bc034b3a1e5905c58203aaa53d2d5291 Author: Noel Grandin <n...@peralex.com> Date: Thu Aug 20 11:14:34 2015 +0200 XTransferable2 should be including XTransferable, not itself Change-Id: I5790c949354434fc3661520c9038fd90e1b182f4 (cherry picked from commit 930c7fb43aa97d9e64769d5d04f3cda1d76f9cd4) Signed-off-by: Michael Stahl <mst...@redhat.com> diff --git a/offapi/com/sun/star/datatransfer/XTransferable2.idl b/offapi/com/sun/star/datatransfer/XTransferable2.idl index 5ff7d58..f792a96 100644 --- a/offapi/com/sun/star/datatransfer/XTransferable2.idl +++ b/offapi/com/sun/star/datatransfer/XTransferable2.idl @@ -8,7 +8,7 @@ #ifndef __com_sun_star_datatransfer_XTransferable2_idl__ #define __com_sun_star_datatransfer_XTransferable2_idl__ -#include <com/sun/star/datatransfer/XTransferable2.idl> +#include <com/sun/star/datatransfer/XTransferable.idl> module com { module sun { module star { module datatransfer { commit 5b4da012874829e11d98a10aafaf49c61792706e Author: Laurent Balland-Poirier <laurent.balland-poir...@laposte.net> Date: Wed Jun 17 15:15:07 2015 +0200 tdf#76649 Skip NaN initial values for min and max min and max were initiated as aValuesX[0] which could be NaN test i before evaluating aValuesX[i] Change-Id: I0246913dcf427e59fd354321eeffa7c08c41c08d Reviewed-on: https://gerrit.libreoffice.org/17772 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/chart2/source/view/main/VDataSeries.cxx b/chart2/source/view/main/VDataSeries.cxx index 043cbaa..18614b1 100644 --- a/chart2/source/view/main/VDataSeries.cxx +++ b/chart2/source/view/main/VDataSeries.cxx @@ -520,9 +520,13 @@ void VDataSeries::getMinMaxXValue(double& fMin, double& fMax) const if(aValuesX.getLength() > 0) { - fMax = fMin = aValuesX[0]; + sal_Int32 i = 0; + while ( i < aValuesX.getLength() && ::rtl::math::isNan( aValuesX[i] ) ) + i++; + if ( i < aValuesX.getLength() ) + fMax = fMin = aValuesX[i++]; - for (sal_Int32 i = 1; i < aValuesX.getLength(); i++) + for ( ; i < aValuesX.getLength(); i++) { const double aValue = aValuesX[i]; if ( aValue > fMax) commit c7724e73abaf2bfd1490cfeae1c8ab0244f126e7 Author: Michael Stahl <mst...@redhat.com> Date: Thu Aug 20 00:25:31 2015 +0200 tdf#93451: svtools: don't commit SvtMenuOptions too early Surprisingly SvtMenuOptions_Impl::ImplCommit() does not actually write m_eMenuIcons for "ShowIconsInMenues" but something read out of Application::Settings(), which appears to be deliberate (i#95318). Whatever sets that does it after SetMenuIconsState() is called, so keep the SvtMenuOptions modified by not calling Commit(). (regression from 765f6211b1371c1e40de386e715de6b3d1a8df86) Change-Id: I368b65589d16753d80a1b9e9cc7d7df59c0f53da (cherry picked from commit ce0bba5fc1090caa7fb80f1bcc6ce64f67f11238) Reviewed-on: https://gerrit.libreoffice.org/17865 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/svtools/source/config/menuoptions.cxx b/svtools/source/config/menuoptions.cxx index 22dc5e6..32d54b2 100644 --- a/svtools/source/config/menuoptions.cxx +++ b/svtools/source/config/menuoptions.cxx @@ -128,7 +128,7 @@ class SvtMenuOptions_Impl : public ConfigItem SetModified(); for ( ::std::list<Link<>>::const_iterator iter = aList.begin(); iter != aList.end(); ++iter ) iter->Call( this ); - Commit(); + // tdf#93451: don't Commit() here, it's too early } commit f763ca94f196aca4d90748d9b3af9b1dcdf13534 Author: andreask <kain...@gmail.com> Date: Tue Aug 18 01:30:30 2015 +0200 Breeze: StartCenter icon size fixed to 32px tdf#93064 tdf#92242 Change-Id: I3501c917f5916b49b7cda35b89cafcc27987d828 Reviewed-on: https://gerrit.libreoffice.org/17820 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> (cherry picked from commit 9eec11735cf929cbb5da72bc500e9ad1735c4bf3) Reviewed-on: https://gerrit.libreoffice.org/17838 Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> diff --git a/icon-themes/breeze/framework/res/extension.png b/icon-themes/breeze/framework/res/extension.png index 0495357..75fb1f8 100644 Binary files a/icon-themes/breeze/framework/res/extension.png and b/icon-themes/breeze/framework/res/extension.png differ diff --git a/icon-themes/breeze/framework/res/folder_32.png b/icon-themes/breeze/framework/res/folder_32.png index 898f4f2..0cdb329 100644 Binary files a/icon-themes/breeze/framework/res/folder_32.png and b/icon-themes/breeze/framework/res/folder_32.png differ diff --git a/icon-themes/breeze/framework/res/info_26.png b/icon-themes/breeze/framework/res/info_26.png index 7534201..6da1e8e 100644 Binary files a/icon-themes/breeze/framework/res/info_26.png and b/icon-themes/breeze/framework/res/info_26.png differ diff --git a/icon-themes/breeze/framework/res/recent-documents.png b/icon-themes/breeze/framework/res/recent-documents.png index 9e02125..fde5062 100644 Binary files a/icon-themes/breeze/framework/res/recent-documents.png and b/icon-themes/breeze/framework/res/recent-documents.png differ diff --git a/icon-themes/breeze/framework/res/remote-documents.png b/icon-themes/breeze/framework/res/remote-documents.png new file mode 100644 index 0000000..6e4f853 Binary files /dev/null and b/icon-themes/breeze/framework/res/remote-documents.png differ diff --git a/icon-themes/breeze/framework/res/templates_32.png b/icon-themes/breeze/framework/res/templates_32.png index b5adc50..efeb344 100644 Binary files a/icon-themes/breeze/framework/res/templates_32.png and b/icon-themes/breeze/framework/res/templates_32.png differ diff --git a/icon-themes/breeze/res/odb_32_8.png b/icon-themes/breeze/res/odb_32_8.png index a8105ff..f719738 100644 Binary files a/icon-themes/breeze/res/odb_32_8.png and b/icon-themes/breeze/res/odb_32_8.png differ diff --git a/icon-themes/breeze/res/odf_32_8.png b/icon-themes/breeze/res/odf_32_8.png index f90dabd..837f12d 100644 Binary files a/icon-themes/breeze/res/odf_32_8.png and b/icon-themes/breeze/res/odf_32_8.png differ diff --git a/icon-themes/breeze/res/odg_32_8.png b/icon-themes/breeze/res/odg_32_8.png index 64f043c..93a3083 100644 Binary files a/icon-themes/breeze/res/odg_32_8.png and b/icon-themes/breeze/res/odg_32_8.png differ diff --git a/icon-themes/breeze/res/odp_32_8.png b/icon-themes/breeze/res/odp_32_8.png index afcef4b..2c5deac 100644 Binary files a/icon-themes/breeze/res/odp_32_8.png and b/icon-themes/breeze/res/odp_32_8.png differ diff --git a/icon-themes/breeze/res/ods_32_8.png b/icon-themes/breeze/res/ods_32_8.png index de5253c..df3783e 100644 Binary files a/icon-themes/breeze/res/ods_32_8.png and b/icon-themes/breeze/res/ods_32_8.png differ diff --git a/icon-themes/breeze/res/odt_32_8.png b/icon-themes/breeze/res/odt_32_8.png index 4defc32..c9e1a13 100644 Binary files a/icon-themes/breeze/res/odt_32_8.png and b/icon-themes/breeze/res/odt_32_8.png differ commit 4fc74bf7f550c9355ad6c6984432471216b5c18a Author: Noel Grandin <n...@peralex.com> Date: Thu Jul 30 15:38:41 2015 +0200 tdf#93410 - NPE while connecting to LibreOffice via Java UNO API The below commit fixes this as bug as a side-effect: fix use of TCP_NODELAY for localhost URP connections we implemented this logic in the C++ URP code a while back, but the Java code was not correctly updated. Reviewed-on: https://gerrit.libreoffice.org/17427 Reviewed-by: Noel Grandin <noelgran...@gmail.com> Tested-by: Noel Grandin <noelgran...@gmail.com> (cherry picked from commit 9ffdcc76858bc01150727345de4dfd0ef40ed8c0) Change-Id: I377d7150f1adb69d6f86d9b4f3406163aaf85aea Reviewed-on: https://gerrit.libreoffice.org/17708 Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> Tested-by: Thorsten Behrens <thorsten.behr...@cib.de> diff --git a/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java b/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java index 022f891..da33625 100644 --- a/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java +++ b/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java @@ -152,9 +152,12 @@ public final class socketAcceptor implements XAcceptor { } // we enable tcpNoDelay for loopback connections because // it can make a significant speed difference on linux boxes. - if (tcpNoDelay != null || ((InetSocketAddress)socket.getRemoteSocketAddress()).getAddress().isLoopbackAddress()) { + if (tcpNoDelay != null) { socket.setTcpNoDelay(tcpNoDelay.booleanValue()); } + else if (((InetSocketAddress)socket.getRemoteSocketAddress()).getAddress().isLoopbackAddress()) { + socket.setTcpNoDelay(true); + } return new SocketConnection(acceptingDescription, socket); } catch(IOException e) { diff --git a/jurt/com/sun/star/lib/connections/socket/socketConnector.java b/jurt/com/sun/star/lib/connections/socket/socketConnector.java index fc44639..c169b59 100644 --- a/jurt/com/sun/star/lib/connections/socket/socketConnector.java +++ b/jurt/com/sun/star/lib/connections/socket/socketConnector.java @@ -146,8 +146,10 @@ public final class socketConnector implements XConnector { try { // we enable tcpNoDelay for loopback connections because // it can make a significant speed difference on linux boxes. - if (desc.getTcpNoDelay() != null || isLoopbackAddress) + if (desc.getTcpNoDelay() != null) socket.setTcpNoDelay(desc.getTcpNoDelay().booleanValue()); + else if (isLoopbackAddress) + socket.setTcpNoDelay(true); con = new SocketConnection(connectionDescription, socket); } catch (IOException e) { commit 8a2ddbeff52978336dc9173dacc0c0a8f292ce1a Author: Katarina Behrens <katarina.behr...@cib.de> Date: Mon Jul 13 18:41:19 2015 +0200 tdf#92256: Improved interop of INDIRECT function This is a combination of 12 commits from master branch: tdf#92256: ODF save/load syntax for string reference Related tdf#92256: map CONV_OOO to listbox item no.1 tdf#92256: Introducing CONV_A1_XL_A1 address pseudoconvention tdf#92256: OOXML save/load syntax for string reference add unhandled case in switch that comment is not correct anymore don't generate invalid XLSX files tdf#92256: Handle case when string ref syntax is unknown tdf#92256: Make OOXML filter CONV_A1_XL_A1 aware too tdf#92256: Make sure ref syntax of Excel docs gets saved tdf#92256: Save ref syntax when different from native one tdf#92256: Don't force CalcA1 syntax on all !Microsoft xlsx docs Change-Id: I226d5644ce729f1311aefc9a8998b3a75633c334 Reviewed-on: https://gerrit.libreoffice.org/17837 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> diff --git a/include/formula/grammar.hxx b/include/formula/grammar.hxx index 4f6a2bc..618db98 100644 --- a/include/formula/grammar.hxx +++ b/include/formula/grammar.hxx @@ -43,7 +43,11 @@ public: CONV_LOTUS_A1, /* external? 3d? A1.B2 <placeholder/> */ - CONV_LAST /* for loops, must always be last */ + CONV_LAST, /* for loops, must always be last */ + + // not a real address convention, a special case for INDIRECT function interpretation + // only -> try using CONV_OOO, failing that CONV_XL_A1 + CONV_A1_XL_A1 }; //! CONV_UNSPECIFIED is a negative value! diff --git a/oox/source/core/xmlfilterbase.cxx b/oox/source/core/xmlfilterbase.cxx index 4ef16d0..13deec2 100644 --- a/oox/source/core/xmlfilterbase.cxx +++ b/oox/source/core/xmlfilterbase.cxx @@ -118,7 +118,8 @@ struct NamespaceIds: public rtl::StaticWithInit< "http://schemas.openxmlformats.org/markup-compatibility/2006", "http://schemas.openxmlformats.org/spreadsheetml/2006/main/v2", "http://schemas.microsoft.com/office/drawing/2008/diagram", - "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main" + "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main", + "http://schemas.libreoffice.org/" }; static const sal_Int32 namespaceIds[] = { @@ -145,7 +146,8 @@ struct NamespaceIds: public rtl::StaticWithInit< NMSP_mce, NMSP_mceTest, NMSP_dsp, - NMSP_xls14Lst + NMSP_xls14Lst, + NMSP_loext }; Sequence< beans::Pair< OUString, sal_Int32 > > aRet(SAL_N_ELEMENTS(namespaceIds)); diff --git a/oox/source/token/namespaces-strict.txt b/oox/source/token/namespaces-strict.txt index 9359f8b..026fcfe 100644 --- a/oox/source/token/namespaces-strict.txt +++ b/oox/source/token/namespaces-strict.txt @@ -80,3 +80,6 @@ a14 http://schemas.microsoft.com/office/drawingml/2010/main # xls14Lst for features introduced by excel 2010 xls14Lst http://schemas.microsoft.com/office/spreadsheetml/2009/9/main + +# LibreOffice's own extensions +loext http://schemas.libreoffice.org/ diff --git a/oox/source/token/namespaces.hxx.tail b/oox/source/token/namespaces.hxx.tail index de5cc21..24de645 100644 --- a/oox/source/token/namespaces.hxx.tail +++ b/oox/source/token/namespaces.hxx.tail @@ -55,6 +55,7 @@ inline sal_Int32 getNamespace( sal_Int32 nToken ) { return nToken & NMSP_MASK; } #define WPS_TOKEN( token ) OOX_TOKEN( wps, token ) #define WPG_TOKEN( token ) OOX_TOKEN( wpg, token ) #define W_TOKEN( token ) OOX_TOKEN( doc, token ) +#define LOEXT_TOKEN( token ) OOX_TOKEN( loext, token ) diff --git a/oox/source/token/namespaces.txt b/oox/source/token/namespaces.txt index face9d6..2c61d60 100644 --- a/oox/source/token/namespaces.txt +++ b/oox/source/token/namespaces.txt @@ -80,3 +80,6 @@ a14 http://schemas.microsoft.com/office/drawing/2010/main # xls14Lst for features introduced by excel 2010 xls14Lst http://schemas.microsoft.com/office/spreadsheetml/2009/9/main + +# LibreOffice's own extensions +loext http://schemas.libreoffice.org/ diff --git a/oox/source/token/tokens.txt b/oox/source/token/tokens.txt index c26e957..c5843fa 100644 --- a/oox/source/token/tokens.txt +++ b/oox/source/token/tokens.txt @@ -69,6 +69,8 @@ BroadcastTitle Broadcaster Button CF +CalcA1 +CalcA1ExcelA1 Camera Cancel Caption @@ -141,6 +143,8 @@ Editor ElectronicSource Embed EnhancedMetaFile +ExcelA1 +ExcelR1C1 Extend Extension External @@ -392,6 +396,7 @@ True Type Types UIObj +Unspecified URI URL UpdateMode @@ -2137,6 +2142,7 @@ exp explosion expression ext +extCalcPr extLst extend extendable @@ -3165,6 +3171,7 @@ lockWindows locked lockedCanvas lockrotationcenter +loext log logBase lon @@ -4954,6 +4961,7 @@ strikeH strikeTLBR strikeV string +stringRefSyntax stringValue1 stringValue2 stripedRightArrow diff --git a/sc/inc/calcconfig.hxx b/sc/inc/calcconfig.hxx index d10154c..18aab21 100644 --- a/sc/inc/calcconfig.hxx +++ b/sc/inc/calcconfig.hxx @@ -43,6 +43,7 @@ struct SC_DLLPUBLIC ScCalcConfig formula::FormulaGrammar::AddressConvention meStringRefAddressSyntax; StringConversion meStringConversion; bool mbEmptyStringAsZero:1; + bool mbHasStringRefSyntax:1; bool mbOpenCLSubsetOnly:1; bool mbOpenCLAutoSelect:1; @@ -59,6 +60,7 @@ struct SC_DLLPUBLIC ScCalcConfig void reset(); void MergeDocumentSpecific( const ScCalcConfig& r ); + void SetStringRefSyntax( formula::FormulaGrammar::AddressConvention eConv ); bool operator== (const ScCalcConfig& r) const; bool operator!= (const ScCalcConfig& r) const; diff --git a/sc/inc/unonames.hxx b/sc/inc/unonames.hxx index d937775..b064995 100644 --- a/sc/inc/unonames.hxx +++ b/sc/inc/unonames.hxx @@ -511,6 +511,7 @@ #define SC_UNO_INTEROPGRABBAG "InteropGrabBag" #define SC_UNO_RECORDCHANGES "RecordChanges" #define SC_UNO_ISRECORDCHANGESPROTECTED "IsRecordChangesProtected" +#define SC_UNO_SYNTAXSTRINGREF "SyntaxStringRef" // document properties from FormModel diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx index 08026cb..5a84e56 100644 --- a/sc/qa/unit/ucalc_formula.cxx +++ b/sc/qa/unit/ucalc_formula.cxx @@ -4232,9 +4232,10 @@ void Test::testFuncINDIRECT() m_pDoc->CalcAll(); { - // Default is to use the current formula syntax, which is Calc A1. + // Default is to use compatibility mode, accept both Calc A1 and + // Excel A1 syntax const OUString* aChecks[] = { - &aTest, &aRefErr, &aRefErr, &aTest + &aTest, &aTest, &aRefErr, &aTest }; for (size_t i = 0; i < SAL_N_ELEMENTS(aChecks); ++i) @@ -4245,7 +4246,7 @@ void Test::testFuncINDIRECT() } ScCalcConfig aConfig; - aConfig.meStringRefAddressSyntax = formula::FormulaGrammar::CONV_OOO; + aConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_OOO ); m_pDoc->SetCalcConfig(aConfig); m_pDoc->CalcAll(); { @@ -4261,7 +4262,7 @@ void Test::testFuncINDIRECT() } } - aConfig.meStringRefAddressSyntax = formula::FormulaGrammar::CONV_XL_A1; + aConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_XL_A1 ); m_pDoc->SetCalcConfig(aConfig); m_pDoc->CalcAll(); { @@ -4277,7 +4278,7 @@ void Test::testFuncINDIRECT() } } - aConfig.meStringRefAddressSyntax = formula::FormulaGrammar::CONV_XL_R1C1; + aConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_XL_R1C1 ); m_pDoc->SetCalcConfig(aConfig); m_pDoc->CalcAll(); { diff --git a/sc/source/core/tool/calcconfig.cxx b/sc/source/core/tool/calcconfig.cxx index 6fd4345..cc52ad7 100644 --- a/sc/source/core/tool/calcconfig.cxx +++ b/sc/source/core/tool/calcconfig.cxx @@ -23,7 +23,8 @@ ScCalcConfig::ScCalcConfig() : meStringRefAddressSyntax(formula::FormulaGrammar::CONV_UNSPECIFIED), meStringConversion(StringConversion::LOCALE), // old LibreOffice behavior - mbEmptyStringAsZero(false) + mbEmptyStringAsZero(false), + mbHasStringRefSyntax(false) { setOpenCLConfigToDefault(); @@ -85,6 +86,13 @@ void ScCalcConfig::MergeDocumentSpecific( const ScCalcConfig& r ) mbEmptyStringAsZero = r.mbEmptyStringAsZero; // INDIRECT ref syntax is per document. meStringRefAddressSyntax = r.meStringRefAddressSyntax; + mbHasStringRefSyntax = r.mbHasStringRefSyntax; +} + +void ScCalcConfig::SetStringRefSyntax( formula::FormulaGrammar::AddressConvention eConv ) +{ + meStringRefAddressSyntax = eConv; + mbHasStringRefSyntax = true; } bool ScCalcConfig::operator== (const ScCalcConfig& r) const @@ -92,6 +100,7 @@ bool ScCalcConfig::operator== (const ScCalcConfig& r) const return meStringRefAddressSyntax == r.meStringRefAddressSyntax && meStringConversion == r.meStringConversion && mbEmptyStringAsZero == r.mbEmptyStringAsZero && + mbHasStringRefSyntax == r.mbHasStringRefSyntax && mbOpenCLSubsetOnly == r.mbOpenCLSubsetOnly && mbOpenCLAutoSelect == r.mbOpenCLAutoSelect && maOpenCLDevice == r.maOpenCLDevice && @@ -127,6 +136,7 @@ std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig& rConfig) "StringRefAddressSyntax=" << rConfig.meStringRefAddressSyntax << "," "StringConversion=" << StringConversionToString(rConfig.meStringConversion) << "," "EmptyStringAsZero=" << (rConfig.mbEmptyStringAsZero?"Y":"N") << "," + "HasStringRefSyntax=" << (rConfig.mbHasStringRefSyntax?"Y":"N") << "," "OpenCLSubsetOnly=" << (rConfig.mbOpenCLSubsetOnly?"Y":"N") << "," "OpenCLAutoSelect=" << (rConfig.mbOpenCLAutoSelect?"Y":"N") << "," "OpenCLDevice='" << rConfig.maOpenCLDevice << "'," diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index 5ef6893..ff8a990 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -7032,17 +7032,27 @@ void ScInterpreter::ScIndirect() // Use the current address syntax if unspecified. eConv = pDok->GetAddressConvention(); + // either CONV_A1_XL_A1 was explicitly configured, or nothing at all + // was configured + bool bTryXlA1 = (eConv == FormulaGrammar::CONV_A1_XL_A1 || + !maCalcConfig.mbHasStringRefSyntax); + if (nParamCount == 2 && 0.0 == ::rtl::math::approxFloor( GetDouble())) { // Overwrite the config and try Excel R1C1. eConv = FormulaGrammar::CONV_XL_R1C1; + bTryXlA1 = false; } - const ScAddress::Details aDetails( eConv, aPos ); + + const ScAddress::Details aDetails( bTryXlA1 ? FormulaGrammar::CONV_OOO : eConv, aPos ); + const ScAddress::Details aDetailsXlA1( FormulaGrammar::CONV_XL_A1, aPos ); SCTAB nTab = aPos.Tab(); OUString sRefStr = GetString().getString(); ScRefAddress aRefAd, aRefAd2; ScAddress::ExternalInfo aExtInfo; - if (ConvertDoubleRef(pDok, sRefStr, nTab, aRefAd, aRefAd2, aDetails, &aExtInfo)) + if ( ConvertDoubleRef(pDok, sRefStr, nTab, aRefAd, aRefAd2, aDetails, &aExtInfo) || + ( bTryXlA1 && ConvertDoubleRef(pDok, sRefStr, nTab, aRefAd, + aRefAd2, aDetailsXlA1, &aExtInfo) ) ) { if (aExtInfo.mbExternal) { @@ -7054,7 +7064,9 @@ void ScInterpreter::ScIndirect() else PushDoubleRef( aRefAd, aRefAd2); } - else if (ConvertSingleRef(pDok, sRefStr, nTab, aRefAd, aDetails, &aExtInfo)) + else if ( ConvertSingleRef(pDok, sRefStr, nTab, aRefAd, aDetails, &aExtInfo) || + ( bTryXlA1 && ConvertSingleRef (pDok, sRefStr, nTab, aRefAd, + aDetailsXlA1, &aExtInfo) ) ) { if (aExtInfo.mbExternal) { diff --git a/sc/source/filter/excel/excdoc.cxx b/sc/source/filter/excel/excdoc.cxx index b9788d7..98fc175 100644 --- a/sc/source/filter/excel/excdoc.cxx +++ b/sc/source/filter/excel/excdoc.cxx @@ -881,6 +881,19 @@ void ExcDocument::WriteXml( XclExpXmlStream& rStrm ) if (rCaches.HasCaches()) rCaches.SaveXml(rStrm); + const ScCalcConfig& rCalcConfig = GetDoc().GetCalcConfig(); + + // write if it has been read|imported or explicitly changed + // or if ref syntax isn't what would be native for our file format + // i.e. ExcelA1 in this case + if ( rCalcConfig.mbHasStringRefSyntax || + (rCalcConfig.meStringRefAddressSyntax != formula::FormulaGrammar::CONV_XL_A1) ) + { + XclExtLstRef xExtLst( new XclExtLst( GetRoot() ) ); + xExtLst->AddRecord( XclExpExtRef( new XclExpExtCalcPr( GetRoot(), rCalcConfig.meStringRefAddressSyntax )) ); + xExtLst->SaveXml(rStrm); + } + rWorkbook->endElement( XML_workbook ); rWorkbook.reset(); } diff --git a/sc/source/filter/excel/xeextlst.cxx b/sc/source/filter/excel/xeextlst.cxx index 2639bec..b6c7818 100644 --- a/sc/source/filter/excel/xeextlst.cxx +++ b/sc/source/filter/excel/xeextlst.cxx @@ -361,6 +361,51 @@ void XclExpExtConditionalFormatting::SaveXml( XclExpXmlStream& rStrm ) rWorksheet->endElementNS( XML_x14, XML_conditionalFormatting ); } +XclExpExtCalcPr::XclExpExtCalcPr( const XclExpRoot& rRoot, formula::FormulaGrammar::AddressConvention eConv ): + XclExpExt( rRoot ), + meConv( eConv ) +{ + maURI = OString("{7626C862-2A13-11E5-B345-FEFF819CDC9F}"); + + switch (meConv) + { + case formula::FormulaGrammar::CONV_OOO: + maSyntax = OString("CalcA1"); + break; + case formula::FormulaGrammar::CONV_XL_A1: + maSyntax = OString("ExcelA1"); + break; + case formula::FormulaGrammar::CONV_XL_R1C1: + maSyntax = OString("ExcelR1C1"); + break; + case formula::FormulaGrammar::CONV_A1_XL_A1: + maSyntax = OString("CalcA1ExcelA1"); + break; + case formula::FormulaGrammar::CONV_UNSPECIFIED: + case formula::FormulaGrammar::CONV_ODF: + case formula::FormulaGrammar::CONV_XL_OOX: + case formula::FormulaGrammar::CONV_LOTUS_A1: + case formula::FormulaGrammar::CONV_LAST: + maSyntax = OString("Unspecified"); + break; + } +} + +void XclExpExtCalcPr::SaveXml( XclExpXmlStream& rStrm ) +{ + sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream(); + rWorksheet->startElement( XML_ext, + FSNS( XML_xmlns, XML_loext ), "http://schemas.libreoffice.org/", + XML_uri, maURI.getStr(), + FSEND ); + + rWorksheet->singleElementNS( XML_loext, XML_extCalcPr, + XML_stringRefSyntax, maSyntax.getStr(), + FSEND ); + + rWorksheet->endElement( XML_ext ); +} + XclExpExtCondFormat::XclExpExtCondFormat( const XclExpRoot& rRoot ): XclExpExt( rRoot ) { diff --git a/sc/source/filter/inc/extlstcontext.hxx b/sc/source/filter/inc/extlstcontext.hxx index 598adbd..d77d51a 100644 --- a/sc/source/filter/inc/extlstcontext.hxx +++ b/sc/source/filter/inc/extlstcontext.hxx @@ -12,6 +12,7 @@ #include "excelhandlers.hxx" #include "worksheetfragment.hxx" +#include "workbookfragment.hxx" #include <boost/ptr_container/ptr_vector.hpp> @@ -103,6 +104,27 @@ protected: virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs ) SAL_OVERRIDE; }; +class ExtGlobalWorkbookContext : public WorkbookContextBase +{ +public: + explicit ExtGlobalWorkbookContext( WorkbookContextBase& rFragment ); + +protected: + virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs ) SAL_OVERRIDE; + virtual void onStartElement( const AttributeList& rAttribs ) SAL_OVERRIDE; + +private: +}; + +class ExtLstGlobalWorkbookContext : public WorkbookContextBase +{ +public: + explicit ExtLstGlobalWorkbookContext( WorkbookFragment& rFragment ); + +protected: + virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs ) SAL_OVERRIDE; +}; + } //namespace xls } //namespace oox diff --git a/sc/source/filter/inc/xeextlst.hxx b/sc/source/filter/inc/xeextlst.hxx index f148f83..fcb9a1d 100644 --- a/sc/source/filter/inc/xeextlst.hxx +++ b/sc/source/filter/inc/xeextlst.hxx @@ -14,12 +14,14 @@ #include "xeroot.hxx" #include "colorscale.hxx" +#include "formulaopt.hxx" #include <memory> enum XclExpExtType { - XclExpExtDataBarType + XclExpExtDataBarType, + XclExpExtDataFooType }; struct XclExpExtCondFormatData @@ -32,8 +34,6 @@ struct XclExpExtCondFormatData /** * Base class for ext entries. Extend this class to provide the needed functionality - * - * Right now the only supported subclass is XclExpExtCondFormat */ class XclExpExt : public XclExpRecordBase, public XclExpRoot { @@ -167,6 +167,19 @@ private: XclExpRecordList< XclExpExtConditionalFormatting > maCF; }; +class XclExpExtCalcPr : public XclExpExt +{ +public: + XclExpExtCalcPr( const XclExpRoot& rRoot, formula::FormulaGrammar::AddressConvention eConv ); + virtual void SaveXml( XclExpXmlStream& rStrm ) SAL_OVERRIDE; + + virtual XclExpExtType GetType() SAL_OVERRIDE { return XclExpExtDataFooType; } + +private: + formula::FormulaGrammar::AddressConvention meConv; + OString maSyntax; +}; + class XclExtLst : public XclExpRecordBase, public XclExpRoot { public: diff --git a/sc/source/filter/oox/extlstcontext.cxx b/sc/source/filter/oox/extlstcontext.cxx index 7371f99..f0980d5 100644 --- a/sc/source/filter/oox/extlstcontext.cxx +++ b/sc/source/filter/oox/extlstcontext.cxx @@ -249,6 +249,60 @@ ContextHandlerRef ExtLstGlobalContext::onCreateContext( sal_Int32 nElement, cons return this; } +ExtGlobalWorkbookContext::ExtGlobalWorkbookContext( WorkbookContextBase& rFragment ): + WorkbookContextBase(rFragment) +{ +} + +ContextHandlerRef ExtGlobalWorkbookContext::onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs ) +{ + if (nElement == LOEXT_TOKEN(extCalcPr)) + { + ScDocument* pDoc = &getScDocument(); + sal_Int32 nToken = rAttribs.getToken( XML_stringRefSyntax, XML_CalcA1 ); + ScCalcConfig aCalcConfig = pDoc->GetCalcConfig(); + + switch( nToken ) + { + case XML_CalcA1: + aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_OOO ); + break; + case XML_ExcelA1: + aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_XL_A1 ); + break; + case XML_ExcelR1C1: + aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_XL_R1C1 ); + break; + case XML_CalcA1ExcelA1: + aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_A1_XL_A1 ); + break; + default: + aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_UNSPECIFIED ); + break; + } + pDoc->SetCalcConfig(aCalcConfig); + } + + return this; +} + +void ExtGlobalWorkbookContext::onStartElement( const AttributeList& /*rAttribs*/ ) +{ +} + +ExtLstGlobalWorkbookContext::ExtLstGlobalWorkbookContext( WorkbookFragment& rFragment ): + WorkbookContextBase(rFragment) +{ +} + +ContextHandlerRef ExtLstGlobalWorkbookContext::onCreateContext( sal_Int32 nElement, const AttributeList& ) +{ + if (nElement == XLS_TOKEN( ext )) + return new ExtGlobalWorkbookContext( *this ); + + return this; +} + } //namespace oox } //namespace xls diff --git a/sc/source/filter/oox/workbookfragment.cxx b/sc/source/filter/oox/workbookfragment.cxx index 4b37d0f..06881c0 100644 --- a/sc/source/filter/oox/workbookfragment.cxx +++ b/sc/source/filter/oox/workbookfragment.cxx @@ -46,6 +46,7 @@ #include "worksheethelper.hxx" #include "worksheetfragment.hxx" #include "sheetdatacontext.hxx" +#include "extlstcontext.hxx" #include "officecfg/Office/Common.hxx" #include "document.hxx" @@ -110,6 +111,8 @@ ContextHandlerRef WorkbookFragment::onCreateContext( sal_Int32 nElement, const A case XLS_TOKEN( workbookPr ): getWorkbookSettings().importWorkbookPr( rAttribs ); break; case XLS_TOKEN( calcPr ): getWorkbookSettings().importCalcPr( rAttribs ); break; case XLS_TOKEN( oleSize ): getViewSettings().importOleSize( rAttribs ); break; + + case XLS_TOKEN( extLst ): return new ExtLstGlobalWorkbookContext( *this ); } break; diff --git a/sc/source/filter/oox/workbookhelper.cxx b/sc/source/filter/oox/workbookhelper.cxx index d264e56..fc080cc 100644 --- a/sc/source/filter/oox/workbookhelper.cxx +++ b/sc/source/filter/oox/workbookhelper.cxx @@ -533,18 +533,6 @@ void WorkbookGlobals::useInternalChartDataTable( bool bInternal ) // private -------------------------------------------------------------------- -namespace { - -formula::FormulaGrammar::AddressConvention getConvention(css::uno::Reference<XDocumentProperties> xDocProps) -{ - if (xDocProps->getGenerator().startsWithIgnoreAsciiCase("Microsoft")) - return formula::FormulaGrammar::CONV_XL_A1; - - return formula::FormulaGrammar::CONV_OOO; -} - -} - void WorkbookGlobals::initialize( bool bWorkbookFile ) { maCellStyles = "CellStyles"; @@ -574,9 +562,13 @@ void WorkbookGlobals::initialize( bool bWorkbookFile ) Reference< XDocumentPropertiesSupplier > xPropSupplier( mxDoc, UNO_QUERY); Reference< XDocumentProperties > xDocProps = xPropSupplier->getDocumentProperties(); - ScCalcConfig aCalcConfig = mpDoc->GetCalcConfig(); - aCalcConfig.meStringRefAddressSyntax = getConvention(xDocProps); - mpDoc->SetCalcConfig(aCalcConfig); + + if (xDocProps->getGenerator().startsWithIgnoreAsciiCase("Microsoft")) + { + ScCalcConfig aCalcConfig = mpDoc->GetCalcConfig(); + aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_XL_A1 ) ; + mpDoc->SetCalcConfig(aCalcConfig); + } mxDocImport.reset(new ScDocumentImport(*mpDoc)); diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx index 2b82a92..13e9487 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.cxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx @@ -46,6 +46,8 @@ formula::FormulaGrammar::AddressConvention toAddressConvention(sal_Int32 nPos) return formula::FormulaGrammar::CONV_XL_A1; case 3: return formula::FormulaGrammar::CONV_XL_R1C1; + case 4: + return formula::FormulaGrammar::CONV_A1_XL_A1; case 0: default: ; @@ -54,6 +56,24 @@ formula::FormulaGrammar::AddressConvention toAddressConvention(sal_Int32 nPos) return formula::FormulaGrammar::CONV_UNSPECIFIED; } +sal_Int32 toSelectedItem( formula::FormulaGrammar::AddressConvention eConv ) +{ + switch (eConv) + { + case formula::FormulaGrammar::CONV_OOO: + return 1; + case formula::FormulaGrammar::CONV_XL_A1: + return 2; + case formula::FormulaGrammar::CONV_XL_R1C1: + return 3; + case formula::FormulaGrammar::CONV_A1_XL_A1: + return 4; + default: + ; + } + return 0; +} + } ScCalcOptionsDialog::ScCalcOptionsDialog(vcl::Window* pParent, const ScCalcConfig& rConfig) @@ -79,7 +99,7 @@ ScCalcOptionsDialog::ScCalcOptionsDialog(vcl::Window* pParent, const ScCalcConfi mpEmptyAsZero->SetClickHdl(LINK(this, ScCalcOptionsDialog, AsZeroModifiedHdl)); get(mpSyntax,"comboSyntaxRef"); - mpSyntax->SelectEntryPos(rConfig.meStringRefAddressSyntax); + mpSyntax->SelectEntryPos( toSelectedItem(rConfig.meStringRefAddressSyntax) ); mpSyntax->SetSelectHdl(LINK(this, ScCalcOptionsDialog, SyntaxModifiedHdl)); get(mpUseOpenCL,"CBUseOpenCL"); @@ -208,7 +228,7 @@ IMPL_LINK(ScCalcOptionsDialog, ConversionModifiedHdl, ListBox*, pConv ) IMPL_LINK(ScCalcOptionsDialog, SyntaxModifiedHdl, ListBox*, pSyntax) { - maConfig.meStringRefAddressSyntax = toAddressConvention(pSyntax->GetSelectEntryPos()); + maConfig.SetStringRefSyntax(toAddressConvention(pSyntax->GetSelectEntryPos())); return 0; } diff --git a/sc/source/ui/unoobj/confuno.cxx b/sc/source/ui/unoobj/confuno.cxx index a56c36f..0ddaaa1 100644 --- a/sc/source/ui/unoobj/confuno.cxx +++ b/sc/source/ui/unoobj/confuno.cxx @@ -31,6 +31,7 @@ #include <com/sun/star/beans/PropertyAttribute.hpp> #include <cppuhelper/supportsservice.hxx> +#include <formula/grammar.hxx> #include <sfx2/printer.hxx> #include <xmloff/xmluconv.hxx> #include <rtl/ustrbuf.hxx> @@ -75,6 +76,7 @@ static const SfxItemPropertyMapEntry* lcl_GetConfigPropertyMap() {OUString(SC_UNO_SHAREDOC), 0, cppu::UnoType<bool>::get(), 0, 0}, {OUString(SC_UNO_MODIFYPASSWORDINFO), 0, cppu::UnoType<uno::Sequence< beans::PropertyValue >>::get(), 0, 0}, {OUString(SC_UNO_EMBED_FONTS), 0, cppu::UnoType<bool>::get(), 0, 0}, + {OUString(SC_UNO_SYNTAXSTRINGREF), 0, cppu::UnoType<sal_Int16>::get(), 0, 0}, { OUString(), 0, css::uno::Type(), 0, 0 } }; return aConfigPropertyMap_Impl; @@ -297,6 +299,29 @@ void SAL_CALL ScDocumentConfiguration::setPropertyValue( rDoc.SetIsUsingEmbededFonts(bVal); } } + else if ( aPropertyName == SC_UNO_SYNTAXSTRINGREF ) + { + ScCalcConfig aCalcConfig = rDoc.GetCalcConfig(); + sal_Int16 nUno = 0; + + if( aValue >>= nUno ) + { + switch (nUno) + { + case 0: // CONV_OOO + case 2: // CONV_XL_A1 + case 3: // CONV_XL_R1C1 + case 7: // CONV_A1_XL_A1 + aCalcConfig.SetStringRefSyntax( static_cast<formula::FormulaGrammar::AddressConvention>( nUno ) ); + break; + default: + aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_UNSPECIFIED ); + break; + + } + rDoc.SetCalcConfig( aCalcConfig ); + } + } else { @@ -433,6 +458,39 @@ uno::Any SAL_CALL ScDocumentConfiguration::getPropertyValue( const OUString& aPr { aRet <<= rDoc.IsUsingEmbededFonts(); } + else if ( aPropertyName == SC_UNO_SYNTAXSTRINGREF ) + { + ScCalcConfig aCalcConfig = rDoc.GetCalcConfig(); + + // write if it has been read|imported or explicitly changed + // or if ref syntax isn't what would be native for our file format + // i.e. CalcA1 in this case + if ( aCalcConfig.mbHasStringRefSyntax || + (aCalcConfig.meStringRefAddressSyntax != formula::FormulaGrammar::CONV_OOO) ) + { + formula::FormulaGrammar::AddressConvention aConv = aCalcConfig.meStringRefAddressSyntax; + + switch (aConv) + { + case formula::FormulaGrammar::CONV_OOO: + case formula::FormulaGrammar::CONV_XL_A1: + case formula::FormulaGrammar::CONV_XL_R1C1: + case formula::FormulaGrammar::CONV_A1_XL_A1: + aRet <<= static_cast<sal_Int16>( aConv ); + break; + + case formula::FormulaGrammar::CONV_UNSPECIFIED: + case formula::FormulaGrammar::CONV_ODF: + case formula::FormulaGrammar::CONV_XL_OOX: + case formula::FormulaGrammar::CONV_LOTUS_A1: + case formula::FormulaGrammar::CONV_LAST: + { + aRet <<= sal_Int16(9999); + break; + } + } + } + } else { diff --git a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui index 20cfab0..59641e6 100644 --- a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui +++ b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui @@ -86,6 +86,7 @@ <item id="1">Calc A1</item> <item id="2">Excel A1</item> <item id="3">Excel R1C1</item> + <item id="4">Calc A1 | Excel A1</item> </items> </object> <packing> commit 188d3e4b576d6c98f84a6c01883620219d8feaa4 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Aug 18 09:59:46 2015 +0200 tdf#93096 sw: fix selection with keyboard outside current view Regression from commit c9175a1bd3249ad573ae6827bf19963a3ebe2fbc (SwViewShell::ImplEndAction: avoid direct PaintDesktop(), 2015-07-03), the problem is that while going via InvalidateWindows() is fine for the double-buffering case, it has side effects when painting directly, so revert back to the old code in that case. Change-Id: Ib1e3b143f5cfe2c6ab8b102a1a2064900282f136 (cherry picked from commit 222f10e773ba51a19880be1b798990260c198147) Reviewed-on: https://gerrit.libreoffice.org/17835 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx index 9cb6941..1b4b80d 100644 --- a/sw/source/core/view/viewsh.cxx +++ b/sw/source/core/view/viewsh.cxx @@ -405,7 +405,25 @@ void SwViewShell::ImplEndAction( const bool bIdleEnd ) } if ( bPaint ) { - InvalidateWindows(aRect.SVRect()); + if (GetWin() && GetWin()->SupportsDoubleBuffering()) + InvalidateWindows(aRect.SVRect()); + else + { + // #i75172# begin DrawingLayer paint + // need to do begin/end DrawingLayer preparation for each single rectangle of the + // repaint region. I already tried to prepare only once for the whole Region. This + // seems to work (and does technically) but fails with transparent objects. Since the + // region given to BeginDarwLayers() defines the clip region for DrawingLayer paint, + // transparent objects in the single rectangles will indeed be painted multiple times. + DLPrePaint2(vcl::Region(aRect.SVRect())); + + if ( bPaintsFromSystem ) + PaintDesktop(*GetOut(), aRect); + pCurrentLayout->GetCurrShell()->InvalidateWindows(aRect.SVRect()); + + // #i75172# end DrawingLayer paint + DLPostPaint2(true); + } } else lcl_PaintTransparentFormControls(*this, aRect); // i#107365 commit eea238e5215fe3dd848e46130f1da42c2c4b87ad Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon Aug 17 12:01:18 2015 +0200 external/apr: Avoid dependency on system uuid lib ...which isn't even needed, as apr only uses APR_HAS_OS_UUID for apr_os_uuid_get (apr_portable.h), which is neither used internally in apr nor by either of the two clients of apr in LO, external/serf and ucb/source/ucp/webdav Change-Id: I2e9d1f2640df0a8125ae2840f54488e77656c3ec (cherry picked from commit aeafca133405e4a5fdbe253f8dcd2019d6b6b2a4) Signed-off-by: Michael Stahl <mst...@redhat.com> diff --git a/external/apr/UnpackedTarball_apr.mk b/external/apr/UnpackedTarball_apr.mk index 5fa9d05..5f82b84 100644 --- a/external/apr/UnpackedTarball_apr.mk +++ b/external/apr/UnpackedTarball_apr.mk @@ -11,4 +11,10 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,apr)) $(eval $(call gb_UnpackedTarball_set_tarball,apr,$(APR_TARBALL))) +$(eval $(call gb_UnpackedTarball_set_patchlevel,apr,0)) + +$(eval $(call gb_UnpackedTarball_add_patches,apr, \ + external/apr/uuid.patch \ +)) + # vim: set noet sw=4 ts=4: diff --git a/external/apr/uuid.patch b/external/apr/uuid.patch new file mode 100644 index 0000000..53c75f1 --- /dev/null +++ b/external/apr/uuid.patch @@ -0,0 +1,241 @@ +--- configure ++++ configure +@@ -26343,235 +26343,9 @@ + + echo "${nl}Checking for OS UUID Support..." + +-for ac_header in uuid.h uuid/uuid.h sys/uuid.h +-do : +- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-_ACEOF +- break +-fi +- +-done +- +- +-apr_revert_save_LIBS=$LIBS +- +-# Prefer the flavor(s) that live in libc; +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing uuid_create" >&5 +-$as_echo_n "checking for library containing uuid_create... " >&6; } +-if ${ac_cv_search_uuid_create+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_func_search_save_LIBS=$LIBS +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char uuid_create (); +-int +-main () +-{ +-return uuid_create (); +- ; +- return 0; +-} +-_ACEOF +-for ac_lib in '' uuid; do +- if test -z "$ac_lib"; then +- ac_res="none required" +- else +- ac_res=-l$ac_lib +- LIBS="-l$ac_lib $ac_func_search_save_LIBS" +- fi +- if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_search_uuid_create=$ac_res +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext +- if ${ac_cv_search_uuid_create+:} false; then : +- break +-fi +-done +-if ${ac_cv_search_uuid_create+:} false; then : +- +-else +- ac_cv_search_uuid_create=no +-fi +-rm conftest.$ac_ext +-LIBS=$ac_func_search_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_uuid_create" >&5 +-$as_echo "$ac_cv_search_uuid_create" >&6; } +-ac_res=$ac_cv_search_uuid_create +-if test "$ac_res" != no; then : +- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +- +-fi +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing uuid_generate" >&5 +-$as_echo_n "checking for library containing uuid_generate... " >&6; } +-if ${ac_cv_search_uuid_generate+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_func_search_save_LIBS=$LIBS +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char uuid_generate (); +-int +-main () +-{ +-return uuid_generate (); +- ; +- return 0; +-} +-_ACEOF +-for ac_lib in '' uuid; do +- if test -z "$ac_lib"; then +- ac_res="none required" +- else +- ac_res=-l$ac_lib +- LIBS="-l$ac_lib $ac_func_search_save_LIBS" +- fi +- if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_search_uuid_generate=$ac_res +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext +- if ${ac_cv_search_uuid_generate+:} false; then : +- break +-fi +-done +-if ${ac_cv_search_uuid_generate+:} false; then : +- +-else +- ac_cv_search_uuid_generate=no +-fi +-rm conftest.$ac_ext +-LIBS=$ac_func_search_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_uuid_generate" >&5 +-$as_echo "$ac_cv_search_uuid_generate" >&6; } +-ac_res=$ac_cv_search_uuid_generate +-if test "$ac_res" != no; then : +- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +- +-fi +- +-if test "$ac_cv_search_uuid_create" = "none required" -o \ +- "$ac_cv_search_uuid_generate" = "none required"; then +- LIBS=$apr_revert_save_LIBS +-fi +- +-for ac_func in uuid_create uuid_generate +-do : +- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +-if eval test \"x\$"$as_ac_var"\" = x"yes"; then : +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-_ACEOF +- +-fi +-done +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for os uuid usability" >&5 +-$as_echo_n "checking for os uuid usability... " >&6; } +-if ${apr_cv_osuuid+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- +-# Ensure this test closely mirrors misc/unix/rand.c! +-uuid_includes=" +-#if defined(HAVE_SYS_TYPES_H) +-#include <sys/types.h> +-#endif +-#if defined(HAVE_UNISTD_H) +-#include <unistd.h> +-#endif +-#if defined(HAVE_UUID_H) +-#include <uuid.h> +-#elif defined(HAVE_UUID_UUID_H) +-#include <uuid/uuid.h> +-#elif defined(HAVE_SYS_UUID_H) +-#include <sys/uuid.h> +-#endif +-" +- apr_cv_osuuid=no +- if test $ac_cv_func_uuid_create = yes; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-$uuid_includes +-int +-main () +-{ +- +- uuid_t g; +- uint32_t s; +- uuid_create(&g, &s); +- if (s == uuid_s_ok) s = 0; +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- apr_cv_osuuid=yes +-else +- apr_cv_func_uuid_create=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +- fi +- if test $ac_cv_func_uuid_generate = yes; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-$uuid_includes +-int +-main () +-{ +- +- uuid_t g; +- uuid_generate(g); +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- apr_cv_osuuid=yes +-else +- apr_cv_func_uuid_generate=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +- fi +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $apr_cv_osuuid" >&5 +-$as_echo "$apr_cv_osuuid" >&6; } +- +-if test $apr_cv_osuuid = yes; then +- osuuid="1" +-else +- osuuid="0" +- LIBS=$apr_revert_save_LIBS +-fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo no >&6; } ++osuuid="0" + + + commit 1da07a285902c0072ac33c371260da757f769fb8 Author: Eike Rathke <er...@redhat.com> Date: Tue Aug 18 11:33:44 2015 +0200 Resolves: tdf#92749 invalidate lookup caches after initial hard recalc ... because the caches are not setup as listeners during when the document's hard recalc state is active. Change-Id: Ie7ec84ee64d046e3e55ce26b92824e94a2f660e9 (cherry picked from commit f7e493229bd949066b4d8984dce7678b8687d1ae) Reviewed-on: https://gerrit.libreoffice.org/17829 Reviewed-by: Norbert Thiebaud <nthieb...@gmail.com> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index e00a5cc..153b77f 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -3780,6 +3780,14 @@ void ScDocument::CalcAll() if (*it) (*it)->CalcAll(); ClearFormulaTree(); + + // In hard recalc state caches were not added as listeners, invalidate them + // so the next non-CalcAll() normal lookup will not be presented with + // outdated data. + /* TODO: come up with more detailed hard recalc states so we can + * differentiate between hard recalc after load and others. */ + if (GetHardRecalcState()) + ClearLookupCaches(); } void ScDocument::CompileAll() commit 7744d182656f999d65574b40197a12680cc3c3a0 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Mon Aug 17 09:13:12 2015 +0200 tdf#93284 vcl: fix VirtualDevice leaks in the WMF filter We attempted to have 8884 VirtualDevices in parallel. This number is now 12 after fixing the leaks. The original bugdoc has 135 images, 76 is enough to make Writer on Windows crash. The minimized document has the same WMF data for all the images, but still duplicated inside the ZIP container, so we trigger the resource limit, but the document is still just 99K. Change-Id: I4c6b3853eaf688302323daf67ff7b62dd64fc412 (cherry picked from commit 047ebb1dadcc0219a268455f74fc03a23aa3d86d) Reviewed-on: https://gerrit.libreoffice.org/17825 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/qa/core/data/ooxml/pass/tdf93284.docx b/sw/qa/core/data/ooxml/pass/tdf93284.docx new file mode 100755 index 0000000..aedc026 Binary files /dev/null and b/sw/qa/core/data/ooxml/pass/tdf93284.docx differ diff --git a/vcl/source/filter/wmf/winmtf.cxx b/vcl/source/filter/wmf/winmtf.cxx index 20e2b5c..c5d1cf9 100644 --- a/vcl/source/filter/wmf/winmtf.cxx +++ b/vcl/source/filter/wmf/winmtf.cxx @@ -236,7 +236,7 @@ WinMtfFontStyle::WinMtfFontStyle( LOGFONTW& rFont ) { // #i117968# VirtualDevice is not thread safe, but filter is used in multithreading SolarMutexGuard aGuard; - VclPtrInstance< VirtualDevice > pVDev; + ScopedVclPtrInstance< VirtualDevice > pVDev; // converting the cell height into a font height aFont.SetSize( aFontSize ); pVDev->SetFont( aFont ); @@ -1451,7 +1451,7 @@ void WinMtfOutput::DrawText( Point& rPosition, OUString& rText, long* pDXArry, b { // #i117968# VirtualDevice is not thread safe, but filter is used in multithreading SolarMutexGuard aGuard; - VclPtrInstance< VirtualDevice > pVDev; + ScopedVclPtrInstance< VirtualDevice > pVDev; sal_Int32 nTextWidth; pVDev->SetMapMode( MapMode( MAP_100TH_MM ) ); pVDev->SetFont( maFont ); @@ -1499,7 +1499,7 @@ void WinMtfOutput::DrawText( Point& rPosition, OUString& rText, long* pDXArry, b { // #i117968# VirtualDevice is not thread safe, but filter is used in multithreading SolarMutexGuard aGuard; - VclPtrInstance< VirtualDevice > pVDev; + ScopedVclPtrInstance< VirtualDevice > pVDev; pDX = new long[ rText.getLength() ]; pVDev->SetMapMode( MAP_100TH_MM ); pVDev->SetFont( maLatestFont ); commit 8cfaf6ecefa05b086a016f72b29b0d03c4333696 Author: Szymon KÅos <eszka...@gmail.com> Date: Fri Aug 14 12:42:58 2015 +0200 tdf#93102 : resolved crash on enabling image contour Change-Id: I59a07a62573b8d472d15f8594473e8e8d1077589 Reviewed-on: https://gerrit.libreoffice.org/17758 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> Signed-off-by: Michael Meeks <michael.me...@collabora.com> diff --git a/svx/source/dialog/_contdlg.cxx b/svx/source/dialog/_contdlg.cxx index 3426ea3..47e783a 100644 --- a/svx/source/dialog/_contdlg.cxx +++ b/svx/source/dialog/_contdlg.cxx @@ -299,6 +299,8 @@ SvxSuperContourDlg::~SvxSuperContourDlg() void SvxSuperContourDlg::dispose() { + m_pContourWnd->SetUpdateLink( Link<>() ); + SvtMiscOptions aMiscOptions; aMiscOptions.RemoveListenerLink( LINK(this, SvxSuperContourDlg, MiscHdl) ); m_pContourWnd.disposeAndClear(); commit 27cd7d52d3ab4446015738450c9a8a723475d03d Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Mon Aug 10 09:14:27 2015 +0200 tdf#87922 SwDrawTextInfo::ApplyAutoColor: handle fill attributes With this, if page background is set to e.g. black, then automatic color of text is again white, not black. Change-Id: I8246fa4b7834f60872b0737f03906ccc86948cc1 (cherry picked from commit d48d0e81971266ff4625721b0f069a62ec7014e2) Reviewed-on: https://gerrit.libreoffice.org/17814 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx index 2aa8202..3d6b35bc 100644 --- a/sw/source/core/txtnode/fntcache.cxx +++ b/sw/source/core/txtnode/fntcache.cxx @@ -47,6 +47,7 @@ #include <swmodule.hxx> #include <accessibilityoptions.hxx> #include <svtools/accessibilityoptions.hxx> +#include <svx/sdr/attribute/sdrallfillattributeshelper.hxx> #include <doc.hxx> #include <editeng/fhgtitem.hxx> #include <docsh.hxx> @@ -2521,6 +2522,7 @@ bool SwDrawTextInfo::ApplyAutoColor( vcl::Font* pFont ) { // check if current background has a user defined setting const Color* pCol = GetFont() ? GetFont()->GetBackColor() : NULL; + Color aColor; if( ! pCol || COL_TRANSPARENT == pCol->GetColor() ) { const SvxBrushItem* pItem; @@ -2537,6 +2539,14 @@ bool SwDrawTextInfo::ApplyAutoColor( vcl::Font* pFont ) /// is a background brush and its color is *not* "no fill"/"auto fill". if( GetFrm()->GetBackgroundBrush( aFillAttributes, pItem, pCol, aOrigBackRect, false ) ) { + if (aFillAttributes.get() && aFillAttributes->isUsed()) + { + // First see if fill atttributes provide a color. + aColor = Color(aFillAttributes->getAverageColor(aGlobalRetoucheColor.getBColor())); + pCol = &aColor; + } + + // If not, then fall back to the old brush item. if ( !pCol ) { pCol = &pItem->GetColor(); commit abe92ba5388bab46ac1c27d58e4c89806f5320be Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Mon Aug 3 09:19:17 2015 +0200 tdf#87924 DOCX import: rot=90 and vert=vert270 means no text rotation If the shape is rotated 90 degrees clockwise and the text is further rotated 270 degrees clockwise that means we shouldn't do anything with the text and the result will be correct. Also: cid#1315264 incorrect expression (cherry picked from commit dbfed66eebde65f5844a0f1a2cfe548ad4eda962 and 1c09657c5c25cf941588610eeab653217399f9b5) Change-Id: I7c65319258136288520bd24fa2bf8e3c598b0878 Reviewed-on: https://gerrit.libreoffice.org/17807 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/oox/source/shape/WpsContext.cxx b/oox/source/shape/WpsContext.cxx index a22d6b8..657071b 100644 --- a/oox/source/shape/WpsContext.cxx +++ b/oox/source/shape/WpsContext.cxx @@ -13,6 +13,9 @@ #include <drawingml/shapestylecontext.hxx> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/beans/XPropertyState.hpp> +#include <com/sun/star/drawing/HomogenMatrix3.hpp> +#include <basegfx/tuple/b2dtuple.hxx> +#include <svx/svdtrans.hxx> #include <boost/optional.hpp> @@ -76,9 +79,33 @@ oox::core::ContextHandlerRef WpsContext::onCreateContext(sal_Int32 nElementToken } else { - comphelper::SequenceAsHashMap aCustomShapeGeometry(xPropertySet->getPropertyValue("CustomShapeGeometry")); - aCustomShapeGeometry["TextPreRotateAngle"] = uno::makeAny(sal_Int32(-270)); - xPropertySet->setPropertyValue("CustomShapeGeometry", uno::makeAny(aCustomShapeGeometry.getAsConstPropertyValueList())); + // Get the existing rotation of the shape. + drawing::HomogenMatrix3 aMatrix; + xPropertySet->getPropertyValue("Transformation") >>= aMatrix; + basegfx::B2DHomMatrix aTransformation; + aTransformation.set(0, 0, aMatrix.Line1.Column1); + aTransformation.set(0, 1, aMatrix.Line1.Column2); + aTransformation.set(0, 2, aMatrix.Line1.Column3); + aTransformation.set(1, 0, aMatrix.Line1.Column1); + aTransformation.set(1, 1, aMatrix.Line2.Column2); + aTransformation.set(1, 2, aMatrix.Line3.Column3); + aTransformation.set(2, 0, aMatrix.Line1.Column1); + aTransformation.set(2, 1, aMatrix.Line2.Column2); + aTransformation.set(2, 2, aMatrix.Line3.Column3); + basegfx::B2DTuple aScale; + basegfx::B2DTuple aTranslate; + double fRotate = 0; + double fShearX = 0; + aTransformation.decompose(aScale, aTranslate, fRotate, fShearX); + + // If the text is not rotated the way the shape wants it already, set the angle. + const sal_Int32 nRotation = -270; + if (basegfx::rad2deg(fRotate) != static_cast<double>(NormAngle360(nRotation * 100)) / 100) + { + comphelper::SequenceAsHashMap aCustomShapeGeometry(xPropertySet->getPropertyValue("CustomShapeGeometry")); + aCustomShapeGeometry["TextPreRotateAngle"] = uno::makeAny(nRotation); + xPropertySet->setPropertyValue("CustomShapeGeometry", uno::makeAny(aCustomShapeGeometry.getAsConstPropertyValueList())); + } } } diff --git a/sw/qa/extras/ooxmlimport/data/tdf87924.docx b/sw/qa/extras/ooxmlimport/data/tdf87924.docx new file mode 100644 index 0000000..5265d66 Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/tdf87924.docx differ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index 8830582..291d982 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -2759,6 +2759,14 @@ DECLARE_OOXMLIMPORT_TEST(testTdf86374, "tdf86374.docx") CPPUNIT_ASSERT_EQUAL(text::SizeType::MIN, getProperty<sal_Int16>(xTableRows->getByIndex(0), "SizeType")); } +DECLARE_OOXMLIMPORT_TEST(testTdf87924, "tdf87924.docx") +{ + uno::Reference<beans::XPropertySet> xPropertySet(getShape(1), uno::UNO_QUERY); + comphelper::SequenceAsHashMap aGeometry(xPropertySet->getPropertyValue("CustomShapeGeometry")); + // This was -270, the text rotation angle was set when it should not be rotated. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), aGeometry["TextPreRotateAngle"].get<sal_Int32>()); +} + #endif CPPUNIT_PLUGIN_IMPLEMENT(); commit 0dc3c0c3999685d1780ee28832b40346be757308 Author: Andras Timar <andras.ti...@collabora.com> Date: Fri Aug 7 11:33:13 2015 +0200 libodfgen bundled soname patch Reviewed-on: https://gerrit.libreoffice.org/17569 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Andras Timar <andras.ti...@collabora.com> (cherry picked from commit cc22b245bee8b6d243c22f73b8715f12ebd03f88) Conflicts: external/libodfgen/ExternalPackage_libodfgen.mk Change-Id: I09f0528420577e4b417ee4e39a52150777910d13 Reviewed-on: https://gerrit.libreoffice.org/17797 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/external/libodfgen/ExternalPackage_libodfgen.mk b/external/libodfgen/ExternalPackage_libodfgen.mk index 1708430..bd46be5 100644 --- a/external/libodfgen/ExternalPackage_libodfgen.mk +++ b/external/libodfgen/ExternalPackage_libodfgen.mk @@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen else ifeq ($(OS),WNT) $(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen-0.1.dll,src/.libs/libodfgen-0.1.dll)) else ifeq ($(filter IOS ANDROID,$(OS)),) -$(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen-0.1.so.1,src/.libs/libodfgen-0.1.so.1.0.$(ODFGEN_VERSION_MICRO))) +$(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen-0.1-lo.so.1,src/.libs/libodfgen-0.1-lo.so.1.0.$(ODFGEN_VERSION_MICRO))) endif # vim: set noet sw=4 ts=4: diff --git a/external/libodfgen/UnpackedTarball_libodfgen.mk b/external/libodfgen/UnpackedTarball_libodfgen.mk index 32c8b36..1c002c8 100644 --- a/external/libodfgen/UnpackedTarball_libodfgen.mk +++ b/external/libodfgen/UnpackedTarball_libodfgen.mk @@ -27,4 +27,13 @@ $(eval $(call gb_UnpackedTarball_add_patches,libodfgen, \ )) endif +ifneq ($(OS),MACOSX) +ifneq ($(OS),WNT) +$(eval $(call gb_UnpackedTarball_add_patches,libodfgen, \ + external/libodfgen/libodfgen-bundled-soname.patch.0 \ +)) +endif +endif + + # vim: set noet sw=4 ts=4: diff --git a/external/libodfgen/libodfgen-bundled-soname.patch.0 b/external/libodfgen/libodfgen-bundled-soname.patch.0 new file mode 100644 index 0000000..297cd303 --- /dev/null +++ b/external/libodfgen/libodfgen-bundled-soname.patch.0 @@ -0,0 +1,11 @@ +--- src/Makefile.in.orig 2015-08-07 11:26:16.388774624 +0200 ++++ src/Makefile.in 2015-08-07 11:27:01.428773852 +0200 +@@ -372,7 +372,7 @@ + AM_CXXFLAGS = -I$(top_srcdir)/inc/ $(REVENGE_CFLAGS) $(DEBUG_CXXFLAGS) -DLIBODFGEN_BUILD + libodfgen_@LIBODFGEN_MAJOR_VERSION@_@LIBODFGEN_MINOR_VERSION@_la_LIBADD = @LIBODFGEN_WIN32_RESOURCE@ $(REVENGE_LIBS) + libodfgen_@LIBODFGEN_MAJOR_VERSION@_@LIBODFGEN_MINOR_VERSION@_la_DEPENDENCIES = @LIBODFGEN_WIN32_RESOURCE@ +-libodfgen_@LIBODFGEN_MAJOR_VERSION@_@LIBODFGEN_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined ++libodfgen_@LIBODFGEN_MAJOR_VERSION@_@LIBODFGEN_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined -release lo + libodfgen_@LIBODFGEN_MAJOR_VERSION@_@LIBODFGEN_MINOR_VERSION@_la_SOURCES = \ + DocumentElement.cxx \ + DocumentElement.hxx \ commit fbcd1f1af743d8bd2c0caf1297c9d69bf5fea066 Author: Andras Timar <andras.ti...@collabora.com> Date: Fri Aug 7 12:02:04 2015 +0200 librevenge bundled soname patch Reviewed-on: https://gerrit.libreoffice.org/17572 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Andras Timar <andras.ti...@collabora.com> (cherry picked from commit 27ba1e316833671b1067fe8e6745530fa91c173d) Conflicts: external/librevenge/ExternalPackage_librevenge.mk Change-Id: I8c55eb6eeca40faf8201af037f31a57ce9b64ac0 Reviewed-on: https://gerrit.libreoffice.org/17798 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/external/librevenge/ExternalPackage_librevenge.mk b/external/librevenge/ExternalPackage_librevenge.mk index 9766bfb..56a4df2 100644 --- a/external/librevenge/ExternalPackage_librevenge.mk +++ b/external/librevenge/ExternalPackage_librevenge.mk @@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,librevenge,$(LIBO_LIB_FOLDER)/libreven else ifeq ($(OS),WNT) $(eval $(call gb_ExternalPackage_add_file,librevenge,$(LIBO_LIB_FOLDER)/librevenge-0.0.dll,src/lib/.libs/librevenge-0.0.dll)) else ifeq ($(filter IOS ANDROID,$(OS)),) -$(eval $(call gb_ExternalPackage_add_file,librevenge,$(LIBO_LIB_FOLDER)/librevenge-0.0.so.0,src/lib/.libs/librevenge-0.0.so.0.0.2)) +$(eval $(call gb_ExternalPackage_add_file,librevenge,$(LIBO_LIB_FOLDER)/librevenge-0.0-lo.so.0,src/lib/.libs/librevenge-0.0-lo.so.0.0.2)) endif # vim: set noet sw=4 ts=4: diff --git a/external/librevenge/UnpackedTarball_librevenge.mk b/external/librevenge/UnpackedTarball_librevenge.mk index dabad6a..192faf4 100644 --- a/external/librevenge/UnpackedTarball_librevenge.mk +++ b/external/librevenge/UnpackedTarball_librevenge.mk @@ -21,4 +21,12 @@ $(eval $(call gb_UnpackedTarball_add_patches,librevenge, \ endif endif +ifneq ($(OS),MACOSX) +ifneq ($(OS),WNT) +$(eval $(call gb_UnpackedTarball_add_patches,librevenge, \ + external/librevenge/librevenge-bundled-soname.patch.0 \ +)) +endif +endif + # vim: set noet sw=4 ts=4: diff --git a/external/librevenge/librevenge-bundled-soname.patch.0 b/external/librevenge/librevenge-bundled-soname.patch.0 new file mode 100644 index 0000000..f959def --- /dev/null +++ b/external/librevenge/librevenge-bundled-soname.patch.0 @@ -0,0 +1,11 @@ +--- src/lib/Makefile.in.orig 2015-08-07 11:57:42.256742305 +0200 ++++ src/lib/Makefile.in 2015-08-07 11:58:11.818741799 +0200 +@@ -470,7 +470,7 @@ + -DLIBREVENGE_BUILD $(am__append_2) + librevenge_@RVNG_MAJOR_VERSION@_@RVNG_MINOR_VERSION@_la_LIBADD = @LIBREVENGE_WIN32_RESOURCE@ + librevenge_@RVNG_MAJOR_VERSION@_@RVNG_MINOR_VERSION@_la_DEPENDENCIES = @LIBREVENGE_WIN32_RESOURCE@ +-librevenge_@RVNG_MAJOR_VERSION@_@RVNG_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic $(no_undefined) ++librevenge_@RVNG_MAJOR_VERSION@_@RVNG_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic $(no_undefined) -release lo + librevenge_@RVNG_MAJOR_VERSION@_@RVNG_MINOR_VERSION@_la_SOURCES = \ + RVNGBinaryData.cpp \ + RVNGMemoryStream.cpp \ commit fe3822025ea1df0f34454146578cee795216f2f0 Author: Andras Timar <andras.ti...@collabora.com> Date: Fri Aug 7 11:09:01 2015 +0200 libmwaw bundled soname patch Reviewed-on: https://gerrit.libreoffice.org/17568 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Andras Timar <andras.ti...@collabora.com> (cherry picked from commit 0dc79f35aa3a373414c17f596ca4491a69083864) Conflicts: external/libmwaw/ExternalPackage_libmwaw.mk Change-Id: Ibaba47be8aeefca7719d1ff335f551777130c6cd Reviewed-on: https://gerrit.libreoffice.org/17800 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/external/libmwaw/ExternalPackage_libmwaw.mk b/external/libmwaw/ExternalPackage_libmwaw.mk index 97a6e6d..06342c2 100644 --- a/external/libmwaw/ExternalPackage_libmwaw.mk +++ b/external/libmwaw/ExternalPackage_libmwaw.mk @@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,libmwaw,$(LIBO_LIB_FOLDER)/libmwaw-0.3 else ifeq ($(OS),WNT) $(eval $(call gb_ExternalPackage_add_file,libmwaw,$(LIBO_LIB_FOLDER)/libmwaw-0.3.dll,src/lib/.libs/libmwaw-0.3.dll)) else ifeq ($(filter IOS ANDROID,$(OS)),) -$(eval $(call gb_ExternalPackage_add_file,libmwaw,$(LIBO_LIB_FOLDER)/libmwaw-0.3.so.3,src/lib/.libs/libmwaw-0.3.so.3.0.$(MWAW_VERSION_MICRO))) +$(eval $(call gb_ExternalPackage_add_file,libmwaw,$(LIBO_LIB_FOLDER)/libmwaw-0.3-lo.so.3,src/lib/.libs/libmwaw-0.3-lo.so.3.0.$(MWAW_VERSION_MICRO))) endif # vim: set noet sw=4 ts=4: diff --git a/external/libmwaw/UnpackedTarball_libmwaw.mk b/external/libmwaw/UnpackedTarball_libmwaw.mk index 7aeb99c..7751b38 100644 --- a/external/libmwaw/UnpackedTarball_libmwaw.mk +++ b/external/libmwaw/UnpackedTarball_libmwaw.mk @@ -21,6 +21,14 @@ $(eval $(call gb_UnpackedTarball_add_patches,libmwaw, \ endif endif +ifneq ($(OS),MACOSX) +ifneq ($(OS),WNT) +$(eval $(call gb_UnpackedTarball_add_patches,libmwaw, \ + external/libmwaw/libmwaw-bundled-soname.patch.0 \ +)) +endif +endif + ifeq ($(SYSTEM_REVENGE),) $(eval $(call gb_UnpackedTarball_add_patches,libmwaw, \ external/libmwaw/rpath.patch \ diff --git a/external/libmwaw/libmwaw-bundled-soname.patch.0 b/external/libmwaw/libmwaw-bundled-soname.patch.0 new file mode 100644 index 0000000..2abf77c --- /dev/null +++ b/external/libmwaw/libmwaw-bundled-soname.patch.0 @@ -0,0 +1,14 @@ +--- src/lib/Makefile.in.orig 2015-08-07 14:04:47.646611627 +0200 ++++ src/lib/Makefile.in 2015-08-07 14:25:49.888589996 +0200 +@@ -418,8 +418,8 @@ + + AM_CXXFLAGS = -I$(top_srcdir)/inc $(REVENGE_CFLAGS) $(DEBUG_CXXFLAGS) + libmwaw_@MWAW_MAJOR_VERSION@_@MWAW_MINOR_VERSION@_la_LIBADD = $(REVENGE_LIBS) @LIBMWAW_WIN32_RESOURCE@ +-libmwaw_@MWAW_MAJOR_VERSION@_@MWAW_MINOR_VERSION@_la_DEPENDENCIES = @LIBMWAW_WIN32_RESOURCE@ +-libmwaw_@MWAW_MAJOR_VERSION@_@MWAW_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined ++libmwaw_@MWAW_MAJOR_VERSION@_@MWAW_MINOR_VERSION@_la_DEPENDENCIES = @LIBMWAW_WIN32_RESOURCE@ ++libmwaw_@MWAW_MAJOR_VERSION@_@MWAW_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined -release lo + libmwaw_@MWAW_MAJOR_VERSION@_@MWAW_MINOR_VERSION@_la_SOURCES = \ + libmwaw_internal.cxx \ + libmwaw_internal.hxx \ + commit 3e1fda760c366cdd5bf1f066bac797de76eabf7f Author: Andras Timar <andras.ti...@collabora.com> Date: Fri Aug 7 10:57:36 2015 +0200 libetonyek bundled soname patch Reviewed-on: https://gerrit.libreoffice.org/17567 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Andras Timar <andras.ti...@collabora.com> (cherry picked from commit 824e663cfbba436db32e4f2a20e3acbe275252e7) Conflicts: external/libetonyek/ExternalPackage_libetonyek.mk Change-Id: Ib9ca5d65a493db7daa094b0dea3613637c4c184b Reviewed-on: https://gerrit.libreoffice.org/17799 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/external/libetonyek/ExternalPackage_libetonyek.mk b/external/libetonyek/ExternalPackage_libetonyek.mk index 08f0a63b..9fbfff4 100644 --- a/external/libetonyek/ExternalPackage_libetonyek.mk +++ b/external/libetonyek/ExternalPackage_libetonyek.mk @@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,libetonyek,$(LIBO_LIB_FOLDER)/libetony else ifeq ($(OS),WNT) $(eval $(call gb_ExternalPackage_add_file,libetonyek,$(LIBO_LIB_FOLDER)/libetonyek-0.1.dll,src/lib/.libs/libetonyek-0.1.dll)) else ifeq ($(filter IOS ANDROID,$(OS)),) -$(eval $(call gb_ExternalPackage_add_file,libetonyek,$(LIBO_LIB_FOLDER)/libetonyek-0.1.so.1,src/lib/.libs/libetonyek-0.1.so.1.0.$(ETONYEK_VERSION_MICRO))) +$(eval $(call gb_ExternalPackage_add_file,libetonyek,$(LIBO_LIB_FOLDER)/libetonyek-0.1-lo.so.1,src/lib/.libs/libetonyek-0.1-lo.so.1.0.$(ETONYEK_VERSION_MICRO))) endif # vim: set noet sw=4 ts=4: diff --git a/external/libetonyek/UnpackedTarball_libetonyek.mk b/external/libetonyek/UnpackedTarball_libetonyek.mk index dd536f8..7f0d653 100644 --- a/external/libetonyek/UnpackedTarball_libetonyek.mk +++ b/external/libetonyek/UnpackedTarball_libetonyek.mk @@ -22,6 +22,14 @@ $(eval $(call gb_UnpackedTarball_add_patches,libetonyek,\ external/libetonyek/0001-try-to-fix-build-on-Windows.patch.1 \ )) +ifneq ($(OS),MACOSX) +ifneq ($(OS),WNT) +$(eval $(call gb_UnpackedTarball_add_patches,libetonyek,\ + external/libetonyek/libetonyek-bundled-soname.patch.0 \ +)) +endif +endif + ifeq ($(COM_GCC_IS_CLANG),TRUE) ifneq ($(filter -fsanitize=%,$(CC)),) $(eval $(call gb_UnpackedTarball_add_patches,libetonyek, \ diff --git a/external/libetonyek/libetonyek-bundled-soname.patch.0 b/external/libetonyek/libetonyek-bundled-soname.patch.0 new file mode 100644 index 0000000..301aa38 --- /dev/null +++ b/external/libetonyek/libetonyek-bundled-soname.patch.0 @@ -0,0 +1,11 @@ +--- src/lib/Makefile.in.orig 2015-08-07 10:51:32.494810336 +0200 ++++ src/lib/Makefile.in 2015-08-07 10:51:55.493809942 +0200 +@@ -463,7 +463,7 @@ + + libetonyek_@ETONYEK_MAJOR_VERSION@_@ETONYEK_MINOR_VERSION@_la_LIBADD = libetonyek_internal.la $(REVENGE_LIBS) $(XML_LIBS) $(ZLIB_LIBS) @LIBETONYEK_WIN32_RESOURCE@ + libetonyek_@ETONYEK_MAJOR_VERSION@_@ETONYEK_MINOR_VERSION@_la_DEPENDENCIES = libetonyek_internal.la @LIBETONYEK_WIN32_RESOURCE@ +-libetonyek_@ETONYEK_MAJOR_VERSION@_@ETONYEK_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined ++libetonyek_@ETONYEK_MAJOR_VERSION@_@ETONYEK_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined -release lo + libetonyek_@ETONYEK_MAJOR_VERSION@_@ETONYEK_MINOR_VERSION@_la_SOURCES = \ + EtonyekDocument.cpp + commit ce6f74dabb01c3ec7c1ac890b8ce0a117f34daa0 Author: László Németh <laszlo.nem...@collabora.com> Date: Mon Aug 17 09:51:38 2015 +0200 tdf#93114 insert character: add missing recalculate for font selection Fixing missing characters (only characters of the basic Control font showed by Insert special character dialog) and freezing (when LibreOffice tried to replace hundred of characters [missing from the chosen font] during scrolling in the insert special character dialog). Change-Id: I8fd5bd233f16572eb2b740a8f8e7e8608c19d06f Reviewed-on: https://gerrit.libreoffice.org/17792 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx index 6a52644..3d616e9 100644 --- a/svx/source/dialog/charmap.cxx +++ b/svx/source/dialog/charmap.cxx @@ -340,6 +340,7 @@ void SvxShowCharSet::Paint( vcl::RenderContext& rRenderContext, const Rectangle& void SvxShowCharSet::SetFont( const vcl::Font& rFont ) { Control::SetFont(rFont); + mbRecalculateFont = true; Invalidate(); } commit 36129595a3be269ea3619991c9ceac2ec6f0321a Author: Andras Timar <andras.ti...@collabora.com> Date: Thu Aug 6 21:37:36 2015 +0200 libwpg bundled soname patch Reviewed-on: https://gerrit.libreoffice.org/17547 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Andras Timar <andras.ti...@collabora.com> (cherry picked from commit 68279e04de33201b8f75b55ad8cac9deef3d044d) Conflicts: external/libwpg/ExternalPackage_libwpg.mk Change-Id: Ied2f331000c83d696fb5dd662860c3b51b95c616 Reviewed-on: https://gerrit.libreoffice.org/17796 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/external/libwpg/ExternalPackage_libwpg.mk b/external/libwpg/ExternalPackage_libwpg.mk index c03a5cf..5c32687 100644 --- a/external/libwpg/ExternalPackage_libwpg.mk +++ b/external/libwpg/ExternalPackage_libwpg.mk @@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,libwpg,$(LIBO_LIB_FOLDER)/libwpg-0.3.3 else ifeq ($(OS),WNT) $(eval $(call gb_ExternalPackage_add_file,libwpg,$(LIBO_LIB_FOLDER)/libwpg-0.3.dll,src/lib/.libs/libwpg-0.3.dll)) else ifeq ($(filter IOS ANDROID,$(OS)),) -$(eval $(call gb_ExternalPackage_add_file,libwpg,$(LIBO_LIB_FOLDER)/libwpg-0.3.so.3,src/lib/.libs/libwpg-0.3.so.3.0.0)) +$(eval $(call gb_ExternalPackage_add_file,libwpg,$(LIBO_LIB_FOLDER)/libwpg-0.3-lo.so.3,src/lib/.libs/libwpg-0.3-lo.so.3.0.0)) endif # vim: set noet sw=4 ts=4: diff --git a/external/libwpg/UnpackedTarball_libwpg.mk b/external/libwpg/UnpackedTarball_libwpg.mk index d0b1e99..f470bdf 100644 --- a/external/libwpg/UnpackedTarball_libwpg.mk +++ b/external/libwpg/UnpackedTarball_libwpg.mk @@ -17,4 +17,12 @@ $(eval $(call gb_UnpackedTarball_add_patches,libwpg, \ external/libwpg/rpath.patch \ )) +ifneq ($(OS),MACOSX) +ifneq ($(OS),WNT) +$(eval $(call gb_UnpackedTarball_add_patches,libwpg, \ + external/libwpg/libwpg-bundled-soname.patch.0 \ +)) +endif +endif + # vim: set noet sw=4 ts=4: diff --git a/external/libwpg/libwpg-bundled-soname.patch.0 b/external/libwpg/libwpg-bundled-soname.patch.0 new file mode 100644 index 0000000..4fef3c2 --- /dev/null +++ b/external/libwpg/libwpg-bundled-soname.patch.0 @@ -0,0 +1,11 @@ +--- src/lib/Makefile.in.orig 2015-08-06 21:30:41.615633795 +0200 ++++ src/lib/Makefile.in 2015-08-06 21:31:03.764633415 +0200 +@@ -357,7 +357,7 @@ + AM_CXXFLAGS = -I$(top_srcdir)/inc $(REVENGE_CFLAGS) $(WPD_CFLAGS) $(DEBUG_CXXFLAGS) -DLIBWPG_BUILD=1 + libwpg_@WPG_MAJOR_VERSION@_@WPG_MINOR_VERSION@_la_LIBADD = $(WPD_LIBS) $(REVENGE_LIBS) @LIBWPG_WIN32_RESOURCE@ + libwpg_@WPG_MAJOR_VERSION@_@WPG_MINOR_VERSION@_la_DEPENDENCIES = @LIBWPG_WIN32_RESOURCE@ +-libwpg_@WPG_MAJOR_VERSION@_@WPG_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined ++libwpg_@WPG_MAJOR_VERSION@_@WPG_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined -release lo + libwpg_@WPG_MAJOR_VERSION@_@WPG_MINOR_VERSION@_la_SOURCES = \ + WPGraphics.cpp \ + WPGDashArray.cpp \ commit 153b3e7e3df8602dc1dd8da00e1f7bd03389c161 Author: Andras Timar <andras.ti...@collabora.com> Date: Thu Aug 6 12:07:40 2015 +0200 libwps bundled soname patch Reviewed-on: https://gerrit.libreoffice.org/17533 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Andras Timar <andras.ti...@collabora.com> (cherry picked from commit fff1d5bdd087f72178321f47b649323013d933cf) Conflicts: external/libwps/ExternalPackage_libwps.mk external/libwps/UnpackedTarball_libwps.mk Change-Id: I6661ff49e25921ce11dc04fffab84cf5db3c95fe Reviewed-on: https://gerrit.libreoffice.org/17794 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/external/libwps/ExternalPackage_libwps.mk b/external/libwps/ExternalPackage_libwps.mk index 034900c..24b00c6 100644 --- a/external/libwps/ExternalPackage_libwps.mk +++ b/external/libwps/ExternalPackage_libwps.mk @@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,libwps,$(LIBO_LIB_FOLDER)/libwps-0.4.4 else ifeq ($(OS),WNT) $(eval $(call gb_ExternalPackage_add_file,libwps,$(LIBO_LIB_FOLDER)/libwps-0.4.dll,src/lib/.libs/libwps-0.4.dll)) else ifeq ($(filter IOS ANDROID,$(OS)),) -$(eval $(call gb_ExternalPackage_add_file,libwps,$(LIBO_LIB_FOLDER)/libwps-0.4.so.4,src/lib/.libs/libwps-0.4.so.4.0.$(WPS_VERSION_MICRO))) +$(eval $(call gb_ExternalPackage_add_file,libwps,$(LIBO_LIB_FOLDER)/libwps-0.4-lo.so.4,src/lib/.libs/libwps-0.4-lo.so.4.0.$(WPS_VERSION_MICRO))) endif # vim: set noet sw=4 ts=4: diff --git a/external/libwps/UnpackedTarball_libwps.mk b/external/libwps/UnpackedTarball_libwps.mk index 77f1265..52d9ab3 100644 --- a/external/libwps/UnpackedTarball_libwps.mk +++ b/external/libwps/UnpackedTarball_libwps.mk @@ -19,4 +19,12 @@ $(eval $(call gb_UnpackedTarball_add_patches,libwps,\ $(if $(SYSTEM_REVENGE),,external/libwps/rpath.patch.0) \ )) +ifneq ($(OS),MACOSX) +ifneq ($(OS),WNT) +$(eval $(call gb_UnpackedTarball_add_patches,libwps,\ + external/libwps/libwps-bundled-soname.patch.0 \ +)) +endif +endif + # vim: set noet sw=4 ts=4: diff --git a/external/libwps/libwps-bundled-soname.patch.0 b/external/libwps/libwps-bundled-soname.patch.0 new file mode 100644 index 0000000..734cdc6 --- /dev/null +++ b/external/libwps/libwps-bundled-soname.patch.0 @@ -0,0 +1,11 @@ +--- src/lib/Makefile.in.orig 2015-08-06 11:41:55.081239194 +0200 ++++ src/lib/Makefile.in 2015-08-06 11:42:16.903238820 +0200 +@@ -369,7 +369,7 @@ + AM_CXXFLAGS = -I$(top_srcdir)/inc $(REVENGE_CFLAGS) $(DEBUG_CXXFLAGS) -DBUILD_WPS=1 + libwps_@WPS_MAJOR_VERSION@_@WPS_MINOR_VERSION@_la_LIBADD = $(REVENGE_LIBS) @LIBWPS_WIN32_RESOURCE@ + libwps_@WPS_MAJOR_VERSION@_@WPS_MINOR_VERSION@_la_DEPENDENCIES = @LIBWPS_WIN32_RESOURCE@ +-libwps_@WPS_MAJOR_VERSION@_@WPS_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined ++libwps_@WPS_MAJOR_VERSION@_@WPS_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined -release lo + libwps_@WPS_MAJOR_VERSION@_@WPS_MINOR_VERSION@_la_SOURCES = \ + libwps_internal.cpp \ + libwps_tools_win.h \ commit f046bbd1364d55fbbad3f2a246fc948d37105df8 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Fri Jul 31 09:15:14 2015 +0200 tdf#88986 sw: add missing XPropertyList pool items on TextFrame insertion Regression from commit 6e61ecd09679a66060f932835622821d39e92f01 (Merge back branch alg_writerframes to trunk, 2014-03-19), the problem was while SwFrameShell::Execute() was modified to put the various pool items related to fill types (colors, gradients, etc) to the item set of the dialog, the same was missing in SwTextShell::ExecInsert(), so colors were missing on inserting a new frame, but not when editing an existing one. Change-Id: Id009f914c1c3b6509e31a4887e32a00624678cf4 (cherry picked from commit 6c3ca675509101732d3d878d6ceb6226026cd9ac) Reviewed-on: https://gerrit.libreoffice.org/17753 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/inc/drawdoc.hxx b/sw/inc/drawdoc.hxx index 0e4ea36..bad9c0c 100644 --- a/sw/inc/drawdoc.hxx +++ b/sw/inc/drawdoc.hxx @@ -35,6 +35,8 @@ public: const SwDoc& GetDoc() const { return *m_pDoc; } SwDoc& GetDoc() { return *m_pDoc; } + /// Put needed items for XPropertyList entries from the DrawModel. + void PutAreaListItems(SfxItemSet& rSet) const; virtual SdrPage* AllocPage(bool bMasterPage) SAL_OVERRIDE; diff --git a/sw/source/core/draw/drawdoc.cxx b/sw/source/core/draw/drawdoc.cxx index 6c7a0b1..efd0bb1 100644 --- a/sw/source/core/draw/drawdoc.cxx +++ b/sw/source/core/draw/drawdoc.cxx @@ -151,4 +151,12 @@ uno::Reference< uno::XInterface > SwDrawModel::createUnoModel() return xModel; } +void SwDrawModel::PutAreaListItems(SfxItemSet& rSet) const +{ + rSet.Put(SvxColorListItem(GetColorList(), SID_COLOR_TABLE)); + rSet.Put(SvxGradientListItem(GetGradientList(), SID_GRADIENT_LIST)); + rSet.Put(SvxHatchListItem(GetHatchList(), SID_HATCH_LIST)); + rSet.Put(SvxBitmapListItem(GetBitmapList(), SID_BITMAP_LIST)); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/uibase/shells/frmsh.cxx b/sw/source/uibase/shells/frmsh.cxx index d42f0e9..4868fdf 100644 --- a/sw/source/uibase/shells/frmsh.cxx +++ b/sw/source/uibase/shells/frmsh.cxx @@ -415,11 +415,7 @@ void SwFrameShell::Execute(SfxRequest &rReq) //UUUU create needed items for XPropertyList entries from the DrawModel so that // the Area TabPage can access them const SwDrawModel* pDrawModel = rSh.GetView().GetDocShell()->GetDoc()->getIDocumentDrawModelAccess().GetDrawModel(); - - aSet.Put(SvxColorListItem(pDrawModel->GetColorList(), SID_COLOR_TABLE)); - aSet.Put(SvxGradientListItem(pDrawModel->GetGradientList(), SID_GRADIENT_LIST)); - aSet.Put(SvxHatchListItem(pDrawModel->GetHatchList(), SID_HATCH_LIST)); - aSet.Put(SvxBitmapListItem(pDrawModel->GetBitmapList(), SID_BITMAP_LIST)); + pDrawModel->PutAreaListItems(aSet); const SwViewOption* pVOpt = rSh.GetViewOptions(); if(nSel & nsSelectionType::SEL_OLE) diff --git a/sw/source/uibase/shells/textsh.cxx b/sw/source/uibase/shells/textsh.cxx index 2cf10fe..6087187 100644 --- a/sw/source/uibase/shells/textsh.cxx +++ b/sw/source/uibase/shells/textsh.cxx @@ -114,6 +114,8 @@ using namespace ::com::sun::star; #include <table.hrc> #include <frmui.hrc> #include <unomid.h> +#include <IDocumentDrawModelAccess.hxx> +#include <drawdoc.hxx> #include <boost/scoped_ptr.hpp> SFX_IMPL_INTERFACE(SwTextShell, SwBaseShell) @@ -579,11 +581,16 @@ void SwTextShell::ExecInsert(SfxRequest &rReq) SID_ATTR_PAGE_SIZE, SID_ATTR_PAGE_SIZE, FN_SET_FRM_NAME, FN_SET_FRM_NAME, SID_HTML_MODE, SID_HTML_MODE, + SID_COLOR_TABLE, SID_BITMAP_LIST, 0 }; SfxItemSet aSet(GetPool(), aFrmAttrRange ); aSet.Put(SfxUInt16Item(SID_HTML_MODE, ::GetHtmlMode(GetView().GetDocShell()))); + + // For the Area tab page. + GetShell().GetDoc()->getIDocumentDrawModelAccess().GetDrawModel()->PutAreaListItems(aSet); + const SwRect &rPg = GetShell().GetAnyCurRect(RECT_PAGE); SwFormatFrmSize aFrmSize(ATT_VAR_SIZE, rPg.Width(), rPg.Height()); aFrmSize.SetWhich(GetPool().GetWhich(SID_ATTR_PAGE_SIZE)); commit 97d69b9b0d0d7d6d69587a27ea108663ede4f1c6 Author: Andras Timar <andras.ti...@collabora.com> Date: Thu Aug 6 21:51:28 2015 +0200 libwpd bundled soname patch Reviewed-on: https://gerrit.libreoffice.org/17548 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Andras Timar <andras.ti...@collabora.com> (cherry picked from commit 4284337d92420373f2e1bcb40c9513db94a73bca) Conflicts: external/libwpd/ExternalPackage_libwpd.mk Change-Id: I25dee74be0391b56587b4cc3eb9599708446825d Reviewed-on: https://gerrit.libreoffice.org/17795 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/external/libwpd/ExternalPackage_libwpd.mk b/external/libwpd/ExternalPackage_libwpd.mk index 51badef..ce22af0 100644 --- a/external/libwpd/ExternalPackage_libwpd.mk +++ b/external/libwpd/ExternalPackage_libwpd.mk @@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,libwpd,$(LIBO_LIB_FOLDER)/libwpd-0.10. else ifeq ($(OS),WNT) $(eval $(call gb_ExternalPackage_add_file,libwpd,$(LIBO_LIB_FOLDER)/libwpd-0.10.dll,src/lib/.libs/libwpd-0.10.dll)) else ifeq ($(filter IOS ANDROID,$(OS)),) -$(eval $(call gb_ExternalPackage_add_file,libwpd,$(LIBO_LIB_FOLDER)/libwpd-0.10.so.10,src/lib/.libs/libwpd-0.10.so.10.0.0)) +$(eval $(call gb_ExternalPackage_add_file,libwpd,$(LIBO_LIB_FOLDER)/libwpd-0.10-lo.so.10,src/lib/.libs/libwpd-0.10-lo.so.10.0.0)) endif # vim: set noet sw=4 ts=4: diff --git a/external/libwpd/UnpackedTarball_libwpd.mk b/external/libwpd/UnpackedTarball_libwpd.mk index 9610dfb..7fb7c3b 100644 --- a/external/libwpd/UnpackedTarball_libwpd.mk +++ b/external/libwpd/UnpackedTarball_libwpd.mk @@ -18,4 +18,12 @@ $(eval $(call gb_UnpackedTarball_add_patches,libwpd,\ $(if $(SYSTEM_REVENGE),,external/libwpd/rpath.patch) \ )) +ifneq ($(OS),MACOSX) +ifneq ($(OS),WNT) +$(eval $(call gb_UnpackedTarball_add_patches,libwpd,\ + external/libwpd/libwpd-bundled-soname.patch.0 \ +)) +endif +endif + # vim: set noet sw=4 ts=4: diff --git a/external/libwpd/libwpd-bundled-soname.patch.0 b/external/libwpd/libwpd-bundled-soname.patch.0 new file mode 100644 index 0000000..04661f2 --- /dev/null +++ b/external/libwpd/libwpd-bundled-soname.patch.0 @@ -0,0 +1,11 @@ +--- src/lib/Makefile.in.orig 2015-08-06 21:41:41.073622494 +0200 ++++ src/lib/Makefile.in 2015-08-06 21:42:09.377622009 +0200 +@@ -429,7 +429,7 @@ + AM_CXXFLAGS = -I$(top_srcdir)/inc $(REVENGE_CFLAGS) $(DEBUG_CXXFLAGS) -DLIBWPD_BUILD=1 + libwpd_@WPD_MAJOR_VERSION@_@WPD_MINOR_VERSION@_la_LIBADD = $(REVENGE_LIBS) @LIBWPD_WIN32_RESOURCE@ + libwpd_@WPD_MAJOR_VERSION@_@WPD_MINOR_VERSION@_la_DEPENDENCIES = @LIBWPD_WIN32_RESOURCE@ +-libwpd_@WPD_MAJOR_VERSION@_@WPD_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic $(no_undefined) ++libwpd_@WPD_MAJOR_VERSION@_@WPD_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic $(no_undefined) -release lo + libwpd_@WPD_MAJOR_VERSION@_@WPD_MINOR_VERSION@_la_SOURCES = \ + libwpd_internal.cpp \ + libwpd_math.cpp \ commit 03153d5c42040b92dd46a9160bb4064528aa1a15 Author: Eike Rathke <er...@redhat.com> Date: Mon Aug 17 13:37:18 2015 +0200 Resolves: tdf#93326 >Fill< to >F~ill<, >Ed~it Mode< to >E~dit Mode< in Edit menu ~d seems not to be used by any application. Change-Id: I55c58130e7e95dc3d22a254c41e0d09c7ae49583 Reviewed-on: https://gerrit.libreoffice.org/17802 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu index c380155..c82ed03 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu @@ -1841,7 +1841,7 @@ </node> <node oor:name=".uno:FillCellsMenu" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> - <value xml:lang="en-US">Fill</value> + <value xml:lang="en-US">F~ill</value> </prop> </node> <node oor:name=".uno:CellContentsMenu" oor:op="replace"> diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu index 7e2f00b..91aa011 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu @@ -2456,7 +2456,7 @@ </node> <node oor:name=".uno:EditDoc" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> - <value xml:lang="en-US">Ed~it Mode</value> + <value xml:lang="en-US">E~dit Mode</value> </prop> <prop oor:name="Properties" oor:type="xs:int"> <value>9</value> commit 935799098491746462c63759cf59dc8a728b9239 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Fri Aug 14 17:31:18 2015 +0200 bin/run: fix LO_TRACE on Windows exedir has to be in the c:/foo form, instead of /cygdrive/c/foo, otherwise a native wrapper set by LO_TRACE won't understand it. With this, it's possible to use DrMemory on executables invoked by bin/run. Change-Id: I5332342fdbf7d9e4859360dd7fbd3d74c149b2dc (cherry picked from commit 6d78caf68cd63a671342e777bfe78721b424f4d6) Signed-off-by: Michael Stahl <mst...@redhat.com> diff --git a/bin/run b/bin/run index c1b3f93..7823861 100755 --- a/bin/run +++ b/bin/run @@ -21,7 +21,7 @@ if uname | grep -i CYGWIN >/dev/null; then dir=$(realpath "${dir}/..") done - exedir="${dir}"/workdir/LinkTarget/Executable + exedir=$(cygpath -m "${dir}"/workdir/LinkTarget/Executable) export URE_BOOTSTRAP=file:///$(cygpath -m "${dir}")/instdir/program/fundamental.ini export PATH=${PATH:+$PATH:}"${dir}"/instdir/program commit 9c2099cf6a2ca7f7cd741470a598603978ee7f90 Author: Eike Rathke <er...@redhat.com> Date: Sat Aug 15 00:47:03 2015 +0200 Resolves: tdf#93358 resync attribute pattern that may have changed Change-Id: If3ce8feec940c7212fe467f39db868630522b17e (cherry picked from commit f089de7dc5c367a3123129b08a9050b3bacc4eba) Reviewed-on: https://gerrit.libreoffice.org/17765 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrh...@googlemail.com> diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx index 566c139..bb6a37d 100644 --- a/sc/source/core/data/column2.cxx +++ b/sc/source/core/data/column2.cxx @@ -824,7 +824,18 @@ void ScColumn::GetOptimalHeight( } if (bStdOnly) - if (HasEditCells(nStart,nEnd,nEditPos)) // includes mixed script types + { + bool bHasEditCells = HasEditCells(nStart,nEnd,nEditPos); + // Call to HasEditCells() may change pattern due to + // calculation, => sync always. + // We don't know which row changed first, but as pPattern + // covered nStart to nEnd we can pick nStart. Worst case we + // have to repeat that for every row in range if every row + // changed. + pPattern = aIter.Resync( nStart, nStart, nEnd); + if (bHasEditCells && nEnd < nEditPos) + bHasEditCells = false; // run into that again + if (bHasEditCells) // includes mixed script types { if (nEditPos == nStart) { @@ -840,6 +851,7 @@ void ScColumn::GetOptimalHeight( nEnd = nEditPos - 1; // standard - part } } + } sc::SingleColumnSpanSet aSpanSet; aSpanSet.scan(*this, nStart, nEnd); commit 83b00768ec8a68c6e2f1f910c98bcd2490e5e867 Author: Eike Rathke <er...@redhat.com> ... etc. - the rest is truncated
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits