compilerplugins/clang/singlevalfields.could-be-bool.results | 3 compilerplugins/clang/singlevalfields.results | 3 compilerplugins/clang/writeonlyvars.cxx | 2 desktop/source/lib/init.cxx | 2 dev/null |binary filter/Configuration_filter.mk | 2 filter/source/config/fragments/filters/draw_html_Export.xcu | 30 filter/source/config/fragments/filters/impress_html_Export.xcu | 30 icon-themes/colibre_dark_svg/sd/res/pubdes.svg | 1 icon-themes/colibre_dark_svg/sd/res/pubdes2.svg | 1 icon-themes/colibre_dark_svg/sd/res/pubdes3.svg | 1 icon-themes/colibre_dark_svg/sd/res/pubdes4.svg | 1 icon-themes/colibre_svg/sd/res/pubdes.svg | 1 icon-themes/colibre_svg/sd/res/pubdes2.svg | 1 icon-themes/colibre_svg/sd/res/pubdes3.svg | 1 icon-themes/colibre_svg/sd/res/pubdes4.svg | 1 officecfg/registry/data/org/openoffice/TypeDetection/UISort.xcu | 2 sd/Library_sd.mk | 3 sd/Library_sdui.mk | 1 sd/Module_sd.mk | 1 sd/Package_web.mk | 37 sd/UIConfig_simpress.mk | 1 sd/inc/sdabstdlg.hxx | 9 sd/inc/sdhtmlfilter.hxx | 34 sd/qa/unit/HtmlExportTest.cxx | 29 sd/qa/unit/data/dialogs-test.txt | 1 sd/qa/unit/dialogs-test.cxx | 99 sd/source/filter/html/HtmlOptionsDialog.cxx | 203 sd/source/filter/html/htmlex.cxx | 3176 ---------- sd/source/filter/html/htmlex.hxx | 237 sd/source/filter/html/pubdlg.cxx | 1461 ---- sd/source/filter/html/sdhtmlfilter.cxx | 49 sd/source/ui/dlg/sddlgfact.cxx | 27 sd/source/ui/dlg/sddlgfact.hxx | 19 sd/source/ui/docshell/docshel4.cxx | 7 sd/source/ui/inc/pubdlg.hxx | 205 sd/uiconfig/simpress/ui/publishingdialog.ui | 1831 ----- sd/util/sd.component | 4 solenv/bin/native-code.py | 1 solenv/clang-format/excludelist | 2 vcl/workben/cgmfuzzer.cxx | 2 41 files changed, 170 insertions(+), 7351 deletions(-)
New commits: commit 28b6480c6bdd179f3943f768926b7f196226c768 Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Fri Sep 22 20:54:05 2023 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Sat Sep 23 11:03:38 2023 +0200 tdf#105303: Drop html export wizard Done during the conference hackfest Change-Id: I765e6dc839a98038c4071c8444ce3db9293c8a6c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157173 Tested-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/compilerplugins/clang/singlevalfields.could-be-bool.results b/compilerplugins/clang/singlevalfields.could-be-bool.results index a724683a6b2f..9b2fdf51b0f5 100644 --- a/compilerplugins/clang/singlevalfields.could-be-bool.results +++ b/compilerplugins/clang/singlevalfields.could-be-bool.results @@ -181,9 +181,6 @@ sd/qa/unit/tiledrendering/tiledrendering.cxx:895 sd/source/filter/html/htmlex.hxx:142 HtmlExport meScript PublishingScript -sd/source/filter/html/HtmlOptionsDialog.cxx:54 - (anonymous namespace)::SdHtmlOptionsDialog meDocType - DocumentType sd/source/ui/slideshow/slideshowimpl.hxx:304 sd::SlideshowImpl meAnimationMode AnimationMode diff --git a/compilerplugins/clang/singlevalfields.results b/compilerplugins/clang/singlevalfields.results index f625c11ff833..f64d36563bf9 100644 --- a/compilerplugins/clang/singlevalfields.results +++ b/compilerplugins/clang/singlevalfields.results @@ -754,9 +754,6 @@ sd/source/filter/html/htmlex.hxx:117 sd/source/ui/inc/CustomAnimationPane.hxx:144 sd::CustomAnimationPane maIdle sd idle treeview select -sd/source/ui/inc/pubdlg.hxx:157 - SdPublishingDlg aAssistentFunc - 6 sd/source/ui/inc/View.hxx:271 sd::View maDropErrorIdle sd View DropError diff --git a/compilerplugins/clang/writeonlyvars.cxx b/compilerplugins/clang/writeonlyvars.cxx index 068d4058e09d..3fb3f769b72d 100644 --- a/compilerplugins/clang/writeonlyvars.cxx +++ b/compilerplugins/clang/writeonlyvars.cxx @@ -415,8 +415,6 @@ void WriteOnlyVars::run() return; if (loplugin::isSamePathname(fn, SRCDIR "/sd/source/filter/xml/sdxmlwrp.cxx")) return; - if (loplugin::isSamePathname(fn, SRCDIR "/sd/source/filter/html/pubdlg.cxx")) - return; if (loplugin::isSamePathname(fn, SRCDIR "/sw/source/core/txtnode/thints.cxx")) return; if (loplugin::isSamePathname(fn, SRCDIR "/sw/source/core/doc/docbm.cxx")) diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 434b65319776..777d1030d075 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -335,7 +335,6 @@ const ExtensionMap aCalcExtensionMap[] = const ExtensionMap aImpressExtensionMap[] = { { "fodp", "OpenDocument Presentation Flat XML" }, - { "html", "impress_html_Export" }, { "odg", "impress8_draw" }, { "odp", "impress8" }, { "otp", "impress8_template" }, @@ -355,7 +354,6 @@ const ExtensionMap aImpressExtensionMap[] = const ExtensionMap aDrawExtensionMap[] = { { "fodg", "draw_ODG_FlatXML" }, - { "html", "draw_html_Export" }, { "odg", "draw8" }, { "pdf", "draw_pdf_Export" }, { "svg", "draw_svg_Export" }, diff --git a/filter/Configuration_filter.mk b/filter/Configuration_filter.mk index bd3d3486234e..921189c4de25 100644 --- a/filter/Configuration_filter.mk +++ b/filter/Configuration_filter.mk @@ -764,7 +764,6 @@ $(eval $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_drawgraphics_f draw_emz_Export \ draw_eps_Export \ draw_gif_Export \ - draw_html_Export \ draw_jpg_Export \ draw_png_Export \ draw_svg_Export \ @@ -809,7 +808,6 @@ $(eval $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_impressgraphic impress_emf_Export \ impress_eps_Export \ impress_gif_Export \ - impress_html_Export \ impress_jpg_Export \ impress_png_Export \ impress_svg_Export \ diff --git a/filter/source/config/fragments/filters/draw_html_Export.xcu b/filter/source/config/fragments/filters/draw_html_Export.xcu deleted file mode 100644 index 179c7bb7edc0..000000000000 --- a/filter/source/config/fragments/filters/draw_html_Export.xcu +++ /dev/null @@ -1,30 +0,0 @@ -<!-- - * 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . ---> - <node oor:name="draw_html_Export" oor:op="replace"> - <prop oor:name="Flags"><value>EXPORT ALIEN</value></prop> - <prop oor:name="UIComponent"><value>com.sun.star.comp.draw.SdHtmlOptionsDialog</value></prop> - <prop oor:name="FilterService"/> - <prop oor:name="UserData"><value></value></prop> - <prop oor:name="FileFormatVersion"><value>0</value></prop> - <prop oor:name="Type"><value>graphic_HTML</value></prop> - <prop oor:name="TemplateName"/> - <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop> - <prop oor:name="UIName"> - <value xml:lang="en-US">HTML Document (Draw)</value> - </prop> - </node> diff --git a/filter/source/config/fragments/filters/impress_html_Export.xcu b/filter/source/config/fragments/filters/impress_html_Export.xcu deleted file mode 100644 index 65a5c5dadf78..000000000000 --- a/filter/source/config/fragments/filters/impress_html_Export.xcu +++ /dev/null @@ -1,30 +0,0 @@ -<!-- - * 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . ---> - <node oor:name="impress_html_Export" oor:op="replace"> - <prop oor:name="Flags"><value>EXPORT ALIEN</value></prop> - <prop oor:name="UIComponent"><value>com.sun.star.comp.draw.SdHtmlOptionsDialog</value></prop> - <prop oor:name="FilterService"/> - <prop oor:name="UserData"><value></value></prop> - <prop oor:name="FileFormatVersion"><value>0</value></prop> - <prop oor:name="Type"><value>graphic_HTML</value></prop> - <prop oor:name="TemplateName"/> - <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop> - <prop oor:name="UIName"> - <value xml:lang="en-US">HTML Document (Impress)</value> - </prop> - </node> diff --git a/icon-themes/colibre/sd/res/pubdes.png b/icon-themes/colibre/sd/res/pubdes.png deleted file mode 100644 index 82ded6f8b3af..000000000000 Binary files a/icon-themes/colibre/sd/res/pubdes.png and /dev/null differ diff --git a/icon-themes/colibre/sd/res/pubdes2.png b/icon-themes/colibre/sd/res/pubdes2.png deleted file mode 100644 index e797a25674b3..000000000000 Binary files a/icon-themes/colibre/sd/res/pubdes2.png and /dev/null differ diff --git a/icon-themes/colibre/sd/res/pubdes3.png b/icon-themes/colibre/sd/res/pubdes3.png deleted file mode 100644 index 4070e587bd4c..000000000000 Binary files a/icon-themes/colibre/sd/res/pubdes3.png and /dev/null differ diff --git a/icon-themes/colibre/sd/res/pubdes4.png b/icon-themes/colibre/sd/res/pubdes4.png deleted file mode 100644 index 9c0bbbfdc314..000000000000 Binary files a/icon-themes/colibre/sd/res/pubdes4.png and /dev/null differ diff --git a/icon-themes/colibre_dark/sd/res/pubdes.png b/icon-themes/colibre_dark/sd/res/pubdes.png deleted file mode 100644 index f414ab5a6e30..000000000000 Binary files a/icon-themes/colibre_dark/sd/res/pubdes.png and /dev/null differ diff --git a/icon-themes/colibre_dark/sd/res/pubdes2.png b/icon-themes/colibre_dark/sd/res/pubdes2.png deleted file mode 100644 index 8c25a49ddb08..000000000000 Binary files a/icon-themes/colibre_dark/sd/res/pubdes2.png and /dev/null differ diff --git a/icon-themes/colibre_dark/sd/res/pubdes3.png b/icon-themes/colibre_dark/sd/res/pubdes3.png deleted file mode 100644 index 096fea100332..000000000000 Binary files a/icon-themes/colibre_dark/sd/res/pubdes3.png and /dev/null differ diff --git a/icon-themes/colibre_dark/sd/res/pubdes4.png b/icon-themes/colibre_dark/sd/res/pubdes4.png deleted file mode 100644 index 7a10ff30c3ff..000000000000 Binary files a/icon-themes/colibre_dark/sd/res/pubdes4.png and /dev/null differ diff --git a/icon-themes/colibre_dark_svg/sd/res/pubdes.svg b/icon-themes/colibre_dark_svg/sd/res/pubdes.svg deleted file mode 100644 index 5409042ad4a1..000000000000 --- a/icon-themes/colibre_dark_svg/sd/res/pubdes.svg +++ /dev/null @@ -1 +0,0 @@ -<svg height="90" viewBox="0 0 120 90" width="120" xmlns="http://www.w3.org/2000/svg"><path d="m0 0v90h120v-90zm1 1h118v88h-118z" fill="#fafafa"/><path d="m96.677272 72.302699a29 29 0 0 1 -40.367852-.98276 29 29 0 0 1 -.252993-40.37902 29 29 0 0 1 40.352367-1.488511l-19.408794 21.547592z" fill="#83beec"/><path d="m-104.51468 71.169352a29 29 0 0 1 -8.14279-21.241041 29 29 0 0 1 9.6894-20.581606l19.290793 21.653295z" fill="#a1ddaa" transform="scale(-1 1)"/><path d="m0 0h12v90h-12z" fill="#fafafa"/><path d="m0 0 112-.0000001-8 12.0000001h-103.99999983z" fill="#83beec"/><g fill="#fafafa"><path d="m26 26h22v2h-22z"/><path d="m26 33h18v2h-18z"/><path d="m26 40h15v2h-15z"/><path d="m26 48h13v2h-13z"/><path d="m26 56h15v2h-15z"/><path d="m26 64h18v2h-18z"/><path d="m26 72h20v2h-20z"/></g><g fill="#fb983b"><path d="m22 26h2v2h-2z"/><path d="m22 33h2v2h-2z"/><path d="m22 40h2v2h-2z"/><path d="m22 48h2v2h-2z"/><path d="m22 56h2v2h-2z"/><path d="m22 64h2v2h-2z"/><path d="m22 72h2v2h-2z"/></g></s vg> \ No newline at end of file diff --git a/icon-themes/colibre_dark_svg/sd/res/pubdes2.svg b/icon-themes/colibre_dark_svg/sd/res/pubdes2.svg deleted file mode 100644 index fc7c230b3b8d..000000000000 --- a/icon-themes/colibre_dark_svg/sd/res/pubdes2.svg +++ /dev/null @@ -1 +0,0 @@ -<svg height="90" viewBox="0 0 120 90" width="120" xmlns="http://www.w3.org/2000/svg"><path d="m0 0v90h120v-90zm1 1h118v88h-118z" fill="#fafafa"/><path d="m88.677272 72.302699a29 29 0 0 1 -40.367852-.98276 29 29 0 0 1 -.252993-40.37902 29 29 0 0 1 40.352367-1.488511l-19.408794 21.547592z" fill="#83beec"/><path d="m-96.514676 71.169352a29 29 0 0 1 -8.142794-21.241041 29 29 0 0 1 9.689397-20.581606l19.290796 21.653295z" fill="#a1ddaa" transform="scale(-1 1)"/><path d="m24 0h2v90h-2z" fill="#c8c6c4"/><path d="m26 0 86-.0000001-8 12.0000001h-78z" fill="#83beec"/><g fill="#fafafa"><path d="m8 24h12v2h-12z"/><path d="m8 31h12v2h-12z"/><path d="m8 38h12v2h-12z"/><path d="m8 46h12v2h-12z"/><path d="m8 54h12v2h-12z"/><path d="m8 62h12v2h-12z"/><path d="m8 70h12v2h-12z"/></g><g fill="#fb983b"><path d="m4 24h2v2h-2z"/><path d="m4 31h2v2h-2z"/><path d="m4 38h2v2h-2z"/><path d="m4 46h2v2h-2z"/><path d="m4 54h2v2h-2z"/><path d="m4 62h2v2h-2z"/><path d="m4 70h2v2h-2z"/></g><path d="m12-120h2v120h-2 z" fill="#c8c6c4" transform="rotate(90)"/></svg> \ No newline at end of file diff --git a/icon-themes/colibre_dark_svg/sd/res/pubdes3.svg b/icon-themes/colibre_dark_svg/sd/res/pubdes3.svg deleted file mode 100644 index bd21496c11b5..000000000000 --- a/icon-themes/colibre_dark_svg/sd/res/pubdes3.svg +++ /dev/null @@ -1 +0,0 @@ -<svg height="90" viewBox="0 0 120 90" width="120" xmlns="http://www.w3.org/2000/svg"><path d="m44 75-6 9v4h44v-4l-6-9h-15-2zm1.5 2h13.5 2 13.5l4.5 7h-38z" fill="#fafafa"/><path d="m15 4v58h90v-58zm1 1h88v55.900391h-88z" fill="#fafafa"/><path d="m83.46496 46.296637a14.008686 14.008686 0 0 1 -19.500019-.47473 14.008686 14.008686 0 0 1 -.122211-19.505414 14.008686 14.008686 0 0 1 19.49254-.719037l-9.375576 10.408739z" fill="#83beec"/><path d="m-87.250887 45.749165a14.008686 14.008686 0 0 1 -3.933441-10.260658 14.008686 14.008686 0 0 1 4.680541-9.942112l9.318576 10.4598z" fill="#a1ddaa" transform="scale(-1 1)"/><path d="m15 4h12v58h-12z" fill="#fafafa"/><path d="m16 5 80.769231-.0000001-5.769231 10.0000001h-75z" fill="#83beec"/><g fill="#fafafa"><path d="m34 20h18v2h-18z"/><path d="m34 27h15v2h-15z"/><path d="m34 35h13v2h-13z"/><path d="m34 43h15v2h-15z"/><path d="m34 51h18v2h-18z"/></g><g fill="#fb983b"><path d="m30 20h2v2h-2z"/><path d="m30 27h2v2h-2z"/><path d="m30 35h2v2h-2z"/><path d="m30 43h2v2h-2z"/><path d="m30 51h2v2h-2z"/></g><g fill="#fafafa"><path d="m8 0h104v4h-104z"/><path d="m55 62h10v18h-10z"/></g></svg> \ No newline at end of file diff --git a/icon-themes/colibre_dark_svg/sd/res/pubdes4.svg b/icon-themes/colibre_dark_svg/sd/res/pubdes4.svg deleted file mode 100644 index 049dbfda8354..000000000000 --- a/icon-themes/colibre_dark_svg/sd/res/pubdes4.svg +++ /dev/null @@ -1 +0,0 @@ -<svg height="90" viewBox="0 0 120 90" width="120" xmlns="http://www.w3.org/2000/svg"><path d="m44 75-6 9v4h44v-2.535156a21 21 0 0 1 -7.107422-10.464844h-13.892578-2zm1.5 2h13.5 2 13.5l4.5 7h-38z" fill="#fafafa"/><path d="m15 4v58h60.228516a21 21 0 0 1 .759765-1.849609 21 21 0 0 0 -.359375.75h-59.628906v-55.900391h88v45.054688a21 21 0 0 1 1 .482421v-46.537109zm79.068359 44.035156a21 21 0 0 0 -1.259765.101563 21 21 0 0 1 1.259765-.101563zm-2.191406.21875a21 21 0 0 0 -1.167969.212891 21 21 0 0 1 1.167969-.212891zm-2.037109.41211a21 21 0 0 0 -1.191406.34375 21 21 0 0 1 1.191406-.34375zm-1.972656.607422a21 21 0 0 0 -1.248047.5 21 21 0 0 1 1.248047-.5zm-1.876954.785156a21 21 0 0 0 -1.304687.679687 21 21 0 0 1 1.304687-.679687zm-1.808593.972656a21 21 0 0 0 -1.298829.851562 21 21 0 0 1 1.298829-.851562zm-1.72461 1.158203a21 21 0 0 0 -1.259765 1.023438 21 21 0 0 1 1.259765-1.023438zm-1.580078 1.304688a21 21 0 0 0 -1.210937 1.201171 21 21 0 0 1 1.210937-1.201171zm-1.466797 1.478515a21 21 0 0 0 -1.107422 1.341797 21 21 0 0 1 1.107422-1.341797zm-1.310547 1.609375a21 21 0 0 0 -1.007812 1.509766 21 21 0 0 1 1.007812-1.509766zm-1.136718 1.720703a21 21 0 0 0 -.876953 1.644532 21 21 0 0 1 .876953-1.644532z" fill="#fafafa"/><path d="m83.46496 46.296637a14.008686 14.008686 0 0 1 -19.500019-.47473 14.008686 14.008686 0 0 1 -.122211-19.505414 14.008686 14.008686 0 0 1 19.49254-.719037l-9.375576 10.408739z" fill="#83beec"/><path d="m-87.250887 45.749165a14.008686 14.008686 0 0 1 -3.933441-10.260658 14.008686 14.008686 0 0 1 4.680541-9.942112l9.318576 10.4598z" fill="#a1ddaa" transform="scale(-1 1)"/><path d="m15 4h12v58h-12z" fill="#fafafa"/><path d="m16 5 80.769231-.0000001-5.769231 10.0000001h-75z" fill="#83beec"/><g fill="#fafafa"><path d="m34 20h18v2h-18z"/><path d="m34 27h15v2h-15z"/><path d="m34 35h13v2h-13z"/><path d="m34 43h15v2h-15z"/><path d="m34 51h18v2h-18z"/></g><g fill="#fb983b"><path d="m30 20h2v2h-2z"/><path d="m30 27h2v2h-2z"/><path d="m30 35h2v2h-2z"/><path d="m30 43h2v2h-2z"/><path d="m30 51h2v2h-2z"/></g><path d="m8 0h104v4h-104z" fill="#fafafa"/><path d="m55 62h10v18h-10z" fill="#fafafa"/><g fill="#1e8bcd" transform="translate(1)"><path d="m75 68h38v2h-38z"/><path d="m94 50a19 19 0 0 0 -19 19 19 19 0 0 0 19 19 19 19 0 0 0 19-19 19 19 0 0 0 -19-19zm0 2a17 17 0 0 1 17 17 17 17 0 0 1 -17 17 17 17 0 0 1 -17-17 17 17 0 0 1 17-17z"/><path d="m96.669922 50.208984a21 35 0 0 1 3.330078 18.791016 21 35 0 0 1 -3.316406 18.789062c.786522-.111465 1.556141-.269899 2.308594-.474609a23 37.214783 0 0 0 3.007812-18.314453 23 37.214783 0 0 0 -3.001953-18.314453c-.758554-.206615-1.534949-.364743-2.328125-.476563z"/><path d="m91.308594 50.212891c-.782333.11121-1.548264.267219-2.296875.470703a23 37.214783 0 0 0 -3.011719 18.316406 23 37.214783 0 0 0 2.994141 18.3125c.747298.203892 1.51199.360733 2.292968.472656a21 35 0 0 1 -3.287109-18.785156 21 35 0 0 1 3.308594-18.787109z"/><path d="m109.3418 57.822266a35 21 0 0 1 -15.351566 2.167968 35 21 0 0 1 -15.33789-2. 160156c-.408054.559639-.788726 1.138598-1.134766 1.742188a37.214783 23 0 0 0 16.472656 2.417968 37.214783 23 0 0 0 16.490236-2.419922c-.34731-.605596-.72894-1.186715-1.13867-1.748046z"/><path d="m94 77a37.214783 23 0 0 0 -15.976562 2.259766c.383264.595532.790821 1.173258 1.236328 1.720703a35 21 0 0 1 14.740234-1.980469 35 21 0 0 1 14.74023 1.980469c.44699-.549257.85592-1.128908 1.24024-1.726563a37.214783 23 0 0 0 -15.98047-2.253906z"/></g></svg> \ No newline at end of file diff --git a/icon-themes/colibre_svg/sd/res/pubdes.svg b/icon-themes/colibre_svg/sd/res/pubdes.svg deleted file mode 100644 index 691c3ee9f310..000000000000 --- a/icon-themes/colibre_svg/sd/res/pubdes.svg +++ /dev/null @@ -1 +0,0 @@ -<svg height="90" viewBox="0 0 120 90" width="120" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h120v90h-120z" fill="#3a3a38"/><path d="m1 1h118v88h-118z" fill="#fafafa"/><path d="m96.677272 72.302699a29 29 0 0 1 -40.367852-.98276 29 29 0 0 1 -.252993-40.37902 29 29 0 0 1 40.352367-1.488511l-19.408794 21.547592z" fill="#0063b1"/><path d="m-104.51468 71.169352a29 29 0 0 1 -8.14279-21.241041 29 29 0 0 1 9.6894-20.581606l19.290793 21.653295z" fill="#309048" transform="scale(-1 1)"/><path d="m0 0h12v90h-12z" fill="#3a3a38"/><path d="m0 0 112-.0000001-8 12.0000001h-103.99999983z" fill="#0063b1"/><g fill="#3a3a38"><path d="m26 26h22v2h-22z"/><path d="m26 33h18v2h-18z"/><path d="m26 40h15v2h-15z"/><path d="m26 48h13v2h-13z"/><path d="m26 56h15v2h-15z"/><path d="m26 64h18v2h-18z"/><path d="m26 72h20v2h-20z"/></g><path d="m22 26h2v2h-2z" fill="#fb983b"/><path d="m22 33h2v2h-2z" fill="#fb983b"/><path d="m22 40h2v2h-2z" fill="#fb983b"/><path d="m22 48h2v2h-2z" fill="#fb983b"/><path d="m22 56 h2v2h-2z" fill="#fb983b"/><path d="m22 64h2v2h-2z" fill="#fb983b"/><path d="m22 72h2v2h-2z" fill="#fb983b"/></svg> \ No newline at end of file diff --git a/icon-themes/colibre_svg/sd/res/pubdes2.svg b/icon-themes/colibre_svg/sd/res/pubdes2.svg deleted file mode 100644 index 8f1c9861a264..000000000000 --- a/icon-themes/colibre_svg/sd/res/pubdes2.svg +++ /dev/null @@ -1 +0,0 @@ -<svg height="90" viewBox="0 0 120 90" width="120" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h120v90h-120z" fill="#3a3a38"/><path d="m1 1h118v88h-118z" fill="#fafafa"/><path d="m88.677272 72.302699a29 29 0 0 1 -40.367852-.98276 29 29 0 0 1 -.252993-40.37902 29 29 0 0 1 40.352367-1.488511l-19.408794 21.547592z" fill="#0063b1"/><path d="m-96.514676 71.169352a29 29 0 0 1 -8.142794-21.241041 29 29 0 0 1 9.689397-20.581606l19.290796 21.653295z" fill="#309048" transform="scale(-1 1)"/><path d="m24 0h2v90h-2z" fill="#797774"/><path d="m26 0 86-.0000001-8 12.0000001h-78z" fill="#0063b1"/><g fill="#3a3a38"><path d="m8 24h12v2h-12z"/><path d="m8 31h12v2h-12z"/><path d="m8 38h12v2h-12z"/><path d="m8 46h12v2h-12z"/><path d="m8 54h12v2h-12z"/><path d="m8 62h12v2h-12z"/><path d="m8 70h12v2h-12z"/></g><path d="m4 24h2v2h-2z" fill="#fb983b"/><path d="m4 31h2v2h-2z" fill="#fb983b"/><path d="m4 38h2v2h-2z" fill="#fb983b"/><path d="m4 46h2v2h-2z" fill="#fb983b"/><path d="m4 54h2v2h-2z" fill="#fb9 83b"/><path d="m4 62h2v2h-2z" fill="#fb983b"/><path d="m4 70h2v2h-2z" fill="#fb983b"/><path d="m12-120h2v120h-2z" fill="#797774" transform="rotate(90)"/></svg> \ No newline at end of file diff --git a/icon-themes/colibre_svg/sd/res/pubdes3.svg b/icon-themes/colibre_svg/sd/res/pubdes3.svg deleted file mode 100644 index 169f09d240f4..000000000000 --- a/icon-themes/colibre_svg/sd/res/pubdes3.svg +++ /dev/null @@ -1 +0,0 @@ -<svg height="90" viewBox="0 0 120 90" width="120" xmlns="http://www.w3.org/2000/svg"><path d="m44 75-6 9v4h44v-4l-6-9h-15-2zm1.5 2h13.5 2 13.5l4.5 7h-38z" fill="#3a3a38"/><path d="m15 4h90v58h-90z" fill="#3a3a38"/><path d="m16 5h88v55.900562h-88z" fill="#fafafa"/><path d="m83.46496 46.296637a14.008686 14.008686 0 0 1 -19.500019-.47473 14.008686 14.008686 0 0 1 -.122211-19.505414 14.008686 14.008686 0 0 1 19.49254-.719037l-9.375576 10.408739z" fill="#0063b1"/><path d="m-87.250887 45.749165a14.008686 14.008686 0 0 1 -3.933441-10.260658 14.008686 14.008686 0 0 1 4.680541-9.942112l9.318576 10.4598z" fill="#309048" transform="scale(-1 1)"/><path d="m15 4h12v58h-12z" fill="#3a3a38"/><path d="m16 5 80.769231-.0000001-5.769231 10.0000001h-75z" fill="#0063b1"/><g fill="#3a3a38"><path d="m34 20h18v2h-18z"/><path d="m34 27h15v2h-15z"/><path d="m34 35h13v2h-13z"/><path d="m34 43h15v2h-15z"/><path d="m34 51h18v2h-18z"/></g><path d="m30 20h2v2h-2z" fill="#fb983b"/><path d="m30 27h2v2h-2z" fill="# fb983b"/><path d="m30 35h2v2h-2z" fill="#fb983b"/><path d="m30 43h2v2h-2z" fill="#fb983b"/><path d="m30 51h2v2h-2z" fill="#fb983b"/><path d="m8 0h104v4h-104z" fill="#3a3a38"/><path d="m45.5 77-4.5 7h38l-4.5-7h-13.5-2z" fill="#fafafa"/><path d="m55 62h10v18h-10z" fill="#3a3a38"/></svg> \ No newline at end of file diff --git a/icon-themes/colibre_svg/sd/res/pubdes4.svg b/icon-themes/colibre_svg/sd/res/pubdes4.svg deleted file mode 100644 index 670d3d66761c..000000000000 --- a/icon-themes/colibre_svg/sd/res/pubdes4.svg +++ /dev/null @@ -1 +0,0 @@ -<svg height="90" viewBox="0 0 120 90" width="120" xmlns="http://www.w3.org/2000/svg"><path d="m44 75-6 9v4h44v-2.535156a21 21 0 0 1 -7.107422-10.464844h-13.892578-2zm1.5 2h13.5 2 13.5l4.5 7h-38z" fill="#3a3a38"/><path d="m15 4v58h60.228516a21 21 0 0 1 19.771484-14 21 21 0 0 1 10 2.537109v-46.537109z" fill="#3a3a38"/><path d="m16 5v55.900391h59.628906a21 21 0 0 1 19.371094-12.900391 21 21 0 0 1 9 2.054688v-45.054688z" fill="#fafafa"/><path d="m83.46496 46.296637a14.008686 14.008686 0 0 1 -19.500019-.47473 14.008686 14.008686 0 0 1 -.122211-19.505414 14.008686 14.008686 0 0 1 19.49254-.719037l-9.375576 10.408739z" fill="#0063b1"/><path d="m-87.250887 45.749165a14.008686 14.008686 0 0 1 -3.933441-10.260658 14.008686 14.008686 0 0 1 4.680541-9.942112l9.318576 10.4598z" fill="#309048" transform="scale(-1 1)"/><path d="m15 4h12v58h-12z" fill="#3a3a38"/><path d="m16 5 80.769231-.0000001-5.769231 10.0000001h-75z" fill="#0063b1"/><g fill="#3a3a38"><path d="m34 20h18v2h-18z"/><path d="m34 27h 15v2h-15z"/><path d="m34 35h13v2h-13z"/><path d="m34 43h15v2h-15z"/><path d="m34 51h18v2h-18z"/></g><path d="m30 20h2v2h-2z" fill="#fb983b"/><path d="m30 27h2v2h-2z" fill="#fb983b"/><path d="m30 35h2v2h-2z" fill="#fb983b"/><path d="m30 43h2v2h-2z" fill="#fb983b"/><path d="m30 51h2v2h-2z" fill="#fb983b"/><path d="m8 0h104v4h-104z" fill="#3a3a38"/><path d="m45.5 77-4.5 7h38l-4.5-7h-13.5-2z" fill="#fafafa"/><path d="m55 62h10v18h-10z" fill="#3a3a38"/><g transform="translate(1)"><path d="m111 69a17 17 0 0 1 -17 17 17 17 0 0 1 -17-17 17 17 0 0 1 17-17 17 17 0 0 1 17 17z" fill="#fafafa"/><g fill="#1e8bcd"><path d="m75 68h38v2h-38z"/><path d="m94 50a19 19 0 0 0 -19 19 19 19 0 0 0 19 19 19 19 0 0 0 19-19 19 19 0 0 0 -19-19zm0 2a17 17 0 0 1 17 17 17 17 0 0 1 -17 17 17 17 0 0 1 -17-17 17 17 0 0 1 17-17z"/><path d="m96.669922 50.208984a21 35 0 0 1 3.330078 18.791016 21 35 0 0 1 -3.316406 18.789062c.786522-.111465 1.556141-.269899 2.308594-.474609a23 37.214783 0 0 0 3.007812-18.314453 23 37.214 783 0 0 0 -3.001953-18.314453c-.758554-.206615-1.534949-.364743-2.328125-.476563z"/><path d="m91.308594 50.212891c-.782333.11121-1.548264.267219-2.296875.470703a23 37.214783 0 0 0 -3.011719 18.316406 23 37.214783 0 0 0 2.994141 18.3125c.747298.203892 1.51199.360733 2.292968.472656a21 35 0 0 1 -3.287109-18.785156 21 35 0 0 1 3.308594-18.787109z"/><path d="m109.3418 57.822266a35 21 0 0 1 -15.351566 2.167968 35 21 0 0 1 -15.33789-2.160156c-.408054.559639-.788726 1.138598-1.134766 1.742188a37.214783 23 0 0 0 16.472656 2.417968 37.214783 23 0 0 0 16.490236-2.419922c-.34731-.605596-.72894-1.186715-1.13867-1.748046z"/><path d="m94 77a37.214783 23 0 0 0 -15.976562 2.259766c.383264.595532.790821 1.173258 1.236328 1.720703a35 21 0 0 1 14.740234-1.980469 35 21 0 0 1 14.74023 1.980469c.44699-.549257.85592-1.128908 1.24024-1.726563a37.214783 23 0 0 0 -15.98047-2.253906z"/></g></g></svg> \ No newline at end of file diff --git a/icon-themes/karasa_jaga/sd/res/pubdes.png b/icon-themes/karasa_jaga/sd/res/pubdes.png deleted file mode 100644 index 7a37ca7e11e9..000000000000 Binary files a/icon-themes/karasa_jaga/sd/res/pubdes.png and /dev/null differ diff --git a/icon-themes/karasa_jaga/sd/res/pubdes2.png b/icon-themes/karasa_jaga/sd/res/pubdes2.png deleted file mode 100644 index c585fa8edc17..000000000000 Binary files a/icon-themes/karasa_jaga/sd/res/pubdes2.png and /dev/null differ diff --git a/icon-themes/karasa_jaga/sd/res/pubdes3.png b/icon-themes/karasa_jaga/sd/res/pubdes3.png deleted file mode 100644 index 964568383c88..000000000000 Binary files a/icon-themes/karasa_jaga/sd/res/pubdes3.png and /dev/null differ diff --git a/icon-themes/karasa_jaga/sd/res/pubdes4.png b/icon-themes/karasa_jaga/sd/res/pubdes4.png deleted file mode 100644 index f56ff35ecd39..000000000000 Binary files a/icon-themes/karasa_jaga/sd/res/pubdes4.png and /dev/null differ diff --git a/officecfg/registry/data/org/openoffice/TypeDetection/UISort.xcu b/officecfg/registry/data/org/openoffice/TypeDetection/UISort.xcu index 5dcce7b1e688..3dc6272ab7b2 100644 --- a/officecfg/registry/data/org/openoffice/TypeDetection/UISort.xcu +++ b/officecfg/registry/data/org/openoffice/TypeDetection/UISort.xcu @@ -26,7 +26,7 @@ </node> <node oor:name="com.sun.star.drawing.DrawingDocument" oor:op="replace" install:module="draw"> <prop oor:name="SortedFilterList"> - <value oor:separator=";">draw8;draw8_template;StarOffice XML (Draw);draw_StarOffice_XML_Draw_Template;OpenDocument Drawing Flat XML;draw_html_Export;draw_pdf_Export;draw_flash_Export;WordPerfect Graphics;DXF - AutoCAD Interchange;EMF - MS Windows Metafile;EPS - Encapsulated PostScript;MET - OS/2 Metafile;PCT - Mac Pict;SVM - StarView Metafile;WMF - MS Windows Metafile</value> + <value oor:separator=";">draw8;draw8_template;StarOffice XML (Draw);draw_StarOffice_XML_Draw_Template;OpenDocument Drawing Flat XML;draw_pdf_Export;draw_flash_Export;WordPerfect Graphics;DXF - AutoCAD Interchange;EMF - MS Windows Metafile;EPS - Encapsulated PostScript;MET - OS/2 Metafile;PCT - Mac Pict;SVM - StarView Metafile;WMF - MS Windows Metafile</value> </prop> </node> <node oor:name="com.sun.star.presentation.PresentationDocument" oor:op="replace" install:module="impress"> diff --git a/sd/Library_sd.mk b/sd/Library_sd.mk index 3d20e14f0ddd..e042b17edfb2 100644 --- a/sd/Library_sd.mk +++ b/sd/Library_sd.mk @@ -200,10 +200,7 @@ $(eval $(call gb_Library_add_exception_objects,sd,\ sd/source/filter/ppt/pptinanimations \ sd/source/filter/ppt/propread \ sd/source/filter/grf/sdgrffilter \ - sd/source/filter/html/HtmlOptionsDialog \ sd/source/filter/html/buttonset \ - sd/source/filter/html/htmlex \ - sd/source/filter/html/sdhtmlfilter \ sd/source/filter/pdf/sdpdffilter \ sd/source/filter/sdfilter \ sd/source/filter/sdpptwrp \ diff --git a/sd/Library_sdui.mk b/sd/Library_sdui.mk index 247942273104..a59d2eed9041 100644 --- a/sd/Library_sdui.mk +++ b/sd/Library_sdui.mk @@ -67,7 +67,6 @@ $(eval $(call gb_Library_use_libraries,sdui,\ $(eval $(call gb_Library_add_exception_objects,sdui,\ sd/source/filter/html/htmlattr \ - sd/source/filter/html/pubdlg \ sd/source/ui/dlg/brkdlg \ sd/source/ui/dlg/copydlg \ sd/source/ui/dlg/custsdlg \ diff --git a/sd/Module_sd.mk b/sd/Module_sd.mk index 766e5460c90a..9c3ec45adbfe 100644 --- a/sd/Module_sd.mk +++ b/sd/Module_sd.mk @@ -17,7 +17,6 @@ $(eval $(call gb_Module_add_targets,sd,\ Library_sdd \ Library_sdui \ Package_opengl \ - Package_web \ Package_xml \ UIConfig_sdraw \ UIConfig_simpress \ diff --git a/sd/Package_web.mk b/sd/Package_web.mk deleted file mode 100644 index 1c7c6b80a537..000000000000 --- a/sd/Package_web.mk +++ /dev/null @@ -1,37 +0,0 @@ -# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- -# -# This file is part of the LibreOffice project. -# -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# - -$(eval $(call gb_Package_Package,sd_web,$(SRCDIR)/sd/res)) - -$(eval $(call gb_Package_add_files,sd_web,$(LIBO_SHARE_FOLDER)/config/webcast,\ - webview/common.inc \ - webview/common.pl \ - webview/edit.asp \ - webview/editpic.asp \ - webview/editpic.pl \ - webview/edit.pl \ - webview/index.pl \ - webview/poll.asp \ - webview/poll.pl \ - webview/savepic.asp \ - webview/savepic.pl \ - webview/show.asp \ - webview/show.pl \ - webview/webcast.asp \ - webview/webcast.pl \ -)) - -$(eval $(call gb_Package_add_files,sd_web,$(LIBO_SHARE_FOLDER)/config/wizard/web/buttons,\ - buttons/elementary.zip \ - buttons/sukapura.zip \ - buttons/round-white.zip \ - buttons/simple.zip \ -)) - -# vim: set noet sw=4 ts=4: diff --git a/sd/UIConfig_simpress.mk b/sd/UIConfig_simpress.mk index ab6b2875e7bc..5bd443ca374d 100644 --- a/sd/UIConfig_simpress.mk +++ b/sd/UIConfig_simpress.mk @@ -158,7 +158,6 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/simpress,\ sd/uiconfig/simpress/ui/pmsummarypage \ sd/uiconfig/simpress/ui/presentationdialog \ sd/uiconfig/simpress/ui/prntopts \ - sd/uiconfig/simpress/ui/publishingdialog \ sd/uiconfig/simpress/ui/remotedialog \ sd/uiconfig/simpress/ui/rotatemenu \ sd/uiconfig/simpress/ui/scalemenu \ diff --git a/sd/inc/sdabstdlg.hxx b/sd/inc/sdabstdlg.hxx index 8dbdf363f320..594602af2589 100644 --- a/sd/inc/sdabstdlg.hxx +++ b/sd/inc/sdabstdlg.hxx @@ -147,14 +147,6 @@ public: virtual const GDIMetaFile& GetGDIMetaFile() const = 0; }; -class AbstractSdPublishingDlg : public VclAbstractDialog -{ -protected: - virtual ~AbstractSdPublishingDlg() override = default; -public: - virtual void GetParameterSequence( css::uno::Sequence< css::beans::PropertyValue >& rParams ) = 0; -}; - class AbstractHeaderFooterDialog : public VclAbstractDialog { protected: @@ -187,7 +179,6 @@ public: virtual VclPtr<SfxAbstractTabDialog> CreateSdTabTemplateDlg(weld::Window* pParent, const SfxObjectShell* pDocShell, SfxStyleSheetBase& rStyleBase, SdrModel* pModel, SdrView* pView) = 0; virtual VclPtr<SfxAbstractDialog> CreatSdActionDialog(weld::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView) = 0; virtual VclPtr<AbstractSdVectorizeDlg> CreateSdVectorizeDlg(weld::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell) = 0; - virtual VclPtr<AbstractSdPublishingDlg> CreateSdPublishingDlg(weld::Window* pWindow, DocumentType eDocType) = 0; virtual VclPtr<VclAbstractDialog> CreateMasterLayoutDialog(weld::Window* pParent, SdDrawDocument* pDoc, SdPage*) = 0; diff --git a/sd/inc/sdhtmlfilter.hxx b/sd/inc/sdhtmlfilter.hxx deleted file mode 100644 index 84b9c5d48e0f..000000000000 --- a/sd/inc/sdhtmlfilter.hxx +++ /dev/null @@ -1,34 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#pragma once - -#include "sdfilter.hxx" - -// SdHTMLFilter -class SdHTMLFilter final : public SdFilter -{ -public: - SdHTMLFilter(SfxMedium& rMedium, ::sd::DrawDocShell& rDocShell); - virtual ~SdHTMLFilter() override; - - virtual bool Export() override; -}; - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/qa/unit/HtmlExportTest.cxx b/sd/qa/unit/HtmlExportTest.cxx index 93c1a21339d1..be7884d51156 100644 --- a/sd/qa/unit/HtmlExportTest.cxx +++ b/sd/qa/unit/HtmlExportTest.cxx @@ -12,34 +12,14 @@ using namespace css; -class SdHTMLFilterTest : public UnoApiXmlTest, public HtmlTestTools +class SdXHTMLFilterTest : public UnoApiXmlTest, public HtmlTestTools { public: - SdHTMLFilterTest() + SdXHTMLFilterTest() : UnoApiXmlTest("/sd/qa/unit/data/") { } - void testHTMLExport() - { - loadFromURL(u"HtmlExportTestDocument.odp"); - save("impress_html_Export"); - htmlDocUniquePtr htmlDoc = parseHtml(maTempFile); - - assertXPath(htmlDoc, "/html", 1); - assertXPath(htmlDoc, "/html/body", 1); - assertXPath(htmlDoc, "/html/body/h1", 4); - assertXPath(htmlDoc, "/html/body/table", 1); - assertXPath(htmlDoc, "/html/body/table/tr", 5); - assertXPath(htmlDoc, "/html/body/ul", 1); - assertXPath(htmlDoc, "/html/body/ul/li", 2); - - assertXPath(htmlDoc, "/html/head/meta[1]", "content", "text/html; charset=utf-8"); - assertXPath(htmlDoc, "/html/head/meta[2]", "name", "generator"); - assertXPath(htmlDoc, "/html/head/meta[3]", "name", "created"); - assertXPath(htmlDoc, "/html/head/meta[3]", "content", "2014-04-09T17:05:41.987922038"); - } - void testTdf154989() { loadFromURL(u"tdf154989.odg"); @@ -63,13 +43,12 @@ public: pXmlDoc, "/xhtml:html/xhtml:body/xhtml:div[1]/xhtml:div[4]/xhtml:div/xhtml:p", "below"); } - CPPUNIT_TEST_SUITE(SdHTMLFilterTest); - CPPUNIT_TEST(testHTMLExport); + CPPUNIT_TEST_SUITE(SdXHTMLFilterTest); CPPUNIT_TEST(testTdf154989); CPPUNIT_TEST_SUITE_END(); }; -CPPUNIT_TEST_SUITE_REGISTRATION(SdHTMLFilterTest); +CPPUNIT_TEST_SUITE_REGISTRATION(SdXHTMLFilterTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sd/qa/unit/data/dialogs-test.txt b/sd/qa/unit/data/dialogs-test.txt index b3585b8e925a..33004038c71f 100644 --- a/sd/qa/unit/data/dialogs-test.txt +++ b/sd/qa/unit/data/dialogs-test.txt @@ -36,7 +36,6 @@ modules/sdraw/ui/drawparadialog.ui modules/sdraw/ui/drawprtldialog.ui modules/sdraw/ui/vectorize.ui -modules/simpress/ui/publishingdialog.ui modules/simpress/ui/customslideshows.ui modules/simpress/ui/dlgfield.ui modules/simpress/ui/presentationdialog.ui diff --git a/sd/qa/unit/dialogs-test.cxx b/sd/qa/unit/dialogs-test.cxx index 30cb95941b11..6cb34354b84c 100644 --- a/sd/qa/unit/dialogs-test.cxx +++ b/sd/qa/unit/dialogs-test.cxx @@ -209,29 +209,28 @@ const SfxItemSet& SdDialogsTest::getEmptyFillStyleSfxItemSet() void SdDialogsTest::registerKnownDialogsByID(mapType& rKnownDialogs) { // fill map of known dialogs - rKnownDialogs["modules/simpress/ui/publishingdialog.ui"] = 0; - rKnownDialogs["modules/sdraw/ui/breakdialog.ui"] = 1; - rKnownDialogs["modules/sdraw/ui/copydlg.ui"] = 2; - rKnownDialogs["modules/simpress/ui/customslideshows.ui"] = 3; - rKnownDialogs["modules/sdraw/ui/drawchardialog.ui"] = 4; - rKnownDialogs["modules/sdraw/ui/drawpagedialog.ui"] = 5; - rKnownDialogs["modules/simpress/ui/dlgfield.ui"] = 6; - rKnownDialogs["modules/sdraw/ui/dlgsnap.ui"] = 7; - rKnownDialogs["modules/sdraw/ui/insertlayer.ui"] = 8; - rKnownDialogs["modules/sdraw/ui/insertslidesdialog.ui"] = 9; - rKnownDialogs["modules/sdraw/ui/crossfadedialog.ui"] = 10; - rKnownDialogs["modules/sdraw/ui/bulletsandnumbering.ui"] = 11; - rKnownDialogs["modules/sdraw/ui/drawparadialog.ui"] = 12; - rKnownDialogs["modules/simpress/ui/presentationdialog.ui"] = 13; - rKnownDialogs["modules/simpress/ui/remotedialog.ui"] = 14; - rKnownDialogs["modules/sdraw/ui/drawprtldialog.ui"] = 15; - rKnownDialogs["modules/simpress/ui/slidedesigndialog.ui"] = 16; - rKnownDialogs["modules/simpress/ui/templatedialog.ui"] = 17; - rKnownDialogs["modules/simpress/ui/interactiondialog.ui"] = 18; - rKnownDialogs["modules/sdraw/ui/vectorize.ui"] = 19; - rKnownDialogs["modules/simpress/ui/photoalbum.ui"] = 20; - rKnownDialogs["modules/simpress/ui/masterlayoutdlg.ui"] = 21; - rKnownDialogs["modules/simpress/ui/headerfooterdialog.ui"] = 22; + rKnownDialogs["modules/sdraw/ui/breakdialog.ui"] = 0; + rKnownDialogs["modules/sdraw/ui/copydlg.ui"] = 1; + rKnownDialogs["modules/simpress/ui/customslideshows.ui"] = 2; + rKnownDialogs["modules/sdraw/ui/drawchardialog.ui"] = 3; + rKnownDialogs["modules/sdraw/ui/drawpagedialog.ui"] = 4; + rKnownDialogs["modules/simpress/ui/dlgfield.ui"] = 5; + rKnownDialogs["modules/sdraw/ui/dlgsnap.ui"] = 6; + rKnownDialogs["modules/sdraw/ui/insertlayer.ui"] = 7; + rKnownDialogs["modules/sdraw/ui/insertslidesdialog.ui"] = 8; + rKnownDialogs["modules/sdraw/ui/crossfadedialog.ui"] = 9; + rKnownDialogs["modules/sdraw/ui/bulletsandnumbering.ui"] = 10; + rKnownDialogs["modules/sdraw/ui/drawparadialog.ui"] = 11; + rKnownDialogs["modules/simpress/ui/presentationdialog.ui"] = 12; + rKnownDialogs["modules/simpress/ui/remotedialog.ui"] = 13; + rKnownDialogs["modules/sdraw/ui/drawprtldialog.ui"] = 14; + rKnownDialogs["modules/simpress/ui/slidedesigndialog.ui"] = 15; + rKnownDialogs["modules/simpress/ui/templatedialog.ui"] = 16; + rKnownDialogs["modules/simpress/ui/interactiondialog.ui"] = 17; + rKnownDialogs["modules/sdraw/ui/vectorize.ui"] = 18; + rKnownDialogs["modules/simpress/ui/photoalbum.ui"] = 19; + rKnownDialogs["modules/simpress/ui/masterlayoutdlg.ui"] = 20; + rKnownDialogs["modules/simpress/ui/headerfooterdialog.ui"] = 21; } VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) @@ -243,18 +242,6 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) switch (nID) { case 0: - { - // CreateSdPublishingDlg(vcl::Window* pWindow, DocumentType eDocType) override; - // this dialog does not need much, not even a SdDrawDocument. OTOH - // it is more a 'wizard' in that it has prev/next buttons and implicitly - // multiple pages. To make use of that it is necessary that the implementation - // supports the 'Screenshot interface' - pRetval = getSdAbstractDialogFactory()->CreateSdPublishingDlg( - Application::GetDefDialogParent(), - DocumentType::Impress); - break; - } - case 1: { // CreateBreakDlg(weld::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount) override; // this dialog requires pDrawView. It does not show much when @@ -269,7 +256,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) 0); break; } - case 2: + case 1: { // needs an SfxItemSet, use the one from the 1st object pRetval = getSdAbstractDialogFactory()->CreateCopyDlg( @@ -278,7 +265,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) getDrawView()); break; } - case 3: + case 2: { // CreateSdCustomShowDlg(SdDrawDocument& rDrawDoc) = 0; SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc(); @@ -288,7 +275,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) getViewShell()->GetFrameWeld(), *pDrawDoc); break; } - case 4: + case 3: { // CreateSdTabCharDialog(const SfxItemSet* pAttr, SfxObjectShell* pDocShell) override; // needs an SfxItemSet, use an empty constructed one @@ -299,7 +286,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) getDocShell()); break; } - case 5: + case 4: { // CreateSdTabPageDialog(const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage = true, bool bIsImpressDoc) override; // needs a special SfxItemSet with merged content from page and other stuff, crashes without that (2nd page) @@ -311,7 +298,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) true, /*bIsImpressDoc=*/false); break; } - case 6: + case 5: { // CreateSdModifyFieldDlg(weld::Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet) override; pRetval = getSdAbstractDialogFactory()->CreateSdModifyFieldDlg( @@ -320,7 +307,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) getEmptySfxItemSet()); break; } - case 7: + case 6: { // CreateSdSnapLineDlg(const SfxItemSet& rInAttrs, ::sd::View* pView) override; SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc(); @@ -334,7 +321,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) getDrawView()); break; } - case 8: + case 7: { // CreateSdInsertLayerDlg(const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr) override; SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc(); @@ -355,7 +342,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) SdResId(STR_INSERTLAYER) /* alternative: STR_MODIFYLAYER */); break; } - case 9: + case 8: { // CreateSdInsertPagesObjsDlg(const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const OUString& rFileName) override; SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc(); @@ -367,7 +354,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) "foo"); break; } - case 10: + case 9: { // CreateMorphDlg(weld::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2) override; SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc(); @@ -383,7 +370,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) pSdrObj); break; } - case 11: + case 10: { // CreateSdOutlineBulletTabDlg(const SfxItemSet* pAttr, ::sd::View* pView = nullptr) override; pRetval = getSdAbstractDialogFactory()->CreateSdOutlineBulletTabDlg( @@ -392,7 +379,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) getDrawView()); break; } - case 12: + case 11: { // CreateSdParagraphTabDlg(const SfxItemSet* pAttr) override; pRetval = getSdAbstractDialogFactory()->CreateSdParagraphTabDlg( @@ -400,7 +387,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) &getEmptySfxItemSet()); break; } - case 13: + case 12: { // CreateSdStartPresentationDlg(weld::Window* pWindow, const SfxItemSet& rInAttrs, const std::vector<OUString> &rPageNames, SdCustomShowList* pCSList) override; SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc(); @@ -430,14 +417,14 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) nullptr); break; } - case 14: + case 13: { // CreateRemoteDialog(vcl::Window* pWindow) override; // ad for RemoteDialog pRetval = getSdAbstractDialogFactory()->CreateRemoteDialog( Application::GetDefDialogParent()); break; } - case 15: + case 14: { // CreateSdPresLayoutTemplateDlg(SfxObjectShell* pDocSh, weld::Window* pParent, const SdResId& DlgId, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool) override; // use STR_PSEUDOSHEET_TITLE configuration, see futempl.cxx for more possible configurations @@ -455,7 +442,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) pStyleSheetPool); break; } - case 16: + case 15: { // CreateSdPresLayoutDlg(::sd::DrawDocShell* pDocShell, vcl::Window* pWindow, const SfxItemSet& rInAttrs) override; pRetval = getSdAbstractDialogFactory()->CreateSdPresLayoutDlg( @@ -464,7 +451,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) getEmptySfxItemSet()); break; } - case 17: + case 16: { // CreateSdTabTemplateDlg(const SfxObjectShell* pDocShell, SfxStyleSheetBase& rStyleBase, SdrModel* pModel, SdrView* pView) override; // pretty similar to CreateSdPresLayoutTemplateDlg, see above @@ -483,7 +470,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) getDrawView()); break; } - case 18: + case 17: { // CreatSdActionDialog(const SfxItemSet* pAttr, ::sd::View* pView) override; SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc(); @@ -511,7 +498,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) getDrawView()); break; } - case 19: + case 18: { // CreateSdVectorizeDlg(weld::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell) override; // works well with empty Bitmap, but my be nicer with setting one @@ -522,7 +509,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) getDocShell()); break; } - case 20: + case 19: { // CreateSdPhotoAlbumDialog(weld::Window* pWindow, SdDrawDocument* pDoc) override; SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc(); @@ -532,7 +519,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) pDrawDoc); break; } - case 21: + case 20: { // CreateMasterLayoutDialog(weld::Window* pParent, SdDrawDocument* pDoc, SdPage*) override; SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc(); @@ -545,7 +532,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID) pSdPage); break; } - case 22: + case 21: { // CreateHeaderFooterDialog(sd::ViewShell* pViewShell, weld::Window* pParent, SdDrawDocument* pDoc, SdPage* pCurrentPage) override; // This is a hard case, for two reasons: diff --git a/sd/res/buttons/elementary.zip b/sd/res/buttons/elementary.zip deleted file mode 100644 index 3bb99b9c77b9..000000000000 Binary files a/sd/res/buttons/elementary.zip and /dev/null differ diff --git a/sd/res/buttons/round-white.zip b/sd/res/buttons/round-white.zip deleted file mode 100644 index 9c5f1b2aaa3e..000000000000 Binary files a/sd/res/buttons/round-white.zip and /dev/null differ diff --git a/sd/res/buttons/simple.zip b/sd/res/buttons/simple.zip deleted file mode 100644 index 60c0b095702a..000000000000 Binary files a/sd/res/buttons/simple.zip and /dev/null differ diff --git a/sd/res/buttons/sukapura.zip b/sd/res/buttons/sukapura.zip deleted file mode 100644 index 80cccc6bc122..000000000000 Binary files a/sd/res/buttons/sukapura.zip and /dev/null differ diff --git a/sd/source/filter/html/HtmlOptionsDialog.cxx b/sd/source/filter/html/HtmlOptionsDialog.cxx deleted file mode 100644 index 52d50472d9b1..000000000000 --- a/sd/source/filter/html/HtmlOptionsDialog.cxx +++ /dev/null @@ -1,203 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/uno/Sequence.h> -#include <com/sun/star/uno/Any.h> -#include <com/sun/star/lang/XInitialization.hpp> -#include <com/sun/star/beans/XPropertyAccess.hpp> -#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp> -#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp> -#include <com/sun/star/document/XExporter.hpp> -#include <cppuhelper/implbase.hxx> -#include <cppuhelper/supportsservice.hxx> -#include <vcl/svapp.hxx> -#include <pres.hxx> -#include <sdabstdlg.hxx> - - -using namespace com::sun::star::uno; -using namespace com::sun::star::lang; -using namespace com::sun::star::document; -using namespace com::sun::star::beans; -using namespace com::sun::star::ui::dialogs; - -namespace { - -class SdHtmlOptionsDialog : public cppu::WeakImplHelper -< - XExporter, - XExecutableDialog, - XPropertyAccess, - XInitialization, - XServiceInfo -> -{ - Sequence< PropertyValue > maMediaDescriptor; - Sequence< PropertyValue > maFilterDataSequence; - DocumentType meDocType; - -public: - - SdHtmlOptionsDialog(); - - // XInterface - virtual void SAL_CALL acquire() noexcept override; - virtual void SAL_CALL release() noexcept override; - - // XInitialization - virtual void SAL_CALL initialize( const Sequence< Any > & aArguments ) override; - - // XServiceInfo - virtual OUString SAL_CALL getImplementationName() override; - virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override; - virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() override; - - // XPropertyAccess - virtual Sequence< PropertyValue > SAL_CALL getPropertyValues() override; - virtual void SAL_CALL setPropertyValues( const css::uno::Sequence< css::beans::PropertyValue > & aProps ) override; - - // XExecuteDialog - virtual sal_Int16 SAL_CALL execute() override; - virtual void SAL_CALL setTitle( const OUString& aTitle ) override; - - // XExporter - virtual void SAL_CALL setSourceDocument( const css::uno::Reference< css::lang::XComponent >& xDoc ) override; - -}; - -} - -SdHtmlOptionsDialog::SdHtmlOptionsDialog() : - meDocType ( DocumentType::Draw ) -{ -} - -void SAL_CALL SdHtmlOptionsDialog::acquire() noexcept -{ - OWeakObject::acquire(); -} - -void SAL_CALL SdHtmlOptionsDialog::release() noexcept -{ - OWeakObject::release(); -} - -// XInitialization -void SAL_CALL SdHtmlOptionsDialog::initialize( const Sequence< Any > & ) -{ -} - -// XServiceInfo -OUString SAL_CALL SdHtmlOptionsDialog::getImplementationName() -{ - return "com.sun.star.comp.draw.SdHtmlOptionsDialog"; -} - -sal_Bool SAL_CALL SdHtmlOptionsDialog::supportsService( const OUString& rServiceName ) -{ - return cppu::supportsService(this, rServiceName); -} - -Sequence< OUString > SAL_CALL SdHtmlOptionsDialog::getSupportedServiceNames() -{ - return { "com.sun.star.ui.dialog.FilterOptionsDialog" }; -} - -// XPropertyAccess -Sequence< PropertyValue > SdHtmlOptionsDialog::getPropertyValues() -{ - auto pProp = std::find_if(std::cbegin(maMediaDescriptor), std::cend(maMediaDescriptor), - [](const PropertyValue& rProp) { return rProp.Name == "FilterData"; }); - auto i = static_cast<sal_Int32>(std::distance(std::cbegin(maMediaDescriptor), pProp)); - sal_Int32 nCount = maMediaDescriptor.getLength(); - if ( i == nCount ) - maMediaDescriptor.realloc( ++nCount ); - - // the "FilterData" Property is an Any that will contain our PropertySequence of Values - auto& el = maMediaDescriptor.getArray()[ i ]; - el.Name = "FilterData"; - el.Value <<= maFilterDataSequence; - return maMediaDescriptor; -} - -void SdHtmlOptionsDialog::setPropertyValues( const Sequence< PropertyValue > & aProps ) -{ - maMediaDescriptor = aProps; - - auto pProp = std::find_if(std::cbegin(maMediaDescriptor), std::cend(maMediaDescriptor), - [](const PropertyValue& rProp) { return rProp.Name == "FilterData"; }); - if (pProp != std::cend(maMediaDescriptor)) - pProp->Value >>= maFilterDataSequence; -} - -// XExecutableDialog -void SdHtmlOptionsDialog::setTitle( const OUString& ) -{ -} - -sal_Int16 SdHtmlOptionsDialog::execute() -{ - sal_Int16 nRet = ExecutableDialogResults::CANCEL; - - SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create(); - ScopedVclPtr<AbstractSdPublishingDlg> pDlg(pFact->CreateSdPublishingDlg(nullptr /*TODO*/, meDocType)); - if( pDlg->Execute() ) - { - pDlg->GetParameterSequence( maFilterDataSequence ); - nRet = ExecutableDialogResults::OK; - } - else - { - nRet = ExecutableDialogResults::CANCEL; - } - return nRet; -} - -// XEmporter -void SdHtmlOptionsDialog::setSourceDocument( const Reference< XComponent >& xDoc ) -{ - // try to set the corresponding metric unit - Reference< XServiceInfo > xServiceInfo(xDoc, UNO_QUERY); - if ( xServiceInfo.is() ) - { - if ( xServiceInfo->supportsService( "com.sun.star.presentation.PresentationDocument" ) ) - { - meDocType = DocumentType::Impress; - return; - } - else if ( xServiceInfo->supportsService( "com.sun.star.drawing.DrawingDocument" ) ) - { - meDocType = DocumentType::Draw; - return; - } - } - throw IllegalArgumentException(); -} - - -extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface* -com_sun_star_comp_draw_SdHtmlOptionsDialog_get_implementation(css::uno::XComponentContext*, - css::uno::Sequence<css::uno::Any> const &) -{ - return cppu::acquire(new SdHtmlOptionsDialog()); -} - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/source/filter/html/htmlex.cxx b/sd/source/filter/html/htmlex.cxx deleted file mode 100644 index c3f1625dad59..000000000000 --- a/sd/source/filter/html/htmlex.cxx +++ /dev/null @@ -1,3176 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include "htmlex.hxx" -#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> -#include <com/sun/star/drawing/GraphicExportFilter.hpp> -#include <com/sun/star/frame/XModel.hpp> -#include <com/sun/star/ucb/SimpleFileAccess.hpp> - -#include <sal/log.hxx> -#include <rtl/tencinfo.h> -#include <comphelper/processfactory.hxx> -#include <comphelper/propertyvalue.hxx> -#include <comphelper/xmlencode.hxx> -#include <o3tl/safeint.hxx> -#include <osl/file.hxx> -#include <unotools/pathoptions.hxx> -#include <unotools/ucbstreamhelper.hxx> -#include <com/sun/star/frame/XStorable.hpp> -#include <sfx2/frmhtmlw.hxx> -#include <sfx2/progress.hxx> -#include <utility> -#include <vcl/svapp.hxx> -#include <vcl/weld.hxx> -#include <svx/svditer.hxx> -#include <vcl/imaprect.hxx> -#include <vcl/imapcirc.hxx> -#include <vcl/imappoly.hxx> -#include <editeng/eeitem.hxx> -#include <editeng/outlobj.hxx> -#include <editeng/editobj.hxx> -#include <svx/svdopath.hxx> -#include <svtools/htmlout.hxx> -#include <svtools/colorcfg.hxx> -#include <editeng/colritem.hxx> -#include <editeng/editeng.hxx> -#include <editeng/wghtitem.hxx> -#include <editeng/udlnitem.hxx> -#include <editeng/postitem.hxx> -#include <editeng/crossedoutitem.hxx> -#include <editeng/flditem.hxx> -#include <svl/style.hxx> -#include <editeng/frmdiritem.hxx> -#include <svx/svdoutl.hxx> -#include <svx/svdogrp.hxx> -#include <svx/svdotable.hxx> -#include <svx/ImageMapInfo.hxx> -#include <tools/urlobj.hxx> -#include <svtools/sfxecode.hxx> -#include <basegfx/polygon/b2dpolygon.hxx> -#include <tools/debug.hxx> -#include <comphelper/diagnose_ex.hxx> - -#include <drawdoc.hxx> -#include <DrawDocShell.hxx> -#include "htmlpublishmode.hxx" -#include <Outliner.hxx> -#include <sdpage.hxx> -#include <strings.hrc> -#include <strings.hxx> -#include <anminfo.hxx> -#include <sdresid.hxx> -#include "buttonset.hxx" - -using namespace ::com::sun::star; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::beans; -using namespace ::com::sun::star::frame; -using namespace ::com::sun::star::lang; -using namespace ::com::sun::star::document; - -using namespace sdr::table; - -// get parameter from Itemset -#define RESTOHTML( res ) StringToHTMLString(SdResId(res)) - -const char * const pButtonNames[] = -{ - "first-inactive.png", - "first.png", - "left-inactive.png", - "left.png", - "right-inactive.png", - "right.png", - "last-inactive.png", - "last.png", - "home.png", - "text.png", - "expand.png", - "collapse.png", -}; - -#define BTN_FIRST_0 0 -#define BTN_FIRST_1 1 -#define BTN_PREV_0 2 -#define BTN_PREV_1 3 -#define BTN_NEXT_0 4 -#define BTN_NEXT_1 5 -#define BTN_LAST_0 6 -#define BTN_LAST_1 7 -#define BTN_INDEX 8 -#define BTN_TEXT 9 -#define BTN_MORE 10 -#define BTN_LESS 11 - -namespace { - -// Helper class for the simple creation of files local/remote -class EasyFile -{ -private: - std::unique_ptr<SvStream> pOStm; - bool bOpen; - -public: - - EasyFile(); - ~EasyFile(); - - ErrCode createStream( const OUString& rUrl, SvStream*& rpStr ); - void createFileName( const OUString& rUrl, OUString& rFileName ); - void close(); -}; - -} - -// Helper class for the embedding of text attributes into the html output -class HtmlState -{ -private: - bool mbColor; - bool mbWeight; - bool mbItalic; - bool mbUnderline; - bool mbStrike; - bool mbLink; - Color maColor; - Color maDefColor; - OUString maLink; - OUString maTarget; - -public: - explicit HtmlState( Color aDefColor ); - - OUString SetWeight( bool bWeight ); - OUString SetItalic( bool bItalic ); - OUString SetUnderline( bool bUnderline ); - OUString SetColor( Color aColor ); - OUString SetStrikeout( bool bStrike ); - OUString SetLink( const OUString& aLink, const OUString& aTarget ); - OUString Flush(); -}; - -// close all still open tags -OUString HtmlState::Flush() -{ - OUString aStr = SetWeight(false) - + SetItalic(false) - + SetUnderline(false) - + SetStrikeout(false) - + SetColor(maDefColor) - + SetLink("",""); - - return aStr; -} - -// c'tor with default color for the page -HtmlState::HtmlState( Color aDefColor ) - : mbColor(false), - mbWeight(false), - mbItalic(false), - mbUnderline(false), - mbStrike(false), - mbLink(false), - maDefColor(aDefColor) -{ -} - -// enables/disables bold print -OUString HtmlState::SetWeight( bool bWeight ) -{ - OUString aStr; - - if(bWeight && !mbWeight) - aStr = "<b>"; - else if(!bWeight && mbWeight) - aStr = "</b>"; - - mbWeight = bWeight; - return aStr; -} - -// enables/disables italic - -OUString HtmlState::SetItalic( bool bItalic ) -{ - OUString aStr; - - if(bItalic && !mbItalic) - aStr = "<i>"; - else if(!bItalic && mbItalic) - aStr = "</i>"; - - mbItalic = bItalic; - return aStr; -} - -// enables/disables underlines - -OUString HtmlState::SetUnderline( bool bUnderline ) -{ - OUString aStr; - - if(bUnderline && !mbUnderline) - aStr = "<u>"; - else if(!bUnderline && mbUnderline) - aStr = "</u>"; - - mbUnderline = bUnderline; - return aStr; -} - -// enables/disables strike through -OUString HtmlState::SetStrikeout( bool bStrike ) -{ - OUString aStr; - - if(bStrike && !mbStrike) - aStr = "<strike>"; - else if(!bStrike && mbStrike) - aStr = "</strike>"; - - mbStrike = bStrike; - return aStr; -} - -// Sets the specified text color -OUString HtmlState::SetColor( Color aColor ) -{ - OUString aStr; - - if(mbColor && aColor == maColor) - return aStr; - - if(mbColor) - { - aStr = "</font>"; - mbColor = false; - } - - if(aColor != maDefColor) - { - maColor = aColor; - aStr += "<font color=\"" + HtmlExport::ColorToHTMLString(aColor) + "\">"; - mbColor = true; - } - - return aStr; -} - -// enables/disables a hyperlink -OUString HtmlState::SetLink( const OUString& aLink, const OUString& aTarget ) -{ - OUString aStr; - - if(mbLink&&maLink == aLink&&maTarget==aTarget) - return aStr; - - if(mbLink) - { - aStr = "</a>"; - mbLink = false; - } - - if (!aLink.isEmpty()) - { - aStr += "<a href=\"" + comphelper::string::encodeForXml(aLink); - if (!aTarget.isEmpty()) - { - aStr += "\" target=\"" + comphelper::string::encodeForXml(aTarget); - } - aStr += "\">"; - mbLink = true; - maLink = aLink; - maTarget = aTarget; - } - - return aStr; -} -namespace -{ - -OUString getParagraphStyle( const SdrOutliner* pOutliner, sal_Int32 nPara ) -{ - SfxItemSet aParaSet( pOutliner->GetParaAttribs( nPara ) ); - - OUString sStyle; - - if( aParaSet.GetItem<SvxFrameDirectionItem>( EE_PARA_WRITINGDIR )->GetValue() == SvxFrameDirection::Horizontal_RL_TB ) - { - - sStyle = "direction: rtl;"; - } - else - { - // This is the default so don't write it out - // sStyle += "direction: ltr;"; - } - return sStyle; -} - -void lclAppendStyle(OUStringBuffer& aBuffer, std::u16string_view aTag, std::u16string_view aStyle) -{ - if (aStyle.empty()) - aBuffer.append(OUString::Concat("<") + aTag + ">"); - else - aBuffer.append(OUString::Concat("<") + aTag + " style=\"" + aStyle + "\">"); -} - -} // anonymous namespace - -constexpr OUStringLiteral gaHTMLHeader( - u"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\r\n" - " \"http://www.w3.org/TR/html4/transitional.dtd\">\r\n" - "<html>\r\n<head>\r\n" ); - -constexpr OUStringLiteral gaHTMLExtension = u"" STR_HTMLEXP_DEFAULT_EXTENSION; - -// constructor for the html export helper classes -HtmlExport::HtmlExport( - OUString aPath, - const Sequence< PropertyValue >& rParams, - SdDrawDocument* pExpDoc, - sd::DrawDocShell* pDocShell ) - : maPath(std::move( aPath )), - mpDoc(pExpDoc), - mpDocSh( pDocShell ), - meMode( PUBLISH_SINGLE_DOCUMENT ), - mbContentsPage(false), - mnButtonThema(-1), - mnWidthPixel( PUB_MEDRES_WIDTH ), - meFormat( FORMAT_JPG ), - mbNotes(false), - mnCompression( -1 ), - mbDownload( false ), - mbSlideSound(true), - mbHiddenSlides(true), - mbUserAttr(false), - maTextColor(COL_BLACK), - maBackColor(COL_WHITE), - mbDocColors(false), - maIndexUrl("index"), - meScript( SCRIPT_ASP ), - mpButtonSet( new ButtonSet() ) -{ - bool bChange = mpDoc->IsChanged(); - - maIndexUrl += gaHTMLExtension; - - InitExportParameters( rParams ); - - switch( meMode ) - { - case PUBLISH_HTML: - case PUBLISH_FRAMES: - ExportHtml(); - break; - case PUBLISH_WEBCAST: - ExportWebCast(); - break; - case PUBLISH_KIOSK: - ExportKiosk(); - break; - case PUBLISH_SINGLE_DOCUMENT: - ExportSingleDocument(); - break; - } - - mpDoc->SetChanged(bChange); -} - -HtmlExport::~HtmlExport() -{ -} - -// get common export parameters from item set -void HtmlExport::InitExportParameters( const Sequence< PropertyValue >& rParams ) -{ - mbImpress = mpDoc->GetDocumentType() == DocumentType::Impress; - - OUString aStr; - for( const PropertyValue& rParam : rParams ) - { - if ( rParam.Name == "PublishMode" ) - { - sal_Int32 temp = 0; - rParam.Value >>= temp; - meMode = static_cast<HtmlPublishMode>(temp); - } - else if ( rParam.Name == "IndexURL" ) - { - rParam.Value >>= aStr; - maIndexUrl = aStr; - } - else if ( rParam.Name == "Format" ) - { - sal_Int32 temp = 0; - rParam.Value >>= temp; - meFormat = static_cast<PublishingFormat>(temp); - } - else if ( rParam.Name == "Compression" ) - { - rParam.Value >>= aStr; - OUString aTmp( aStr ); - if(!aTmp.isEmpty()) - { - aTmp = aTmp.replaceFirst("%", ""); - mnCompression = static_cast<sal_Int16>(aTmp.toInt32()); - } - } - else if ( rParam.Name == "Width" ) - { - sal_Int32 temp = 0; - rParam.Value >>= temp; - mnWidthPixel = static_cast<sal_uInt16>(temp); - } - else if ( rParam.Name == "UseButtonSet" ) - { - sal_Int32 temp = 0; - rParam.Value >>= temp; - mnButtonThema = static_cast<sal_Int16>(temp); - } - else if ( rParam.Name == "IsExportNotes" ) - { - if( mbImpress ) - { - bool temp = false; - rParam.Value >>= temp; - mbNotes = temp; - } - } - else if ( rParam.Name == "IsExportContentsPage" ) - { - bool temp = false; - rParam.Value >>= temp; - mbContentsPage = temp; - } - else if ( rParam.Name == "Author" ) - { - rParam.Value >>= aStr; - maAuthor = aStr; - } - else if ( rParam.Name == "EMail" ) - { - rParam.Value >>= aStr; - maEMail = aStr; - } - else if ( rParam.Name == "HomepageURL" ) - { - rParam.Value >>= aStr; - maHomePage = aStr; - } - else if ( rParam.Name == "UserText" ) - { - rParam.Value >>= aStr; - maInfo = aStr; - } - else if ( rParam.Name == "EnableDownload" ) - { - bool temp = false; - rParam.Value >>= temp; - mbDownload = temp; - } - else if ( rParam.Name == "SlideSound" ) - { - bool temp = true; - rParam.Value >>= temp; - mbSlideSound = temp; - } - else if ( rParam.Name == "HiddenSlides" ) - { - bool temp = true; - rParam.Value >>= temp; - mbHiddenSlides = temp; - } - else if ( rParam.Name == "BackColor" ) - { - Color temp; - rParam.Value >>= temp; - maBackColor = temp; - mbUserAttr = true; - } - else if ( rParam.Name == "TextColor" ) - { - Color temp; - rParam.Value >>= temp; - maTextColor = temp; - mbUserAttr = true; - } - else if ( rParam.Name == "LinkColor" ) - { - Color temp ; - rParam.Value >>= temp; - maLinkColor = temp; - mbUserAttr = true; - } - else if ( rParam.Name == "VLinkColor" ) - { - Color temp; - rParam.Value >>= temp; - maVLinkColor = temp; - mbUserAttr = true; - } - else if ( rParam.Name == "ALinkColor" ) - { - Color temp; - rParam.Value >>= temp; - maALinkColor = temp; - mbUserAttr = true; - } - else if ( rParam.Name == "IsUseDocumentColors" ) - { - bool temp = false; - rParam.Value >>= temp; - mbDocColors = temp; - } - else if ( rParam.Name == "KioskSlideDuration" ) - { - double temp = 0.0; - rParam.Value >>= temp; - mfSlideDuration = temp; - mbAutoSlide = true; - } - else if ( rParam.Name == "KioskEndless" ) - { - bool temp = false; - rParam.Value >>= temp; - mbEndless = temp; - } - else if ( rParam.Name == "WebCastCGIURL" ) - { - rParam.Value >>= aStr; - maCGIPath = aStr; - } - else if ( rParam.Name == "WebCastTargetURL" ) - { - rParam.Value >>= aStr; - maURLPath = aStr; - } - else if ( rParam.Name == "WebCastScriptLanguage" ) - { - rParam.Value >>= aStr; - if ( aStr == "asp" ) - { - meScript = SCRIPT_ASP; - } - else - { - meScript = SCRIPT_PERL; - } - } - else - { - OSL_FAIL("Unknown property for html export detected!"); - } - } - - if( meMode == PUBLISH_KIOSK ) - { - mbContentsPage = false; - mbNotes = false; - - } - - // calculate image sizes - SdPage* pPage = mpDoc->GetSdPage(0, PageKind::Standard); - Size aTmpSize( pPage->GetSize() ); - double dRatio=static_cast<double>(aTmpSize.Width())/aTmpSize.Height(); - - mnHeightPixel = static_cast<sal_uInt16>(mnWidthPixel/dRatio); - - // we come up with a destination... - - INetURLObject aINetURLObj( maPath ); - DBG_ASSERT( aINetURLObj.GetProtocol() != INetProtocol::NotValid, "invalid URL" ); - - maExportPath = aINetURLObj.GetPartBeforeLastName(); // with trailing '/' - maIndex = aINetURLObj.GetLastName(); - - mnSdPageCount = mpDoc->GetSdPageCount( PageKind::Standard ); - for( sal_uInt16 nPage = 0; nPage < mnSdPageCount; nPage++ ) - { - pPage = mpDoc->GetSdPage( nPage, PageKind::Standard ); - - if( mbHiddenSlides || !pPage->IsExcluded() ) - { - maPages.push_back( pPage ); - maNotesPages.push_back( mpDoc->GetSdPage( nPage, PageKind::Notes ) ); - } - } - mnSdPageCount = maPages.size(); - - mbFrames = meMode == PUBLISH_FRAMES; - - maDocFileName = maIndex; -} - -void HtmlExport::ExportSingleDocument() -{ - SdrOutliner* pOutliner = mpDoc->GetInternalOutliner(); - - maPageNames.resize(mnSdPageCount); - - mnPagesWritten = 0; - InitProgress(mnSdPageCount); - - OUStringBuffer aStr(gaHTMLHeader - + DocumentMetadata() - + "\r\n" - "</head>\r\n" - + CreateBodyTag()); - - for(sal_uInt16 nSdPage = 0; nSdPage < mnSdPageCount; ++nSdPage) - { - SdPage* pPage = maPages[nSdPage]; - maPageNames[nSdPage] = pPage->GetName(); - - if( mbDocColors ) - { - SetDocColors( pPage ); - } - - // page title - OUString sTitleText(CreateTextForTitle(pOutliner, pPage, pPage->GetPageBackgroundColor())); - OUString sStyle; - - if (nSdPage != 0) // First page - no need for a page break here - sStyle += "page-break-before:always; "; - sStyle += getParagraphStyle(pOutliner, 0); - - lclAppendStyle(aStr, u"h1", sStyle); - - aStr.append(sTitleText + "</h1>\r\n"); - - // write outline text - aStr.append(CreateTextForPage( pOutliner, pPage, true, pPage->GetPageBackgroundColor() )); - - // notes - if(mbNotes) - { - SdPage* pNotesPage = maNotesPages[ nSdPage ]; - OUString aNotesStr( CreateTextForNotesPage( pOutliner, pNotesPage, maBackColor) ); - - if (!aNotesStr.isEmpty()) - { - aStr.append("<br>\r\n<h3>" - + RESTOHTML(STR_HTMLEXP_NOTES) - + ":</h3>\r\n" - + aNotesStr); - } - } - - if (mpProgress) - mpProgress->SetState(++mnPagesWritten); - - } - - // close page - aStr.append("</body>\r\n</html>"); - - WriteHtml(maDocFileName, false, aStr); - - pOutliner->Clear(); - ResetProgress(); -} - -// exports the (in the c'tor specified impress document) to html -void HtmlExport::ExportHtml() -{ - if(mbUserAttr) - { - if( maTextColor == COL_AUTO ) - { - if( !maBackColor.IsDark() ) - maTextColor = COL_BLACK; - } - } - else if( mbDocColors ) - { - // default colors for the color schema 'From Document' - SetDocColors(); - maFirstPageColor = maBackColor; - } - - // get name for downloadable presentation if needed - if( mbDownload ) - { - // fade out separator search and extension - sal_Int32 nSepPos = maDocFileName.indexOf('.'); - if (nSepPos != -1) - maDocFileName = maDocFileName.copy(0, nSepPos); - - maDocFileName += ".odp"; - } - - sal_uInt16 nProgrCount = mnSdPageCount; - nProgrCount += mbImpress?mnSdPageCount:0; - nProgrCount += mbContentsPage?1:0; - nProgrCount += (mbFrames && mbNotes)?mnSdPageCount:0; - nProgrCount += mbFrames ? 8 : 0; - InitProgress( nProgrCount ); - - mpDocSh->SetWaitCursor( true ); - - // Exceptions are cool... - - CreateFileNames(); - - // this is not a true while - while( true ) - { - if( checkForExistingFiles() ) - break; - - if( !CreateImagesForPresPages() ) - break; - - if( mbContentsPage && - !CreateImagesForPresPages( true ) ) - break; - - if( !CreateHtmlForPresPages() ) - break; - - if( mbImpress ) - if( !CreateHtmlTextForPresPages() ) - break; - - if( mbFrames ) - { - if( !CreateFrames() ) - break; - - if( !CreateOutlinePages() ) - break; - - if( !CreateNavBarFrames() ) - break; - - if( mbNotes && mbImpress ) - if( !CreateNotesPages() ) - break; - - } - - if( mbContentsPage ) - if( !CreateContentPage() ) - break; - - CreateBitmaps(); - - mpDocSh->SetWaitCursor( false ); - ResetProgress(); - - if( mbDownload ) - SavePresentation(); - - return; - } - - // if we get to this point the export was - // canceled by the user after an error - mpDocSh->SetWaitCursor( false ); - ResetProgress(); -} - -void HtmlExport::SetDocColors( SdPage* pPage ) -{ - if( pPage == nullptr ) - pPage = mpDoc->GetSdPage(0, PageKind::Standard); - - svtools::ColorConfig aConfig; - maVLinkColor = aConfig.GetColorValue(svtools::LINKSVISITED).nColor; - maALinkColor = aConfig.GetColorValue(svtools::LINKS).nColor; - maLinkColor = aConfig.GetColorValue(svtools::LINKS).nColor; - maTextColor = COL_BLACK; - - SfxStyleSheet* pSheet = nullptr; - - if( mpDoc->GetDocumentType() == DocumentType::Impress ) - { - // default text color from the outline template of the first page - pSheet = pPage->GetStyleSheetForPresObj(PresObjKind::Outline); - if(pSheet == nullptr) - pSheet = pPage->GetStyleSheetForPresObj(PresObjKind::Text); - if(pSheet == nullptr) - pSheet = pPage->GetStyleSheetForPresObj(PresObjKind::Title); - } - - if(pSheet == nullptr) - pSheet = mpDoc->GetDefaultStyleSheet(); - - if(pSheet) - { - SfxItemSet& rSet = pSheet->GetItemSet(); - if(rSet.GetItemState(EE_CHAR_COLOR) == SfxItemState::SET) - maTextColor = rSet.GetItem<SvxColorItem>(EE_CHAR_COLOR)->GetValue(); - } - - // default background from the background of the master page of the first page - maBackColor = pPage->GetPageBackgroundColor(); - - if( maTextColor == COL_AUTO ) - { - if( !maBackColor.IsDark() ) - maTextColor = COL_BLACK; - } -} - -void HtmlExport::InitProgress( sal_uInt16 nProgrCount ) -{ - mpProgress.reset(new SfxProgress( mpDocSh, SdResId(STR_CREATE_PAGES), nProgrCount )); -} - -void HtmlExport::ResetProgress() -{ - mpProgress.reset(); -} - -void HtmlExport::ExportKiosk() -{ - mnPagesWritten = 0; - InitProgress( 2*mnSdPageCount ); - - CreateFileNames(); - if( !checkForExistingFiles() ) - { - if( CreateImagesForPresPages() ) - CreateHtmlForPresPages(); - } - - ResetProgress(); -} - -// Export Document with WebCast (TM) Technology -void HtmlExport::ExportWebCast() -{ - mnPagesWritten = 0; - InitProgress( mnSdPageCount + 9 ); - - mpDocSh->SetWaitCursor( true ); - - CreateFileNames(); - - if (maCGIPath.isEmpty()) - maCGIPath = "."; - - if (!maCGIPath.endsWith("/")) - maCGIPath += "/"; - - if( meScript == SCRIPT_ASP ) - { - maURLPath = "./"; - } - else - { - if (maURLPath.isEmpty()) - maURLPath = "."; - - if (!maURLPath.endsWith("/")) - maURLPath += "/"; - } - - // this is not a true while - while(true) - { - if( checkForExistingFiles() ) - break; - - if(!CreateImagesForPresPages()) - break; - - if( meScript == SCRIPT_ASP ) - { - if(!CreateASPScripts()) - break; - } - else - { - if(!CreatePERLScripts()) - break; - } - - if(!CreateImageFileList()) - break; - - if(!CreateImageNumberFile()) - break; - - break; - } - - mpDocSh->SetWaitCursor( false ); - ResetProgress(); -} - -// Save the presentation as a downloadable file in the dest directory -bool HtmlExport::SavePresentation() -{ - meEC.SetContext( STR_HTMLEXP_ERROR_CREATE_FILE, maDocFileName ); - - OUString aURL(maExportPath + maDocFileName); - - mpDocSh->EnableSetModified(); - - try - { - uno::Reference< frame::XStorable > xStorable( mpDoc->getUnoModel(), uno::UNO_QUERY ); - if( xStorable.is() ) - { - uno::Sequence< beans::PropertyValue > aProperties{ - comphelper::makePropertyValue("Overwrite", true), - comphelper::makePropertyValue("FilterName", OUString("impress8")) - }; - xStorable->storeToURL( aURL, aProperties ); - - mpDocSh->EnableSetModified( false ); - - return true; - } - } - catch( Exception& ) - { - } - - mpDocSh->EnableSetModified( false ); - - return false; -} - -// create image files -bool HtmlExport::CreateImagesForPresPages( bool bThumbnail) -{ - try - { - Reference < XComponentContext > xContext = ::comphelper::getProcessComponentContext(); - - Reference< drawing::XGraphicExportFilter > xGraphicExporter = drawing::GraphicExportFilter::create( xContext ); - - Sequence< PropertyValue > aFilterData(((meFormat==FORMAT_JPG)&&(mnCompression != -1))? 3 : 2); - auto pFilterData = aFilterData.getArray(); - pFilterData[0].Name = "PixelWidth"; - pFilterData[0].Value <<= static_cast<sal_Int32>(bThumbnail ? PUB_THUMBNAIL_WIDTH : mnWidthPixel ); - pFilterData[1].Name = "PixelHeight"; - pFilterData[1].Value <<= static_cast<sal_Int32>(bThumbnail ? PUB_THUMBNAIL_HEIGHT : mnHeightPixel); - if((meFormat==FORMAT_JPG)&&(mnCompression != -1)) - { - pFilterData[2].Name = "Quality"; - pFilterData[2].Value <<= static_cast<sal_Int32>(mnCompression); - } - - OUString sFormat; - if( meFormat == FORMAT_PNG ) - sFormat = "PNG"; - else if( meFormat == FORMAT_GIF ) - sFormat = "GIF"; - else - sFormat = "JPG"; - - Sequence< PropertyValue > aDescriptor{ - comphelper::makePropertyValue("URL", Any()), - comphelper::makePropertyValue("FilterName", sFormat), - comphelper::makePropertyValue("FilterData", aFilterData) - }; - auto pDescriptor = aDescriptor.getArray(); - - for (sal_uInt16 nSdPage = 0; nSdPage < mnSdPageCount; nSdPage++) - { - SdPage* pPage = maPages[ nSdPage ]; - - OUString aFull(maExportPath); - if (bThumbnail) - aFull += maThumbnailFiles[nSdPage]; - else - aFull += maImageFiles[nSdPage]; - - pDescriptor[0].Value <<= aFull; - - Reference< XComponent > xPage( pPage->getUnoPage(), UNO_QUERY ); - xGraphicExporter->setSourceDocument( xPage ); - xGraphicExporter->filter( aDescriptor ); - - if (mpProgress) - mpProgress->SetState(++mnPagesWritten); - } - } - catch( Exception& ) - { - return false; - } - - return true; -} - -// get SdrTextObject with layout text of this page -SdrTextObj* HtmlExport::GetLayoutTextObject(SdrPage const * pPage) -{ - const size_t nObjectCount = pPage->GetObjCount(); - SdrTextObj* pResult = nullptr; - - for (size_t nObject = 0; nObject < nObjectCount; ++nObject) - { - SdrObject* pObject = pPage->GetObj(nObject); - if (pObject->GetObjInventor() == SdrInventor::Default && - pObject->GetObjIdentifier() == SdrObjKind::OutlineText) - { - pResult = static_cast<SdrTextObj*>(pObject); - break; - } - } - return pResult; -} - -// create HTML text version of impress pages -OUString HtmlExport::CreateMetaCharset() -{ - OUString aStr; - const char *pCharSet = rtl_getBestMimeCharsetFromTextEncoding( RTL_TEXTENCODING_UTF8 ); - if ( pCharSet ) - { - aStr = " <meta HTTP-EQUIV=CONTENT-TYPE CONTENT=\"text/html; charset=" + - OUString::createFromAscii(pCharSet) + "\">\r\n"; - } - return aStr; -} - -OUString HtmlExport::DocumentMetadata() const -{ - SvMemoryStream aStream; - - uno::Reference<document::XDocumentProperties> xDocProps; - if (mpDocSh) - { - uno::Reference<document::XDocumentPropertiesSupplier> xDPS( - mpDocSh->GetModel(), uno::UNO_QUERY_THROW); - xDocProps.set(xDPS->getDocumentProperties()); - } - - SfxFrameHTMLWriter::Out_DocInfo(aStream, maDocFileName, xDocProps, - " "); - - const sal_uInt64 nLen = aStream.GetSize(); - OSL_ENSURE(nLen < o3tl::make_unsigned(SAL_MAX_INT32), "Stream can't fit in OString"); - std::string_view aData(static_cast<const char*>(aStream.GetData()), static_cast<sal_Int32>(nLen)); - - return OStringToOUString(aData, RTL_TEXTENCODING_UTF8); -} - -bool HtmlExport::CreateHtmlTextForPresPages() -{ - bool bOk = true; - - SdrOutliner* pOutliner = mpDoc->GetInternalOutliner(); - - for(sal_uInt16 nSdPage = 0; nSdPage < mnSdPageCount && bOk; nSdPage++) - { - SdPage* pPage = maPages[ nSdPage ]; - - if( mbDocColors ) - { - SetDocColors( pPage ); - } - - // HTML head - OUStringBuffer aStr(gaHTMLHeader - + CreateMetaCharset() - + " <title>" - + StringToHTMLString(maPageNames[nSdPage]) - + "</title>\r\n" - "</head>\r\n" - + CreateBodyTag()); - - // navigation bar - aStr.append(CreateNavBar(nSdPage, true)); - - // page title - OUString sTitleText( CreateTextForTitle(pOutliner,pPage, pPage->GetPageBackgroundColor()) ); - lclAppendStyle(aStr, u"h1", getParagraphStyle(pOutliner, 0)); - aStr.append(sTitleText + "</h1>\r\n"); - - // write outline text - aStr.append(CreateTextForPage( pOutliner, pPage, true, pPage->GetPageBackgroundColor() )); - - // notes - if(mbNotes) - { - SdPage* pNotesPage = maNotesPages[ nSdPage ]; - OUString aNotesStr( CreateTextForNotesPage( pOutliner, pNotesPage, maBackColor) ); - - if (!aNotesStr.isEmpty()) - { - aStr.append("<br>\r\n<h3>" - + RESTOHTML(STR_HTMLEXP_NOTES) - + ":</h3>\r\n" - + aNotesStr); - } - } - - // close page - aStr.append("</body>\r\n</html>"); - - bOk = WriteHtml(maTextFiles[nSdPage], false, aStr); - - if (mpProgress) - mpProgress->SetState(++mnPagesWritten); - - } - - pOutliner->Clear(); - - return bOk; -} - -/** exports the given html data into a non unicode file in the current export path with - the given filename */ -bool HtmlExport::WriteHtml( const OUString& rFileName, bool bAddExtension, std::u16string_view rHtmlData ) -{ - ErrCode nErr = ERRCODE_NONE; - - OUString aFileName( rFileName ); - if( bAddExtension ) - aFileName += gaHTMLExtension; - - meEC.SetContext( STR_HTMLEXP_ERROR_CREATE_FILE, rFileName ); - EasyFile aFile; - SvStream* pStr; - OUString aFull(maExportPath + aFileName); - nErr = aFile.createStream(aFull , pStr); - if(nErr == ERRCODE_NONE) - { - OString aStr(OUStringToOString(rHtmlData, RTL_TEXTENCODING_UTF8)); - pStr->WriteOString( aStr ); - aFile.close(); - } - - if( nErr != ERRCODE_NONE ) - ErrorHandler::HandleError(nErr); - - return nErr == ERRCODE_NONE; -} - -/** creates an outliner text for the title objects of a page - */ -OUString HtmlExport::CreateTextForTitle( SdrOutliner* pOutliner, SdPage* pPage, const Color& rBackgroundColor ) -{ - SdrTextObj* pTO = static_cast<SdrTextObj*>(pPage->GetPresObj(PresObjKind::Title)); - if(!pTO) - pTO = GetLayoutTextObject(pPage); - - if (pTO && !pTO->IsEmptyPresObj()) - { - OutlinerParaObject* pOPO = pTO->GetOutlinerParaObject(); - if(pOPO && pOutliner->GetParagraphCount() != 0) - { - pOutliner->Clear(); - pOutliner->SetText(*pOPO); - return ParagraphToHTMLString(pOutliner,0, rBackgroundColor); - } - } - - return OUString(); -} - -// creates an outliner text for a page -OUString HtmlExport::CreateTextForPage(SdrOutliner* pOutliner, SdPage const * pPage, - bool bHeadLine, const Color& rBackgroundColor) -{ - OUStringBuffer aStr; - - for (size_t i = 0; i <pPage->GetObjCount(); ++i ) - { - SdrObject* pObject = pPage->GetObj(i); - PresObjKind eKind = pPage->GetPresObjKind(pObject); - - switch (eKind) - { - case PresObjKind::NONE: - { - if (pObject->GetObjIdentifier() == SdrObjKind::Group) - { - SdrObjGroup* pObjectGroup = static_cast<SdrObjGroup*>(pObject); - WriteObjectGroup(aStr, pObjectGroup, pOutliner, rBackgroundColor, false); - } - else if (pObject->GetObjIdentifier() == SdrObjKind::Table) - { - SdrTableObj* pTableObject = static_cast<SdrTableObj*>(pObject); - WriteTable(aStr, pTableObject, pOutliner, rBackgroundColor); - } - else - { - if (pObject->GetOutlinerParaObject()) - { - WriteOutlinerParagraph(aStr, pOutliner, pObject->GetOutlinerParaObject(), rBackgroundColor, false); - } - } - } - break; - - case PresObjKind::Table: - { - SdrTableObj* pTableObject = static_cast<SdrTableObj*>(pObject); - WriteTable(aStr, pTableObject, pOutliner, rBackgroundColor); - } - break; - - case PresObjKind::Text: - case PresObjKind::Outline: - { - SdrTextObj* pTextObject = static_cast<SdrTextObj*>(pObject); - if (pTextObject->IsEmptyPresObj()) - continue; - WriteOutlinerParagraph(aStr, pOutliner, pTextObject->GetOutlinerParaObject(), rBackgroundColor, bHeadLine); - } - break; - - default: - break; - } - } - return aStr.makeStringAndClear(); -} - -void HtmlExport::WriteTable(OUStringBuffer& aStr, SdrTableObj const * pTableObject, SdrOutliner* pOutliner, const Color& rBackgroundColor) -{ - CellPos aStart, aEnd; - - aStart = SdrTableObj::getFirstCell(); - aEnd = pTableObject->getLastCell(); - - sal_Int32 nColCount = pTableObject->getColumnCount(); - aStr.append("<table>\r\n"); - for (sal_Int32 nRow = aStart.mnRow; nRow <= aEnd.mnRow; nRow++) - { - aStr.append(" <tr>\r\n"); - for (sal_Int32 nCol = aStart.mnCol; nCol <= aEnd.mnCol; nCol++) - { - aStr.append(" <td>\r\n"); - sal_Int32 nCellIndex = nRow * nColCount + nCol; - SdrText* pText = pTableObject->getText(nCellIndex); - - if (pText == nullptr) - continue; - WriteOutlinerParagraph(aStr, pOutliner, pText->GetOutlinerParaObject(), rBackgroundColor, false); - aStr.append(" </td>\r\n"); - } - aStr.append(" </tr>\r\n"); - } - aStr.append("</table>\r\n"); -} - -void HtmlExport::WriteObjectGroup(OUStringBuffer& aStr, SdrObjGroup const * pObjectGroup, SdrOutliner* pOutliner, - const Color& rBackgroundColor, bool bHeadLine) -{ - SdrObjListIter aGroupIterator(pObjectGroup->GetSubList(), SdrIterMode::DeepNoGroups); - while (aGroupIterator.IsMore()) - { - SdrObject* pCurrentObject = aGroupIterator.Next(); - if (pCurrentObject->GetObjIdentifier() == SdrObjKind::Group) - { - SdrObjGroup* pCurrentGroupObject = static_cast<SdrObjGroup*>(pCurrentObject); - WriteObjectGroup(aStr, pCurrentGroupObject, pOutliner, rBackgroundColor, bHeadLine); - } - else - { - OutlinerParaObject* pOutlinerParagraphObject = pCurrentObject->GetOutlinerParaObject(); - if (pOutlinerParagraphObject != nullptr) - { - WriteOutlinerParagraph(aStr, pOutliner, pOutlinerParagraphObject, rBackgroundColor, bHeadLine); - } - } - } -} - -void HtmlExport::WriteOutlinerParagraph(OUStringBuffer& aStr, SdrOutliner* pOutliner, - OutlinerParaObject const * pOutlinerParagraphObject, - const Color& rBackgroundColor, bool bHeadLine) -{ - if (pOutlinerParagraphObject == nullptr) - return; - - pOutliner->SetText(*pOutlinerParagraphObject); - - sal_Int32 nCount = pOutliner->GetParagraphCount(); - - - sal_Int16 nCurrentDepth = -1; - - for (sal_Int32 nIndex = 0; nIndex < nCount; nIndex++) - { - Paragraph* pParagraph = pOutliner->GetParagraph(nIndex); - if(pParagraph == nullptr) - continue; - - const sal_Int16 nDepth = static_cast<sal_uInt16>(pOutliner->GetDepth(nIndex)); - OUString aParaText = ParagraphToHTMLString(pOutliner, nIndex, rBackgroundColor); - - if (aParaText.isEmpty()) - continue; - - if (nDepth < 0) - { - OUString aTag = bHeadLine ? OUString("h2") : OUString("p"); - lclAppendStyle(aStr, aTag, getParagraphStyle(pOutliner, nIndex)); - - aStr.append(aParaText); - aStr.append("</" + aTag + ">\r\n"); - } - else - { - while(nCurrentDepth < nDepth) - { - aStr.append("<ul>\r\n"); - nCurrentDepth++; - } - while(nCurrentDepth > nDepth) - { - aStr.append("</ul>\r\n"); - nCurrentDepth--; - } - lclAppendStyle(aStr, u"li", getParagraphStyle(pOutliner, nIndex)); - aStr.append(aParaText); - aStr.append("</li>\r\n"); - } - } - while(nCurrentDepth >= 0) - { - aStr.append("</ul>\r\n"); - nCurrentDepth--; - } - pOutliner->Clear(); -} - -// creates an outliner text for a note page -OUString HtmlExport::CreateTextForNotesPage( SdrOutliner* pOutliner, - SdPage* pPage, - const Color& rBackgroundColor ) -{ - OUStringBuffer aStr; - - SdrTextObj* pTO = static_cast<SdrTextObj*>(pPage->GetPresObj(PresObjKind::Notes)); - - if (pTO && !pTO->IsEmptyPresObj()) - { - OutlinerParaObject* pOPO = pTO->GetOutlinerParaObject(); - if (pOPO) - { - pOutliner->Clear(); - pOutliner->SetText( *pOPO ); - - sal_Int32 nCount = pOutliner->GetParagraphCount(); - for (sal_Int32 nPara = 0; nPara < nCount; nPara++) - { - lclAppendStyle(aStr, u"p", getParagraphStyle(pOutliner, nPara)); - aStr.append(ParagraphToHTMLString(pOutliner, nPara, rBackgroundColor) - + "</p>\r\n"); - } - } - } - - return aStr.makeStringAndClear(); -} - -// converts a paragraph of the outliner to html -OUString HtmlExport::ParagraphToHTMLString( SdrOutliner const * pOutliner, sal_Int32 nPara, const Color& rBackgroundColor ) -{ - OUStringBuffer aStr; - - if(nullptr == pOutliner) - return OUString(); - - // TODO: MALTE!!! - EditEngine& rEditEngine = *const_cast<EditEngine*>(&pOutliner->GetEditEngine()); - bool bOldUpdateMode = rEditEngine.SetUpdateLayout(true); - - Paragraph* pPara = pOutliner->GetParagraph(nPara); - if(nullptr == pPara) - return OUString(); - - HtmlState aState( (mbUserAttr || mbDocColors) ? maTextColor : COL_BLACK ); - std::vector<sal_Int32> aPortionList; - rEditEngine.GetPortions( nPara, aPortionList ); - - sal_Int32 nPos1 = 0; - for( sal_Int32 nPos2 : aPortionList ) - { - ESelection aSelection( nPara, nPos1, nPara, nPos2); - - SfxItemSet aSet( rEditEngine.GetAttribs( aSelection ) ); - - aStr.append(TextAttribToHTMLString( &aSet, &aState, rBackgroundColor ) + - StringToHTMLString(rEditEngine.GetText( aSelection ))); - - nPos1 = nPos2; - } - aStr.append(aState.Flush()); - rEditEngine.SetUpdateLayout(bOldUpdateMode); - - return aStr.makeStringAndClear(); -} - -// Depending on the attributes of the specified set and the specified -// HtmlState, it creates the needed html tags in order to get the -// attributes -OUString HtmlExport::TextAttribToHTMLString( SfxItemSet const * pSet, HtmlState* pState, const Color& rBackgroundColor ) -{ - OUStringBuffer aStr; - - if(nullptr == pSet) - return OUString(); - - OUString aLink, aTarget; - if ( pSet->GetItemState( EE_FEATURE_FIELD ) == SfxItemState::SET ) - { - const SvxFieldItem* pItem = pSet->GetItem<SvxFieldItem>( EE_FEATURE_FIELD ); - if(pItem) - { - const SvxURLField* pURL = dynamic_cast<const SvxURLField*>( pItem->GetField() ); - if(pURL) - { - aLink = pURL->GetURL(); - aTarget = pURL->GetTargetFrame(); - } - } - } - - bool bTemp; - OUString aTemp; - - if ( pSet->GetItemState( EE_CHAR_WEIGHT ) == SfxItemState::SET ) - { - bTemp = pSet->Get( EE_CHAR_WEIGHT ).GetWeight() == WEIGHT_BOLD; - aTemp = pState->SetWeight( bTemp ); - if( bTemp ) - aStr.insert(0, aTemp); - else - aStr.append(aTemp); - } - - if ( pSet->GetItemState( EE_CHAR_UNDERLINE ) == SfxItemState::SET ) - { - bTemp = pSet->Get( EE_CHAR_UNDERLINE ).GetLineStyle() != LINESTYLE_NONE; - aTemp = pState->SetUnderline( bTemp ); - if( bTemp ) - aStr.insert(0, aTemp); - else - aStr.append(aTemp); - } - - if ( pSet->GetItemState( EE_CHAR_STRIKEOUT ) == SfxItemState::SET ) - { - bTemp = pSet->Get( EE_CHAR_STRIKEOUT ).GetStrikeout() != STRIKEOUT_NONE; - aTemp = pState->SetStrikeout( bTemp ); - if( bTemp ) - aStr.insert(0, aTemp); - else - aStr.append(aTemp); - } - - if ( pSet->GetItemState( EE_CHAR_ITALIC ) == SfxItemState::SET ) - { - bTemp = pSet->Get( EE_CHAR_ITALIC ).GetPosture() != ITALIC_NONE; - aTemp = pState->SetItalic( bTemp ); - if( bTemp ) - aStr.insert(0, aTemp); - else - aStr.append(aTemp); - } - - if(mbDocColors) - { - if ( pSet->GetItemState( EE_CHAR_COLOR ) == SfxItemState::SET ) - { - Color aTextColor = pSet->Get( EE_CHAR_COLOR ).GetValue(); - if( aTextColor == COL_AUTO ) - { - if( !rBackgroundColor.IsDark() ) - aTextColor = COL_BLACK; - } - aStr.append(pState->SetColor( aTextColor )); - } - } - - if (!aLink.isEmpty()) - aStr.insert(0, pState->SetLink(aLink, aTarget)); - else - aStr.append(pState->SetLink(aLink, aTarget)); - - return aStr.makeStringAndClear(); -} - -// create HTML wrapper for picture files -bool HtmlExport::CreateHtmlForPresPages() -{ - bool bOk = true; - - std::vector<SdrObject*> aClickableObjects; - - for(sal_uInt16 nSdPage = 0; nSdPage < mnSdPageCount && bOk; nSdPage++) - { - // find clickable objects (also on the master page) and put it in the ... etc. - the rest is truncated