[Libreoffice-commits] core.git: sw/qa sw/source
Noel Grandin
noel.grandin at collabora.co.uk
Tue Nov 21 10:33:12 UTC 2017
sw/qa/extras/odfexport/odfexport.cxx | 150 ++++---
sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 91 ++--
sw/source/core/access/accmap.cxx | 201 +++++-----
sw/source/core/access/accpara.cxx | 49 +-
sw/source/core/doc/doc.cxx | 211 +++++------
sw/source/core/doc/docftn.cxx | 222 +++++------
sw/source/core/doc/docredln.cxx | 115 +++---
sw/source/core/doc/tblrwcl.cxx | 91 ++--
sw/source/core/doc/textboxhelper.cxx | 117 +++---
sw/source/core/docnode/ndsect.cxx | 85 ++--
sw/source/core/docnode/ndtbl1.cxx | 403 ++++++++++-----------
sw/source/core/edit/autofmt.cxx | 73 +--
sw/source/core/edit/edfcol.cxx | 241 ++++++------
sw/source/core/edit/editsh.cxx | 43 +-
sw/source/core/edit/edlingu.cxx | 310 ++++++++--------
sw/source/core/frmedt/fefly1.cxx | 67 +--
sw/source/core/frmedt/feshview.cxx | 202 +++++-----
sw/source/core/frmedt/fews.cxx | 215 +++++------
sw/source/core/layout/fly.cxx | 337 ++++++++---------
sw/source/core/layout/pagechg.cxx | 45 +-
sw/source/core/layout/paintfrm.cxx | 336 ++++++++---------
sw/source/core/layout/sectfrm.cxx | 428 +++++++++++-----------
sw/source/core/layout/virtoutp.cxx | 71 +--
sw/source/core/layout/wsfrm.cxx | 75 +--
sw/source/core/table/swtable.cxx | 332 ++++++++---------
sw/source/core/text/frmpaint.cxx | 334 ++++++++---------
sw/source/core/text/inftxt.cxx | 75 +--
sw/source/core/text/itrform2.cxx | 238 ++++++------
sw/source/core/text/porfld.cxx | 228 ++++++-----
sw/source/core/text/portxt.cxx | 55 +-
sw/source/core/txtnode/fntcache.cxx | 39 +-
sw/source/core/undo/SwUndoPageDesc.cxx | 110 ++---
sw/source/core/unocore/unodraw.cxx | 63 +--
sw/source/core/unocore/unoobj.cxx | 110 ++---
sw/source/core/view/vdraw.cxx | 113 ++---
sw/source/filter/html/htmlatr.cxx | 173 ++++-----
sw/source/filter/html/htmltab.cxx | 141 +++----
sw/source/filter/ww8/docxattributeoutput.cxx | 222 +++++------
sw/source/filter/ww8/docxsdrexport.cxx | 85 ++--
sw/source/filter/ww8/rtfattributeoutput.cxx | 95 ++--
sw/source/filter/ww8/wrtw8esh.cxx | 42 +-
sw/source/filter/ww8/ww8par2.cxx | 172 ++++-----
sw/source/filter/ww8/ww8par5.cxx | 139 +++----
sw/source/filter/xml/xmltble.cxx | 51 +-
sw/source/ui/config/optload.cxx | 47 +-
sw/source/ui/config/optpage.cxx | 37 -
sw/source/ui/dbui/mmaddressblockpage.cxx | 115 +++---
sw/source/ui/dbui/mmresultdialogs.cxx | 53 +-
sw/source/ui/dbui/selectdbtabledialog.cxx | 57 +-
sw/source/ui/dialog/uiregionsw.cxx | 239 ++++++------
sw/source/ui/envelp/labfmt.cxx | 33 -
sw/source/ui/fldui/flddb.cxx | 183 ++++-----
sw/source/ui/fldui/flddok.cxx | 365 +++++++++----------
sw/source/ui/fldui/fldfunc.cxx | 285 +++++++-------
sw/source/ui/fldui/fldref.cxx | 99 ++---
sw/source/ui/frmdlg/frmpage.cxx | 102 ++---
sw/source/ui/misc/pggrid.cxx | 99 ++---
sw/source/ui/table/tautofmt.cxx | 141 +++----
sw/source/uibase/app/applab.cxx | 403 ++++++++++-----------
sw/source/uibase/dialog/regionsw.cxx | 47 +-
sw/source/uibase/docvw/AnnotationWin2.cxx | 35 -
sw/source/uibase/docvw/edtwin.cxx | 514 +++++++++++++--------------
sw/source/uibase/docvw/srcedtw.cxx | 112 ++---
sw/source/uibase/envelp/labimg.cxx | 43 +-
sw/source/uibase/frmdlg/colex.cxx | 167 ++++----
sw/source/uibase/shells/annotsh.cxx | 105 ++---
sw/source/uibase/shells/basesh.cxx | 155 ++++----
sw/source/uibase/shells/drwtxtsh.cxx | 105 ++---
sw/source/uibase/shells/textfld.cxx | 104 ++---
sw/source/uibase/shells/textsh1.cxx | 89 ++--
sw/source/uibase/uiview/view.cxx | 375 +++++++++----------
sw/source/uibase/uiview/view2.cxx | 43 +-
sw/source/uibase/utlui/glbltree.cxx | 145 +++----
sw/source/uibase/utlui/numfmtlb.cxx | 348 +++++++++---------
sw/source/uibase/utlui/unotools.cxx | 57 +-
75 files changed, 5901 insertions(+), 5796 deletions(-)
New commits:
commit a60ffa6985dec32cc73032a7774f58694a6ee9a7
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Mon Nov 20 09:25:11 2017 +0200
loplugin:flatten in sw
Change-Id: I64176f48d90303f078e326c8838da9eb2daf8126
Reviewed-on: https://gerrit.libreoffice.org/44937
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sw/qa/extras/odfexport/odfexport.cxx b/sw/qa/extras/odfexport/odfexport.cxx
index ed4d67002ffe..60a1ceef489f 100644
--- a/sw/qa/extras/odfexport/odfexport.cxx
+++ b/sw/qa/extras/odfexport/odfexport.cxx
@@ -1561,60 +1561,62 @@ DECLARE_ODFEXPORT_TEST(testTableStyles2, "table_styles_2.odt")
DECLARE_ODFEXPORT_TEST(testTableStyles3, "table_styles_3.odt")
{
// This test checks if default valued attributes aren't exported.
- if (xmlDocPtr pXmlDoc = parseExport("styles.xml"))
- {
- // <style:paragraph-properties>
- // For this element the only exported attributes are: "border-left", "border-bottom"
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "background-color");
- // border-left place
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "border-right");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "border-top");
- // border-bottom place
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "padding");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "padding-left");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "padding-right");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "padding-top");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "padding-bottom");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "writing-mode");
-
- // <style:paragraph-properties> should be absent, because it has only "text-align" attribute, which shouldn't be exported.
- // Assume that style:paragraph-properties and style:text-properties exists.
- assertXPathChildren(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']", 2);
-
- // <style:text-properties>
- // For this element the only exported attributes are: "use-window-font-color place", "font-size-asian", "font-name-asian", "font-family-asian", "font-name-complex", "font-family-complex"
- // use-window-font-color place
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "text-shadow");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "text-outline");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "text-line-through-style");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "text-line-through-type");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "text-underline-style");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "text-underline-color");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-size");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-weight");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-style");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-family");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-family-generic");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-pitch");
- // font-size-asian place
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-weight-asian");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-style-asian");
- // font-name-asian place
- // font-family-asian place
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-style-name-asian");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-family-generic-asian");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-pitch-asian");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-size-complex");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-weight-complex");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-style-complex");
- // font-name-complex place
- // font-family-complex place
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-style-name-complex");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-family-generic-complex");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-pitch-complex");
- }
+ xmlDocPtr pXmlDoc = parseExport("styles.xml");
+ if (!pXmlDoc)
+ return;
+
+ // <style:paragraph-properties>
+ // For this element the only exported attributes are: "border-left", "border-bottom"
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "background-color");
+ // border-left place
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "border-right");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "border-top");
+ // border-bottom place
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "padding");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "padding-left");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "padding-right");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "padding-top");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "padding-bottom");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:table-cell-properties", "writing-mode");
+
+ // <style:paragraph-properties> should be absent, because it has only "text-align" attribute, which shouldn't be exported.
+ // Assume that style:paragraph-properties and style:text-properties exists.
+ assertXPathChildren(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']", 2);
+
+ // <style:text-properties>
+ // For this element the only exported attributes are: "use-window-font-color place", "font-size-asian", "font-name-asian", "font-family-asian", "font-name-complex", "font-family-complex"
+ // use-window-font-color place
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "text-shadow");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "text-outline");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "text-line-through-style");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "text-line-through-type");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "text-underline-style");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "text-underline-color");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-size");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-weight");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-style");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-family");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-family-generic");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-pitch");
+ // font-size-asian place
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-weight-asian");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-style-asian");
+ // font-name-asian place
+ // font-family-asian place
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-style-name-asian");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-family-generic-asian");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-pitch-asian");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-size-complex");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-weight-complex");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-style-complex");
+ // font-name-complex place
+ // font-family-complex place
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-style-name-complex");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-family-generic-complex");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style3.2']/style:text-properties", "font-pitch-complex");
+
}
DECLARE_ODFIMPORT_TEST(testTableStyles4, "table_styles_4.odt")
@@ -1633,25 +1635,27 @@ DECLARE_ODFIMPORT_TEST(testTableStyles4, "table_styles_4.odt")
DECLARE_ODFEXPORT_TEST(testTableStyles5, "table_styles_5.odt")
{
// Test if cell styles doesn't have a style:parent-style-name attribute.
- if (xmlDocPtr pXmlDoc = parseExport("styles.xml"))
- {
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.1']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.2']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.3']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.4']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.5']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.6']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.7']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.8']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.9']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.10']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.11']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.12']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.13']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.14']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.15']", "parent-style-name");
- assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.16']", "parent-style-name");
- }
+ xmlDocPtr pXmlDoc = parseExport("styles.xml");
+ if (!pXmlDoc)
+ return;
+
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.1']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.2']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.3']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.4']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.5']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.6']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.7']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.8']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.9']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.10']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.11']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.12']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.13']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.14']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.15']", "parent-style-name");
+ assertXPathNoAttribute(pXmlDoc, "/office:document-styles/office:styles/style:style[@style:display-name='Test style.16']", "parent-style-name");
+
}
DECLARE_ODFEXPORT_TEST(testImageMimetype, "image-mimetype.odt")
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index 3dd23fbf5eaf..536eea8c6d07 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -425,21 +425,24 @@ DECLARE_OOXMLEXPORT_TEST(testMsoPosition, "bnc884615-mso-position.docx")
CPPUNIT_ASSERT( style3.indexOf( ";mso-position-horizontal-relative:text" ) >= 0 );
CPPUNIT_ASSERT( style3.indexOf( ";mso-position-vertical-relative:text" ) >= 0 );
}
- if(xmlDocPtr doc = parseExport("word/header1.xml"))
- {
- OUString style1 = getXPath(doc, "/w:hdr/w:p/w:r[2]/mc:AlternateContent/mc:Fallback/w:pict/v:rect", "style");
- CPPUNIT_ASSERT( style1.indexOf( ";width:335.75pt;" ) >= 0 );
- CPPUNIT_ASSERT( style1.indexOf( ";mso-position-horizontal-relative:page" ) >= 0 );
- CPPUNIT_ASSERT( style1.indexOf( ";mso-position-vertical-relative:page" ) >= 0 );
- OUString style2 = getXPath(doc, "/w:hdr/w:p/w:r[3]/mc:AlternateContent/mc:Fallback/w:pict/v:rect", "style");
- CPPUNIT_ASSERT( style2.indexOf( ";width:138.15pt;" ) >= 0 );
- CPPUNIT_ASSERT( style2.indexOf( ";mso-position-horizontal-relative:page" ) >= 0 );
- CPPUNIT_ASSERT( style2.indexOf( ";mso-position-vertical-relative:page" ) >= 0 );
- OUString style3 = getXPath(doc, "/w:hdr/w:p/w:r[4]/mc:AlternateContent/mc:Fallback/w:pict/v:rect", "style");
- CPPUNIT_ASSERT( style3.indexOf( ";width:163.8pt;" ) >= 0 );
- CPPUNIT_ASSERT( style3.indexOf( ";mso-position-horizontal-relative:page" ) >= 0 );
- CPPUNIT_ASSERT( style3.indexOf( ";mso-position-vertical-relative:page" ) >= 0 );
- }
+
+ xmlDocPtr doc = parseExport("word/header1.xml");
+ if(!doc)
+ return;
+
+ OUString style1 = getXPath(doc, "/w:hdr/w:p/w:r[2]/mc:AlternateContent/mc:Fallback/w:pict/v:rect", "style");
+ CPPUNIT_ASSERT( style1.indexOf( ";width:335.75pt;" ) >= 0 );
+ CPPUNIT_ASSERT( style1.indexOf( ";mso-position-horizontal-relative:page" ) >= 0 );
+ CPPUNIT_ASSERT( style1.indexOf( ";mso-position-vertical-relative:page" ) >= 0 );
+ OUString style2 = getXPath(doc, "/w:hdr/w:p/w:r[3]/mc:AlternateContent/mc:Fallback/w:pict/v:rect", "style");
+ CPPUNIT_ASSERT( style2.indexOf( ";width:138.15pt;" ) >= 0 );
+ CPPUNIT_ASSERT( style2.indexOf( ";mso-position-horizontal-relative:page" ) >= 0 );
+ CPPUNIT_ASSERT( style2.indexOf( ";mso-position-vertical-relative:page" ) >= 0 );
+ OUString style3 = getXPath(doc, "/w:hdr/w:p/w:r[4]/mc:AlternateContent/mc:Fallback/w:pict/v:rect", "style");
+ CPPUNIT_ASSERT( style3.indexOf( ";width:163.8pt;" ) >= 0 );
+ CPPUNIT_ASSERT( style3.indexOf( ";mso-position-horizontal-relative:page" ) >= 0 );
+ CPPUNIT_ASSERT( style3.indexOf( ";mso-position-vertical-relative:page" ) >= 0 );
+
}
DECLARE_OOXMLEXPORT_TEST(testWpsCharColor, "wps-char-color.docx")
@@ -651,34 +654,36 @@ DECLARE_OOXMLEXPORT_TEST(testOoxmlNumListZHCN, "numlist-zhcn.odt")
DECLARE_OOXMLEXPORT_TEST(testOOxmlOutlineNumberTypes, "outline-number-types.odt")
{
- if (xmlDocPtr pXmlDoc = parseExport("word/numbering.xml"))
- {
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[1]/w:pStyle", "val", "Heading1");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[1]/w:numFmt", "val", "none");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[2]/w:numFmt", "val", "decimalEnclosedCircle");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[3]/w:numFmt", "val", "decimal"); // CHARS_GREEK_UPPER_LETTER fallback to decimal
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[4]/w:numFmt", "val", "decimal"); // CHARS_GREEK_LOWER_LETTER fallback to decimal
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[5]/w:numFmt", "val", "arabicAlpha");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[6]/w:numFmt", "val", "hindiVowels");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[7]/w:numFmt", "val", "thaiLetters");
-
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[1]/w:numFmt", "val", "decimal");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[2]/w:numFmt", "val", "decimal");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[3]/w:numFmt", "val", "decimal");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[4]/w:numFmt", "val", "decimal");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[5]/w:numFmt", "val", "decimal");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[6]/w:numFmt", "val", "decimal");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[7]/w:numFmt", "val", "decimal");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[8]/w:numFmt", "val", "decimal");
-
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[1]/w:numFmt", "val", "decimal");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[2]/w:numFmt", "val", "decimal");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[3]/w:numFmt", "val", "decimal");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[4]/w:numFmt", "val", "decimal");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[5]/w:numFmt", "val", "decimal");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[6]/w:numFmt", "val", "decimal");
- assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[7]/w:numFmt", "val", "decimal");
- }
+ xmlDocPtr pXmlDoc = parseExport("word/numbering.xml");
+ if (!pXmlDoc)
+ return;
+
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[1]/w:pStyle", "val", "Heading1");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[1]/w:numFmt", "val", "none");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[2]/w:numFmt", "val", "decimalEnclosedCircle");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[3]/w:numFmt", "val", "decimal"); // CHARS_GREEK_UPPER_LETTER fallback to decimal
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[4]/w:numFmt", "val", "decimal"); // CHARS_GREEK_LOWER_LETTER fallback to decimal
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[5]/w:numFmt", "val", "arabicAlpha");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[6]/w:numFmt", "val", "hindiVowels");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[7]/w:numFmt", "val", "thaiLetters");
+
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[1]/w:numFmt", "val", "decimal");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[2]/w:numFmt", "val", "decimal");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[3]/w:numFmt", "val", "decimal");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[4]/w:numFmt", "val", "decimal");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[5]/w:numFmt", "val", "decimal");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[6]/w:numFmt", "val", "decimal");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[7]/w:numFmt", "val", "decimal");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[2]/w:lvl[8]/w:numFmt", "val", "decimal");
+
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[1]/w:numFmt", "val", "decimal");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[2]/w:numFmt", "val", "decimal");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[3]/w:numFmt", "val", "decimal");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[4]/w:numFmt", "val", "decimal");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[5]/w:numFmt", "val", "decimal");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[6]/w:numFmt", "val", "decimal");
+ assertXPath(pXmlDoc, "/w:numbering/w:abstractNum[3]/w:lvl[7]/w:numFmt", "val", "decimal");
+
}
DECLARE_OOXMLEXPORT_TEST(testNumParentStyle, "num-parent-style.docx")
diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx
index 66a022d49356..98a50e784b5b 100644
--- a/sw/source/core/access/accmap.cxx
+++ b/sw/source/core/access/accmap.cxx
@@ -1438,151 +1438,152 @@ void SwAccessibleMap::DoInvalidateShapeSelection(bool bInvalidateFocusMode /*=fa
pShapes = mpShapeMap->Copy( nShapes, pFESh, &pSelShape );
}
- if( pShapes )
- {
- typedef std::vector< ::rtl::Reference < ::accessibility::AccessibleShape > > VEC_SHAPE;
- VEC_SHAPE vecxShapeAdd;
- VEC_SHAPE vecxShapeRemove;
- int nCountSelectedShape=0;
+ if( !pShapes )
+ return;
- vcl::Window *pWin = GetShell()->GetWin();
- bool bFocused = pWin && pWin->HasFocus();
- SwAccessibleObjShape_Impl *pShape = pShapes;
- int nShapeCount = nShapes;
- while( nShapeCount )
+ typedef std::vector< ::rtl::Reference < ::accessibility::AccessibleShape > > VEC_SHAPE;
+ VEC_SHAPE vecxShapeAdd;
+ VEC_SHAPE vecxShapeRemove;
+ int nCountSelectedShape=0;
+
+ vcl::Window *pWin = GetShell()->GetWin();
+ bool bFocused = pWin && pWin->HasFocus();
+ SwAccessibleObjShape_Impl *pShape = pShapes;
+ int nShapeCount = nShapes;
+ while( nShapeCount )
+ {
+ if (pShape->second.is() && IsInSameLevel(pShape->first, pFESh))
{
- if (pShape->second.is() && IsInSameLevel(pShape->first, pFESh))
+ if( pShape < pSelShape )
{
- if( pShape < pSelShape )
+ if(pShape->second->ResetState( AccessibleStateType::SELECTED ))
{
- if(pShape->second->ResetState( AccessibleStateType::SELECTED ))
- {
- vecxShapeRemove.push_back(pShape->second);
- }
- pShape->second->ResetState( AccessibleStateType::FOCUSED );
+ vecxShapeRemove.push_back(pShape->second);
}
+ pShape->second->ResetState( AccessibleStateType::FOCUSED );
}
- --nShapeCount;
- ++pShape;
}
+ --nShapeCount;
+ ++pShape;
+ }
- VEC_SHAPE::iterator vi =vecxShapeRemove.begin();
- for (; vi != vecxShapeRemove.end(); ++vi)
+ VEC_SHAPE::iterator vi =vecxShapeRemove.begin();
+ for (; vi != vecxShapeRemove.end(); ++vi)
+ {
+ ::accessibility::AccessibleShape *pAccShape = vi->get();
+ if (pAccShape)
{
- ::accessibility::AccessibleShape *pAccShape = vi->get();
- if (pAccShape)
- {
- pAccShape->CommitChange(AccessibleEventId::SELECTION_CHANGED_REMOVE, uno::Any(), uno::Any());
- }
+ pAccShape->CommitChange(AccessibleEventId::SELECTION_CHANGED_REMOVE, uno::Any(), uno::Any());
}
+ }
- pShape = pShapes;
+ pShape = pShapes;
- while( nShapes )
+ while( nShapes )
+ {
+ if (pShape->second.is() && IsInSameLevel(pShape->first, pFESh))
{
- if (pShape->second.is() && IsInSameLevel(pShape->first, pFESh))
+ if( pShape >= pSelShape )
{
- if( pShape >= pSelShape )
- {
- //first fire focus event
- if( bFocused && 1 == nSelShapes )
- pShape->second->SetState( AccessibleStateType::FOCUSED );
- else
- pShape->second->ResetState( AccessibleStateType::FOCUSED );
+ //first fire focus event
+ if( bFocused && 1 == nSelShapes )
+ pShape->second->SetState( AccessibleStateType::FOCUSED );
+ else
+ pShape->second->ResetState( AccessibleStateType::FOCUSED );
- if(pShape->second->SetState( AccessibleStateType::SELECTED ))
- {
- vecxShapeAdd.push_back(pShape->second);
- }
- ++nCountSelectedShape;
+ if(pShape->second->SetState( AccessibleStateType::SELECTED ))
+ {
+ vecxShapeAdd.push_back(pShape->second);
}
+ ++nCountSelectedShape;
}
-
- --nShapes;
- ++pShape;
}
- const unsigned int SELECTION_WITH_NUM = 10;
- if (vecxShapeAdd.size() > SELECTION_WITH_NUM )
+ --nShapes;
+ ++pShape;
+ }
+
+ const unsigned int SELECTION_WITH_NUM = 10;
+ if (vecxShapeAdd.size() > SELECTION_WITH_NUM )
+ {
+ uno::Reference< XAccessible > xDoc = GetDocumentView( );
+ SwAccessibleContext * pCont = static_cast<SwAccessibleContext *>(xDoc.get());
+ if (pCont)
+ {
+ AccessibleEventObject aEvent;
+ aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_WITHIN;
+ pCont->FireAccessibleEvent(aEvent);
+ }
+ }
+ else
+ {
+ short nEventID = AccessibleEventId::SELECTION_CHANGED_ADD;
+ if (nCountSelectedShape <= 1 && vecxShapeAdd.size() == 1 )
{
- uno::Reference< XAccessible > xDoc = GetDocumentView( );
- SwAccessibleContext * pCont = static_cast<SwAccessibleContext *>(xDoc.get());
- if (pCont)
- {
- AccessibleEventObject aEvent;
- aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_WITHIN;
- pCont->FireAccessibleEvent(aEvent);
- }
+ nEventID = AccessibleEventId::SELECTION_CHANGED;
}
- else
+ vi = vecxShapeAdd.begin();
+ for (; vi != vecxShapeAdd.end(); ++vi)
{
- short nEventID = AccessibleEventId::SELECTION_CHANGED_ADD;
- if (nCountSelectedShape <= 1 && vecxShapeAdd.size() == 1 )
- {
- nEventID = AccessibleEventId::SELECTION_CHANGED;
- }
- vi = vecxShapeAdd.begin();
- for (; vi != vecxShapeAdd.end(); ++vi)
+ ::accessibility::AccessibleShape *pAccShape = vi->get();
+ if (pAccShape)
{
- ::accessibility::AccessibleShape *pAccShape = vi->get();
- if (pAccShape)
- {
- pAccShape->CommitChange(nEventID, uno::Any(), uno::Any());
- }
+ pAccShape->CommitChange(nEventID, uno::Any(), uno::Any());
}
}
+ }
- vi = vecxShapeAdd.begin();
- for (; vi != vecxShapeAdd.end(); ++vi)
+ vi = vecxShapeAdd.begin();
+ for (; vi != vecxShapeAdd.end(); ++vi)
+ {
+ ::accessibility::AccessibleShape *pAccShape = vi->get();
+ if (pAccShape)
{
- ::accessibility::AccessibleShape *pAccShape = vi->get();
- if (pAccShape)
+ SdrObject *pObj = GetSdrObjectFromXShape(pAccShape->GetXShape());
+ SwFrameFormat *pFrameFormat = pObj ? FindFrameFormat( pObj ) : nullptr;
+ if (pFrameFormat)
{
- SdrObject *pObj = GetSdrObjectFromXShape(pAccShape->GetXShape());
- SwFrameFormat *pFrameFormat = pObj ? FindFrameFormat( pObj ) : nullptr;
- if (pFrameFormat)
+ const SwFormatAnchor& rAnchor = pFrameFormat->GetAnchor();
+ if( rAnchor.GetAnchorId() == RndStdIds::FLY_AS_CHAR )
{
- const SwFormatAnchor& rAnchor = pFrameFormat->GetAnchor();
- if( rAnchor.GetAnchorId() == RndStdIds::FLY_AS_CHAR )
+ uno::Reference< XAccessible > xPara = pAccShape->getAccessibleParent();
+ if (xPara.is())
{
- uno::Reference< XAccessible > xPara = pAccShape->getAccessibleParent();
- if (xPara.is())
+ uno::Reference< XAccessibleContext > xParaContext = xPara->getAccessibleContext();
+ if (xParaContext.is() && xParaContext->getAccessibleRole() == AccessibleRole::PARAGRAPH)
{
- uno::Reference< XAccessibleContext > xParaContext = xPara->getAccessibleContext();
- if (xParaContext.is() && xParaContext->getAccessibleRole() == AccessibleRole::PARAGRAPH)
+ SwAccessibleParagraph* pAccPara = static_cast< SwAccessibleParagraph *>(xPara.get());
+ if (pAccPara)
{
- SwAccessibleParagraph* pAccPara = static_cast< SwAccessibleParagraph *>(xPara.get());
- if (pAccPara)
- {
- m_setParaAdd.insert(pAccPara);
- }
+ m_setParaAdd.insert(pAccPara);
}
}
}
}
}
}
- vi = vecxShapeRemove.begin();
- for (; vi != vecxShapeRemove.end(); ++vi)
+ }
+ vi = vecxShapeRemove.begin();
+ for (; vi != vecxShapeRemove.end(); ++vi)
+ {
+ ::accessibility::AccessibleShape *pAccShape = vi->get();
+ if (pAccShape)
{
- ::accessibility::AccessibleShape *pAccShape = vi->get();
- if (pAccShape)
+ uno::Reference< XAccessible > xPara = pAccShape->getAccessibleParent();
+ uno::Reference< XAccessibleContext > xParaContext = xPara->getAccessibleContext();
+ if (xParaContext.is() && xParaContext->getAccessibleRole() == AccessibleRole::PARAGRAPH)
{
- uno::Reference< XAccessible > xPara = pAccShape->getAccessibleParent();
- uno::Reference< XAccessibleContext > xParaContext = xPara->getAccessibleContext();
- if (xParaContext.is() && xParaContext->getAccessibleRole() == AccessibleRole::PARAGRAPH)
+ SwAccessibleParagraph* pAccPara = static_cast< SwAccessibleParagraph *>(xPara.get());
+ if (m_setParaAdd.count(pAccPara) == 0 )
{
- SwAccessibleParagraph* pAccPara = static_cast< SwAccessibleParagraph *>(xPara.get());
- if (m_setParaAdd.count(pAccPara) == 0 )
- {
- m_setParaRemove.insert(pAccPara);
- }
+ m_setParaRemove.insert(pAccPara);
}
}
}
-
- delete[] pShapes;
}
+
+ delete[] pShapes;
+
}
//Marge with DoInvalidateShapeSelection
diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx
index 84fded6f5a2c..0d60a9d09af3 100644
--- a/sw/source/core/access/accpara.cxx
+++ b/sw/source/core/access/accpara.cxx
@@ -480,34 +480,35 @@ void SwAccessibleParagraph::InvalidateCursorPos_()
}
vcl::Window *pWin = GetWindow();
- if( nOld != nNew )
- {
- // The cursor's node position is simulated by the focus!
- if( pWin && pWin->HasFocus() && -1 == nOld )
- FireStateChangedEvent( AccessibleStateType::FOCUSED, true );
+ if( nOld == nNew )
+ return;
- AccessibleEventObject aEvent;
- aEvent.EventId = AccessibleEventId::CARET_CHANGED;
- aEvent.OldValue <<= nOld;
- aEvent.NewValue <<= nNew;
+ // The cursor's node position is simulated by the focus!
+ if( pWin && pWin->HasFocus() && -1 == nOld )
+ FireStateChangedEvent( AccessibleStateType::FOCUSED, true );
- FireAccessibleEvent( aEvent );
+ AccessibleEventObject aEvent;
+ aEvent.EventId = AccessibleEventId::CARET_CHANGED;
+ aEvent.OldValue <<= nOld;
+ aEvent.NewValue <<= nNew;
- if( pWin && pWin->HasFocus() && -1 == nNew )
- FireStateChangedEvent( AccessibleStateType::FOCUSED, false );
- //To send TEXT_SELECTION_CHANGED event
- sal_Int32 nStart=0;
- sal_Int32 nEnd =0;
- bool bCurSelection=GetSelection(nStart,nEnd);
- if(m_bLastHasSelection || bCurSelection )
- {
- aEvent.EventId = AccessibleEventId::TEXT_SELECTION_CHANGED;
- aEvent.OldValue.clear();
- aEvent.NewValue.clear();
- FireAccessibleEvent(aEvent);
- }
- m_bLastHasSelection =bCurSelection;
+ FireAccessibleEvent( aEvent );
+
+ if( pWin && pWin->HasFocus() && -1 == nNew )
+ FireStateChangedEvent( AccessibleStateType::FOCUSED, false );
+ //To send TEXT_SELECTION_CHANGED event
+ sal_Int32 nStart=0;
+ sal_Int32 nEnd =0;
+ bool bCurSelection=GetSelection(nStart,nEnd);
+ if(m_bLastHasSelection || bCurSelection )
+ {
+ aEvent.EventId = AccessibleEventId::TEXT_SELECTION_CHANGED;
+ aEvent.OldValue.clear();
+ aEvent.NewValue.clear();
+ FireAccessibleEvent(aEvent);
}
+ m_bLastHasSelection =bCurSelection;
+
}
void SwAccessibleParagraph::InvalidateFocus_()
diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx
index d0c0839ec0ae..2d45bac285f0 100644
--- a/sw/source/core/doc/doc.cxx
+++ b/sw/source/core/doc/doc.cxx
@@ -777,131 +777,132 @@ void SwDoc::UpdatePagesForPrintingWithPostItData(
&& "print post-its without post-it data?");
const SetGetExpFields::size_type nPostItCount =
rData.HasPostItData() ? rData.m_pPostItFields->size() : 0;
- if (nPostItMode != SwPostItMode::NONE && nPostItCount > 0)
+ if (nPostItMode == SwPostItMode::NONE || nPostItCount <= 0)
+ return;
+
+ SET_CURR_SHELL( rData.m_pPostItShell.get() );
+
+ // clear document and move to end of it
+ SwDoc & rPostItDoc(*rData.m_pPostItShell->GetDoc());
+ SwPaM aPam(rPostItDoc.GetNodes().GetEndOfContent());
+ aPam.Move( fnMoveBackward, GoInDoc );
+ aPam.SetMark();
+ aPam.Move( fnMoveForward, GoInDoc );
+ rPostItDoc.getIDocumentContentOperations().DeleteRange( aPam );
+
+ const StringRangeEnumerator aRangeEnum( rData.GetPageRange(), 1, nDocPageCount, 0 );
+
+ // For mode SwPostItMode::EndPage:
+ // maps a physical page number to the page number in post-it document that holds
+ // the first post-it for that physical page . Needed to relate the correct start frames
+ // from the post-it doc to the physical page of the document
+ std::map< sal_Int32, sal_Int32 > aPostItLastStartPageNum;
+
+ // add all post-its on valid pages within the page range to the
+ // temporary post-it document.
+ // Since the array of post-it fields is sorted by page and line number we will
+ // already get them in the correct order
+ sal_uInt16 nVirtPg = 0, nLineNo = 0, nLastPageNum = 0, nPhyPageNum = 0;
+ bool bIsFirstPostIt = true;
+ for (SetGetExpFields::size_type i = 0; i < nPostItCount; ++i)
{
- SET_CURR_SHELL( rData.m_pPostItShell.get() );
-
- // clear document and move to end of it
- SwDoc & rPostItDoc(*rData.m_pPostItShell->GetDoc());
- SwPaM aPam(rPostItDoc.GetNodes().GetEndOfContent());
- aPam.Move( fnMoveBackward, GoInDoc );
- aPam.SetMark();
- aPam.Move( fnMoveForward, GoInDoc );
- rPostItDoc.getIDocumentContentOperations().DeleteRange( aPam );
-
- const StringRangeEnumerator aRangeEnum( rData.GetPageRange(), 1, nDocPageCount, 0 );
-
- // For mode SwPostItMode::EndPage:
- // maps a physical page number to the page number in post-it document that holds
- // the first post-it for that physical page . Needed to relate the correct start frames
- // from the post-it doc to the physical page of the document
- std::map< sal_Int32, sal_Int32 > aPostItLastStartPageNum;
-
- // add all post-its on valid pages within the page range to the
- // temporary post-it document.
- // Since the array of post-it fields is sorted by page and line number we will
- // already get them in the correct order
- sal_uInt16 nVirtPg = 0, nLineNo = 0, nLastPageNum = 0, nPhyPageNum = 0;
- bool bIsFirstPostIt = true;
- for (SetGetExpFields::size_type i = 0; i < nPostItCount; ++i)
+ PostItField_& rPostIt = static_cast<PostItField_&>(*(*rData.m_pPostItFields)[ i ]);
+ nLastPageNum = nPhyPageNum;
+ nPhyPageNum = rPostIt.GetPageNo(
+ aRangeEnum, rData.GetValidPagesSet(), nVirtPg, nLineNo );
+ if (nPhyPageNum)
{
- PostItField_& rPostIt = static_cast<PostItField_&>(*(*rData.m_pPostItFields)[ i ]);
- nLastPageNum = nPhyPageNum;
- nPhyPageNum = rPostIt.GetPageNo(
- aRangeEnum, rData.GetValidPagesSet(), nVirtPg, nLineNo );
- if (nPhyPageNum)
- {
- // need to insert a page break?
- // In SwPostItMode::EndPage mode for each document page the following
- // post-it page needs to start on a new page
- const bool bNewPage = nPostItMode == SwPostItMode::EndPage &&
- !bIsFirstPostIt && nPhyPageNum != nLastPageNum;
+ // need to insert a page break?
+ // In SwPostItMode::EndPage mode for each document page the following
+ // post-it page needs to start on a new page
+ const bool bNewPage = nPostItMode == SwPostItMode::EndPage &&
+ !bIsFirstPostIt && nPhyPageNum != nLastPageNum;
- lcl_FormatPostIt( &rData.m_pPostItShell->GetDoc()->getIDocumentContentOperations(), aPam,
- rPostIt.GetPostIt(), bNewPage, bIsFirstPostIt, nVirtPg, nLineNo );
- bIsFirstPostIt = false;
+ lcl_FormatPostIt( &rData.m_pPostItShell->GetDoc()->getIDocumentContentOperations(), aPam,
+ rPostIt.GetPostIt(), bNewPage, bIsFirstPostIt, nVirtPg, nLineNo );
+ bIsFirstPostIt = false;
- if (nPostItMode == SwPostItMode::EndPage)
- {
- // get the correct number of current pages for the post-it document
- rData.m_pPostItShell->CalcLayout();
- const sal_Int32 nPages = rData.m_pPostItShell->GetPageCount();
- aPostItLastStartPageNum[ nPhyPageNum ] = nPages;
- }
+ if (nPostItMode == SwPostItMode::EndPage)
+ {
+ // get the correct number of current pages for the post-it document
+ rData.m_pPostItShell->CalcLayout();
+ const sal_Int32 nPages = rData.m_pPostItShell->GetPageCount();
+ aPostItLastStartPageNum[ nPhyPageNum ] = nPages;
}
}
+ }
- // format post-it doc to get correct number of pages
- rData.m_pPostItShell->CalcLayout();
+ // format post-it doc to get correct number of pages
+ rData.m_pPostItShell->CalcLayout();
- SwRootFrame* pPostItRoot = rData.m_pPostItShell->GetLayout();
- //tdf#103313 print dialog maxes out cpu as Idles never get to
- //complete this postitshell's desire to complete formatting
- pPostItRoot->ResetIdleFormat();
+ SwRootFrame* pPostItRoot = rData.m_pPostItShell->GetLayout();
+ //tdf#103313 print dialog maxes out cpu as Idles never get to
+ //complete this postitshell's desire to complete formatting
+ pPostItRoot->ResetIdleFormat();
- const sal_Int32 nPostItDocPageCount = rData.m_pPostItShell->GetPageCount();
+ const sal_Int32 nPostItDocPageCount = rData.m_pPostItShell->GetPageCount();
- if (nPostItMode == SwPostItMode::Only || nPostItMode == SwPostItMode::EndDoc)
- {
- // now add those post-it pages to the vector of pages to print
- // or replace them if only post-its should be printed
+ if (nPostItMode == SwPostItMode::Only || nPostItMode == SwPostItMode::EndDoc)
+ {
+ // now add those post-it pages to the vector of pages to print
+ // or replace them if only post-its should be printed
- if (nPostItMode == SwPostItMode::Only)
- {
- // no document page to be printed
- rData.GetPagesToPrint().clear();
- }
+ if (nPostItMode == SwPostItMode::Only)
+ {
+ // no document page to be printed
+ rData.GetPagesToPrint().clear();
+ }
- // now we just need to add the post-it pages to be printed to the
- // end of the vector of pages to print
- sal_Int32 nPageNum = 0;
- const SwPageFrame * pPageFrame = static_cast<SwPageFrame*>(pPostItRoot->Lower());
- while( pPageFrame && nPageNum < nPostItDocPageCount )
- {
- ++nPageNum;
- // negative page number indicates page is from the post-it doc
- rData.GetPagesToPrint().push_back( -nPageNum );
- pPageFrame = static_cast<const SwPageFrame*>(pPageFrame->GetNext());
- }
- OSL_ENSURE( nPageNum == nPostItDocPageCount, "unexpected number of pages" );
+ // now we just need to add the post-it pages to be printed to the
+ // end of the vector of pages to print
+ sal_Int32 nPageNum = 0;
+ const SwPageFrame * pPageFrame = static_cast<SwPageFrame*>(pPostItRoot->Lower());
+ while( pPageFrame && nPageNum < nPostItDocPageCount )
+ {
+ ++nPageNum;
+ // negative page number indicates page is from the post-it doc
+ rData.GetPagesToPrint().push_back( -nPageNum );
+ pPageFrame = static_cast<const SwPageFrame*>(pPageFrame->GetNext());
}
- else if (nPostItMode == SwPostItMode::EndPage)
+ OSL_ENSURE( nPageNum == nPostItDocPageCount, "unexpected number of pages" );
+ }
+ else if (nPostItMode == SwPostItMode::EndPage)
+ {
+ // the next step is to find all the pages from the post-it
+ // document that should be printed for a given physical page
+ // of the document
+
+ std::vector< sal_Int32 > aTmpPagesToPrint;
+ sal_Int32 nLastPostItPage(0);
+ const size_t nNum = rData.GetPagesToPrint().size();
+ for (size_t i = 0 ; i < nNum; ++i)
{
- // the next step is to find all the pages from the post-it
- // document that should be printed for a given physical page
- // of the document
-
- std::vector< sal_Int32 > aTmpPagesToPrint;
- sal_Int32 nLastPostItPage(0);
- const size_t nNum = rData.GetPagesToPrint().size();
- for (size_t i = 0 ; i < nNum; ++i)
+ // add the physical page to print from the document
+ const sal_Int32 nPhysPage = rData.GetPagesToPrint()[i];
+ aTmpPagesToPrint.push_back( nPhysPage );
+
+ // add the post-it document pages to print, i.e those
+ // post-it pages that have the data for the above physical page
+ std::map<sal_Int32, sal_Int32>::const_iterator const iter(
+ aPostItLastStartPageNum.find(nPhysPage));
+ if (iter != aPostItLastStartPageNum.end())
{
- // add the physical page to print from the document
- const sal_Int32 nPhysPage = rData.GetPagesToPrint()[i];
- aTmpPagesToPrint.push_back( nPhysPage );
-
- // add the post-it document pages to print, i.e those
- // post-it pages that have the data for the above physical page
- std::map<sal_Int32, sal_Int32>::const_iterator const iter(
- aPostItLastStartPageNum.find(nPhysPage));
- if (iter != aPostItLastStartPageNum.end())
+ for (sal_Int32 j = nLastPostItPage + 1;
+ j <= iter->second; ++j)
{
- for (sal_Int32 j = nLastPostItPage + 1;
- j <= iter->second; ++j)
- {
- // negative page number indicates page is from the
- aTmpPagesToPrint.push_back(-j); // post-it document
- }
- nLastPostItPage = iter->second;
+ // negative page number indicates page is from the
+ aTmpPagesToPrint.push_back(-j); // post-it document
}
+ nLastPostItPage = iter->second;
}
-
- // finally we need to assign those vectors to the resulting ones.
- // swapping the data should be more efficient than assigning since
- // we won't need the temporary vectors anymore
- rData.GetPagesToPrint().swap( aTmpPagesToPrint );
}
+
+ // finally we need to assign those vectors to the resulting ones.
+ // swapping the data should be more efficient than assigning since
+ // we won't need the temporary vectors anymore
+ rData.GetPagesToPrint().swap( aTmpPagesToPrint );
}
+
}
void SwDoc::CalculatePagePairsForProspectPrinting(
diff --git a/sw/source/core/doc/docftn.cxx b/sw/source/core/doc/docftn.cxx
index afafe83ac769..3e333adcdecc 100644
--- a/sw/source/core/doc/docftn.cxx
+++ b/sw/source/core/doc/docftn.cxx
@@ -251,111 +251,43 @@ SwFootnoteInfo::SwFootnoteInfo() :
void SwDoc::SetFootnoteInfo(const SwFootnoteInfo& rInfo)
{
SwRootFrame* pTmpRoot = getIDocumentLayoutAccess().GetCurrentLayout();
- if( !(GetFootnoteInfo() == rInfo) )
- {
- const SwFootnoteInfo &rOld = GetFootnoteInfo();
+ if( GetFootnoteInfo() == rInfo )
+ return;
- if (GetIDocumentUndoRedo().DoesUndo())
- {
- GetIDocumentUndoRedo().AppendUndo( new SwUndoFootNoteInfo(rOld, this) );
- }
+ const SwFootnoteInfo &rOld = GetFootnoteInfo();
- bool bFootnotePos = rInfo.ePos != rOld.ePos;
- bool bFootnoteDesc = rOld.ePos == FTNPOS_CHAPTER &&
- rInfo.GetPageDesc( *this ) != rOld.GetPageDesc( *this );
- bool bExtra = rInfo.aQuoVadis != rOld.aQuoVadis ||
- rInfo.aErgoSum != rOld.aErgoSum ||
- rInfo.aFormat.GetNumberingType() != rOld.aFormat.GetNumberingType() ||
- rInfo.GetPrefix() != rOld.GetPrefix() ||
- rInfo.GetSuffix() != rOld.GetSuffix();
- SwCharFormat *pOldChrFormat = rOld.GetCharFormat( *this ),
- *pNewChrFormat = rInfo.GetCharFormat( *this );
- bool bFootnoteChrFormats = pOldChrFormat != pNewChrFormat;
-
- *mpFootnoteInfo = rInfo;
-
- if (pTmpRoot)
- {
- std::set<SwRootFrame*> aAllLayouts = GetAllLayouts();
- if ( bFootnotePos )
- for( auto aLayout : aAllLayouts )
- aLayout->AllRemoveFootnotes();
- else
- {
- for( auto aLayout : aAllLayouts )
- aLayout->UpdateFootnoteNums();
- if ( bFootnoteDesc )
- for( auto aLayout : aAllLayouts )
- aLayout->CheckFootnotePageDescs(false);
- if ( bExtra )
- {
- // For messages regarding ErgoSum etc. we save the extra code and use the
- // available methods.
- SwFootnoteIdxs& rFootnoteIdxs = GetFootnoteIdxs();
- for( size_t nPos = 0; nPos < rFootnoteIdxs.size(); ++nPos )
- {
- SwTextFootnote *pTextFootnote = rFootnoteIdxs[ nPos ];
- const SwFormatFootnote &rFootnote = pTextFootnote->GetFootnote();
- if ( !rFootnote.IsEndNote() )
- pTextFootnote->SetNumber(rFootnote.GetNumber(), rFootnote.GetNumStr());
- }
- }
- }
- }
- if( FTNNUM_PAGE != rInfo.eNum )
- GetFootnoteIdxs().UpdateAllFootnote();
- else if( bFootnoteChrFormats )
- {
- SwFormatChg aOld( pOldChrFormat );
- SwFormatChg aNew( pNewChrFormat );
- mpFootnoteInfo->ModifyNotification( &aOld, &aNew );
- }
-
- // #i81002# no update during loading
- if ( !IsInReading() )
- {
- getIDocumentFieldsAccess().UpdateRefFields();
- }
- getIDocumentState().SetModified();
+ if (GetIDocumentUndoRedo().DoesUndo())
+ {
+ GetIDocumentUndoRedo().AppendUndo( new SwUndoFootNoteInfo(rOld, this) );
}
-}
-void SwDoc::SetEndNoteInfo(const SwEndNoteInfo& rInfo)
-{
- SwRootFrame* pTmpRoot = getIDocumentLayoutAccess().GetCurrentLayout();
- if( !(GetEndNoteInfo() == rInfo) )
+ bool bFootnotePos = rInfo.ePos != rOld.ePos;
+ bool bFootnoteDesc = rOld.ePos == FTNPOS_CHAPTER &&
+ rInfo.GetPageDesc( *this ) != rOld.GetPageDesc( *this );
+ bool bExtra = rInfo.aQuoVadis != rOld.aQuoVadis ||
+ rInfo.aErgoSum != rOld.aErgoSum ||
+ rInfo.aFormat.GetNumberingType() != rOld.aFormat.GetNumberingType() ||
+ rInfo.GetPrefix() != rOld.GetPrefix() ||
+ rInfo.GetSuffix() != rOld.GetSuffix();
+ SwCharFormat *pOldChrFormat = rOld.GetCharFormat( *this ),
+ *pNewChrFormat = rInfo.GetCharFormat( *this );
+ bool bFootnoteChrFormats = pOldChrFormat != pNewChrFormat;
+
+ *mpFootnoteInfo = rInfo;
+
+ if (pTmpRoot)
{
- if(GetIDocumentUndoRedo().DoesUndo())
- {
- SwUndo *const pUndo( new SwUndoEndNoteInfo( GetEndNoteInfo(), this ) );
- GetIDocumentUndoRedo().AppendUndo(pUndo);
- }
-
- bool bNumChg = rInfo.nFootnoteOffset != GetEndNoteInfo().nFootnoteOffset;
- // this seems to be an optimization: UpdateAllFootnote() is only called
- // if the offset changes; if the offset is the same,
- // but type/prefix/suffix changes, just set new numbers.
- bool const bExtra = !bNumChg &&
- ( (rInfo.aFormat.GetNumberingType() !=
- GetEndNoteInfo().aFormat.GetNumberingType())
- || (rInfo.GetPrefix() != GetEndNoteInfo().GetPrefix())
- || (rInfo.GetSuffix() != GetEndNoteInfo().GetSuffix())
- );
- bool bFootnoteDesc = rInfo.GetPageDesc( *this ) !=
- GetEndNoteInfo().GetPageDesc( *this );
- SwCharFormat *pOldChrFormat = GetEndNoteInfo().GetCharFormat( *this ),
- *pNewChrFormat = rInfo.GetCharFormat( *this );
- bool bFootnoteChrFormats = pOldChrFormat != pNewChrFormat;
-
- *mpEndNoteInfo = rInfo;
-
- if ( pTmpRoot )
+ std::set<SwRootFrame*> aAllLayouts = GetAllLayouts();
+ if ( bFootnotePos )
+ for( auto aLayout : aAllLayouts )
+ aLayout->AllRemoveFootnotes();
+ else
{
+ for( auto aLayout : aAllLayouts )
+ aLayout->UpdateFootnoteNums();
if ( bFootnoteDesc )
- {
- for( auto aLayout : GetAllLayouts() )
- aLayout->CheckFootnotePageDescs(true);
- }
+ for( auto aLayout : aAllLayouts )
+ aLayout->CheckFootnotePageDescs(false);
if ( bExtra )
{
// For messages regarding ErgoSum etc. we save the extra code and use the
@@ -365,27 +297,97 @@ void SwDoc::SetEndNoteInfo(const SwEndNoteInfo& rInfo)
{
SwTextFootnote *pTextFootnote = rFootnoteIdxs[ nPos ];
const SwFormatFootnote &rFootnote = pTextFootnote->GetFootnote();
- if ( rFootnote.IsEndNote() )
+ if ( !rFootnote.IsEndNote() )
pTextFootnote->SetNumber(rFootnote.GetNumber(), rFootnote.GetNumStr());
}
}
}
- if( bNumChg )
- GetFootnoteIdxs().UpdateAllFootnote();
- else if( bFootnoteChrFormats )
+ }
+ if( FTNNUM_PAGE != rInfo.eNum )
+ GetFootnoteIdxs().UpdateAllFootnote();
+ else if( bFootnoteChrFormats )
+ {
+ SwFormatChg aOld( pOldChrFormat );
+ SwFormatChg aNew( pNewChrFormat );
+ mpFootnoteInfo->ModifyNotification( &aOld, &aNew );
+ }
+
+ // #i81002# no update during loading
+ if ( !IsInReading() )
+ {
+ getIDocumentFieldsAccess().UpdateRefFields();
+ }
+ getIDocumentState().SetModified();
+
+}
+
+void SwDoc::SetEndNoteInfo(const SwEndNoteInfo& rInfo)
+{
+ SwRootFrame* pTmpRoot = getIDocumentLayoutAccess().GetCurrentLayout();
+ if( GetEndNoteInfo() == rInfo )
+ return;
+
+ if(GetIDocumentUndoRedo().DoesUndo())
+ {
+ SwUndo *const pUndo( new SwUndoEndNoteInfo( GetEndNoteInfo(), this ) );
+ GetIDocumentUndoRedo().AppendUndo(pUndo);
+ }
+
+ bool bNumChg = rInfo.nFootnoteOffset != GetEndNoteInfo().nFootnoteOffset;
+ // this seems to be an optimization: UpdateAllFootnote() is only called
+ // if the offset changes; if the offset is the same,
+ // but type/prefix/suffix changes, just set new numbers.
+ bool const bExtra = !bNumChg &&
+ ( (rInfo.aFormat.GetNumberingType() !=
+ GetEndNoteInfo().aFormat.GetNumberingType())
+ || (rInfo.GetPrefix() != GetEndNoteInfo().GetPrefix())
+ || (rInfo.GetSuffix() != GetEndNoteInfo().GetSuffix())
+ );
+ bool bFootnoteDesc = rInfo.GetPageDesc( *this ) !=
+ GetEndNoteInfo().GetPageDesc( *this );
+ SwCharFormat *pOldChrFormat = GetEndNoteInfo().GetCharFormat( *this ),
+ *pNewChrFormat = rInfo.GetCharFormat( *this );
+ bool bFootnoteChrFormats = pOldChrFormat != pNewChrFormat;
+
+ *mpEndNoteInfo = rInfo;
+
+ if ( pTmpRoot )
+ {
+ if ( bFootnoteDesc )
{
- SwFormatChg aOld( pOldChrFormat );
- SwFormatChg aNew( pNewChrFormat );
- mpEndNoteInfo->ModifyNotification( &aOld, &aNew );
+ for( auto aLayout : GetAllLayouts() )
+ aLayout->CheckFootnotePageDescs(true);
}
-
- // #i81002# no update during loading
- if ( !IsInReading() )
+ if ( bExtra )
{
- getIDocumentFieldsAccess().UpdateRefFields();
+ // For messages regarding ErgoSum etc. we save the extra code and use the
+ // available methods.
+ SwFootnoteIdxs& rFootnoteIdxs = GetFootnoteIdxs();
+ for( size_t nPos = 0; nPos < rFootnoteIdxs.size(); ++nPos )
+ {
+ SwTextFootnote *pTextFootnote = rFootnoteIdxs[ nPos ];
+ const SwFormatFootnote &rFootnote = pTextFootnote->GetFootnote();
+ if ( rFootnote.IsEndNote() )
+ pTextFootnote->SetNumber(rFootnote.GetNumber(), rFootnote.GetNumStr());
+ }
}
- getIDocumentState().SetModified();
}
+ if( bNumChg )
+ GetFootnoteIdxs().UpdateAllFootnote();
+ else if( bFootnoteChrFormats )
+ {
+ SwFormatChg aOld( pOldChrFormat );
+ SwFormatChg aNew( pNewChrFormat );
+ mpEndNoteInfo->ModifyNotification( &aOld, &aNew );
+ }
+
+ // #i81002# no update during loading
+ if ( !IsInReading() )
+ {
+ getIDocumentFieldsAccess().UpdateRefFields();
+ }
+ getIDocumentState().SetModified();
+
}
bool SwDoc::SetCurFootnote( const SwPaM& rPam, const OUString& rNumStr,
diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx
index 347c8cc8c91f..7644a107200e 100644
--- a/sw/source/core/doc/docredln.cxx
+++ b/sw/source/core/doc/docredln.cxx
@@ -1364,78 +1364,79 @@ void SwRangeRedline::MoveToSection()
void SwRangeRedline::CopyToSection()
{
- if( !pContentSect )
- {
- const SwPosition* pStt = Start(),
- * pEnd = pStt == GetPoint() ? GetMark() : GetPoint();
+ if( pContentSect )
+ return;
- SwContentNode* pCSttNd = pStt->nNode.GetNode().GetContentNode();
- SwContentNode* pCEndNd = pEnd->nNode.GetNode().GetContentNode();
+ const SwPosition* pStt = Start(),
+ * pEnd = pStt == GetPoint() ? GetMark() : GetPoint();
- SwStartNode* pSttNd;
- SwDoc* pDoc = GetDoc();
- SwNodes& rNds = pDoc->GetNodes();
+ SwContentNode* pCSttNd = pStt->nNode.GetNode().GetContentNode();
+ SwContentNode* pCEndNd = pEnd->nNode.GetNode().GetContentNode();
- bool bSaveCopyFlag = pDoc->IsCopyIsMove(),
- bSaveRdlMoveFlg = pDoc->getIDocumentRedlineAccess().IsRedlineMove();
- pDoc->SetCopyIsMove( true );
+ SwStartNode* pSttNd;
+ SwDoc* pDoc = GetDoc();
+ SwNodes& rNds = pDoc->GetNodes();
- // The IsRedlineMove() flag causes the behaviour of the
- // SwDoc::_CopyFlyInFly method to change, which will eventually be
- // called by the pDoc->Copy line below (through SwDoc::Copy_,
- // SwDoc::CopyWithFlyInFly). This rather obscure bugfix
- // apparently never really worked.
- pDoc->getIDocumentRedlineAccess().SetRedlineMove( pStt->nContent == 0 );
+ bool bSaveCopyFlag = pDoc->IsCopyIsMove(),
+ bSaveRdlMoveFlg = pDoc->getIDocumentRedlineAccess().IsRedlineMove();
+ pDoc->SetCopyIsMove( true );
- if( pCSttNd )
- {
- SwTextFormatColl* pColl = (pCSttNd && pCSttNd->IsTextNode() )
- ? pCSttNd->GetTextNode()->GetTextColl()
- : pDoc->getIDocumentStylePoolAccess().GetTextCollFromPool(RES_POOLCOLL_STANDARD);
+ // The IsRedlineMove() flag causes the behaviour of the
+ // SwDoc::_CopyFlyInFly method to change, which will eventually be
+ // called by the pDoc->Copy line below (through SwDoc::Copy_,
+ // SwDoc::CopyWithFlyInFly). This rather obscure bugfix
+ // apparently never really worked.
+ pDoc->getIDocumentRedlineAccess().SetRedlineMove( pStt->nContent == 0 );
- pSttNd = rNds.MakeTextSection( SwNodeIndex( rNds.GetEndOfRedlines() ),
- SwNormalStartNode, pColl );
+ if( pCSttNd )
+ {
+ SwTextFormatColl* pColl = (pCSttNd && pCSttNd->IsTextNode() )
+ ? pCSttNd->GetTextNode()->GetTextColl()
+ : pDoc->getIDocumentStylePoolAccess().GetTextCollFromPool(RES_POOLCOLL_STANDARD);
- SwNodeIndex aNdIdx( *pSttNd, 1 );
- SwTextNode* pTextNd = aNdIdx.GetNode().GetTextNode();
- SwPosition aPos( aNdIdx, SwIndex( pTextNd ));
- pDoc->getIDocumentContentOperations().CopyRange( *this, aPos, /*bCopyAll=*/false, /*bCheckPos=*/true );
+ pSttNd = rNds.MakeTextSection( SwNodeIndex( rNds.GetEndOfRedlines() ),
+ SwNormalStartNode, pColl );
- // Take over the style from the EndNode if needed
- // We don't want this in Doc::Copy
- if( pCEndNd && pCEndNd != pCSttNd )
+ SwNodeIndex aNdIdx( *pSttNd, 1 );
+ SwTextNode* pTextNd = aNdIdx.GetNode().GetTextNode();
+ SwPosition aPos( aNdIdx, SwIndex( pTextNd ));
+ pDoc->getIDocumentContentOperations().CopyRange( *this, aPos, /*bCopyAll=*/false, /*bCheckPos=*/true );
+
+ // Take over the style from the EndNode if needed
+ // We don't want this in Doc::Copy
+ if( pCEndNd && pCEndNd != pCSttNd )
+ {
+ SwContentNode* pDestNd = aPos.nNode.GetNode().GetContentNode();
+ if( pDestNd )
{
- SwContentNode* pDestNd = aPos.nNode.GetNode().GetContentNode();
- if( pDestNd )
- {
- if( pDestNd->IsTextNode() && pCEndNd->IsTextNode() )
- pCEndNd->GetTextNode()->CopyCollFormat(*pDestNd->GetTextNode());
- else
- pDestNd->ChgFormatColl( pCEndNd->GetFormatColl() );
- }
+ if( pDestNd->IsTextNode() && pCEndNd->IsTextNode() )
+ pCEndNd->GetTextNode()->CopyCollFormat(*pDestNd->GetTextNode());
+ else
+ pDestNd->ChgFormatColl( pCEndNd->GetFormatColl() );
}
}
+ }
+ else
+ {
+ pSttNd = SwNodes::MakeEmptySection( SwNodeIndex( rNds.GetEndOfRedlines() ) );
+
+ if( pCEndNd )
+ {
+ SwPosition aPos( *pSttNd->EndOfSectionNode() );
+ pDoc->getIDocumentContentOperations().CopyRange( *this, aPos, /*bCopyAll=*/false, /*bCheckPos=*/true );
+ }
else
{
- pSttNd = SwNodes::MakeEmptySection( SwNodeIndex( rNds.GetEndOfRedlines() ) );
-
- if( pCEndNd )
- {
- SwPosition aPos( *pSttNd->EndOfSectionNode() );
- pDoc->getIDocumentContentOperations().CopyRange( *this, aPos, /*bCopyAll=*/false, /*bCheckPos=*/true );
- }
- else
- {
- SwNodeIndex aInsPos( *pSttNd->EndOfSectionNode() );
- SwNodeRange aRg( pStt->nNode, 0, pEnd->nNode, 1 );
- pDoc->GetDocumentContentOperationsManager().CopyWithFlyInFly( aRg, 0, aInsPos );
- }
+ SwNodeIndex aInsPos( *pSttNd->EndOfSectionNode() );
+ SwNodeRange aRg( pStt->nNode, 0, pEnd->nNode, 1 );
+ pDoc->GetDocumentContentOperationsManager().CopyWithFlyInFly( aRg, 0, aInsPos );
}
- pContentSect = new SwNodeIndex( *pSttNd );
-
- pDoc->SetCopyIsMove( bSaveCopyFlag );
- pDoc->getIDocumentRedlineAccess().SetRedlineMove( bSaveRdlMoveFlg );
}
+ pContentSect = new SwNodeIndex( *pSttNd );
+
+ pDoc->SetCopyIsMove( bSaveCopyFlag );
+ pDoc->getIDocumentRedlineAccess().SetRedlineMove( bSaveRdlMoveFlg );
+
}
void SwRangeRedline::DelCopyOfSection(size_t nMyPos)
diff --git a/sw/source/core/doc/tblrwcl.cxx b/sw/source/core/doc/tblrwcl.cxx
index 626bf644a6bc..6ce5831ff6de 100644
--- a/sw/source/core/doc/tblrwcl.cxx
+++ b/sw/source/core/doc/tblrwcl.cxx
@@ -901,61 +901,62 @@ lcl_SaveUpperLowerBorder( SwTable& rTable, const SwTableBox& rBox,
const SvxBoxItem& rBoxItem = rBox.GetFrameFormat()->GetBox();
// then the top/bottom edges
- if( rBoxItem.GetTop() || rBoxItem.GetBottom() )
- {
- bool bChgd = false;
- const SwTableLines* pTableLns;
- if( pUpperBox )
- pTableLns = &pUpperBox->GetTabLines();
- else
- pTableLns = &rTable.GetTabLines();
+ if( !rBoxItem.GetTop() && !rBoxItem.GetBottom() )
+ return;
+
+ bool bChgd = false;
+ const SwTableLines* pTableLns;
+ if( pUpperBox )
+ pTableLns = &pUpperBox->GetTabLines();
+ else
+ pTableLns = &rTable.GetTabLines();
- sal_uInt16 nLnPos = pTableLns->GetPos( pLine );
+ sal_uInt16 nLnPos = pTableLns->GetPos( pLine );
- // Calculate the attribute position of the top-be-deleted Box and then
- // search in the top/bottom Line of the respective counterparts.
- SwTwips nBoxStt = 0;
- for( sal_uInt16 n = 0; n < nDelPos; ++n )
- nBoxStt += rTableBoxes[ n ]->GetFrameFormat()->GetFrameSize().GetWidth();
- SwTwips nBoxWidth = rBox.GetFrameFormat()->GetFrameSize().GetWidth();
+ // Calculate the attribute position of the top-be-deleted Box and then
+ // search in the top/bottom Line of the respective counterparts.
+ SwTwips nBoxStt = 0;
+ for( sal_uInt16 n = 0; n < nDelPos; ++n )
+ nBoxStt += rTableBoxes[ n ]->GetFrameFormat()->GetFrameSize().GetWidth();
+ SwTwips nBoxWidth = rBox.GetFrameFormat()->GetFrameSize().GetWidth();
- SwTableBox *pPrvBox = nullptr, *pNxtBox = nullptr;
- if( nLnPos ) // Predecessor?
- pPrvBox = ::lcl_FndNxtPrvDelBox( *pTableLns, nBoxStt, nBoxWidth,
- nLnPos, false, pAllDelBoxes, pCurPos );
+ SwTableBox *pPrvBox = nullptr, *pNxtBox = nullptr;
+ if( nLnPos ) // Predecessor?
+ pPrvBox = ::lcl_FndNxtPrvDelBox( *pTableLns, nBoxStt, nBoxWidth,
+ nLnPos, false, pAllDelBoxes, pCurPos );
- if( nLnPos + 1 < (sal_uInt16)pTableLns->size() ) // Successor?
- pNxtBox = ::lcl_FndNxtPrvDelBox( *pTableLns, nBoxStt, nBoxWidth,
- nLnPos, true, pAllDelBoxes, pCurPos );
+ if( nLnPos + 1 < (sal_uInt16)pTableLns->size() ) // Successor?
+ pNxtBox = ::lcl_FndNxtPrvDelBox( *pTableLns, nBoxStt, nBoxWidth,
+ nLnPos, true, pAllDelBoxes, pCurPos );
- if( pNxtBox && pNxtBox->GetSttNd() )
+ if( pNxtBox && pNxtBox->GetSttNd() )
+ {
+ const SvxBoxItem& rNxtBoxItem = pNxtBox->GetFrameFormat()->GetBox();
+ if( !rNxtBoxItem.GetTop() && ( !pPrvBox ||
+ !pPrvBox->GetFrameFormat()->GetBox().GetBottom()) )
{
- const SvxBoxItem& rNxtBoxItem = pNxtBox->GetFrameFormat()->GetBox();
- if( !rNxtBoxItem.GetTop() && ( !pPrvBox ||
- !pPrvBox->GetFrameFormat()->GetBox().GetBottom()) )
- {
- SvxBoxItem aTmp( rNxtBoxItem );
- aTmp.SetLine( rBoxItem.GetTop() ? rBoxItem.GetTop()
- : rBoxItem.GetBottom(),
- SvxBoxItemLine::TOP );
- rShareFormats.SetAttr( *pNxtBox, aTmp );
- bChgd = true;
- }
+ SvxBoxItem aTmp( rNxtBoxItem );
+ aTmp.SetLine( rBoxItem.GetTop() ? rBoxItem.GetTop()
+ : rBoxItem.GetBottom(),
+ SvxBoxItemLine::TOP );
+ rShareFormats.SetAttr( *pNxtBox, aTmp );
+ bChgd = true;
}
- if( !bChgd && pPrvBox && pPrvBox->GetSttNd() )
+ }
+ if( !bChgd && pPrvBox && pPrvBox->GetSttNd() )
+ {
+ const SvxBoxItem& rPrvBoxItem = pPrvBox->GetFrameFormat()->GetBox();
+ if( !rPrvBoxItem.GetTop() && ( !pNxtBox ||
+ !pNxtBox->GetFrameFormat()->GetBox().GetTop()) )
{
- const SvxBoxItem& rPrvBoxItem = pPrvBox->GetFrameFormat()->GetBox();
- if( !rPrvBoxItem.GetTop() && ( !pNxtBox ||
- !pNxtBox->GetFrameFormat()->GetBox().GetTop()) )
- {
- SvxBoxItem aTmp( rPrvBoxItem );
- aTmp.SetLine( rBoxItem.GetTop() ? rBoxItem.GetTop()
- : rBoxItem.GetBottom(),
- SvxBoxItemLine::BOTTOM );
- rShareFormats.SetAttr( *pPrvBox, aTmp );
- }
+ SvxBoxItem aTmp( rPrvBoxItem );
+ aTmp.SetLine( rBoxItem.GetTop() ? rBoxItem.GetTop()
+ : rBoxItem.GetBottom(),
+ SvxBoxItemLine::BOTTOM );
+ rShareFormats.SetAttr( *pPrvBox, aTmp );
}
}
+
}
bool SwTable::DeleteSel(
diff --git a/sw/source/core/doc/textboxhelper.cxx b/sw/source/core/doc/textboxhelper.cxx
index 2bc005b247c3..050d5339961c 100644
--- a/sw/source/core/doc/textboxhelper.cxx
+++ b/sw/source/core/doc/textboxhelper.cxx
@@ -49,66 +49,67 @@ using namespace com::sun::star;
void SwTextBoxHelper::create(SwFrameFormat* pShape)
{
// If TextBox wasn't enabled previously
- if (!pShape->GetAttrSet().HasItem(RES_CNTNT))
- {
- // Create the associated TextFrame and insert it into the document.
- uno::Reference<text::XTextContent> xTextFrame(SwXServiceProvider::MakeInstance(SwServiceType::TypeTextFrame, *pShape->GetDoc()), uno::UNO_QUERY);
- uno::Reference<text::XTextDocument> xTextDocument(pShape->GetDoc()->GetDocShell()->GetBaseModel(), uno::UNO_QUERY);
- uno::Reference<text::XTextContentAppend> xTextContentAppend(xTextDocument->getText(), uno::UNO_QUERY);
- xTextContentAppend->appendTextContent(xTextFrame, uno::Sequence<beans::PropertyValue>());
-
- // Link FLY and DRAW formats, so it becomes a text box (needed for syncProperty calls).
- uno::Reference<text::XTextFrame> xRealTextFrame(xTextFrame, uno::UNO_QUERY);
- auto pTextFrame = dynamic_cast<SwXTextFrame*>(xRealTextFrame.get());
- assert(nullptr != pTextFrame);
- SwFrameFormat* pFormat = pTextFrame->GetFrameFormat();
-
- assert(nullptr != dynamic_cast<SwDrawFrameFormat*>(pShape));
- assert(nullptr != dynamic_cast<SwFlyFrameFormat*>(pFormat));
-
- pShape->SetOtherTextBoxFormat(pFormat);
- pFormat->SetOtherTextBoxFormat(pShape);
-
- // Initialize properties.
- uno::Reference<beans::XPropertySet> xPropertySet(xTextFrame, uno::UNO_QUERY);
- uno::Any aEmptyBorder = uno::makeAny(table::BorderLine2());
- xPropertySet->setPropertyValue(UNO_NAME_TOP_BORDER, aEmptyBorder);
- xPropertySet->setPropertyValue(UNO_NAME_BOTTOM_BORDER, aEmptyBorder);
- xPropertySet->setPropertyValue(UNO_NAME_LEFT_BORDER, aEmptyBorder);
- xPropertySet->setPropertyValue(UNO_NAME_RIGHT_BORDER, aEmptyBorder);
-
- xPropertySet->setPropertyValue(UNO_NAME_FILL_TRANSPARENCE, uno::makeAny(sal_Int32(100)));
-
- xPropertySet->setPropertyValue(UNO_NAME_SIZE_TYPE, uno::makeAny(text::SizeType::FIX));
-
- uno::Reference<container::XNamed> xNamed(xTextFrame, uno::UNO_QUERY);
- xNamed->setName(pShape->GetDoc()->GetUniqueFrameName());
-
- // Link its text range to the original shape.
- uno::Reference<text::XTextRange> xTextBox(xTextFrame, uno::UNO_QUERY_THROW);
- SwUnoInternalPaM aInternalPaM(*pShape->GetDoc());
- if (sw::XTextRangeToSwPaM(aInternalPaM, xTextBox))
- {
- SwAttrSet aSet(pShape->GetAttrSet());
- SwFormatContent aContent(aInternalPaM.GetNode().StartOfSectionNode());
- aSet.Put(aContent);
- pShape->SetFormatAttr(aSet);
- }
+ if (pShape->GetAttrSet().HasItem(RES_CNTNT))
+ return;
+
+ // Create the associated TextFrame and insert it into the document.
+ uno::Reference<text::XTextContent> xTextFrame(SwXServiceProvider::MakeInstance(SwServiceType::TypeTextFrame, *pShape->GetDoc()), uno::UNO_QUERY);
+ uno::Reference<text::XTextDocument> xTextDocument(pShape->GetDoc()->GetDocShell()->GetBaseModel(), uno::UNO_QUERY);
+ uno::Reference<text::XTextContentAppend> xTextContentAppend(xTextDocument->getText(), uno::UNO_QUERY);
+ xTextContentAppend->appendTextContent(xTextFrame, uno::Sequence<beans::PropertyValue>());
+
+ // Link FLY and DRAW formats, so it becomes a text box (needed for syncProperty calls).
+ uno::Reference<text::XTextFrame> xRealTextFrame(xTextFrame, uno::UNO_QUERY);
+ auto pTextFrame = dynamic_cast<SwXTextFrame*>(xRealTextFrame.get());
+ assert(nullptr != pTextFrame);
+ SwFrameFormat* pFormat = pTextFrame->GetFrameFormat();
+
+ assert(nullptr != dynamic_cast<SwDrawFrameFormat*>(pShape));
+ assert(nullptr != dynamic_cast<SwFlyFrameFormat*>(pFormat));
+
+ pShape->SetOtherTextBoxFormat(pFormat);
+ pFormat->SetOtherTextBoxFormat(pShape);
- // Also initialize the properties, which are not constant, but inherited from the shape's ones.
- uno::Reference<drawing::XShape> xShape(pShape->FindRealSdrObject()->getUnoShape(), uno::UNO_QUERY);
- syncProperty(pShape, RES_FRM_SIZE, MID_FRMSIZE_SIZE, uno::makeAny(xShape->getSize()));
-
- uno::Reference<beans::XPropertySet> xShapePropertySet(xShape, uno::UNO_QUERY);
- syncProperty(pShape, RES_HORI_ORIENT, MID_HORIORIENT_ORIENT, xShapePropertySet->getPropertyValue(UNO_NAME_HORI_ORIENT));
- syncProperty(pShape, RES_HORI_ORIENT, MID_HORIORIENT_RELATION, xShapePropertySet->getPropertyValue(UNO_NAME_HORI_ORIENT_RELATION));
- syncProperty(pShape, RES_VERT_ORIENT, MID_VERTORIENT_ORIENT, xShapePropertySet->getPropertyValue(UNO_NAME_VERT_ORIENT));
- syncProperty(pShape, RES_VERT_ORIENT, MID_VERTORIENT_RELATION, xShapePropertySet->getPropertyValue(UNO_NAME_VERT_ORIENT_RELATION));
- syncProperty(pShape, RES_HORI_ORIENT, MID_HORIORIENT_POSITION, xShapePropertySet->getPropertyValue(UNO_NAME_HORI_ORIENT_POSITION));
- syncProperty(pShape, RES_VERT_ORIENT, MID_VERTORIENT_POSITION, xShapePropertySet->getPropertyValue(UNO_NAME_VERT_ORIENT_POSITION));
- syncProperty(pShape, RES_FRM_SIZE, MID_FRMSIZE_IS_AUTO_HEIGHT, xShapePropertySet->getPropertyValue(UNO_NAME_TEXT_AUTOGROWHEIGHT));
- syncProperty(pShape, RES_TEXT_VERT_ADJUST, 0, xShapePropertySet->getPropertyValue(UNO_NAME_TEXT_VERT_ADJUST));
+ // Initialize properties.
+ uno::Reference<beans::XPropertySet> xPropertySet(xTextFrame, uno::UNO_QUERY);
+ uno::Any aEmptyBorder = uno::makeAny(table::BorderLine2());
+ xPropertySet->setPropertyValue(UNO_NAME_TOP_BORDER, aEmptyBorder);
+ xPropertySet->setPropertyValue(UNO_NAME_BOTTOM_BORDER, aEmptyBorder);
+ xPropertySet->setPropertyValue(UNO_NAME_LEFT_BORDER, aEmptyBorder);
+ xPropertySet->setPropertyValue(UNO_NAME_RIGHT_BORDER, aEmptyBorder);
+
+ xPropertySet->setPropertyValue(UNO_NAME_FILL_TRANSPARENCE, uno::makeAny(sal_Int32(100)));
+
+ xPropertySet->setPropertyValue(UNO_NAME_SIZE_TYPE, uno::makeAny(text::SizeType::FIX));
+
+ uno::Reference<container::XNamed> xNamed(xTextFrame, uno::UNO_QUERY);
+ xNamed->setName(pShape->GetDoc()->GetUniqueFrameName());
+
+ // Link its text range to the original shape.
+ uno::Reference<text::XTextRange> xTextBox(xTextFrame, uno::UNO_QUERY_THROW);
+ SwUnoInternalPaM aInternalPaM(*pShape->GetDoc());
+ if (sw::XTextRangeToSwPaM(aInternalPaM, xTextBox))
+ {
+ SwAttrSet aSet(pShape->GetAttrSet());
+ SwFormatContent aContent(aInternalPaM.GetNode().StartOfSectionNode());
+ aSet.Put(aContent);
+ pShape->SetFormatAttr(aSet);
}
+
+ // Also initialize the properties, which are not constant, but inherited from the shape's ones.
+ uno::Reference<drawing::XShape> xShape(pShape->FindRealSdrObject()->getUnoShape(), uno::UNO_QUERY);
+ syncProperty(pShape, RES_FRM_SIZE, MID_FRMSIZE_SIZE, uno::makeAny(xShape->getSize()));
+
+ uno::Reference<beans::XPropertySet> xShapePropertySet(xShape, uno::UNO_QUERY);
+ syncProperty(pShape, RES_HORI_ORIENT, MID_HORIORIENT_ORIENT, xShapePropertySet->getPropertyValue(UNO_NAME_HORI_ORIENT));
+ syncProperty(pShape, RES_HORI_ORIENT, MID_HORIORIENT_RELATION, xShapePropertySet->getPropertyValue(UNO_NAME_HORI_ORIENT_RELATION));
+ syncProperty(pShape, RES_VERT_ORIENT, MID_VERTORIENT_ORIENT, xShapePropertySet->getPropertyValue(UNO_NAME_VERT_ORIENT));
+ syncProperty(pShape, RES_VERT_ORIENT, MID_VERTORIENT_RELATION, xShapePropertySet->getPropertyValue(UNO_NAME_VERT_ORIENT_RELATION));
+ syncProperty(pShape, RES_HORI_ORIENT, MID_HORIORIENT_POSITION, xShapePropertySet->getPropertyValue(UNO_NAME_HORI_ORIENT_POSITION));
+ syncProperty(pShape, RES_VERT_ORIENT, MID_VERTORIENT_POSITION, xShapePropertySet->getPropertyValue(UNO_NAME_VERT_ORIENT_POSITION));
+ syncProperty(pShape, RES_FRM_SIZE, MID_FRMSIZE_IS_AUTO_HEIGHT, xShapePropertySet->getPropertyValue(UNO_NAME_TEXT_AUTOGROWHEIGHT));
+ syncProperty(pShape, RES_TEXT_VERT_ADJUST, 0, xShapePropertySet->getPropertyValue(UNO_NAME_TEXT_VERT_ADJUST));
+
}
void SwTextBoxHelper::destroy(SwFrameFormat* pShape)
diff --git a/sw/source/core/docnode/ndsect.cxx b/sw/source/core/docnode/ndsect.cxx
index 9b72c028dbbe..8c8edb5ed218 100644
--- a/sw/source/core/docnode/ndsect.cxx
+++ b/sw/source/core/docnode/ndsect.cxx
@@ -1292,58 +1292,59 @@ bool SwSectionNode::IsContentHidden() const
void SwSectionNode::NodesArrChgd()
{
SwSectionFormat *const pFormat = m_pSection->GetFormat();
- if( pFormat )
- {
- SwNodes& rNds = GetNodes();
- SwDoc* pDoc = pFormat->GetDoc();
+ if( !pFormat )
+ return;
- if( !rNds.IsDocNodes() )
- {
- SwPtrMsgPoolItem aMsgHint( RES_REMOVE_UNO_OBJECT, pFormat );
- pFormat->ModifyNotification( &aMsgHint, &aMsgHint );
- }
+ SwNodes& rNds = GetNodes();
+ SwDoc* pDoc = pFormat->GetDoc();
- pFormat->LockModify();
- pFormat->SetFormatAttr( SwFormatContent( this ));
- pFormat->UnlockModify();
+ if( !rNds.IsDocNodes() )
+ {
+ SwPtrMsgPoolItem aMsgHint( RES_REMOVE_UNO_OBJECT, pFormat );
+ pFormat->ModifyNotification( &aMsgHint, &aMsgHint );
+ }
- SwSectionNode* pSectNd = StartOfSectionNode()->FindSectionNode();
- // set the correct parent from the new section
- pFormat->SetDerivedFrom( pSectNd ? pSectNd->GetSection().GetFormat()
- : pDoc->GetDfltFrameFormat() );
+ pFormat->LockModify();
+ pFormat->SetFormatAttr( SwFormatContent( this ));
+ pFormat->UnlockModify();
- // Set the right StartNode for all in this Area
- sal_uLong nStart = GetIndex()+1, nEnde = EndOfSectionIndex();
- for( sal_uLong n = nStart; n < nEnde; ++n )
- // Make up the Format's nesting
- if( nullptr != ( pSectNd = rNds[ n ]->GetSectionNode() ) )
- {
- pSectNd->GetSection().GetFormat()->SetDerivedFrom( pFormat );
- n = pSectNd->EndOfSectionIndex();
- }
+ SwSectionNode* pSectNd = StartOfSectionNode()->FindSectionNode();
+ // set the correct parent from the new section
+ pFormat->SetDerivedFrom( pSectNd ? pSectNd->GetSection().GetFormat()
+ : pDoc->GetDfltFrameFormat() );
- // Moving Nodes to the UndoNodes array?
- if( rNds.IsDocNodes() )
+ // Set the right StartNode for all in this Area
+ sal_uLong nStart = GetIndex()+1, nEnde = EndOfSectionIndex();
+ for( sal_uLong n = nStart; n < nEnde; ++n )
+ // Make up the Format's nesting
+ if( nullptr != ( pSectNd = rNds[ n ]->GetSectionNode() ) )
{
- OSL_ENSURE( pDoc == GetDoc(),
- "Moving to different Documents?" );
- if( m_pSection->IsLinkType() ) // Remove the Link
- m_pSection->CreateLink( pDoc->getIDocumentLayoutAccess().GetCurrentViewShell() ? CREATE_CONNECT : CREATE_NONE );
-
- if (m_pSection->IsServer())
- pDoc->getIDocumentLinksAdministration().GetLinkManager().InsertServer( m_pSection->GetObject() );
+ pSectNd->GetSection().GetFormat()->SetDerivedFrom( pFormat );
+ n = pSectNd->EndOfSectionIndex();
}
- else
+
+ // Moving Nodes to the UndoNodes array?
+ if( rNds.IsDocNodes() )
+ {
+ OSL_ENSURE( pDoc == GetDoc(),
+ "Moving to different Documents?" );
+ if( m_pSection->IsLinkType() ) // Remove the Link
+ m_pSection->CreateLink( pDoc->getIDocumentLayoutAccess().GetCurrentViewShell() ? CREATE_CONNECT : CREATE_NONE );
+
+ if (m_pSection->IsServer())
+ pDoc->getIDocumentLinksAdministration().GetLinkManager().InsertServer( m_pSection->GetObject() );
+ }
+ else
+ {
+ if (CONTENT_SECTION != m_pSection->GetType()
+ && m_pSection->IsConnected())
{
- if (CONTENT_SECTION != m_pSection->GetType()
- && m_pSection->IsConnected())
- {
- pDoc->getIDocumentLinksAdministration().GetLinkManager().Remove( &m_pSection->GetBaseLink() );
- }
- if (m_pSection->IsServer())
- pDoc->getIDocumentLinksAdministration().GetLinkManager().RemoveServer( m_pSection->GetObject() );
+ pDoc->getIDocumentLinksAdministration().GetLinkManager().Remove( &m_pSection->GetBaseLink() );
}
+ if (m_pSection->IsServer())
+ pDoc->getIDocumentLinksAdministration().GetLinkManager().RemoveServer( m_pSection->GetObject() );
}
+
}
OUString SwDoc::GetUniqueSectionName( const OUString* pChkStr ) const
diff --git a/sw/source/core/docnode/ndtbl1.cxx b/sw/source/core/docnode/ndtbl1.cxx
index a589cbf5091e..fbe12fd69018 100644
--- a/sw/source/core/docnode/ndtbl1.cxx
+++ b/sw/source/core/docnode/ndtbl1.cxx
@@ -561,255 +561,256 @@ void SwDoc::SetTabBorders( const SwCursor& rCursor, const SfxItemSet& rSet )
SwSelUnions aUnions;
::MakeSelUnions( aUnions, pStart, pEnd );
- if( !aUnions.empty() )
+ if( aUnions.empty() )
+ return;
+
+ SwTable& rTable = pTableNd->GetTable();
+ if (GetIDocumentUndoRedo().DoesUndo())
{
- SwTable& rTable = pTableNd->GetTable();
- if (GetIDocumentUndoRedo().DoesUndo())
- {
- GetIDocumentUndoRedo().AppendUndo( new SwUndoAttrTable(*pTableNd) );
- }
+ GetIDocumentUndoRedo().AppendUndo( new SwUndoAttrTable(*pTableNd) );
+ }
- std::vector<SwTableFormatCmp*> aFormatCmp;
- aFormatCmp.reserve( 255 );
- const SvxBoxItem* pSetBox;
- const SvxBoxInfoItem *pSetBoxInfo;
-
- const SvxBorderLine* pLeft = nullptr;
- const SvxBorderLine* pRight = nullptr;
- const SvxBorderLine* pTop = nullptr;
- const SvxBorderLine* pBottom = nullptr;
- const SvxBorderLine* pHori = nullptr;
- const SvxBorderLine* pVert = nullptr;
- bool bHoriValid = true, bVertValid = true,
- bTopValid = true, bBottomValid = true,
- bLeftValid = true, bRightValid = true;
-
- // The Flags in the BoxInfo Item decide whether a BorderLine is valid!
- if( SfxItemState::SET == rSet.GetItemState( SID_ATTR_BORDER_INNER, false,
- reinterpret_cast<const SfxPoolItem**>(&pSetBoxInfo)) )
- {
- pHori = pSetBoxInfo->GetHori();
- pVert = pSetBoxInfo->GetVert();
+ std::vector<SwTableFormatCmp*> aFormatCmp;
+ aFormatCmp.reserve( 255 );
+ const SvxBoxItem* pSetBox;
+ const SvxBoxInfoItem *pSetBoxInfo;
+
+ const SvxBorderLine* pLeft = nullptr;
+ const SvxBorderLine* pRight = nullptr;
+ const SvxBorderLine* pTop = nullptr;
+ const SvxBorderLine* pBottom = nullptr;
+ const SvxBorderLine* pHori = nullptr;
+ const SvxBorderLine* pVert = nullptr;
+ bool bHoriValid = true, bVertValid = true,
+ bTopValid = true, bBottomValid = true,
+ bLeftValid = true, bRightValid = true;
+
+ // The Flags in the BoxInfo Item decide whether a BorderLine is valid!
+ if( SfxItemState::SET == rSet.GetItemState( SID_ATTR_BORDER_INNER, false,
+ reinterpret_cast<const SfxPoolItem**>(&pSetBoxInfo)) )
+ {
+ pHori = pSetBoxInfo->GetHori();
+ pVert = pSetBoxInfo->GetVert();
- bHoriValid = pSetBoxInfo->IsValid(SvxBoxInfoItemValidFlags::HORI);
- bVertValid = pSetBoxInfo->IsValid(SvxBoxInfoItemValidFlags::VERT);
+ bHoriValid = pSetBoxInfo->IsValid(SvxBoxInfoItemValidFlags::HORI);
+ bVertValid = pSetBoxInfo->IsValid(SvxBoxInfoItemValidFlags::VERT);
- // Do we want to evaluate these?
- bTopValid = pSetBoxInfo->IsValid(SvxBoxInfoItemValidFlags::TOP);
- bBottomValid = pSetBoxInfo->IsValid(SvxBoxInfoItemValidFlags::BOTTOM);
- bLeftValid = pSetBoxInfo->IsValid(SvxBoxInfoItemValidFlags::LEFT);
- bRightValid = pSetBoxInfo->IsValid(SvxBoxInfoItemValidFlags::RIGHT);
- }
+ // Do we want to evaluate these?
+ bTopValid = pSetBoxInfo->IsValid(SvxBoxInfoItemValidFlags::TOP);
+ bBottomValid = pSetBoxInfo->IsValid(SvxBoxInfoItemValidFlags::BOTTOM);
+ bLeftValid = pSetBoxInfo->IsValid(SvxBoxInfoItemValidFlags::LEFT);
+ bRightValid = pSetBoxInfo->IsValid(SvxBoxInfoItemValidFlags::RIGHT);
+ }
- if( SfxItemState::SET == rSet.GetItemState( RES_BOX, false,
- reinterpret_cast<const SfxPoolItem**>(&pSetBox)) )
- {
- pLeft = pSetBox->GetLeft();
- pRight = pSetBox->GetRight();
- pTop = pSetBox->GetTop();
- pBottom = pSetBox->GetBottom();
- }
- else
- {
- // Not set, thus not valid values
- bTopValid = bBottomValid = bLeftValid = bRightValid = false;
- pSetBox = nullptr;
- }
+ if( SfxItemState::SET == rSet.GetItemState( RES_BOX, false,
+ reinterpret_cast<const SfxPoolItem**>(&pSetBox)) )
+ {
+ pLeft = pSetBox->GetLeft();
+ pRight = pSetBox->GetRight();
+ pTop = pSetBox->GetTop();
+ pBottom = pSetBox->GetBottom();
+ }
+ else
+ {
+ // Not set, thus not valid values
+ bTopValid = bBottomValid = bLeftValid = bRightValid = false;
+ pSetBox = nullptr;
+ }
- bool bFirst = true;
- for ( SwSelUnions::size_type i = 0; i < aUnions.size(); ++i )
+ bool bFirst = true;
+ for ( SwSelUnions::size_type i = 0; i < aUnions.size(); ++i )
+ {
+ SwSelUnion *pUnion = &aUnions[i];
+ SwTabFrame *pTab = pUnion->GetTable();
+ const SwRect &rUnion = pUnion->GetUnion();
+ const bool bLast = (i == aUnions.size() - 1);
+
+ std::vector<SwCellFrame*> aCellArr;
+ aCellArr.reserve( 255 );
+ ::lcl_CollectCells( aCellArr, pUnion->GetUnion(), pTab );
+
+ // All Cell Borders that match the UnionRect or extend it are
+ // Outer Borders. All others are Inner Borders.
+
+ // New: The Outer Borders can, depending on whether it's a
+ // Start/Middle/Follow Table (for Selection via FollowTabs),
+ // also not be Outer Borders.
+ // Outer Borders are set on the left, right, at the top and at the bottom.
+ // Inner Borders are only set at the top and on the left.
+ for ( auto pCell : aCellArr )
{
- SwSelUnion *pUnion = &aUnions[i];
- SwTabFrame *pTab = pUnion->GetTable();
- const SwRect &rUnion = pUnion->GetUnion();
- const bool bLast = (i == aUnions.size() - 1);
+ const bool bVert = pTab->IsVertical();
+ const bool bRTL = pTab->IsRightToLeft();
+ bool bTopOver, bLeftOver, bRightOver, bBottomOver;
+ if ( bVert )
+ {
+ bTopOver = pCell->getFrameArea().Right() >= rUnion.Right();
+ bLeftOver = pCell->getFrameArea().Top() <= rUnion.Top();
+ bRightOver = pCell->getFrameArea().Bottom() >= rUnion.Bottom();
+ bBottomOver = pCell->getFrameArea().Left() <= rUnion.Left();
+ }
+ else
+ {
+ bTopOver = pCell->getFrameArea().Top() <= rUnion.Top();
+ bLeftOver = pCell->getFrameArea().Left() <= rUnion.Left();
+ bRightOver = pCell->getFrameArea().Right() >= rUnion.Right();
+ bBottomOver = pCell->getFrameArea().Bottom() >= rUnion.Bottom();
+ }
- std::vector<SwCellFrame*> aCellArr;
- aCellArr.reserve( 255 );
- ::lcl_CollectCells( aCellArr, pUnion->GetUnion(), pTab );
+ if ( bRTL )
+ {
+ bool bTmp = bRightOver;
+ bRightOver = bLeftOver;
+ bLeftOver = bTmp;
+ }
- // All Cell Borders that match the UnionRect or extend it are
- // Outer Borders. All others are Inner Borders.
+ // Do not set anything by default in HeadlineRepeats
+ if ( pTab->IsFollow() &&
+ ( pTab->IsInHeadline( *pCell ) ||
+ // Same holds for follow flow rows
+ pCell->IsInFollowFlowRow() ) )
+ continue;
- // New: The Outer Borders can, depending on whether it's a
- // Start/Middle/Follow Table (for Selection via FollowTabs),
- // also not be Outer Borders.
- // Outer Borders are set on the left, right, at the top and at the bottom.
- // Inner Borders are only set at the top and on the left.
- for ( auto pCell : aCellArr )
+ SvxBoxItem aBox( pCell->GetFormat()->GetBox() );
+
+ sal_Int16 nType = 0;
+
+ // Top Border
+ if( bTopValid )
{
- const bool bVert = pTab->IsVertical();
- const bool bRTL = pTab->IsRightToLeft();
- bool bTopOver, bLeftOver, bRightOver, bBottomOver;
- if ( bVert )
+ if ( bFirst && bTopOver )
{
- bTopOver = pCell->getFrameArea().Right() >= rUnion.Right();
- bLeftOver = pCell->getFrameArea().Top() <= rUnion.Top();
- bRightOver = pCell->getFrameArea().Bottom() >= rUnion.Bottom();
- bBottomOver = pCell->getFrameArea().Left() <= rUnion.Left();
+ aBox.SetLine( pTop, SvxBoxItemLine::TOP );
+ nType |= 0x0001;
}
- else
+ else if ( bHoriValid )
{
- bTopOver = pCell->getFrameArea().Top() <= rUnion.Top();
- bLeftOver = pCell->getFrameArea().Left() <= rUnion.Left();
- bRightOver = pCell->getFrameArea().Right() >= rUnion.Right();
- bBottomOver = pCell->getFrameArea().Bottom() >= rUnion.Bottom();
+ aBox.SetLine( nullptr, SvxBoxItemLine::TOP );
+ nType |= 0x0002;
}
+ }
- if ( bRTL )
- {
- bool bTmp = bRightOver;
- bRightOver = bLeftOver;
- bLeftOver = bTmp;
- }
-
- // Do not set anything by default in HeadlineRepeats
- if ( pTab->IsFollow() &&
- ( pTab->IsInHeadline( *pCell ) ||
- // Same holds for follow flow rows
- pCell->IsInFollowFlowRow() ) )
- continue;
-
- SvxBoxItem aBox( pCell->GetFormat()->GetBox() );
-
- sal_Int16 nType = 0;
-
- // Top Border
- if( bTopValid )
- {
- if ( bFirst && bTopOver )
- {
- aBox.SetLine( pTop, SvxBoxItemLine::TOP );
- nType |= 0x0001;
- }
- else if ( bHoriValid )
+ // Fix fdo#62470 correct the input for RTL table
+ if (bRTL)
+ {
+ if( bLeftOver && bRightOver)
{
- aBox.SetLine( nullptr, SvxBoxItemLine::TOP );
- nType |= 0x0002;
- }
- }
-
- // Fix fdo#62470 correct the input for RTL table
- if (bRTL)
- {
- if( bLeftOver && bRightOver)
+ if ( bLeftValid )
{
- if ( bLeftValid )
- {
- aBox.SetLine( pLeft, SvxBoxItemLine::RIGHT );
- nType |= 0x0010;
- }
- if ( bRightValid )
- {
- aBox.SetLine( pRight, SvxBoxItemLine::LEFT );
- nType |= 0x0004;
- }
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list