[Libreoffice-commits] core.git: Branch 'distro/lhm/libreoffice-6-4+backports' - 88 commits - configure.ac connectivity/CppunitTest_connectivity_mysql_test.mk connectivity/qa connectivity/README connectivity/source cui/source dbaccess/Module_dbaccess.mk dictionaries download.lst dtrans/source external/curl external/mariadb-connector-c external/python3 filter/source formula/source i18npool/inc i18npool/source include/formula include/oox include/vcl include/xmloff lotuswordpro/source officecfg/registry oox/source pyuno/source readlicense_oo/license reportdesign/source RepositoryExternal.mk sc/inc sc/qa sc/source sc/uiconfig sdext/source sd/source sfx2/source solenv/clang-format solenv/flatpak-manifest.in svx/source sw/CppunitTest_sw_core_doc.mk sw/CppunitTest_sw_core_layout.mk sw/CppunitTest_sw_core_unocore.mk sw/inc sw/Module_sw.mk sw/qa sw/source sw/uiconfig toolkit/qa translations vcl/qt5 vcl/source writerfilter/source xmloff/source
Thorsten Behrens (via logerrit)
logerrit at kemper.freedesktop.org
Thu Jul 2 14:21:35 UTC 2020
RepositoryExternal.mk | 7
configure.ac | 2
connectivity/CppunitTest_connectivity_mysql_test.mk | 18
connectivity/README | 12
connectivity/qa/connectivity/mysql/mysql.cxx | 7
connectivity/source/parse/sqlflex.l | 4
cui/source/customize/SvxNotebookbarConfigPage.cxx | 7
cui/source/dialogs/SpellDialog.cxx | 58
cui/source/inc/SpellDialog.hxx | 5
cui/source/inc/autocdlg.hxx | 2
cui/source/inc/optlingu.hxx | 5
cui/source/options/optlingu.cxx | 12
cui/source/tabpages/autocdlg.cxx | 4
dbaccess/Module_dbaccess.mk | 3
dictionaries | 2
download.lst | 8
dtrans/source/win32/clipb/WinClipbImpl.cxx | 12
dtrans/source/win32/clipb/WinClipbImpl.hxx | 1
external/curl/ExternalPackage_curl.mk | 2
external/curl/ExternalProject_curl.mk | 1
external/curl/clang-cl.patch.0 | 4
external/curl/curl-msvc.patch.1 | 8
external/mariadb-connector-c/README | 18
external/mariadb-connector-c/StaticLibrary_mariadb-connector-c.mk | 113
external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk | 26
external/mariadb-connector-c/clang-cl.patch.0 | 4
external/mariadb-connector-c/configs/linux_my_config.h | 212
external/mariadb-connector-c/configs/mac_my_config.h | 217
external/mariadb-connector-c/configs/mariadb_version.h | 38
external/mariadb-connector-c/configs/mysql_version.h | 28
external/mariadb-connector-c/configs/wnt_ma_config.h | 154
external/mariadb-connector-c/mariadb-CONC-104.patch.1 | 49
external/mariadb-connector-c/mariadb-inline.patch.1 | 23
external/mariadb-connector-c/mariadb-msvc.patch.1 | 13
external/mariadb-connector-c/mariadb-swap.patch | 24
external/python3/python-3.7.6-msvc-ssl.patch.1 | 15
filter/source/msfilter/eschesdo.cxx | 23
formula/source/ui/dlg/FormulaHelper.cxx | 1
formula/source/ui/dlg/parawin.cxx | 2
i18npool/inc/calendarImpl.hxx | 2
i18npool/source/calendar/calendarImpl.cxx | 7
include/formula/IFunctionDescription.hxx | 1
include/oox/token/relationship.hxx | 1
include/vcl/errinf.hxx | 1
include/xmloff/xmlnumfi.hxx | 2
lotuswordpro/source/filter/lwpframelayout.cxx | 2
officecfg/registry/schema/org/openoffice/Office/Writer.xcs | 12
oox/source/token/relationship.inc | 1
pyuno/source/loader/pyuno_loader.cxx | 14
pyuno/source/module/pyuno.cxx | 10
pyuno/source/module/pyuno_callable.cxx | 10
pyuno/source/module/pyuno_iterator.cxx | 22
pyuno/source/module/pyuno_runtime.cxx | 10
pyuno/source/module/pyuno_struct.cxx | 10
readlicense_oo/license/CREDITS.fodt | 3073 +++++-----
reportdesign/source/ui/inc/FunctionHelper.hxx | 1
reportdesign/source/ui/misc/FunctionHelper.cxx | 5
sc/inc/funcdesc.hxx | 8
sc/qa/unit/data/xls/pass/ofz20904-1.xls |binary
sc/source/core/data/column4.cxx | 3
sc/source/core/data/dociter.cxx | 11
sc/source/core/data/funcdesc.cxx | 799 +-
sc/source/core/data/table2.cxx | 6
sc/source/core/tool/interpr1.cxx | 10
sc/source/filter/excel/excdoc.cxx | 7
sc/source/filter/excel/xeescher.cxx | 351 +
sc/source/filter/inc/xcl97rec.hxx | 2
sc/source/filter/inc/xeescher.hxx | 17
sc/source/filter/xcl97/xcl97rec.cxx | 73
sc/source/ui/app/transobj.cxx | 2
sc/source/ui/dialogs/searchresults.cxx | 31
sc/source/ui/inc/hdrcont.hxx | 1
sc/source/ui/inc/searchresults.hxx | 2
sc/source/ui/view/hdrcont.cxx | 15
sc/uiconfig/scalc/ui/mergecellsdialog.ui | 1
sc/uiconfig/scalc/ui/searchresults.ui | 3
sd/source/ui/dlg/dlgsnap.cxx | 6
sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 4
sfx2/source/doc/objmisc.cxx | 5
solenv/clang-format/blacklist | 3
solenv/flatpak-manifest.in | 6
svx/source/items/customshapeitem.cxx | 2
sw/CppunitTest_sw_core_doc.mk | 1
sw/CppunitTest_sw_core_layout.mk | 73
sw/CppunitTest_sw_core_unocore.mk | 77
sw/Module_sw.mk | 2
sw/inc/IDocumentSettingAccess.hxx | 1
sw/inc/undobj.hxx | 6
sw/qa/core/doc/data/textbox-textrotateangle.odt |binary
sw/qa/core/doc/doc.cxx | 22
sw/qa/core/layout/data/tdf128195.docx |binary
sw/qa/core/layout/layout.cxx | 34
sw/qa/core/txtnode/data/textbox-copy-anchor.docx |binary
sw/qa/core/txtnode/txtnode.cxx | 28
sw/qa/core/unocore/data/tdf119081.odt |binary
sw/qa/core/unocore/unocore.cxx | 91
sw/qa/extras/layout/data/continuous-endnotes-move-backwards.doc |binary
sw/qa/extras/layout/layout.cxx | 17
sw/qa/extras/odfimport/data/tdf133459.odt |binary
sw/qa/extras/odfimport/odfimport.cxx | 30
sw/qa/extras/ooxmlexport/data/tdf120394.docx |binary
sw/qa/extras/ooxmlexport/data/tdf132754.docx |binary
sw/qa/extras/ooxmlexport/data/tdf134063.docx |binary
sw/qa/extras/ooxmlexport/data/tdf83309.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 29
sw/qa/extras/ooxmlexport/ooxmlexport13.cxx | 49
sw/qa/extras/ooxmlexport/ooxmlexport14.cxx | 55
sw/qa/extras/ooxmlexport/ooxmlexport4.cxx | 36
sw/qa/extras/ooxmlexport/ooxmlexport8.cxx | 36
sw/qa/extras/rtfimport/rtfimport.cxx | 5
sw/qa/extras/uiwriter/uiwriter2.cxx | 148
sw/qa/extras/ww8import/data/image-lazy-read-0size.doc |binary
sw/qa/extras/ww8import/ww8import.cxx | 16
sw/source/core/bastyp/swtypes.cxx | 7
sw/source/core/crsr/crsrsh.cxx | 6
sw/source/core/crsr/swcrsr.cxx | 3
sw/source/core/doc/DocumentContentOperationsManager.cxx | 33
sw/source/core/doc/DocumentRedlineManager.cxx | 22
sw/source/core/doc/DocumentSettingManager.cxx | 10
sw/source/core/doc/docbm.cxx | 7
sw/source/core/doc/docedt.cxx | 38
sw/source/core/doc/number.cxx | 7
sw/source/core/doc/textboxhelper.cxx | 14
sw/source/core/docnode/ndsect.cxx | 5
sw/source/core/docnode/nodes.cxx | 6
sw/source/core/edit/eddel.cxx | 19
sw/source/core/edit/edglss.cxx | 7
sw/source/core/edit/edlingu.cxx | 3
sw/source/core/inc/DocumentSettingManager.hxx | 1
sw/source/core/inc/UndoDelete.hxx | 3
sw/source/core/inc/mvsave.hxx | 2
sw/source/core/inc/rolbck.hxx | 2
sw/source/core/layout/colfrm.cxx | 3
sw/source/core/layout/flowfrm.cxx | 4
sw/source/core/layout/frmtool.cxx | 3
sw/source/core/layout/ftnfrm.cxx | 18
sw/source/core/text/porlay.cxx | 24
sw/source/core/text/portxt.cxx | 23
sw/source/core/text/txtfld.cxx | 13
sw/source/core/text/txttab.cxx | 5
sw/source/core/txtnode/atrflyin.cxx | 10
sw/source/core/undo/rolbck.cxx | 8
sw/source/core/undo/undel.cxx | 49
sw/source/core/undo/undobj.cxx | 115
sw/source/core/undo/unins.cxx | 41
sw/source/core/undo/untblk.cxx | 2
sw/source/core/unocore/unotext.cxx | 3
sw/source/filter/ww8/docxattributeoutput.cxx | 2
sw/source/filter/ww8/wrtw8nds.cxx | 6
sw/source/filter/ww8/wrtw8num.cxx | 32
sw/source/filter/ww8/ww8par.cxx | 3
sw/source/ui/dbui/mmresultdialogs.cxx | 4
sw/source/ui/index/cnttab.cxx | 2
sw/source/ui/misc/bookmark.cxx | 3
sw/source/uibase/dbui/dbmgr.cxx | 3
sw/source/uibase/docvw/edtwin.cxx | 8
sw/source/uibase/inc/unotools.hxx | 5
sw/source/uibase/uiview/pview.cxx | 5
sw/source/uibase/uno/SwXDocumentSettings.cxx | 19
sw/source/uibase/utlui/unotools.cxx | 2
sw/uiconfig/swriter/ui/insertbookmark.ui | 7
toolkit/qa/cppunit/EventContainer.cxx | 2
translations | 2
vcl/qt5/Qt5Frame.cxx | 3
vcl/qt5/Qt5Widget.cxx | 2
vcl/source/control/roadmap.cxx | 1
vcl/source/control/roadmapwizard.cxx | 5
vcl/source/window/errinf.cxx | 6
writerfilter/source/dmapper/DomainMapper.cxx | 2
writerfilter/source/dmapper/DomainMapper_Impl.cxx | 16
writerfilter/source/dmapper/NumberingManager.cxx | 90
writerfilter/source/dmapper/NumberingManager.hxx | 9
writerfilter/source/dmapper/SdtHelper.cxx | 60
xmloff/source/core/xmlimp.cxx | 5
xmloff/source/style/xmlnumfi.cxx | 16
175 files changed, 4437 insertions(+), 2851 deletions(-)
New commits:
commit d2b14dd2bc3b374c7c0fdd528ad97fca070068f9
Author: Thorsten Behrens <Thorsten.Behrens at CIB.de>
AuthorDate: Thu Jul 2 16:19:56 2020 +0200
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Thu Jul 2 16:19:56 2020 +0200
tdf#134043 DOCX import: DropDown text field instead of ComboBox form control
Enable the actual bugfix for this branch
Original backport was: https://gerrit.libreoffice.org/c/core/+/96471
Change-Id: I0abd546e8f090d3ae095b84ed57d7fe9169f0d7a
diff --git a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
index 6ba34c5338ff..ad2501fbf41f 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
@@ -5892,7 +5892,7 @@
<desc>Specifies whether ComboBox form control should be imported as DropDown text field.</desc>
<label>Import ComboBox as DropDown</label>
</info>
- <value>false</value>
+ <value>true</value>
</prop>
</group>
</group>
commit b5b4805f60f2a86adc1d76cc7d176830f1303c8e
Merge: a8770e97294b 14eccc62b53e
Author: Thorsten Behrens <Thorsten.Behrens at CIB.de>
AuthorDate: Thu Jul 2 16:16:49 2020 +0200
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Thu Jul 2 16:16:49 2020 +0200
Merge branch 'libreoffice-6-4'
into distro/lhm/libreoffice-6-4+backports
Conflicts:
writerfilter/qa/cppunittests/dmapper/GraphicImport.cxx
commit 14eccc62b53e202cd9ed63442481922a320fc02e
Author: Jan-Marek Glogowski <glogow at fbihome.de>
AuthorDate: Tue Jun 30 17:41:53 2020 +0200
Commit: Jan-Marek Glogowski <glogow at fbihome.de>
CommitDate: Wed Jul 1 15:12:26 2020 +0200
tdf#132172 Qt5 just handle visible widget's focus
I investigated the state of isWindow() and the SalFrameToTop
flags for the detached find toolbar (tdf#126607) and the Impress
presentation and the tabbed "page size" drop-down and all had the
same status (isWin: 1, flags: 12). Than I had a look at the gtk3
implementation, which just handles focus requests, if the widget
is already mapped (gtk_widget_get_mapped).
So I also dumped the visibility as the nearest equivalent in Qt to
the X11 mapped state, and that was different. In the end Qt now
also just handles the focus for already visible widgets, like
gtk3, which works for all the cases I tested (incl. tdf#125517).
And omiting either activateWindow or setFocus breaks some cases...
and I still don't understand the GrabFocusOnly flag, which is just
handled in the X11 backends at all...
Note: this doesn't happen with 7.0+, because the weld'ed version
of that control (commit 3afc718eddcd81232392d46fccc24b8ec626c8df
"rework PageSizePopup to be a PopupWindowController") doesn't
expose this bug (and also doesn't support mouse-over highlight).
Change-Id: Id085732f6a52bbc69ed47fbd3d57454756a03121
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97549
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn at posteo.de>
Reviewed-by: Jan-Marek Glogowski <glogow at fbihome.de>
(cherry picked from commit 06fb3e7b7f1079c276ad2f048cd94299b4bd7006)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97575
diff --git a/vcl/qt5/Qt5Frame.cxx b/vcl/qt5/Qt5Frame.cxx
index b38b92f143c9..25be0a1a4bc9 100644
--- a/vcl/qt5/Qt5Frame.cxx
+++ b/vcl/qt5/Qt5Frame.cxx
@@ -758,7 +758,8 @@ void Qt5Frame::ToTop(SalFrameToTop nFlags)
pWidget->raise();
if ((nFlags & SalFrameToTop::RestoreWhenMin) || (nFlags & SalFrameToTop::ForegroundTask))
pWidget->activateWindow();
- else if ((nFlags & SalFrameToTop::GrabFocus) || (nFlags & SalFrameToTop::GrabFocusOnly))
+ else if ((nFlags & (SalFrameToTop::GrabFocus | SalFrameToTop::GrabFocusOnly))
+ && pWidget->isVisible())
{
pWidget->activateWindow();
pWidget->setFocus();
commit b3446f2dbe513ff3ca6a54bf3845df7a0787f61c
Author: Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Tue Feb 11 09:51:14 2020 +0100
Commit: Michael Stahl <michael.stahl at cib.de>
CommitDate: Wed Jul 1 11:47:29 2020 +0200
DOCX import: fix margins of inline shapes with effects, imported as Draw shapes
Effects have an extent, and unhandled effects (like this blurred shadow)
need to take space in the margin of the shape to make sure they use the
correct amount of space in the layout.
This was working in general, but not in case the importer decided to
import the shape as Draw shape + the shape was inline.
(And also disable a new CppunitTest_sw_uibase_shells test on Windows,
which is only stable on Linux, it seems.)
Change-Id: I9d0531d9393d8c2cd274e6f54bbbfe8024bf270f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88427
Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
Tested-by: Jenkins
(cherry picked from commit bf25e69f8f657d5e3bcdd0bd54c5fa0d66ec85fe)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96234
Reviewed-by: Michael Stahl <michael.stahl at cib.de>
diff --git a/sw/qa/uibase/shells/shells.cxx b/sw/qa/uibase/shells/shells.cxx
index 05b5c6b5e27b..376f95b18c59 100644
--- a/sw/qa/uibase/shells/shells.cxx
+++ b/sw/qa/uibase/shells/shells.cxx
@@ -81,8 +81,8 @@ CPPUNIT_TEST_FIXTURE(SwUibaseShellsTest, testTdf130179)
CPPUNIT_TEST_FIXTURE(SwUibaseShellsTest, testShapeTextAlignment)
{
-// FIXME find out why this fails on macOS
-#ifndef MACOSX
+// FIXME find out why this fails on macOS/Windows
+#if !defined(MACOSX) && !defined(_WIN32)
// Create a document with a rectangle in it.
SwDoc* pDoc = createDoc();
SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell();
diff --git a/writerfilter/qa/cppunittests/dmapper/GraphicImport.cxx b/writerfilter/qa/cppunittests/dmapper/GraphicImport.cxx
index d2143a2366c4..f20694b828cc 100644
--- a/writerfilter/qa/cppunittests/dmapper/GraphicImport.cxx
+++ b/writerfilter/qa/cppunittests/dmapper/GraphicImport.cxx
@@ -90,6 +90,23 @@ CPPUNIT_TEST_FIXTURE(Test, testRelfromhInsidemargin)
xShape->getPropertyValue("PageToggle") >>= bPageToggle;
CPPUNIT_ASSERT(bPageToggle);
}
+
+CPPUNIT_TEST_FIXTURE(Test, testDrawShapeInlineEffect)
+{
+ OUString aURL = m_directories.getURLFromSrc(DATA_DIRECTORY) + "draw-shape-inline-effect.docx";
+ getComponent() = loadFromDesktop(aURL);
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(getComponent(), uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> xDrawPage = xDrawPageSupplier->getDrawPage();
+ uno::Reference<beans::XPropertySet> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+ sal_Int32 nBottomMargin = 0;
+ xShape->getPropertyValue("BottomMargin") >>= nBottomMargin;
+ // 273 in mm100 is 98425 EMUs from the file.
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 273
+ // - Actual : 0
+ // i.e. the layout result had less pages than expected (compared to Word).
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(273), nBottomMargin);
+}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerfilter/qa/cppunittests/dmapper/data/draw-shape-inline-effect.docx b/writerfilter/qa/cppunittests/dmapper/data/draw-shape-inline-effect.docx
new file mode 100644
index 000000000000..3eb5b0e2f448
Binary files /dev/null and b/writerfilter/qa/cppunittests/dmapper/data/draw-shape-inline-effect.docx differ
diff --git a/writerfilter/source/dmapper/GraphicImport.cxx b/writerfilter/source/dmapper/GraphicImport.cxx
index a2c19383c95d..b69f4565fb13 100644
--- a/writerfilter/source/dmapper/GraphicImport.cxx
+++ b/writerfilter/source/dmapper/GraphicImport.cxx
@@ -897,6 +897,7 @@ void GraphicImport::lcl_attribute(Id nName, Value& rValue)
else if (bUseShape && m_pImpl->eGraphicImportType == IMPORT_AS_DETECTED_INLINE)
{
uno::Reference< beans::XPropertySet > xShapeProps(m_xShape, uno::UNO_QUERY_THROW);
+ m_pImpl->applyMargins(xShapeProps);
comphelper::SequenceAsHashMap aInteropGrabBag(xShapeProps->getPropertyValue("InteropGrabBag"));
aInteropGrabBag.update(m_pImpl->getInteropGrabBag());
xShapeProps->setPropertyValue("InteropGrabBag", uno::makeAny(aInteropGrabBag.getAsConstPropertyValueList()));
commit f9bd290d08f08464103372633462421ba0918754
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Jun 8 21:22:58 2020 +0100
Commit: Michael Stahl <michael.stahl at cib.de>
CommitDate: Wed Jul 1 11:27:38 2020 +0200
tdf#128006 allow documents inside odbs to be as trusted as their container
Change-Id: Id19d3805ef2e3282c1a8e89dd8edcccbf4ac4db6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96210
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit ac65ade24aa10c0a39d7d38576ad54bd00724455)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97496
Reviewed-by: Michael Stahl <michael.stahl at cib.de>
diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx
index 25db3d85238e..681940462720 100644
--- a/sfx2/source/doc/objmisc.cxx
+++ b/sfx2/source/doc/objmisc.cxx
@@ -1763,7 +1763,12 @@ OUString SfxObjectShell_Impl::getDocumentLocation() const
// for documents made from a template: get the name of the template
sLocation = rDocShell.getDocProperties()->getTemplateURL();
}
+
+ // tdf#128006 take document base url as location
+ if (sLocation.isEmpty())
+ sLocation = rDocShell.getDocumentBaseURL();
}
+
return sLocation;
}
commit 568e2e946b6cb21bd36baff4e3592629431765a0
Author: Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Mon Jun 29 21:05:27 2020 +0200
Commit: Michael Stahl <michael.stahl at cib.de>
CommitDate: Wed Jul 1 11:11:21 2020 +0200
tdf#134099 sw: fix textbox anchors on copy-paste and undo
Regression from commit c7307c77254557646f33017af915f6808a861e29
(fdo#82191 sw::DocumentLayoutManager: copy textbox content of draw
formats, 2014-08-15), without which this problem gets hidden, as copy
breaks the textbox into 2 pieces, so the textbox codepaths are no longer
hit.
The direct problem is that SwHistorySetFormat::SetInDoc() uses a raw
node index into the nodes array, which is past the end of the nodes
array.
Root cause is that we have this invariant that actions and their undo
has to be in sync, otherwise raw node indexes no longer work. In this
case, SwUndoSaveContent::DelContentIndex() did not delete a fly frame
format, because it was out of range, as it had a wrong anchor.
Fix this in SwTextFlyCnt::SetAnchor(), so that whenever the anchor of a
draw format is set via that function, we update its textbox as well.
Also fix a related problem when fly formats were copied twice.
(cherry picked from commit 682e0488df819c191c13a03758fad0690706e508)
Conflicts:
sw/qa/core/txtnode/txtnode.cxx
Change-Id: I0d6c9069544c405eb20c5fed65fb40423b0adc84
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97515
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl at cib.de>
diff --git a/sw/qa/core/txtnode/data/textbox-copy-anchor.docx b/sw/qa/core/txtnode/data/textbox-copy-anchor.docx
new file mode 100644
index 000000000000..b835097f1b9b
Binary files /dev/null and b/sw/qa/core/txtnode/data/textbox-copy-anchor.docx differ
diff --git a/sw/qa/core/txtnode/txtnode.cxx b/sw/qa/core/txtnode/txtnode.cxx
index b6af5230faf8..c23272285569 100644
--- a/sw/qa/core/txtnode/txtnode.cxx
+++ b/sw/qa/core/txtnode/txtnode.cxx
@@ -49,6 +49,34 @@ CPPUNIT_TEST_FIXTURE(SwCoreTxtnodeTest, testBtlrCellChinese)
assertXPath(pXmlDoc, "//font[1]", "vertical", "false");
}
+CPPUNIT_TEST_FIXTURE(SwCoreTxtnodeTest, testTextBoxCopyAnchor)
+{
+ load(DATA_DIRECTORY, "textbox-copy-anchor.docx");
+ SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument*>(mxComponent.get());
+ SwDocShell* pShell = pTextDoc->GetDocShell();
+ SwWrtShell* pWrtShell = pShell->GetWrtShell();
+ SwDoc aClipboard;
+ pWrtShell->SelAll();
+ pWrtShell->Copy(&aClipboard);
+ pWrtShell->SttEndDoc(/*bStart=*/false);
+ pWrtShell->Paste(&aClipboard);
+
+ const SwFrameFormats& rFormats = *pShell->GetDoc()->GetSpzFrameFormats();
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 4
+ // - Actual : 6
+ // i.e. 2 fly frames were copied twice.
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), rFormats.size());
+
+ SwPosition aDrawAnchor1 = *rFormats[0]->GetAnchor().GetContentAnchor();
+ SwPosition aFlyAnchor1 = *rFormats[1]->GetAnchor().GetContentAnchor();
+ CPPUNIT_ASSERT_EQUAL(aFlyAnchor1.nNode, aDrawAnchor1.nNode);
+ SwPosition aDrawAnchor2 = *rFormats[2]->GetAnchor().GetContentAnchor();
+ SwPosition aFlyAnchor2 = *rFormats[3]->GetAnchor().GetContentAnchor();
+ // This also failed, aFlyAnchor2 was wrong, as it got out of sync with aDrawAnchor2.
+ CPPUNIT_ASSERT_EQUAL(aFlyAnchor2.nNode, aDrawAnchor2.nNode);
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx
index 08d7eb6f09fa..f62d77352cc9 100644
--- a/sw/source/core/doc/DocumentContentOperationsManager.cxx
+++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx
@@ -3785,6 +3785,14 @@ void DocumentContentOperationsManager::CopyFlyInFlyImpl(
}
}
+ // Ignore TextBoxes, they are already handled in
+ // sw::DocumentLayoutManager::CopyLayoutFormat().
+ if (SwTextBoxHelper::isTextBox(it->GetFormat(), RES_FLYFRMFMT))
+ {
+ it = aSet.erase(it);
+ continue;
+ }
+
// Copy the format and set the new anchor
aVecSwFrameFormat.push_back( pDest->getIDocumentLayoutAccess().CopyLayoutFormat( *(*it).GetFormat(),
aAnchor, false, true ) );
diff --git a/sw/source/core/txtnode/atrflyin.cxx b/sw/source/core/txtnode/atrflyin.cxx
index 1509c0cf3d40..837c90a1a5a7 100644
--- a/sw/source/core/txtnode/atrflyin.cxx
+++ b/sw/source/core/txtnode/atrflyin.cxx
@@ -35,6 +35,7 @@
#include <objectformatter.hxx>
#include <calbck.hxx>
#include <dcontact.hxx>
+#include <textboxhelper.hxx>
SwFormatFlyCnt::SwFormatFlyCnt( SwFrameFormat *pFrameFormat )
: SfxPoolItem( RES_TXTATR_FLYCNT ),
@@ -202,6 +203,15 @@ void SwTextFlyCnt::SetAnchor( const SwTextNode *pNode )
}
}
pFormat->SetFormatAttr( aAnchor ); // only set the anchor
+
+ // If the draw format has a TextBox, then set its anchor as well.
+ if (SwFrameFormat* pTextBox
+ = SwTextBoxHelper::getOtherTextBoxFormat(pFormat, RES_DRAWFRMFMT))
+ {
+ SwFormatAnchor aTextBoxAnchor(pTextBox->GetAnchor());
+ aTextBoxAnchor.SetAnchor(aAnchor.GetContentAnchor());
+ pTextBox->SetFormatAttr(aTextBoxAnchor);
+ }
}
// The node may have several SwTextFrames - for every SwTextFrame a
commit 28962153ca3826ca2aba626f8cc8ff9c6dab9eab
Author: Vasily Melenchuk <vasily.melenchuk at cib.de>
AuthorDate: Wed Jun 17 13:42:37 2020 +0300
Commit: Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Wed Jul 1 09:57:45 2020 +0200
tdf#134063: sw: redesigned support for tab at zero position
Initial support for tab position at zero (d2e428d1) was not
taking into account hack for tab positions below zero. So
previous behavior is restored (search is started from 0) but
we also taking into account potential tabs at zero position
in SwLineInfo::GetTabStop()
Change-Id: I8b315ab69f9a53ac15002a41a81e069ff832f692
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96526
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
(cherry picked from commit 02c0e015f84ddcc6fa94433f603ef89f358a0391)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96582
Reviewed-by: Vasily Melenchuk <vasily.melenchuk at cib.de>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97478
Reviewed-by: Xisco Fauli <xiscofauli at libreoffice.org>
diff --git a/sw/qa/extras/ooxmlexport/data/tdf134063.docx b/sw/qa/extras/ooxmlexport/data/tdf134063.docx
new file mode 100644
index 000000000000..372fed20e57f
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf134063.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
index 3cd34365a2f2..abb55384f68f 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
@@ -393,6 +393,18 @@ DECLARE_OOXMLEXPORT_TEST(testTdf123636_newlinePageBreak3, "tdf123636_newlinePage
assertXPath(pDump, "/root/page[1]/body/txt[3]/Text[1]", "Portion", "Last line on page 1");
}
+DECLARE_OOXMLEXPORT_TEST(testTdf134063, "tdf134063.docx")
+{
+ CPPUNIT_ASSERT_EQUAL(2, getPages());
+
+ xmlDocPtr pDump = parseLayoutDump();
+
+ // There are three tabs with default width
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(720), getXPath(pDump, "//page[1]/body/txt[1]/Text[1]", "nWidth").toInt32());
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(720), getXPath(pDump, "//page[1]/body/txt[1]/Text[2]", "nWidth").toInt32());
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(720), getXPath(pDump, "//page[1]/body/txt[1]/Text[3]", "nWidth").toInt32());
+}
+
DECLARE_OOXMLEXPORT_TEST(testTdf123636_newlinePageBreak4, "tdf123636_newlinePageBreak4.docx")
{
//MS Compatibility flag: SplitPgBreakAndParaMark
diff --git a/sw/source/core/text/txttab.cxx b/sw/source/core/text/txttab.cxx
index 37b00c532bae..63c253b0d0d7 100644
--- a/sw/source/core/text/txttab.cxx
+++ b/sw/source/core/text/txttab.cxx
@@ -51,6 +51,11 @@ const SvxTabStop *SwLineInfo::GetTabStop( const SwTwips nSearchPos, const SwTwip
if( rTabStop.GetTabPos() > SwTwips(nRight) )
return i ? nullptr : &rTabStop;
+ // If we are starting search from zero position,
+ // than we should include tabstop at zero position
+ if ((nSearchPos == 0) && (rTabStop.GetTabPos() == 0))
+ return &rTabStop;
+
if( rTabStop.GetTabPos() > nSearchPos )
return &rTabStop;
}
@@ -122,7 +127,7 @@ SwTabPortion *SwTextFormatter::NewTabPortion( SwTextFormatInfo &rInf, bool bAuto
// #i24363# tab stops relative to indent
// nSearchPos: The current position relative to the tabs origin
- SwTwips nSearchPos = bRTL ?
+ const SwTwips nSearchPos = bRTL ?
nTabLeft - nCurrentAbsPos :
nCurrentAbsPos - nTabLeft;
@@ -130,14 +135,6 @@ SwTabPortion *SwTextFormatter::NewTabPortion( SwTextFormatInfo &rInf, bool bAuto
// any hard set tab stops:
// Note: If there are no user defined tab stops, there is always a
// default tab stop.
-
- // If search is started from zero position (beginning of line), than
- // lets do it from -1: this will allow to include into account potential
- // tab stop at zero position. Yes, it will be zero width tab useless
- // mostly, but this have sense in case of lists.
- if (nSearchPos == 0)
- nSearchPos = -1;
-
const SvxTabStop* pTabStop = m_aLineInf.GetTabStop( nSearchPos, nMyRight );
if ( pTabStop )
{
commit 43130216127913d30074d3fe99c5706dcce44dee
Author: Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Mon Jun 29 14:00:56 2020 +0200
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Tue Jun 30 23:31:03 2020 +0200
curl: upgrade to release 7.71.0
Fixes CVE-2020-8169, and about 3 other ones that don't affect LO/libcmis.
Disable new optional dependencies "ngtcp2" and "quiche".
Change-Id: I595ed909c4e792ac3244643511a338b117e7f102
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97406
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl at cib.de>
(cherry picked from commit cb0c7e26e5708010b1fe941ae2f66134f31ed876)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97386
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
diff --git a/download.lst b/download.lst
index c1b8858bc443..06b4868dc8d9 100644
--- a/download.lst
+++ b/download.lst
@@ -29,8 +29,8 @@ export CPPUNIT_SHA256SUM := 3d569869d27b48860210c758c4f313082103a5e58219a7669b52
export CPPUNIT_TARBALL := cppunit-1.14.0.tar.gz
export CT2N_SHA256SUM := 71b238efd2734be9800af07566daea8d6685aeed28db5eb5fa0e6453f4d85de3
export CT2N_TARBALL := 1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt
-export CURL_SHA256SUM := 7766d263929404f693905b5e5222aa0f2bdf8c66ab4b8758f0c0820a42b966cd
-export CURL_TARBALL := curl-7.65.0.tar.xz
+export CURL_SHA256SUM := cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772
+export CURL_TARBALL := curl-7.71.0.tar.xz
export EBOOK_SHA256SUM := 7e8d8ff34f27831aca3bc6f9cc532c2f90d2057c778963b884ff3d1e34dfe1f9
export EBOOK_TARBALL := libe-book-0.1.3.tar.xz
export EPOXY_SHA256SUM := 002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d
diff --git a/external/curl/ExternalPackage_curl.mk b/external/curl/ExternalPackage_curl.mk
index 56c418b6ef0c..8da569e3e0cf 100644
--- a/external/curl/ExternalPackage_curl.mk
+++ b/external/curl/ExternalPackage_curl.mk
@@ -20,7 +20,7 @@ $(eval $(call gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl.4.dyli
else ifeq ($(OS),AIX)
$(eval $(call gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl.so,lib/.libs/libcurl.so.4))
else
-$(eval $(call gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl.so.4,lib/.libs/libcurl.so.4.5.0))
+$(eval $(call gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl.so.4,lib/.libs/libcurl.so.4.6.0))
endif
endif # $(DISABLE_DYNLOADING)
diff --git a/external/curl/ExternalProject_curl.mk b/external/curl/ExternalProject_curl.mk
index 366ff1e39d95..5cbedac82d1a 100644
--- a/external/curl/ExternalProject_curl.mk
+++ b/external/curl/ExternalProject_curl.mk
@@ -48,6 +48,7 @@ $(call gb_ExternalProject_get_state_target,curl,build):
--without-libidn2 --without-libpsl --without-librtmp \
--without-libssh2 --without-metalink --without-nghttp2 \
--without-libssh --without-brotli \
+ --without-ngtcp2 --without-quiche \
--disable-ares \
--disable-dict --disable-file --disable-gopher --disable-imap \
--disable-ldap --disable-ldaps --disable-manual --disable-pop3 \
diff --git a/external/curl/clang-cl.patch.0 b/external/curl/clang-cl.patch.0
index 2f7fe567460c..2fbb10c2a9aa 100644
--- a/external/curl/clang-cl.patch.0
+++ b/external/curl/clang-cl.patch.0
@@ -4,8 +4,8 @@
!ELSE
CC_NODEBUG = $(CC) /O2 /DNDEBUG
CC_DEBUG = $(CC) /Od /D_DEBUG /RTC1 /Z7 /LDd
--CFLAGS = /I. /I ../lib /I../include /nologo /W4 /wd4127 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL $(SOLARINC)
-+CFLAGS = /I. /I ../lib /I../include /nologo /W4 /wd4127 /EHsc /DWIN32 /c /DBUILDING_LIBCURL $(SOLARINC)
+-CFLAGS = /I. /I ../lib /I../include /nologo /W4 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL $(SOLARINC)
++CFLAGS = /I. /I ../lib /I../include /nologo /W4 /EHsc /DWIN32 /c /DBUILDING_LIBCURL $(SOLARINC)
!ENDIF
LFLAGS = /nologo /machine:$(MACHINE)
diff --git a/external/curl/curl-msvc.patch.1 b/external/curl/curl-msvc.patch.1
index 80160958c99d..a5b79a8e9c49 100644
--- a/external/curl/curl-msvc.patch.1
+++ b/external/curl/curl-msvc.patch.1
@@ -6,8 +6,8 @@ MSVC: using SOLARINC
!ELSE
CC_NODEBUG = $(CC) /O2 /DNDEBUG
CC_DEBUG = $(CC) /Od /D_DEBUG /RTC1 /Z7 /LDd
--CFLAGS = /I. /I ../lib /I../include /nologo /W4 /wd4127 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL
-+CFLAGS = /I. /I ../lib /I../include /nologo /W4 /wd4127 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL $(SOLARINC)
+-CFLAGS = /I. /I ../lib /I../include /nologo /W4 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL
++CFLAGS = /I. /I ../lib /I../include /nologo /W4 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL $(SOLARINC)
!ENDIF
LFLAGS = /nologo /machine:$(MACHINE)
@@ -18,10 +18,10 @@ MSVC: using SOLARINC
-RC_FLAGS = /dDEBUGBUILD=1 /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc
+RC_FLAGS = $(SOLARINC) /dDEBUGBUILD=1 /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc
CURL_CC = $(CC_DEBUG) $(RTLIB_DEBUG)
- CURL_RC_FLAGS = /i../include /dDEBUGBUILD=1 /Fo $@ $(CURL_SRC_DIR)\curl.rc
+ CURL_RC_FLAGS = $(CURL_RC_FLAGS) /i../include /dDEBUGBUILD=1 /Fo $@ $(CURL_SRC_DIR)\curl.rc
!ELSE
-RC_FLAGS = /dDEBUGBUILD=0 /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc
+RC_FLAGS = $(SOLARINC) /dDEBUGBUILD=0 /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc
CURL_CC = $(CC_NODEBUG) $(RTLIB)
- CURL_RC_FLAGS = /i../include /dDEBUGBUILD=0 /Fo $@ $(CURL_SRC_DIR)\curl.rc
+ CURL_RC_FLAGS = $(CURL_RC_FLAGS) /i../include /dDEBUGBUILD=0 /Fo $@ $(CURL_SRC_DIR)\curl.rc
!ENDIF
commit 029d239dd64a52ebb548f699c89e9109ae836fce
Author: Serge Krot <Serge.Krot at cib.de>
AuthorDate: Tue Jun 16 17:11:12 2020 +0200
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Tue Jun 30 23:29:51 2020 +0200
tdf#134043 DOCX import: DropDown text field instead of ComboBox form control
Change-Id: Ide9cedefde3b00fa0eeb37a6540e8d4a420b70c0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96471
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96608
diff --git a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
index e76bbeef495b..6ba34c5338ff 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
@@ -5883,6 +5883,18 @@
<value>true</value>
</prop>
</group>
+ <group oor:name="DOCX">
+ <info>
+ <desc>Contains settings for importing DOCX.</desc>
+ </info>
+ <prop oor:name="ImportComboBoxAsDropDown" oor:type="xs:boolean" oor:nillable="false">
+ <info>
+ <desc>Specifies whether ComboBox form control should be imported as DropDown text field.</desc>
+ <label>Import ComboBox as DropDown</label>
+ </info>
+ <value>false</value>
+ </prop>
+ </group>
</group>
</group>
<group oor:name="Numbering">
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index d4a453a27580..9a771a5f81b7 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -272,13 +272,30 @@ DECLARE_OOXMLEXPORT_TEST(testDropdownInCell, "dropdown-in-cell.docx")
uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables(), uno::UNO_QUERY);
CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xTables->getCount());
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> xDrawPage = xDrawPageSupplier->getDrawPage();
+
// Second problem: dropdown shape wasn't anchored inside the B1 cell.
- uno::Reference<text::XTextContent> xShape(getShape(1), uno::UNO_QUERY);
- uno::Reference<text::XTextRange> xAnchor = xShape->getAnchor();
- uno::Reference<text::XTextTable> xTable(xTables->getByIndex(0), uno::UNO_QUERY);
- uno::Reference<text::XTextRange> xCell(xTable->getCellByName("B1"), uno::UNO_QUERY);
- uno::Reference<text::XTextRangeCompare> xTextRangeCompare(xCell, uno::UNO_QUERY);
- CPPUNIT_ASSERT_EQUAL(sal_Int16(0), xTextRangeCompare->compareRegionStarts(xAnchor, xCell));
+ if (xDrawPage->getCount() > 0)
+ {
+ uno::Reference<text::XTextContent> xShape(getShape(1), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xAnchor = xShape->getAnchor();
+ uno::Reference<text::XTextTable> xTable(xTables->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xCell(xTable->getCellByName("B1"), uno::UNO_QUERY);
+ uno::Reference<text::XTextRangeCompare> xTextRangeCompare(xCell, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), xTextRangeCompare->compareRegionStarts(xAnchor, xCell));
+ }
+ else
+ {
+ // ComboBox was imported as DropDown text field
+ uno::Reference<text::XTextFieldsSupplier> xTextFieldsSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XEnumerationAccess> xFieldsAccess(xTextFieldsSupplier->getTextFields());
+ uno::Reference<container::XEnumeration> xFields(xFieldsAccess->createEnumeration());
+ CPPUNIT_ASSERT(xFields->hasMoreElements());
+ uno::Any aField = xFields->nextElement();
+ uno::Reference<lang::XServiceInfo> xServiceInfo(aField, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xServiceInfo->supportsService("com.sun.star.text.textfield.DropDown"));
+ }
}
DECLARE_OOXMLEXPORT_TEST(testTableAlignment, "table-alignment.docx")
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
index e586a666dff4..3cd34365a2f2 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
@@ -505,7 +505,12 @@ DECLARE_OOXMLEXPORT_TEST(testParaAdjustDistribute, "para-adjust-distribute.docx"
DECLARE_OOXMLEXPORT_TEST(testInputListExport, "tdf122186_input_list.odt")
{
- if (!mbExported) // importing the ODT, an input field
+ CPPUNIT_ASSERT_EQUAL(1, getPages());
+
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> xDrawPage = xDrawPageSupplier->getDrawPage();
+
+ if (!mbExported || xDrawPage->getCount() == 0) // importing the ODT, an input field
{
uno::Reference<text::XTextFieldsSupplier> xTextFieldsSupplier(mxComponent, uno::UNO_QUERY);
uno::Reference<container::XEnumerationAccess> xFieldsAccess(xTextFieldsSupplier->getTextFields());
@@ -859,12 +864,32 @@ DECLARE_OOXMLEXPORT_TEST(tdf127085, "tdf127085.docx")
DECLARE_OOXMLEXPORT_TEST(tdf119809, "tdf119809.docx")
{
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> xDrawPage = xDrawPageSupplier->getDrawPage();
+
// Combobox without an item list lost during import
- uno::Reference<drawing::XControlShape> xControlShape(getShape(1), uno::UNO_QUERY);
- uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
- uno::Reference<lang::XServiceInfo> xServiceInfo(xPropertySet, uno::UNO_QUERY);
- CPPUNIT_ASSERT_EQUAL(true, bool(xServiceInfo->supportsService("com.sun.star.form.component.ComboBox")));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(0), getProperty< uno::Sequence<OUString> >(xPropertySet, "StringItemList").getLength());
+ if (xDrawPage->getCount() > 0)
+ {
+ uno::Reference<drawing::XControlShape> xControlShape(getShape(1), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+ uno::Reference<lang::XServiceInfo> xServiceInfo(xPropertySet, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(true, bool(xServiceInfo->supportsService("com.sun.star.form.component.ComboBox")));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), getProperty< uno::Sequence<OUString> >(xPropertySet, "StringItemList").getLength());
+ }
+ else
+ {
+ // ComboBox was imported as DropDown text field
+ uno::Reference<text::XTextFieldsSupplier> xTextFieldsSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XEnumerationAccess> xFieldsAccess(xTextFieldsSupplier->getTextFields());
+ uno::Reference<container::XEnumeration> xFields(xFieldsAccess->createEnumeration());
+ CPPUNIT_ASSERT(xFields->hasMoreElements());
+ uno::Any aField = xFields->nextElement();
+ uno::Reference<lang::XServiceInfo> xServiceInfo(aField, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xServiceInfo->supportsService("com.sun.star.text.textfield.DropDown"));
+
+ uno::Sequence<OUString> aItems = getProperty< uno::Sequence<OUString> >(aField, "Items");
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aItems.getLength());
+ }
}
DECLARE_OOXMLEXPORT_TEST(tdf118169, "tdf118169.docx")
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
index 29d4d54534f8..c80c8f6655bb 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
@@ -775,15 +775,39 @@ DECLARE_OOXMLEXPORT_TEST(testComboBoxControl, "combobox-control.docx")
assertXPath(pXmlDoc, "/w:document/w:body/w:p/w:sdt/w:sdtPr/w:dropDownList/w:listItem[2]", "value", "pepito");
assertXPathContent(pXmlDoc, "/w:document/w:body/w:p/w:sdt/w:sdtContent/w:r/w:t", "Manolo");
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> xDrawPage = xDrawPageSupplier->getDrawPage();
+
// check imported control
- uno::Reference<drawing::XControlShape> xControl(getShape(1), uno::UNO_QUERY);
+ if (xDrawPage->getCount() > 0)
+ {
+ uno::Reference<drawing::XControlShape> xControl(getShape(1), uno::UNO_QUERY);
- CPPUNIT_ASSERT_EQUAL(OUString("Manolo"), getProperty<OUString>(xControl->getControl(), "Text"));
+ CPPUNIT_ASSERT_EQUAL(OUString("Manolo"), getProperty<OUString>(xControl->getControl(), "Text"));
- uno::Sequence<OUString> aItems = getProperty< uno::Sequence<OUString> >(xControl->getControl(), "StringItemList");
- CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aItems.getLength());
- CPPUNIT_ASSERT_EQUAL(OUString("manolo"), aItems[0]);
- CPPUNIT_ASSERT_EQUAL(OUString("pepito"), aItems[1]);
+ uno::Sequence<OUString> aItems = getProperty< uno::Sequence<OUString> >(xControl->getControl(), "StringItemList");
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aItems.getLength());
+ CPPUNIT_ASSERT_EQUAL(OUString("manolo"), aItems[0]);
+ CPPUNIT_ASSERT_EQUAL(OUString("pepito"), aItems[1]);
+ }
+ else
+ {
+ // ComboBox was imported as DropDown text field
+ uno::Reference<text::XTextFieldsSupplier> xTextFieldsSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XEnumerationAccess> xFieldsAccess(xTextFieldsSupplier->getTextFields());
+ uno::Reference<container::XEnumeration> xFields(xFieldsAccess->createEnumeration());
+ CPPUNIT_ASSERT(xFields->hasMoreElements());
+ uno::Any aField = xFields->nextElement();
+ uno::Reference<lang::XServiceInfo> xServiceInfo(aField, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xServiceInfo->supportsService("com.sun.star.text.textfield.DropDown"));
+
+ CPPUNIT_ASSERT_EQUAL(OUString("manolo"), getProperty<OUString>(aField, "SelectedItem"));
+
+ uno::Sequence<OUString> aItems = getProperty< uno::Sequence<OUString> >(aField, "Items");
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aItems.getLength());
+ CPPUNIT_ASSERT_EQUAL(OUString("manolo"), aItems[0]);
+ CPPUNIT_ASSERT_EQUAL(OUString("pepito"), aItems[1]);
+ }
}
DECLARE_OOXMLEXPORT_TEST(testCheckBoxControl, "checkbox-control.docx")
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx
index 88f8610cc0e5..0e1416b7ee00 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx
@@ -933,14 +933,36 @@ DECLARE_OOXMLEXPORT_TEST(testN592908_Picture, "n592908-picture.docx")
DECLARE_OOXMLEXPORT_TEST(testN779630, "n779630.docx")
{
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> xDrawPage = xDrawPageSupplier->getDrawPage();
+
// A combo box is imported
- uno::Reference<drawing::XControlShape> xControlShape(getShape(1), uno::UNO_QUERY);
- uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
- uno::Reference<lang::XServiceInfo> xServiceInfo(xPropertySet, uno::UNO_QUERY);
- CPPUNIT_ASSERT_EQUAL(true, bool(xServiceInfo->supportsService("com.sun.star.form.component.ComboBox")));
- CPPUNIT_ASSERT_EQUAL(OUString("dropdown default text"), getProperty<OUString>(xPropertySet, "DefaultText"));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(2), getProperty< uno::Sequence<OUString> >(xPropertySet, "StringItemList").getLength());
- CPPUNIT_ASSERT_EQUAL(true, getProperty<bool>(xPropertySet, "Dropdown"));
+ if (xDrawPage->getCount() > 0)
+ {
+ uno::Reference<drawing::XControlShape> xControlShape(getShape(1), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+ uno::Reference<lang::XServiceInfo> xServiceInfo(xPropertySet, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(true, bool(xServiceInfo->supportsService("com.sun.star.form.component.ComboBox")));
+ CPPUNIT_ASSERT_EQUAL(OUString("dropdown default text"), getProperty<OUString>(xPropertySet, "DefaultText"));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), getProperty< uno::Sequence<OUString> >(xPropertySet, "StringItemList").getLength());
+ CPPUNIT_ASSERT_EQUAL(true, getProperty<bool>(xPropertySet, "Dropdown"));
+ }
+ else
+ {
+ // ComboBox was imported as DropDown text field
+ uno::Reference<text::XTextFieldsSupplier> xTextFieldsSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XEnumerationAccess> xFieldsAccess(xTextFieldsSupplier->getTextFields());
+ uno::Reference<container::XEnumeration> xFields(xFieldsAccess->createEnumeration());
+ CPPUNIT_ASSERT(xFields->hasMoreElements());
+ uno::Any aField = xFields->nextElement();
+ uno::Reference<lang::XServiceInfo> xServiceInfo(aField, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xServiceInfo->supportsService("com.sun.star.text.textfield.DropDown"));
+
+ uno::Sequence<OUString> aItems = getProperty< uno::Sequence<OUString> >(aField, "Items");
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aItems.getLength());
+ CPPUNIT_ASSERT_EQUAL(OUString("Yes"), aItems[0]);
+ CPPUNIT_ASSERT_EQUAL(OUString("No"), aItems[1]);
+ }
}
DECLARE_OOXMLEXPORT_TEST(testIndentation, "indentation.docx")
diff --git a/writerfilter/source/dmapper/SdtHelper.cxx b/writerfilter/source/dmapper/SdtHelper.cxx
index aef7ac1e5fbd..3685e92cf942 100644
--- a/writerfilter/source/dmapper/SdtHelper.cxx
+++ b/writerfilter/source/dmapper/SdtHelper.cxx
@@ -16,9 +16,10 @@
#include <vcl/outdev.hxx>
#include <comphelper/sequence.hxx>
#include <xmloff/odffields.hxx>
-
+#include <com/sun/star/text/XTextField.hpp>
#include "DomainMapper_Impl.hxx"
#include "StyleSheetTable.hxx"
+#include <officecfg/Office/Writer.hxx>
namespace writerfilter
{
@@ -80,19 +81,50 @@ SdtHelper::~SdtHelper() = default;
void SdtHelper::createDropDownControl()
{
assert(m_bInsideDropDownControl);
- OUString aDefaultText = m_aSdtTexts.makeStringAndClear();
- uno::Reference<awt::XControlModel> xControlModel(
- m_rDM_Impl.GetTextFactory()->createInstance("com.sun.star.form.component.ComboBox"),
- uno::UNO_QUERY);
- uno::Reference<beans::XPropertySet> xPropertySet(xControlModel, uno::UNO_QUERY);
- xPropertySet->setPropertyValue("DefaultText", uno::makeAny(aDefaultText));
- xPropertySet->setPropertyValue("Dropdown", uno::makeAny(true));
- xPropertySet->setPropertyValue("StringItemList",
- uno::makeAny(comphelper::containerToSequence(m_aDropDownItems)));
-
- createControlShape(
- lcl_getOptimalWidth(m_rDM_Impl.GetStyleSheetTable(), aDefaultText, m_aDropDownItems),
- xControlModel, uno::Sequence<beans::PropertyValue>());
+
+ const bool bDropDown
+ = officecfg::Office::Writer::Filter::Import::DOCX::ImportComboBoxAsDropDown::get();
+ const OUString aDefaultText = m_aSdtTexts.makeStringAndClear();
+
+ if (bDropDown)
+ {
+ // create field
+ uno::Reference<css::text::XTextField> xControlModel(
+ m_rDM_Impl.GetTextFactory()->createInstance("com.sun.star.text.TextField.DropDown"),
+ uno::UNO_QUERY);
+
+ // set properties
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlModel, uno::UNO_QUERY);
+ xPropertySet->setPropertyValue("SelectedItem", uno::makeAny(aDefaultText));
+ xPropertySet->setPropertyValue(
+ "Items", uno::makeAny(comphelper::containerToSequence(m_aDropDownItems)));
+
+ // add it into document
+ m_rDM_Impl.appendTextContent(xControlModel, uno::Sequence<beans::PropertyValue>());
+
+ m_bHasElements = true;
+ }
+ else
+ {
+ // create control
+ uno::Reference<awt::XControlModel> xControlModel(
+ m_rDM_Impl.GetTextFactory()->createInstance("com.sun.star.form.component.ComboBox"),
+ uno::UNO_QUERY);
+
+ // set properties
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlModel, uno::UNO_QUERY);
+ xPropertySet->setPropertyValue("DefaultText", uno::makeAny(aDefaultText));
+ xPropertySet->setPropertyValue("Dropdown", uno::makeAny(true));
+ xPropertySet->setPropertyValue(
+ "StringItemList", uno::makeAny(comphelper::containerToSequence(m_aDropDownItems)));
+
+ // add it into document
+ createControlShape(
+ lcl_getOptimalWidth(m_rDM_Impl.GetStyleSheetTable(), aDefaultText, m_aDropDownItems),
+ xControlModel, uno::Sequence<beans::PropertyValue>());
+ }
+
+ // clean up
m_aDropDownItems.clear();
m_bInsideDropDownControl = false;
}
commit a994ab97213db1d8a4a793ed6290d577e431bdbc
Author: Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Tue Jun 30 12:24:01 2020 +0200
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Tue Jun 30 23:28:25 2020 +0200
tdf#134404 sw: another subtlety with start/end of section (at-para flys)
fix this problem by comparing the start/end of the selection instead of
the anchor position, which always has an index of 0:
1. new document with image anchored to paragraph
2. insert one letter
3. press Enter
4. Backspace -> Image gone
(regression from cc4b5091e739116a7ec83513fa1cd856f0130330)
Change-Id: I1219a9f58ce19ea88d697c90c862fe9005318177
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97511
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl at cib.de>
(cherry picked from commit 17aeb522f566cf225baa5ce524e747089f76728d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97499
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
diff --git a/sw/source/core/undo/undobj.cxx b/sw/source/core/undo/undobj.cxx
index c46c93bbcec0..c37cffbaf9f8 100644
--- a/sw/source/core/undo/undobj.cxx
+++ b/sw/source/core/undo/undobj.cxx
@@ -1630,14 +1630,14 @@ bool IsSelectFrameAnchoredAtPara(SwPosition const & rAnchorPos,
&& ((rStart.nNode != rEnd.nNode && rStart.nContent == 0
// but not if the selection is backspace/delete!
&& IsNotBackspaceHeuristic(rStart, rEnd))
- || (IsAtStartOfSection(rAnchorPos) && IsAtEndOfSection2(rEnd)))))
+ || (IsAtStartOfSection2(rStart) && IsAtEndOfSection2(rEnd)))))
&& ((rAnchorPos.nNode < rEnd.nNode)
|| (rAnchorPos.nNode == rEnd.nNode
&& !(nDelContentType & DelContentType::ExcludeFlyAtStartEnd)
// special case: fully deleted node
&& ((rEnd.nNode != rStart.nNode && rEnd.nContent == rEnd.nNode.GetNode().GetTextNode()->Len()
&& IsNotBackspaceHeuristic(rStart, rEnd))
- || (IsAtEndOfSection(rAnchorPos) && IsAtStartOfSection2(rStart)))));
+ || (IsAtEndOfSection2(rEnd) && IsAtStartOfSection2(rStart)))));
}
bool IsFlySelectedByCursor(SwDoc const & rDoc,
commit 7a542a41f48c673478606cba307662780e5137e0
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Jun 15 20:33:47 2020 +0100
Commit: Michael Stahl <michael.stahl at cib.de>
CommitDate: Tue Jun 30 21:09:30 2020 +0200
tdf#132822 close open undo group before clearing undo stack
when changing paragraph. previous para undo info needs to be discarded, but
that cannot be done properly if there is an open undo group. So pass the
optional undo group guard down to GetNextSentence_Impl which can close it
before it needs to set the new paragraph.
Change-Id: I595c3598b15b6b1fdace045c3879617ecfea3faa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96398
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl at cib.de>
diff --git a/cui/source/dialogs/SpellDialog.cxx b/cui/source/dialogs/SpellDialog.cxx
index 85dc7027ceed..26c3b3bc4098 100644
--- a/cui/source/dialogs/SpellDialog.cxx
+++ b/cui/source/dialogs/SpellDialog.cxx
@@ -343,14 +343,14 @@ void SpellDialog::UpdateBoxes_Impl(bool bCallFromSelectHdl)
m_xDialog->resize_to_request();
}
-void SpellDialog::SpellContinue_Impl(bool bUseSavedSentence, bool bIgnoreCurrentError )
+void SpellDialog::SpellContinue_Impl(std::unique_ptr<UndoChangeGroupGuard>* pGuard, bool bUseSavedSentence, bool bIgnoreCurrentError)
{
//initially or after the last error of a sentence MarkNextError will fail
//then GetNextSentence() has to be called followed again by MarkNextError()
//MarkNextError is not initially called if the UndoEdit mode is active
bool bNextSentence = false;
if((!m_xSentenceED->IsUndoEditMode() && m_xSentenceED->MarkNextError( bIgnoreCurrentError, xSpell )) ||
- ( bNextSentence = GetNextSentence_Impl(bUseSavedSentence, m_xSentenceED->IsUndoEditMode()) && m_xSentenceED->MarkNextError( false, xSpell )))
+ ( bNextSentence = GetNextSentence_Impl(pGuard, bUseSavedSentence, m_xSentenceED->IsUndoEditMode()) && m_xSentenceED->MarkNextError( false, xSpell )))
{
SpellErrorDescription aSpellErrorDescription;
bool bSpellErrorDescription = m_xSentenceED->GetAlternatives(aSpellErrorDescription);
@@ -388,7 +388,7 @@ IMPL_LINK_NOARG( SpellDialog, InitHdl, void*, void)
m_xDialog->freeze();
//show or hide AutoCorrect depending on the modules abilities
m_xAutoCorrPB->set_visible(rParent.HasAutoCorrection());
- SpellContinue_Impl();
+ SpellContinue_Impl(nullptr);
m_xSentenceED->ResetUndo();
m_xUndoPB->set_sensitive(false);
@@ -505,6 +505,27 @@ IMPL_LINK_NOARG(SpellDialog, DoubleClickChangeHdl, weld::TreeView&, bool)
return true;
}
+/* tdf#132822 start an undo group in ctor and close it in the dtor. This can
+ then be passed to SpellContinue_Impl which can delete it in advance of its
+ natural scope to force closing the undo group if SpellContinue_Impl needs to
+ fetch a new paragraph and discard all undo information which can only be
+ done properly if there are no open undo groups */
+class UndoChangeGroupGuard
+{
+private:
+ SentenceEditWindow_Impl& m_rSentenceED;
+public:
+ UndoChangeGroupGuard(SentenceEditWindow_Impl& rSentenceED)
+ : m_rSentenceED(rSentenceED)
+ {
+ m_rSentenceED.UndoActionStart(SPELLUNDO_CHANGE_GROUP);
+ }
+ ~UndoChangeGroupGuard()
+ {
+ m_rSentenceED.UndoActionEnd();
+ }
+};
+
IMPL_LINK_NOARG(SpellDialog, ChangeHdl, weld::Button&, void)
{
if (m_xSentenceED->IsUndoEditMode())
@@ -513,11 +534,10 @@ IMPL_LINK_NOARG(SpellDialog, ChangeHdl, weld::Button&, void)
}
else
{
- m_xSentenceED->UndoActionStart( SPELLUNDO_CHANGE_GROUP );
+ auto xGuard(std::make_unique<UndoChangeGroupGuard>(*m_xSentenceED));
OUString aString = getReplacementString();
m_xSentenceED->ChangeMarkedWord(aString, GetSelectedLang_Impl());
- SpellContinue_Impl();
- m_xSentenceED->UndoActionEnd();
+ SpellContinue_Impl(&xGuard);
}
if(!m_xChangePB->get_sensitive())
m_xIgnorePB->grab_focus();
@@ -525,7 +545,7 @@ IMPL_LINK_NOARG(SpellDialog, ChangeHdl, weld::Button&, void)
IMPL_LINK_NOARG(SpellDialog, ChangeAllHdl, weld::Button&, void)
{
- m_xSentenceED->UndoActionStart( SPELLUNDO_CHANGE_GROUP );
+ auto xGuard(std::make_unique<UndoChangeGroupGuard>(*m_xSentenceED));
OUString aString = getReplacementString();
LanguageType eLang = GetSelectedLang_Impl();
@@ -547,13 +567,12 @@ IMPL_LINK_NOARG(SpellDialog, ChangeAllHdl, weld::Button&, void)
}
m_xSentenceED->ChangeMarkedWord(aString, eLang);
- SpellContinue_Impl();
- m_xSentenceED->UndoActionEnd();
+ SpellContinue_Impl(&xGuard);
}
IMPL_LINK( SpellDialog, IgnoreAllHdl, weld::Button&, rButton, void )
{
- m_xSentenceED->UndoActionStart( SPELLUNDO_CHANGE_GROUP );
+ auto xGuard(std::make_unique<UndoChangeGroupGuard>(*m_xSentenceED));
// add word to IgnoreAll list
Reference< XDictionary > aXDictionary = LinguMgr::GetIgnoreAllList();
//in case the error has been changed manually it has to be restored
@@ -593,8 +612,7 @@ IMPL_LINK( SpellDialog, IgnoreAllHdl, weld::Button&, rButton, void )
}
}
- SpellContinue_Impl();
- m_xSentenceED->UndoActionEnd();
+ SpellContinue_Impl(&xGuard);
}
IMPL_LINK_NOARG(SpellDialog, UndoHdl, weld::Button&, void)
@@ -643,7 +661,7 @@ IMPL_LINK( SpellDialog, DialogUndoHdl, SpellUndoAction_Impl&, rAction, void )
case SPELLUNDO_UNDO_EDIT_MODE :
{
//refill the dialog with the currently spelled sentence - throw away all changes
- SpellContinue_Impl(true);
+ SpellContinue_Impl(nullptr, true);
}
break;
case SPELLUNDO_ADD_IGNORE_RULE:
@@ -660,7 +678,7 @@ void SpellDialog::Impl_Restore(bool bUseSavedSentence)
m_xSentenceED->SetText(OUString());
m_xSentenceED->ResetModified();
//Resolves: fdo#39348 refill the dialog with the currently spelled sentence
- SpellContinue_Impl(bUseSavedSentence);
+ SpellContinue_Impl(nullptr, bUseSavedSentence);
m_xIgnorePB->set_label(m_sIgnoreOnceST);
}
@@ -677,7 +695,7 @@ IMPL_LINK_NOARG(SpellDialog, IgnoreHdl, weld::Button&, void)
m_xSentenceED->RestoreCurrentError();
// the word is being ignored
- SpellContinue_Impl( false, true );
+ SpellContinue_Impl(nullptr, false, true);
}
}
@@ -816,7 +834,7 @@ IMPL_LINK(SpellDialog, AddToDictSelectHdl, const OString&, rIdent, void)
void SpellDialog::AddToDictionaryExecute(const OString& rItemId)
{
- m_xSentenceED->UndoActionStart( SPELLUNDO_CHANGE_GROUP );
+ auto xGuard(std::make_unique<UndoChangeGroupGuard>(*m_xSentenceED));
//GetErrorText() returns the current error even if the text is already
//manually changed
@@ -857,8 +875,7 @@ void SpellDialog::AddToDictionaryExecute(const OString& rItemId)
}
// go on
- SpellContinue_Impl();
- m_xSentenceED->UndoActionEnd();
+ SpellContinue_Impl(&xGuard);
}
IMPL_LINK_NOARG(SpellDialog, ModifyHdl, LinkParamNone*, void)
@@ -957,7 +974,7 @@ void SpellDialog::InvalidateDialog()
SfxModelessDialogController::Deactivate();
}
-bool SpellDialog::GetNextSentence_Impl(bool bUseSavedSentence, bool bRecheck)
+bool SpellDialog::GetNextSentence_Impl(std::unique_ptr<UndoChangeGroupGuard>* pGuard, bool bUseSavedSentence, bool bRecheck)
{
bool bRet = false;
if(!bUseSavedSentence)
@@ -994,6 +1011,9 @@ bool SpellDialog::GetNextSentence_Impl(bool bUseSavedSentence, bool bRecheck)
if(!elem.bIsHidden)
sText.append(elem.sText);
}
+ // tdf#132822 fire undo-stack UndoActionEnd to close undo stack because we're about to throw away the paragraph entirely
+ if (pGuard)
+ pGuard->reset();
m_xSentenceED->SetText(sText.makeStringAndClear());
sal_Int32 nStartPosition = 0;
sal_Int32 nEndPosition = 0;
diff --git a/cui/source/inc/SpellDialog.hxx b/cui/source/inc/SpellDialog.hxx
index 61adf31f8afa..0ad462789477 100644
--- a/cui/source/inc/SpellDialog.hxx
+++ b/cui/source/inc/SpellDialog.hxx
@@ -33,6 +33,7 @@
#include <set>
namespace svx{ class SpellUndoAction_Impl;}
+class UndoChangeGroupGuard;
// forward ---------------------------------------------------------------
@@ -192,7 +193,7 @@ private:
int InitUserDicts();
void UpdateBoxes_Impl(bool bCallFromSelectHdl = false);
void Init_Impl();
- void SpellContinue_Impl(bool UseSavedSentence = false, bool bIgnoreCurrentError = false );
+ void SpellContinue_Impl(std::unique_ptr<UndoChangeGroupGuard>* pGuard = nullptr, bool UseSavedSentence = false, bool bIgnoreCurrentError = false );
void LockFocusChanges( bool bLock ) {bFocusLocked = bLock;}
void ToplevelFocusChanged();
void Impl_Restore(bool bUseSavedSentence);
@@ -201,7 +202,7 @@ private:
/** Retrieves the next sentence.
*/
- bool GetNextSentence_Impl(bool bUseSavedSentence, bool bRechek /*for rechecking the current sentence*/);
+ bool GetNextSentence_Impl(std::unique_ptr<UndoChangeGroupGuard>* pGuard, bool bUseSavedSentence, bool bRecheck /*for rechecking the current sentence*/);
/** Corrects all errors that have been selected to be changed always
*/
static bool ApplyChangeAllList_Impl(SpellPortions& rSentence, bool& bHasReplaced);
commit dcd3375233714c52c693bbf3a32d380f75d08fac
Author: Vasily Melenchuk <vasily.melenchuk at cib.de>
AuthorDate: Tue Jun 23 08:45:54 2020 +0300
Commit: Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Tue Jun 30 17:12:51 2020 +0200
tdf#83309: sw: do not create bullet with no char
On some machines (depending on fonts installed) creation
of SwBulletPortion with bullet = \0 leads to drawing
a bullet as a empty rectangle.
Change-Id: I2826944f2278e8c9a6c740b11b69d2e4e5108158
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96711
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
(cherry picked from commit 5ed96c798679a1613b058a11b30cce4ba0ffd920)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96886
Reviewed-by: Vasily Melenchuk <vasily.melenchuk at cib.de>
(cherry picked from commit 0453702ea9cf48fc5764bb7d2d6685e0234e09cb)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97494
Reviewed-by: Xisco Fauli <xiscofauli at libreoffice.org>
diff --git a/sw/source/core/text/txtfld.cxx b/sw/source/core/text/txtfld.cxx
index 1930bfa99b30..42d852a1e41e 100644
--- a/sw/source/core/text/txtfld.cxx
+++ b/sw/source/core/text/txtfld.cxx
@@ -654,11 +654,14 @@ SwNumberPortion *SwTextFormatter::NewNumberPortion( SwTextFormatInfo &rInf ) con
lcl_setRedlineAttr( rInf, *pTextNd, pNumFnt );
// --> OD 2008-01-23 #newlistelevelattrs#
- pRet = new SwBulletPortion( rNumFormat.GetBulletChar(),
- pTextNd->GetLabelFollowedBy(),
- std::move(pNumFnt),
- bLeft, bCenter, nMinDist,
- bLabelAlignmentPosAndSpaceModeActive );
+ if (rNumFormat.GetBulletChar())
+ {
+ pRet = new SwBulletPortion(rNumFormat.GetBulletChar(),
+ pTextNd->GetLabelFollowedBy(),
+ std::move(pNumFnt),
+ bLeft, bCenter, nMinDist,
+ bLabelAlignmentPosAndSpaceModeActive);
+ }
}
else
{
commit 7fffa25b37006aea218d8fa709f148168efee053
Author: Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Mon Jun 22 21:04:47 2020 +0200
Commit: Michael Stahl <michael.stahl at cib.de>
CommitDate: Tue Jun 30 12:55:36 2020 +0200
tdf#119081 sw: fix RTF paste into outer table cell
Regression from commit ed654c4aa7f9f10fcb16127349009bc0c38b12e8 (Revert
"fdo#43869 use the old rtf importer for paste", 2012-11-30), the direct
problem is that SwXText::insertTextPortion() is now used by
writerfilter, so in case it's not as good as the internal API used by
the old RTF filter, we have a problem.
This function calls SwXCell::CreateCursor(), which calls
SwXCell::createTextCursor(), which uses Move() to go to the first
content node in the cell, but that means we end up at the inner cell's
XText for an outer cell.
So later when we want to go to the end of the outer cell, we can't, as
that would be a different XText and we throw an exception.
Fix the problem by instead using createTextCursorByRange(), which
immediately positions the cursor at the insert position, so the XText
will be correct.
FWIW, the ODF import at SwXMLImport::setTextInsertMode() also uses
createTextCursorByRange() to handle this situation.
(cherry picked from commit e0d0274c2b806f5148b413926ec2e58c75ce04a1)
Conflicts:
sw/Module_sw.mk
Change-Id: I1db13b860bc60771d98c2b4099be73f4bf41c375
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96937
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl at cib.de>
diff --git a/sw/CppunitTest_sw_core_unocore.mk b/sw/CppunitTest_sw_core_unocore.mk
new file mode 100644
index 000000000000..6ff38dfc1890
--- /dev/null
+++ b/sw/CppunitTest_sw_core_unocore.mk
@@ -0,0 +1,77 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#*************************************************************************
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+#*************************************************************************
+
+$(eval $(call gb_CppunitTest_CppunitTest,sw_core_unocore))
+
+$(eval $(call gb_CppunitTest_use_common_precompiled_header,sw_core_unocore))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,sw_core_unocore, \
+ sw/qa/core/unocore/unocore \
+))
+
+# note: this links msword only for the reason to have an order dependency,
+# because "make sw.check" will not see the dependency through services.rdb
+$(eval $(call gb_CppunitTest_use_libraries,sw_core_unocore, \
+ comphelper \
+ cppu \
+ cppuhelper \
+ editeng \
+ msword \
+ sal \
+ sfx \
+ svl \
+ svt \
+ svxcore \
+ sw \
+ test \
+ unotest \
+ vcl \
+ tl \
+ tk \
+ utl \
+))
+
+$(eval $(call gb_CppunitTest_use_externals,sw_core_unocore,\
+ boost_headers \
+ libxml2 \
+))
+
+$(eval $(call gb_CppunitTest_set_include,sw_core_unocore,\
+ -I$(SRCDIR)/sw/inc \
+ -I$(SRCDIR)/sw/source/core/inc \
+ -I$(SRCDIR)/sw/source/uibase/inc \
+ -I$(SRCDIR)/sw/qa/inc \
+ $$(INCLUDE) \
+))
+
+$(eval $(call gb_CppunitTest_use_api,sw_core_unocore,\
+ udkapi \
+ offapi \
+ oovbaapi \
+))
+
+$(eval $(call gb_CppunitTest_use_ure,sw_core_unocore))
+$(eval $(call gb_CppunitTest_use_vcl,sw_core_unocore))
+
+$(eval $(call gb_CppunitTest_use_rdb,sw_core_unocore,services))
+
+$(eval $(call gb_CppunitTest_use_configuration,sw_core_unocore))
+
+$(eval $(call gb_CppunitTest_use_uiconfigs,sw_core_unocore, \
+ modules/swriter \
+))
+
+$(call gb_CppunitTest_get_target,sw_core_unocore): \
+ $(call gb_Library_get_target,textconv_dict)
+
+$(eval $(call gb_CppunitTest_use_more_fonts,sw_core_unocore))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sw/Module_sw.mk b/sw/Module_sw.mk
index fcd3f0c2d572..f8d59d1e7848 100644
--- a/sw/Module_sw.mk
+++ b/sw/Module_sw.mk
@@ -112,6 +112,7 @@ $(eval $(call gb_Module_add_slowcheck_targets,sw,\
CppunitTest_sw_core_txtnode \
CppunitTest_sw_core_objectpositioning \
CppunitTest_sw_core_layout \
+ CppunitTest_sw_core_unocore \
))
ifneq ($(DISABLE_GUI),TRUE)
diff --git a/sw/qa/core/unocore/data/tdf119081.odt b/sw/qa/core/unocore/data/tdf119081.odt
new file mode 100644
index 000000000000..a9b479dd59df
Binary files /dev/null and b/sw/qa/core/unocore/data/tdf119081.odt differ
diff --git a/sw/qa/core/unocore/unocore.cxx b/sw/qa/core/unocore/unocore.cxx
new file mode 100644
index 000000000000..d8d72ecf369f
--- /dev/null
+++ b/sw/qa/core/unocore/unocore.cxx
@@ -0,0 +1,91 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <swmodeltestbase.hxx>
+
+#include <com/sun/star/awt/FontSlant.hpp>
+#include <com/sun/star/table/XCellRange.hpp>
+#include <com/sun/star/text/TextContentAnchorType.hpp>
+#include <com/sun/star/text/AutoTextContainer.hpp>
+#include <com/sun/star/text/VertOrientation.hpp>
+#include <com/sun/star/text/XAutoTextGroup.hpp>
+#include <com/sun/star/text/XTextPortionAppend.hpp>
+#include <com/sun/star/text/XTextContentAppend.hpp>
+#include <com/sun/star/text/XTextRangeCompare.hpp>
+#include <com/sun/star/text/XTextAppend.hpp>
+#include <com/sun/star/rdf/URI.hpp>
+#include <com/sun/star/rdf/URIs.hpp>
+#include <com/sun/star/awt/XDevice.hpp>
+#include <com/sun/star/awt/XToolkit.hpp>
+#include <com/sun/star/graphic/XGraphic.hpp>
+#include <com/sun/star/style/LineSpacing.hpp>
+#include <com/sun/star/view/XSelectionSupplier.hpp>
+
+#include <comphelper/propertyvalue.hxx>
+#include <toolkit/helper/vclunohelper.hxx>
+#include <vcl/graphicfilter.hxx>
+
+#include <wrtsh.hxx>
+#include <ndtxt.hxx>
+#include <swdtflvr.hxx>
+#include <view.hxx>
+#include <PostItMgr.hxx>
+#include <postithelper.hxx>
+#include <AnnotationWin.hxx>
+#include <flyfrm.hxx>
+#include <fmtanchr.hxx>
+#include <unotextrange.hxx>
+
+using namespace ::com::sun::star;
+
+namespace
+{
+char const DATA_DIRECTORY[] = "/sw/qa/core/unocore/data/";
+}
+
+/// Covers sw/source/core/unocore/ fixes.
+class SwCoreUnocoreTest : public SwModelTestBase
+{
+};
+
+CPPUNIT_TEST_FIXTURE(SwCoreUnocoreTest, testTdf119081)
+{
+ // Load a doc with a nested table in it.
+ load(DATA_DIRECTORY, "tdf119081.odt");
+ SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument*>(mxComponent.get());
+ CPPUNIT_ASSERT(pTextDoc);
+ SwDocShell* pDocShell = pTextDoc->GetDocShell();
+ SwWrtShell* pWrtShell = pDocShell->GetWrtShell();
+
+ // Enter outer A1.
+ pWrtShell->Down(/*bSelect=*/false, /*nCount=*/3);
+ // Enter inner A1.
+ pWrtShell->Right(CRSR_SKIP_CELLS, /*bSelect=*/false, /*nCount=*/1, /*bBasicCall=*/false,
+ /*bVisual=*/true);
+ // Enter outer B1.
+ pWrtShell->Down(/*bSelect=*/false, /*nCount=*/2);
+
+ SwDoc* pDoc = pDocShell->GetDoc();
+ SwPaM& rCursor = pWrtShell->GetCurrentShellCursor();
+ uno::Reference<text::XTextRange> xInsertPosition
+ = SwXTextRange::CreateXTextRange(*pDoc, *rCursor.GetPoint(), nullptr);
+ uno::Reference<text::XTextAppend> xTextAppend(xInsertPosition->getText(), uno::UNO_QUERY);
+ // Without the accompanying fix in place, this test would have failed with:
+ // An uncaught exception of type com.sun.star.uno.RuntimeException
+ xTextAppend->insertTextPortion("x", {}, xInsertPosition);
+
+ // Verify that the string is indeed inserted.
+ pWrtShell->Left(CRSR_SKIP_CELLS, /*bSelect=*/true, /*nCount=*/1, /*bBasicCall=*/false,
+ /*bVisual=*/true);
+ CPPUNIT_ASSERT_EQUAL(OUString("x"), pWrtShell->GetCurrentShellCursor().GetText());
+}
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx
index 8bdc6d575e73..3887a11191d7 100644
--- a/sw/source/core/unocore/unotext.cxx
+++ b/sw/source/core/unocore/unotext.cxx
@@ -1339,8 +1339,7 @@ SwXText::insertTextPortion(
throw uno::RuntimeException();
}
uno::Reference< text::XTextRange > xRet;
- const uno::Reference< text::XTextCursor > xTextCursor = CreateCursor();
- xTextCursor->gotoRange(xInsertPosition, false);
+ const uno::Reference<text::XTextCursor> xTextCursor = createTextCursorByRange(xInsertPosition);
const uno::Reference< lang::XUnoTunnel > xRangeTunnel(
xTextCursor, uno::UNO_QUERY_THROW );
commit 855f17c5f683ab1dacf411ac410f237700a8fbcf
Author: Jan-Marek Glogowski <glogow at fbihome.de>
AuthorDate: Sun Jun 28 00:48:01 2020 +0200
Commit: Michael Weghorn <m.weghorn at posteo.de>
CommitDate: Mon Jun 29 07:13:02 2020 +0200
tdf#131991 Qt5 RTL mirror mouse wheel X position
Just like all the other events, the mouse wheels X position must
be mirrord in LO RTL mode.
Change-Id: I28e8da0455d941f42f869b08edcdbe570de366c0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97338
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow at fbihome.de>
(cherry picked from commit 9eda78fd53fe3c76eb9d4b63add68f266f551b10)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97354
Reviewed-by: Michael Weghorn <m.weghorn at posteo.de>
diff --git a/vcl/qt5/Qt5Widget.cxx b/vcl/qt5/Qt5Widget.cxx
index 12e9a54f7f4f..ca4bef0ffbfe 100644
--- a/vcl/qt5/Qt5Widget.cxx
+++ b/vcl/qt5/Qt5Widget.cxx
@@ -181,7 +181,7 @@ void Qt5Widget::wheelEvent(QWheelEvent* pEvent)
SalWheelMouseEvent aEvent;
aEvent.mnTime = pEvent->timestamp();
- aEvent.mnX = pEvent->pos().x();
+ aEvent.mnX = QGuiApplication::isLeftToRight() ? pEvent->pos().x() : width() - pEvent->pos().x();
aEvent.mnY = pEvent->pos().y();
aEvent.mnCode = GetKeyModCode(pEvent->modifiers()) | GetMouseModCode(pEvent->buttons());
commit 150f5cbe108793e427d8106d8cfa60dd6c5c5cb4
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Tue Jun 23 12:09:45 2020 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Thu Jun 25 15:56:43 2020 +0200
tdf#133699 Slow sorting of a column
reserve inside a loop is a pessimization, since it breaks the
logarithmic resizing of the std::vector data area.
Also use the std::vector::insert method, instead of std::copy, since
the insert method will perform less resizing operations.
On my machine, this takes the sort operation from 25s to less than 1s.
Change-Id: I30b99d42c56abc5a4ad5c133c7579fac3952173c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96929
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
(cherry picked from commit 97965876459d8cfda0b653551708eb14de36e632)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96885
(cherry picked from commit 0638adcb101d870b169a34d980d41ef4fc742a94)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96996
diff --git a/sc/source/core/data/column4.cxx b/sc/source/core/data/column4.cxx
index 329fd93eecdb..9cf56031d101 100644
--- a/sc/source/core/data/column4.cxx
+++ b/sc/source/core/data/column4.cxx
@@ -1220,8 +1220,7 @@ public:
void operator() ( size_t /*nRow*/, SvtBroadcaster* p )
{
SvtBroadcaster::ListenersType& rLis = p->GetAllListeners();
- mrListeners.reserve(mrListeners.size() + rLis.size());
- std::copy(rLis.begin(), rLis.end(), std::back_inserter(mrListeners));
+ mrListeners.insert(mrListeners.end(), rLis.begin(), rLis.end());
}
};
commit cd971797acea4611dc51fb0fcc08632f83bd10c1
Author: Ilhan Yesil <ilhanyesil at gmx.de>
AuthorDate: Wed Jun 10 10:01:00 2020 +0200
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Thu Jun 25 00:29:48 2020 +0200
tdf#133859 Wizard service: disable 'Next' button if path has only base item
If the wizard dialog for extensions has only the base item in the first
path, there is no need to proceed to the next page, as there is no one.
This will be checked and if so, the 'Next' button disabled.
In libreoffice versions before 6.4, an ORoadmap class was used in the
wizard. There, if the ORoadmap data are reinitialized, the
InCompleteHyperLabel object must be destroyed first, before it will
be set to nullptr.
Change-Id: I5b4b2e6b3666b58acccace385c622f0a065fc368
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95969
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
(cherry picked from commit 54a3daec02f2eeada04efcd7958da4152db4611a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96795
diff --git a/vcl/source/control/roadmap.cxx b/vcl/source/control/roadmap.cxx
index 8d228e629c4b..9dbf0ab17456 100644
--- a/vcl/source/control/roadmap.cxx
+++ b/vcl/source/control/roadmap.cxx
@@ -204,6 +204,7 @@ ORoadmap::ORoadmap(vcl::Window* _pParent, WinBits _nWinStyle)
void ORoadmap::implInit(vcl::RenderContext& rRenderContext)
{
+ delete m_pImpl->InCompleteHyperLabel;
m_pImpl->InCompleteHyperLabel = nullptr;
m_pImpl->setCurItemID(-1);
m_pImpl->setComplete(true);
diff --git a/vcl/source/control/roadmapwizard.cxx b/vcl/source/control/roadmapwizard.cxx
index 160724c78ab3..bc84ce616551 100644
--- a/vcl/source/control/roadmapwizard.cxx
+++ b/vcl/source/control/roadmapwizard.cxx
@@ -580,6 +580,11 @@ namespace vcl
{
// check how many paths are still allowed
const WizardPath& rActivePath( m_pImpl->aPaths[ m_pImpl->nActivePath ] );
+
+ // if current path has only the base item, it is not possible to proceed without activating another path
+ if(rActivePath.size()<=1)
+ return false;
+
sal_Int32 nCurrentStatePathIndex = RoadmapWizardImpl::getStateIndexInPath( getCurrentState(), rActivePath );
size_t nPossiblePaths(0);
commit fc21af5186ec7be919779f8f0bc1dc1e3f89bf77
Author: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
AuthorDate: Wed Jun 24 22:29:28 2020 +0200
Commit: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
CommitDate: Wed Jun 24 22:31:53 2020 +0200
update credits
Change-Id: I0295600d528facb0411981a68c1c8a4224bf1dc5
(cherry picked from commit c49378d1233f33d6110eafdfaaf4cff0824732e3)
diff --git a/readlicense_oo/license/CREDITS.fodt b/readlicense_oo/license/CREDITS.fodt
index fcf48d8b790a..b15e291da68d 100644
--- a/readlicense_oo/license/CREDITS.fodt
+++ b/readlicense_oo/license/CREDITS.fodt
@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<office:document xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.
0" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ooo="http://openoffice.org/2004/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:rpt="http://op
enoffice.org/2005/report" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
- <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/6.4.3.2$Linux_X86_64 LibreOffice_project/747b5d0ebf89f41c860ec2a39efd7cb15b54f2d8</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="4156" meta:word-count="15227" meta:character-count="109599" meta:non-whitespace-character-count="95982"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
+ <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/6.4.4.2$Linux_X86_64 LibreOffice_project/3d775be2011f3886db32dfd395a6a6d1ca2630ff</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="4186" meta:word-count="15357" meta:character-count="110553" meta:non-whitespace-character-count="96824"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
<office:settings>
<config:config-item-set config:name="ooo:view-settings">
- <config:config-item config:name="ViewAreaTop" config:type="long">660</config:config-item>
+ <config:config-item config:name="ViewAreaTop" config:type="long">605</config:config-item>
<config:config-item config:name="ViewAreaLeft" config:type="long">501</config:config-item>
- <config:config-item config:name="ViewAreaWidth" config:type="long">20810</config:config-item>
- <config:config-item config:name="ViewAreaHeight" config:type="long">27079</config:config-item>
+ <config:config-item config:name="ViewAreaWidth" config:type="long">38499</config:config-item>
+ <config:config-item config:name="ViewAreaHeight" config:type="long">22809</config:config-item>
<config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
<config:config-item config:name="InBrowseMode" config:type="boolean">true</config:config-item>
<config:config-item-map-indexed config:name="Views">
<config:config-item-map-entry>
<config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
- <config:config-item config:name="ViewLeft" config:type="long">3577</config:config-item>
- <config:config-item config:name="ViewTop" config:type="long">3434</config:config-item>
+ <config:config-item config:name="ViewLeft" config:type="long">3649</config:config-item>
+ <config:config-item config:name="ViewTop" config:type="long">3471</config:config-item>
<config:config-item config:name="VisibleLeft" config:type="long">501</config:config-item>
- <config:config-item config:name="VisibleTop" config:type="long">660</config:config-item>
- <config:config-item config:name="VisibleRight" config:type="long">21310</config:config-item>
- <config:config-item config:name="VisibleBottom" config:type="long">27737</config:config-item>
+ <config:config-item config:name="VisibleTop" config:type="long">605</config:config-item>
+ <config:config-item config:name="VisibleRight" config:type="long">38998</config:config-item>
+ <config:config-item config:name="VisibleBottom" config:type="long">23412</config:config-item>
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
<config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item>
<config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
@@ -113,7 +113,7 @@
<config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item>
<config:config-item config:name="TabAtLeftIndentForParagraphsInList" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintRightPages" config:type="boolean">true</config:config-item>
- <config:config-item config:name="Rsid" config:type="int">9372711</config:config-item>
+ <config:config-item config:name="Rsid" config:type="int">9375369</config:config-item>
<config:config-item config:name="MathBaselineAlignment" config:type="boolean">false</config:config-item>
<config:config-item config:name="MsWordCompTrailingBlanks" config:type="boolean">false</config:config-item>
<config:config-item config:name="InvertBorderSpacing" config:type="boolean">false</config:config-item>
@@ -156,7 +156,7 @@
<office:styles>
<style:default-style style:family="graphic">
<style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:flow-with-text="true"/>
- <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:font-independent-line-spacing="false">
+ <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
<style:tab-stops/>
</style:paragraph-properties>
<style:text-properties style:use-window-font-color="true" style:font-name="Thorndale AMT" fo:font-size="12pt" fo:language="hu" fo:country="HU" style:letter-kerning="true" style:font-name-asian="SimSun" style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Mangal" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/>
@@ -334,58 +334,58 @@
</office:styles>
<office:automatic-styles>
<style:style style:name="Tabelle1" style:family="table">
- <style:table-properties style:width="20.436cm" table:align="left"/>
+ <style:table-properties style:width="26.174cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle1.A" style:family="table-column">
- <style:table-column-properties style:column-width="4.45cm"/>
+ <style:table-column-properties style:column-width="6.246cm"/>
</style:style>
<style:style style:name="Tabelle1.B" style:family="table-column">
- <style:table-column-properties style:column-width="5.616cm"/>
+ <style:table-column-properties style:column-width="6.749cm"/>
</style:style>
<style:style style:name="Tabelle1.C" style:family="table-column">
- <style:table-column-properties style:column-width="4.898cm"/>
+ <style:table-column-properties style:column-width="6.828cm"/>
</style:style>
<style:style style:name="Tabelle1.D" style:family="table-column">
- <style:table-column-properties style:column-width="5.472cm"/>
+ <style:table-column-properties style:column-width="6.352cm"/>
</style:style>
<style:style style:name="Tabelle1.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/>
</style:style>
- <style:style style:name="Tabelle1.B352" style:family="table-cell">
+ <style:style style:name="Tabelle1.D356" style:family="table-cell">
<style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle2" style:family="table">
- <style:table-properties style:width="18.309cm" table:align="left"/>
+ <style:table-properties style:width="18.263cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle2.A" style:family="table-column">
- <style:table-column-properties style:column-width="4.071cm"/>
+ <style:table-column-properties style:column-width="3.865cm"/>
</style:style>
<style:style style:name="Tabelle2.B" style:family="table-column">
- <style:table-column-properties style:column-width="4.233cm"/>
+ <style:table-column-properties style:column-width="4.209cm"/>
</style:style>
<style:style style:name="Tabelle2.C" style:family="table-column">
- <style:table-column-properties style:column-width="5.212cm"/>
+ <style:table-column-properties style:column-width="5.293cm"/>
</style:style>
<style:style style:name="Tabelle2.D" style:family="table-column">
- <style:table-column-properties style:column-width="4.792cm"/>
+ <style:table-column-properties style:column-width="4.897cm"/>
</style:style>
<style:style style:name="Tabelle2.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle3" style:family="table">
- <style:table-properties style:width="17.768cm" table:align="left"/>
+ <style:table-properties style:width="17.999cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle3.A" style:family="table-column">
- <style:table-column-properties style:column-width="3.812cm"/>
+ <style:table-column-properties style:column-width="3.865cm"/>
</style:style>
<style:style style:name="Tabelle3.B" style:family="table-column">
- <style:table-column-properties style:column-width="3.789cm"/>
+ <style:table-column-properties style:column-width="3.838cm"/>
</style:style>
<style:style style:name="Tabelle3.C" style:family="table-column">
- <style:table-column-properties style:column-width="6.144cm"/>
+ <style:table-column-properties style:column-width="6.193cm"/>
</style:style>
<style:style style:name="Tabelle3.D" style:family="table-column">
- <style:table-column-properties style:column-width="4.023cm"/>
+ <style:table-column-properties style:column-width="4.103cm"/>
</style:style>
<style:style style:name="Tabelle3.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/>
@@ -394,19 +394,16 @@
<style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle4" style:family="table">
- <style:table-properties style:width="16.723cm" table:align="left"/>
+ <style:table-properties style:width="17.02cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle4.A" style:family="table-column">
- <style:table-column-properties style:column-width="3.838cm"/>
+ <style:table-column-properties style:column-width="3.918cm"/>
</style:style>
<style:style style:name="Tabelle4.B" style:family="table-column">
- <style:table-column-properties style:column-width="4.817cm"/>
+ <style:table-column-properties style:column-width="4.897cm"/>
</style:style>
<style:style style:name="Tabelle4.C" style:family="table-column">
- <style:table-column-properties style:column-width="4.21cm"/>
- </style:style>
- <style:style style:name="Tabelle4.D" style:family="table-column">
- <style:table-column-properties style:column-width="3.858cm"/>
+ <style:table-column-properties style:column-width="4.288cm"/>
</style:style>
<style:style style:name="Tabelle4.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/>
@@ -415,24 +412,24 @@
<style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle5" style:family="table">
- <style:table-properties style:width="21.876cm" table:align="left"/>
+ <style:table-properties style:width="32.154cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle5.A" style:family="table-column">
- <style:table-column-properties style:column-width="4.327cm"/>
+ <style:table-column-properties style:column-width="6.854cm"/>
</style:style>
<style:style style:name="Tabelle5.B" style:family="table-column">
- <style:table-column-properties style:column-width="4.678cm"/>
+ <style:table-column-properties style:column-width="6.669cm"/>
</style:style>
<style:style style:name="Tabelle5.C" style:family="table-column">
- <style:table-column-properties style:column-width="5.842cm"/>
+ <style:table-column-properties style:column-width="6.722cm"/>
</style:style>
<style:style style:name="Tabelle5.D" style:family="table-column">
- <style:table-column-properties style:column-width="7.029cm"/>
+ <style:table-column-properties style:column-width="11.908cm"/>
</style:style>
<style:style style:name="Tabelle5.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/>
</style:style>
- <style:style style:name="Tabelle5.C643" style:family="table-cell">
+ <style:style style:name="Tabelle5.C646" style:family="table-cell">
<style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
</style:style>
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Table_20_Contents">
@@ -1068,7 +1065,7 @@
</office:binary-data>
</draw:image>
</draw:frame>Credits</text:p>
- <text:p text:style-name="Text_20_body">1535 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2020-05-06 14:08:37.</text:p>
+ <text:p text:style-name="Text_20_body">1553 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2020-06-24 20:55:47.</text:p>
<text:p text:style-name="Text_20_body"><text:span text:style-name="T1">*</text:span> marks developers whose first contributions happened after 2010-09-28.</text:p>
<text:h text:style-name="Heading_20_2" text:outline-level="2">Developers committing code since 2010-09-28</text:h>
<table:table table:name="Tabelle1" table:style-name="Tabelle1">
@@ -1092,16 +1089,16 @@
</table:table-row>
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents">Caolán McNamara<text:line-break/>Commits: 28230<text:line-break/>Joined: 2000-10-10</text:p>
+ <text:p text:style-name="Table_20_Contents">Caolán McNamara<text:line-break/>Commits: 28432<text:line-break/>Joined: 2000-10-10</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="Table_20_Contents">Vladimir Glazunov<text:line-break/>Commits: 25434<text:line-break/>Joined: 2000-12-04</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents">Stephan Bergmann<text:line-break/>Commits: 18049<text:line-break/>Joined: 2000-10-04</text:p>
+ <text:p text:style-name="Table_20_Contents">Stephan Bergmann<text:line-break/>Commits: 18178<text:line-break/>Joined: 2000-10-04</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 12624<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-12</text:span></text:p>
+ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 12716<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-12</text:span></text:p>
</table:table-cell>
</table:table-row>
<table:table-row>
@@ -1109,10 +1106,10 @@
<text:p text:style-name="Table_20_Contents">Ivo Hinkelmann<text:line-break/>Commits: 9480<text:line-break/>Joined: 2002-09-09</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents">Tor Lillqvist<text:line-break/>Commits: 8714<text:line-break/>Joined: 2010-03-23</text:p>
+ <text:p text:style-name="Table_20_Contents">Tor Lillqvist<text:line-break/>Commits: 8752<text:line-break/>Joined: 2010-03-23</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents">Miklos Vajna<text:line-break/>Commits: 7938<text:line-break/>Joined: 2010-07-29</text:p>
+ <text:p text:style-name="Table_20_Contents">Miklos Vajna<text:line-break/>Commits: 8023<text:line-break/>Joined: 2010-07-29</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="Table_20_Contents">Michael Stahl<text:line-break/>Commits: 6418<text:line-break/>Joined: 2008-06-16</text:p>
@@ -1129,18 +1126,18 @@
<text:p text:style-name="Table_20_Contents">Frank Schoenheit [fs]<text:line-break/>Commits: 5008<text:line-break/>Joined: 2000-09-19</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents">Eike Rathke<text:line-break/>Commits: 4778<text:line-break/>Joined: 2000-10-11</text:p>
+ <text:p text:style-name="Table_20_Contents">Eike Rathke<text:line-break/>Commits: 4785<text:line-break/>Joined: 2000-10-11</text:p>
</table:table-cell>
</table:table-row>
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents">David Tardon<text:line-break/>Commits: 3629<text:line-break/>Joined: 2009-11-12</text:p>
+ <text:p text:style-name="Table_20_Contents">David Tardon<text:line-break/>Commits: 3635<text:line-break/>Joined: 2009-11-12</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="Table_20_Contents">Hans-Joachim Lankenau<text:line-break/>Commits: 3007<text:line-break/>Joined: 2000-09-19</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 2862<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-04</text:span></text:p>
+ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 2893<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-04</text:span></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="Table_20_Contents">Ocke Janssen [oj]<text:line-break/>Commits: 2850<text:line-break/>Joined: 2000-09-20</text:p>
@@ -1148,7 +1145,7 @@
</table:table-row>
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents">Jan Holesovsky<text:line-break/>Commits: 2654<text:line-break/>Joined: 2009-06-23</text:p>
+ <text:p text:style-name="Table_20_Contents">Jan Holesovsky<text:line-break/>Commits: 2655<text:line-break/>Joined: 2009-06-23</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="Table_20_Contents">Mathias Bauer<text:line-break/>Commits: 2580<text:line-break/>Joined: 2000-09-20</text:p>
@@ -1157,18 +1154,18 @@
<text:p text:style-name="Table_20_Contents">Oliver Specht<text:line-break/>Commits: 2549<text:line-break/>Joined: 2000-09-21</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 2465<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-02</text:span></text:p>
+ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 2529<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-02</text:span></text:p>
</table:table-cell>
</table:table-row>
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents">Michael Meeks<text:line-break/>Commits: 2440<text:line-break/>Joined: 2004-08-05</text:p>
+ <text:p text:style-name="Table_20_Contents">Michael Meeks<text:line-break/>Commits: 2441<text:line-break/>Joined: 2004-08-05</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="Table_20_Contents">Bjoern Michaelsen<text:line-break/>Commits: 2341<text:line-break/>Joined: 2009-10-14</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrea Gelmini<text:line-break/>Commits: 2295<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-30</text:span></text:p>
+ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrea Gelmini<text:line-break/>Commits: 2329<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-30</text:span></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Norbert Thiebaud<text:line-break/>Commits: 2176<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p>
@@ -1179,13 +1176,13 @@
<text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Thomas Arnhold<text:line-break/>Commits: 2176<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-16</text:span></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents">Luboš Luňák<text:line-break/>Commits: 2136<text:line-break/>Joined: 2010-09-21</text:p>
+ <text:p text:style-name="Table_20_Contents">Luboš Luňák<text:line-break/>Commits: 2174<text:line-break/>Joined: 2010-09-21</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="Table_20_Contents">Philipp Lohmann [pl]<text:line-break/>Commits: 2089<text:line-break/>Joined: 2000-09-21</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andras Timar<text:line-break/>Commits: 1923<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-02</text:span></text:p>
+ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andras Timar<text:line-break/>Commits: 1928<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-02</text:span></text:p>
</table:table-cell>
</table:table-row>
<table:table-row>
@@ -1207,24 +1204,24 @@
<text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matteo Casalin<text:line-break/>Commits: 1476<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-13</text:span></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents">Thorsten Behrens<text:line-break/>Commits: 1414<text:line-break/>Joined: 2001-04-25</text:p>
+ <text:p text:style-name="Table_20_Contents">Thorsten Behrens<text:line-break/>Commits: 1422<text:line-break/>Joined: 2001-04-25</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="Table_20_Contents">Fridrich Štrba<text:line-break/>Commits: 1338<text:line-break/>Joined: 2007-02-22</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents">Thomas Lange [tl]<text:line-break/>Commits: 1310<text:line-break/>Joined: 2000-09-22</text:p>
+ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mike Kaganski<text:line-break/>Commits: 1335<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-26</text:span></text:p>
</table:table-cell>
</table:table-row>
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents">Niklas Nebel<text:line-break/>Commits: 1296<text:line-break/>Joined: 2000-09-19</text:p>
+ <text:p text:style-name="Table_20_Contents">Thomas Lange [tl]<text:line-break/>Commits: 1310<text:line-break/>Joined: 2000-09-22</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
- <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mike Kaganski<text:line-break/>Commits: 1295<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-26</text:span></text:p>
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list