Re: Import of curved connectors from OOXML

2023-11-11 Thread Regina Henschel

Hi Miklos,

I have thought about it again. I think, we need nothing new in ODF. We 
can decide whether to use our routing or the OOXML routing from the 
svg:d attribute.
If the svg:d attribute is missing, we use OOXML routing. MS Office does 
not write the svg:d attribute, when it exports to odp. But we have 
written it always.


And when there is a svg:d attribute we can count the number of Bezier 
curve segments and look whether first and last control vectors are 
parallel or orthogonal. See the table below. Only in case of a curved 
connector without handle, we need to look in addition how long the first 
control vector is.


 |parallel  | orthogonal
-+--+
1 Bezier | LO one handle| LO no handle, vector 2/3 width/height
 | OOX NA   | OOX curvedConnector2, vector 1/2 w/h
-+--+-
2 Bezier | LO NA| LO two handles
 | OOX curvedConnector3 | OOX NA
-+--+
3 Bezier | LO three handles | LO NA
 | OOX NA   | OOX curvedConnector4
-+--+
4 Bezier | LO NA| LO NA
 | OOX curvedConnector5 | OOX NA
-+--+

So a solution could be to add an additional member to SdrEdgeObj and its 
SdrEdgeObjGeoData and set it on import. Bringing this to UI and API 
would be a second step.


I know, that it needs an additional case in 
SdrEdgeObj::ImpCalcEdgeTrack() around line 1504 in svdoedge.cxx. But I 
don't know yet, which other places beside import and export have to be 
changed.


Kind regards,
Regina



Miklos Vajna schrieb am 09.11.2023 um 09:17:

Hi Regina,

On Wed, Nov 08, 2023 at 02:38:03AM +0100, Regina Henschel 
 wrote:

If we are in running LibreOffice we could distinguish two ways by a new
constant in enum class SdrCompatibilityFlag, for example. But how to save
such information to ODF?
Keep path definition as vague as it is now and put the information into
settings.xml?
Add a new value "curveOOXML" to draw:type (19.229.2) to specify a path as in
OOXML?


I expect the settings.xml way would work if we know you won't have both
curve and curveOOXML shapes at the same time in a document. I assume
that can happen, so that's not a good fit here.

Adding a new value to draw:type sounds better, though possibly
"curveOOXML" is a poor name, it would be better to have a
"curveSomething" name that actually describes the new behavior, without
explicitly referring to OOXML.

But quite probably you know this already. :-)

Regards,

Miklos





[Libreoffice-commits] core.git: Branch 'feature/cib_contract49' - 3 commits - avmedia/source desktop/source extensions/source include/curlinit.hxx include/tools lingucomponent/source linguistic/source

2023-11-11 Thread Caolán McNamara (via logerrit)
 avmedia/source/gstreamer/gstframegrabber.cxx  |   14 +-
 desktop/source/app/updater.cxx|4 
 desktop/source/minidump/minidump.cxx  |4 
 extensions/source/update/check/download.cxx   |4 
 include/curlinit.hxx  |   59 
++
 include/tools/urlobj.hxx  |5 
 lingucomponent/source/spellcheck/languagetool/languagetoolimp.cxx |5 
 linguistic/source/translate.cxx   |4 
 sfx2/source/doc/iframe.cxx|5 
 svl/source/crypto/cryptosign.cxx  |6 +
 tools/source/fsys/urlobj.cxx  |8 +
 ucb/source/ucp/cmis/cmis_content.cxx  |5 
 ucb/source/ucp/ftp/ftploaderthread.cxx|4 
 ucb/source/ucp/webdav-curl/CurlSession.cxx|2 
 14 files changed, 123 insertions(+), 6 deletions(-)

New commits:
commit 8a690465fc7df0f554252d437d0b50a9f5c0f7e7
Author: Caolán McNamara 
AuthorDate: Fri Nov 3 14:20:07 2023 +
Commit: Thorsten Behrens 
CommitDate: Sun Nov 12 02:11:25 2023 +0100

escape url passed to gstreamer

Change-Id: I3c93ee34800cc8563370f75ef3ef6f8a9220e6ec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158894
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit f41dcadf6492a6ffd32696d50f818e44355b9ad9)

