[Libreoffice-commits] core.git: Branch 'distro/cib/libreoffice-6-2' - 228 commits - basctl/uiconfig bridges/source chart2/qa chart2/source compilerplugins/clang configure.ac connectivity/registry connectivity/source cui/source cui/uiconfig dbaccess/source distro-configs/LibreOfficeVanillaMacAppStore.conf download.lst dtrans/source editeng/source extensions/source extensions/uiconfig external/apr external/cairo external/icu external/libgpg-error external/mdnsresponder external/poppler extras/source filter/source formula/source helpcontent2 i18npool/source icon-themes/breeze_dark icon-themes/colibre icon-themes/colibre_svg icon-themes/elementary icon-themes/elementary_svg icon-themes/karasa_jaga include/com include/oox include/sfx2 include/svtools include/svx include/vcl jurt/com jvmfwk/distributions jvmfwk/plugins librelogo/source lotuswordpro/source offapi/com offapi/UnoApi_offapi.mk oox/inc oox/source qadevOOo/runner readlicense_oo/license Repository.mk sal/osl sc/CppunitTest_sc_pdf_export.mk sc /inc sc/Module_sc.mk sc/qa sc/source sc/uiconfig sd/qa sd/source sd/uiconfig setup_native/source sfx2/qa sfx2/source sfx2/uiconfig shell/source slideshow/source solenv/bin solenv/flatpak-manifest.in starmath/uiconfig stoc/source svl/source svtools/source svtools/uiconfig svx/source sw/CppunitTest_sw_ooxmlimport2.mk sw/inc sw/qa sw/source sw/uiconfig toolkit/CppunitTest_toolkit.mk toolkit/qa toolkit/source translations ucb/source uui/source vcl/CppunitTest_vcl_gen.mk vcl/CustomTarget_qt5_moc.mk vcl/headless vcl/inc vcl/Module_vcl.mk vcl/opengl vcl/qa vcl/qt5 vcl/source vcl/unx vcl/win writerfilter/source xmloff/source
Mike Kaganski (via logerrit)
logerrit at kemper.freedesktop.org
Tue Mar 26 09:05:26 UTC 2019
Repository.mk | 2
basctl/uiconfig/basicide/ui/managebreakpoints.ui | 1
bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx | 5
bridges/source/cpp_uno/gcc3_linux_aarch64/abi.hxx | 2
bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx | 3
chart2/qa/extras/chart2export.cxx | 39
chart2/qa/extras/chart2import.cxx | 94
chart2/qa/extras/data/docx/testLabelSeparator.docx |binary
chart2/qa/extras/data/docx/testTdf122226.docx |binary
chart2/qa/extras/data/ods/pie_chart_100_and_0.ods |binary
chart2/qa/extras/data/ods/tdf108021.ods |binary
chart2/qa/extras/data/xlsx/chart_label_text_break.xlsx |binary
chart2/qa/extras/data/xlsx/testErrorBarProp.xlsx |binary
chart2/source/controller/dialogs/res_ErrorBar.cxx | 3
chart2/source/controller/dialogs/res_Trendline.cxx | 8
chart2/source/controller/dialogs/tp_AxisPositions.cxx | 5
chart2/source/controller/main/ChartController.cxx | 2
chart2/source/controller/main/UndoActions.cxx | 16
chart2/source/controller/main/UndoActions.hxx | 4
chart2/source/view/axes/VCartesianAxis.cxx | 26
chart2/source/view/main/PlottingPositionHelper.cxx | 17
chart2/source/view/main/PolarLabelPositionHelper.cxx | 8
chart2/source/view/main/ShapeFactory.cxx | 11
compilerplugins/clang/badstatics.cxx | 2
configure.ac | 18
connectivity/registry/ado/org/openoffice/Office/DataAccess/Drivers.xcu | 4
connectivity/registry/jdbc/org/openoffice/Office/DataAccess/Drivers.xcu | 4
connectivity/registry/odbc/org/openoffice/Office/DataAccess/Drivers.xcu | 4
connectivity/source/drivers/firebird/StatementCommonBase.cxx | 3
connectivity/source/drivers/mysqlc/mysqlc_databasemetadata.cxx | 76
cui/source/dialogs/FontFeaturesDialog.cxx | 4
cui/source/dialogs/SpellDialog.cxx | 7
cui/source/dialogs/cuigaldlg.cxx | 2
cui/source/inc/SpellDialog.hxx | 2
cui/source/inc/backgrnd.hxx | 6
cui/source/inc/cuitabarea.hxx | 9
cui/source/inc/cuitabline.hxx | 4
cui/source/inc/page.hxx | 2
cui/source/inc/tabstpge.hxx | 2
cui/source/tabpages/backgrnd.cxx | 161
cui/source/tabpages/numfmt.cxx | 2
cui/source/tabpages/page.cxx | 16
cui/source/tabpages/tabstpge.cxx | 16
cui/source/tabpages/tparea.cxx | 61
cui/source/tabpages/tpbitmap.cxx | 2
cui/uiconfig/ui/charnamepage.ui | 3
cui/uiconfig/ui/newlibdialog.ui | 10
cui/uiconfig/ui/paratabspage.ui | 1
dbaccess/source/core/misc/dsntypes.cxx | 8
dbaccess/source/filter/hsqldb/createparser.cxx | 37
dbaccess/source/filter/hsqldb/fbcreateparser.cxx | 38
dbaccess/source/filter/hsqldb/fbcreateparser.hxx | 1
dbaccess/source/filter/hsqldb/parseschema.cxx | 4
dbaccess/source/filter/hsqldb/utils.cxx | 61
dbaccess/source/filter/hsqldb/utils.hxx | 2
dbaccess/source/ui/dlg/advancedsettings.cxx | 34
dbaccess/source/ui/dlg/advancedsettings.hxx | 3
dbaccess/source/ui/dlg/generalpage.cxx | 7
dev/null |binary
distro-configs/LibreOfficeVanillaMacAppStore.conf | 1
download.lst | 26
dtrans/source/win32/clipb/MtaOleClipb.cxx | 102
dtrans/source/win32/clipb/MtaOleClipb.hxx | 1
editeng/source/misc/svxacorr.cxx | 3
extensions/source/dbpilots/commonpagesdbp.hxx | 19
extensions/uiconfig/sabpilot/ui/optiondbfieldpage.ui | 1
external/apr/ExternalProject_apr.mk | 1
external/cairo/ExternalPackage_cairo.mk | 2
external/icu/CVE-2018-18928.patch.2 | 63
external/icu/UnpackedTarball_icu.mk | 1
external/libgpg-error/ExternalPackage_libgpg-error.mk | 2
external/libgpg-error/UnpackedTarball_libgpg-error.mk | 1
external/libgpg-error/libgpgerror-bundled-soname.patch.1 | 22
external/mdnsresponder/UnpackedTarball_mDNSResponder.mk | 5
external/mdnsresponder/mDNSResponder_Win32_SOCKET.patch.1 | 85
external/mdnsresponder/mDNSResponder_Win32_buildfix.patch.1 | 16
external/poppler/0001-ImageStream-getLine-fix-crash-on-broken-files.patch.1 | 27
external/poppler/UnpackedTarball_poppler.mk | 1
external/poppler/poppler-config.patch.1 | 12
extras/source/templates/presnt/Alizarin/styles.xml | 12
extras/source/templates/presnt/Classy_Red/styles.xml | 4
extras/source/templates/presnt/Midnightblue/styles.xml | 4
extras/source/templates/presnt/Vivid/styles.xml | 4
filter/source/svg/svgexport.cxx | 20
formula/source/core/api/FormulaCompiler.cxx | 13
helpcontent2 | 2
i18npool/source/characterclassification/cclass_unicode_parser.cxx | 8
icon-themes/breeze_dark/cmd/lc_actionmode.png |binary
icon-themes/breeze_dark/cmd/lc_autopilotmenu.png |binary
icon-themes/breeze_dark/cmd/lc_basicshapes.block-arc.png |binary
icon-themes/breeze_dark/cmd/lc_bezieredge.png |binary
icon-themes/breeze_dark/cmd/lc_break.png |binary
icon-themes/breeze_dark/cmd/lc_changecasetolower.png |binary
icon-themes/breeze_dark/cmd/lc_changecasetoupper.png |binary
icon-themes/breeze_dark/cmd/lc_charmapcontrol.png |binary
icon-themes/breeze_dark/cmd/lc_connect.png |binary
icon-themes/breeze_dark/cmd/lc_connectorcircles.png |binary
icon-themes/breeze_dark/cmd/lc_connectorcurvecircles.png |binary
icon-themes/breeze_dark/cmd/lc_deletecomment.png |binary
icon-themes/breeze_dark/cmd/lc_dsbrowserexplorer.png |binary
icon-themes/breeze_dark/cmd/lc_editannotation.png |binary
icon-themes/breeze_dark/cmd/lc_footnotedialog.png |binary
icon-themes/breeze_dark/cmd/lc_insertcolumnsbefore.png |binary
icon-themes/breeze_dark/cmd/lc_insertrowsbefore.png |binary
icon-themes/breeze_dark/cmd/lc_insobjctrl.png |binary
icon-themes/breeze_dark/cmd/lc_menubar.png |binary
icon-themes/breeze_dark/cmd/lc_movepagedown.png |binary
icon-themes/breeze_dark/cmd/lc_movepageup.png |binary
icon-themes/breeze_dark/cmd/lc_numberformatdate.png |binary
icon-themes/breeze_dark/cmd/lc_replycomment.png |binary
icon-themes/breeze_dark/cmd/lc_runmacro.png |binary
icon-themes/breeze_dark/cmd/lc_setborderstyle.png |binary
icon-themes/breeze_dark/cmd/lc_showallnotes.png |binary
icon-themes/breeze_dark/cmd/lc_sidebar.png |binary
icon-themes/breeze_dark/cmd/lc_textattributes.png |binary
icon-themes/breeze_dark/cmd/lc_toolsmacroedit.png |binary
icon-themes/breeze_dark/cmd/lc_wordcountdialog.png |binary
icon-themes/breeze_dark/cmd/sc_about.png |binary
icon-themes/breeze_dark/cmd/sc_actionmode.png |binary
icon-themes/breeze_dark/cmd/sc_autopilotmenu.png |binary
icon-themes/breeze_dark/cmd/sc_basicshapes.block-arc.png |binary
icon-themes/breeze_dark/cmd/sc_bezieredge.png |binary
icon-themes/breeze_dark/cmd/sc_break.png |binary
icon-themes/breeze_dark/cmd/sc_charmapcontrol.png |binary
icon-themes/breeze_dark/cmd/sc_connect.png |binary
icon-themes/breeze_dark/cmd/sc_deletecomment.png |binary
icon-themes/breeze_dark/cmd/sc_dsbrowserexplorer.png |binary
icon-themes/breeze_dark/cmd/sc_insertcolumnsbefore.png |binary
icon-themes/breeze_dark/cmd/sc_insertexternaldatasource.png |binary
icon-themes/breeze_dark/cmd/sc_insertrowsbefore.png |binary
icon-themes/breeze_dark/cmd/sc_insobjctrl.png |binary
icon-themes/breeze_dark/cmd/sc_movepagedown.png |binary
icon-themes/breeze_dark/cmd/sc_movepageup.png |binary
icon-themes/breeze_dark/cmd/sc_numberformatdate.png |binary
icon-themes/breeze_dark/cmd/sc_outputqualitygrayscale.png |binary
icon-themes/breeze_dark/cmd/sc_pasteonlyformula.png |binary
icon-themes/breeze_dark/cmd/sc_pasteonlytext.png |binary
icon-themes/breeze_dark/cmd/sc_pasteonlyvalue.png |binary
icon-themes/breeze_dark/cmd/sc_pastespecial.png |binary
icon-themes/breeze_dark/cmd/sc_pasteunformatted.png |binary
icon-themes/breeze_dark/cmd/sc_presentation.png |binary
icon-themes/breeze_dark/cmd/sc_runmacro.png |binary
icon-themes/breeze_dark/cmd/sc_sendfeedback.png |binary
icon-themes/breeze_dark/cmd/sc_setborderstyle.png |binary
icon-themes/breeze_dark/cmd/sc_showallnotes.png |binary
icon-themes/breeze_dark/cmd/sc_shownote.png |binary
icon-themes/breeze_dark/cmd/sc_textattributes.png |binary
icon-themes/breeze_dark/cmd/sc_toolsmacroedit.png |binary
icon-themes/breeze_dark/cmd/sc_viewrowcolumnheaders.png |binary
icon-themes/breeze_dark/cmd/sc_wordcountdialog.png |binary
icon-themes/breeze_dark/sw/res/sidebar/pageproppanel/format_L_copy_24x24.png |binary
icon-themes/colibre/cmd/32/currencyfield.png |binary
icon-themes/colibre_svg/cmd/32/currencyfield.svg | 18
icon-themes/elementary/cmd/32/arrowshapes.up-arrow-callout.png |binary
icon-themes/elementary/cmd/32/arrowshapes.up-right-arrow-callout.png |binary
icon-themes/elementary/cmd/32/basicshapes.round-quadrat.png |binary
icon-themes/elementary/cmd/32/basicshapes.round-rectangle.png |binary
icon-themes/elementary/cmd/32/combine.png |binary
icon-themes/elementary/cmd/32/flowchartshapes.flowchart-collate.png |binary
icon-themes/elementary/cmd/32/intersect.png |binary
icon-themes/elementary/cmd/32/merge.png |binary
icon-themes/elementary/cmd/32/subscript.png |binary
icon-themes/elementary/cmd/32/substract.png |binary
icon-themes/elementary/cmd/32/superscript.png |binary
icon-themes/elementary/cmd/32/symbolshapes.octagon-bevel.png |binary
icon-themes/elementary/cmd/32/symbolshapes.quad-bevel.png |binary
icon-themes/elementary/cmd/lc_basicshapes.frame.png |binary
icon-themes/elementary/cmd/lc_combine.png |binary
icon-themes/elementary/cmd/lc_firstpage.png |binary
icon-themes/elementary/cmd/lc_flowchartshapes.flowchart-card.png |binary
icon-themes/elementary/cmd/lc_flowchartshapes.flowchart-internal-storage.png |binary
icon-themes/elementary/cmd/lc_flowchartshapes.flowchart-manual-input.png |binary
icon-themes/elementary/cmd/lc_insertcolumnbreak.png |binary
icon-themes/elementary/cmd/lc_intersect.png |binary
icon-themes/elementary/cmd/lc_merge.png |binary
icon-themes/elementary/cmd/lc_subscript.png |binary
icon-themes/elementary/cmd/lc_substract.png |binary
icon-themes/elementary/cmd/lc_superscript.png |binary
icon-themes/elementary/cmd/lc_symbolshapes.diamond-bevel.png |binary
icon-themes/elementary/cmd/lc_symbolshapes.quad-bevel.png |binary
icon-themes/elementary/cmd/lc_textdirectionlefttoright.png |binary
icon-themes/elementary/cmd/lc_textdirectiontoptobottom.png |binary
icon-themes/elementary/cmd/lc_toggleanchortype.png |binary
icon-themes/elementary/cmd/sc_combine.png |binary
icon-themes/elementary/cmd/sc_firstpage.png |binary
icon-themes/elementary/cmd/sc_intersect.png |binary
icon-themes/elementary/cmd/sc_merge.png |binary
icon-themes/elementary/cmd/sc_substract.png |binary
icon-themes/elementary/cmd/sc_textdirectionlefttoright.png |binary
icon-themes/elementary/cmd/sc_textdirectiontoptobottom.png |binary
icon-themes/elementary/links.txt | 16
icon-themes/elementary_svg/cmd/32/arrowshapes.up-arrow-callout.svg | 2
icon-themes/elementary_svg/cmd/32/arrowshapes.up-right-arrow-callout.svg | 2
icon-themes/elementary_svg/cmd/32/basicshapes.round-quadrat.svg | 2
icon-themes/elementary_svg/cmd/32/basicshapes.round-rectangle.svg | 2
icon-themes/elementary_svg/cmd/32/combine.svg | 2
icon-themes/elementary_svg/cmd/32/flowchartshapes.flowchart-collate.svg | 2
icon-themes/elementary_svg/cmd/32/intersect.svg | 2
icon-themes/elementary_svg/cmd/32/merge.svg | 2
icon-themes/elementary_svg/cmd/32/numericfield.svg | 2
icon-themes/elementary_svg/cmd/32/subscript.svg | 2
icon-themes/elementary_svg/cmd/32/substract.svg | 2
icon-themes/elementary_svg/cmd/32/superscript.svg | 2
icon-themes/elementary_svg/cmd/32/symbolshapes.octagon-bevel.svg | 2
icon-themes/elementary_svg/cmd/32/symbolshapes.quad-bevel.svg | 2
icon-themes/elementary_svg/cmd/lc_basicshapes.frame.svg | 2
icon-themes/elementary_svg/cmd/lc_combine.svg | 2
icon-themes/elementary_svg/cmd/lc_firstpage.svg | 2
icon-themes/elementary_svg/cmd/lc_flowchartshapes.flowchart-card.svg | 2
icon-themes/elementary_svg/cmd/lc_flowchartshapes.flowchart-internal-storage.svg | 2
icon-themes/elementary_svg/cmd/lc_flowchartshapes.flowchart-manual-input.svg | 2
icon-themes/elementary_svg/cmd/lc_formatungroup.svg | 2
icon-themes/elementary_svg/cmd/lc_insertcolumnbreak.svg | 1
icon-themes/elementary_svg/cmd/lc_intersect.svg | 2
icon-themes/elementary_svg/cmd/lc_merge.svg | 2
icon-themes/elementary_svg/cmd/lc_numericfield.svg | 2
icon-themes/elementary_svg/cmd/lc_subscript.svg | 2
icon-themes/elementary_svg/cmd/lc_substract.svg | 2
icon-themes/elementary_svg/cmd/lc_superscript.svg | 2
icon-themes/elementary_svg/cmd/lc_symbolshapes.diamond-bevel.svg | 2
icon-themes/elementary_svg/cmd/lc_symbolshapes.quad-bevel.svg | 2
icon-themes/elementary_svg/cmd/lc_textdirectionlefttoright.svg | 2
icon-themes/elementary_svg/cmd/lc_textdirectiontoptobottom.svg | 2
icon-themes/elementary_svg/cmd/lc_toggleanchortype.svg | 2
icon-themes/elementary_svg/cmd/sc_combine.svg | 2
icon-themes/elementary_svg/cmd/sc_firstpage.svg | 3
icon-themes/elementary_svg/cmd/sc_intersect.svg | 2
icon-themes/elementary_svg/cmd/sc_merge.svg | 2
icon-themes/elementary_svg/cmd/sc_substract.svg | 2
icon-themes/elementary_svg/cmd/sc_textdirectionlefttoright.svg | 3
icon-themes/elementary_svg/cmd/sc_textdirectiontoptobottom.svg | 3
icon-themes/karasa_jaga/links.txt | 3
include/com/sun/star/uno/Sequence.hxx | 4
include/oox/drawingml/drawingmltypes.hxx | 7
include/oox/drawingml/shape.hxx | 10
include/sfx2/DocumentMetadataAccess.hxx | 9
include/svtools/brwbox.hxx | 6
include/svx/frmdirlbox.hxx | 7
include/vcl/font/Feature.hxx | 44
include/vcl/font/FeatureParser.hxx | 11
include/vcl/weld.hxx | 7
jurt/com/sun/star/lib/util/AsynchronousFinalizer.java | 4
jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml | 5
jvmfwk/distributions/OpenOfficeorg/javavendors_macosx.xml | 5
jvmfwk/distributions/OpenOfficeorg/javavendors_wnt.xml | 5
jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx | 1
librelogo/source/LibreLogo/LibreLogo.py | 2
lotuswordpro/source/filter/tocread.cxx | 4
offapi/UnoApi_offapi.mk | 1
offapi/com/sun/star/frame/XTransientDocumentsDocumentContentIdentifierFactory.idl | 59
oox/inc/drawingml/chart/objectformatter.hxx | 5
oox/source/drawingml/chart/axisconverter.cxx | 4
oox/source/drawingml/chart/objectformatter.cxx | 20
oox/source/drawingml/chart/seriesconverter.cxx | 6
oox/source/drawingml/diagram/diagram.cxx | 11
oox/source/drawingml/diagram/diagram.hxx | 8
oox/source/drawingml/diagram/diagramlayoutatoms.cxx | 204
oox/source/drawingml/diagram/diagramlayoutatoms.hxx | 31
oox/source/drawingml/diagram/layoutatomvisitors.cxx | 7
oox/source/drawingml/diagram/layoutnodecontext.cxx | 17
oox/source/drawingml/shape.cxx | 7
oox/source/drawingml/table/tableproperties.cxx | 77
oox/source/export/chartexport.cxx | 13
oox/source/vml/vmlshape.cxx | 3
qadevOOo/runner/util/DesktopTools.java | 48
readlicense_oo/license/CREDITS.fodt | 3078 +++++-----
sal/osl/w32/procimpl.cxx | 18
sc/CppunitTest_sc_pdf_export.mk | 97
sc/Module_sc.mk | 1
sc/inc/document.hxx | 27
sc/inc/global.hxx | 2
sc/inc/interpretercontext.hxx | 12
sc/inc/postit.hxx | 114
sc/inc/scmod.hxx | 2
sc/qa/extras/anchor.cxx | 61
sc/qa/extras/scpdfexport.cxx | 284
sc/qa/unit/data/ods/pivot-table-err-in-cache.ods |binary
sc/qa/unit/data/ods/sheet_name_with_dots.ods |binary
sc/qa/unit/data/ods/tdf121040.ods |binary
sc/qa/unit/pivottable_filters_test.cxx | 19
sc/qa/unit/subsequent_export-test.cxx | 13
sc/qa/unit/subsequent_filters-test.cxx | 18
sc/qa/unit/ucalc.cxx | 18
sc/source/core/data/column.cxx | 2
sc/source/core/data/column2.cxx | 20
sc/source/core/data/documen2.cxx | 1
sc/source/core/data/documen3.cxx | 2
sc/source/core/data/document.cxx | 8
sc/source/core/data/drwlayer.cxx | 15
sc/source/core/data/formulacell.cxx | 21
sc/source/core/data/postit.cxx | 568 +
sc/source/core/data/table1.cxx | 12
sc/source/core/data/table3.cxx | 4
sc/source/core/tool/compiler.cxx | 26
sc/source/core/tool/detfunc.cxx | 2
sc/source/core/tool/interpr1.cxx | 15
sc/source/core/tool/interpretercontext.cxx | 7
sc/source/core/tool/parclass.cxx | 2
sc/source/filter/excel/xecontent.cxx | 13
sc/source/filter/excel/xeescher.cxx | 2
sc/source/filter/excel/xistream.cxx | 4
sc/source/filter/xml/xmlexprt.cxx | 10
sc/source/filter/xml/xmlwrap.cxx | 4
sc/source/ui/app/scmod.cxx | 28
sc/source/ui/docshell/docfunc.cxx | 4
sc/source/ui/docshell/docsh.cxx | 20
sc/source/ui/docshell/docsh4.cxx | 4
sc/source/ui/drawfunc/futext3.cxx | 4
sc/source/ui/inc/docsh.hxx | 2
sc/source/ui/inc/notemark.hxx | 3
sc/source/ui/inc/printfun.hxx | 5
sc/source/ui/inc/undocell.hxx | 45
sc/source/ui/pagedlg/tptable.cxx | 2
sc/source/ui/undo/undocell.cxx | 184
sc/source/ui/unoobj/docuno.cxx | 3
sc/source/ui/unoobj/editsrc.cxx | 2
sc/source/ui/unoobj/notesuno.cxx | 2
sc/source/ui/view/drawview.cxx | 2
sc/source/ui/view/gridwin.cxx | 2
sc/source/ui/view/notemark.cxx | 2
sc/source/ui/view/output2.cxx | 6
sc/source/ui/view/printfun.cxx | 23
sc/source/ui/view/tabview5.cxx | 2
sc/source/ui/view/viewfun6.cxx | 2
sc/uiconfig/scalc/ui/changesourcedialog.ui | 2
sc/uiconfig/scalc/ui/showdetaildialog.ui | 12
sd/qa/unit/SVGExportTests.cxx | 15
sd/qa/unit/data/odp/textbox-link-javascript.odp |binary
sd/qa/unit/data/pptx/smartart-cycle-matrix.pptx |binary
sd/qa/unit/data/pptx/smartart-picture-strip.pptx |binary
sd/qa/unit/data/pptx/tdf123090.pptx |binary
sd/qa/unit/import-tests-smartart.cxx | 178
sd/qa/unit/import-tests.cxx | 31
sd/source/ui/animations/CustomAnimationList.cxx | 31
sd/uiconfig/sdraw/popupmenu/graphic.xml | 1
sd/uiconfig/sdraw/ui/notebookbar_groupedbar_compact.ui | 4
sd/uiconfig/simpress/popupmenu/graphic.xml | 1
sd/uiconfig/simpress/ui/notebookbar_groupedbar_compact.ui | 4
setup_native/source/win32/customactions/inst_msu/inst_msu.cxx | 92
sfx2/qa/complex/sfx2/DocumentMetadataAccess.java | 15
sfx2/qa/complex/sfx2/tools/TestDocument.java | 3
sfx2/source/appl/sfxhelp.cxx | 34
sfx2/source/appl/shutdownicon.cxx | 2
sfx2/source/dialog/backingwindow.cxx | 19
sfx2/source/dialog/navigat.cxx | 1
sfx2/source/doc/DocumentMetadataAccess.cxx | 39
sfx2/source/doc/sfxbasemodel.cxx | 13
sfx2/source/sidebar/SidebarChildWindow.cxx | 2
sfx2/uiconfig/ui/newstyle.ui | 1
shell/source/backends/desktopbe/desktopbackend.cxx | 10
slideshow/source/engine/animationnodes/basecontainernode.cxx | 16
slideshow/source/engine/animationnodes/basenode.cxx | 24
slideshow/source/inc/basecontainernode.hxx | 1
solenv/bin/assemble-flatpak.sh | 25
solenv/bin/modules/installer.pm | 26
solenv/bin/modules/installer/packagelist.pm | 52
solenv/flatpak-manifest.in | 22
starmath/uiconfig/smath/ui/fontdialog.ui | 1
stoc/source/corereflection/criface.cxx | 2
svl/source/numbers/zformat.cxx | 12
svtools/source/brwbox/brwbox1.cxx | 8
svtools/source/brwbox/brwbox2.cxx | 19
svtools/source/svhtml/htmlkywd.cxx | 36
svtools/source/svrtf/rtfkeywd.cxx | 2
svtools/uiconfig/ui/graphicexport.ui | 6
svx/source/dialog/hdft.cxx | 2
svx/source/fmcomp/gridctrl.cxx | 11
svx/source/items/numfmtsh.cxx | 2
svx/source/table/cellcursor.cxx | 1
svx/source/table/tablecontroller.cxx | 1
svx/source/unodraw/unoprov.cxx | 6
svx/source/unodraw/unoshtxt.cxx | 18
svx/source/xml/xmlgrhlp.cxx | 1
sw/CppunitTest_sw_ooxmlimport2.mk | 1
sw/inc/doc.hxx | 3
sw/qa/core/data/rtf/pass/tdf116851.rtf | 217
sw/qa/core/test_ToxTextGenerator.cxx | 7
sw/qa/extras/layout/data/tdf108021.odt |binary
sw/qa/extras/layout/data/tdf122800.odt |binary
sw/qa/extras/layout/data/tdf122878.docx |binary
sw/qa/extras/layout/layout.cxx | 54
sw/qa/extras/mailmerge/data/db_pagecounttest.ods |binary
sw/qa/extras/mailmerge/data/pagecounttest.ott |binary
sw/qa/extras/mailmerge/mailmerge.cxx | 69
sw/qa/extras/odfimport/data/tdf123829.odt |binary
sw/qa/extras/odfimport/odfimport.cxx | 11
sw/qa/extras/ooxmlexport/data/tdf115719.docx |binary
sw/qa/extras/ooxmlexport/data/tdf121867.odt |binary
sw/qa/extras/ooxmlexport/data/tdf123104.docx |binary
sw/qa/extras/ooxmlexport/data/tdf123243.docx |binary
sw/qa/extras/ooxmlexport/data/tdf123705.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport10.cxx | 12
sw/qa/extras/ooxmlexport/ooxmlexport11.cxx | 7
sw/qa/extras/ooxmlexport/ooxmlexport13.cxx | 20
sw/qa/extras/ooxmlexport/ooxmlexport4.cxx | 2
sw/qa/extras/ooxmlexport/ooxmlexport8.cxx | 4
sw/qa/extras/ooxmlimport/data/tdf115719b.docx |binary
sw/qa/extras/ooxmlimport/data/tdf120548.docx |binary
sw/qa/extras/ooxmlimport/data/tdf121440.docx |binary
sw/qa/extras/ooxmlimport/ooxmlimport2.cxx | 24
sw/qa/extras/rtfexport/data/tdf122455.rtf | 21
sw/qa/extras/rtfexport/data/tdf123393.rtf | 14
sw/qa/extras/rtfexport/rtfexport.cxx | 2
sw/qa/extras/rtfexport/rtfexport2.cxx | 2
sw/qa/extras/rtfexport/rtfexport3.cxx | 25
sw/qa/extras/rtfimport/data/tdf122430.rtf | 31
sw/qa/extras/rtfimport/rtfimport.cxx | 9
sw/qa/extras/uiwriter/data2/frame_size_export.docx |binary
sw/qa/extras/uiwriter/uiwriter2.cxx | 55
sw/qa/extras/ww8export/data/tdf121111_fillStyleNone.docx |binary
sw/qa/extras/ww8export/data/tdf123433_fillStyleStop.doc |binary
sw/qa/extras/ww8export/ww8export3.cxx | 20
sw/qa/extras/ww8import/data/tdf110987 |binary
sw/qa/extras/ww8import/ww8import.cxx | 13
sw/qa/uitest/librelogo/compile.py | 1
sw/qa/uitest/writer_tests5/tdf123378.py | 25
sw/source/core/crsr/crstrvl.cxx | 8
sw/source/core/crsr/findtxt.cxx | 4
sw/source/core/doc/doctxm.cxx | 7
sw/source/core/docnode/ndsect.cxx | 5
sw/source/core/edit/acorrect.cxx | 12
sw/source/core/edit/edredln.cxx | 5
sw/source/core/fields/expfld.cxx | 1
sw/source/core/graphic/ndgrf.cxx | 3
sw/source/core/inc/UndoSection.hxx | 9
sw/source/core/inc/rootfrm.hxx | 7
sw/source/core/inc/txtfrm.hxx | 7
sw/source/core/layout/frmtool.cxx | 7
sw/source/core/layout/tabfrm.cxx | 20
sw/source/core/text/itradj.cxx | 11
sw/source/core/text/portxt.cxx | 3
sw/source/core/text/txtfld.cxx | 10
sw/source/core/text/txtfly.cxx | 1
sw/source/core/text/txtfrm.cxx | 2
sw/source/core/text/widorp.cxx | 1
sw/source/core/txtnode/atrflyin.cxx | 8
sw/source/core/txtnode/fntcache.cxx | 12
sw/source/core/txtnode/ndtxt.cxx | 3
sw/source/core/txtnode/thints.cxx | 3
sw/source/core/undo/rolbck.cxx | 9
sw/source/core/undo/unsect.cxx | 41
sw/source/filter/basflt/shellio.cxx | 17
sw/source/filter/ww8/docxattributeoutput.cxx | 26
sw/source/filter/ww8/docxexport.cxx | 22
sw/source/filter/ww8/docxexport.hxx | 7
sw/source/filter/ww8/rtfattributeoutput.cxx | 1
sw/source/filter/ww8/ww8par.cxx | 5
sw/source/filter/ww8/ww8par6.cxx | 15
sw/source/filter/xml/swxml.cxx | 4
sw/source/filter/xml/xmlimp.cxx | 11
sw/source/ui/chrdlg/drpcps.cxx | 9
sw/source/ui/dbui/createaddresslistdialog.cxx | 4
sw/source/ui/misc/outline.cxx | 27
sw/source/ui/uno/swdetect.cxx | 22
sw/source/uibase/app/docsh2.cxx | 11
sw/source/uibase/dbui/dbmgr.cxx | 5
sw/source/uibase/docvw/HeaderFooterWin.cxx | 55
sw/source/uibase/shells/textfld.cxx | 5
sw/source/uibase/uiview/view.cxx | 4
sw/source/uibase/uiview/viewsrch.cxx | 2
sw/source/uibase/uno/unotxdoc.cxx | 3
sw/source/uibase/utlui/content.cxx | 11
sw/source/uibase/utlui/navipi.cxx | 3
sw/uiconfig/swriter/ui/characterproperties.ui | 20
sw/uiconfig/swriter/ui/notebookbar_groupedbar_compact.ui | 5
sw/uiconfig/swriter/ui/notebookbar_groupedbar_full.ui | 5
sw/uiconfig/swriter/ui/paradialog.ui | 20
toolkit/CppunitTest_toolkit.mk | 5
toolkit/qa/cppunit/Dialog.cxx | 75
toolkit/source/awt/vclxtoolkit.cxx | 5
toolkit/source/controls/tabpagemodel.cxx | 7
toolkit/source/controls/unocontrol.cxx | 10
translations | 2
ucb/source/ucp/tdoc/tdoc_provider.cxx | 27
ucb/source/ucp/tdoc/tdoc_provider.hxx | 13
uui/source/lockcorrupt.cxx | 2
uui/source/secmacrowarnings.cxx | 2
vcl/CppunitTest_vcl_gen.mk | 42
vcl/CustomTarget_qt5_moc.mk | 2
vcl/Module_vcl.mk | 6
vcl/headless/svpgdi.cxx | 1
vcl/inc/qt5/Qt5Clipboard.hxx | 23
vcl/inc/qt5/Qt5Data.hxx | 1
vcl/inc/qt5/Qt5DragAndDrop.hxx | 15
vcl/inc/qt5/Qt5Frame.hxx | 8
vcl/inc/qt5/Qt5Menu.hxx | 5
vcl/inc/qt5/Qt5Object.hxx | 5
vcl/inc/qt5/Qt5Tools.hxx | 7
vcl/inc/qt5/Qt5Widget.hxx | 4
vcl/inc/salbmp.hxx | 2
vcl/inc/salmenu.hxx | 1
vcl/inc/svdata.hxx | 4
vcl/inc/unx/gtk/gtkbackend.hxx | 25
vcl/inc/unx/gtk/gtkgdi.hxx | 9
vcl/opengl/salbmp.cxx | 7
vcl/qa/cppunit/FontFeatureTest.cxx | 182
vcl/qa/cppunit/gen/data/tdf121120.png |binary
vcl/qa/cppunit/gen/gen.cxx | 84
vcl/qt5/Qt5Clipboard.cxx | 265
vcl/qt5/Qt5DragAndDrop.cxx | 76
vcl/qt5/Qt5FilePicker.cxx | 4
vcl/qt5/Qt5Frame.cxx | 127
vcl/qt5/Qt5Graphics_GDI.cxx | 4
vcl/qt5/Qt5Graphics_Text.cxx | 36
vcl/qt5/Qt5Instance.cxx | 20
vcl/qt5/Qt5Menu.cxx | 151
vcl/qt5/Qt5Object.cxx | 1
vcl/qt5/Qt5Tools.cxx | 38
vcl/qt5/Qt5Widget.cxx | 24
vcl/source/app/salvtables.cxx | 235
vcl/source/app/svmain.cxx | 2
vcl/source/bitmap/BitmapScaleSuperFilter.cxx | 16
vcl/source/font/Feature.cxx | 35
vcl/source/font/FeatureParser.cxx | 38
vcl/source/gdi/CommonSalLayout.cxx | 4
vcl/source/gdi/bmpacc.cxx | 13
vcl/source/gdi/pdfwriter_impl.cxx | 5
vcl/source/treelist/treelistbox.cxx | 4
vcl/source/window/dialog.cxx | 4
vcl/source/window/menu.cxx | 12
vcl/source/window/window.cxx | 5
vcl/unx/gtk/gtkinst.cxx | 2
vcl/unx/gtk3/gtk3gtkdata.cxx | 7
vcl/unx/gtk3/gtk3gtkframe.cxx | 29
vcl/unx/gtk3/gtk3gtkinst.cxx | 339 -
vcl/unx/gtk3/gtk3gtkobject.cxx | 2
vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx | 19
vcl/unx/gtk3_kde5/gtk3_kde5_filepicker_ipc.cxx | 2
vcl/unx/kde4/KDEXLib.cxx | 11
vcl/unx/kde5/KDE5FilePicker2.cxx | 2
vcl/unx/kde5/KDE5SalFrame.cxx | 2
vcl/unx/kde5/KDE5SalGraphics.cxx | 25
vcl/unx/kde5/KDE5SalGraphics.hxx | 7
vcl/win/gdi/salnativewidgets-luna.cxx | 27
writerfilter/source/dmapper/DomainMapper.cxx | 4
writerfilter/source/dmapper/DomainMapperTableHandler.cxx | 3
writerfilter/source/dmapper/DomainMapperTableManager.cxx | 3
writerfilter/source/dmapper/DomainMapper_Impl.cxx | 10
writerfilter/source/dmapper/PropertyMap.cxx | 5
writerfilter/source/dmapper/SettingsTable.cxx | 25
writerfilter/source/dmapper/SettingsTable.hxx | 3
writerfilter/source/rtftok/rtfdispatchflag.cxx | 8
writerfilter/source/rtftok/rtfdispatchsymbol.cxx | 4
writerfilter/source/rtftok/rtfdispatchvalue.cxx | 5
writerfilter/source/rtftok/rtfdocumentimpl.cxx | 35
writerfilter/source/rtftok/rtfdocumentimpl.hxx | 5
xmloff/source/core/xmlexp.cxx | 8
547 files changed, 7766 insertions(+), 3437 deletions(-)
New commits:
commit be9c3ff7ac198ae3bc04f2595d373b8711eecbc1
Author: Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Sat Feb 2 18:33:37 2019 +0300
Commit: Stephan Bergmann <sbergman at redhat.com>
CommitDate: Tue Mar 26 08:43:48 2019 +0100
Support Amazon Corretto (tdf#124297)
https://aws.amazon.com/corretto
Change-Id: I7f9ef25e1e81ededce426bad661adc6880feb9d3
Reviewed-on: https://gerrit.libreoffice.org/67289
(cherry picked from commit 41507db590b24e1b9b45d95cad55c71ba2e4091d)
Reviewed-on: https://gerrit.libreoffice.org/69688
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
diff --git a/jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml b/jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml
index b008bb1fc0f7..69bed13b94d1 100644
--- a/jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml
+++ b/jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml
@@ -17,7 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
-->
<javaSelection xmlns="http://openoffice.org/2004/java/framework/1.0">
- <updated>2019-01-19</updated>
+ <updated>2019-02-02</updated>
<vendorInfos>
<vendor name="Sun Microsystems Inc.">
<minVersion>1.5.0</minVersion>
@@ -43,5 +43,8 @@
<vendor name="AdoptOpenJdk">
<minVersion>1.8.0</minVersion>
</vendor>
+ <vendor name="Amazon.com Inc.">
+ <minVersion>1.8.0</minVersion>
+ </vendor>
</vendorInfos>
</javaSelection>
diff --git a/jvmfwk/distributions/OpenOfficeorg/javavendors_macosx.xml b/jvmfwk/distributions/OpenOfficeorg/javavendors_macosx.xml
index 1fe7547d2919..5244db3a143c 100644
--- a/jvmfwk/distributions/OpenOfficeorg/javavendors_macosx.xml
+++ b/jvmfwk/distributions/OpenOfficeorg/javavendors_macosx.xml
@@ -17,7 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
-->
<javaSelection xmlns="http://openoffice.org/2004/java/framework/1.0">
- <updated>2019-01-19</updated>
+ <updated>2019-02-02</updated>
<vendorInfos>
<vendor name="Oracle Corporation">
<minVersion>1.7.0</minVersion>
@@ -34,5 +34,8 @@
<vendor name="AdoptOpenJdk">
<minVersion>1.8.0</minVersion>
</vendor>
+ <vendor name="Amazon.com Inc.">
+ <minVersion>1.8.0</minVersion>
+ </vendor>
</vendorInfos>
</javaSelection>
diff --git a/jvmfwk/distributions/OpenOfficeorg/javavendors_wnt.xml b/jvmfwk/distributions/OpenOfficeorg/javavendors_wnt.xml
index 429831121f7b..c866a3ec1ffb 100644
--- a/jvmfwk/distributions/OpenOfficeorg/javavendors_wnt.xml
+++ b/jvmfwk/distributions/OpenOfficeorg/javavendors_wnt.xml
@@ -17,7 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
-->
<javaSelection xmlns="http://openoffice.org/2004/java/framework/1.0">
- <updated>2019-01-19</updated>
+ <updated>2019-02-02</updated>
<vendorInfos>
<vendor name="Oracle Corporation">
<minVersion>1.6.0</minVersion>
@@ -34,5 +34,8 @@
<vendor name="AdoptOpenJdk">
<minVersion>1.8.0</minVersion>
</vendor>
+ <vendor name="Amazon.com Inc.">
+ <minVersion>1.8.0</minVersion>
+ </vendor>
</vendorInfos>
</javaSelection>
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx b/jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx
index b4818b10325a..5cb85ad39a1c 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx
@@ -43,6 +43,7 @@ BEGIN_VENDOR_MAP()
VENDOR_MAP_ENTRY("Sun Microsystems Inc.", SunInfo)
VENDOR_MAP_ENTRY("Oracle Corporation", SunInfo)
VENDOR_MAP_ENTRY("AdoptOpenJdk", SunInfo)
+ VENDOR_MAP_ENTRY("Amazon.com Inc.", SunInfo)
#ifndef MACOSX
VENDOR_MAP_ENTRY("IBM Corporation", OtherInfo)
VENDOR_MAP_ENTRY("Blackdown Java-Linux Team", OtherInfo)
commit 49e07e06f99e769ee48a71d9d80765f363f5bbb6
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Mon Mar 25 11:34:07 2019 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Mar 26 07:30:01 2019 +0100
tdf#124112 Insert drawing object in chart crashes LibreOffice
regression from
commit 6be7e2e9dd8027d284f1b00ef6e3b4654eec7d79
Date: Thu Aug 30 13:54:33 2018 +0200
pass SdrUndoAction around by std::unique_ptr
Looks like previously this memory was just leaked, so fix that and the
crash
Change-Id: I5eb5c104dccd82cef30af533ce1fe8546ced0ea0
Reviewed-on: https://gerrit.libreoffice.org/69648
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
(cherry picked from commit dec5b1191d18a059b63cf2d66b1ce95703804079)
Reviewed-on: https://gerrit.libreoffice.org/69662
diff --git a/chart2/source/controller/main/ChartController.cxx b/chart2/source/controller/main/ChartController.cxx
index 3350e5e521d1..717c2b5decd5 100644
--- a/chart2/source/controller/main/ChartController.cxx
+++ b/chart2/source/controller/main/ChartController.cxx
@@ -1436,7 +1436,7 @@ void ChartController::NotifyUndoActionHdl( std::unique_ptr<SdrUndoAction> pUndoA
{
const Reference< document::XUndoManagerSupplier > xSuppUndo( getModel(), uno::UNO_QUERY_THROW );
const Reference< document::XUndoManager > xUndoManager( xSuppUndo->getUndoManager(), uno::UNO_QUERY_THROW );
- const Reference< document::XUndoAction > xAction( new impl::ShapeUndoElement( *pUndoAction ) );
+ const Reference< document::XUndoAction > xAction( new impl::ShapeUndoElement( std::move(pUndoAction) ) );
xUndoManager->addUndoAction( xAction );
}
catch( const uno::Exception& )
diff --git a/chart2/source/controller/main/UndoActions.cxx b/chart2/source/controller/main/UndoActions.cxx
index 6206430880b3..4c948721e822 100644
--- a/chart2/source/controller/main/UndoActions.cxx
+++ b/chart2/source/controller/main/UndoActions.cxx
@@ -90,10 +90,10 @@ void SAL_CALL UndoElement::redo( )
// = ShapeUndoElement
-ShapeUndoElement::ShapeUndoElement( SdrUndoAction& i_sdrUndoAction )
+ShapeUndoElement::ShapeUndoElement( std::unique_ptr<SdrUndoAction> xSdrUndoAction )
:ShapeUndoElement_MBase()
,ShapeUndoElement_TBase( m_aMutex )
- ,m_pAction( &i_sdrUndoAction )
+ ,m_xAction( std::move(xSdrUndoAction) )
{
}
@@ -103,23 +103,23 @@ ShapeUndoElement::~ShapeUndoElement()
OUString SAL_CALL ShapeUndoElement::getTitle()
{
- if ( !m_pAction )
+ if ( !m_xAction )
throw DisposedException( OUString(), *this );
- return m_pAction->GetComment();
+ return m_xAction->GetComment();
}
void SAL_CALL ShapeUndoElement::undo( )
{
- if ( !m_pAction )
+ if ( !m_xAction )
throw DisposedException( OUString(), *this );
- m_pAction->Undo();
+ m_xAction->Undo();
}
void SAL_CALL ShapeUndoElement::redo( )
{
- if ( !m_pAction )
+ if ( !m_xAction )
throw DisposedException( OUString(), *this );
- m_pAction->Redo();
+ m_xAction->Redo();
}
void SAL_CALL ShapeUndoElement::disposing()
diff --git a/chart2/source/controller/main/UndoActions.hxx b/chart2/source/controller/main/UndoActions.hxx
index 598bf4f25430..fb7f5f3a07ff 100644
--- a/chart2/source/controller/main/UndoActions.hxx
+++ b/chart2/source/controller/main/UndoActions.hxx
@@ -89,7 +89,7 @@ class ShapeUndoElement :public ShapeUndoElement_MBase
,public ShapeUndoElement_TBase
{
public:
- explicit ShapeUndoElement( SdrUndoAction& i_sdrUndoAction );
+ explicit ShapeUndoElement( std::unique_ptr<SdrUndoAction> xSdrUndoAction );
// XUndoAction
virtual OUString SAL_CALL getTitle() override;
@@ -103,7 +103,7 @@ protected:
virtual ~ShapeUndoElement() override;
private:
- SdrUndoAction* m_pAction;
+ std::unique_ptr<SdrUndoAction> m_xAction;
};
} // namespace impl
commit e8c9b7bf8325961b8123cf28cb32b902ed11860b
Author: Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Thu Mar 21 00:32:43 2019 +0300
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Mar 25 16:35:43 2019 +0100
tdf#123832: Try to prevent/control hung wusa.exe while installing UCRT
Reportedly under some circumstances execution of wusa.exe may hang
for very long time (available logs show more than 90 min). LO MSI
installer waits for wusa.exe indefinitely in its deferred inst_msu
custom action; during this wait, one can't abort the installation.
There is an evidence [1] that stopping WU service prior to wusa
launch might prevent this hang.
The patch does two things:
1. It stops running WU service prior to wusa launch.
2. It adds a check for user input by executing MsiProcessMessage
twice a second, and checking its return value, to allow early
return in case user cancels the installation.
This is a blind shot, since I cannot reproduce the problem myself.
[1] https://superuser.com/questions/1044528/
Change-Id: I8bf4ce52b3e9d98a4f90af3abcc49ac63b6a0e40
Reviewed-on: https://gerrit.libreoffice.org/69487
Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
Tested-by: Mike Kaganski <mike.kaganski at collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/69572
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/setup_native/source/win32/customactions/inst_msu/inst_msu.cxx b/setup_native/source/win32/customactions/inst_msu/inst_msu.cxx
index 96fb88f4b889..d81532020cce 100644
--- a/setup_native/source/win32/customactions/inst_msu/inst_msu.cxx
+++ b/setup_native/source/win32/customactions/inst_msu/inst_msu.cxx
@@ -35,6 +35,14 @@ template <typename IntType> std::string Num2Dec(IntType n)
return sMsg.str();
}
+std::string Win32ErrorMessage(const char* sFunc, DWORD nWin32Error)
+{
+ std::stringstream sMsg;
+ sMsg << sFunc << " failed with Win32 error code " << Num2Hex(nWin32Error) << "!";
+
+ return sMsg.str();
+}
+
void ThrowHResult(const char* sFunc, HRESULT hr)
{
std::stringstream sMsg;
@@ -51,10 +59,7 @@ void CheckHResult(const char* sFunc, HRESULT hr)
void ThrowWin32Error(const char* sFunc, DWORD nWin32Error)
{
- std::stringstream sMsg;
- sMsg << sFunc << " failed with Win32 error code " << Num2Hex(nWin32Error) << "!";
-
- throw std::exception(sMsg.str().c_str());
+ throw std::exception(Win32ErrorMessage(sFunc, nWin32Error).c_str());
}
void ThrowLastError(const char* sFunc) { ThrowWin32Error(sFunc, GetLastError()); }
@@ -177,6 +182,8 @@ public:
};
// Checks if Windows Update service is disabled, and if it is, enables it temporarily.
+// Also stops the service if it's currently running, because it seems that wusa.exe
+// does not freeze when it starts the service itself.
class WUServiceEnabler
{
public:
@@ -219,7 +226,14 @@ private:
ThrowLastError("OpenServiceW");
WriteLog(hInstall, "Obtained WU service handle");
- if (ServiceStatus(hInstall, hService.get()) == SERVICE_RUNNING
+ const DWORD nCurrentStatus = ServiceStatus(hInstall, hService.get());
+ // Stop currently running service to prevent wusa.exe from hanging trying to detect if the
+ // update is applicable (sometimes this freezes it ~indefinitely; it seems that it doesn't
+ // happen if wusa.exe starts the service itself: https://superuser.com/questions/1044528/).
+ if (nCurrentStatus == SERVICE_RUNNING)
+ StopService(hInstall, hService.get());
+
+ if (nCurrentStatus == SERVICE_RUNNING
|| !EnsureServiceEnabled(hInstall, hService.get(), true))
{
// No need to restore anything back, since we didn't change config
@@ -324,17 +338,26 @@ private:
static void StopService(MSIHANDLE hInstall, SC_HANDLE hService)
{
- if (ServiceStatus(hInstall, hService) != SERVICE_STOPPED)
+ try
{
- SERVICE_STATUS aServiceStatus{};
- if (!ControlService(hService, SERVICE_CONTROL_STOP, &aServiceStatus))
- ThrowLastError("ControlService");
- WriteLog(hInstall,
- "Successfully sent SERVICE_CONTROL_STOP code to Windows Update service");
- // No need to wait for the service stopped
+ if (ServiceStatus(hInstall, hService) != SERVICE_STOPPED)
+ {
+ SERVICE_STATUS aServiceStatus{};
+ if (!ControlService(hService, SERVICE_CONTROL_STOP, &aServiceStatus))
+ WriteLog(hInstall, Win32ErrorMessage("ControlService", GetLastError()));
+ else
+ WriteLog(
+ hInstall,
+ "Successfully sent SERVICE_CONTROL_STOP code to Windows Update service");
+ // No need to wait for the service stopped
+ }
+ else
+ WriteLog(hInstall, "Windows Update service is not running");
+ }
+ catch (std::exception& e)
+ {
+ WriteLog(hInstall, e.what());
}
- else
- WriteLog(hInstall, "Windows Update service is not running");
}
MSIHANDLE mhInstall;
@@ -446,7 +469,8 @@ extern "C" __declspec(dllexport) UINT __stdcall InstallMSU(MSIHANDLE hInstall)
WriteLog(hInstall, "Got CustomActionData value:", sBinaryName);
auto aDeleteFileGuard(Guard(sBinaryName));
- // In case the Windows Update service is disabled, we temporarily enable it here
+ // In case the Windows Update service is disabled, we temporarily enable it here. We also
+ // stop running WU service, to avoid wusa.exe freeze (see comment in EnableWUService).
WUServiceEnabler aWUServiceEnabler(hInstall);
const bool bWow64Process = IsWow64Process();
@@ -466,12 +490,43 @@ extern "C" __declspec(dllexport) UINT __stdcall InstallMSU(MSIHANDLE hInstall)
if (!CreateProcessW(sWUSAPath.c_str(), const_cast<LPWSTR>(sWUSACmd.c_str()), nullptr,
nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &si, &pi))
ThrowLastError("CreateProcessW");
+ CloseHandle(pi.hThread);
auto aCloseProcHandleGuard(Guard(pi.hProcess));
WriteLog(hInstall, "CreateProcessW succeeded");
- DWORD nWaitResult = WaitForSingleObject(pi.hProcess, INFINITE);
- if (nWaitResult != WAIT_OBJECT_0)
- ThrowWin32Error("WaitForSingleObject", nWaitResult);
+ {
+ // This block waits when the started wusa.exe process finishes. Since it's possible
+ // for wusa.exe in some circumstances to wait really long (indefinitely?), we use
+ // MsiProcessMessage to check for user input: it returns IDCANCEL when user cancels
+ // installation.
+ PMSIHANDLE hProgressRec = MsiCreateRecord(3);
+ // Use explicit progress messages
+ MsiRecordSetInteger(hProgressRec, 1, 1);
+ MsiRecordSetInteger(hProgressRec, 2, 1);
+ MsiRecordSetInteger(hProgressRec, 3, 0);
+ int nResult = MsiProcessMessage(hInstall, INSTALLMESSAGE_PROGRESS, hProgressRec);
+ if (nResult == IDCANCEL)
+ return ERROR_INSTALL_USEREXIT;
+ // Prepare the record to following progress update calls
+ MsiRecordSetInteger(hProgressRec, 1, 2);
+ MsiRecordSetInteger(hProgressRec, 2, 0); // step by 0 - don't move progress
+ MsiRecordSetInteger(hProgressRec, 3, 0);
+ for (;;)
+ {
+ DWORD nWaitResult = WaitForSingleObject(pi.hProcess, 500);
+ if (nWaitResult == WAIT_OBJECT_0)
+ break; // wusa.exe finished
+ else if (nWaitResult == WAIT_TIMEOUT)
+ {
+ // Check if user has cancelled
+ nResult = MsiProcessMessage(hInstall, INSTALLMESSAGE_PROGRESS, hProgressRec);
+ if (nResult == IDCANCEL)
+ return ERROR_INSTALL_USEREXIT;
+ }
+ else
+ ThrowWin32Error("WaitForSingleObject", nWaitResult);
+ }
+ }
DWORD nExitCode = 0;
if (!GetExitCodeProcess(pi.hProcess, &nExitCode))
@@ -484,7 +539,6 @@ extern "C" __declspec(dllexport) UINT __stdcall InstallMSU(MSIHANDLE hInstall)
switch (hr)
{
case S_OK:
- case S_FALSE:
case WU_S_ALREADY_INSTALLED:
case WU_E_NOT_APPLICABLE: // Windows could lie us about its version, etc.
case ERROR_SUCCESS_REBOOT_REQUIRED:
commit 04074fe336be514d3d3f3537e6ff915a7604f6f4
Author: Tomáš Chvátal <tchvatal at suse.com>
AuthorDate: Fri Mar 15 16:43:31 2019 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Mar 25 16:35:05 2019 +0100
Use RegexMatcher.find(pos, status) call on old ICU
The RegexMatcher.find(status) is new since icu 55 and this works even
on the old releases thus revert there to the available albeit slower
call.
Change-Id: I964c10efd15515b04ac9037cda3b5b309910baf5
Reviewed-on: https://gerrit.libreoffice.org/69311
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack at redhat.com>
Reviewed-on: https://gerrit.libreoffice.org/69312
Reviewed-by: Tomáš Chvátal <tchvatal at suse.cz>
Tested-by: Tomáš Chvátal <tchvatal at suse.cz>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index c9c3624bb019..fc0600368b7f 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -9411,7 +9411,12 @@ void ScInterpreter::ScRegex()
{
// Find n-th occurrence.
sal_Int32 nCount = 0;
- while (aRegexMatcher.find( status) && U_SUCCESS(status) && ++nCount < nOccurrence)
+#if (U_ICU_VERSION_MAJOR_NUM < 55)
+ int32_t nStartPos = 0;
+ while (aRegexMatcher.find(nStartPos, status) && U_SUCCESS(status) && ++nCount < nOccurrence)
+#else
+ while (aRegexMatcher.find(status) && U_SUCCESS(status) && ++nCount < nOccurrence)
+#endif
;
if (U_FAILURE(status))
{
@@ -9451,7 +9456,12 @@ void ScInterpreter::ScRegex()
{
// Replace n-th occurrence of match with replacement.
sal_Int32 nCount = 0;
- while (aRegexMatcher.find( status) && U_SUCCESS(status))
+#if (U_ICU_VERSION_MAJOR_NUM < 55)
+ int32_t nStartPos = 0;
+ while (aRegexMatcher.find(nStartPos, status) && U_SUCCESS(status))
+#else
+ while (aRegexMatcher.find(status) && U_SUCCESS(status))
+#endif
{
// XXX NOTE: After several RegexMatcher::find() the
// RegexMatcher::appendReplacement() still starts at the
commit 848b25f0848bbf3d214ac19c9f815b488be9303d
Author: Tomáš Chvátal <tchvatal at suse.com>
AuthorDate: Wed Mar 20 12:05:39 2019 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Mar 25 16:34:03 2019 +0100
Add few more fixes to build with Boost < 1.56
Change-Id: Ifbdbf7f2d44d569c491b1822d9d842433a9978a1
Reviewed-on: https://gerrit.libreoffice.org/69461
Reviewed-by: Tomáš Chvátal <tchvatal at suse.cz>
Tested-by: Tomáš Chvátal <tchvatal at suse.cz>
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sw/source/core/crsr/findtxt.cxx b/sw/source/core/crsr/findtxt.cxx
index f45516361c2d..03239dfb1063 100644
--- a/sw/source/core/crsr/findtxt.cxx
+++ b/sw/source/core/crsr/findtxt.cxx
@@ -152,7 +152,11 @@ public:
{
if (pFrame)
{
+#if BOOST_VERSION < 105600
+ m_oMergedIter.reset(*pFrame);
+#else
m_oMergedIter.emplace(*pFrame);
+#endif
}
}
diff --git a/sw/source/core/inc/txtfrm.hxx b/sw/source/core/inc/txtfrm.hxx
index 9af04de107a5..bf4c0ad8a316 100644
--- a/sw/source/core/inc/txtfrm.hxx
+++ b/sw/source/core/inc/txtfrm.hxx
@@ -24,6 +24,8 @@
#include <ndtxt.hxx>
#include "TextFrameIndex.hxx"
+#include <boost/version.hpp>
+
namespace com { namespace sun { namespace star { namespace linguistic2 { class XHyphenatedWord; } } } }
namespace sw { namespace mark { class IMark; } }
@@ -980,8 +982,13 @@ struct MergedPara
class MergedAttrIterBase
{
protected:
+#if BOOST_VERSION < 105600
+ sw::MergedPara const* m_pMerged;
+ SwTextNode const* m_pNode;
+#else
sw::MergedPara const*const m_pMerged;
SwTextNode const*const m_pNode;
+#endif
size_t m_CurrentExtent;
size_t m_CurrentHint;
MergedAttrIterBase(SwTextFrame const& rFrame);
commit 358637547c5bb7ae6ca637640c4279455414dbfa
Author: Tomáš Chvátal <tchvatal at suse.com>
AuthorDate: Fri Mar 15 16:16:31 2019 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Mar 25 16:32:39 2019 +0100
Fix build with boost 1.69
This is also fixed with master with boost bump which we do not need
here.
Change-Id: I61caec10c0c6d442cef3d51c31eaff01f18b89e3
Reviewed-on: https://gerrit.libreoffice.org/69310
Reviewed-by: Tomáš Chvátal <tchvatal at suse.cz>
Tested-by: Tomáš Chvátal <tchvatal at suse.cz>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sfx2/source/appl/shutdownicon.cxx b/sfx2/source/appl/shutdownicon.cxx
index e917c3a91a0c..8a51e5c88122 100644
--- a/sfx2/source/appl/shutdownicon.cxx
+++ b/sfx2/source/appl/shutdownicon.cxx
@@ -143,7 +143,7 @@ bool LoadModule()
#endif // ENABLE_QUICKSTART_APPLET
}
assert(!boost::logic::indeterminate(loaded));
- return loaded;
+ return bool(loaded);
}
}
commit 2508f949f1f20bb353f8bef1bd908f9cf3b039ef
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Mon Mar 25 12:03:22 2019 +0200
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Mar 25 16:30:56 2019 +0100
tdf#124318 FILEOPEN: XLS Hyperlink URL incorrect
regression from
commit 52f69445c55c9af8ad97bee6da335b4592d56d4d
Date: Wed Aug 1 17:03:18 2018 +0200
loplugin:stringloop in sc
Change-Id: I7d481ea27866fc146c5de9d027aa7bb308f14e52
Reviewed-on: https://gerrit.libreoffice.org/69652
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
(cherry picked from commit 756252ce13f541049af620983f6741223d44573b)
Reviewed-on: https://gerrit.libreoffice.org/69660
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sc/source/filter/excel/xistream.cxx b/sc/source/filter/excel/xistream.cxx
index e48d596bd5ef..649c8f9ce2df 100644
--- a/sc/source/filter/excel/xistream.cxx
+++ b/sc/source/filter/excel/xistream.cxx
@@ -867,7 +867,9 @@ OUString XclImpStream::ReadRawUniString( sal_uInt16 nChars, bool b16Bit )
}
*pcEndChar = '\0';
- aRet.append( pcBuffer.get(), pcUniChar - pcBuffer.get() );
+ // this has the side-effect of only copying as far as the first null, which appears to be intentional. e.g.
+ // see tdf#124318
+ aRet.append( pcBuffer.get() );
nCharsLeft = nCharsLeft - nReadSize;
if( nCharsLeft > 0 )
commit 5c0fa3265962373f36020f3ba8ddcdbc265e0acc
Author: Tünde Tóth <tundeth at gmail.com>
AuthorDate: Thu Mar 14 14:44:31 2019 +0100
Commit: László Németh <nemeth at numbertext.org>
CommitDate: Mon Mar 25 10:35:56 2019 +0100
tdf#114969 XLSX export: fix 'sheet.name.with.dot'!A1-like links
When the sheet name/cell address separator was an exclamation mark,
bad conversion of the optional dot separator replaced the last dot
of the exported sheet name, resulting broken links:
'sheet.name.with!dot'!A1
Change-Id: I84fb6c8da345c144b04657ea350f1f96614071b7
Reviewed-on: https://gerrit.libreoffice.org/69272
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth at numbertext.org>
(cherry picked from commit 37a3af2413f9407639157caef67d7d5168230e49)
Reviewed-on: https://gerrit.libreoffice.org/69583
Reviewed-by: Tünde Tóth <tundeth at gmail.com>
diff --git a/sc/qa/unit/data/ods/sheet_name_with_dots.ods b/sc/qa/unit/data/ods/sheet_name_with_dots.ods
new file mode 100755
index 000000000000..dc5b8193fe71
Binary files /dev/null and b/sc/qa/unit/data/ods/sheet_name_with_dots.ods differ
diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx
index 04d26cd35d6d..22851e9b5f5f 100644
--- a/sc/qa/unit/subsequent_export-test.cxx
+++ b/sc/qa/unit/subsequent_export-test.cxx
@@ -220,6 +220,7 @@ public:
void testTdf118990();
void testTdf121612();
void testPivotCacheAfterExportXLSX();
+ void testTdf114969XLSX();
CPPUNIT_TEST_SUITE(ScExportTest);
CPPUNIT_TEST(test);
@@ -335,6 +336,7 @@ public:
CPPUNIT_TEST(testTdf118990);
CPPUNIT_TEST(testTdf121612);
CPPUNIT_TEST(testPivotCacheAfterExportXLSX);
+ CPPUNIT_TEST(testTdf114969XLSX);
CPPUNIT_TEST_SUITE_END();
@@ -4231,6 +4233,17 @@ void ScExportTest::testPivotCacheAfterExportXLSX()
xDocSh->DoClose();
}
+void ScExportTest::testTdf114969XLSX()
+{
+ ScDocShellRef xDocSh = loadDoc("sheet_name_with_dots.", FORMAT_ODS);
+ CPPUNIT_ASSERT(xDocSh.is());
+
+ xmlDocPtr pDoc = XPathHelper::parseExport2(*this, *xDocSh, m_xSFactory, "xl/worksheets/sheet1.xml", FORMAT_XLSX);
+ CPPUNIT_ASSERT(pDoc);
+ assertXPath(pDoc, "/x:worksheet/x:hyperlinks/x:hyperlink[1]", "location", "'1.1.1.1'!C1");
+ assertXPath(pDoc, "/x:worksheet/x:hyperlinks/x:hyperlink[2]", "location", "'1.1.1.1'!C2");
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(ScExportTest);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sc/source/filter/excel/xecontent.cxx b/sc/source/filter/excel/xecontent.cxx
old mode 100644
new mode 100755
index 7d8341f5b3f8..9023a524b786
--- a/sc/source/filter/excel/xecontent.cxx
+++ b/sc/source/filter/excel/xecontent.cxx
@@ -418,11 +418,14 @@ XclExpHyperlink::XclExpHyperlink( const XclExpRoot& rRoot, const SvxURLField& rU
{
OUString aTextMark( rUrl.copy( 1 ) );
- sal_Int32 nSepPos = aTextMark.lastIndexOf( '.' );
- if(nSepPos != -1)
- aTextMark = aTextMark.replaceAt( nSepPos, 1, "!" );
- else
- nSepPos = aTextMark.lastIndexOf( '!' );
+ sal_Int32 nSepPos = aTextMark.lastIndexOf( '!' );
+ sal_Int32 nPointPos = aTextMark.lastIndexOf( '.' );
+ // last dot is the separator, if there is no ! after it
+ if(nSepPos < nPointPos)
+ {
+ nSepPos = nPointPos;
+ aTextMark = aTextMark.replaceAt( nSepPos, 1, "!" );
+ }
if(nSepPos != -1)
{
commit b2e81e11e154b660172356969252f00ba63f3a2b
Author: Khaled Hosny <khaledhosny at eglug.org>
AuthorDate: Thu Mar 21 18:00:54 2019 +0200
Commit: Miklos Vajna <vmiklos at collabora.com>
CommitDate: Fri Mar 22 14:57:56 2019 +0100
tdf#124109: Fix missing kashida glyphs
This partially reverts:
commit 436b829f5b904d76039db0818cff5dedf1ae89f1
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Thu Aug 16 17:35:17 2018 +0200
sw: save one vcl layout call in SwFntObj::DrawText()
Pressing a key in Writer used to lay out the relevant string 4 times
(counting GenericSalLayout::LayoutText() invocations), save one of them
by pre-calculating the layout and sharing it between GetTextArray() and
DrawTextArray().
The reverted part was causing inserted Kashida to be missing, leaving gaps
inside the words. See attachment in the bug report.
Change-Id: Iaafbc793ed5906e6fdf3dcb03c54d5a440e15da4
Reviewed-on: https://gerrit.libreoffice.org/69530
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
(cherry picked from commit f8ca6e0a59bff51fcb09af4fa6d9cd458b32f223)
Reviewed-on: https://gerrit.libreoffice.org/69547
diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
index 55278e70011c..175821ab90ef 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -1811,9 +1811,8 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
? (rInf.GetIdx() ? 1 : 0)
: sal_Int32(rInf.GetIdx());
aGlyphsKey = SwTextGlyphsKey{ &rInf.GetOut(), *pStr, nTmpIdx, nLen };
- pGlyphs = lcl_CreateLayout(aGlyphsKey, m_aTextGlyphs[aGlyphsKey]);
rInf.GetOut().DrawTextArray( aTextOriginPos, *pStr, pKernArray.get(),
- nTmpIdx , nLen, SalLayoutFlags::NONE, pGlyphs );
+ nTmpIdx , nLen );
if (bBullet)
{
rInf.GetOut().Push();
commit 6bbcf6e2839ef2747ec3677e5daa7a6ce118fd81
Author: Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Mon Mar 18 21:40:15 2019 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Fri Mar 22 12:24:58 2019 +0100
tdf#120548 sw ApplyParagraphMarkFormatToNumbering: fix handling of font color
Regression from commit b2c1474c1dc93b69f0ede03fc5c9ab496c669955
(SwTxtNode::IsIgnoredCharFmtForNumbering: ignore RES_CHRATR_COLOR,
2014-11-20), where the problem was that unconditionally ignoring or not
ignoring the font color is not correct.
Re-examining the test document from the above commit, it has an explicit
font color set in the numbering, while this bugdoc doesn't have it.
So make applying the paragraph mark font color to the numbering
conditional if the numbering already has a color set, this makes both
cases work correctly.
(cherry picked from commit 00ac19068de5e120d1620a719aa64f1203c639ae)
Change-Id: I43a6dec7d3a77689e2acbdc9d3671e79a9c4cac8
Reviewed-on: https://gerrit.libreoffice.org/69476
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli at libreoffice.org>
Tested-by: Xisco Faulí <xiscofauli at libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sw/qa/extras/ooxmlimport/data/tdf120548.docx b/sw/qa/extras/ooxmlimport/data/tdf120548.docx
new file mode 100644
index 000000000000..60943645e939
Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/tdf120548.docx differ
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
index 53d46cabe198..991573fd40af 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
@@ -103,6 +103,14 @@ DECLARE_OOXMLIMPORT_TEST(testGroupShapeFontName, "groupshape-fontname.docx")
getProperty<OUString>(getRun(getParagraphOfText(1, xText), 1), "CharFontNameAsian"));
}
+DECLARE_OOXMLIMPORT_TEST(testTdf120548, "tdf120548.docx")
+{
+ // Without the accompanying fix in place, this test would have failed with 'Expected: 00ff0000;
+ // Actual: ffffffff', i.e. the numbering portion was black, not red.
+ CPPUNIT_ASSERT_EQUAL(OUString("00ff0000"),
+ parseDump("//Special[@nType='POR_NUMBER']/SwFont", "color"));
+}
+
DECLARE_OOXMLIMPORT_TEST(test120551, "tdf120551.docx")
{
auto nHoriOrientPosition = getProperty<sal_Int32>(getShape(1), "HoriOrientPosition");
diff --git a/sw/source/core/text/txtfld.cxx b/sw/source/core/text/txtfld.cxx
index d0cad7b2569c..9138a35eacdc 100644
--- a/sw/source/core/text/txtfld.cxx
+++ b/sw/source/core/text/txtfld.cxx
@@ -412,7 +412,9 @@ SwLinePortion *SwTextFormatter::NewExtraPortion( SwTextFormatInfo &rInf )
* character than can be configured to be shown). However, in practice MSO also uses it as direct formatting
* for numbering in that paragraph. I don't know if the problem is in the spec or in MSWord.
*/
-static void checkApplyParagraphMarkFormatToNumbering( SwFont* pNumFnt, SwTextFormatInfo& rInf, const IDocumentSettingAccess* pIDSA )
+static void checkApplyParagraphMarkFormatToNumbering(SwFont* pNumFnt, SwTextFormatInfo& rInf,
+ const IDocumentSettingAccess* pIDSA,
+ const SwAttrSet* pFormat)
{
if( !pIDSA->get(DocumentSettingId::APPLY_PARAGRAPH_MARK_FORMAT_TO_NUMBERING ))
return;
@@ -447,6 +449,8 @@ static void checkApplyParagraphMarkFormatToNumbering( SwFont* pNumFnt, SwTextFor
{
if (SwTextNode::IsIgnoredCharFormatForNumbering(pItem->Which()))
pCleanedSet->ClearItem(pItem->Which());
+ else if (pFormat && pFormat->HasItem(pItem->Which()))
+ pCleanedSet->ClearItem(pItem->Which());
if (aIter.IsAtEnd())
break;
@@ -552,7 +556,7 @@ SwNumberPortion *SwTextFormatter::NewNumberPortion( SwTextFormatInfo &rInf ) con
if( pFormat )
pNumFnt->SetDiffFnt( pFormat, pIDSA );
- checkApplyParagraphMarkFormatToNumbering( pNumFnt.get(), rInf, pIDSA );
+ checkApplyParagraphMarkFormatToNumbering(pNumFnt.get(), rInf, pIDSA, pFormat);
if ( pFormatFnt )
{
@@ -608,7 +612,7 @@ SwNumberPortion *SwTextFormatter::NewNumberPortion( SwTextFormatInfo &rInf ) con
if( pFormat )
pNumFnt->SetDiffFnt( pFormat, pIDSA );
- checkApplyParagraphMarkFormatToNumbering( pNumFnt.get(), rInf, pIDSA );
+ checkApplyParagraphMarkFormatToNumbering(pNumFnt.get(), rInf, pIDSA, pFormat);
// we do not allow a vertical font
pNumFnt->SetVertical( pNumFnt->GetOrientation(), m_pFrame->IsVertical() );
diff --git a/sw/source/core/txtnode/thints.cxx b/sw/source/core/txtnode/thints.cxx
index 2fe6bf53c462..5c09174a491c 100644
--- a/sw/source/core/txtnode/thints.cxx
+++ b/sw/source/core/txtnode/thints.cxx
@@ -1760,7 +1760,8 @@ void SwTextNode::DelSoftHyph( const sal_Int32 nStt, const sal_Int32 nEnd )
bool SwTextNode::IsIgnoredCharFormatForNumbering(const sal_uInt16 nWhich)
{
- return (nWhich == RES_CHRATR_UNDERLINE || nWhich == RES_CHRATR_COLOR || nWhich == RES_CHRATR_BACKGROUND || nWhich == RES_CHRATR_ESCAPEMENT);
+ return (nWhich == RES_CHRATR_UNDERLINE || nWhich == RES_CHRATR_BACKGROUND
+ || nWhich == RES_CHRATR_ESCAPEMENT);
}
//In MS Word, following properties of the paragraph end position won't affect the formatting of bullets, so we ignore them:
commit 76848756909cb969b4689ebd2dd3b5fa27b0dc23
Author: Khaled Hosny <khaledhosny at eglug.org>
AuthorDate: Thu Mar 21 15:00:22 2019 +0200
Commit: Xisco Faulí <xiscofauli at libreoffice.org>
CommitDate: Fri Mar 22 10:02:18 2019 +0100
tdf#124109: Revert "Only do kashida insertion with fonts that have non-zero width kashidas"
This reverts commit c45b23377bb2fe44c26f1287ff38495344e4ca50.
This commit breaks Kashida justification when a document is first opened (the
kashida justification will be disabled and spaces will be used untill the text
is changed). Probably it is checking for width of Kashida glyph too early. Also
I'm not sure what the reverted commit was trying to fix since we already do
kashida justification in fonts that has non-zero width Kashida and it has been
the case for a long time.
This does not fix the original issue in the document attched with the bug
report, but if fixes kashida not being applied when opening the document.
Change-Id: Ic95859bca94fa792793e3223d2adb465bc6d880f
Reviewed-on: https://gerrit.libreoffice.org/69509
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli at libreoffice.org>
(cherry picked from commit 0a8e9cc5c1782f1cd50ef338ec2aa4f6776a4c0e)
Reviewed-on: https://gerrit.libreoffice.org/69518
Reviewed-by: Khaled Hosny <khaledhosny at eglug.org>
diff --git a/sw/source/core/text/itradj.cxx b/sw/source/core/text/itradj.cxx
index b4fca7913754..9fa38426f2b2 100644
--- a/sw/source/core/text/itradj.cxx
+++ b/sw/source/core/text/itradj.cxx
@@ -114,9 +114,6 @@ void SwTextAdjuster::FormatBlock( )
static bool lcl_CheckKashidaPositions( SwScriptInfo& rSI, SwTextSizeInfo& rInf, SwTextIter& rItr,
sal_Int32& rKashidas, TextFrameIndex& nGluePortion)
{
- if ( rInf.GetOut()->GetMinKashida() <= 0 )
- return false;
-
// i60594 validate Kashida justification
TextFrameIndex nIdx = rItr.GetStart();
TextFrameIndex nEnd = rItr.GetEnd();
@@ -154,6 +151,12 @@ static bool lcl_CheckKashidaPositions( SwScriptInfo& rSI, SwTextSizeInfo& rInf,
sal_Int32 nKashidasInAttr = rSI.KashidaJustify ( nullptr, nullptr, nIdx, nNext - nIdx );
if (nKashidasInAttr > 0)
{
+ // Kashida glyph looks suspicious, skip Kashida justification
+ if ( rInf.GetOut()->GetMinKashida() <= 0 )
+ {
+ return false;
+ }
+
sal_Int32 nKashidasDropped = 0;
if ( !SwScriptInfo::IsArabicText( rInf.GetText(), nIdx, nNext - nIdx ) )
{
@@ -213,7 +216,7 @@ static bool lcl_CheckKashidaWidth ( SwScriptInfo& rSI, SwTextSizeInfo& rInf, SwT
sal_Int32 nKashidasInAttr = rSI.KashidaJustify ( nullptr, nullptr, nIdx, nNext - nIdx );
long nFontMinKashida = rInf.GetOut()->GetMinKashida();
- if ( nKashidasInAttr > 0 && SwScriptInfo::IsArabicText( rInf.GetText(), nIdx, nNext - nIdx ) )
+ if ( nFontMinKashida && nKashidasInAttr > 0 && SwScriptInfo::IsArabicText( rInf.GetText(), nIdx, nNext - nIdx ) )
{
sal_Int32 nKashidasDropped = 0;
while ( rKashidas && nGluePortion && nKashidasInAttr > 0 &&
diff --git a/sw/source/core/text/portxt.cxx b/sw/source/core/text/portxt.cxx
index 73bf691adfa1..4a96dc57becf 100644
--- a/sw/source/core/text/portxt.cxx
+++ b/sw/source/core/text/portxt.cxx
@@ -115,8 +115,7 @@ static TextFrameIndex lcl_AddSpace(const SwTextSizeInfo &rInf,
// Kashida Justification: Insert Kashidas
if ( nEnd > nPos && pSI && COMPLEX == nScript )
{
- if ( SwScriptInfo::IsArabicText( *pStr, nPos, nEnd - nPos ) && rInf.GetOut()->GetMinKashida()
- && pSI->CountKashida() )
+ if ( SwScriptInfo::IsArabicText( *pStr, nPos, nEnd - nPos ) && pSI->CountKashida() )
{
const sal_Int32 nKashRes = pSI->KashidaJustify( nullptr, nullptr, nPos, nEnd - nPos );
// i60591: need to check result of KashidaJustify
diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
index 24d91cba54f0..55278e70011c 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -1314,8 +1314,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
// Kashida Justification
if ( SwFontScript::CTL == nActual && nSpaceAdd )
{
- if ( SwScriptInfo::IsArabicText( rInf.GetText(), rInf.GetIdx(), rInf.GetLen() )
- && rInf.GetOut().GetMinKashida() )
+ if ( SwScriptInfo::IsArabicText( rInf.GetText(), rInf.GetIdx(), rInf.GetLen() ) )
{
if ( pSI && pSI->CountKashida() &&
pSI->KashidaJustify( pKernArray.get(), nullptr, rInf.GetIdx(),
@@ -1525,8 +1524,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
// Kashida Justification
if ( SwFontScript::CTL == nActual && nSpaceAdd )
{
- if ( SwScriptInfo::IsArabicText( rInf.GetText(), rInf.GetIdx(), rInf.GetLen() )
- && rInf.GetOut().GetMinKashida() )
+ if ( SwScriptInfo::IsArabicText( rInf.GetText(), rInf.GetIdx(), rInf.GetLen() ) )
{
if ( pSI && pSI->CountKashida() &&
pSI->KashidaJustify( pKernArray.get(), pScrArray.get(), rInf.GetIdx(),
@@ -2127,8 +2125,7 @@ TextFrameIndex SwFntObj::GetCursorOfst(SwDrawTextInfo &rInf)
// Kashida Justification
if ( SwFontScript::CTL == nActual && rInf.GetSpace() )
{
- if ( SwScriptInfo::IsArabicText( rInf.GetText(), rInf.GetIdx(), rInf.GetLen() )
- && rInf.GetOut().GetMinKashida() )
+ if ( SwScriptInfo::IsArabicText( rInf.GetText(), rInf.GetIdx(), rInf.GetLen() ) )
{
if ( pSI && pSI->CountKashida() &&
pSI->KashidaJustify( pKernArray.get(), nullptr, rInf.GetIdx(), rInf.GetLen(),
commit 35739db1d2855e83755a314ec34ad98873b8289c
Author: Olivier Hallot <olivier.hallot at libreoffice.org>
AuthorDate: Thu Mar 21 10:38:34 2019 -0300
Commit: Gerrit Code Review <gerrit at gerrit.libreoffice.org>
CommitDate: Fri Mar 22 03:02:07 2019 +0100
Update git submodules
* Update helpcontent2 from branch 'libreoffice-6-2'
- Backport of Help online donnation button
Change-Id: I600ca4327385d36d00fe042bbdb36b906d199f75
Reviewed-on: https://gerrit.libreoffice.org/69511
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
diff --git a/helpcontent2 b/helpcontent2
index 9361babc015c..6543664118f1 160000
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit 9361babc015c25a240777c243e8a075b1506ffae
+Subproject commit 6543664118f1ddaa7ec4ecfec7a42889fa8f76a9
commit 8e56c7e5858b4d69bf1674ffeec27ae5d2c9ee79
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Mar 21 14:46:29 2019 +0000
Commit: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
CommitDate: Thu Mar 21 22:48:56 2019 +0100
Resolves: tdf#122804 make bitmap page 'add' dialog title localized
Change-Id: I0c4f6775b8bc9fae8dc81f07fec2e21218e36037
Reviewed-on: https://gerrit.libreoffice.org/69521
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
diff --git a/cui/source/tabpages/tpbitmap.cxx b/cui/source/tabpages/tpbitmap.cxx
index d8d0ea3ca01f..f73301e373a2 100644
--- a/cui/source/tabpages/tpbitmap.cxx
+++ b/cui/source/tabpages/tpbitmap.cxx
@@ -714,7 +714,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyTileOffsetHdl, weld::MetricSpinButton&,
IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
{
- SvxOpenGraphicDialog aDlg("Import", GetDialogFrameWeld());
+ SvxOpenGraphicDialog aDlg(CuiResId(RID_SVXSTR_ADD_IMAGE), GetDialogFrameWeld());
aDlg.EnableLink(false);
long nCount = m_pBitmapList->Count();
commit ddf479c183ef906ddc7eaff96c0fb9992d34aae1
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Mar 21 14:41:33 2019 +0000
Commit: Xisco Faulí <xiscofauli at libreoffice.org>
CommitDate: Thu Mar 21 17:30:09 2019 +0100
Resolves: tdf#122803 make gallery 'add' dialog title localized
Change-Id: Iaa2ee6c982c8fd5d5cf1b9b09a835b917217d85c
Reviewed-on: https://gerrit.libreoffice.org/69517
Reviewed-by: Xisco Faulí <xiscofauli at libreoffice.org>
Tested-by: Xisco Faulí <xiscofauli at libreoffice.org>
diff --git a/cui/source/dialogs/cuigaldlg.cxx b/cui/source/dialogs/cuigaldlg.cxx
index 42329f0e95b0..20034936de80 100644
--- a/cui/source/dialogs/cuigaldlg.cxx
+++ b/cui/source/dialogs/cuigaldlg.cxx
@@ -926,7 +926,7 @@ IMPL_LINK_NOARG(TPGalleryThemeProperties, ClickTakeHdl, weld::Button&, void)
if (!m_xLbxFound->count_selected_rows() || !bEntriesFound)
{
- SvxOpenGraphicDialog aDlg("Gallery", GetDialogFrameWeld());
+ SvxOpenGraphicDialog aDlg(CuiResId(RID_SVXSTR_KEY_GALLERY_DIR), GetDialogFrameWeld());
aDlg.EnableLink(false);
aDlg.AsLink(false);
commit 6be929b4ec00d69c24c25e16b39a00f79363d878
Author: Mark Hung <marklh9 at gmail.com>
AuthorDate: Sat Feb 16 08:44:36 2019 +0800
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Thu Mar 21 17:15:39 2019 +0100
tdf#77186 handle time container indefinite repetition.
Indefinite duration isn't necessary for indefinite repetition,
so simply check the number of iteration left and do not decrease
the number when the repetition is indefinite.
Note: a known issue is that the next effect starts before
"until click" or "until next slide" if the starting time of
the next slide is "after previous". A workaround is to set
the starting time of the next slide to "click".
Change-Id: Ie9c73b472dc400bc41501029ff19ecc3e3fab2df
Reviewed-on: https://gerrit.libreoffice.org/67896
Tested-by: Jenkins
Reviewed-by: Mark Hung <marklh9 at gmail.com>
(cherry picked from commit cacdb1ae9d9e249737d0b3732e6fd198cfdd9d82)
Reviewed-on: https://gerrit.libreoffice.org/69100
Tested-by: Xisco Faulí <xiscofauli at libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
diff --git a/slideshow/source/engine/animationnodes/basecontainernode.cxx b/slideshow/source/engine/animationnodes/basecontainernode.cxx
index bb3c7e3739a7..d48df81161cb 100644
--- a/slideshow/source/engine/animationnodes/basecontainernode.cxx
+++ b/slideshow/source/engine/animationnodes/basecontainernode.cxx
@@ -41,6 +41,7 @@ BaseContainerNode::BaseContainerNode(
maChildren(),
mnFinishedChildren(0),
mnLeftIterations(0),
+ mbRepeatIndefinite(xNode->getRepeatCount().hasValue() && isIndefiniteTiming(xNode->getRepeatCount())),
mbDurationIndefinite( isIndefiniteTiming( xNode->getEnd() ) &&
isIndefiniteTiming( xNode->getDuration() ) )
{
@@ -137,12 +138,9 @@ bool BaseContainerNode::notifyDeactivatedChild(
++mnFinishedChildren;
bool bFinished = (mnFinishedChildren >= nSize);
- // all children finished, and we've got indefinite duration?
- // think of ParallelTimeContainer::notifyDeactivating()
- // if duration given, we will be deactivated by some end event
- // @see fillCommonParameters()
- if (bFinished && isDurationIndefinite()) {
- if( mnLeftIterations >= 1.0 )
+ // Handle repetition here.
+ if (bFinished) {
+ if(!mbRepeatIndefinite && mnLeftIterations >= 1.0)
{
mnLeftIterations -= 1.0;
}
@@ -155,7 +153,7 @@ bool BaseContainerNode::notifyDeactivatedChild(
"BaseContainerNode::repeat");
getContext().mrEventQueue.addEvent( aRepetitionEvent );
}
- else
+ else if (isDurationIndefinite())
{
deactivate();
}
@@ -166,6 +164,10 @@ bool BaseContainerNode::notifyDeactivatedChild(
void BaseContainerNode::repeat()
{
+ // Prevent repeat event scheduled before deactivation.
+ if (getState() == FROZEN || getState() == ENDED)
+ return;
+
forEachChildNode( std::mem_fn(&AnimationNode::end), ~ENDED );
bool bState = init_children();
if( bState )
diff --git a/slideshow/source/engine/animationnodes/basenode.cxx b/slideshow/source/engine/animationnodes/basenode.cxx
index bfe066e5b5a9..560cd407c5a0 100644
--- a/slideshow/source/engine/animationnodes/basenode.cxx
+++ b/slideshow/source/engine/animationnodes/basenode.cxx
@@ -539,12 +539,26 @@ void BaseNode::scheduleDeactivationEvent( EventSharedPtr const& pEvent )
// if anim base node has no activity, this is called to schedule deactivation,
// but what if it does not schedule anything?
- // TODO(F2): Handle end time attribute, too
auto self(mpSelf);
- mpCurrentEvent = generateEvent(
- mxAnimationNode->getDuration(),
- [self] () { self->deactivate(); },
- maContext, 0.0 );
+ if (mxAnimationNode->getEnd().hasValue())
+ {
+ // TODO: We may need to calculate the duration if the end value is numeric.
+ // We expect that the end value contains EventTrigger::ON_NEXT here.
+ // LibreOffice does not generate numeric values, so we can leave it
+ // until we find a test case.
+ mpCurrentEvent = generateEvent(
+ mxAnimationNode->getEnd(),
+ [self] () { self->deactivate(); },
+ maContext, 0.0 );
+
+ }
+ else
+ {
+ mpCurrentEvent = generateEvent(
+ mxAnimationNode->getDuration(),
+ [self] () { self->deactivate(); },
+ maContext, 0.0 );
+ }
}
}
diff --git a/slideshow/source/inc/basecontainernode.hxx b/slideshow/source/inc/basecontainernode.hxx
index 6338fb026c7c..fe019dd999dd 100644
--- a/slideshow/source/inc/basecontainernode.hxx
+++ b/slideshow/source/inc/basecontainernode.hxx
@@ -88,6 +88,7 @@ protected:
double mnLeftIterations;
private:
+ const bool mbRepeatIndefinite;
const bool mbDurationIndefinite;
};
commit f7de88aa5c19c3fd0ecc453bb1623bc9142b3e3b
Author: Katarina Behrens <Katarina.Behrens at cib.de>
AuthorDate: Fri Mar 15 23:29:55 2019 +0100
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Thu Mar 21 17:12:15 2019 +0100
tdf#123379: implement native menu bar toggle on/off
qt5 didn't provide implementation of virtual SalMenu::ShowMenuBar
so native menu bar was visible at all times. Hopefully notebookbar
fans are happier now
Change-Id: Ie581397521369160e16f40231bade40100dcd6f6
Reviewed-on: https://gerrit.libreoffice.org/69327
Tested-by: Jenkins
Reviewed-by: Katarina Behrens <Katarina.Behrens at cib.de>
(cherry picked from commit 612650147cb85e52d317142d022db99a28c0d98a)
Reviewed-on: https://gerrit.libreoffice.org/69512
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
diff --git a/vcl/inc/qt5/Qt5Menu.hxx b/vcl/inc/qt5/Qt5Menu.hxx
index fb2f7e17027b..76563008a893 100644
--- a/vcl/inc/qt5/Qt5Menu.hxx
+++ b/vcl/inc/qt5/Qt5Menu.hxx
@@ -51,6 +51,7 @@ public:
virtual void SetSubMenu(SalMenuItem* pSalMenuItem, SalMenu* pSubMenu, unsigned nPos) override;
virtual void SetFrame(const SalFrame* pFrame) override;
const Qt5Frame* GetFrame() const;
+ virtual void ShowMenuBar(bool bVisible) override;
Qt5Menu* GetTopLevel();
virtual void SetItemBits(unsigned nPos, MenuItemBits nBits) override;
virtual void CheckItem(unsigned nPos, bool bCheck) override;
diff --git a/vcl/qt5/Qt5Menu.cxx b/vcl/qt5/Qt5Menu.cxx
index 49de2c0305a7..87b4ba4e457e 100644
--- a/vcl/qt5/Qt5Menu.cxx
+++ b/vcl/qt5/Qt5Menu.cxx
@@ -541,6 +541,12 @@ Qt5Menu* Qt5Menu::GetTopLevel()
return pMenu;
}
+void Qt5Menu::ShowMenuBar(bool bVisible)
+{
+ if (mpQMenuBar && (bVisible != mpQMenuBar->isVisible()))
+ bVisible ? mpQMenuBar->show() : mpQMenuBar->hide();
+}
+
const Qt5Frame* Qt5Menu::GetFrame() const
{
SolarMutexGuard aGuard;
commit c4e9ed5f2614ae69f838cfca4621e1ecc56cba9b
Author: Katarina Behrens <Katarina.Behrens at cib.de>
AuthorDate: Tue Feb 26 15:07:51 2019 +0100
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Thu Mar 21 17:11:06 2019 +0100
tdf#120791: restore window geometry coming back from fullscreen
Change-Id: I1492423fe6110bdc79aa68c715e968770f6767ab
Reviewed-on: https://gerrit.libreoffice.org/68672
Tested-by: Jenkins
Reviewed-by: Katarina Behrens <Katarina.Behrens at cib.de>
(cherry picked from commit e8e274b50658e1f9c2f40ce05249f7c857aeba64)
Reviewed-on: https://gerrit.libreoffice.org/69510
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
diff --git a/vcl/inc/qt5/Qt5Frame.hxx b/vcl/inc/qt5/Qt5Frame.hxx
index 4a1dc6767d95..239666ca179f 100644
--- a/vcl/inc/qt5/Qt5Frame.hxx
+++ b/vcl/inc/qt5/Qt5Frame.hxx
@@ -81,6 +81,7 @@ class VCLPLUG_QT5_PUBLIC Qt5Frame : public QObject, public SalFrame
bool m_bDefaultSize;
bool m_bDefaultPos;
bool m_bFullScreen;
+ QRect m_aRestoreGeometry;
void Center();
Size CalcDefaultSize();
diff --git a/vcl/qt5/Qt5Frame.cxx b/vcl/qt5/Qt5Frame.cxx
index 57a2cb219b52..3172b769f550 100644
--- a/vcl/qt5/Qt5Frame.cxx
+++ b/vcl/qt5/Qt5Frame.cxx
@@ -612,9 +612,19 @@ void Qt5Frame::ShowFullScreen(bool bFullScreen, sal_Int32 nScreen)
if (!isWindow())
m_pTopLevel->show();
- // do that before going fullscreen
- SetScreenNumber(nScreen);
- m_bFullScreen ? windowHandle()->showFullScreen() : windowHandle()->showNormal();
+ if (m_bFullScreen)
+ {
+ m_aRestoreGeometry = m_pTopLevel->geometry();
+ // do that before going fullscreen
+ SetScreenNumber(nScreen);
+ windowHandle()->showFullScreen();
+ }
+ else
+ {
+ windowHandle()->showNormal();
+ m_pTopLevel->setGeometry(m_aRestoreGeometry);
+ m_aRestoreGeometry = QRect();
+ }
}
void Qt5Frame::StartPresentation(bool)
commit f735f010a876a531532b9c6759f8f1cf48c5a6fa
Author: Juergen Funk <juergen.funk_ml at cib.de>
AuthorDate: Thu Mar 21 09:22:03 2019 +0100
Commit: Stephan Bergmann <sbergman at redhat.com>
CommitDate: Thu Mar 21 14:00:16 2019 +0100
pUnoReturn should be null when UNO methode is VOID
the problem is that at least the msvc_win32_x86-64 bridge's
unoInterfaceProxyDispatch
(bridges/source/cpp_uno/msvc_win32_x86-64/uno2cpp.cxx)
requires pUnoReturn to be a nullptr when the UNO method has VOID
return type (see computation of retKind in cpp_call in the same file),
but that IdlInterfaceMethodImpl::invoke doesn't set up the arguments
according to that expectation.
Change-Id: I187a997300571cd9822de2eeacf7ad887ad00a4f
Reviewed-on: https://gerrit.libreoffice.org/69495
Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
Tested-by: Stephan Bergmann <sbergman at redhat.com>
(cherry picked from commit 14a11ab5dfa2ea34049866517ee78170922aee4e)
Reviewed-on: https://gerrit.libreoffice.org/69501
Tested-by: Jenkins
diff --git a/stoc/source/corereflection/criface.cxx b/stoc/source/corereflection/criface.cxx
index c37108081fbe..4ddeecb5954d 100644
--- a/stoc/source/corereflection/criface.cxx
+++ b/stoc/source/corereflection/criface.cxx
@@ -578,7 +578,7 @@ Any SAL_CALL IdlInterfaceMethodImpl::invoke( const Any & rObj, Sequence< Any > &
// end of a "short" struct by writing the full contents of a "long"
// register); so create enough space here (assuming that no ABI requires
// padding larger than 16 byte boundaries):
- void * pUnoReturn = alloca( multipleOf16(pReturnType->nSize) );
+ void * pUnoReturn = (pReturnType->nSize == 0) ? nullptr : alloca( multipleOf16(pReturnType->nSize) );
void ** ppUnoArgs = static_cast<void **>(alloca( sizeof(void *) * nParams *2 ));
typelib_TypeDescription ** ppParamTypes = reinterpret_cast<typelib_TypeDescription **>(ppUnoArgs + nParams);
commit 71e64623f08b162e18180cdae5ad532114e56190
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sat Mar 16 21:46:54 2019 +0000
Commit: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
CommitDate: Thu Mar 21 08:11:39 2019 +0100
Resolves: tdf#123650 explicitly grab focus after modification
of the widget after gaining focus, otherwise gtk loses track
of where the focus should be
and tdf#124226 do fill-on-demand hack only on first visit
disconnect focus handler after the fill
Change-Id: I90d9f36acf807aec8687c7f563449ef16d5eb574
Reviewed-on: https://gerrit.libreoffice.org/69356
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
diff --git a/cui/source/tabpages/page.cxx b/cui/source/tabpages/page.cxx
index 81ad11e810f6..b8ed9094c06e 100644
--- a/cui/source/tabpages/page.cxx
+++ b/cui/source/tabpages/page.cxx
@@ -308,7 +308,6 @@ void SvxPageDescPage::Init_Impl()
// adjust the handler
m_xLayoutBox->connect_changed(LINK(this, SvxPageDescPage, LayoutHdl_Impl));
- m_xPaperTrayBox->connect_focus_in(LINK(this, SvxPageDescPage, PaperBinHdl_Impl));
m_xPaperSizeBox->connect_changed(LINK(this, SvxPageDescPage, PaperSizeSelect_Impl));
m_xPaperWidthEdit->connect_value_changed( LINK(this, SvxPageDescPage, PaperSizeModify_Impl));
m_xPaperHeightEdit->connect_value_changed(LINK(this, SvxPageDescPage, PaperSizeModify_Impl));
@@ -410,6 +409,10 @@ void SvxPageDescPage::Reset( const SfxItemSet* rSet )
m_xPaperTrayBox->append(OUString::number(nPaperBin), aBinName);
m_xPaperTrayBox->set_active_text(aBinName);
+ // reset focus handler to default first so know none already connected
+ m_xPaperTrayBox->connect_focus_in(Link<weld::Widget&, void>());
+ // update the list when widget gets focus
+ m_xPaperTrayBox->connect_focus_in(LINK(this, SvxPageDescPage, PaperBinHdl_Impl));
Size aPaperSize = SvxPaperInfo::GetPaperSize( mpDefPrinter );
pItem = GetItem( *rSet, SID_ATTR_PAGE_SIZE );
@@ -804,9 +807,8 @@ IMPL_LINK_NOARG(SvxPageDescPage, LayoutHdl_Impl, weld::ComboBox&, void)
IMPL_LINK_NOARG(SvxPageDescPage, PaperBinHdl_Impl, weld::Widget&, void)
{
- if (m_xPaperTrayBox->get_count() > 1)
- // already filled
- return;
+ // tdf#124226 disconnect so not called again, unless Reset occurs
+ m_xPaperTrayBox->connect_focus_in(Link<weld::Widget&, void>());
OUString aOldName = m_xPaperTrayBox->get_active_text();
m_xPaperTrayBox->freeze();
@@ -826,6 +828,10 @@ IMPL_LINK_NOARG(SvxPageDescPage, PaperBinHdl_Impl, weld::Widget&, void)
}
m_xPaperTrayBox->set_active_text(aOldName);
m_xPaperTrayBox->thaw();
+
+ // tdf#123650 explicitly grab-focus after the modification otherwise gtk loses track
+ // of there the focus should be
+ m_xPaperTrayBox->grab_focus();
}
IMPL_LINK_NOARG(SvxPageDescPage, PaperSizeSelect_Impl, weld::ComboBox&, void)
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index b130fe5d4747..95f6ccfa4c48 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -1222,11 +1222,12 @@ protected:
GtkWidget* m_pWidget;
GtkInstanceBuilder* m_pBuilder;
- static void signalFocusIn(GtkWidget*, GdkEvent*, gpointer widget)
+ static gboolean signalFocusIn(GtkWidget*, GdkEvent*, gpointer widget)
{
GtkInstanceWidget* pThis = static_cast<GtkInstanceWidget*>(widget);
SolarMutexGuard aGuard;
pThis->signal_focus_in();
+ return false;
}
void signal_focus_in()
@@ -1234,11 +1235,12 @@ protected:
m_aFocusInHdl.Call(*this);
}
- static void signalFocusOut(GtkWidget*, GdkEvent*, gpointer widget)
+ static gboolean signalFocusOut(GtkWidget*, GdkEvent*, gpointer widget)
{
GtkInstanceWidget* pThis = static_cast<GtkInstanceWidget*>(widget);
SolarMutexGuard aGuard;
pThis->signal_focus_out();
+ return false;
}
void signal_focus_out()
commit 660f6f7ef377c22599f5bd57b389553a2471609d
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Wed Mar 20 09:16:28 2019 +0000
Commit: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
CommitDate: Thu Mar 21 08:08:48 2019 +0100
rhbz#1690645 null deref of pEntry when GetCurEntry return null
in GetFocusRect at SvTreeList::GetDepth
code in since....
commit 76c549eb01dcb7b5bf28a271ce00e386f3d388ba
Author: Steve Yin <steve_y at apache.org>
Date: Fri Nov 29 13:03:27 2013 +0000
Integrate branch of IAccessible2
Change-Id: Ida6cb934c94037c861c7d5da005226f32599b5fc
Reviewed-on: https://gerrit.libreoffice.org/69460
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx
index be0816cad53f..ce631a05e9d2 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -2844,15 +2844,14 @@ void SwContentTree::KeyInput(const KeyEvent& rEvent)
//and realize multi-selection .
else if(aCode.GetCode() == KEY_SPACE && 0 == aCode.GetModifier())
{
-
SvTreeListEntry* pEntry = GetCurEntry();
- if( GetChildCount( pEntry ) == 0 )
- m_bIsKeySpace = true;
- Point tempPoint = GetEntryPosition( pEntry );//Change from "GetEntryPos" to "GetEntryPosition" for acc migration
- m_aOldRectangle = GetFocusRect( pEntry,tempPoint.Y() );
-
if(pEntry)
{
+ if( GetChildCount( pEntry ) == 0 )
+ m_bIsKeySpace = true;
+ Point tempPoint = GetEntryPosition( pEntry );//Change from "GetEntryPos" to "GetEntryPosition" for acc migration
+ m_aOldRectangle = GetFocusRect(pEntry, tempPoint.Y());
+
if (State::HIDDEN != m_eState)
{
if (State::CONSTANT == m_eState)
commit 83b148ba6ffe6745987ab2656afeb996a85a01c1
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Mar 19 13:07:27 2019 +0000
Commit: Xisco Faulí <xiscofauli at libreoffice.org>
CommitDate: Wed Mar 20 17:09:20 2019 +0100
Resolves: tdf#124024 scaling factor isn't displayed correctly
Change-Id: If08731217c0839ebd8d51399bb0dd1a3b598dceb
Reviewed-on: https://gerrit.libreoffice.org/69421
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli at libreoffice.org>
diff --git a/include/svx/frmdirlbox.hxx b/include/svx/frmdirlbox.hxx
index cb2e1452fbba..6d034e55962a 100644
--- a/include/svx/frmdirlbox.hxx
+++ b/include/svx/frmdirlbox.hxx
@@ -45,7 +45,12 @@ public:
bool get_value_changed_from_saved() const { return m_xControl->get_value_changed_from_saved(); }
SvxFrameDirection get_active_id() const { return static_cast<SvxFrameDirection>(m_xControl->get_active_id().toUInt32()); }
void set_active_id(SvxFrameDirection eDir) { m_xControl->set_active_id(OUString::number(static_cast<sal_uInt32>(eDir))); }
- void remove_id(SvxFrameDirection eDir) { m_xControl->remove_id(OUString::number(static_cast<sal_uInt32>(eDir))); }
+ void remove_id(SvxFrameDirection eDir)
+ {
+ int nPos = m_xControl->find_id(OUString::number(static_cast<sal_uInt32>(eDir)));
+ if (nPos != -1)
+ m_xControl->remove(nPos);
+ }
void set_active(int pos) { m_xControl->set_active(pos); }
int get_active() const { return m_xControl->get_active(); }
void set_sensitive(bool bSensitive) { m_xControl->set_sensitive(bSensitive); }
diff --git a/sc/source/ui/pagedlg/tptable.cxx b/sc/source/ui/pagedlg/tptable.cxx
index 109a56453728..23e384aeb80c 100644
--- a/sc/source/ui/pagedlg/tptable.cxx
+++ b/sc/source/ui/pagedlg/tptable.cxx
@@ -223,7 +223,7 @@ void ScTablePage::Reset( const SfxItemSet* rCoreSet )
m_xEdScalePageNum->set_value( (nPages > 0) ? nPages : 1 );
}
- if (m_xLbScaleMode->get_active() == 0)
+ if (m_xLbScaleMode->get_active() == -1)
{
// fall back to 100%
OSL_FAIL( "ScTablePage::Reset - missing scaling item" );
commit 19a798d7576e5daa25e273cb14badfaacd8639dc
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Mar 19 12:44:03 2019 +0000
Commit: Xisco Faulí <xiscofauli at libreoffice.org>
CommitDate: Wed Mar 20 17:02:29 2019 +0100
Resolves: tdf#124111 Cannot enter negative number
Change-Id: I9b08595f5dc7ca0bd3e86891330dd1caa0446e63
Reviewed-on: https://gerrit.libreoffice.org/69419
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli at libreoffice.org>
diff --git a/chart2/source/controller/dialogs/tp_AxisPositions.cxx b/chart2/source/controller/dialogs/tp_AxisPositions.cxx
index 4c098e6273a5..c36d0e8882c7 100644
--- a/chart2/source/controller/dialogs/tp_AxisPositions.cxx
+++ b/chart2/source/controller/dialogs/tp_AxisPositions.cxx
@@ -62,6 +62,11 @@ AxisPositionsTabPage::AxisPositionsTabPage(TabPageParent pWindow,const SfxItemSe
{
m_xLB_CrossesAt->connect_changed(LINK(this, AxisPositionsTabPage, CrossesAtSelectHdl));
m_xLB_PlaceLabels->connect_changed(LINK(this, AxisPositionsTabPage, PlaceLabelsSelectHdl));
+
+ const double nMin = static_cast<double>(SAL_MIN_INT64);
+ const double nMax = static_cast<double>(SAL_MAX_INT64);
+ m_xED_CrossesAt->set_range(nMin, nMax);
+ m_xED_LabelDistance->set_range(nMin, nMax);
}
AxisPositionsTabPage::~AxisPositionsTabPage()
commit 94fab68485601f4879f3fd0cfff8df5e37a088d8
Author: Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Tue Mar 19 21:27:20 2019 +0300
Commit: Xisco Faulí <xiscofauli at libreoffice.org>
CommitDate: Wed Mar 20 16:59:57 2019 +0100
tdf#123504: 0 and 360 are different angles in charts
This partly reverts commit 81302f33073e7629d724ed269f1fa21dad29e141.
Reviewed-on: https://gerrit.libreoffice.org/69440
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
(cherry picked from commit 166a4989a0d1e5a6271c66bceb73a27970afc882)
Change-Id: I40cbe739eb4497b8217aca56a2c3661ed1e491f4
Reviewed-on: https://gerrit.libreoffice.org/69447
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli at libreoffice.org>
diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx
index b429a3e7f20f..85d6a9e652eb 100644
--- a/chart2/qa/extras/chart2import.cxx
+++ b/chart2/qa/extras/chart2import.cxx
@@ -118,6 +118,7 @@ public:
void testTdf121205();
void testTdf114179();
+ void testTdf123504();
CPPUNIT_TEST_SUITE(Chart2ImportTest);
CPPUNIT_TEST(Fdo60083);
@@ -190,6 +191,7 @@ public:
CPPUNIT_TEST(testTdf121205);
CPPUNIT_TEST(testTdf114179);
+ CPPUNIT_TEST(testTdf123504);
CPPUNIT_TEST_SUITE_END();
@@ -1699,6 +1701,37 @@ void Chart2ImportTest::testTdf114179()
CPPUNIT_ASSERT( aSize.Height > 0);
}
+void Chart2ImportTest::testTdf123504()
+{
+ load("/chart2/qa/extras/data/ods/", "pie_chart_100_and_0.ods");
+ Reference<chart::XChartDocument> xChartDoc(getChartDocFromSheet(0, mxComponent),
+ UNO_QUERY_THROW);
+
+ Reference<chart2::XChartDocument> xChartDoc2(xChartDoc, UNO_QUERY_THROW);
+ Reference<chart2::XChartType> xChartType(getChartTypeFromDoc(xChartDoc2, 0), UNO_SET_THROW);
+ auto aDataSeriesYValues = getDataSeriesYValuesFromChartType(xChartType);
+ CPPUNIT_ASSERT_EQUAL(size_t(1), aDataSeriesYValues.size());
+
+ Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(xChartDoc, UNO_QUERY_THROW);
+ Reference<drawing::XDrawPage> xDrawPage(xDrawPageSupplier->getDrawPage(), UNO_SET_THROW);
+ Reference<drawing::XShapes> xShapes(xDrawPage->getByIndex(0), UNO_QUERY_THROW);
+ Reference<drawing::XShape> xSeriesSlices(getShapeByName(xShapes, "CID/D=0:CS=0:CT=0:Series=0"),
+ UNO_SET_THROW);
+
+ Reference<container::XIndexAccess> xIndexAccess(xSeriesSlices, UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount());
+ Reference<drawing::XShape> xSlice(xIndexAccess->getByIndex(0), UNO_QUERY_THROW);
+
+ // Check size and position of the only slice in the chart (100%)
+ // In the regressed state, it used to be 0-sized at position 0,0
+ awt::Point aSlicePosition = xSlice->getPosition();
+ CPPUNIT_ASSERT_GREATER(sal_Int32(3000), aSlicePosition.X);
+ CPPUNIT_ASSERT_GREATER(sal_Int32(150), aSlicePosition.Y);
+ awt::Size aSliceSize = xSlice->getSize();
+ CPPUNIT_ASSERT_GREATER(sal_Int32(8500), aSliceSize.Height);
+ CPPUNIT_ASSERT_GREATER(sal_Int32(8500), aSliceSize.Width);
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/chart2/qa/extras/data/ods/pie_chart_100_and_0.ods b/chart2/qa/extras/data/ods/pie_chart_100_and_0.ods
new file mode 100644
index 000000000000..a6ff5d6aa0e1
Binary files /dev/null and b/chart2/qa/extras/data/ods/pie_chart_100_and_0.ods differ
diff --git a/chart2/source/view/main/PlottingPositionHelper.cxx b/chart2/source/view/main/PlottingPositionHelper.cxx
index 164f0a8d5f64..5c25ddd49079 100644
--- a/chart2/source/view/main/PlottingPositionHelper.cxx
+++ b/chart2/source/view/main/PlottingPositionHelper.cxx
@@ -35,7 +35,6 @@
#include <o3tl/make_unique.hxx>
#include <rtl/math.hxx>
-#include <tools/helpers.hxx>
namespace chart
{
@@ -420,10 +419,11 @@ double PolarPlottingPositionHelper::getWidthAngleDegree( double& fStartLogicValu
&& !::rtl::math::approxEqual( fStartLogicValueOnAngleAxis, fEndLogicValueOnAngleAxis ) )
fWidthAngleDegree = 360.0;
- while(fWidthAngleDegree<0.0)
- fWidthAngleDegree+=360.0;
- while(fWidthAngleDegree>360.0)
- fWidthAngleDegree-=360.0;
+ // tdf#123504: both 0 and 360 are valid and different values here!
+ while (fWidthAngleDegree < 0.0)
+ fWidthAngleDegree += 360.0;
+ while (fWidthAngleDegree > 360.0)
+ fWidthAngleDegree -= 360.0;
return fWidthAngleDegree;
}
@@ -476,7 +476,12 @@ double PolarPlottingPositionHelper::transformToAngleDegree( double fLogicValueOn
fRet = m_fAngleDegreeOffset
+ fAxisAngleScaleDirection*(fScaledLogicAngleValue-MinAngleValue)*360.0
/fabs(MaxAngleValue-MinAngleValue);
- return NormAngle360(fRet);
+ // tdf#123504: both 0 and 360 are valid and different values here!
+ while (fRet > 360.0)
+ fRet -= 360.0;
+ while (fRet < 0)
+ fRet += 360.0;
+ return fRet;
}
/**
diff --git a/chart2/source/view/main/PolarLabelPositionHelper.cxx b/chart2/source/view/main/PolarLabelPositionHelper.cxx
index aca4a2b6f0c1..98c52d97288a 100644
--- a/chart2/source/view/main/PolarLabelPositionHelper.cxx
+++ b/chart2/source/view/main/PolarLabelPositionHelper.cxx
@@ -25,8 +25,6 @@
#include <com/sun/star/chart/DataLabelPlacement.hpp>
-#include <tools/helpers.hxx>
-
namespace chart
{
using namespace ::com::sun::star;
@@ -124,7 +122,11 @@ awt::Point PolarLabelPositionHelper::getLabelScreenPositionAndAlignmentForUnitCi
//set LabelAlignment
if( !bCenter )
{
- fAngleDegree = NormAngle360(fAngleDegree);
+ // tdf#123504: both 0 and 360 are valid and different values here!
+ while (fAngleDegree > 360.0)
+ fAngleDegree -= 360.0;
+ while (fAngleDegree < 0.0)
+ fAngleDegree += 360.0;
bool bOutside = nLabelPlacement == css::chart::DataLabelPlacement::OUTSIDE;
diff --git a/chart2/source/view/main/ShapeFactory.cxx b/chart2/source/view/main/ShapeFactory.cxx
index 548ecef28ccf..28f981635529 100644
--- a/chart2/source/view/main/ShapeFactory.cxx
+++ b/chart2/source/view/main/ShapeFactory.cxx
@@ -877,7 +877,11 @@ uno::Reference< drawing::XShape >
if( !xTarget.is() )
return nullptr;
- fUnitCircleWidthAngleDegree = NormAngle360(fUnitCircleWidthAngleDegree);
+ // tdf#123504: both 0 and 360 are valid and different values here!
+ while (fUnitCircleWidthAngleDegree > 360)
+ fUnitCircleWidthAngleDegree -= 360.0;
+ while (fUnitCircleWidthAngleDegree < 0)
+ fUnitCircleWidthAngleDegree += 360.0;
//create shape
uno::Reference< drawing::XShape > xShape(
@@ -926,9 +930,10 @@ uno::Reference< drawing::XShape >
if( !xTarget.is() )
return nullptr;
- while(fUnitCircleWidthAngleDegree>360)
+ // tdf#123504: both 0 and 360 are valid and different values here!
+ while (fUnitCircleWidthAngleDegree > 360)
fUnitCircleWidthAngleDegree -= 360.0;
- while(fUnitCircleWidthAngleDegree<0)
+ while (fUnitCircleWidthAngleDegree < 0)
fUnitCircleWidthAngleDegree += 360.0;
//create shape
commit 8a749b96fc4ff288d33a47c7de5ba2d8f5b7960c
Author: andreas kainz <kainz.a at gmail.com>
AuthorDate: Sat Mar 16 19:52:22 2019 +0100
Commit: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
CommitDate: Wed Mar 20 16:54:53 2019 +0100
tdf#123455 Breeze Dark icon sync with Breeze
Change-Id: Idb6ad77279257da26f2aa160a2376104fd3f69db
Reviewed-on: https://gerrit.libreoffice.org/69345
Tested-by: Jenkins
Reviewed-by: andreas_kainz <kainz.a at gmail.com>
(cherry picked from commit dd552855ea0185954c3c622f54147eb1e6baf0d7)
Reviewed-on: https://gerrit.libreoffice.org/69415
Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
diff --git a/icon-themes/breeze_dark/cmd/lc_actionmode.png b/icon-themes/breeze_dark/cmd/lc_actionmode.png
new file mode 100644
index 000000000000..bb2df2add391
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_actionmode.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_autopilotmenu.png b/icon-themes/breeze_dark/cmd/lc_autopilotmenu.png
new file mode 100644
index 000000000000..3def81cdd23a
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_autopilotmenu.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_basicshapes.block-arc.png b/icon-themes/breeze_dark/cmd/lc_basicshapes.block-arc.png
new file mode 100644
index 000000000000..81679f489a83
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_basicshapes.block-arc.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_bezieredge.png b/icon-themes/breeze_dark/cmd/lc_bezieredge.png
new file mode 100644
index 000000000000..fd70ce0a6f89
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_bezieredge.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_break.png b/icon-themes/breeze_dark/cmd/lc_break.png
new file mode 100644
index 000000000000..296b15682356
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_break.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_changecasetolower.png b/icon-themes/breeze_dark/cmd/lc_changecasetolower.png
new file mode 100644
index 000000000000..a065fd8bb46b
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_changecasetolower.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_changecasetoupper.png b/icon-themes/breeze_dark/cmd/lc_changecasetoupper.png
new file mode 100644
index 000000000000..4b994dbbec88
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_changecasetoupper.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_charmapcontrol.png b/icon-themes/breeze_dark/cmd/lc_charmapcontrol.png
new file mode 100644
index 000000000000..6943871a88e7
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_charmapcontrol.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_connect.png b/icon-themes/breeze_dark/cmd/lc_connect.png
new file mode 100644
index 000000000000..d4bb624ce33f
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_connect.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_connectorcircles.png b/icon-themes/breeze_dark/cmd/lc_connectorcircles.png
new file mode 100644
index 000000000000..127da7decd66
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_connectorcircles.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_connectorcurvecircles.png b/icon-themes/breeze_dark/cmd/lc_connectorcurvecircles.png
new file mode 100644
index 000000000000..d2c9e0c5a44c
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_connectorcurvecircles.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_deletecomment.png b/icon-themes/breeze_dark/cmd/lc_deletecomment.png
new file mode 100644
index 000000000000..d0cdfa29ff1d
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_deletecomment.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_dsbrowserexplorer.png b/icon-themes/breeze_dark/cmd/lc_dsbrowserexplorer.png
new file mode 100644
index 000000000000..15a4eb776001
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_dsbrowserexplorer.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_editannotation.png b/icon-themes/breeze_dark/cmd/lc_editannotation.png
new file mode 100644
index 000000000000..b9f2c283214d
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_editannotation.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_footnotedialog.png b/icon-themes/breeze_dark/cmd/lc_footnotedialog.png
new file mode 100644
index 000000000000..27c4372545b4
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_footnotedialog.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_insertcolumnsbefore.png b/icon-themes/breeze_dark/cmd/lc_insertcolumnsbefore.png
new file mode 100644
index 000000000000..0f5bd9230161
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_insertcolumnsbefore.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_insertrowsbefore.png b/icon-themes/breeze_dark/cmd/lc_insertrowsbefore.png
new file mode 100644
index 000000000000..9e4531538c7b
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_insertrowsbefore.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_insobjctrl.png b/icon-themes/breeze_dark/cmd/lc_insobjctrl.png
new file mode 100644
index 000000000000..28dd967e6def
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_insobjctrl.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_menubar.png b/icon-themes/breeze_dark/cmd/lc_menubar.png
new file mode 100644
index 000000000000..54f37f1df94f
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_menubar.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_movepagedown.png b/icon-themes/breeze_dark/cmd/lc_movepagedown.png
new file mode 100644
index 000000000000..8aa6a1c25b4f
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_movepagedown.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_movepageup.png b/icon-themes/breeze_dark/cmd/lc_movepageup.png
new file mode 100644
index 000000000000..e7748a285bb4
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_movepageup.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_numberformatdate.png b/icon-themes/breeze_dark/cmd/lc_numberformatdate.png
new file mode 100644
index 000000000000..4b1ab996fd13
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_numberformatdate.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_replycomment.png b/icon-themes/breeze_dark/cmd/lc_replycomment.png
new file mode 100644
index 000000000000..740a2a5b45de
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_replycomment.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_runmacro.png b/icon-themes/breeze_dark/cmd/lc_runmacro.png
new file mode 100644
index 000000000000..9657c79ec6a0
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_runmacro.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_setborderstyle.png b/icon-themes/breeze_dark/cmd/lc_setborderstyle.png
new file mode 100644
index 000000000000..645136cdd4df
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_setborderstyle.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_showallnotes.png b/icon-themes/breeze_dark/cmd/lc_showallnotes.png
new file mode 100644
index 000000000000..2db8ee377965
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_showallnotes.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_sidebar.png b/icon-themes/breeze_dark/cmd/lc_sidebar.png
new file mode 100644
index 000000000000..1c034554a341
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_sidebar.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_textattributes.png b/icon-themes/breeze_dark/cmd/lc_textattributes.png
new file mode 100644
index 000000000000..3d9ba7c3cb0e
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_textattributes.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_toolsmacroedit.png b/icon-themes/breeze_dark/cmd/lc_toolsmacroedit.png
new file mode 100644
index 000000000000..f5e70feed610
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_toolsmacroedit.png differ
diff --git a/icon-themes/breeze_dark/cmd/lc_wordcountdialog.png b/icon-themes/breeze_dark/cmd/lc_wordcountdialog.png
new file mode 100644
index 000000000000..c5f30089b420
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/lc_wordcountdialog.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_about.png b/icon-themes/breeze_dark/cmd/sc_about.png
new file mode 100644
index 000000000000..8dec4da1a964
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_about.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_actionmode.png b/icon-themes/breeze_dark/cmd/sc_actionmode.png
new file mode 100644
index 000000000000..a0c7fe8ce5f7
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_actionmode.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_autopilotmenu.png b/icon-themes/breeze_dark/cmd/sc_autopilotmenu.png
new file mode 100644
index 000000000000..d963bfe95898
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_autopilotmenu.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_basicshapes.block-arc.png b/icon-themes/breeze_dark/cmd/sc_basicshapes.block-arc.png
new file mode 100644
index 000000000000..82414eba9a42
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_basicshapes.block-arc.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_bezieredge.png b/icon-themes/breeze_dark/cmd/sc_bezieredge.png
new file mode 100644
index 000000000000..eb2a84a7902f
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_bezieredge.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_break.png b/icon-themes/breeze_dark/cmd/sc_break.png
new file mode 100644
index 000000000000..a81496dd5184
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_break.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_charmapcontrol.png b/icon-themes/breeze_dark/cmd/sc_charmapcontrol.png
new file mode 100644
index 000000000000..7add4d1c6931
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_charmapcontrol.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_connect.png b/icon-themes/breeze_dark/cmd/sc_connect.png
new file mode 100644
index 000000000000..3b16a1bd683b
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_connect.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_deletecomment.png b/icon-themes/breeze_dark/cmd/sc_deletecomment.png
new file mode 100644
index 000000000000..16e205aa25ca
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_deletecomment.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_dsbrowserexplorer.png b/icon-themes/breeze_dark/cmd/sc_dsbrowserexplorer.png
new file mode 100644
index 000000000000..76685134e30d
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_dsbrowserexplorer.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_insertcolumnsbefore.png b/icon-themes/breeze_dark/cmd/sc_insertcolumnsbefore.png
new file mode 100644
index 000000000000..b8ab5ae00905
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_insertcolumnsbefore.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_insertexternaldatasource.png b/icon-themes/breeze_dark/cmd/sc_insertexternaldatasource.png
new file mode 100644
index 000000000000..dada98f10117
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_insertexternaldatasource.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_insertrowsbefore.png b/icon-themes/breeze_dark/cmd/sc_insertrowsbefore.png
new file mode 100644
index 000000000000..53d60be0981f
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_insertrowsbefore.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_insobjctrl.png b/icon-themes/breeze_dark/cmd/sc_insobjctrl.png
new file mode 100644
index 000000000000..3c62ad5f56e2
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_insobjctrl.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_movepagedown.png b/icon-themes/breeze_dark/cmd/sc_movepagedown.png
new file mode 100644
index 000000000000..364321e13afd
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_movepagedown.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_movepageup.png b/icon-themes/breeze_dark/cmd/sc_movepageup.png
new file mode 100644
index 000000000000..1e4ad0cf6d64
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_movepageup.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_numberformatdate.png b/icon-themes/breeze_dark/cmd/sc_numberformatdate.png
new file mode 100644
index 000000000000..b19b8e9e4159
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_numberformatdate.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_outputqualitygrayscale.png b/icon-themes/breeze_dark/cmd/sc_outputqualitygrayscale.png
new file mode 100644
index 000000000000..dcbab8bab102
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_outputqualitygrayscale.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_pasteonlyformula.png b/icon-themes/breeze_dark/cmd/sc_pasteonlyformula.png
new file mode 100644
index 000000000000..6fcd9955b2fa
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_pasteonlyformula.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_pasteonlytext.png b/icon-themes/breeze_dark/cmd/sc_pasteonlytext.png
new file mode 100644
index 000000000000..9e4d832846d3
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_pasteonlytext.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_pasteonlyvalue.png b/icon-themes/breeze_dark/cmd/sc_pasteonlyvalue.png
new file mode 100644
index 000000000000..ac980fcf6f8e
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_pasteonlyvalue.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_pastespecial.png b/icon-themes/breeze_dark/cmd/sc_pastespecial.png
new file mode 100644
index 000000000000..4952b518bc16
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_pastespecial.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_pasteunformatted.png b/icon-themes/breeze_dark/cmd/sc_pasteunformatted.png
new file mode 100644
index 000000000000..833b44cbf6c7
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_pasteunformatted.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_presentation.png b/icon-themes/breeze_dark/cmd/sc_presentation.png
new file mode 100644
index 000000000000..14582d2fa33d
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_presentation.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_runmacro.png b/icon-themes/breeze_dark/cmd/sc_runmacro.png
new file mode 100644
index 000000000000..4d94a97f5c5a
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_runmacro.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_sendfeedback.png b/icon-themes/breeze_dark/cmd/sc_sendfeedback.png
new file mode 100644
index 000000000000..7a6793b527fb
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_sendfeedback.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_setborderstyle.png b/icon-themes/breeze_dark/cmd/sc_setborderstyle.png
new file mode 100644
index 000000000000..e9aa9a14a3ee
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_setborderstyle.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_showallnotes.png b/icon-themes/breeze_dark/cmd/sc_showallnotes.png
new file mode 100644
index 000000000000..7d5246b5c8ce
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_showallnotes.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_shownote.png b/icon-themes/breeze_dark/cmd/sc_shownote.png
new file mode 100644
index 000000000000..4ce6a4ff5d4e
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_shownote.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_textattributes.png b/icon-themes/breeze_dark/cmd/sc_textattributes.png
new file mode 100644
index 000000000000..b68c7c76ac61
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_textattributes.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_toolsmacroedit.png b/icon-themes/breeze_dark/cmd/sc_toolsmacroedit.png
new file mode 100644
index 000000000000..706b02fffbc5
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_toolsmacroedit.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_viewrowcolumnheaders.png b/icon-themes/breeze_dark/cmd/sc_viewrowcolumnheaders.png
new file mode 100644
index 000000000000..49fcd4e8e0af
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_viewrowcolumnheaders.png differ
diff --git a/icon-themes/breeze_dark/cmd/sc_wordcountdialog.png b/icon-themes/breeze_dark/cmd/sc_wordcountdialog.png
new file mode 100644
index 000000000000..7aef454119d9
Binary files /dev/null and b/icon-themes/breeze_dark/cmd/sc_wordcountdialog.png differ
diff --git a/icon-themes/breeze_dark/sw/res/sidebar/pageproppanel/format_L_copy_24x24.png b/icon-themes/breeze_dark/sw/res/sidebar/pageproppanel/format_L_copy_24x24.png
new file mode 100644
index 000000000000..aa61cbc24a56
Binary files /dev/null and b/icon-themes/breeze_dark/sw/res/sidebar/pageproppanel/format_L_copy_24x24.png differ
commit bf50d32a09c39631363181f6c11c93c340504cd4
Author: Serge Krot <Serge.Krot at cib.de>
AuthorDate: Mon Mar 11 10:24:53 2019 +0100
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Wed Mar 20 10:42:03 2019 +0100
tdf#120161 sc: pdf export unit test
Change-Id: I42579d4d61be43318f7e2b06b3465890dd624a12
Reviewed-on: https://gerrit.libreoffice.org/69035
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
(cherry picked from commit 87bf5a930a72a12f88a21b450da0dd86348c3077)
Reviewed-on: https://gerrit.libreoffice.org/69411
diff --git a/sc/CppunitTest_sc_pdf_export.mk b/sc/CppunitTest_sc_pdf_export.mk
new file mode 100644
index 000000000000..be938026323c
--- /dev/null
+++ b/sc/CppunitTest_sc_pdf_export.mk
@@ -0,0 +1,97 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_CppunitTest_CppunitTest,sc_pdf_export))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,sc_pdf_export, \
+ sc/qa/extras/scpdfexport \
+))
+
+$(eval $(call gb_CppunitTest_use_externals,sc_pdf_export, \
+ boost_headers \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,sc_pdf_export, \
+ comphelper \
+ cppu \
+ editeng \
+ sal \
+ sax \
+ sc \
+ sfx \
+ svl \
+ test \
+ tl \
+ unotest \
+ utl \
+))
+
+$(eval $(call gb_CppunitTest_set_include,sc_pdf_export,\
+ -I$(SRCDIR)/sc/source/ui/inc \
+ -I$(SRCDIR)/sc/inc \
+ $$(INCLUDE) \
+))
+
+$(eval $(call gb_CppunitTest_use_api,sc_pdf_export,\
+ udkapi \
+ offapi \
+))
+
+$(eval $(call gb_CppunitTest_use_ure,sc_pdf_export))
+$(eval $(call gb_CppunitTest_use_vcl,sc_pdf_export))
+
+$(eval $(call gb_CppunitTest_use_components,sc_pdf_export,\
+ basic/util/sb \
+ comphelper/util/comphelp \
+ configmgr/source/configmgr \
+ dbaccess/util/dba \
+ eventattacher/source/evtatt \
+ filter/source/config/cache/filterconfig1 \
+ filter/source/pdf/pdffilter \
+ filter/source/storagefilterdetect/storagefd \
+ forms/util/frm \
+ framework/util/fwk \
+ i18npool/source/search/i18nsearch \
+ i18npool/util/i18npool \
+ linguistic/source/lng \
+ oox/util/oox \
+ package/source/xstor/xstor \
+ package/util/package2 \
+ sax/source/expatwrap/expwrap \
+ scripting/source/basprov/basprov \
+ scripting/source/dlgprov/dlgprov \
+ scripting/source/vbaevents/vbaevents \
+ scripting/util/scriptframe \
+ sc/util/sc \
+ sc/util/scd \
+ sc/util/scfilt \
+ $(call gb_Helper_optional,SCRIPTING, \
+ sc/util/vbaobj) \
+ sfx2/util/sfx \
+ sot/util/sot \
+ svl/source/fsstor/fsstorage \
+ svtools/util/svt \
+ svx/util/svx \
+ svx/util/svxcore \
+ toolkit/util/tk \
+ ucb/source/core/ucb1 \
+ ucb/source/ucp/file/ucpfile1 \
+ ucb/source/ucp/tdoc/ucptdoc1 \
+ unotools/util/utl \
+ unoxml/source/rdf/unordf \
+ unoxml/source/service/unoxml \
+ uui/util/uui \
+ vcl/vcl.common \
+ vbahelper/util/msforms \
+ xmloff/util/xo \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,sc_pdf_export))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sc/Module_sc.mk b/sc/Module_sc.mk
index 153f84093b28..ab1be6bc4734 100644
--- a/sc/Module_sc.mk
+++ b/sc/Module_sc.mk
@@ -61,6 +61,7 @@ endif
$(eval $(call gb_Module_add_slowcheck_targets,sc, \
CppunitTest_sc_cond_format_merge \
CppunitTest_sc_new_cond_format_api \
+ CppunitTest_sc_pdf_export \
CppunitTest_sc_subsequent_filters_test \
CppunitTest_sc_subsequent_export_test \
CppunitTest_sc_html_export_test \
diff --git a/sc/qa/extras/scpdfexport.cxx b/sc/qa/extras/scpdfexport.cxx
new file mode 100644
index 000000000000..02f00f8fac5d
--- /dev/null
+++ b/sc/qa/extras/scpdfexport.cxx
@@ -0,0 +1,284 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <sal/config.h>
+
+#include <com/sun/star/frame/Desktop.hpp>
+#include <com/sun/star/frame/XStorable.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/sheet/XSpreadsheet.hpp>
+#include <com/sun/star/table/XCellRange.hpp>
+#include <com/sun/star/util/URL.hpp>
+#include <test/bootstrapfixture.hxx>
+#include <unotools/tempfile.hxx>
+#include <unotest/macros_test.hxx>
+#include <docsh.hxx>
+#include <editutil.hxx>
+#include <editeng/eeitem.hxx>
+#include <editeng/editobj.hxx>
+#include <editeng/fontitem.hxx>
+#include <osl/file.hxx>
+#include <comphelper/processfactory.hxx>
+
+using namespace css::lang;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+
+class ScPDFExportTest : public test::BootstrapFixture, public unotest::MacrosTest
+{
+ Reference<XComponent> mxComponent;
+ Reference<frame::XFrame> xTargetFrame;
+
+public:
+ ScPDFExportTest() {}
+
+ virtual void setUp() override final;
+ virtual void tearDown() override final;
+
+ // helpers
+private:
+ std::shared_ptr<utl::TempFile> exportToPdf(uno::Reference<frame::XModel>& xModel,
+ const ScRange& range);
+
+ static bool hasFontInPdf(const std::shared_ptr<utl::TempFile>& pXPathFile,
+ const char* sFontName, bool& bFound);
+
+ void setFont(ScFieldEditEngine& rEE, sal_Int32 nStart, sal_Int32 nEnd,
+ const OUString& rFontName);
+
+ // unit tests
+public:
+ void testExportRange_Tdf120161();
+
+ CPPUNIT_TEST_SUITE(ScPDFExportTest);
+ CPPUNIT_TEST(testExportRange_Tdf120161);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+void ScPDFExportTest::setUp()
+{
+ test::BootstrapFixture::setUp();
+
+ mxDesktop.set(
+ css::frame::Desktop::create(comphelper::getComponentContext(getMultiServiceFactory())));
+
+ {
+ uno::Reference<frame::XDesktop2> xDesktop = mxDesktop;
+ CPPUNIT_ASSERT(xDesktop.is());
+
+ // Create spreadsheet
+ uno::Sequence<beans::PropertyValue> args(1);
+ args[0].Name = "Hidden";
+ args[0].Value <<= true;
+ mxComponent = xDesktop->loadComponentFromURL("private:factory/scalc", "_blank", 0, args);
+ CPPUNIT_ASSERT(mxComponent.is());
+
+ // create a frame
+ xTargetFrame = xDesktop->findFrame("_blank", 0);
+ CPPUNIT_ASSERT(xTargetFrame.is());
+
+ uno::Reference<frame::XModel> xModel
+ = uno::Reference<frame::XModel>(mxComponent, uno::UNO_QUERY);
+ uno::Reference<frame::XModel2> xModel2(xModel, UNO_QUERY);
+ CPPUNIT_ASSERT(xModel2.is());
+
+ Reference<frame::XController2> xController(
+ xModel2->createDefaultViewController(xTargetFrame), UNO_QUERY);
+ CPPUNIT_ASSERT(xController.is());
+
+ // introduce model/view/controller to each other
+ xController->attachModel(xModel2.get());
+ xModel2->connectController(xController.get());
+
+ xTargetFrame->setComponent(xController->getComponentWindow(), xController.get());
+ xController->attachFrame(xTargetFrame);
+
+ xModel2->setCurrentController(xController.get());
+ }
+}
+
+void ScPDFExportTest::tearDown()
+{
+ if (mxComponent.is())
+ mxComponent->dispose();
+
+ test::BootstrapFixture::tearDown();
+}
+
+bool ScPDFExportTest::hasFontInPdf(const std::shared_ptr<utl::TempFile>& pXPathFile,
+ const char* sFontName, bool& bFound)
+{
+ SvStream* pStream = pXPathFile->GetStream(StreamMode::STD_READ);
+ CPPUNIT_ASSERT(pStream);
+
+ // get file size
+ pStream->Seek(STREAM_SEEK_TO_END);
+ const std::size_t nFileSize = pStream->Tell();
+ if (nFileSize == 0)
+ return false;
+
+ // read file content
+ char* pBuffer = new char[nFileSize];
+ pStream->Seek(STREAM_SEEK_TO_BEGIN);
+ const std::size_t nRead = pStream->ReadBytes(pBuffer, nFileSize);
+ if (nRead == nFileSize)
+ {
+ const std::string haystack(pBuffer, pBuffer + nFileSize);
+ const std::string needle(sFontName);
+ const std::size_t n = haystack.find(needle);
+ bFound = (n != std::string::npos);
+ }
+ delete[] pBuffer;
+
+ // close and return the status
+ pStream = nullptr;
+ pXPathFile->CloseStream();
+ return (nRead == nFileSize);
+}
+
+std::shared_ptr<utl::TempFile> ScPDFExportTest::exportToPdf(uno::Reference<frame::XModel>& xModel,
+ const ScRange& range)
+{
+ // create temp file name
+ std::shared_ptr<utl::TempFile> pTempFile(new utl::TempFile());
+ pTempFile->EnableKillingFile();
+ OUString sFileURL = pTempFile->GetURL();
+ // Note: under Windows path path should be with "/" delimiters instead of "\\"
+ // due to usage of INetURLObject() that converts "\\" to hexdecimal notation.
+ ::osl::FileBase::getFileURLFromSystemPath(sFileURL, sFileURL);
+
+ // get XSpreadsheet
+ uno::Reference<sheet::XSpreadsheetDocument> xDoc(xModel, uno::UNO_QUERY_THROW);
+ uno::Reference<sheet::XSpreadsheets> xSheets(xDoc->getSheets(), UNO_QUERY_THROW);
+ uno::Reference<container::XIndexAccess> xIndex(xSheets, uno::UNO_QUERY_THROW);
+ uno::Reference<sheet::XSpreadsheet> rSheet(xIndex->getByIndex(0), UNO_QUERY_THROW);
+
+ // select requested cells to print
+ // query for the XCellRange interface
+ uno::Reference<table::XCellRange> rCellRange(rSheet, UNO_QUERY);
+ uno::Reference<table::XCellRange> xCellRange = rCellRange->getCellRangeByPosition(
+ range.aStart.Col(), range.aStart.Row(), range.aEnd.Col(), range.aEnd.Row());
+ {
+ uno::Reference<frame::XController> xController = xModel->getCurrentController();
+ CPPUNIT_ASSERT(xController.is());
+
+ uno::Reference<view::XSelectionSupplier> xSelection(xController, uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xSelection.is());
+
+ uno::Any rCellRangeAny(xCellRange);
+ xSelection->select(rCellRangeAny);
+ }
+
+ // init special pdf export params
+ css::uno::Sequence<css::beans::PropertyValue> aFilterData(3);
+ aFilterData[0].Name = "Selection";
+ aFilterData[0].Value <<= xCellRange;
+ aFilterData[1].Name = "Printing";
+ aFilterData[1].Value <<= sal_Int32(2);
+ aFilterData[2].Name = "ViewPDFAfterExport";
+ aFilterData[2].Value <<= true;
+
+ // init set of params for storeToURL() call
+ css::uno::Sequence<css::beans::PropertyValue> seqArguments(3);
+ seqArguments[0].Name = "FilterData";
+ seqArguments[0].Value <<= aFilterData;
+ seqArguments[1].Name = "FilterName";
+ seqArguments[1].Value <<= OUString("calc_pdf_Export");
+ seqArguments[2].Name = "URL";
+ seqArguments[2].Value <<= sFileURL;
+
+ // call storeToURL()
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list