diff --git a/avmedia/source/gstreamer/gstframegrabber.cxx 
b/avmedia/source/gstreamer/gstframegrabber.cxx
index 6f41511dc128..f8911ed7c9b3 100644
--- a/avmedia/source/gstreamer/gstframegrabber.cxx
+++ b/avmedia/source/gstreamer/gstframegrabber.cxx
@@ -50,11 +50,9 @@ void FrameGrabber::disposePipeline()
 
 FrameGrabber::FrameGrabber( std::u16string_view rURL )
 {
-gchar *pPipelineStr;
-pPipelineStr = g_strdup_printf(
-"uridecodebin uri=%s ! videoconvert ! videoscale ! appsink "
-"name=sink caps=\"video/x-raw,format=RGB,pixel-aspect-ratio=1/1\"",
-OUStringToOString( rURL, RTL_TEXTENCODING_UTF8 ).getStr() );
+const char pPipelineStr[] =
+"uridecodebin name=source ! videoconvert ! videoscale ! appsink "
+"name=sink caps=\"video/x-raw,format=RGB,pixel-aspect-ratio=1/1\"";
 
 GError *pError = nullptr;
 mpPipeline = gst_parse_launch( pPipelineStr, &pError );
@@ -65,6 +63,12 @@ FrameGrabber::FrameGrabber( std::u16string_view rURL )
 }
 
 if( mpPipeline ) {
+
+if (GstElement *pUriDecode = gst_bin_get_by_name(GST_BIN(mpPipeline), 
"source"))
+g_object_set(pUriDecode, "uri", OUStringToOString(rURL, 
RTL_TEXTENCODING_UTF8).getStr(), nullptr);
+else
+g_warning("Missing 'source' element in gstreamer pipeline");
+
 // pre-roll
 switch( gst_element_set_state( mpPipeline, GST_STATE_PAUSED ) ) {
 case GST_STATE_CHANGE_FAILURE:
commit dee219891fb19950a5ba0c55d3a6ddde2147bc5d
Author: Caolán McNamara 
AuthorDate: Fri Nov 3 17:14:26 2023 +
Commit: Thorsten Behrens 
CommitDate: Sun Nov 12 02:10:50 2023 +0100

add some protocols that don't make sense as floating frame targets

Change-Id: Id900a5eef248731d1184c1df501a2cf7a2de7eb9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158910
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 
(cherry picked from commit 11ebdfef16501c6d35c3e3d0d62507f706557c71)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158900
Reviewed-by: Michael Stahl 
(cherry picked from commit bab433911bdecb344f7ea94dbd00690241a08c54)

diff --git a/include/tools/urlobj.hxx b/include/tools/urlobj.hxx
index 9d6820ddf241..dfd658722826 100644
--- a/include/tools/urlobj.hxx
+++ b/include/tools/urlobj.hxx
@@ -915,6 +915,11 @@ public:
 
 void changeScheme(INetProtocol eTargetScheme);
 
+// INetProtocol::Macro, INetProtocol::Uno, INetProtocol::Slot,
+// vnd.sun.star.script, etc. All the types of URLs which shouldn't
+// be accepted from an outside controlled source
+bool IsExoticProtocol() const;
+
 private:
 // General Structure:
 
diff --git a/sfx2/source/doc/iframe.cxx b/sfx2/source/doc/iframe.cxx
index 507256aadf17..442913678e4c 100644
--- a/sfx2/source/doc/iframe.cxx
+++ b/sfx2/source/doc/iframe.cxx
@@ -169,8 +169,11 @@ sal_Bool SAL_CALL IFrameObject::load(
 xTrans->parseStrict( aTargetURL );
 
 INetURLObject aURLObject(aTargetURL.Complete);
-if (aURLObject.GetProtocol() == INetProtocol::Macro || 
aURLObject.isSchemeEqualTo(u"vnd.sun.star.script"))
+if (aURLObject.IsExoticProtocol())
+{
+SAL_WARN("sfx", "IFrameObject::load ignoring: " << 
aTargetURL.Complete);
 return false;
+}
 
 uno::Reference xParentFrame = 
xFrame->getCreator();
 Sf

[Libreoffice-commits] core.git: Changes to 'feature/cib_contract49b'

2023-11-11 Thread Sarper Akdemir (via logerrit)
New branch 'feature/cib_contract49b' available with the following commits:
commit 2c80d7fbc7c39bf29083b0a9dc278c2f47efdd05
Author: Sarper Akdemir 
Date:   Thu Nov 9 20:18:44 2023 +0300

Edit notes in child window

These are the initial ui bits for testing the feature

Change-Id: Ibc6e8a3f126c443453c5ecab52ba988a4f4f56e6



[Libreoffice-commits] core.git: Branch 'feature/cib_contract49' - 2 commits - editeng/source include/svtools svtools/source svx/source sw/source

2023-11-11 Thread Armin Le Grand (allotropia) (via logerrit)
 editeng/source/editeng/eertfpar.cxx  |1 
 include/svtools/rtfkeywd.hxx |1 
 include/svtools/rtftoken.h   |1 
 svtools/source/svrtf/rtfkeywd.cxx|1 
 svx/source/accessibility/ChildrenManagerImpl.cxx |5 ++
 sw/source/core/doc/docfmt.cxx|6 --
 sw/source/filter/ww8/rtfexport.cxx   |   48 ---
 sw/source/filter/ww8/rtfexport.hxx   |2 
 8 files changed, 7 insertions(+), 58 deletions(-)

New commits:
commit fdfc73dfa220beb974d5262cd92d1d793fd70ba7
Author: Armin Le Grand (allotropia) 
AuthorDate: Fri Nov 10 17:59:11 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sun Nov 12 01:40:41 2023 +0100

tdf#158169 take no actions in disposed incarnation

Using the described steps in the bug report it is possible
to have an already disposed incarnation of ChildrenManagerImpl
that gets called with notifyEvent. If exposed it is necessary
not to execute actions, but to inform the caller by triggering
a lang::DisposedException(). The SfxBaseModel::notifyEvent
that executes this will then remove the instance from it's list.

Change-Id: Ie39e37d6e55ea66f441e732b612774b18d7c3ca1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159306
Tested-by: Jenkins
Reviewed-by: Armin Le Grand 
(cherry picked from commit 23e9a4cf1eec75cdd40a695ecae2af9b952178d3)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159242
Reviewed-by: Thorsten Behrens 

diff --git a/svx/source/accessibility/ChildrenManagerImpl.cxx 
b/svx/source/accessibility/ChildrenManagerImpl.cxx
index 2926087060d3..93fe45a21b32 100644
--- a/svx/source/accessibility/ChildrenManagerImpl.cxx
+++ b/svx/source/accessibility/ChildrenManagerImpl.cxx
@@ -679,6 +679,11 @@ void SAL_CALL
 ChildrenManagerImpl::notifyEvent (
 const document::EventObject& rEventObject)
 {
+// tdf#158169 if we are already disposed, execute no actions, but inform 
the
+// caller that we are disposed
+if ( m_bDisposed )
+throw lang::DisposedException();
+
 if (rEventObject.EventName == "ShapeInserted")
 AddShape (Reference(rEventObject.Source, 
uno::UNO_QUERY));
 else if (rEventObject.EventName == "ShapeRemoved")
commit 8e6080722117be1f4be5211a78e9622822f2d352
Author: Vasily Melenchuk 
AuthorDate: Mon Nov 6 13:05:47 2023 +0300
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 23:55:45 2023 +0100

tdf#158083: RTF: drop export for \pgdsctbl

This table is not standard extension to RTF format. It is not
described in RTF specification and even is not used by Writer
on import these days.

Change-Id: I52f27dfd30877d461ad535b7847f40dd4c6f4ea5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158986
Tested-by: Jenkins
Tested-by: Gabor Kelemen 
Reviewed-by: Gabor Kelemen 
Reviewed-by: Miklos Vajna 
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159314
Reviewed-by: Thorsten Behrens 

diff --git a/editeng/source/editeng/eertfpar.cxx 
b/editeng/source/editeng/eertfpar.cxx
index a5737b4c923a..948216f33dbe 100644
--- a/editeng/source/editeng/eertfpar.cxx
+++ b/editeng/source/editeng/eertfpar.cxx
@@ -203,7 +203,6 @@ void EditRTFParser::NextToken( int nToken )
 SkipGroup();
 }
 break;
-case RTF_PGDSCTBL: // #i29453# ignore \*\pgdsctbl destination
 case RTF_LISTTEXT:
 {
 SkipGroup();
diff --git a/include/svtools/rtfkeywd.hxx b/include/svtools/rtfkeywd.hxx
index fa6346922437..44bbd12a4454 100644
--- a/include/svtools/rtfkeywd.hxx
+++ b/include/svtools/rtfkeywd.hxx
@@ -1110,7 +1110,6 @@
 #define OOO_STRING_SVTOOLS_RTF_SHDWSTYLE "\\shdwstyle"
 #define OOO_STRING_SVTOOLS_RTF_SHDWCOL "\\shdwcol"
 #define OOO_STRING_SVTOOLS_RTF_SHDWFCOL "\\shdwfcol"
-#define OOO_STRING_SVTOOLS_RTF_PGDSCTBL "\\pgdsctbl"
 #define OOO_STRING_SVTOOLS_RTF_PGDSC "\\pgdsc"
 #define OOO_STRING_SVTOOLS_RTF_PGDSCUSE "\\pgdscuse"
 #define OOO_STRING_SVTOOLS_RTF_PGDSCNXT "\\pgdscnxt"
diff --git a/include/svtools/rtftoken.h b/include/svtools/rtftoken.h
index 11c96a2f75e6..20d271107443 100644
--- a/include/svtools/rtftoken.h
+++ b/include/svtools/rtftoken.h
@@ -1238,7 +1238,6 @@ enum RTF_TOKEN_IDS {
 RTF_SHDW_STYLE,
 RTF_SHDW_COL,
 RTF_SHDW_FCOL,
-RTF_PGDSCTBL,
 RTF_PGDSC,
 RTF_PGDSCUSE,
 RTF_PGDSCNXT,
diff --git a/svtools/source/svrtf/rtfkeywd.cxx 
b/svtools/source/svrtf/rtfkeywd.cxx
index e805b3cd9359..91f2669ea98d 100644
--- a/svtools/source/svrtf/rtfkeywd.cxx
+++ b/svtools/source/svrtf/rtfkeywd.cxx
@@ -1120,7 +1120,6 @@ static RTF_TokenEntry aRTFTokenTab[] = {
 
 {std::u16string_view(u"" OOO_STRING_SVTOOLS_RTF_FLYINPARA), 
RTF_FLY_INPARA},
 
-{std::u16string_view(u"" OOO_STRING_SVTOOLS_RTF_PGDSCTBL),  
RTF_PGDSCTBL},
 {std::u16string_view(u"" OOO_STRING_SV

[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - svx/source

2023-11-11 Thread Armin Le Grand (allotropia) (via logerrit)
 svx/source/accessibility/ChildrenManagerImpl.cxx |5 +
 1 file changed, 5 insertions(+)

New commits:
commit e168e20b519885789cfafbb7d4726d5c79bd2aac
Author: Armin Le Grand (allotropia) 
AuthorDate: Fri Nov 10 17:59:11 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sun Nov 12 01:39:55 2023 +0100

tdf#158169 take no actions in disposed incarnation

Using the described steps in the bug report it is possible
to have an already disposed incarnation of ChildrenManagerImpl
that gets called with notifyEvent. If exposed it is necessary
not to execute actions, but to inform the caller by triggering
a lang::DisposedException(). The SfxBaseModel::notifyEvent
that executes this will then remove the instance from it's list.

Change-Id: Ie39e37d6e55ea66f441e732b612774b18d7c3ca1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159306
Tested-by: Jenkins
Reviewed-by: Armin Le Grand 
(cherry picked from commit 23e9a4cf1eec75cdd40a695ecae2af9b952178d3)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159242
Reviewed-by: Thorsten Behrens 

diff --git a/svx/source/accessibility/ChildrenManagerImpl.cxx 
b/svx/source/accessibility/ChildrenManagerImpl.cxx
index 2926087060d3..93fe45a21b32 100644
--- a/svx/source/accessibility/ChildrenManagerImpl.cxx
+++ b/svx/source/accessibility/ChildrenManagerImpl.cxx
@@ -679,6 +679,11 @@ void SAL_CALL
 ChildrenManagerImpl::notifyEvent (
 const document::EventObject& rEventObject)
 {
+// tdf#158169 if we are already disposed, execute no actions, but inform 
the
+// caller that we are disposed
+if ( m_bDisposed )
+throw lang::DisposedException();
+
 if (rEventObject.EventName == "ShapeInserted")
 AddShape (Reference(rEventObject.Source, 
uno::UNO_QUERY));
 else if (rEventObject.EventName == "ShapeRemoved")


[Libreoffice-commits] core.git: helpcontent2

2023-11-11 Thread Stanislav Horacek (via logerrit)
 helpcontent2 |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 64ccc089c1e6bf82ef10a0dd4768fdff83af55b5
Author: Stanislav Horacek 
AuthorDate: Sat Nov 11 22:32:43 2023 +0100
Commit: Gerrit Code Review 
CommitDate: Sat Nov 11 22:32:43 2023 +0100

Update git submodules

* Update helpcontent2 from branch 'master'
  to 72a81b01ebfa8e040433b6028b2177395d356a09
  - Color Bar menu item is not in toolbars

Change-Id: Iddf366cb873ae1c64f01bce5cc00ad525836dc99
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/159342
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos 

diff --git a/helpcontent2 b/helpcontent2
index 798773a4ad50..72a81b01ebfa 16
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit 798773a4ad50b9311758a4ed2275f2f4ff53a3e0
+Subproject commit 72a81b01ebfa8e040433b6028b2177395d356a09


[Libreoffice-commits] help.git: source/text

2023-11-11 Thread Stanislav Horacek (via logerrit)
 source/text/simpress/02/1003.xhp |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 72a81b01ebfa8e040433b6028b2177395d356a09
Author: Stanislav Horacek 
AuthorDate: Sat Nov 11 22:29:42 2023 +0100
Commit: Adolfo Jayme Barrientos 
CommitDate: Sat Nov 11 22:32:43 2023 +0100

Color Bar menu item is not in toolbars

Change-Id: Iddf366cb873ae1c64f01bce5cc00ad525836dc99
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/159342
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos 

diff --git a/source/text/simpress/02/1003.xhp 
b/source/text/simpress/02/1003.xhp
index 974ac48bf7..3be7b57038 100644
--- a/source/text/simpress/02/1003.xhp
+++ b/source/text/simpress/02/1003.xhp
@@ -167,7 +167,7 @@
 
 Gradient
 Modifies the gradient fill of the selected 
object. This command is only available if you applied a gradient to the 
selected object in Format - Area. Drag the handles 
of the gradient line to change the direction of the gradient or the length of 
the gradient. You can also drag and drop colors onto the handles from the 
Color Bar to change the color of the gradient 
endpoints.
-To display the Color Bar, choose 
View - Toolbars - Color Bar.
+To display the Color Bar, choose 
View - Color Bar.
   
 
   


[Libreoffice-commits] core.git: include/LibreOfficeKit include/sfx2 libreofficekit/source sfx2/source

2023-11-11 Thread Marco Cecchetti (via logerrit)
 include/LibreOfficeKit/LibreOfficeKitEnums.h |   12 +-
 include/sfx2/lokhelper.hxx   |   31 
 libreofficekit/source/gtk/lokdocview.cxx |1 
 sfx2/source/view/lokhelper.cxx   |   33 +
 sfx2/source/view/viewsh.cxx  |   51 +--
 5 files changed, 102 insertions(+), 26 deletions(-)

New commits:
commit 96ed41755b82cd47c27f40d4231e6ed9f915a976
Author: Marco Cecchetti 
AuthorDate: Wed Nov 1 22:49:07 2023 +0100
Commit: Caolán McNamara 
CommitDate: Sat Nov 11 22:22:52 2023 +0100

lok: a11y: implemented support for notifying core log to client

In this way core log can be printed to the browser console.
This may help in understanding if some core event occurs earlier or
later wrt a client event.

Change-Id: I720ef9b149e98ddbc252aa069649019e79ef6cb8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158780
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Marco Cecchetti 
(cherry picked from commit d8dc138be7e69750d1a346b3b49cecc1201e8d46)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159331
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 

diff --git a/include/LibreOfficeKit/LibreOfficeKitEnums.h 
b/include/LibreOfficeKit/LibreOfficeKitEnums.h
index 378347108de6..5eb0602e38f5 100644
--- a/include/LibreOfficeKit/LibreOfficeKitEnums.h
+++ b/include/LibreOfficeKit/LibreOfficeKitEnums.h
@@ -1025,7 +1025,15 @@ typedef enum
  *  "text": text content if any
  *  }
  */
-LOK_CALLBACK_A11Y_SELECTION_CHANGED = 69
+LOK_CALLBACK_A11Y_SELECTION_CHANGED = 69,
+
+/**
+ * Forwarding logs from core to client can be useful
+ * for keep track of the real core/client event sequence
+ *
+ * Payload is the log to be sent
+ */
+LOK_CALLBACK_CORE_LOG = 70
 
 }
 LibreOfficeKitCallbackType;
@@ -1195,6 +1203,8 @@ static inline const char* lokCallbackTypeToString(int 
nType)
 return "LOK_CALLBACK_A11Y_EDITING_IN_SELECTION_STATE";
 case LOK_CALLBACK_A11Y_SELECTION_CHANGED:
 return "LOK_CALLBACK_A11Y_SELECTION_CHANGED";
+case LOK_CALLBACK_CORE_LOG:
+return "LOK_CALLBACK_CORE_LOG";
 }
 
 assert(!"Unknown LibreOfficeKitCallbackType type.");
diff --git a/include/sfx2/lokhelper.hxx b/include/sfx2/lokhelper.hxx
index bd2014f9c9d9..f73312c56417 100644
--- a/include/sfx2/lokhelper.hxx
+++ b/include/sfx2/lokhelper.hxx
@@ -26,6 +26,35 @@
 #include 
 #include 
 
+#define LOK_NOTIFY_LOG_TO_CLIENT 1
+
+#define LOK_LOG_STREAM(level, area, stream) \
+do { \
+::std::ostringstream lok_detail_stream; \
+lok_detail_stream << level << ':'; \
+if (std::strcmp(level, "debug") != 0) \
+lok_detail_stream << area << ':'; \
+const char* const where = SAL_WHERE; \
+lok_detail_stream << where << stream; \
+SfxLokHelper::notifyLog(lok_detail_stream); \
+} while (false)
+
+#if LOK_NOTIFY_LOG_TO_CLIENT > 0
+#define LOK_INFO(area, stream) \
+LOK_LOG_STREAM("info", area, stream) \
+
+#define LOK_WARN(area, stream) \
+LOK_LOG_STREAM("warn", area, stream)
+
+#else
+#define LOK_INFO(area, stream) \
+SAL_INFO(area, stream) \
+
+#define LOK_WARN(area, stream) \
+SAL_WARN(area, stream)
+
+#endif
+
 struct SFX2_DLLPUBLIC LokMouseEventData
 {
 int mnType;
@@ -195,6 +224,8 @@ public:
 
 static VclPtr getInPlaceDocWindow(SfxViewShell* pViewShell);
 
+static void notifyLog(const std::ostringstream& stream);
+
 private:
 static int createView(SfxViewFrame& rViewFrame, ViewShellDocId docId);
 };
diff --git a/libreofficekit/source/gtk/lokdocview.cxx 
b/libreofficekit/source/gtk/lokdocview.cxx
index 6c7e6dbfc652..bd2cec88f071 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -1496,6 +1496,7 @@ callback (gpointer pData)
 case LOK_CALLBACK_DOCUMENT_PASSWORD_RESET:
 case LOK_CALLBACK_A11Y_EDITING_IN_SELECTION_STATE:
 case LOK_CALLBACK_A11Y_SELECTION_CHANGED:
+case LOK_CALLBACK_CORE_LOG:
 {
 // TODO: Implement me
 break;
diff --git a/sfx2/source/view/lokhelper.cxx b/sfx2/source/view/lokhelper.cxx
index e7fdc3d024be..31981159ca02 100644
--- a/sfx2/source/view/lokhelper.cxx
+++ b/sfx2/source/view/lokhelper.cxx
@@ -9,7 +9,9 @@
 
 #include 
 
+#include 
 #include 
+#include 
 
 #include 
 #include 
@@ -79,6 +81,8 @@ LanguageTag g_loadLanguageTag("en-US", true); //< The 
language used to load.
 LOKDeviceFormFactor g_deviceFormFactor = LOKDeviceFormFactor::UNKNOWN;
 bool g_isDefaultTimezoneSet = false;
 OUString g_DefaultTimezone;
+const std::size_t g_logNotifierCacheMaxSize = 50;
+::std::list<::std::string> g_logNotifierCache;
 }
 
 int SfxLokHelper::createView(SfxViewFrame& rViewFrame, ViewShellDocId docId)
@@ -322,6 +326,7 @@ void SfxLokHelper::setAccessibilityState(int nId, bool 
nEnabled)
 {
 if (

[Libreoffice-commits] core.git: officecfg/registry

2023-11-11 Thread Gabor Kelemen (via logerrit)
 officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs |   31 
--
 1 file changed, 31 deletions(-)

New commits:
commit e0f5719095e43e5c185d334b3ac3754e3aa4e276
Author: Gabor Kelemen 
AuthorDate: Thu Nov 9 14:47:43 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 21:46:49 2023 +0100

[API CHANGE] Drop unused UserDefinedDriverSettings set

last mention of it was removed in 2009 by:
commit b88a62cc97613e5dc00c806f59982cb57f9d1dc8

Change-Id: I9ab52b5377444f26e74c0cc76a78ec4c3c23
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159298
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs 
b/officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs
index 7222ce87e89a..db6dc122984f 100644
--- a/officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs
@@ -123,32 +123,6 @@
 
   
 
-
-  
-Specifies the user defined database drivers which should appear 
in the data source administration dialog.
-  
-  
-
-  Specifies the display name of the database driver page.
-
-  
-  
-
-  Specifies the display name of the database driver.
-
-  
-  
-
-  Specifies the prefix of the URL of the database driver.
-
-  
-  
-
-  The file extension, which match to this type. Only set when it 
is file based driver
-
-
-  
-
   
   
 
@@ -253,11 +227,6 @@
 Specifies the database documents registered within 
OpenOffice.org, for quick access by a programmatic name.
   
 
-
-  
-Contains a list of descriptions for user defined drivers.
-  
-
 
   
 Specifies the data source that can be used as an 
AddressBook.


[Libreoffice-commits] core.git: Branch 'feature/cib_contract49' - 2 commits - sw/qa sw/source writerfilter/source

2023-11-11 Thread Vasily Melenchuk (via logerrit)
 sw/qa/extras/rtfimport/data/tdf158044.rtf  |   20 +
 sw/qa/extras/rtfimport/rtfimport.cxx   |   54 +++
 sw/source/filter/ww8/rtfattributeoutput.cxx|   37 --
 writerfilter/source/dmapper/DomainMapper.cxx   |   89 +
 writerfilter/source/rtftok/rtfdocumentimpl.cxx |1 
 writerfilter/source/rtftok/rtfsprm.cxx |9 +-
 6 files changed, 172 insertions(+), 38 deletions(-)

New commits:
commit b6aaddde6e283cb43c79e64fa924ea1d95143b93
Author: Vasily Melenchuk 
AuthorDate: Thu Oct 26 17:09:44 2023 +0300
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 21:44:44 2023 +0100

tdf#104288: rtf export: drop \nonshppict on export

- these days hard to find a reader not able to read shapes

- RTF file will became compact without pictures duplication

- WordPad nowadays is able to display shape pict, no reason
for fallback

- Fixing possible rtf file bloat on exporting some WMFs

Change-Id: Icc8b60da6541acef939f42021d8d5e81bbcd1ae4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158507
Tested-by: Jenkins
Reviewed-by: Vasily Melenchuk 
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159313
Reviewed-by: Thorsten Behrens 

diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx 
b/sw/source/filter/ww8/rtfattributeoutput.cxx
index 5c20be552480..c8ac5b4cadf4 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -4459,21 +4459,8 @@ void RtfAttributeOutput::FlyFrameGraphic(const 
SwFlyFrameFormat* pFlyFrameFormat
 }
 }
 
-/*
-   If the graphic is not of type WMF then we will have to store two
-   graphics, one in the native format wrapped in shppict, and the other in
-   the wmf format wrapped in nonshppict, so as to keep wordpad happy. If 
it's
-   a wmf already then we don't need any such wrapping
-   */
-bool bIsWMF = pBLIPType && std::strcmp(pBLIPType, 
OOO_STRING_SVTOOLS_RTF_WMETAFILE) == 0;
 const SwAttrSet* pAttrSet = pGrfNode->GetpSwAttrSet();
-if (!pFrame || pFrame->IsInline())
-{
-if (!bIsWMF)
-m_rExport.Strm().WriteOString(
-"{" OOO_STRING_SVTOOLS_RTF_IGNORE 
OOO_STRING_SVTOOLS_RTF_SHPPICT);
-}
-else
+if (pFrame && !pFrame->IsInline())
 {
 m_rExport.Strm().WriteOString(
 "{" OOO_STRING_SVTOOLS_RTF_SHP
@@ -4566,27 +4553,7 @@ void RtfAttributeOutput::FlyFrameGraphic(const 
SwFlyFrameFormat* pFlyFrameFormat
m_rExport, &m_rExport.Strm(), bWritePicProp, pAttrSet);
 }
 
-if (!pFrame || pFrame->IsInline())
-{
-if (!bIsWMF)
-{
-m_rExport.Strm().WriteOString("}"
-  "{" 
OOO_STRING_SVTOOLS_RTF_NONSHPPICT);
-
-aStream.Seek(0);
-if (GraphicConverter::Export(aStream, rGraphic, 
ConvertDataFormat::WMF) != ERRCODE_NONE)
-SAL_WARN("sw.rtf", "failed to export the graphic");
-pBLIPType = OOO_STRING_SVTOOLS_RTF_WMETAFILE;
-nSize = aStream.TellEnd();
-pGraphicAry = static_cast(aStream.GetData());
-
-ExportPICT(pFlyFrameFormat, aSize, aRendered, aMapped, rCr, 
pBLIPType, pGraphicAry,
-   nSize, m_rExport, &m_rExport.Strm());
-
-m_rExport.Strm().WriteChar('}');
-}
-}
-else
+if (pFrame && !pFrame->IsInline())
 m_rExport.Strm().WriteOString(""); // Close SV, SP, SHPINST and 
SHP.
 
 m_rExport.Strm().WriteOString(SAL_NEWLINE_STRING);
commit 72a9b16c5c618e475757121e6771f381e5953190
Author: Oliver Specht 
AuthorDate: Thu Nov 2 16:34:50 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 20:54:55 2023 +0100

tdf#158044 handling of paragraph attributes in RTF import

style attributes need to be repeated at the paragraph
if not repeated then defaults have to be applied

This includes:
  Fix Windows 64-bit build using VS 2022

  Change-Id: Id976fe515287a4aa12d7ff8ca0ca09c31c65309f
  Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159316

and
  Make the unit test linear and more explicit

  Change-Id: Ic28d059ed41f88c9264743034a5ce5397fff0b2c
  Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159317

Change-Id: I4ee567e8006c240c046b7e7bb75eae92e5563776
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158839
Tested-by: Jenkins
Co-authored-by: Mike Kaganski 
Reviewed-by: Thorsten Behrens 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159328

diff --git a/sw/qa/extras/rtfimport/data/tdf158044.rtf 
b/sw/qa/extras/rtfimport/data/tdf158044.rtf
new file mode 100755
index ..65e687f25d39
--- /dev/null
+++ b/sw/qa/extras/rtfimport/data/tdf158044.rtf
@@ -0,0 +1,20 @@
+{\rtf1\ansi
+{\colortbl;\red0\green0\b

[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - sw/source

2023-11-11 Thread Vasily Melenchuk (via logerrit)
 sw/source/filter/ww8/rtfattributeoutput.cxx |   37 +---
 1 file changed, 2 insertions(+), 35 deletions(-)

New commits:
commit 906377ef12bcf75da871b0c3dab1decaf5b20b32
Author: Vasily Melenchuk 
AuthorDate: Thu Oct 26 17:09:44 2023 +0300
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 21:44:11 2023 +0100

tdf#104288: rtf export: drop \nonshppict on export

- these days hard to find a reader not able to read shapes

- RTF file will became compact without pictures duplication

- WordPad nowadays is able to display shape pict, no reason
for fallback

- Fixing possible rtf file bloat on exporting some WMFs

Change-Id: Icc8b60da6541acef939f42021d8d5e81bbcd1ae4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158507
Tested-by: Jenkins
Reviewed-by: Vasily Melenchuk 
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159313
Reviewed-by: Thorsten Behrens 

diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx 
b/sw/source/filter/ww8/rtfattributeoutput.cxx
index 5c20be552480..c8ac5b4cadf4 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -4459,21 +4459,8 @@ void RtfAttributeOutput::FlyFrameGraphic(const 
SwFlyFrameFormat* pFlyFrameFormat
 }
 }
 
-/*
-   If the graphic is not of type WMF then we will have to store two
-   graphics, one in the native format wrapped in shppict, and the other in
-   the wmf format wrapped in nonshppict, so as to keep wordpad happy. If 
it's
-   a wmf already then we don't need any such wrapping
-   */
-bool bIsWMF = pBLIPType && std::strcmp(pBLIPType, 
OOO_STRING_SVTOOLS_RTF_WMETAFILE) == 0;
 const SwAttrSet* pAttrSet = pGrfNode->GetpSwAttrSet();
-if (!pFrame || pFrame->IsInline())
-{
-if (!bIsWMF)
-m_rExport.Strm().WriteOString(
-"{" OOO_STRING_SVTOOLS_RTF_IGNORE 
OOO_STRING_SVTOOLS_RTF_SHPPICT);
-}
-else
+if (pFrame && !pFrame->IsInline())
 {
 m_rExport.Strm().WriteOString(
 "{" OOO_STRING_SVTOOLS_RTF_SHP
@@ -4566,27 +4553,7 @@ void RtfAttributeOutput::FlyFrameGraphic(const 
SwFlyFrameFormat* pFlyFrameFormat
m_rExport, &m_rExport.Strm(), bWritePicProp, pAttrSet);
 }
 
-if (!pFrame || pFrame->IsInline())
-{
-if (!bIsWMF)
-{
-m_rExport.Strm().WriteOString("}"
-  "{" 
OOO_STRING_SVTOOLS_RTF_NONSHPPICT);
-
-aStream.Seek(0);
-if (GraphicConverter::Export(aStream, rGraphic, 
ConvertDataFormat::WMF) != ERRCODE_NONE)
-SAL_WARN("sw.rtf", "failed to export the graphic");
-pBLIPType = OOO_STRING_SVTOOLS_RTF_WMETAFILE;
-nSize = aStream.TellEnd();
-pGraphicAry = static_cast(aStream.GetData());
-
-ExportPICT(pFlyFrameFormat, aSize, aRendered, aMapped, rCr, 
pBLIPType, pGraphicAry,
-   nSize, m_rExport, &m_rExport.Strm());
-
-m_rExport.Strm().WriteChar('}');
-}
-}
-else
+if (pFrame && !pFrame->IsInline())
 m_rExport.Strm().WriteOString(""); // Close SV, SP, SHPINST and 
SHP.
 
 m_rExport.Strm().WriteOString(SAL_NEWLINE_STRING);


[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - sw/qa writerfilter/source

2023-11-11 Thread Oliver Specht (via logerrit)
 sw/qa/extras/rtfimport/data/tdf158044.rtf  |   20 +
 sw/qa/extras/rtfimport/rtfimport.cxx   |   54 +++
 writerfilter/source/dmapper/DomainMapper.cxx   |   89 +
 writerfilter/source/rtftok/rtfdocumentimpl.cxx |1 
 writerfilter/source/rtftok/rtfsprm.cxx |9 +-
 5 files changed, 170 insertions(+), 3 deletions(-)

New commits:
commit d06bb71d19c29eaecdf499cb5e160f2ce08b58de
Author: Oliver Specht 
AuthorDate: Thu Nov 2 16:34:50 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 20:54:24 2023 +0100

tdf#158044 handling of paragraph attributes in RTF import

style attributes need to be repeated at the paragraph
if not repeated then defaults have to be applied

This includes:
  Fix Windows 64-bit build using VS 2022

  Change-Id: Id976fe515287a4aa12d7ff8ca0ca09c31c65309f
  Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159316

and
  Make the unit test linear and more explicit

  Change-Id: Ic28d059ed41f88c9264743034a5ce5397fff0b2c
  Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159317

Change-Id: I4ee567e8006c240c046b7e7bb75eae92e5563776
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158839
Tested-by: Jenkins
Co-authored-by: Mike Kaganski 
Reviewed-by: Thorsten Behrens 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159328

diff --git a/sw/qa/extras/rtfimport/data/tdf158044.rtf 
b/sw/qa/extras/rtfimport/data/tdf158044.rtf
new file mode 100755
index ..65e687f25d39
--- /dev/null
+++ b/sw/qa/extras/rtfimport/data/tdf158044.rtf
@@ -0,0 +1,20 @@
+{\rtf1\ansi
+{\colortbl;\red0\green0\blue0;\red0\green0\blue255;
+\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;
+\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;}
+
+{\stylesheet
+{\fs24\sa3200 Normal;}
+{\s97\tx1701\tx2835 StyleTabstops;}
+{\s98\cbpat6  StyleRed;}
+{\s99\qc SyleCentered;}
+}
+
+
+{\s97 Paragraph without tabstops\par}
+{\s98 Pargraph without color \par}
+{\s99 Paragraph without center\par}
+{\s97\tx1701\tx2835 Paragraph with tabstops\par}
+{\s98\cbpat6  Pargraph with color \par}
+{\s99\qc Paragraph with center\par}
+}
diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx 
b/sw/qa/extras/rtfimport/rtfimport.cxx
index 4ae5e90043f4..7dd9aa43877f 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -1716,6 +1716,60 @@ CPPUNIT_TEST_FIXTURE(Test, testParaStyleBottomMargin)
  getProperty(xPara, 
"ParaLineSpacing").Height);
 }
 
+CPPUNIT_TEST_FIXTURE(Test, test158044Tdf)
+{
+createSwDoc("tdf158044.rtf");
+
+{
+auto xPara(getParagraph(1));
+auto tabStops = getProperty>(xPara, 
"ParaTabStops");
+
+CPPUNIT_ASSERT_EQUAL(sal_Int32(0), tabStops.getLength());
+}
+
+{
+auto xPara(getParagraph(2));
+auto fillColor = getProperty(xPara, "FillColor");
+auto fillStyle = getProperty(xPara, "FillStyle");
+
+CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_NONE, fillStyle);
+CPPUNIT_ASSERT_EQUAL(Color(0xff), fillColor);
+}
+
+{
+auto xPara(getParagraph(3));
+auto adjust = getProperty(xPara, "ParaAdjust");
+
+CPPUNIT_ASSERT_EQUAL(sal_Int16(0), adjust);
+}
+
+{
+auto xPara(getParagraph(4));
+auto tabStops = getProperty>(xPara, 
"ParaTabStops");
+
+CPPUNIT_ASSERT_EQUAL(sal_Int32(2), tabStops.getLength());
+}
+
+{
+auto xPara(getParagraph(5));
+auto fillColor = getProperty(xPara, "FillColor");
+auto fillStyle = getProperty(xPara, "FillStyle");
+auto tabStops = getProperty>(xPara, 
"ParaTabStops");
+
+CPPUNIT_ASSERT_LESS(sal_Int32(2), tabStops.getLength());
+CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, fillStyle);
+CPPUNIT_ASSERT_EQUAL(Color(0xff), fillColor);
+}
+
+{
+auto xPara(getParagraph(6));
+auto fillStyle = getProperty(xPara, "FillStyle");
+auto tabStops = getProperty>(xPara, 
"ParaTabStops");
+
+CPPUNIT_ASSERT_LESS(sal_Int32(2), tabStops.getLength());
+CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_NONE, fillStyle);
+}
+}
 // tests should only be added to rtfIMPORT *if* they fail round-tripping in 
rtfEXPORT
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx 
b/writerfilter/source/dmapper/DomainMapper.cxx
index 148bb98eaf42..adf956653071 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -34,6 +34,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -3843,6 +3844,35 @@ voi

[Libreoffice-commits] core.git: sc/inc sc/source

2023-11-11 Thread Henry Castro (via logerrit)
 sc/inc/dbdata.hxx|1 +
 sc/inc/document.hxx  |7 +++
 sc/inc/table.hxx |3 +++
 sc/source/core/data/document.cxx |7 +++
 sc/source/core/data/table4.cxx   |   34 ++
 sc/source/core/tool/dbdata.cxx   |   17 +
 sc/source/ui/view/gridwin.cxx|1 +
 sc/source/ui/view/tabvwshc.cxx   |1 +
 8 files changed, 71 insertions(+)

New commits:
commit 4abe6c83e76f825319e8b2a0c0b8b8e92177da65
Author: Henry Castro 
AuthorDate: Mon Nov 6 07:18:48 2023 -0400
Commit: Caolán McNamara 
CommitDate: Sat Nov 11 20:27:29 2023 +0100

sc: extend backcolor area

If the filter background color is selected,
the automatic selection area should include,
the attribute of background cell color too.

Signed-off-by: Henry Castro 
Change-Id: I341c602247e7f71e3c9665e1b594177d8f5553b5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158991
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Caolán McNamara 
Reviewed-by: Tomaž Vajngerl 
(cherry picked from commit 768433f07873eb608837630f85e7e1b375239fca)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159238
Tested-by: Jenkins

diff --git a/sc/inc/dbdata.hxx b/sc/inc/dbdata.hxx
index 482c55bc6aa4..df235ec52619 100644
--- a/sc/inc/dbdata.hxx
+++ b/sc/inc/dbdata.hxx
@@ -221,6 +221,7 @@ public:
 SCCOL nDx, SCROW nDy, SCTAB nDz);
 
 void ExtendDataArea(const ScDocument& rDoc);
+void ExtendBackColorArea(const ScDocument& rDoc);
 void CalcSaveFilteredCount(SCSIZE nNonFilteredRowCount);
 void GetFilterSelCount(SCSIZE& nSelected, SCSIZE& nTotal);
 
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 1cff7a3ce4e4..11b65e9262c0 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -1512,6 +1512,13 @@ public:
  SCCOL& rEndCol, SCROW& rEndRow,
  bool bIncludeOld, bool bOnlyDown 
) const;
 
+/**
+ * Return the extended area containing at least all contiguous cells
+ * having background color.
+ */
+SC_DLLPUBLIC void GetBackColorArea( SCTAB nTab, SCCOL& rStartCol, SCROW& 
rStartRow,
+SCCOL& rEndCol, SCROW& rEndRow ) const;
+
 /**
  * Returns true if there is a non-empty subrange in the range given as 
input.
  * In that case it also modifies rRange to largest subrange that does not
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx
index 68b4c614c68b..8907bde5a150 100644
--- a/sc/inc/table.hxx
+++ b/sc/inc/table.hxx
@@ -641,6 +641,9 @@ public:
 voidGetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& 
rEndCol, SCROW& rEndRow,
  bool bIncludeOld, bool bOnlyDown ) const;
 
+voidGetBackColorArea( SCCOL& rStartCol, SCROW& rStartRow,
+  SCCOL& rEndCol, SCROW& rEndRow ) const;
+
 boolGetDataAreaSubrange( ScRange& rRange ) const;
 
 boolShrinkToUsedDataArea( bool& o_bShrunk, SCCOL& rStartCol, 
SCROW& rStartRow,
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 6225e92781b9..0b4ae5ca0da8 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -1081,6 +1081,13 @@ void ScDocument::GetDataArea( SCTAB nTab, SCCOL& 
rStartCol, SCROW& rStartRow,
 pTable->GetDataArea( rStartCol, rStartRow, rEndCol, rEndRow, 
bIncludeOld, bOnlyDown );
 }
 
+void ScDocument::GetBackColorArea( SCTAB nTab, SCCOL& rStartCol, SCROW& 
rStartRow,
+   SCCOL& rEndCol, SCROW& rEndRow ) const
+{
+if (ValidTab(nTab) && nTab < static_cast (maTabs.size()) && 
maTabs[nTab])
+maTabs[nTab]->GetBackColorArea( rStartCol, rStartRow, rEndCol, rEndRow 
);
+}
+
 bool ScDocument::GetDataAreaSubrange(ScRange& rRange) const
 {
 SCTAB nTab = rRange.aStart.Tab();
diff --git a/sc/source/core/data/table4.cxx b/sc/source/core/data/table4.cxx
index d8a4cf584132..62b9dbb9e006 100644
--- a/sc/source/core/data/table4.cxx
+++ b/sc/source/core/data/table4.cxx
@@ -23,6 +23,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -1293,6 +1294,39 @@ void  ScTable::FillSparkline(bool bVertical, SCCOLROW 
nFixed,
 }
 }
 
+void ScTable::GetBackColorArea(SCCOL& rStartCol, SCROW& /*rStartRow*/,
+   SCCOL& rEndCol, SCROW& rEndRow ) const
+{
+bool bExtend;
+const SvxBrushItem* pDefBackground = 
&rDocument.GetPool()->GetDefaultItem(ATTR_BACKGROUND);
+
+rStartCol = std::min(rStartCol, aCol.size() - 1);
+rEndCol = std::min(rEndCol, aCol.size() - 1);
+
+do
+{
+bExtend = false;
+
+if (rEndRow < rDocument.MaxRow())
+{
+for (SCCOL nCol = rStartCol; nCol <= rEndCol; ++nCol)
+{
+const ScPatternAttr* pPattern = 

[Libreoffice-commits] core.git: 2 commits - officecfg/registry

2023-11-11 Thread Gabor Kelemen (via logerrit)
 officecfg/registry/data/org/openoffice/Office/Compatibility.xcu   |5 ---
 officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs |   15 
--
 officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs|7 
 3 files changed, 27 deletions(-)

New commits:
commit 76de80f512967379f809d3744c71cf5e7e095e87
Author: Gabor Kelemen 
AuthorDate: Fri Nov 3 13:28:18 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:33:09 2023 +0100

[API CHANGE] Drop unused SpellAndGrammarDialogImage config key

last mention of it was removed in 2011 by:
commit da0bd7a50139b06e14c1917af044b37d10ebaf4f

Change-Id: Iac4272025b0c995640a1da0f959cb7447d3c9b56
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158971
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs 
b/officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs
index b5a3119461ab..0b748196fb3c 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs
@@ -77,13 +77,6 @@
 The images for vendor specific branding in the UI. The node name 
is
 the service implementation name.
   
-  
-
-  The path to the image for the spell and grammar checking
-  dialog.
-  Spell and grammar dialog image
-
-  
   
 
   The path to the image for the spell and grammar checking
commit 34a362ee24cfd4642fdc75ecf0e1a88c56c344c4
Author: Gabor Kelemen 
AuthorDate: Sat Nov 4 01:04:45 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:32:56 2023 +0100

[API CHANGE] Drop unused WriterCompatibilityVersion config group

last mention of it was removed in 2013 by:
commit f67d166b30dcba9e854716b29e1035693ef7481b

Change-Id: I2207ce7a87805bb33bc3e81fd8da792ba033d844
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158976
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/officecfg/registry/data/org/openoffice/Office/Compatibility.xcu 
b/officecfg/registry/data/org/openoffice/Office/Compatibility.xcu
index a1c5820abe4d..2478a9d5a2c0 100644
--- a/officecfg/registry/data/org/openoffice/Office/Compatibility.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Compatibility.xcu
@@ -18,11 +18,6 @@
  -->
 
 http://openoffice.org/2001/registry"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:install="http://openoffice.org/2004/installation"; 
oor:name="Compatibility" oor:package="org.openoffice.Office">
-  
-
-  OpenOffice.org 1.1
-
-  
   
 
   
diff --git a/officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs 
b/officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs
index 1508aeb1d7a6..0d79fb5340f5 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs
@@ -142,21 +142,6 @@
 The List of the applications.
   
 
-
-  
-Used by the writer compatibility flag as the last OOo 
version.
-  
-  
-  
-
-
-
-  OOo version 1.1.
-  OOo version 1.1.
-
-
-  
-
 
   
 Compatibility options affecting GUI


[Libreoffice-commits] core.git: officecfg/registry

2023-11-11 Thread Gabor Kelemen (via logerrit)
 officecfg/registry/data/org/openoffice/Office/DataAccess.xcu   |   11 
 officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs |   13 
--
 2 files changed, 24 deletions(-)

New commits:
commit c19e39cc0bfe32944bd807d5642a1a9d0537d636
Author: Gabor Kelemen 
AuthorDate: Sat Nov 4 01:21:56 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:32:37 2023 +0100

[API CHANGE] Drop unused kab.Driver config group

last mention of it was removed in 2015 by:
commit 72699595aaa3ecb8975050b6dfc6fde437770493

Change-Id: Iffdce3dfbabb20e92a61a0de83dfb4046ebb7ae6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158977
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu 
b/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu
index b9d6cbad3e72..41a64f0f0e43 100644
--- a/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu
@@ -46,17 +46,6 @@
   60
 
   
-  
-
-  com.sun.star.comp.sdbc.kab.Driver
-
-
-  false
-
-
-  60
-
-  
   
 
   com.sun.star.comp.sdbc.ado.ODriver
diff --git a/officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs 
b/officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs
index 257178bd3df7..7222ce87e89a 100644
--- a/officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs
@@ -529,19 +529,6 @@
   
 
   
-  
-
-  Specifies the driver settings for the mozilla database 
driver.
-
-
-  
-At runtime, the driver checks if the installed KDE version 
is too new to be supported.
-  In this case, it refuses creating connections. With the setting 
here, this check can
-  be disabled (which might do anything from simply work to 
crash).
-  
-  false
-
-  
   
 
   Specifies settings for the driver accessing HSQL databases 
embedded into OpenOffice.org


[Libreoffice-commits] core.git: officecfg/registry

2023-11-11 Thread Gabor Kelemen (via logerrit)
 officecfg/registry/data/org/openoffice/Office/DataAccess.xcu   |  134 --
 officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs |  219 
--
 2 files changed, 353 deletions(-)

New commits:
commit b8d04d32c1727189b54b0d7520668d578e9383dc
Author: Gabor Kelemen 
AuthorDate: Sat Nov 4 00:25:18 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:32:21 2023 +0100

[API CHANGE] Drop unused MozabDriver config group

last mentions of it were removed in 2021 by:
commit ee9ed2192b56c98e5b8ee9890ddb4c533117332a
and in 2015 by:
commit 4e3086da3e9873f53b5b9e1d5e511f9f77aaf62f

Change-Id: Ic8c048f296c2c199fb43836a63a0c084196794cc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158975
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu 
b/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu
index 22aabb743d21..b9d6cbad3e72 100644
--- a/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu
@@ -112,17 +112,6 @@
   60
 
   
-  
-
-  com.sun.star.comp.sdbc.MozabDriver
-
-
-  false
-
-
-  60
-
-  
   
 
   org.openoffice.comp.drivers.MySQL.Driver
@@ -450,129 +439,6 @@
 
   
   
-
-  
-
-  Personal Address book
-
-
-  Collected Addresses
-
-  
-  
-
-  First Name
-
-
-  Last Name
-
-
-  Display Name
-
-
-  Nickname
-
-
-  E-mail
-
-
-  E-mail (2)
-
-
-  Mail Format
-
-
-  Phone (Work)
-
-
-  Phone (Home)
-
-
-  Fax
-
-
-  Pager
-
-
-  Mobile
-
-
-  Address 1
-
-
-  Address 2
-
-
-  City
-
-
-  State
-
-
-  ZIP/Postal (Home)
-
-
-  Country
-
-
-  Work Address
-
-
-  Work Address 2
-
-
-  City (Work)
-
-
-  State (Work)
-
-
-  Zip/Postal (Work)
-
-
-  Country (Work)
-
-
-  Job Title
-
-
-  Department
-
-
-  Company
-
-
-  Web Page (Work)
-
-
-  Web Page (Home)
-
-
-  Birth Year
-
-
-  Birth Month
-
-
-  Birth Day
-
-
-  Custom 1
-
-
-  Custom 2
-
-
-  Custom 3
-
-
-  Custom 4
-
-
-  Comments
-
-  
-
 
   
 
diff --git a/officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs 
b/officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs
index dca06b247faa..257178bd3df7 100644
--- a/officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs
@@ -342,225 +342,6 @@
   
 Specifies the driver settings that are used.
   
-  
-
-  Specifies the driver settings for the mozilla database 
driver.
-
-
-  
-Specifies the mozilla preferences.
-  
-  
-
-  Specifies the mozilla profile name.
-
-
-
-  
-  
-
-  Describes the name of the table which the Mozilla Personal 
Address Book is mapped to
-
-
-  
-  
-
-  Describes the name of the table which the Mozilla 
Collected Addresses is mapped to
-
-
-  
-
-
-  
-Specifies the column alias names used.
-  
-  
-
-  Specifies the first name.
-
-  
-  
-
-  Specifies the last name.
-
-  
-  
-
-  Specifies the display name.
-
-  
-  
-
-  Specifies the nickname.
-
-  
-  
-
-  Specifies the primary email.
-
-  
-  
-
-  Specifies the first name.
-
-  
-  
-
-  Specifies the preferred mail format.
-
-  
-  
-   

[Libreoffice-commits] core.git: officecfg/registry

2023-11-11 Thread Gabor Kelemen (via logerrit)
 officecfg/registry/schema/org/openoffice/Setup.xcs |6 --
 1 file changed, 6 deletions(-)

New commits:
commit dca1eeb19d837b3355410ef37d681d2df836e144
Author: Gabor Kelemen 
AuthorDate: Fri Nov 3 12:40:51 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:32:00 2023 +0100

[API CHANGE] Drop unused IncludedExtensions config key

last mention of it was removed in 2018 by:
commit e98bcfcc3cdad46620e3d59119b0ac262db88054

Change-Id: Ia36b86efcd47132dabc7206fd53a8661e013ac09
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158970
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/officecfg/registry/schema/org/openoffice/Setup.xcs 
b/officecfg/registry/schema/org/openoffice/Setup.xcs
index 3e528222b235..a3aac9276ecd 100644
--- a/officecfg/registry/schema/org/openoffice/Setup.xcs
+++ b/officecfg/registry/schema/org/openoffice/Setup.xcs
@@ -72,12 +72,6 @@
   the old user layer to the new user layer
 
   
-  
-
-  a list of extension identifiers that are to be copied from the
-  old user layer to the new user layer
-
-  
   
 
   a list of extension identifiers that are not to be copied from


[Libreoffice-commits] core.git: 2 commits - officecfg/registry

2023-11-11 Thread Gabor Kelemen (via logerrit)
 officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs |6 --
 officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs  |8 
 2 files changed, 14 deletions(-)

New commits:
commit e03dbcc6b7097ebbef2d6cae27ff213be83a3d8a
Author: Gabor Kelemen 
AuthorDate: Fri Nov 3 14:56:35 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:31:42 2023 +0100

[API CHANGE] Drop unused ThesaurusDialogImage config key

last mention of it was removed in 2011 by:
commit b243afd8755c2a470c6aa0607f5773bedd026937

Change-Id: Ie48aecd0f2c30d7322dde774c84ce913a835a7a5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158972
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs 
b/officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs
index f58d7c15e850..b5a3119461ab 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs
@@ -98,12 +98,6 @@
   Spell and grammar context menu dictionary image
 
   
-  
-
-  The path to the image for the thesaurus dialog.
-  Thesaurus dialog image
-
-  
   
 
   The path to the image for the synonyms context menu.
commit fc77f34ebc721e2562666a63def7c5accc0fb61c
Author: Gabor Kelemen 
AuthorDate: Fri Nov 3 15:39:23 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:31:27 2023 +0100

[API CHANGE] Drop unused PreventTips config key

last mention of it was removed in 2012 by:
commit 74970948bbd410278964bd02cb5741c6c87eb30d

Change-Id: I1a576f94eca9ecb7fe0d580f50d20b1def79668e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158973
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs 
b/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs
index a52ce160f38b..4ecee7fa61e3 100644
--- a/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs
@@ -71,14 +71,6 @@
   
   true
 
-
-  
-  
-Enables the writer to prevent the display of help tips 
programmatically.
-Prevent help tips
-  
-  false
-
   
   
 


[Libreoffice-commits] core.git: officecfg/registry

2023-11-11 Thread Gabor Kelemen (via logerrit)
 officecfg/registry/schema/org/openoffice/Office/Calc.xcs  |   16 --
 officecfg/registry/schema/org/openoffice/Office/Writer.xcs|   16 --
 officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs |   16 --
 3 files changed, 48 deletions(-)

New commits:
commit 96d4bc4bb07d9ffa903f9c37b50e7c98a7491690
Author: Gabor Kelemen 
AuthorDate: Fri Nov 3 18:42:05 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:31:09 2023 +0100

[API CHANGE] Drop unused SimpleControlPoint LargeControlPoint config keys

last mentions of them were removed in 2011-2012 by:
commit bbd638350fb83af2cadd85cdac2900de80bf7401
commit 6ea8ea456cf5df267284278ecda42aa9b089a682
commit ec4f69493b50c15861b0cdcc290ecedd00efb51d

Change-Id: Iba3820806a761c12dead77ce6207c62f60f7055c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158974
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs 
b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
index 545808a05232..3de756beac4e 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
@@ -285,22 +285,6 @@
   
   false
 
-
-  
-  
-Specifies whether control points are displayed simple or 
enhanced.
-Simple control points
-  
-  false
-
-
-  
-  
-Specifies whether control points are displayed as larger 
than the default size.
-Large control points
-  
-  true
-
   
   
 
diff --git a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs 
b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
index c9da17b65c9e..19d12f0e7451 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
@@ -1274,22 +1274,6 @@
   
   false
 
-
-  
-  
-Specifies whether control points are displayed simple or 
enhanced.
-Simple control points
-  
-  true
-
-
-  
-  
-Specifies whether control points are displayed as larger 
than the default size.
-Large control points
-  
-  true
-
   
   
 
diff --git a/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs 
b/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs
index 8d633caae4f0..a52ce160f38b 100644
--- a/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs
@@ -163,22 +163,6 @@
   
   false
 
-
-  
-  
-Specifies whether control points are displayed simple or 
enhanced.
-Simple control points
-  
-  true
-
-
-  
-  
-Specifies whether control points are displayed as larger 
than the default size.
-Large control points
-  
-  true
-
   
   
 


[Libreoffice-commits] core.git: bin/find-unused-configkeys.sh

2023-11-11 Thread Gabor Kelemen (via logerrit)
 bin/find-unused-configkeys.sh |   20 ++--
 1 file changed, 14 insertions(+), 6 deletions(-)

New commits:
commit 23e106034e86b13a00a5039486c3d6bb57f98382
Author: Gabor Kelemen 
AuthorDate: Thu Nov 9 14:16:22 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:30:30 2023 +0100

find-unused-configkeys: check whether sets...

are used at all, if they have an otherwise unused group as template

TODO: Still gives some false positives if a group is only used
as template of a set which is only used as template of another
set which is actually used (MergeToolBarInstruction 
MergeStatusBarInstruction)

Change-Id: Ia2f83c12a4e0bdcc88b1530bac4daaf456531f8b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159297
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/bin/find-unused-configkeys.sh b/bin/find-unused-configkeys.sh
index 9a159da23ebc..1336044b21f5 100755
--- a/bin/find-unused-configkeys.sh
+++ b/bin/find-unused-configkeys.sh
@@ -11,14 +11,22 @@
 
 for filename in $(find officecfg/ -name "*xcs"); do
 for gs in group set node-ref; do
-for gname in $(git grep -h "<$gs" "$filename" | awk -F'oor:name="' 
'{print $2}' | awk -F'"' '{print $1}') ; do
-if [ $(git grep "$gname" | grep -v ^officecfg | wc -l) -eq 0 ] ;
+for gname in $(git grep -aIh "<$gs" "$filename" 2>/dev/null | awk 
-F'oor:name="' '{print $2}' | awk -F'"' '{print $1}') ; do
+if [ $(git grep -aI "$gname" 2>/dev/null | grep -saIv ^officecfg 
2>/dev/null | wc -l) -eq 0 ] ;
 then
 # group, set or node-ref names may serve as oor:node-type 
templates
-if [ $(git grep "$gname" officecfg | grep oor:node-type | wc 
-l ) -eq 0 ] ;
-then
-echo "$gname group in "$filename" appears only in 
officecfg";
-fi
+# check whether this is also unused - report only if both are 
unused
+for tmpl in $(git grep -aIh oor:node-type=\""$gname" officecfg 
2>/dev/null | awk -F'oor:name="' '{print $2}' | awk -F '"' '{print $1}' ) ; do
+if [ $(git grep -aI "$tmpl" 2>/dev/null | grep -saIv 
^officecfg 2>/dev/null | wc -l) -eq 0 ];
+then
+echo "$gname group and $tmpl set in "$filename" 
appears only in officecfg";
+else
+if [ $(git grep -aI "$gname" officecfg 2>/dev/null | 
grep -saI oor:node-type 2>/dev/null | wc -l ) -eq 0 ] ;
+then
+   echo "$gname group in "$filename" appears only in 
officecfg";
+fi
+fi
+done
 fi
 done
 done


[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - editeng/source include/svtools svtools/source sw/source

2023-11-11 Thread Vasily Melenchuk (via logerrit)
 editeng/source/editeng/eertfpar.cxx |1 
 include/svtools/rtfkeywd.hxx|1 
 include/svtools/rtftoken.h  |1 
 svtools/source/svrtf/rtfkeywd.cxx   |1 
 sw/source/core/doc/docfmt.cxx   |6 +---
 sw/source/filter/ww8/rtfexport.cxx  |   48 
 sw/source/filter/ww8/rtfexport.hxx  |2 -
 7 files changed, 2 insertions(+), 58 deletions(-)

New commits:
commit 1d16c19c47a5d0c679e88281e08d1548867170a1
Author: Vasily Melenchuk 
AuthorDate: Mon Nov 6 13:05:47 2023 +0300
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:29:33 2023 +0100

tdf#158083: RTF: drop export for \pgdsctbl

This table is not standard extension to RTF format. It is not
described in RTF specification and even is not used by Writer
on import these days.

Change-Id: I52f27dfd30877d461ad535b7847f40dd4c6f4ea5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158986
Tested-by: Jenkins
Tested-by: Gabor Kelemen 
Reviewed-by: Gabor Kelemen 
Reviewed-by: Miklos Vajna 
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159314
Reviewed-by: Thorsten Behrens 

diff --git a/editeng/source/editeng/eertfpar.cxx 
b/editeng/source/editeng/eertfpar.cxx
index a5737b4c923a..948216f33dbe 100644
--- a/editeng/source/editeng/eertfpar.cxx
+++ b/editeng/source/editeng/eertfpar.cxx
@@ -203,7 +203,6 @@ void EditRTFParser::NextToken( int nToken )
 SkipGroup();
 }
 break;
-case RTF_PGDSCTBL: // #i29453# ignore \*\pgdsctbl destination
 case RTF_LISTTEXT:
 {
 SkipGroup();
diff --git a/include/svtools/rtfkeywd.hxx b/include/svtools/rtfkeywd.hxx
index fa6346922437..44bbd12a4454 100644
--- a/include/svtools/rtfkeywd.hxx
+++ b/include/svtools/rtfkeywd.hxx
@@ -1110,7 +1110,6 @@
 #define OOO_STRING_SVTOOLS_RTF_SHDWSTYLE "\\shdwstyle"
 #define OOO_STRING_SVTOOLS_RTF_SHDWCOL "\\shdwcol"
 #define OOO_STRING_SVTOOLS_RTF_SHDWFCOL "\\shdwfcol"
-#define OOO_STRING_SVTOOLS_RTF_PGDSCTBL "\\pgdsctbl"
 #define OOO_STRING_SVTOOLS_RTF_PGDSC "\\pgdsc"
 #define OOO_STRING_SVTOOLS_RTF_PGDSCUSE "\\pgdscuse"
 #define OOO_STRING_SVTOOLS_RTF_PGDSCNXT "\\pgdscnxt"
diff --git a/include/svtools/rtftoken.h b/include/svtools/rtftoken.h
index 11c96a2f75e6..20d271107443 100644
--- a/include/svtools/rtftoken.h
+++ b/include/svtools/rtftoken.h
@@ -1238,7 +1238,6 @@ enum RTF_TOKEN_IDS {
 RTF_SHDW_STYLE,
 RTF_SHDW_COL,
 RTF_SHDW_FCOL,
-RTF_PGDSCTBL,
 RTF_PGDSC,
 RTF_PGDSCUSE,
 RTF_PGDSCNXT,
diff --git a/svtools/source/svrtf/rtfkeywd.cxx 
b/svtools/source/svrtf/rtfkeywd.cxx
index e805b3cd9359..91f2669ea98d 100644
--- a/svtools/source/svrtf/rtfkeywd.cxx
+++ b/svtools/source/svrtf/rtfkeywd.cxx
@@ -1120,7 +1120,6 @@ static RTF_TokenEntry aRTFTokenTab[] = {
 
 {std::u16string_view(u"" OOO_STRING_SVTOOLS_RTF_FLYINPARA), 
RTF_FLY_INPARA},
 
-{std::u16string_view(u"" OOO_STRING_SVTOOLS_RTF_PGDSCTBL),  
RTF_PGDSCTBL},
 {std::u16string_view(u"" OOO_STRING_SVTOOLS_RTF_PGDSC), 
RTF_PGDSC},
 {std::u16string_view(u"" OOO_STRING_SVTOOLS_RTF_PGDSCUSE),  
RTF_PGDSCUSE},
 {std::u16string_view(u"" OOO_STRING_SVTOOLS_RTF_PGDSCNXT),  
RTF_PGDSCNXT},
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index 5119bf15c04b..9f0de6aa1e06 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -1565,12 +1565,10 @@ void SwDoc::ReplaceStyles( const SwDoc& rSource, bool 
bIncludePageStyles )
 &SwDoc::MakeTextFormatColl_, *mpDfltTextFormatColl );
 
 //To-Do:
-//  a) in rtf export don't export our hideous pgdsctbl
-//  extension to rtf anymore
-//  b) in sd rtf import (View::InsertData) don't use
+//  a) in sd rtf import (View::InsertData) don't use
 //  a super-fragile test for mere presence of \trowd to
 //  indicate import of rtf into a table
-//  c) then drop use of bIncludePageStyles
+//  b) then drop use of bIncludePageStyles
 if (bIncludePageStyles)
 {
 // and now the page templates
diff --git a/sw/source/filter/ww8/rtfexport.cxx 
b/sw/source/filter/ww8/rtfexport.cxx
index 96f0f628f6a9..3ee8947d690e 100644
--- a/sw/source/filter/ww8/rtfexport.cxx
+++ b/sw/source/filter/ww8/rtfexport.cxx
@@ -729,51 +729,6 @@ void RtfExport::WriteDocVars()
 }
 }
 
-void RtfExport::WritePageDescTable()
-{
-// Write page descriptions (page styles)
-std::size_t nSize = m_rDoc.GetPageDescCnt();
-if (!nSize)
-return;
-
-Strm().WriteOString(SAL_NEWLINE_STRING);
-m_bOutPageDescs = true;
-Strm()
-.WriteChar('{')
-.WriteOString(OOO_STRING_SVTOOLS_RTF_IGNORE)
-.WriteOString(OOO_STRING_SVTOOLS_RTF_PGDSCTBL);
-for (std::size_t n = 0; n < nSize; ++n)
-{
-const SwPageDesc& rPageDesc = m_rDoc.GetPageDesc(n);
-
-Strm()
-.WriteOString(SAL_

[Libreoffice-commits] core.git: officecfg/registry

2023-11-11 Thread Gabor Kelemen (via logerrit)
 officecfg/registry/schema/org/openoffice/TypeDetection/Misc.xcs |6 --
 1 file changed, 6 deletions(-)

New commits:
commit 1ec76f7a38124b28521fd5959419cf189e65d9f1
Author: Gabor Kelemen 
AuthorDate: Mon Nov 6 12:07:24 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:28:46 2023 +0100

[API CHANGE] Drop unused ShowAlienFilterWarning config key

last mention of it was removed in 2011 by:
commit ebb3da4a2b47d719bce673ece53cd8ab09b361d0

Change-Id: I07a5e60f59781b9720543d436efede7b257cc872
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159296
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/officecfg/registry/schema/org/openoffice/TypeDetection/Misc.xcs 
b/officecfg/registry/schema/org/openoffice/TypeDetection/Misc.xcs
index e9ae32f204cf..128d9bb1495f 100644
--- a/officecfg/registry/schema/org/openoffice/TypeDetection/Misc.xcs
+++ b/officecfg/registry/schema/org/openoffice/TypeDetection/Misc.xcs
@@ -66,12 +66,6 @@
 
 com.sun.star.comp.office.FrameLoader
   
-  
-
-  Displays a warning when a user tries to set a third-party 
filter as the default filter in "Tools - Options".
-
-true
-  
 
   
 


[Libreoffice-commits] core.git: Branch 'feature/cib_contract49' - sw/qa writerfilter/source

2023-11-11 Thread Michael Stahl (via logerrit)
 sw/qa/extras/rtfexport/data/tdf153178.rtf  |7 +++
 sw/qa/extras/rtfexport/rtfexport7.cxx  |   10 ++
 writerfilter/source/rtftok/rtfdispatchflag.cxx |   20 
 writerfilter/source/rtftok/rtfdocumentimpl.cxx |6 +++---
 4 files changed, 40 insertions(+), 3 deletions(-)

New commits:
commit b92eaf7f820b4933acd8fead173c98be2754103c
Author: Michael Stahl 
AuthorDate: Thu Nov 9 19:54:19 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:04:23 2023 +0100

tdf#153178 writerfilter: do not create text frame spuriously

There are different RTF keywords that end up in RTFFrame, and some of
them cause Word to create a frame, while others don't.

Getting this right requires implementing support for all the missing
wrapping keywords, as most of them create a frame in Word but
\wrapdefault does not.

Change-Id: I1e55d15180564f3d66a5ee7d98274ae18f032872
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159228
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit 4e2f2489c4c7436f8b3a21a530bc625cbef4e365)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159231
Reviewed-by: Xisco Fauli 

diff --git a/sw/qa/extras/rtfexport/data/tdf153178.rtf 
b/sw/qa/extras/rtfexport/data/tdf153178.rtf
new file mode 100644
index ..e1d74f4010ea
--- /dev/null
+++ b/sw/qa/extras/rtfexport/data/tdf153178.rtf
@@ -0,0 +1,7 @@
+{\rtf1
+\tqr\tlul\tx2025\dxfrtext142\dfrmtxtx142\dfrmtxty142\wrapdefault\faauto\adjustright\rin0\lin57\itap0
 \rtlch\fcs1 \afs26\alang1025 \ltrch\fcs0 
\fs26\lang1031\langfe3079\cgrid\langnp1031\langfenp3079
+
+\par
+\pard
+\par
+}
diff --git a/sw/qa/extras/rtfexport/rtfexport7.cxx 
b/sw/qa/extras/rtfexport/rtfexport7.cxx
index ad9249bedeb8..4d1550af4fdd 100644
--- a/sw/qa/extras/rtfexport/rtfexport7.cxx
+++ b/sw/qa/extras/rtfexport/rtfexport7.cxx
@@ -22,6 +22,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 
@@ -659,6 +660,15 @@ DECLARE_RTFEXPORT_TEST(testWatermark, "watermark.rtf")
 CPPUNIT_ASSERT_EQUAL(float(66), nFontSize);
 }
 
+DECLARE_RTFEXPORT_TEST(testTdf153178, "tdf153178.rtf")
+{
+// the problem was that a frame was created
+uno::Reference xTextFramesSupplier(mxComponent, 
uno::UNO_QUERY);
+uno::Reference 
xIndexAccess(xTextFramesSupplier->getTextFrames(),
+ uno::UNO_QUERY);
+CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xIndexAccess->getCount());
+}
+
 DECLARE_RTFEXPORT_TEST(testTdf109790, "tdf109790.rtf")
 {
 uno::Reference xTable(getParagraphOrTable(2), 
uno::UNO_QUERY);
diff --git a/writerfilter/source/rtftok/rtfdispatchflag.cxx 
b/writerfilter/source/rtftok/rtfdispatchflag.cxx
index de7b91e26fae..699698aa8df8 100644
--- a/writerfilter/source/rtftok/rtfdispatchflag.cxx
+++ b/writerfilter/source/rtftok/rtfdispatchflag.cxx
@@ -1242,6 +1242,26 @@ RTFError RTFDocumentImpl::dispatchFlag(RTFKeyword 
nKeyword)
 m_aStates.top().getFrame().setSprm(NS_ooxml::LN_CT_FramePr_wrap,

NS_ooxml::LN_Value_doc_ST_Wrap_notBeside);
 break;
+case RTFKeyword::OVERLAY:
+m_aStates.top().getFrame().setSprm(NS_ooxml::LN_CT_FramePr_wrap,
+   
NS_ooxml::LN_Value_doc_ST_Wrap_none);
+break;
+case RTFKeyword::WRAPAROUND:
+m_aStates.top().getFrame().setSprm(NS_ooxml::LN_CT_FramePr_wrap,
+   
NS_ooxml::LN_Value_doc_ST_Wrap_around);
+break;
+case RTFKeyword::WRAPTHROUGH:
+m_aStates.top().getFrame().setSprm(NS_ooxml::LN_CT_FramePr_wrap,
+   
NS_ooxml::LN_Value_doc_ST_Wrap_through);
+break;
+case RTFKeyword::WRAPTIGHT:
+m_aStates.top().getFrame().setSprm(NS_ooxml::LN_CT_FramePr_wrap,
+   
NS_ooxml::LN_Value_doc_ST_Wrap_tight);
+break;
+case RTFKeyword::WRAPDEFAULT:
+m_aStates.top().getFrame().setSprm(NS_ooxml::LN_CT_FramePr_wrap,
+   
NS_ooxml::LN_Value_doc_ST_Wrap_auto);
+break;
 case RTFKeyword::MNOR:
 m_bMathNor = true;
 break;
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx 
b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 568ad4a8f31f..11e251b0828a 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -3995,9 +3995,9 @@ RTFSprms RTFFrame::getSprms()
 
 bool RTFFrame::hasProperties() const
 {
-return m_nX != 0 || m_nY != 0 || m_nW != 0 || m_nH != 0 || m_nHoriPadding 
!= 0
-   || m_nVertPadding != 0 || m_nHoriAlign != 0 || m_nHoriAnchor != 0 
|| m_nVertAlign != 0
-   || m_nVertAnchor != 0;
+// tdf#15

[Libreoffice-commits] core.git: wizards/Package_sfdatabases.mk wizards/source

2023-11-11 Thread Jean-Pierre Ledure (via logerrit)
 wizards/Package_sfdatabases.mk   |1 
 wizards/source/scriptforge/SF_Exception.xba  |   19 
 wizards/source/scriptforge/SF_PythonHelper.xba   |4 
 wizards/source/scriptforge/SF_Root.xba   |   49 
 wizards/source/scriptforge/po/ScriptForge.pot|   65 
 wizards/source/scriptforge/po/en.po  |   65 
 wizards/source/scriptforge/python/scriptforge.py |   88 +
 wizards/source/sfdatabases/SF_Database.xba   |  146 +-
 wizards/source/sfdatabases/SF_Dataset.xba| 1664 +++
 wizards/source/sfdatabases/SF_Datasheet.xba  |8 
 wizards/source/sfdatabases/script.xlb|1 
 11 files changed, 2066 insertions(+), 44 deletions(-)

New commits:
commit 7b2a6f04443c5d80ce681e5f1c89bf140fdb5c3a
Author: Jean-Pierre Ledure 
AuthorDate: Sat Nov 11 17:02:38 2023 +0100
Commit: Jean-Pierre Ledure 
CommitDate: Sat Nov 11 18:20:15 2023 +0100

ScriptForge (SFDatabases) new Dataset service

A dataset represents a set of tabular data
stored/produced by a database.
To use datasets, the database instance must exist
but the Base document may not be open.

A Dataset instance is create either with
- the (new) database.CreateDataset() method
- from an existing dataset with the (new)
  dataset.CreateDataset() method.

The proposed API supports next main purposes:
- browse for- and backward thru the dataset to get its content
- update any record with new values
- create new records or delete some.
In summary, the AKA "CRUD" operations
(create, read, update, delete).

The originality of the proposed API is the use
of a dense syntax to make insertions and updates
easy and readable:
Example:
(BASIC)
  Dim newID As Long
  newID = dataset.Insert("LastName", "Doe", "FirstName", "John")
  ' ... is equivalent to:
  Dim dict As Object, newID As Long
  Set dict = CreateScriptService("ScriptForge.Dictionary")
  dict.Add("LastName", "Doe")
  dict.Add("FirstName", "John")
  newID = dataset.Insert(dict)
(PYTHON) - next statements are equivalent
  newid = dataset.Insert('LastName', 'Doe', 'FirstName', 'John')
  newid = dataset.Insert({'LastName': 'Doe', 'FirstName': 'John'})
  newid = dataset.Insert(dict(LastName = 'Doe', FirstName = 'John'))
  newid = dataset.Insert(LastName = 'Doe', FirstName = 'John')

You will notice that the returned value is the AutoValue primery
key (when it exists) which makes it reuse as a foreign key
immediate.

The API is fully available both in Basic and Python user scripts.

The new service will require its inclusion in the user documentation.

Change-Id: I4f834c4234e5b96ec8fddfffbad791ecf31899df
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159325
Reviewed-by: Jean-Pierre Ledure 
Tested-by: Jenkins

diff --git a/wizards/Package_sfdatabases.mk b/wizards/Package_sfdatabases.mk
index bc5636fa1b2f..2919c84dce3c 100644
--- a/wizards/Package_sfdatabases.mk
+++ b/wizards/Package_sfdatabases.mk
@@ -21,6 +21,7 @@ $(eval $(call 
gb_Package_Package,wizards_basicsrvsfdatabases,$(SRCDIR)/wizards/s
 
 $(eval $(call 
gb_Package_add_files,wizards_basicsrvsfdatabases,$(LIBO_SHARE_FOLDER)/basic/SFDatabases,\
SF_Database.xba \
+   SF_Dataset.xba \
SF_Datasheet.xba \
SF_Register.xba \
__License.xba \
diff --git a/wizards/source/scriptforge/SF_Exception.xba 
b/wizards/source/scriptforge/SF_Exception.xba
index 38e5b2ef24e0..4b0fdb8d5eb1 100644
--- a/wizards/source/scriptforge/SF_Exception.xba
+++ b/wizards/source/scriptforge/SF_Exception.xba
@@ -132,6 +132,10 @@ Const DUPLICATECONTROLERROR=   
"DUPLICATECONTROLERROR"
 ' SF_Database
 Const DBREADONLYERROR  =   "DBREADONLYERROR"
 Const SQLSYNTAXERROR   =   "SQLSYNTAXERROR"
+Const SQLSYNTAX2ERROR  =   "SQLSYNTAX2ERROR"
+Const NOCURRENTRECORDERROR =   "NOCURRENTRECORDERROR"
+Const RECORDUPDATEERROR=   
"RECORDUPDATEERROR"
+Const FIELDEXPORTERROR =   "FIELDEXPORTERROR"
 
 ' Python
 Const PYTHONSHELLERROR =   "PYTHONSHELLERROR"
@@ -1035,12 +1039,25 @@ Try:
sMessage = sLocation _
& "\n" & 
"\n" & "\n" & .GetText("VALIDATEERROR", 
pvArgs(0)) _
& "\n" & 
"\n" & .GetText("DUPLICATECONTROL", pvArgs(0), 
pvArgs(1), pvArgs(2))
-   Case DBREADONLYERROR'  SF_Database.RunSql()
+   Case DBREADONLYERROR'  SF_Database.RunSql(), 
SF_Dataset.Delete(), Insert(), Update()
sMessage = sLocation _
& "\n" & 
"\n" & .GetText("DBREADONLY", vLocation(2))
Case SQLSYNTAXERRO

[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - external/python3

2023-11-11 Thread Michael Stahl (via logerrit)
 external/python3/ExternalPackage_python3.mk |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit c4a57f59d56312bbdcb507ecbf13b75c6c6db1dc
Author: Michael Stahl 
AuthorDate: Wed Nov 8 11:55:51 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:09:49 2023 +0100

python3: name gdb pretty-printer after .so, not .bin

So it works not only with instdir/program/python but also with
soffice in-process python.

Change-Id: I5c3643ef4a7ca0f25df3c6f51d11ff98c27f4bd8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159148
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit a2fabc78a4ba12ad8df6b040783be0fa22aefa54)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159049
Reviewed-by: Thorsten Behrens 

diff --git a/external/python3/ExternalPackage_python3.mk 
b/external/python3/ExternalPackage_python3.mk
index 1f29c9efbebb..37dfa4668283 100644
--- a/external/python3/ExternalPackage_python3.mk
+++ b/external/python3/ExternalPackage_python3.mk
@@ -48,7 +48,7 @@ else
 $(eval $(call 
gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/python.bin,python))
 $(eval $(call 
gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/libpython$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)$(if
 
$(ENABLE_DBGUTIL),d).so,libpython$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)$(if
 $(ENABLE_DBGUTIL),d).so))
 $(eval $(call 
gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/libpython$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)$(if
 
$(ENABLE_DBGUTIL),d).so.1.0,libpython$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)$(if
 $(ENABLE_DBGUTIL),d).so))
-$(eval $(call 
gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/python.bin-gdb.py,Tools/gdb/libpython.py))
+$(eval $(call 
gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/libpython$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)$(if
 $(ENABLE_DBGUTIL),d).so.1.0-gdb.py,Tools/gdb/libpython.py))
 
 # Unfortunately the python build system does not allow to explicitly enable or
 # disable these, it just tries to build them and then prints which did not


[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - desktop/source extensions/source include/curlinit.hxx lingucomponent/source linguistic/source svl/source ucb/source

2023-11-11 Thread Michael Stahl (via logerrit)
 desktop/source/app/updater.cxx|4 
 desktop/source/minidump/minidump.cxx  |4 
 extensions/source/update/check/download.cxx   |4 
 include/curlinit.hxx  |   59 
++
 lingucomponent/source/spellcheck/languagetool/languagetoolimp.cxx |5 
 linguistic/source/translate.cxx   |4 
 svl/source/crypto/cryptosign.cxx  |6 +
 ucb/source/ucp/cmis/cmis_content.cxx  |5 
 ucb/source/ucp/ftp/ftploaderthread.cxx|4 
 ucb/source/ucp/webdav-curl/CurlSession.cxx|2 
 10 files changed, 97 insertions(+)

New commits:
commit 4ace291f2f1e655db559117f6fd3edc3a82ec878
Author: Michael Stahl 
AuthorDate: Fri Nov 3 20:16:09 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:09:09 2023 +0100

curl: mitigate migration to OpenSSL on Linux

The problem is that curl 8.3.0 removed the NSS backend, so we now
have no other choice than to use the bundled OpenSSL on Linux.

Currently any curl https connection fails with:

  CurlSession.cxx:963: curl_easy_perform failed: (60) SSL certificate 
problem: unable to get local issuer certificate

Apparently this requires manually telling curl which CA certificates to
trust; there is a configure flag --with-ca-bundle but that is useless as
it tries to load the file relative to whatever is the current working
directory, and also did i mention that there are at least 3 different
locations where a Linux system may store its system trusted CA
certificates because ALL ABOUT CHOICE.

So add a new header with an init function to try out various file
locations listed in this nice blog article and call it from way too many
places that independently use curl.


https://www.happyassassin.net/posts/2015/01/12/a-note-about-ssltls-trusted-certificate-stores-and-platforms/

TODO: perhaps bundle a cacert.pem as a fallback in case the system chose
to innovate by putting its certificates in yet another unexpected place

(regression from commit c2930ebff82c4f7ffe8377ab82627131f8544226)

Change-Id: Ibf1cc0069bc2ae011ecead9a4c2b455e94b01241
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158915
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit 3fc632c0261c75fb4079a5305e814698e791f75c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159035
Reviewed-by: Thorsten Behrens 

diff --git a/desktop/source/app/updater.cxx b/desktop/source/app/updater.cxx
index 92f060b976e2..7ff6234b4555 100644
--- a/desktop/source/app/updater.cxx
+++ b/desktop/source/app/updater.cxx
@@ -37,6 +37,8 @@
 #include 
 #include 
 #include 
+
+#include 
 #include 
 
 #include 
@@ -546,6 +548,8 @@ std::string download_content(const OString& rURL, bool 
bFile, OUString& rHash)
 if (!curl)
 return std::string();
 
+::InitCurl_easy(curl.get());
+
 curl_easy_setopt(curl.get(), CURLOPT_URL, rURL.getStr());
 curl_easy_setopt(curl.get(), CURLOPT_USERAGENT, kUserAgent);
 bool bUseProxy = false;
diff --git a/desktop/source/minidump/minidump.cxx 
b/desktop/source/minidump/minidump.cxx
index 0bf20f2aa419..7fbb0884987d 100644
--- a/desktop/source/minidump/minidump.cxx
+++ b/desktop/source/minidump/minidump.cxx
@@ -17,6 +17,8 @@
 
 #include 
 
+#include 
+
 #ifdef _WIN32
 #include 
 #include 
@@ -95,6 +97,8 @@ static bool uploadContent(std::map& 
parameters, std::s
 if (!curl)
 return false;
 
+::InitCurl_easy(curl);
+
 std::string proxy, proxy_user_pwd, ca_certificate_file, file, url, version;
 
 getProperty("Proxy", proxy, parameters);
diff --git a/extensions/source/update/check/download.cxx 
b/extensions/source/update/check/download.cxx
index 8f090ed9b6dd..2124ee5a0512 100644
--- a/extensions/source/update/check/download.cxx
+++ b/extensions/source/update/check/download.cxx
@@ -23,6 +23,8 @@
 
 #include 
 
+#include 
+
 #include 
 #include 
 #include 
@@ -222,6 +224,8 @@ static bool curl_run(std::u16string_view rURL, OutData& 
out, const OString& aPro
 
 if( nullptr != pCURL )
 {
+::InitCurl_easy(pCURL);
+
 out.curl = pCURL;
 
 OString aURL(OUStringToOString(rURL, RTL_TEXTENCODING_UTF8));
diff --git a/include/curlinit.hxx b/include/curlinit.hxx
new file mode 100644
index ..8b3a9968419d
--- /dev/null
+++ b/include/curlinit.hxx
@@ -0,0 +1,59 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; 
fill-column: 100 -*- */
+/*
+ * 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://mozi

[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - external/libcmis

2023-11-11 Thread Michael Stahl (via logerrit)
 
external/libcmis/0003-HttpSession-fix-regression-setting-wrong-type-of-CUR.patch
 |   81 ++
 external/libcmis/UnpackedTarball_libcmis.mk
  |1 
 2 files changed, 82 insertions(+)

New commits:
commit e8661e19a50e5d1ef987794f230f0b50f64fd37f
Author: Michael Stahl 
AuthorDate: Mon Nov 6 18:48:37 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:08:43 2023 +0100

libcmis: fix regression setting wrong type of CURLOPT_SEEKFUNCTION

Change-Id: I45421bbe13626aa843380e77f589e793328f99d4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159010
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit 584c01394ff06072b11ef4bd4bffb9e7f2d31e81)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159031
Reviewed-by: Thorsten Behrens 

diff --git 
a/external/libcmis/0003-HttpSession-fix-regression-setting-wrong-type-of-CUR.patch
 
b/external/libcmis/0003-HttpSession-fix-regression-setting-wrong-type-of-CUR.patch
new file mode 100644
index ..424fd9e0ea0f
--- /dev/null
+++ 
b/external/libcmis/0003-HttpSession-fix-regression-setting-wrong-type-of-CUR.patch
@@ -0,0 +1,81 @@
+From 3e6eb4cefd22498824247d91ab4c125deb3277da Mon Sep 17 00:00:00 2001
+From: Michael Stahl 
+Date: Mon, 6 Nov 2023 18:41:37 +0100
+Subject: [PATCH 3/3] HttpSession: fix regression setting wrong type of
+ CURLOPT_SEEKFUNCTION
+
+(regression from commit 1b8a646b1d63bfa760d154dd7e51f6298d4a9899)
+---
+ src/libcmis/http-session.cxx | 28 +---
+ 1 file changed, 25 insertions(+), 3 deletions(-)
+
+diff --git a/src/libcmis/http-session.cxx b/src/libcmis/http-session.cxx
+index 8787c50..d7b1a5e 100644
+--- a/src/libcmis/http-session.cxx
 b/src/libcmis/http-session.cxx
+@@ -31,6 +31,7 @@
+ #include 
+ #include 
+ #include 
++#include 
+ 
+ #include 
+ #include 
+@@ -110,6 +111,27 @@ namespace
+ return errCode;
+ }
+ 
++int lcl_seekStream(void* data, curl_off_t offset, int origin)
++{
++std::ios_base::seekdir dir = {};
++switch (origin)
++{
++case SEEK_SET: dir = std::ios_base::beg; break;
++case SEEK_CUR: dir = std::ios_base::cur; break;
++case SEEK_END: dir = std::ios_base::end; break;
++default: assert(false); break;
++}
++istream& is = *(static_cast(data));
++is.clear();
++is.seekg(offset, dir);
++if (!is.good())
++{
++fprintf(stderr, "rewind failed\n");
++return CURL_SEEKFUNC_FAIL;
++}
++return CURL_SEEKFUNC_OK;
++}
++
+ template
+ class ScopeGuard
+ {
+@@ -328,7 +350,7 @@ libcmis::HttpResponsePtr HttpSession::httpPatchRequest( 
string url, istream& is,
+ curl_easy_setopt( m_curlHandle, CURLOPT_UPLOAD, 1 );
+ curl_easy_setopt( m_curlHandle, CURLOPT_CUSTOMREQUEST, "PATCH" );
+ #if (LIBCURL_VERSION_MAJOR > 7) || (LIBCURL_VERSION_MAJOR == 7 && 
LIBCURL_VERSION_MINOR >= 85)
+-curl_easy_setopt( m_curlHandle, CURLOPT_SEEKFUNCTION, lcl_ioctlStream );
++curl_easy_setopt( m_curlHandle, CURLOPT_SEEKFUNCTION, lcl_seekStream );
+ curl_easy_setopt( m_curlHandle, CURLOPT_SEEKDATA, &isOriginal );
+ #else
+ curl_easy_setopt( m_curlHandle, CURLOPT_IOCTLFUNCTION, lcl_ioctlStream );
+@@ -420,7 +442,7 @@ libcmis::HttpResponsePtr HttpSession::httpPutRequest( 
string url, istream& is, v
+ curl_easy_setopt( m_curlHandle, CURLOPT_READFUNCTION, lcl_readStream );
+ curl_easy_setopt( m_curlHandle, CURLOPT_UPLOAD, 1 );
+ #if (LIBCURL_VERSION_MAJOR > 7) || (LIBCURL_VERSION_MAJOR == 7 && 
LIBCURL_VERSION_MINOR >= 85)
+-curl_easy_setopt( m_curlHandle, CURLOPT_SEEKFUNCTION, lcl_ioctlStream );
++curl_easy_setopt( m_curlHandle, CURLOPT_SEEKFUNCTION, lcl_seekStream );
+ curl_easy_setopt( m_curlHandle, CURLOPT_SEEKDATA, &isOriginal );
+ #else
+ curl_easy_setopt( m_curlHandle, CURLOPT_IOCTLFUNCTION, lcl_ioctlStream );
+@@ -513,7 +535,7 @@ libcmis::HttpResponsePtr HttpSession::httpPostRequest( 
const string& url, istrea
+ curl_easy_setopt( m_curlHandle, CURLOPT_READFUNCTION, lcl_readStream );
+ curl_easy_setopt( m_curlHandle, CURLOPT_POST, 1 );
+ #if (LIBCURL_VERSION_MAJOR > 7) || (LIBCURL_VERSION_MAJOR == 7 && 
LIBCURL_VERSION_MINOR >= 85)
+-curl_easy_setopt( m_curlHandle, CURLOPT_SEEKFUNCTION, lcl_ioctlStream );
++curl_easy_setopt( m_curlHandle, CURLOPT_SEEKFUNCTION, lcl_seekStream );
+ curl_easy_setopt( m_curlHandle, CURLOPT_SEEKDATA, &isOriginal );
+ #else
+ curl_easy_setopt( m_curlHandle, CURLOPT_IOCTLFUNCTION, lcl_ioctlStream );
+-- 
+2.41.0
+
diff --git a/external/libcmis/UnpackedTarball_libcmis.mk 
b/external/libcmis/UnpackedTarball_libcmis.mk
index 1ef846aa2b4b..1a1678e5a67c 100644
--- a/external/libcmis/UnpackedTarball_libcmis.mk
+++ b/external/libcmis/UnpackedTarball_libcmis.mk
@@ -16,6 +16,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,libcmis,1))
 $(e

[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - external/libcmis

2023-11-11 Thread Michael Stahl (via logerrit)
 
external/libcmis/0002-HttpSession-add-a-callback-that-can-be-used-to-confi.patch
 |  142 ++
 external/libcmis/UnpackedTarball_libcmis.mk
  |1 
 2 files changed, 143 insertions(+)

New commits:
commit 5610476a61fb9e75e87d98a30c5ba4e7ac353545
Author: Michael Stahl 
AuthorDate: Mon Nov 6 14:43:12 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:08:22 2023 +0100

libcmis: HttpSession: add a callback that can be used to configure libcurl

Change-Id: I6c2a3d1976f2256b21a3a306db7fbf04ca444c32
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159000
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit 061e48e607291c2992c81d3073a8c41387c56996)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158907
Reviewed-by: Thorsten Behrens 

diff --git 
a/external/libcmis/0002-HttpSession-add-a-callback-that-can-be-used-to-confi.patch
 
b/external/libcmis/0002-HttpSession-add-a-callback-that-can-be-used-to-confi.patch
new file mode 100644
index ..b47ee4d195b2
--- /dev/null
+++ 
b/external/libcmis/0002-HttpSession-add-a-callback-that-can-be-used-to-confi.patch
@@ -0,0 +1,142 @@
+From 94012ca5b669e71ea35508159f63576364736dc2 Mon Sep 17 00:00:00 2001
+From: Michael Stahl 
+Date: Mon, 6 Nov 2023 14:18:59 +0100
+Subject: [PATCH 2/2] HttpSession: add a callback that can be used to configure
+ libcurl
+
+---
+ inc/libcmis/session-factory.hxx | 7 +++
+ src/libcmis/http-session.cxx| 8 +++-
+ src/libcmis/http-session.hxx| 8 +++-
+ src/libcmis/session-factory.cxx | 9 -
+ 4 files changed, 29 insertions(+), 3 deletions(-)
+
+diff --git a/inc/libcmis/session-factory.hxx b/inc/libcmis/session-factory.hxx
+index 45abd8b..227ac4d 100644
+--- a/inc/libcmis/session-factory.hxx
 b/inc/libcmis/session-factory.hxx
+@@ -38,6 +38,9 @@
+ #include "libcmis/repository.hxx"
+ #include "libcmis/session.hxx"
+ 
++// needed for a callback type
++typedef void CURL;
++
+ namespace libcmis
+ {
+ /** This callback provides the OAuth2 code or NULL.
+@@ -80,6 +83,8 @@ namespace libcmis
+ };
+ typedef boost::shared_ptr< CertValidationHandler > 
CertValidationHandlerPtr;
+ 
++typedef void(*CurlInitProtocolsFunction)(CURL *);
++
+ class LIBCMIS_API SessionFactory
+ {
+ private:
+@@ -109,6 +114,8 @@ namespace libcmis
+ static void setCertificateValidationHandler( 
CertValidationHandlerPtr handler ) { s_certValidationHandler = handler; }
+ static CertValidationHandlerPtr getCertificateValidationHandler( 
) { return s_certValidationHandler; }
+ 
++static void 
setCurlInitProtocolsFunction(CurlInitProtocolsFunction);
++
+ static void setProxySettings( std::string proxy,
+ std::string noProxy,
+ std::string proxyUser,
+diff --git a/src/libcmis/http-session.cxx b/src/libcmis/http-session.cxx
+index 9703427..8787c50 100644
+--- a/src/libcmis/http-session.cxx
 b/src/libcmis/http-session.cxx
+@@ -133,8 +133,10 @@ namespace
+ }
+ 
+ HttpSession::HttpSession( string username, string password, bool noSslCheck,
+-  libcmis::OAuth2DataPtr oauth2, bool verbose ) :
++  libcmis::OAuth2DataPtr oauth2, bool verbose,
++  libcmis::CurlInitProtocolsFunction initProtocols) :
+ m_curlHandle( NULL ),
++m_CurlInitProtocolsFunction(initProtocols),
+ m_no100Continue( false ),
+ m_oauth2Handler( NULL ),
+ m_username( username ),
+@@ -903,6 +905,10 @@ void HttpSession::initProtocols( )
+ curl_easy_setopt(m_curlHandle, CURLOPT_PROTOCOLS, protocols);
+ curl_easy_setopt(m_curlHandle, CURLOPT_REDIR_PROTOCOLS, protocols);
+ #endif
++if (m_CurlInitProtocolsFunction)
++{
++(*m_CurlInitProtocolsFunction)(m_curlHandle);
++}
+ }
+ 
+ const char* CurlException::what( ) const noexcept
+diff --git a/src/libcmis/http-session.hxx b/src/libcmis/http-session.hxx
+index 6c9ed1b..34223b2 100644
+--- a/src/libcmis/http-session.hxx
 b/src/libcmis/http-session.hxx
+@@ -43,6 +43,10 @@
+ 
+ class OAuth2Handler;
+ 
++namespace libcmis {
++typedef void(*CurlInitProtocolsFunction)(CURL *);
++}
++
+ class CurlException : public std::exception
+ {
+ private:
+@@ -93,6 +97,7 @@ class HttpSession
+ {
+ protected:
+ CURL* m_curlHandle;
++libcmis::CurlInitProtocolsFunction m_CurlInitProtocolsFunction = 
nullptr;
+ private:
+ bool  m_no100Continue;
+ protected:
+@@ -111,7 +116,8 @@ class HttpSession
+ HttpSession( std::string username, std::string password,
+  bool noSslCheck = false,
+  libcmis::OAuth2DataPtr oauth2 = libcmis::OAuth2DataPtr(),
+- bool verbose = false );
++ bool verbose = false,
++ libcmis::CurlInitProtocolsFunction = nullptr);
+ 
+ Ht

[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - external/libcmis

2023-11-11 Thread Michael Stahl (via logerrit)
 external/libcmis/0001-fix-regression-in-HttpSession-initProtocols.patch |   31 
++
 external/libcmis/UnpackedTarball_libcmis.mk |4 
+
 2 files changed, 35 insertions(+)

New commits:
commit bd09969857d686265ef09e907678f892ae5f0025
Author: Michael Stahl 
AuthorDate: Mon Nov 6 14:24:14 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:07:59 2023 +0100

libcmis: fix regression in HttpSession::initProtocols()

Change-Id: I1d884945cc1f88a3abbf87c78227b56abf865c16
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158999
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit 385aae6595fa467c73b6fdede5153d785c3ce138)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158906
Reviewed-by: Thorsten Behrens 

diff --git 
a/external/libcmis/0001-fix-regression-in-HttpSession-initProtocols.patch 
b/external/libcmis/0001-fix-regression-in-HttpSession-initProtocols.patch
new file mode 100644
index ..8480913cdf20
--- /dev/null
+++ b/external/libcmis/0001-fix-regression-in-HttpSession-initProtocols.patch
@@ -0,0 +1,31 @@
+From 5b9ed18e518a5214b4a1fb2766627c1d169b8d8c Mon Sep 17 00:00:00 2001
+From: Michael Stahl 
+Date: Mon, 6 Nov 2023 13:33:05 +0100
+Subject: [PATCH 1/2] fix regression in  HttpSession::initProtocols()
+
+(regression from commit 1b8a646b1d63bfa760d154dd7e51f6298d4a9899)
+---
+ src/libcmis/http-session.cxx | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/libcmis/http-session.cxx b/src/libcmis/http-session.cxx
+index 3847a2c..9703427 100644
+--- a/src/libcmis/http-session.cxx
 b/src/libcmis/http-session.cxx
+@@ -894,11 +894,12 @@ catch ( const libcmis::Exception& e )
+ 
+ void HttpSession::initProtocols( )
+ {
+-const unsigned long protocols = CURLPROTO_HTTP | CURLPROTO_HTTPS;
+ #if (LIBCURL_VERSION_MAJOR > 7) || (LIBCURL_VERSION_MAJOR == 7 && 
LIBCURL_VERSION_MINOR >= 85)
++auto const protocols = "https,http";
+ curl_easy_setopt(m_curlHandle, CURLOPT_PROTOCOLS_STR, protocols);
+ curl_easy_setopt(m_curlHandle, CURLOPT_REDIR_PROTOCOLS_STR, protocols);
+ #else
++const unsigned long protocols = CURLPROTO_HTTP | CURLPROTO_HTTPS;
+ curl_easy_setopt(m_curlHandle, CURLOPT_PROTOCOLS, protocols);
+ curl_easy_setopt(m_curlHandle, CURLOPT_REDIR_PROTOCOLS, protocols);
+ #endif
+-- 
+2.41.0
+
diff --git a/external/libcmis/UnpackedTarball_libcmis.mk 
b/external/libcmis/UnpackedTarball_libcmis.mk
index 1c014d963401..d7ecc207f10d 100644
--- a/external/libcmis/UnpackedTarball_libcmis.mk
+++ b/external/libcmis/UnpackedTarball_libcmis.mk
@@ -13,4 +13,8 @@ $(eval $(call 
gb_UnpackedTarball_set_tarball,libcmis,$(LIBCMIS_TARBALL)))
 
 $(eval $(call gb_UnpackedTarball_set_patchlevel,libcmis,1))
 
+$(eval $(call gb_UnpackedTarball_add_patches,libcmis,\
+   external/libcmis/0001-fix-regression-in-HttpSession-initProtocols.patch 
\
+))
+
 # vim: set noet sw=4 ts=4:


[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - sw/source vcl/qa

2023-11-11 Thread Michael Stahl (via logerrit)
 sw/source/core/crsr/viscrs.cxx  |4 
 sw/source/core/inc/rootfrm.hxx  |4 
 sw/source/core/layout/trvlfrm.cxx   |   49 +++
 sw/source/core/text/EnhancedPDFExportHelper.cxx |   18 +
 vcl/qa/cppunit/pdfexport/data/LinkWithFly.fodt  |  137 +
 vcl/qa/cppunit/pdfexport/pdfexport.cxx  |  349 +++-
 6 files changed, 549 insertions(+), 12 deletions(-)

New commits:
commit 1e6e6c6919cfd65bb8192fe893b45ee4d4bfa9be
Author: Michael Stahl 
AuthorDate: Fri Oct 27 19:45:09 2023 +0200
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:07:15 2023 +0100

tdf#157816 sw: PDF export: filter out links on empty space, INetAttrs

Several problems here:
* As with fields, there may be selection rectangles with no text
* SwRootFrame::CalcFrameRects() adds flys that are anchored in the
  selection to the selection
* A fly text portion causes Link annotations to split, but not Link SE
* If a fly only partially overlaps a line vertically, then
  CalcFrameRects() produces a full-width half-height rectangle and
  another 2 half-width half-height rectangles on both sides.
  This is useless, the rectangles must be full line height.
  Add some code in CalcFrameRects() to use the fly portions in the
  SwParaPortion instead of the fly frame areas.

Change-Id: I93f0c12a5e5a3d5f51fcc4b33052a112e9174863
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158576
Tested-by: Michael Stahl 
Reviewed-by: Michael Stahl 
(cherry picked from commit 5726be1314517d47dd733aabe64a3d85cce094c5)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158813
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/sw/source/core/crsr/viscrs.cxx b/sw/source/core/crsr/viscrs.cxx
index da9c043c6581..f681f3a32815 100644
--- a/sw/source/core/crsr/viscrs.cxx
+++ b/sw/source/core/crsr/viscrs.cxx
@@ -954,7 +954,9 @@ void SwShellCursor::FillRects()
 (GetMark()->GetNode() == GetPoint()->GetNode() ||
 (GetMark()->GetNode().IsContentNode() &&
  GetMark()->GetNode().GetContentNode()->getLayoutFrame( 
GetShell()->GetLayout() ) )   ))
-GetShell()->GetLayout()->CalcFrameRects( *this );
+{
+GetShell()->GetLayout()->CalcFrameRects(*this, *this);
+}
 }
 
 void SwShellCursor::Show(SfxViewShell const * pViewShell)
diff --git a/sw/source/core/inc/rootfrm.hxx b/sw/source/core/inc/rootfrm.hxx
index 29f813360d82..90d18fcf0ee4 100644
--- a/sw/source/core/inc/rootfrm.hxx
+++ b/sw/source/core/inc/rootfrm.hxx
@@ -20,6 +20,7 @@
 #define INCLUDED_SW_SOURCE_CORE_INC_ROOTFRM_HXX
 
 #include "layfrm.hxx"
+#include 
 #include 
 #include 
 #include 
@@ -343,7 +344,8 @@ public:
 */
 bool IsBetweenPages(const Point& rPt) const;
 
-void CalcFrameRects( SwShellCursor& );
+enum class RectsMode { Default, NoAnchoredFlys };
+void CalcFrameRects(SwShellCursor const&, SwRects &, RectsMode eMode = 
RectsMode::Default);
 
 /**
  * Calculates the cells included from the current selection
diff --git a/sw/source/core/layout/trvlfrm.cxx 
b/sw/source/core/layout/trvlfrm.cxx
index dfcfad57cef5..b7ae8fed0810 100644
--- a/sw/source/core/layout/trvlfrm.cxx
+++ b/sw/source/core/layout/trvlfrm.cxx
@@ -47,6 +47,8 @@
 #include 
 #include 
 #include 
+#include "../text/inftxt.hxx"
+#include "../text/itrpaint.hxx"
 #include 
 #include 
 
@@ -2016,7 +2018,7 @@ static void Add( SwRegionRects& rRegion, const SwRect& 
rRect )
  *  inverted rectangles are available.
  *  In the end the Flys are cut out of the section.
  */
-void SwRootFrame::CalcFrameRects(SwShellCursor &rCursor)
+void SwRootFrame::CalcFrameRects(SwShellCursor const& rCursor, SwRects & 
rRects, RectsMode const eMode)
 {
 auto [pStartPos, pEndPos] = rCursor.StartEnd(); // SwPosition*
 
@@ -2572,7 +2574,46 @@ void SwRootFrame::CalcFrameRects(SwShellCursor &rCursor)
 const SwPageFrame *pPage  = pStartFrame->FindPageFrame();
 const SwPageFrame *pEndPage   = pEndFrame->FindPageFrame();
 
-while ( pPage )
+// for link rectangles: just remove all the fly portions - this prevents
+// splitting of portions vertically (causes spurious extra PDF annotations)
+if (eMode == RectsMode::NoAnchoredFlys)
+{
+assert(pStartFrame == pEndFrame); // link or field all in 1 frame
+assert(pStartFrame->IsTextFrame());
+SwTextGridItem const*const 
pGrid(GetGridItem(pStartFrame->FindPageFrame()));
+SwTextPaintInfo info(static_cast(pStartFrame), 
pStartFrame->FindPageFrame()->getFrameArea());
+SwTextPainter painter(static_cast(pStartFrame), &info);
+// because nothing outside the start/end has been added, it doesn't
+// matter to match exactly the start/end, subtracting outside is no-op
+
painter.CharToLine(static_cast(pStartFrame)->MapModelToViewPos(*pStartPos));
+do
+{
+info.Se

[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - sw/inc sw/source

2023-11-11 Thread Michael Stahl (via logerrit)
 sw/inc/EnhancedPDFExportHelper.hxx  |1 +
 sw/source/core/text/EnhancedPDFExportHelper.cxx |   14 ++
 sw/source/core/text/itrpaint.cxx|2 ++
 3 files changed, 17 insertions(+)

New commits:
commit 6898f3ad90f2128de78726e689318bc3565b644a
Author: Michael Stahl 
AuthorDate: Wed Nov 1 20:31:44 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Sat Nov 11 18:06:58 2023 +0100

tdf#156565 sw: PDF/UA export: split Link SE at line break

There must be one Link SE per Link Annotation, so ensure that a new one
is created for a new line.

(regression from commit 4c5283a3a11008a06a995c49ed34dc1f6066)

Change-Id: I2585d9e22a435d7716f48fec89a78149c129f71d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158775
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit a71da3b7a80ca32b595a8ca0ea3da650b0af376c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158799
Reviewed-by: Thorsten Behrens 

diff --git a/sw/inc/EnhancedPDFExportHelper.hxx 
b/sw/inc/EnhancedPDFExportHelper.hxx
index 542138157d2f..fdfbeffe8a02 100644
--- a/sw/inc/EnhancedPDFExportHelper.hxx
+++ b/sw/inc/EnhancedPDFExportHelper.hxx
@@ -177,6 +177,7 @@ class SwTaggedPDFHelper
 ~SwTaggedPDFHelper();
 
 static bool IsExportTaggedPDF( const OutputDevice& rOut );
+static void EndCurrentLink(OutputDevice const&);
 };
 
 /*
diff --git a/sw/source/core/text/EnhancedPDFExportHelper.cxx 
b/sw/source/core/text/EnhancedPDFExportHelper.cxx
index ed9f9b31d674..43c20729363e 100644
--- a/sw/source/core/text/EnhancedPDFExportHelper.cxx
+++ b/sw/source/core/text/EnhancedPDFExportHelper.cxx
@@ -1651,6 +1651,20 @@ void SwTaggedPDFHelper::EndStructureElements()
 CheckRestoreTag();
 }
 
+void SwTaggedPDFHelper::EndCurrentLink(OutputDevice const& rOut)
+{
+vcl::PDFExtOutDevData *const pPDFExtOutDevData(
+dynamic_cast(rOut.GetExtOutDevData()));
+if (pPDFExtOutDevData && 
pPDFExtOutDevData->GetSwPDFState()->m_oCurrentLink)
+{
+pPDFExtOutDevData->GetSwPDFState()->m_oCurrentLink.reset();
+pPDFExtOutDevData->EndStructureElement();
+#if OSL_DEBUG_LEVEL > 1
+aStructStack.pop_back();
+#endif
+}
+}
+
 void SwTaggedPDFHelper::EndCurrentSpan()
 {
 mpPDFExtOutDevData->GetSwPDFState()->m_oCurrentSpan.reset();
diff --git a/sw/source/core/text/itrpaint.cxx b/sw/source/core/text/itrpaint.cxx
index 06c9c56b5d07..bfd15d5dfd90 100644
--- a/sw/source/core/text/itrpaint.cxx
+++ b/sw/source/core/text/itrpaint.cxx
@@ -162,6 +162,8 @@ void SwTextPainter::DrawTextLine( const SwRect &rPaint, 
SwSaveClip &rClip,
 roTaggedParagraph.emplace(nullptr, &aFrameInfo, nullptr, 
*GetInfo().GetOut());
 }
 
+SwTaggedPDFHelper::EndCurrentLink(*GetInfo().GetOut());
+
 // Optimization!
 SwTwips nMaxRight = std::min( rPaint.Right(), Right() );
 const SwTwips nTmpLeft = GetInfo().X();


[Libreoffice-commits] core.git: 2 commits - scp2/source svx/source

2023-11-11 Thread Andras Timar (via logerrit)
 scp2/source/ooo/file_ooo.scp  |6 +++---
 svx/source/customshapes/EnhancedCustomShape2d.cxx |   15 +++
 2 files changed, 18 insertions(+), 3 deletions(-)

New commits:
commit c45779ce3d1b95abd037d3d4d706aca511dfdc24
Author: Andras Timar 
AuthorDate: Thu Jun 8 14:59:34 2023 +0200
Commit: Caolán McNamara 
CommitDate: Sat Nov 11 16:49:26 2023 +0100

On Linux dictionaries are packaged separately

Change-Id: Iadbd5a1411c3b2c72deb59ba91f86d889a34fdc3
(cherry picked from commit 135a474477d143ffbe877d95ba37c008c509e45f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159312
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 

diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
index d6e424629536..f5573c3ab872 100644
--- a/scp2/source/ooo/file_ooo.scp
+++ b/scp2/source/ooo/file_ooo.scp
@@ -383,7 +383,7 @@ File gid_File_Extension_Dictionary_Da
 End
 #endif
 
-#if defined WITH_MYSPELL_DICTS && !defined MPL_SUBSET
+#if defined WITH_MYSPELL_DICTS && (!defined MPL_SUBSET || defined LINUX)
 File gid_File_Extension_Dictionary_De
Dir = FILELIST_DIR;
Name = "Dictionary/dict-de.filelist";
@@ -392,7 +392,7 @@ File gid_File_Extension_Dictionary_De
 End
 #endif
 
-#if defined WITH_MYSPELL_DICTS && !defined MPL_SUBSET
+#if defined WITH_MYSPELL_DICTS && (!defined MPL_SUBSET || defined LINUX)
 File gid_File_Extension_Dictionary_En
Dir = FILELIST_DIR;
Name = "Dictionary/dict-en.filelist";
@@ -536,7 +536,7 @@ File gid_File_Extension_Dictionary_Is
 End
 #endif
 
-#if defined WITH_MYSPELL_DICTS && !defined MPL_SUBSET
+#if defined WITH_MYSPELL_DICTS && (!defined MPL_SUBSET || defined LINUX)
 File gid_File_Extension_Dictionary_It
Dir = FILELIST_DIR;
Name = "Dictionary/dict-it.filelist";
commit 454d70247fee7e0fc255f2605836b52804eba41f
Author: Caolán McNamara 
AuthorDate: Fri Nov 10 21:12:31 2023 +
Commit: Caolán McNamara 
CommitDate: Sat Nov 11 16:49:18 2023 +0100

ofz#63845 Integer-overflow

Change-Id: Ic2396c92b53012642976e75fcfa42cf2737f3092
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159311
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 

diff --git a/svx/source/customshapes/EnhancedCustomShape2d.cxx 
b/svx/source/customshapes/EnhancedCustomShape2d.cxx
index 7d105d63a728..bb99bf2ae40a 100644
--- a/svx/source/customshapes/EnhancedCustomShape2d.cxx
+++ b/svx/source/customshapes/EnhancedCustomShape2d.cxx
@@ -43,6 +43,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -703,6 +704,20 @@ void EnhancedCustomShape2d::SetPathSize( sal_Int32 nIndex )
 }
 else
 m_fYRatio = 1.0;
+
+if (utl::ConfigManager::IsFuzzing())
+{
+if (fabs(m_fXScale) > 10)
+{
+SAL_WARN("svx", "unreasonable X Scale of: " << m_fXScale);
+m_fXScale = 1.0;
+}
+if (fabs(m_fYScale) > 10)
+{
+SAL_WARN("svx", "unreasonable Y Scale of: " << m_fYScale);
+m_fYScale = 1.0;
+}
+}
 }
 
 EnhancedCustomShape2d::EnhancedCustomShape2d(SdrObjCustomShape& 
rSdrObjCustomShape)


[Libreoffice-commits] core.git: configure.ac

2023-11-11 Thread Mike Kaganski (via logerrit)
 configure.ac |   10 +-
 1 file changed, 1 insertion(+), 9 deletions(-)

New commits:
commit 8d6209d92dedf46d6d7c084b54dd1ebcbe55f1c4
Author: Mike Kaganski 
AuthorDate: Sat Nov 11 16:26:55 2023 +0300
Commit: Mike Kaganski 
CommitDate: Sat Nov 11 16:40:47 2023 +0100

Finally remove superfluous --with-theme=default option

... as suggested in commit 7524f45e0a2b86dc418f0eb76df89dbdbecfafd3
(remove superfluous --with-theme=default option, 2014-08-22).

Change-Id: Iddd1e39846023c3a4e2ebd73b0010d70c706
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159320
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/configure.ac b/configure.ac
index 15e7c781e993..ef52e39bc261 100644
--- a/configure.ac
+++ b/configure.ac
@@ -13498,8 +13498,7 @@ fi
 
 WITH_THEMES=""
 if test "x$with_theme" != "xno"; then
-with_theme_sorted=`echo $with_theme|sed 's/\bdefault\b/colibre/g'|tr '\ ' 
'\n'|sort -u`
-for theme in $with_theme_sorted; do
+for theme in $with_theme; do
 case $theme in
 
breeze|breeze_dark|breeze_dark_svg|breeze_svg|colibre|colibre_svg|colibre_dark|colibre_dark_svg|elementary|elementary_svg|karasa_jaga|karasa_jaga_svg|sifr|sifr_svg|sifr_dark|sifr_dark_svg|sukapura|sukapura_dark|sukapura_dark_svg|sukapura_svg)
 WITH_THEMES="${WITH_THEMES:+$WITH_THEMES }$theme" ;;
 *) AC_MSG_ERROR([Unknown value for --with-theme: $theme]) ;;
@@ -13508,13 +13507,6 @@ if test "x$with_theme" != "xno"; then
 fi
 AC_MSG_RESULT([$WITH_THEMES])
 AC_SUBST([WITH_THEMES])
-# FIXME: remove this, and the convenience default->colibre remapping after a 
grace period
-for theme in $with_theme; do
-case $theme in
-default) AC_MSG_WARN([--with-theme=default is deprecated and will be 
removed, use --with-theme=colibre]) ;;
-*) ;;
-esac
-done
 
 ###
 # Extensions checking


[Libreoffice-commits] core.git: 2 commits - configure.ac

2023-11-11 Thread Mike Kaganski (via logerrit)
 configure.ac |   18 +++---
 1 file changed, 11 insertions(+), 7 deletions(-)

New commits:
commit 3b74fa43f537f471b1b87741d703f2696ed24510
Author: Mike Kaganski 
AuthorDate: Sat Nov 11 16:25:29 2023 +0300
Commit: Mike Kaganski 
CommitDate: Sat Nov 11 16:25:03 2023 +0100

Simplify input theme filtering

Change-Id: Iaa96feee79902f780409a19f97fed201793a66ca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159319
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/configure.ac b/configure.ac
index 35b654abe1f7..15e7c781e993 100644
--- a/configure.ac
+++ b/configure.ac
@@ -13498,13 +13498,12 @@ fi
 
 WITH_THEMES=""
 if test "x$with_theme" != "xno"; then
-for theme in $with_theme; do
+with_theme_sorted=`echo $with_theme|sed 's/\bdefault\b/colibre/g'|tr '\ ' 
'\n'|sort -u`
+for theme in $with_theme_sorted; do
 case $theme in
-
breeze|breeze_dark|breeze_dark_svg|breeze_svg|colibre|colibre_svg|colibre_dark|colibre_dark_svg|elementary|elementary_svg|karasa_jaga|karasa_jaga_svg|sifr|sifr_svg|sifr_dark|sifr_dark_svg|sukapura|sukapura_dark|sukapura_dark_svg|sukapura_svg)
 real_theme="$theme" ;;
-default) real_theme=colibre ;;
+
breeze|breeze_dark|breeze_dark_svg|breeze_svg|colibre|colibre_svg|colibre_dark|colibre_dark_svg|elementary|elementary_svg|karasa_jaga|karasa_jaga_svg|sifr|sifr_svg|sifr_dark|sifr_dark_svg|sukapura|sukapura_dark|sukapura_dark_svg|sukapura_svg)
 WITH_THEMES="${WITH_THEMES:+$WITH_THEMES }$theme" ;;
 *) AC_MSG_ERROR([Unknown value for --with-theme: $theme]) ;;
 esac
-WITH_THEMES=`echo "$WITH_THEMES $real_theme"|tr '\ ' '\n'|sort|uniq|tr 
'\n' '\ '`
 done
 fi
 AC_MSG_RESULT([$WITH_THEMES])
commit db029c5a02880beb262165822a2e833c47569984
Author: Mike Kaganski 
AuthorDate: Sat Nov 11 16:22:23 2023 +0300
Commit: Mike Kaganski 
CommitDate: Sat Nov 11 16:24:57 2023 +0100

When MPL subset needs to disable icon themes, suggest filtered input

A suggestion like "you wanted to have a, b, c, d; you need to exclude
b; use e" makes little sense :-)

Change-Id: I0212f0197b89c3e9d281fa5b24708672b82561b8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159318
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/configure.ac b/configure.ac
index 545c3de33303..35b654abe1f7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -14765,15 +14765,20 @@ if test "$enable_mpl_subset" = "yes"; then
 mpl_error_string="$mpl_error_string$newline Need to disable extra 
extensions enabled using --enable-ext-."
 fi
 denied_themes=
+filtered_themes=
 for theme in $WITH_THEMES; do
 case $theme in
 
breeze|breeze_dark|breeze_dark_svg|breeze_svg|elementary|elementary_svg|karasa_jaga|karasa_jaga_svg)
 #denylist of icon themes under GPL or LGPL
-denied_themes="$denied_themes $theme" ;;
-*) : ;;
+denied_themes="${denied_themes:+$denied_themes }$theme" ;;
+*)
+filtered_themes="${filtered_themes:+$filtered_themes }$theme" ;;
 esac
 done
 if test "x$denied_themes" != "x"; then
-mpl_error_string="$mpl_error_string$newline Need to disable icon 
themes from '$WITH_THEMES': $denied_themes present, use --with-theme=colibre."
+if test "x$filtered_themes" == "x"; then
+filtered_themes="colibre"
+fi
+mpl_error_string="$mpl_error_string$newline Need to disable icon 
themes: $denied_themes, use --with-theme=$filtered_themes."
 fi
 
 ENABLE_OPENGL_TRANSITIONS=


[Libreoffice-commits] core.git: sw/qa

2023-11-11 Thread Andrea Gelmini (via logerrit)
 0 files changed

New commits:
commit 619b0fcef2e645347ba959852748614ba8283d88
Author: Andrea Gelmini 
AuthorDate: Sat Nov 11 15:21:59 2023 +0100
Commit: Julien Nabet 
CommitDate: Sat Nov 11 15:41:53 2023 +0100

Remove exec bits on rtf file

Change-Id: I00f56edefeba01ab75fa504a074a5c99269bcef7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159321
Tested-by: Julien Nabet 
Reviewed-by: Julien Nabet 

diff --git a/sw/qa/extras/rtfimport/data/tdf158044.rtf 
b/sw/qa/extras/rtfimport/data/tdf158044.rtf
old mode 100755
new mode 100644


[Libreoffice-commits] core.git: sw/qa

2023-11-11 Thread Mike Kaganski (via logerrit)
 sw/qa/extras/rtfimport/rtfimport.cxx |   87 ++-
 1 file changed, 47 insertions(+), 40 deletions(-)

New commits:
commit 0d0068f7231e2839c24370c69c9176d353b1945a
Author: Mike Kaganski 
AuthorDate: Sat Nov 11 12:29:52 2023 +0300
Commit: Mike Kaganski 
CommitDate: Sat Nov 11 12:23:48 2023 +0100

Make the unit test linear and more explicit

In the pevious state, the test would not even fail in case when import
started to drop last paragraphs.

Change-Id: Ic28d059ed41f88c9264743034a5ce5397fff0b2c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159317
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx 
b/sw/qa/extras/rtfimport/rtfimport.cxx
index 763a7f196c39..604cafe616aa 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -1716,47 +1716,54 @@ CPPUNIT_TEST_FIXTURE(Test, test158044Tdf)
 {
 createSwDoc("tdf158044.rtf");
 
-uno::Reference xTextDocument(mxComponent, 
uno::UNO_QUERY);
-uno::Reference 
xParaEnumAccess(xTextDocument->getText(),
-  
uno::UNO_QUERY);
-uno::Reference xParaEnum = 
xParaEnumAccess->createEnumeration();
-int paraIndex = 0;
-while (xParaEnum->hasMoreElements())
 {
-uno::Reference 
xPropertySet(xParaEnum->nextElement(), uno::UNO_QUERY);
-sal_Int16 adjust = getProperty(xPropertySet, "ParaAdjust");
-Color fillColor = getProperty(xPropertySet, "FillColor");
-drawing::FillStyle fillStyle = 
getProperty(xPropertySet, "FillStyle");
-uno::Sequence tabStops
-= getProperty>(xPropertySet, 
"ParaTabStops");
-switch (paraIndex)
-{
-case 0:
-CPPUNIT_ASSERT_EQUAL(sal_Int32(0), tabStops.getLength());
-break;
-case 1:
-CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_NONE, fillStyle);
-CPPUNIT_ASSERT_EQUAL(Color(0xff), fillColor);
-break;
-case 2:
-CPPUNIT_ASSERT_EQUAL(sal_Int16(0), adjust);
-break;
-case 3:
-CPPUNIT_ASSERT_EQUAL(sal_Int32(2), tabStops.getLength());
-break;
-case 4:
-CPPUNIT_ASSERT_LESS(sal_Int32(2), tabStops.getLength());
-CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, fillStyle);
-CPPUNIT_ASSERT_EQUAL(Color(0xff), fillColor);
-break;
-case 5:
-CPPUNIT_ASSERT_LESS(sal_Int32(2), tabStops.getLength());
-CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_NONE, fillStyle);
-break;
-default:
-break;
-}
-++paraIndex;
+auto xPara(getParagraph(1));
+auto tabStops = getProperty>(xPara, 
"ParaTabStops");
+
+CPPUNIT_ASSERT_EQUAL(sal_Int32(0), tabStops.getLength());
+}
+
+{
+auto xPara(getParagraph(2));
+auto fillColor = getProperty(xPara, "FillColor");
+auto fillStyle = getProperty(xPara, "FillStyle");
+
+CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_NONE, fillStyle);
+CPPUNIT_ASSERT_EQUAL(Color(0xff), fillColor);
+}
+
+{
+auto xPara(getParagraph(3));
+auto adjust = getProperty(xPara, "ParaAdjust");
+
+CPPUNIT_ASSERT_EQUAL(sal_Int16(0), adjust);
+}
+
+{
+auto xPara(getParagraph(4));
+auto tabStops = getProperty>(xPara, 
"ParaTabStops");
+
+CPPUNIT_ASSERT_EQUAL(sal_Int32(2), tabStops.getLength());
+}
+
+{
+auto xPara(getParagraph(5));
+auto fillColor = getProperty(xPara, "FillColor");
+auto fillStyle = getProperty(xPara, "FillStyle");
+auto tabStops = getProperty>(xPara, 
"ParaTabStops");
+
+CPPUNIT_ASSERT_LESS(sal_Int32(2), tabStops.getLength());
+CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, fillStyle);
+CPPUNIT_ASSERT_EQUAL(Color(0xff), fillColor);
+}
+
+{
+auto xPara(getParagraph(6));
+auto fillStyle = getProperty(xPara, "FillStyle");
+auto tabStops = getProperty>(xPara, 
"ParaTabStops");
+
+CPPUNIT_ASSERT_LESS(sal_Int32(2), tabStops.getLength());
+CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_NONE, fillStyle);
 }
 }
 // tests should only be added to rtfIMPORT *if* they fail round-tripping in 
rtfEXPORT


[Libreoffice-commits] core.git: sw/qa

2023-11-11 Thread Mike Kaganski (via logerrit)
 sw/qa/extras/rtfimport/rtfimport.cxx |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

New commits:
commit 42f6e7e5d638bbc3b597b22dbf5689bcbe86292a
Author: Mike Kaganski 
AuthorDate: Sat Nov 11 12:06:25 2023 +0300
Commit: Mike Kaganski 
CommitDate: Sat Nov 11 12:22:40 2023 +0100

Fix Windows 64-bit build using VS 2022

... after commit fce18155052821756466ea043c638f4ed72f41d6, failing like

  C:/lo/src/core/sw/qa/extras/rtfimport/rtfimport.cxx(1739): error C7692: 
'bool Color::operator ==(const Color &) const': rewritten candidate function 
was excluded from overload resolution because a corresponding operator!= 
declared in the same scope
  C:\lo\src\core\include\vcl/vclenum.hxx(174): note: could be 'bool 
operator ==(const ItalicMatrix &,const ItalicMatrix &)'
  C:\lo\src\core\include\comphelper/errcode.hxx(249): note: or   'bool 
operator ==(ErrCode,const ErrCodeMsg &)'
  C:\lo\src\core\include\comphelper/errcode.hxx(247): note: or   'bool 
operator ==(const ErrCodeMsg &,ErrCode)'
  C:\lo\src\core\include\tools/gen.hxx(536): note: or   'bool operator 
==(const Selection &,const Selection &)'
  C:\lo\src\core\include\tools/gen.hxx(473): note: or   'bool operator 
==(const Range &,const Range &)'
  C:\lo\src\core\include\tools/gen.hxx(365): note: or   'bool operator 
==(const AbsoluteScreenPixelSize &,const AbsoluteScreenPixelSize &)'
  C:\lo\src\core\include\tools/gen.hxx(361): note: or   'bool operator 
==(const Size &,const Size &)'
  C:\lo\src\core\include\tools/gen.hxx(231): note: or   'bool operator 
==(const AbsoluteScreenPixelPoint &,const AbsoluteScreenPixelPoint &)'
  C:\lo\src\core\include\tools/gen.hxx(227): note: or   'bool operator 
==(const Point &,const Point &)'
  C:\lo\src\core\include\tools/color.hxx(256): note: or 'bool 
Color::operator ==(const Color &) const' [synthesized expression 'y == x']
  C:/lo/src/core/sw/qa/extras/rtfimport/rtfimport.cxx(1739): note: 'bool 
Color::operator ==(const Color &) const': rewritten candidate function was 
excluded from overload resolution because a corresponding operator!= declared 
in the same scope
  C:\lo\src\core\include\tools/gen.hxx(227): note: or 'bool operator 
==(const Point &,const Point &)' [synthesized expression 'y == x']
  C:\lo\src\core\include\tools/gen.hxx(231): note: or 'bool operator 
==(const AbsoluteScreenPixelPoint &,const AbsoluteScreenPixelPoint &)' 
[synthesized expression 'y == x']
  C:\lo\src\core\include\tools/gen.hxx(361): note: or 'bool operator 
==(const Size &,const Size &)' [synthesized expression 'y == x']
  C:\lo\src\core\include\tools/gen.hxx(365): note: or 'bool operator 
==(const AbsoluteScreenPixelSize &,const AbsoluteScreenPixelSize &)' 
[synthesized expression 'y == x']
  C:\lo\src\core\include\tools/gen.hxx(473): note: or 'bool operator 
==(const Range &,const Range &)' [synthesized expression 'y == x']
  C:\lo\src\core\include\tools/gen.hxx(536): note: or 'bool operator 
==(const Selection &,const Selection &)' [synthesized expression 'y == x']
  C:\lo\src\core\include\comphelper/errcode.hxx(247): note: or 'bool 
operator ==(const ErrCodeMsg &,ErrCode)' [synthesized expression 'y == x']
  C:\lo\src\core\include\comphelper/errcode.hxx(249): note: or 'bool 
operator ==(ErrCode,const ErrCodeMsg &)' [synthesized expression 'y == x']
  C:\lo\src\core\include\vcl/vclenum.hxx(174): note: or 'bool operator 
==(const ItalicMatrix &,const ItalicMatrix &)' [synthesized expression 'y == x']
  C:/lo/src/core/sw/qa/extras/rtfimport/rtfimport.cxx(1739): note: or   
'built-in C++ operator==(int, sal_uInt32)'
  C:/lo/src/core/sw/qa/extras/rtfimport/rtfimport.cxx(1739): note: or   
'built-in C++ operator==(int, sal_Int32)'
  C:\lo\src\core\include\svl/typedwhich.hxx(59): note: or   'bool 
operator ==(const TypedWhichId &,sal_uInt16)'
  C:/lo/src/core/sw/qa/extras/rtfimport/rtfimport.cxx(1739): note: 'bool 
operator ==(const TypedWhichId &,sal_uInt16)': could not deduce template 
argument for 'const TypedWhichId &' from 'int'
  C:\lo\src\core\include\svl/typedwhich.hxx(51): note: or   'bool 
operator ==(sal_uInt16,const TypedWhichId &)'
  C:/lo/src/core/sw/qa/extras/rtfimport/rtfimport.cxx(1739): note: 'bool 
operator ==(sal_uInt16,const TypedWhichId &)': could not deduce template 
argument for 'const TypedWhichId &' from 'Color'
  C:\lo\src\core\include\svl/typedwhich.hxx(43): note: or   'bool 
operator ==(const TypedWhichId &,TypedWhichId)'
  C:/lo/src/core/sw/qa/extras/rtfimport/rtfimport.cxx(1739): note: 'bool 
operator ==(const TypedWhichId &,TypedWhichId)': could not deduce 
template argument for 'const TypedWhichId &' from 'int'
  C:\lo\src\core\include\vcl/vclptr.hxx(238): note: or   'bool operator 
==(T *,const VclPtr &)'
  C:/lo/src/core/sw/qa/extras/rtfimport/rtfimport.cxx(1739): note: 'bool 
opera

[Libreoffice-commits] core.git: Branch 'distro/collabora/co-23.05' - sw/source

2023-11-11 Thread Mike Kaganski (via logerrit)
 sw/source/core/txtnode/fntcache.cxx |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 8b1aa9a5f5cd6f866cda03b6f17f87684c061ab6
Author: Mike Kaganski 
AuthorDate: Thu Oct 12 10:48:38 2023 +0300
Commit: Aron Budea 
CommitDate: Sat Nov 11 12:10:15 2023 +0100

Fix Windows x64 build

...after 6f45c0cf86b21772740bb0cafb3d462b058523f3 "cool#7318 Calc rendering
acceleration" caused

> sw/source/core/txtnode/fntcache.cxx(540): error C2672: 'std::min': no 
matching overloaded function found
> 
C:\PROGRA~1\MICROS~3\2022\Preview\VC\Tools\MSVC\1438~1.331\Include\utility(108):
 note: could be '_Ty std::min(std::initializer_list<_Elem>)'
> sw/source/core/txtnode/fntcache.cxx(540): note: '_Ty 
std::min(std::initializer_list<_Elem>)': expects 1 arguments - 2 provided
> 
C:\PROGRA~1\MICROS~3\2022\Preview\VC\Tools\MSVC\1438~1.331\Include\utility(105):
 note: or   '_Ty std::min(std::initializer_list<_Elem>,_Pr)'
> sw/source/core/txtnode/fntcache.cxx(540): note: '_Ty 
std::min(std::initializer_list<_Elem>,_Pr)': could not deduce template argument 
for 'std::initializer_list<_Elem>' from 'sal_Int32'
> 
C:\PROGRA~1\MICROS~3\2022\Preview\VC\Tools\MSVC\1438~1.331\Include\utility(98): 
note: or   'const _Ty &std::min(const _Ty &,const _Ty &) noexcept()'
> sw/source/core/txtnode/fntcache.cxx(540): note: 'const _Ty 
&std::min(const _Ty &,const _Ty &) noexcept()': template parameter '_Ty' 
is ambiguous
> sw/source/core/txtnode/fntcache.cxx(540): note: could be 'tools::Long'
> sw/source/core/txtnode/fntcache.cxx(540): note: or   'sal_Int32'
> sw/source/core/txtnode/fntcache.cxx(540): note: 'const _Ty 
&std::min(const _Ty &,const _Ty &) noexcept()': could not deduce template 
argument for 'const _Ty &' from 'tools::Long'
> 
C:\PROGRA~1\MICROS~3\2022\Preview\VC\Tools\MSVC\1438~1.331\Include\utility(88): 
note: or   'const _Ty &std::min(const _Ty &,const _Ty &,_Pr) 
noexcept()'
> sw/source/core/txtnode/fntcache.cxx(540): note: 'const _Ty 
&std::min(const _Ty &,const _Ty &,_Pr) noexcept()': expects 3 arguments - 
2 provided

Change-Id: I9af33041a81190998303aec2795fe03da7e2f119
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157858
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 
(cherry picked from commit a0b003257aa87d34a4403531798d0074e19a18ac)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159240
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Aron Budea 

diff --git a/sw/source/core/txtnode/fntcache.cxx 
b/sw/source/core/txtnode/fntcache.cxx
index bc5dd603a433..4e9f2a1c1dc7 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -516,7 +516,7 @@ void SwFntObj::GuessLeading( const SwViewShell&
 {
 // If the Leading on the Window is also 0, then it has to stay
 // that way (see also StarMath).
-tools::Long nTmpLeading = aWinMet.GetInternalLeading();
+sal_Int32 nTmpLeading = aWinMet.GetInternalLeading();
 if( nTmpLeading <= 0 )
 {
 pWin->SetFont( rMet );
@@ -537,7 +537,7 @@ void SwFntObj::GuessLeading( const SwViewShell&
 // Those who lie about their Leading, may lie about their
 // Ascent/Descent as well, hence the Font will be lowered a
 // little without changing its height.
-tools::Long nDiff = std::min( rMet.GetDescent() - 
aWinMet.GetDescent(),
+sal_Int32 nDiff = std::min( rMet.GetDescent() - 
aWinMet.GetDescent(),
 aWinMet.GetAscent() - rMet.GetAscent() - nTmpLeading );
 if( nDiff > 0 )
 {


[Libreoffice-commits] core.git: cui/source editeng/source include/editeng include/svx sc/source sd/source starmath/source sw/source

2023-11-11 Thread Noel Grandin (via logerrit)
 cui/source/dialogs/SpellDialog.cxx|7 ---
 editeng/source/editeng/editeng.cxx|4 ++--
 editeng/source/editeng/impedit.hxx|8 
 editeng/source/outliner/outliner.cxx  |4 ++--
 include/editeng/editeng.hxx   |5 +++--
 include/editeng/outliner.hxx  |5 +++--
 include/svx/svdedxv.hxx   |2 +-
 sc/source/ui/drawfunc/drtxtob.cxx |1 +
 sc/source/ui/drawfunc/futext.cxx  |1 +
 sc/source/ui/view/editsh.cxx  |1 +
 sd/source/ui/annotations/annotationwindow.cxx |1 +
 sd/source/ui/func/fubullet.cxx|5 +++--
 sd/source/ui/func/fuinsfil.cxx|1 +
 sd/source/ui/view/drtxtob.cxx |1 +
 sd/source/ui/view/outlnvsh.cxx|1 +
 sd/source/ui/view/viewshel.cxx|1 +
 starmath/source/document.cxx  |1 +
 starmath/source/view.cxx  |1 +
 sw/source/uibase/docvw/AnnotationWin.cxx  |1 +
 sw/source/uibase/docvw/AnnotationWin2.cxx |1 +
 sw/source/uibase/shells/annotsh.cxx   |1 +
 sw/source/uibase/shells/drwtxtsh.cxx  |1 +
 22 files changed, 36 insertions(+), 18 deletions(-)

New commits:
commit 9bba3a604d12566bfb5e8ab8d2788fe8d3690a96
Author: Noel Grandin 
AuthorDate: Wed Nov 8 18:24:07 2023 +0200
Commit: Noel Grandin 
CommitDate: Sat Nov 11 11:03:58 2023 +0100

use more concrete type in ImpEditEngine::SetUndoManager

instead of dynamic_cast'ing to the type we want, and __ignoring__ the
parameter if it is not, just adjust the type that we want, which
luckily everything is already sending

Change-Id: If083e11c9818cdcae199afc1261efbdb652e1c76
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159295
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/cui/source/dialogs/SpellDialog.cxx 
b/cui/source/dialogs/SpellDialog.cxx
index 67de5235d1ad..80e1301dcaf8 100644
--- a/cui/source/dialogs/SpellDialog.cxx
+++ b/cui/source/dialogs/SpellDialog.cxx
@@ -26,6 +26,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -2078,7 +2079,7 @@ svx::SpellPortions 
SentenceEditWindow_Impl::CreateSpellPortions() const
 
 void SentenceEditWindow_Impl::Undo()
 {
-SfxUndoManager& rUndoMgr = m_xEditEngine->GetUndoManager();
+EditUndoManager& rUndoMgr = m_xEditEngine->GetUndoManager();
 DBG_ASSERT(GetUndoActionCount(), "no undo actions available" );
 if(!GetUndoActionCount())
 return;
@@ -2097,13 +2098,13 @@ void SentenceEditWindow_Impl::Undo()
 
 void SentenceEditWindow_Impl::ResetUndo()
 {
-SfxUndoManager& rUndo = m_xEditEngine->GetUndoManager();
+EditUndoManager& rUndo = m_xEditEngine->GetUndoManager();
 rUndo.Clear();
 }
 
 void SentenceEditWindow_Impl::AddUndoAction( std::unique_ptr 
pAction )
 {
-SfxUndoManager& rUndoMgr = m_xEditEngine->GetUndoManager();
+EditUndoManager& rUndoMgr = m_xEditEngine->GetUndoManager();
 rUndoMgr.AddUndoAction(std::move(pAction));
 GetSpellDialog()->m_xUndoPB->set_sensitive(true);
 }
diff --git a/editeng/source/editeng/editeng.cxx 
b/editeng/source/editeng/editeng.cxx
index 728609cd94e2..d27a38665950 100644
--- a/editeng/source/editeng/editeng.cxx
+++ b/editeng/source/editeng/editeng.cxx
@@ -112,12 +112,12 @@ bool EditEngine::IsInUndo() const
 return pImpEditEngine->IsInUndo();
 }
 
-SfxUndoManager& EditEngine::GetUndoManager()
+EditUndoManager& EditEngine::GetUndoManager()
 {
 return pImpEditEngine->GetUndoManager();
 }
 
-SfxUndoManager* EditEngine::SetUndoManager(SfxUndoManager* pNew)
+EditUndoManager* EditEngine::SetUndoManager(EditUndoManager* pNew)
 {
 return pImpEditEngine->SetUndoManager(pNew);
 }
diff --git a/editeng/source/editeng/impedit.hxx 
b/editeng/source/editeng/impedit.hxx
index 6fcb58dc..d20ed8a1caae 100644
--- a/editeng/source/editeng/impedit.hxx
+++ b/editeng/source/editeng/impedit.hxx
@@ -838,7 +838,7 @@ public:
 ImpEditEngine&  operator=(const ImpEditEngine&) = delete;
 
 inline EditUndoManager& GetUndoManager();
-inline SfxUndoManager* SetUndoManager(SfxUndoManager* pNew);
+inline EditUndoManager* SetUndoManager(EditUndoManager* pNew);
 
 // @return the previous bUpdateLayout state
 boolSetUpdateLayout( bool bUpdate, EditView* pCurView 
= nullptr, bool bForceUpdate = false );
@@ -1295,16 +1295,16 @@ inline EditUndoManager& ImpEditEngine::GetUndoManager()
 return *pUndoManager;
 }
 
-inline SfxUndoManager* ImpEditEngine::SetUndoManager(SfxUndoManager* pNew)
+inline EditUndoManager* ImpEditEngine::SetUndoManager(EditUndoManager* pNew)
 {
-SfxUndoManager* pRetval = pUndoManager;
+EditUndoManager* pRetval = pUndoManager;
 
 if(pUndoManager)
 {
 pUndoManager->SetEditEngine(nullptr);
 }
 
-pUndoManager = dynamic_cast< E

Re: URL links in bundled template

2023-11-11 Thread Laurent Balland
Thanks for your reply. I propose to remove links and texts about credits 
on slides, and to move them in meta.xml


  
    Ahmad Bayhaqi Saputra
    Grey Elegant
    Credits:

Illustrations by Pixeltrue 
https://icons8.com/illustrations/author/5ec7b0e101d0360016f3d1b3 on 
icon8 (master slide "Table of content")
Photo by Dave Hoefler https://unsplash.com/fr/@iamthedave on Unsplash 
https://unsplash.com/fr/licence (slide 9)

    
  

Does it make sense?

Have a good day

Laurent

Le 06/11/2023 à 07:43, Heiko Tietze a écrit :
The original page from the Indonesian contest 
https://lumbung.libreoffice.id/ is down too. And ultimately it is a 
general question whether or not to included credits for artwork 
contributions (the link could be removed; and Unsplash, or similar 
pages, are not needed at all). It's not uncommon to show names (KDE 
does on several places) but feels a bit weird since code contributions 
are never personalized ("this feature was brought to you by..."). I 
tend to vote for removal.


CC: design mailing list

On 04.11.23 16:18, Laurent Balland wrote:

Hello,

While I was updating "Grey Elegant" Impress template for bug 158022 
[1], I noticed that


- on master page "Table of content", there are two URL links ([2] and 
[3]) for the credits of the illustration


- on last slide, there are two URL links ([4] and [5]) for the 
credits of the photo


[2] seems empty and [4] is a broken link. [3] and [5] look like 
commercial links


Shall we preserve them? "Vintage" Impress template uses meta.xml [6] 
to take care of such information.


Any opinion how we could deal with the credits used in bundled 
templates?


Best regards


Laurent


[1] https://bugs.documentfoundation.org/show_bug.cgi?id=158022

[2] https://icons8.com/illustrations/author/5ec7b0e101d0360016f3d1b3

[3] https://icons8.com/

[4] 
https://unsplash.com/@johnwestrock?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText


[5] 
https://unsplash.com/s/photos/landscape?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText


[6] 
https://opengrok.libreoffice.org/xref/core/extras/source/templates/presnt/Vintage/meta.xml?r=659acfbb#8