core.git: accessibility/source

2024-10-26 Thread Julien Nabet (via logerrit)
 accessibility/source/extended/textwindowaccessibility.cxx |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

New commits:
commit 1a1d67396c33fb768f67d9d1148de3ede205f25b
Author: Julien Nabet 
AuthorDate: Sat Oct 26 12:21:54 2024 +0200
Commit: Mike Kaganski 
CommitDate: Sun Oct 27 07:55:56 2024 +0100

tdf#163486: PVS: Array overrun is possible

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

diff --git a/accessibility/source/extended/textwindowaccessibility.cxx 
b/accessibility/source/extended/textwindowaccessibility.cxx
index 9021f85af610..a5c35ad4b056 100644
--- a/accessibility/source/extended/textwindowaccessibility.cxx
+++ b/accessibility/source/extended/textwindowaccessibility.cxx
@@ -1004,15 +1004,15 @@ Document::retrieveCharacterAttributes(
 
 // sort the attributes
 auto nLength = static_cast(aRes.getLength());
-std::unique_ptr pIndices( new sal_Int32[nLength] );
-std::iota(&pIndices[0], &pIndices[nLength], 0);
-std::sort(&pIndices[0], &pIndices[nLength],
+std::vector  pIndices(nLength);
+std::iota(pIndices.begin(), pIndices.end(), 0);
+std::sort(pIndices.begin(), pIndices.end(),
 [&aRes](sal_Int32 a, sal_Int32 b) { return aRes[a].Name < 
aRes[b].Name; });
 
 // create sorted sequences according to index array
 std::vector aNewValues;
 aNewValues.reserve(nLength);
-std::transform(&pIndices[0], &pIndices[nLength], 
std::back_inserter(aNewValues),
+std::transform(pIndices.begin(), pIndices.end(), 
std::back_inserter(aNewValues),
 [&aRes](const sal_Int32 nIdx) -> const css::beans::PropertyValue& { 
return aRes[nIdx]; });
 
 return comphelper::containerToSequence(aNewValues);


core.git: include/vcl vcl/source

2024-10-26 Thread Mike Kaganski (via logerrit)
 include/vcl/graph.hxx|1 
 vcl/source/gdi/graph.cxx |   48 ++-
 2 files changed, 16 insertions(+), 33 deletions(-)

New commits:
commit 0545d627c69e0724972c279b0a6c3ff622d7b822
Author: Mike Kaganski 
AuthorDate: Sun Oct 27 00:53:30 2024 +0500
Commit: Mike Kaganski 
CommitDate: Sun Oct 27 07:53:09 2024 +0100

Simplify a bit

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

diff --git a/include/vcl/graph.hxx b/include/vcl/graph.hxx
index c4046e178337..838b870bd7e7 100644
--- a/include/vcl/graph.hxx
+++ b/include/vcl/graph.hxx
@@ -83,6 +83,7 @@ class VCL_DLLPUBLIC Graphic
 private:
 std::shared_ptr mxImpGraphic;
 SAL_DLLPRIVATE void ImplTestRefCount();
+basegfx::B2DSize GetPPUnit(const MapMode& unit) const;
 
 public:
 SAL_DLLPRIVATE ImpGraphic* ImplGetImpGraphic() const { return 
mxImpGraphic.get(); }
diff --git a/vcl/source/gdi/graph.cxx b/vcl/source/gdi/graph.cxx
index 0325fa6a18ec..803ec4589680 100644
--- a/vcl/source/gdi/graph.cxx
+++ b/vcl/source/gdi/graph.cxx
@@ -17,6 +17,9 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include 
+
+#include 
 #include 
 #include 
 #include 
@@ -381,45 +384,24 @@ void Graphic::SetPrefMapMode( const MapMode& rPrefMapMode 
)
 mxImpGraphic->setPrefMapMode( rPrefMapMode );
 }
 
-basegfx::B2DSize Graphic::GetPPI() const
+basegfx::B2DSize Graphic::GetPPUnit(const MapMode& unit) const
 {
-double nGrfDPIx;
-double nGrfDPIy;
-
-const MapMode aGrfMap(GetPrefMapMode());
-const Size aGrfPixelSize(GetSizePixel());
 const Size aGrfPrefMapModeSize(GetPrefSize());
-if (aGrfMap.GetMapUnit() == MapUnit::MapInch)
-{
-nGrfDPIx = aGrfPixelSize.Width() / ( 
static_cast(aGrfMap.GetScaleX()) * aGrfPrefMapModeSize.Width() );
-nGrfDPIy = aGrfPixelSize.Height() / ( 
static_cast(aGrfMap.GetScaleY()) * aGrfPrefMapModeSize.Height() );
-}
-else
-{
-const Size aGrf1000thInchSize = OutputDevice::LogicToLogic(
-aGrfPrefMapModeSize, aGrfMap, MapMode(MapUnit::Map1000thInch));
-nGrfDPIx = aGrf1000thInchSize.Width() == 0
-? 0.0 : 1000.0 * aGrfPixelSize.Width() / 
aGrf1000thInchSize.Width();
-nGrfDPIy = aGrf1000thInchSize.Height() == 0
-? 0.0 : 1000.0 * aGrfPixelSize.Height() / 
aGrf1000thInchSize.Height();
-}
-
-return basegfx::B2DSize(nGrfDPIx, nGrfDPIy);
+if (aGrfPrefMapModeSize.IsEmpty())
+return {};
+const Size aGrfPixelSize(GetSizePixel());
+basegfx::B2DHomMatrix toPixels = basegfx::utils::createScaleB2DHomMatrix(
+double(aGrfPixelSize.Width()) / aGrfPrefMapModeSize.Width(),
+double(aGrfPixelSize.Height()) / aGrfPrefMapModeSize.Height());
+toPixels *= OutputDevice::LogicToLogic(unit, GetPrefMapMode());
+return toPixels * basegfx::B2DSize(1, 1);
 }
 
+basegfx::B2DSize Graphic::GetPPI() const { return 
GetPPUnit(MapMode(MapUnit::MapInch)); }
+
 basegfx::B2DSize Graphic::GetPPM() const
 {
-const MapMode aGrfMap(GetPrefMapMode());
-const Size aGrfPixelSize(GetSizePixel());
-const Size aGrfPrefMapModeSize(GetPrefSize());
-const Size aGrf100thMMSize = OutputDevice::LogicToLogic(
-aGrfPrefMapModeSize, aGrfMap, MapMode(MapUnit::Map100thMM));
-double nGrfDPMx = aGrf100thMMSize.Width() == 0
-? 0.0 : 10.0 * aGrfPixelSize.Width() / aGrf100thMMSize.Width();
-double nGrfDPMy = aGrf100thMMSize.Height() == 0
-? 0.0 : 10.0 * aGrfPixelSize.Height() / aGrf100thMMSize.Height();
-
-return basegfx::B2DSize(nGrfDPMx, nGrfDPMy);
+return GetPPUnit(MapMode(MapUnit::MapMM, {}, { 1000, 1 }, { 1000, 1 }));
 }
 
 Size Graphic::GetSizePixel( const OutputDevice* pRefDevice ) const


Re: How to write ORG.OPENOFFICE.EASTERSUNDAY for ODF 1.3 and pure EASTERSUNDAY for ODF 1.4?

2024-10-26 Thread Mike Kaganski

On 27.10.2024 5:27, Regina Henschel wrote:

Hi Mike, hi all,

Mike Kaganski schrieb am 21.10.2024 um 09:19:

Hi Regina!

On 20.10.2024 23:20, Regina Henschel wrote:
it would be necessary to write ORG.OFFICE.EASTERSUNDAY when writing 
in ODF versions 1.3 and before and write pure EASTERSUNDAY in case 
of ODF 1.4. But I see no way to distinguish between ODF 1.3 and ODF 
1.4 in the export filter. I see only a general mxSymbols->isODFF() 
in ScCompiler::ParseOpCode().



It seems to me, that the export of formula is done in 
ScXMLExport::WriteCell (sc/source/filter/xml/xmlexprt.cxx); and 
there, you have access to getSaneDefaultVersion().


Hope this helps.



You can indeed get the version to be saved to in xmlexprt.cxx. But 
where to evaluate it?


Evaluating it directly in sc/source/filter/xml/xmlexprt.cxx would 
mean, that you have to tweak the result of
  #3218 OUString aFormula = 
pFormulaCell->GetFormula(*mpCompileFormulaCxt);
so that each occurrence of EASTERSUNDAY is replaced by 
ORG.OPENOFFICE.EASTERSUNDAY.
Besides the fact that EASTERSUNDAY as text and not as formula name 
would be replaced too, I think it is not a good idea to check each 
formula in a spreadsheet to catch the EASTERSUNDAY cases.


Such approach seems completely wrong to me also because we will get 
the same problem again with the new functions XLOOKUP, FILTER, UNIQUE, 
etc. when the change from ODF 1.4 to ODF 1.5 is made.


I would prefer a solution, that corrects the string, when the string 
is created from the opcode ocEasterSunday.


When you look where the string is generated, you get the steps:
ScFormulaCell::GetFormula() in sc/source/core/data/formulacell.cxx
FormulaCompiler::CreateStringFromTokenArray() in 
formula/source/core/api/FormulaCompiler.cxx

FormulaCompiler::CreateStringFromToken()
mxSymbols->getSymbol(eOp), which uses the map in 
formula/inc/core_resource.hrc.


You could pass on the ODF version and the fact that you are exporting 
to ODF to the method GetFormula(). That could be done as new parameter 
or by adding members to CompileFormulaContext.


I believe that this (the version of the ODF, or extending the 
FormulaGrammar enum) would be the correct approach.




But the method CreateStringFromTokenArray() is not only called from 
export, but in other, totally unrelated situations, e.g. when the 
window with the sheet gets focus.


It needs that new argument (the ODF version), too.



Do we need a totally new method CreateStringFromTokenArrayForODFExport()?

I'm still looking for your ideas.

Kind regards,
Regina





Zipporah Ondiba (ZOK)

2024-10-26 Thread Zipporah Ondiba
All of my past & future contributions to LibreOffice may be
   licensed under the MPLv2/LGPLv3+ dual license.


core.git: include/filter

2024-10-26 Thread Lue_lueita (via logerrit)
 include/filter/msfilter/classids.hxx |5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

New commits:
commit a95b97adaa4a4a7ed76c832df9ed9ae64329a787
Author: Lue_lueita 
AuthorDate: Fri Oct 25 19:51:38 2024 +0100
Commit: Ilmari Lauhakangas 
CommitDate: Sun Oct 27 06:35:23 2024 +0100

tdf#143148 Use #pragma once instead of include guards

Change-Id: I045cfd010401ed4131b28aab2e94308c226cc154
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175658
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas 

diff --git a/include/filter/msfilter/classids.hxx 
b/include/filter/msfilter/classids.hxx
index 8394a716b0f7..2d3274273dab 100644
--- a/include/filter/msfilter/classids.hxx
+++ b/include/filter/msfilter/classids.hxx
@@ -7,8 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#ifndef INCLUDED_FILTER_MSFILTER_CLASSIDS_HXX
-#define INCLUDED_FILTER_MSFILTER_CLASSIDS_HXX
+#pragma once
 
 #define MSO_EQUATION2_CLASSID \
 0x00021700L, 0x, 0x, \
@@ -42,6 +41,4 @@
 0x64818d11L, 0x4f9b, 0x11cf, \
 0x86, 0xea, 0x00, 0xaa, 0x00, 0xb9, 0x29, 0xe8
 
-#endif // INCLUDED_FILTER_MSFILTER_CLASSIDS_HXX
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


core.git: Branch 'libreoffice-24-2-7' - drawinglayer/source

2024-10-26 Thread Mike Kaganski (via logerrit)
 drawinglayer/source/processor2d/vclprocessor2d.cxx |3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

New commits:
commit 02c0295bbfba4b41b3fdd5bae3218b8d10e443d0
Author: Mike Kaganski 
AuthorDate: Fri Apr 26 01:00:21 2024 +0500
Commit: Adolfo Jayme Barrientos 
CommitDate: Sat Oct 26 10:40:48 2024 +0200

tdf#157240: also set font color together with font

Commit b008831a5545e5a777d77547ef96b9798d795f30 (tdf#152990 set the font
after the MapMode is (potentially) set, 2023-01-14) had moved setting of
font forward, but left setting the font color behind. This fixed that.

Change-Id: I73fadc7c139da3b6f84b7fc875c585d02fc1c719
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166654
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 
(cherry picked from commit 1112a2bea0cb260fd64360b679c3f0f5c495e16e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175486
Reviewed-by: Xisco Fauli 
(cherry picked from commit 69d8872fafbc6eab9f895f5c84355fa77e71ca3e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175490
Reviewed-by: Adolfo Jayme Barrientos 
Reviewed-by: Michael Stahl 
Tested-by: Adolfo Jayme Barrientos 

diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx 
b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index 45127a454008..e442b2a6f0f8 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -328,8 +328,6 @@ void 
VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D(
 mpOutputDevice->SetLayoutMode(nRTLLayoutMode);
 }
 
-mpOutputDevice->SetTextColor(Color(aRGBFontColor));
-
 OUString aText(rTextCandidate.getText());
 sal_Int32 nPos = rTextCandidate.getTextPosition();
 sal_Int32 nLen = rTextCandidate.getTextLength();
@@ -443,6 +441,7 @@ void 
VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D(
 // tdf#152990 set the font after the MapMode is (potentially) set 
so canvas uses the desired
 // font size
 mpOutputDevice->SetFont(aFont);
+mpOutputDevice->SetTextColor(Color(aRGBFontColor));
 
 if (!aDXArray.empty())
 {


core.git: 2 commits - vcl/inc vcl/Library_vclplug_qt5.mk vcl/Library_vclplug_qt6.mk vcl/qt5 vcl/qt6

2024-10-26 Thread Michael Weghorn (via logerrit)
 vcl/Library_vclplug_qt5.mk   |2 +
 vcl/Library_vclplug_qt6.mk   |2 +
 vcl/inc/qt5/QtHyperlinkLabel.hxx |   37 +
 vcl/inc/qt5/QtInstanceBuilder.hxx|2 -
 vcl/inc/qt5/QtInstanceLinkButton.hxx |   31 +
 vcl/inc/qt6/QtHyperlinkLabel.hxx |   12 
 vcl/inc/qt6/QtInstanceLinkButton.hxx |   12 
 vcl/qt5/QtBuilder.cxx|   13 
 vcl/qt5/QtHyperlinkLabel.cxx |   34 +++
 vcl/qt5/QtInstanceBuilder.cxx|9 --
 vcl/qt5/QtInstanceLinkButton.cxx |   51 +++
 vcl/qt6/QtHyperlinkLabel.cxx |   12 
 vcl/qt6/QtInstanceLinkButton.cxx |   12 
 13 files changed, 225 insertions(+), 4 deletions(-)

New commits:
commit 4689363f7259a4364c38d40664bd9cf3d945ed30
Author: Michael Weghorn 
AuthorDate: Fri Oct 25 20:45:39 2024 +0200
Commit: Michael Weghorn 
CommitDate: Sat Oct 26 13:11:35 2024 +0200

tdf#130857 qt weld: Add child layouts to grid

If a QLayout object is created as the child of a
QGridLayout object (e.g. a "GtkBox" as the direct child
of a "GtkGrid" in a .ui file), add that layout to the
QGridLayout - initially in a new row, but rearranging
that will be done as part of processing the "packing"
properties of the children once that is implemented
for layouts as well. (See  QtBuilder::applyPackingProperties
and QtBuilder::applyGridPackingProperties where this
is currently only implemented for QWidget children).

This will be needed e.g. for the "Help" -> "About LibreOfficeDev"
dialog.

Change-Id: I292134b26efa0dfe5c8fe0684dc02dece338d579
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175659
Tested-by: Jenkins
Reviewed-by: Michael Weghorn 

diff --git a/vcl/qt5/QtBuilder.cxx b/vcl/qt5/QtBuilder.cxx
index 31e86f0b2543..d59f76a3ed35 100644
--- a/vcl/qt5/QtBuilder.cxx
+++ b/vcl/qt5/QtBuilder.cxx
@@ -243,6 +243,8 @@ QObject* QtBuilder::makeObject(QObject* pParent, 
std::u16string_view sName, cons
 // add layout to parent layout
 if (QBoxLayout* pParentBoxLayout = 
qobject_cast(pParentLayout))
 pParentBoxLayout->addLayout(pLayout);
+else if (QGridLayout* pParentGridLayout = 
qobject_cast(pParentLayout))
+pParentGridLayout->addLayout(pLayout, 
pParentGridLayout->rowCount(), 0);
 }
 
 m_aChildren.emplace_back(sID, pObject);
commit 0846977a2280824006fb1620706cc785802336e3
Author: Michael Weghorn 
AuthorDate: Fri Oct 25 20:41:48 2024 +0200
Commit: Michael Weghorn 
CommitDate: Sat Oct 26 13:11:19 2024 +0200

tdf#130857 qt weld: Add a QtInstanceLinkButton

Add a new QtInstanceLinkButton class that is
the weld::LinkButton implementing using a native
Qt widget.

QLabel can be used to display a hyperlink, as it
supports the HTML syntax for the text, so using ,

QLabel myLabel;
myLabel.setText(QLatin1String("https://www.libreoffice.org";>LibreOffice Website"));

can be used to let the QLabel handle a hyperlink.

To make it simple to set this as needed for a QLabel,
implement a new QLabel subclass called QtHyperlinkLabel
that provides convenient getters and setters to set
the displayed text and the link target, and takes
care of setting the QLabel text based on that as needed.

Implement QtInstanceLinkButton using an instance
of that class as the widget and create an instance of
that class in QtBuilder when encountering a "GtkLinkButton"
object while processing a .ui file and evaluate
the "label" and "uri" properties.

Change-Id: I71d28b6e5e3cbd110ec5b3d1232d55e9d2bb8a1b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175656
Reviewed-by: Michael Weghorn 
Tested-by: Jenkins

diff --git a/vcl/Library_vclplug_qt5.mk b/vcl/Library_vclplug_qt5.mk
index 2a60b474b2d1..2a8441a566b0 100644
--- a/vcl/Library_vclplug_qt5.mk
+++ b/vcl/Library_vclplug_qt5.mk
@@ -93,6 +93,7 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_qt5,\
 vcl/qt5/QtGraphics_Controls \
 vcl/qt5/QtGraphics_GDI \
 vcl/qt5/QtGraphics_Text \
+vcl/qt5/QtHyperlinkLabel \
 vcl/qt5/QtInstance \
 vcl/qt5/QtInstance_Print \
 vcl/qt5/QtInstanceBuilder \
@@ -104,6 +105,7 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_qt5,\
 vcl/qt5/QtInstanceEntry \
 vcl/qt5/QtInstanceFrame \
 vcl/qt5/QtInstanceImage \
+vcl/qt5/QtInstanceLinkButton \
 vcl/qt5/QtInstanceMessageDialog \
 vcl/qt5/QtInstanceLabel \
 vcl/qt5/QtInstanceRadioButton \
diff --git a/vcl/Library_vclplug_qt6.mk b/vcl/Library_vclplug_qt6.mk
index 485db0a19768..e5247de86c4e 100644
--- a/vcl/Library_vclplug_qt6.mk
+++ b/vcl/Library_vclplug_qt6.mk
@@ -92,6 +92,7 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_qt6,\
 vcl/qt6/QtGraphics_Controls \
 vcl/q

core.git: vcl/qt5

2024-10-26 Thread Michael Weghorn (via logerrit)
 vcl/qt5/QtInstanceDialog.cxx |5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

New commits:
commit b520cf15a3569d683ac39edb7fb0202317b927cf
Author: Michael Weghorn 
AuthorDate: Fri Oct 25 20:55:20 2024 +0200
Commit: Michael Weghorn 
CommitDate: Sat Oct 26 13:11:48 2024 +0200

tdf#130857 qt weld: Allow null func for async dialog

Drop the assert that a function to call is set
in QtInstanceDialog::dialogFinished and just skip
that step if none is set.

While `m_aRunAsyncFunc` gets set in both
QtInstanceDialog::runAsync variants and
QtInstanceDialog::dialogFinished shouldn't get
called without these having been called first,
QtInstanceDialog::runAsync can explicitly be called with
null for the function, which is the case e.g. for the
"Help" -> "About" dialog (s. the SID_ABOUT case in
SfxApplication::MiscExec_Impl), so that assert
triggers in a WIP branch for implementing support
for that dialog using native Qt widgets when the
dialog is closed.

Change-Id: I18578a4b1780b05f59817ad85eee3c3a20ba3b41
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175660
Reviewed-by: Michael Weghorn 
Tested-by: Jenkins

diff --git a/vcl/qt5/QtInstanceDialog.cxx b/vcl/qt5/QtInstanceDialog.cxx
index 76efd3eca167..059a8fd5f6e5 100644
--- a/vcl/qt5/QtInstanceDialog.cxx
+++ b/vcl/qt5/QtInstanceDialog.cxx
@@ -148,8 +148,6 @@ void QtInstanceDialog::dialogFinished(int nResult)
 return;
 }
 
-assert(m_aRunAsyncFunc);
-
 disconnect(m_pDialog.get(), &QDialog::finished, this, 
&QtInstanceDialog::dialogFinished);
 
 // use local variables for these, as members might have got de-allocated 
by the time they're reset
@@ -160,7 +158,8 @@ void QtInstanceDialog::dialogFinished(int nResult)
 m_xRunAsyncDialogController.reset();
 m_xRunAsyncDialog.reset();
 
-aFunc(nResult);
+if (aFunc)
+aFunc(nResult);
 
 xRunAsyncDialogController.reset();
 xRunAsyncDialog.reset();


core.git: vcl/qt5

2024-10-26 Thread Michael Weghorn (via logerrit)
 vcl/qt5/QtBuilder.cxx |   45 +
 1 file changed, 9 insertions(+), 36 deletions(-)

New commits:
commit 3e28b4f0c97d011cf4222941f019ce05fe6b0313
Author: Michael Weghorn 
AuthorDate: Fri Oct 25 21:21:25 2024 +0200
Commit: Michael Weghorn 
CommitDate: Sat Oct 26 13:12:05 2024 +0200

tdf#130857 qt weld: Simplify QtBuilder::applyGridPackingProperties

No longer try to retrieve the current row and column
of the widget in the QGridLayout and apply the "top-attach"
and "left-attach" properties to set the new row and column
separately.

Instead, assume (and assert), that both, the new row and column
properties are set, get them and then set the position using
both of them at the same time.

If any of the properties is missing, that most likely needs
to be fixed in the .ui file.

As a side note, something similar to the previous algorithm to
determine the grid position might be useful to implement
QtInstanceWidget::get_grid_left_attach etc. at some point.

Change-Id: I22e34275e3974f42ca3ee43fa6cb66624e917443
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175661
Tested-by: Jenkins
Reviewed-by: Michael Weghorn 

diff --git a/vcl/qt5/QtBuilder.cxx b/vcl/qt5/QtBuilder.cxx
index d59f76a3ed35..9bb32a642288 100644
--- a/vcl/qt5/QtBuilder.cxx
+++ b/vcl/qt5/QtBuilder.cxx
@@ -350,44 +350,17 @@ void QtBuilder::applyGridPackingProperties(QObject& 
rCurrentChild, QGridLayout&
 if (!rCurrentChild.isWidgetType())
 return;
 
-QWidget& rCurrentWidget = static_cast(rCurrentChild);
+assert(rPackingProperties.contains(u"left-attach"_ustr)
+   && "left-attach property missing for grid item");
+assert(rPackingProperties.contains(u"top-attach"_ustr)
+   && "top-attach property missing for grid item");
 
-int nCurrentRow = -1;
-int nCurrentColumn = -1;
-for (int i = 0; i < rGrid.rowCount(); i++)
-{
-for (int j = 0; j < rGrid.columnCount(); j++)
-{
-if (QLayoutItem* pLayoutItem = rGrid.itemAtPosition(i, j))
-{
-if (pLayoutItem->widget() == &rCurrentWidget)
-{
-nCurrentRow = i;
-nCurrentColumn = j;
-break;
-}
-}
-}
-}
-assert(nCurrentRow >= 0 && nCurrentColumn >= 0 && "Widget not contained in 
parent grid layout");
+const sal_Int32 nColumn = 
rPackingProperties.at(u"left-attach"_ustr).toInt32();
+const sal_Int32 nRow = rPackingProperties.at(u"top-attach"_ustr).toInt32();
 
-for (auto const & [ rKey, rValue ] : rPackingProperties)
-{
-if (rKey == u"left-attach")
-{
-const sal_Int32 nNewColumn = rValue.toInt32();
-rGrid.removeWidget(&rCurrentWidget);
-rGrid.addWidget(&rCurrentWidget, nCurrentRow, nNewColumn);
-nCurrentColumn = nNewColumn;
-}
-else if (rKey == u"top-attach")
-{
-const sal_Int32 nNewRow = rValue.toInt32();
-rGrid.removeWidget(&rCurrentWidget);
-rGrid.addWidget(&rCurrentWidget, nNewRow, nCurrentColumn);
-nCurrentRow = nNewRow;
-}
-}
+QWidget& rCurrentWidget = static_cast(rCurrentChild);
+rGrid.removeWidget(&rCurrentWidget);
+rGrid.addWidget(&rCurrentWidget, nRow, nColumn);
 }
 
 void QtBuilder::applyPackingProperties(QObject* pCurrentChild, QObject* 
pParent,


New Defects reported by Coverity Scan for LibreOffice

2024-10-26 Thread scan-admin
Hi,

Please find the latest report on new defect(s) introduced to LibreOffice found 
with Coverity Scan.

1 new defect(s) introduced to LibreOffice found with Coverity Scan.
57 defect(s), reported by Coverity Scan earlier, were marked fixed in the 
recent build analyzed by Coverity Scan.

New defect(s) Reported-by: Coverity Scan
Showing 1 of 1 defect(s)


** CID 1633842:  Uninitialized members  (UNINIT_CTOR)
/sw/source/core/crsr/crsrsh.cxx: 3415 in SwCursorShell::SwCursorShell(SwDoc &, 
vcl::Window *, const SwViewOption *)()



*** CID 1633842:  Uninitialized members  (UNINIT_CTOR)
/sw/source/core/crsr/crsrsh.cxx: 3415 in SwCursorShell::SwCursorShell(SwDoc &, 
vcl::Window *, const SwViewOption *)()
3409 
3410 m_pVisibleCursor = new SwVisibleCursor( this );
3411 m_bMacroExecAllowed = true;
3412 
3413 m_aLayoutIdle.SetPriority(TaskPriority::LOWEST);
3414 m_aLayoutIdle.SetInvokeHandler(LINK(this, SwCursorShell, 
DoLayoutIdle));
>>> CID 1633842:  Uninitialized members  (UNINIT_CTOR)
>>> Non-static class member "m_bIsCursorPosChanged" is not initialized in 
>>> this constructor nor in any functions that it calls.
3415 }
3416 
3417 SwCursorShell::~SwCursorShell()
3418 {
3419 m_aLayoutIdle.Stop();
3420 



To view the defects in Coverity Scan visit, 
https://u15810271.ct.sendgrid.net/ls/click?upn=u001.AxU2LYlgjL6eX23u9ErQy-2BKADyCpvUKOL6EWmZljiu6VvXBlQRUbS683tC8265rGNPXqJ1ffcoLZCnTuJFQbNcTEkb4XaEQkzovKhJ5DB3c-3D0Sug_A9M4dSy7guk8NP6DcfgslOyvJRzavztVIKj6nRqYjYpWom7SJFyX0y710bz0kUGts6P6wDN9OVg2JA-2B8a1s48-2BbciXVzIJ3bSlcLBMz2GIm4pjBpfLKlGTXUopbvKVeXQYwWUqtZKUt8OOiO0N8lzy5xBZMnWq8UdieXdgsQNXvPt-2FcLDL-2F0gyH5dZ2gJIPEB-2FZBfb1NOXZmBPEnKFq2I7uj3CMpjzPJkEGo-2BXJgAVA-3D



core.git: accessibility/source

2024-10-26 Thread Julien Nabet (via logerrit)
 accessibility/source/extended/textwindowaccessibility.cxx |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 6130b0f8cdc5bddbf96ea27a77882835b233c099
Author: Julien Nabet 
AuthorDate: Sat Oct 26 11:38:51 2024 +0200
Commit: Julien Nabet 
CommitDate: Sat Oct 26 11:48:20 2024 +0200

Revert "tdf#163486: PVS: Array overrun is possible"

This reverts commit 433eb742c0ff81ff568e4a5f469a6ad4c827b8f5.

Reason for revert: see Mike's comment

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

diff --git a/accessibility/source/extended/textwindowaccessibility.cxx 
b/accessibility/source/extended/textwindowaccessibility.cxx
index 6f80a7a8f86f..9021f85af610 100644
--- a/accessibility/source/extended/textwindowaccessibility.cxx
+++ b/accessibility/source/extended/textwindowaccessibility.cxx
@@ -1005,14 +1005,14 @@ Document::retrieveCharacterAttributes(
 // sort the attributes
 auto nLength = static_cast(aRes.getLength());
 std::unique_ptr pIndices( new sal_Int32[nLength] );
-std::iota(&pIndices[0], &pIndices[nLength-1], 0);
-std::sort(&pIndices[0], &pIndices[nLength-1],
+std::iota(&pIndices[0], &pIndices[nLength], 0);
+std::sort(&pIndices[0], &pIndices[nLength],
 [&aRes](sal_Int32 a, sal_Int32 b) { return aRes[a].Name < 
aRes[b].Name; });
 
 // create sorted sequences according to index array
 std::vector aNewValues;
 aNewValues.reserve(nLength);
-std::transform(&pIndices[0], &pIndices[nLength-1], 
std::back_inserter(aNewValues),
+std::transform(&pIndices[0], &pIndices[nLength], 
std::back_inserter(aNewValues),
 [&aRes](const sal_Int32 nIdx) -> const css::beans::PropertyValue& { 
return aRes[nIdx]; });
 
 return comphelper::containerToSequence(aNewValues);


core.git: sc/source

2024-10-26 Thread Caolán McNamara (via logerrit)
 sc/source/core/data/queryevaluator.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit a599e493f36cdfbc211debce81fab022121bd71d
Author: Caolán McNamara 
AuthorDate: Fri Oct 25 21:45:10 2024 +0100
Commit: Caolán McNamara 
CommitDate: Sat Oct 26 11:52:15 2024 +0200

reduce some rtl_uString_acquire/rtl_uString_release pairs

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

diff --git a/sc/source/core/data/queryevaluator.cxx 
b/sc/source/core/data/queryevaluator.cxx
index cc1da17de152..85b51e5a71b3 100644
--- a/sc/source/core/data/queryevaluator.cxx
+++ b/sc/source/core/data/queryevaluator.cxx
@@ -337,7 +337,7 @@ svl::SharedString 
ScQueryEvaluator::getCellSharedString(const ScRefCellValue& rC
 if (it == mCachedSharedErrorStrings.end())
 {
 svl::SharedString str = 
mrStrPool.intern(ScGlobal::GetErrorString(error));
-auto pos = mCachedSharedErrorStrings.insert({ error, str });
+auto pos = mCachedSharedErrorStrings.insert({ error, 
std::move(str) });
 assert(pos.second); // inserted
 it = pos.first;
 }


core.git: Branch 'libreoffice-24-2' - vcl/inc vcl/osx

2024-10-26 Thread Patrick Luby (via logerrit)
 vcl/inc/osx/salframeview.h |4 +++
 vcl/osx/salframeview.mm|   53 +
 2 files changed, 57 insertions(+)

New commits:
commit 0e74b05b607d931d63762b7d8f69f59b457c1e17
Author: Patrick Luby 
AuthorDate: Mon Oct 14 18:26:27 2024 -0400
Commit: Adolfo Jayme Barrientos 
CommitDate: Sat Oct 26 10:49:35 2024 +0200

Stop hiding of child windows when dragged to a different screen

LibreOffice sets all dialog windows as a native child window of
its related document window in order to force the dialog windows
to always remain in front of their releated document window.

However, for some unknown reason, if a native child window is
dragged to a different screen than its native parent window,
macOS will hide the native child window when the drag has ended.

So, once the current drag has finished, unattach and reattach
the native child window to its native parent window. This should
cause macOS to force the native child window to jump back to the
same screen as its native parent window.

Change-Id: Ic859a44f4a0e113146f06cc5d311faf15b9c38dc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174914
Reviewed-by: Patrick Luby 
Tested-by: Jenkins
(cherry picked from commit 633fad32611e39620218319327428050405a6b1a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174944
Reviewed-by: Adolfo Jayme Barrientos 

diff --git a/vcl/inc/osx/salframeview.h b/vcl/inc/osx/salframeview.h
index 2b1a3f9baaed..dec2f03a42f3 100644
--- a/vcl/inc/osx/salframeview.h
+++ b/vcl/inc/osx/salframeview.h
@@ -30,9 +30,11 @@ enum class SalEvent;
 id mDraggingDestinationHandler;
 BOOLmbInWindowDidResize;
 NSTimer*mpLiveResizeTimer;
+NSTimer*mpResetParentWindowTimer;
 }
 -(id)initWithSalFrame: (AquaSalFrame*)pFrame;
 -(void)clearLiveResizeTimer;
+-(void)clearResetParentWindowTimer;
 -(void)dealloc;
 -(BOOL)canBecomeKeyWindow;
 -(void)displayIfNeeded;
@@ -80,6 +82,8 @@ enum class SalEvent;
 -(BOOL)accessibilityIsIgnored;
 -(BOOL)isAccessibilityElement;
 
+-(void)resetParentWindow;
+
 @end
 
 @interface SalFrameView : NSView 
diff --git a/vcl/osx/salframeview.mm b/vcl/osx/salframeview.mm
index dba377899838..e43f0d14df3e 100644
--- a/vcl/osx/salframeview.mm
+++ b/vcl/osx/salframeview.mm
@@ -221,6 +221,7 @@ static void updateWinDataInLiveResize(bool bInLiveResize)
 mDraggingDestinationHandler = nil;
 mbInWindowDidResize = NO;
 mpLiveResizeTimer = nil;
+mpResetParentWindowTimer = nil;
 mpFrame = pFrame;
 NSRect aRect = { { static_cast(pFrame->maGeometry.x()), 
static_cast(pFrame->maGeometry.y()) },
  { static_cast(pFrame->maGeometry.width()), 
static_cast(pFrame->maGeometry.height()) } };
@@ -271,9 +272,20 @@ static void updateWinDataInLiveResize(bool bInLiveResize)
 }
 }
 
+-(void)clearResetParentWindowTimer
+{
+if ( mpResetParentWindowTimer )
+{
+[mpResetParentWindowTimer invalidate];
+[mpResetParentWindowTimer release];
+mpResetParentWindowTimer = nil;
+}
+}
+
 -(void)dealloc
 {
 [self clearLiveResizeTimer];
+[self clearResetParentWindowTimer];
 [super dealloc];
 }
 
@@ -372,6 +384,18 @@ static void updateWinDataInLiveResize(bool bInLiveResize)
 
 if( mpFrame && AquaSalFrame::isAlive( mpFrame ) )
 mpFrame->screenParametersChanged();
+
+// Start timer to handle hiding of native child windows that have been
+// dragged to a different screen.
+if( !mpResetParentWindowTimer )
+{
+mpResetParentWindowTimer = [NSTimer scheduledTimerWithTimeInterval: 
0.1f target: self selector: @selector(resetParentWindow) userInfo: nil repeats: 
YES];
+if( mpResetParentWindowTimer )
+{
+[mpResetParentWindowTimer retain];
+[[NSRunLoop currentRunLoop] addTimer: mpResetParentWindowTimer 
forMode: NSEventTrackingRunLoopMode];
+}
+}
 }
 
 -(void)windowDidMove: (NSNotification*)pNotification
@@ -691,6 +715,35 @@ static void updateWinDataInLiveResize(bool bInLiveResize)
 [self windowDidResize:[pTimer userInfo]];
 }
 
+-(void)resetParentWindow
+{
+// Wait until the left mouse button has been released. Otherwise
+// the code below will cause native child windows to flicker while
+// dragging the window in a different screen than its parent window.
+if( [NSEvent pressedMouseButtons] & 0x1 )
+return;
+
+// Stop hiding of child windows when dragged to a different screen
+// LibreOffice sets all dialog windows as a native child window of
+// its related document window in order to force the dialog windows
+// to always remain in front of their releated document window.
+// However, for some unknown reason, if a native child window is
+// dragged to a different screen than its native parent window,
+// macOS will hide the native child window when the

core.git: Branch 'distro/collabora/co-24.04' - drawinglayer/source

2024-10-26 Thread Mike Kaganski (via logerrit)
 drawinglayer/source/processor2d/vclprocessor2d.cxx |3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

New commits:
commit 41803670f7870cdc21cca1f0bbbdb17dd12c2fda
Author: Mike Kaganski 
AuthorDate: Fri Apr 26 01:00:21 2024 +0500
Commit: Andras Timar 
CommitDate: Sat Oct 26 10:49:32 2024 +0200

tdf#157240: also set font color together with font

Commit b008831a5545e5a777d77547ef96b9798d795f30 (tdf#152990 set the font
after the MapMode is (potentially) set, 2023-01-14) had moved setting of
font forward, but left setting the font color behind. This fixed that.

Change-Id: I73fadc7c139da3b6f84b7fc875c585d02fc1c719
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166654
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 
(cherry picked from commit 1112a2bea0cb260fd64360b679c3f0f5c495e16e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175486
Reviewed-by: Xisco Fauli 
(cherry picked from commit 69d8872fafbc6eab9f895f5c84355fa77e71ca3e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175612
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Andras Timar 

diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx 
b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index 45127a454008..e442b2a6f0f8 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -328,8 +328,6 @@ void 
VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D(
 mpOutputDevice->SetLayoutMode(nRTLLayoutMode);
 }
 
-mpOutputDevice->SetTextColor(Color(aRGBFontColor));
-
 OUString aText(rTextCandidate.getText());
 sal_Int32 nPos = rTextCandidate.getTextPosition();
 sal_Int32 nLen = rTextCandidate.getTextLength();
@@ -443,6 +441,7 @@ void 
VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D(
 // tdf#152990 set the font after the MapMode is (potentially) set 
so canvas uses the desired
 // font size
 mpOutputDevice->SetFont(aFont);
+mpOutputDevice->SetTextColor(Color(aRGBFontColor));
 
 if (!aDXArray.empty())
 {


core.git: accessibility/source

2024-10-26 Thread Julien Nabet (via logerrit)
 accessibility/source/extended/textwindowaccessibility.cxx |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 433eb742c0ff81ff568e4a5f469a6ad4c827b8f5
Author: Julien Nabet 
AuthorDate: Sat Oct 26 09:54:00 2024 +0200
Commit: Julien Nabet 
CommitDate: Sat Oct 26 11:13:24 2024 +0200

tdf#163486: PVS: Array overrun is possible

Change-Id: I53c32af196caabb6084936eb4dd7f360b6226782
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175672
Reviewed-by: Julien Nabet 
Tested-by: Jenkins

diff --git a/accessibility/source/extended/textwindowaccessibility.cxx 
b/accessibility/source/extended/textwindowaccessibility.cxx
index 9021f85af610..6f80a7a8f86f 100644
--- a/accessibility/source/extended/textwindowaccessibility.cxx
+++ b/accessibility/source/extended/textwindowaccessibility.cxx
@@ -1005,14 +1005,14 @@ Document::retrieveCharacterAttributes(
 // sort the attributes
 auto nLength = static_cast(aRes.getLength());
 std::unique_ptr pIndices( new sal_Int32[nLength] );
-std::iota(&pIndices[0], &pIndices[nLength], 0);
-std::sort(&pIndices[0], &pIndices[nLength],
+std::iota(&pIndices[0], &pIndices[nLength-1], 0);
+std::sort(&pIndices[0], &pIndices[nLength-1],
 [&aRes](sal_Int32 a, sal_Int32 b) { return aRes[a].Name < 
aRes[b].Name; });
 
 // create sorted sequences according to index array
 std::vector aNewValues;
 aNewValues.reserve(nLength);
-std::transform(&pIndices[0], &pIndices[nLength], 
std::back_inserter(aNewValues),
+std::transform(&pIndices[0], &pIndices[nLength-1], 
std::back_inserter(aNewValues),
 [&aRes](const sal_Int32 nIdx) -> const css::beans::PropertyValue& { 
return aRes[nIdx]; });
 
 return comphelper::containerToSequence(aNewValues);


core.git: sw/source

2024-10-26 Thread Caolán McNamara (via logerrit)
 sw/source/core/crsr/crsrsh.cxx |1 +
 1 file changed, 1 insertion(+)

New commits:
commit 50cb6fb476a678e6826e02ae3ffb217baa276615
Author: Caolán McNamara 
AuthorDate: Sat Oct 26 10:55:07 2024 +0100
Commit: Caolán McNamara 
CommitDate: Sat Oct 26 16:29:26 2024 +0200

cid#1633842 Uninitialized scalar field

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

diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx
index 4df37884956a..fce43323b19b 100644
--- a/sw/source/core/crsr/crsrsh.cxx
+++ b/sw/source/core/crsr/crsrsh.cxx
@@ -3402,6 +3402,7 @@ SwCursorShell::SwCursorShell( SwDoc& rDoc, vcl::Window 
*pInitWin,
 m_bAllProtect = m_bVisPortChgd = m_bChgCallFlag = m_bInCMvVisportChgd =
 m_bGCAttr = m_bIgnoreReadonly = m_bSelTableCells = m_bBasicHideCursor =
 m_bOverwriteCursor = false;
+m_bIsCursorPosChanged = false;
 m_bSendAccessibleCursorEvents = true;
 m_bCallChgLnk = m_bHasFocus = m_bAutoUpdateCells = true;
 m_bSVCursorVis = true;


core.git: vcl/inc vcl/Library_vclplug_qt5.mk vcl/Library_vclplug_qt6.mk vcl/qt5 vcl/qt6

2024-10-26 Thread Michael Weghorn (via logerrit)
 vcl/Library_vclplug_qt5.mk|1 +
 vcl/Library_vclplug_qt6.mk|1 +
 vcl/inc/qt5/QtInstanceBuilder.hxx |2 +-
 vcl/inc/qt5/QtInstanceImage.hxx   |   28 
 vcl/inc/qt6/QtInstanceImage.hxx   |   12 
 vcl/qt5/QtBuilder.cxx |4 
 vcl/qt5/QtInstanceBuilder.cxx |8 +---
 vcl/qt5/QtInstanceImage.cxx   |   33 +
 vcl/qt6/QtInstanceImage.cxx   |   12 
 9 files changed, 97 insertions(+), 4 deletions(-)

New commits:
commit c5f68d9862ff0cf55b449bd2f638a4cd22d28501
Author: Michael Weghorn 
AuthorDate: Fri Oct 25 20:26:15 2024 +0200
Commit: Michael Weghorn 
CommitDate: Sat Oct 26 13:10:53 2024 +0200

tdf#130857 qt weld: Add QtInstanceImage skeleton

Add a new class QtInstanceImage as a weld::Image
implementation using native Qt widgets.

It uses a QLabel that holds the Image, which can
be set using QLabel::setPixmap [1].

This commit adds the new class, lets
QtInstanceBuilder::weld_image return an instance
of the new class, and extends QtBuilder to create
a QLabel when it encounters a "GtkImage" object.

The logic to actually set the image when either
processing the .ui file or when one of the
weld::Image::set_from_icon_name or one of the
weld::Image::set_image variants gets called
still needs to be implemented in subsequent
commits for the label to actually display
an image.

[1] https://doc.qt.io/qt-6/qlabel.html#pixmap-prop

Change-Id: I3aa526b89487a5301dabd108723d7b68ca85ea66
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175655
Reviewed-by: Michael Weghorn 
Tested-by: Jenkins

diff --git a/vcl/Library_vclplug_qt5.mk b/vcl/Library_vclplug_qt5.mk
index 2cbd00943dc0..2a60b474b2d1 100644
--- a/vcl/Library_vclplug_qt5.mk
+++ b/vcl/Library_vclplug_qt5.mk
@@ -103,6 +103,7 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_qt5,\
 vcl/qt5/QtInstanceDialog \
 vcl/qt5/QtInstanceEntry \
 vcl/qt5/QtInstanceFrame \
+vcl/qt5/QtInstanceImage \
 vcl/qt5/QtInstanceMessageDialog \
 vcl/qt5/QtInstanceLabel \
 vcl/qt5/QtInstanceRadioButton \
diff --git a/vcl/Library_vclplug_qt6.mk b/vcl/Library_vclplug_qt6.mk
index 89f3b7eefb47..485db0a19768 100644
--- a/vcl/Library_vclplug_qt6.mk
+++ b/vcl/Library_vclplug_qt6.mk
@@ -102,6 +102,7 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_qt6,\
 vcl/qt6/QtInstanceDialog \
 vcl/qt6/QtInstanceEntry \
 vcl/qt6/QtInstanceFrame \
+vcl/qt6/QtInstanceImage \
 vcl/qt6/QtInstanceLabel \
 vcl/qt6/QtInstanceMessageDialog \
 vcl/qt6/QtInstanceRadioButton \
diff --git a/vcl/inc/qt5/QtInstanceBuilder.hxx 
b/vcl/inc/qt5/QtInstanceBuilder.hxx
index 33e33c9f08ed..cc02e6ce3b21 100644
--- a/vcl/inc/qt5/QtInstanceBuilder.hxx
+++ b/vcl/inc/qt5/QtInstanceBuilder.hxx
@@ -53,7 +53,7 @@ public:
 virtual std::unique_ptr weld_progress_bar(const 
OUString&) override;
 virtual std::unique_ptr weld_level_bar(const OUString&) 
override;
 virtual std::unique_ptr weld_spinner(const OUString&) 
override;
-virtual std::unique_ptr weld_image(const OUString&) override;
+virtual std::unique_ptr weld_image(const OUString& rId) 
override;
 virtual std::unique_ptr weld_calendar(const OUString&) 
override;
 virtual std::unique_ptr weld_entry(const OUString& rId) 
override;
 virtual std::unique_ptr weld_spin_button(const 
OUString&) override;
diff --git a/vcl/inc/qt5/QtInstanceImage.hxx b/vcl/inc/qt5/QtInstanceImage.hxx
new file mode 100644
index ..9afd20a2f16a
--- /dev/null
+++ b/vcl/inc/qt5/QtInstanceImage.hxx
@@ -0,0 +1,28 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#pragma once
+
+#include "QtInstanceWidget.hxx"
+
+#include 
+
+class QtInstanceImage : public QtInstanceWidget, public virtual weld::Image
+{
+QLabel* m_pLabel;
+
+public:
+QtInstanceImage(QLabel* pLabel);
+
+virtual void set_from_icon_name(const OUString& rIconName) override;
+virtual void set_image(VirtualDevice* pDevice) override;
+virtual void set_image(const css::uno::Reference& 
rImage) override;
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtInstanceImage.hxx b/vcl/inc/qt6/QtInstanceImage.hxx
new file mode 100644
index ..01f647222fc8
--- /dev/null
+++ b/vcl/inc/qt6/QtInstanceImage.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * Lice

core.git: vcl/CustomTarget_qt5_moc.mk vcl/CustomTarget_qt6_moc.mk vcl/inc vcl/qt5

2024-10-26 Thread Michael Weghorn (via logerrit)
 vcl/CustomTarget_qt5_moc.mk  |1 +
 vcl/CustomTarget_qt6_moc.mk  |1 +
 vcl/inc/qt5/QtInstanceLinkButton.hxx |9 -
 vcl/qt5/QtHyperlinkLabel.cxx |1 +
 vcl/qt5/QtInstanceLinkButton.cxx |   13 +
 5 files changed, 24 insertions(+), 1 deletion(-)

New commits:
commit ec59d5aec570887758236d8955e620d7bbb34d33
Author: Michael Weghorn 
AuthorDate: Fri Oct 25 23:36:49 2024 +0200
Commit: Michael Weghorn 
CommitDate: Sat Oct 26 13:20:29 2024 +0200

tdf#130857 qt weld: Make link buttons focusable + handle activation

Set the text interaction flags [1] for the QLabel used for
hyperlinks so that the links can be highlighted and activated
using mouse and keyboard.

Connect to the QLabel::linkActivated signal that gets emitted
when a link gets activated, and call signal_activate_link
in response. If that returns false, open the URL using
QDesktopServices::openUrl instead.

Another way to only support opening the URL using
QDesktopServices::openUrl automatically would be
to set the `openExternalLinks` property [2], but
IIUC, the custom activation handler should have
priority.

With this in place, when opening the "Help" -> "About LibreOfficeDev"
dialog in a WIP branch adding "cui/ui/aboutdialog.ui" to the list
of .ui files in QtInstanceBuilder::IsUIFileSupported, the tab
order now includes the hyperlinks in the dialog, and pressing
Enter while one is focused, or clicking on one of them opens them
in the browser when using the qt6 VCL plugin.

[1] https://doc.qt.io/qt-6/qlabel.html#textInteractionFlags-prop
[2] https://doc.qt.io/qt-6/qlabel.html#openExternalLinks-prop

Change-Id: I4e3cbca6d01a652a1038b9750ee9049e1c7491be
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175670
Reviewed-by: Michael Weghorn 
Tested-by: Jenkins

diff --git a/vcl/CustomTarget_qt5_moc.mk b/vcl/CustomTarget_qt5_moc.mk
index eece23bda8bf..26533420c67f 100644
--- a/vcl/CustomTarget_qt5_moc.mk
+++ b/vcl/CustomTarget_qt5_moc.mk
@@ -17,6 +17,7 @@ $(call gb_CustomTarget_get_target,vcl/qt5) : \
$(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceComboBox.moc \
$(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceDialog.moc \
$(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceEntry.moc \
+   $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceLinkButton.moc \
$(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceMessageDialog.moc \
$(gb_CustomTarget_workdir)/vcl/qt5/QtMainWindow.moc \
$(gb_CustomTarget_workdir)/vcl/qt5/QtMenu.moc \
diff --git a/vcl/CustomTarget_qt6_moc.mk b/vcl/CustomTarget_qt6_moc.mk
index 0e05b21b4fb0..f31184182a82 100644
--- a/vcl/CustomTarget_qt6_moc.mk
+++ b/vcl/CustomTarget_qt6_moc.mk
@@ -17,6 +17,7 @@ $(call gb_CustomTarget_get_target,vcl/qt6) : \
$(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceComboBox.moc \
$(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceDialog.moc \
$(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceEntry.moc \
+   $(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceLinkButton.moc \
$(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceMessageDialog.moc \
$(gb_CustomTarget_workdir)/vcl/qt6/QtMainWindow.moc \
$(gb_CustomTarget_workdir)/vcl/qt6/QtMenu.moc \
diff --git a/vcl/inc/qt5/QtInstanceLinkButton.hxx 
b/vcl/inc/qt5/QtInstanceLinkButton.hxx
index d87ffde4c706..2484aec008cd 100644
--- a/vcl/inc/qt5/QtInstanceLinkButton.hxx
+++ b/vcl/inc/qt5/QtInstanceLinkButton.hxx
@@ -14,8 +14,12 @@
 
 #include 
 
-class QtInstanceLinkButton : public QtInstanceWidget, public virtual 
weld::LinkButton
+class QtInstanceLinkButton : public QObject,
+ public QtInstanceWidget,
+ public virtual weld::LinkButton
 {
+Q_OBJECT
+
 QtHyperlinkLabel* m_pLabel;
 
 public:
@@ -26,6 +30,9 @@ public:
 virtual void set_label_wrap(bool bWrap) override;
 virtual void set_uri(const OUString& rUri) override;
 virtual OUString get_uri() const override;
+
+private Q_SLOTS:
+void linkActivated(const QString& rUrl);
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt5/QtHyperlinkLabel.cxx b/vcl/qt5/QtHyperlinkLabel.cxx
index b887347826a7..91851c285ac1 100644
--- a/vcl/qt5/QtHyperlinkLabel.cxx
+++ b/vcl/qt5/QtHyperlinkLabel.cxx
@@ -12,6 +12,7 @@
 QtHyperlinkLabel::QtHyperlinkLabel(QWidget* pParent)
 : QLabel(pParent)
 {
+setTextInteractionFlags(Qt::LinksAccessibleByMouse | 
Qt::LinksAccessibleByKeyboard);
 }
 
 void QtHyperlinkLabel::setDisplayText(const QString& rDisplayText)
diff --git a/vcl/qt5/QtInstanceLinkButton.cxx b/vcl/qt5/QtInstanceLinkButton.cxx
index e814215ac591..c54b6d1801e5 100644
--- a/vcl/qt5/QtInstanceLinkButton.cxx
+++ b/vcl/qt5/QtInstanceLinkButton.cxx
@@ -8,14 +8,19 @@
  */
 
 #include 
+#include 
 
 #include 
 
+#include 
+
 QtInstanceLinkButton::QtInstanceLinkButton(QtHyperlinkLabel*

core.git: vcl/qt5

2024-10-26 Thread Michael Weghorn (via logerrit)
 vcl/qt5/QtBuilder.cxx |   10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

New commits:
commit 7199e9a0d5313b253734fea5575ba00eceb2ecd8
Author: Michael Weghorn 
AuthorDate: Fri Oct 25 22:53:14 2024 +0200
Commit: Michael Weghorn 
CommitDate: Sat Oct 26 13:19:51 2024 +0200

tdf#130857 qt weld: Evaluate + set grid item row/col span

When processing packing properties for grid items,
also take the "width" and "height" properties into account,
which specify the column span and row span, respectively.

Pass these as params as well when re-adding the item
to the grid, not just the row/col index.

With this in place, when opening the "Help" -> "About LibreOfficeDev"
dialog in a WIP branch adding "cui/ui/aboutdialog.ui" to the list
of .ui files in QtInstanceBuilder::IsUIFileSupported, the
"imAbout" image on the left hand side of the dialog is now no longer
restricted to the top left cell in the grid, but uses more space
as expected.

Change-Id: Ia2edb147d7576d863d597c01d4d310e8798a9ecc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175668
Tested-by: Jenkins
Reviewed-by: Michael Weghorn 

diff --git a/vcl/qt5/QtBuilder.cxx b/vcl/qt5/QtBuilder.cxx
index edb58b16700a..be135bb5b41f 100644
--- a/vcl/qt5/QtBuilder.cxx
+++ b/vcl/qt5/QtBuilder.cxx
@@ -356,18 +356,24 @@ void QtBuilder::applyGridPackingProperties(QObject* 
pCurrentChild, QGridLayout&
 const sal_Int32 nColumn = 
rPackingProperties.at(u"left-attach"_ustr).toInt32();
 const sal_Int32 nRow = rPackingProperties.at(u"top-attach"_ustr).toInt32();
 
+auto aWidthIt = rPackingProperties.find(u"width"_ustr);
+sal_Int32 nColumnSpan = (aWidthIt == rPackingProperties.end()) ? 1 : 
aWidthIt->second.toInt32();
+
+auto aHeightIt = rPackingProperties.find(u"height"_ustr);
+sal_Int32 nRowSpan = (aHeightIt == rPackingProperties.end()) ? 1 : 
aHeightIt->second.toInt32();
+
 if (pCurrentChild->isWidgetType())
 {
 QWidget* pWidget = static_cast(pCurrentChild);
 rGrid.removeWidget(pWidget);
-rGrid.addWidget(pWidget, nRow, nColumn);
+rGrid.addWidget(pWidget, nRow, nColumn, nRowSpan, nColumnSpan);
 return;
 }
 
 // if it's not a QWidget, it must be a QLayout
 QLayout* pLayout = static_cast(pCurrentChild);
 rGrid.removeItem(pLayout);
-rGrid.addLayout(pLayout, nRow, nColumn);
+rGrid.addLayout(pLayout, nRow, nColumn, nRowSpan, nColumnSpan);
 }
 
 void QtBuilder::applyPackingProperties(QObject* pCurrentChild, QObject* 
pParent,


core.git: 2 commits - include/vcl vcl/qt5

2024-10-26 Thread Michael Weghorn (via logerrit)
 include/vcl/qt/QtUtils.hxx   |   21 ++---
 vcl/qt5/QtInstanceImage.cxx  |4 ++--
 vcl/qt5/QtInstanceWidget.cxx |   10 +-
 3 files changed, 29 insertions(+), 6 deletions(-)

New commits:
commit e8e0a676b31596ce0d1fee7936ff934dfc9e3c09
Author: Michael Weghorn 
AuthorDate: Fri Oct 25 22:19:26 2024 +0200
Commit: Michael Weghorn 
CommitDate: Sat Oct 26 13:13:22 2024 +0200

tdf#130857 qt weld: Implement QtInstanceImage::set_image

Extract a helper to convert a BitmapEx to a QPixmap
from the existing helper function `loadQPixmapIcon`
and add a new helper that converts a
css::uno::Reference& to
a QPixmap reusing most of the code.

Use that to implement the QtInstanceImage::set_image
variant with that parameter type.

With this in place, opening the "Help" -> "About LibreOfficeDev"
dialog in a WIP branch adding "cui/ui/aboutdialog.ui" to the list
of .ui files in QtInstanceBuilder::IsUIFileSupported now opens
the dialog with brand image and LibreOffice Community logo present,
but other aspects in that dialog still need attention before
enabling this by default.

Change-Id: Ide28c0dc126be511ec8e34e57f4f1df7e70297ca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175666
Tested-by: Jenkins
Reviewed-by: Michael Weghorn 

diff --git a/include/vcl/qt/QtUtils.hxx b/include/vcl/qt/QtUtils.hxx
index a2e5c2eedab6..95f31e97ce63 100644
--- a/include/vcl/qt/QtUtils.hxx
+++ b/include/vcl/qt/QtUtils.hxx
@@ -20,6 +20,7 @@
 
 #include 
 #include 
+#include 
 
 #include 
 #include 
@@ -29,12 +30,11 @@ inline QString toQString(const OUString& rStr)
 return QString::fromUtf16(rStr.getStr(), rStr.getLength());
 }
 
-inline QPixmap loadQPixmapIcon(const OUString& rIconName)
+inline QPixmap toQPixmap(const BitmapEx& rBitmapEx)
 {
-BitmapEx aIcon(rIconName);
 SvMemoryStream aMemoryStream;
 vcl::PngImageWriter aWriter(aMemoryStream);
-aWriter.write(aIcon);
+aWriter.write(rBitmapEx);
 QPixmap aPixmap;
 aPixmap.loadFromData(static_cast(aMemoryStream.GetData()),
  aMemoryStream.TellEnd());
@@ -42,4 +42,19 @@ inline QPixmap loadQPixmapIcon(const OUString& rIconName)
 return aPixmap;
 }
 
+inline QPixmap toQPixmap(const css::uno::Reference& 
rImage)
+{
+if (!rImage.is())
+return QPixmap();
+
+Image aImage(rImage);
+return toQPixmap(aImage.GetBitmapEx());
+}
+
+inline QPixmap loadQPixmapIcon(const OUString& rIconName)
+{
+BitmapEx aIcon(rIconName);
+return toQPixmap(aIcon);
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt5/QtInstanceImage.cxx b/vcl/qt5/QtInstanceImage.cxx
index d41fa077e4c2..ce63b3b03e50 100644
--- a/vcl/qt5/QtInstanceImage.cxx
+++ b/vcl/qt5/QtInstanceImage.cxx
@@ -25,9 +25,9 @@ void QtInstanceImage::set_from_icon_name(const OUString&)
 
 void QtInstanceImage::set_image(VirtualDevice*) { assert(false && "Not 
implemented yet"); }
 
-void QtInstanceImage::set_image(const 
css::uno::Reference&)
+void QtInstanceImage::set_image(const 
css::uno::Reference& rGraphic)
 {
-assert(false && "Not implemented yet");
+m_pLabel->setPixmap(toQPixmap(rGraphic));
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 6a7e1abd100d3aad2d23c96e835e182d191b505d
Author: Michael Weghorn 
AuthorDate: Fri Oct 25 21:50:30 2024 +0200
Commit: Michael Weghorn 
CommitDate: Sat Oct 26 13:12:48 2024 +0200

tdf#130857 qt weld: Implement QtInstanceWidget::get_preferred_size

Implement QtInstanceWidget::get_preferred_size by returning the
size of the QWidget::sizeHint property [1]:

> This property holds the recommended size for the widget

With this in place, opening the "Help" -> "About LibreOfficeDev"
dialog in a WIP branch adding "cui/ui/aboutdialog.ui" to the list
of .ui files in QtInstanceBuilder::IsUIFileSupported now triggers
the assert in QtInstanceImage::set_image because that's no implemented
yet, while this was not reached at all before, because

const tools::Long 
nWidth(m_pCopyrightLabel->get_preferred_size().getWidth());

at the beginning of AboutDialog::AboutDialog would previously
set a preferred width of 0, and with that, there was no attempt to
set the images at all.

[1] https://doc.qt.io/qt-6/qwidget.html#sizeHint-prop

Change-Id: I6eaedf07f73ea5e71a36d3e9bc9a0f55e515ffe7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175665
Reviewed-by: Michael Weghorn 
Tested-by: Jenkins

diff --git a/vcl/qt5/QtInstanceWidget.cxx b/vcl/qt5/QtInstanceWidget.cxx
index b8145469f7fb..5f3590bd88d9 100644
--- a/vcl/qt5/QtInstanceWidget.cxx
+++ b/vcl/qt5/QtInstanceWidget.cxx
@@ -187,7 +187,15 @@ void QtInstanceWidget::set_size_request(int, int) {}
 
 Size QtInstanceWidget::get_size_request() const { return Size(); }
 
-Size QtInstanceWidget::get_preferred_size() const { return Size(); }
+S

core.git: vcl/inc vcl/qt5

2024-10-26 Thread Michael Weghorn (via logerrit)
 vcl/inc/qt5/QtBuilder.hxx |2 +-
 vcl/qt5/QtBuilder.cxx |   23 +++
 2 files changed, 16 insertions(+), 9 deletions(-)

New commits:
commit 37cc6b8e46288c132ef3b7c5cf44560517a7a00e
Author: Michael Weghorn 
AuthorDate: Fri Oct 25 21:32:56 2024 +0200
Commit: Michael Weghorn 
CommitDate: Sat Oct 26 13:12:27 2024 +0200

tdf#130857 qt weld: Set actual positions for layouts inside grid

Extend QtBuilder::applyGridPackingProperties to not only
handle widgets (QWidget), but also layouts (QLayout), so
that the proper position inside the grid is also set for
these.

This will be used e.g. by the "Help" -> "About LibreOfficeDev"
dialog.
(When adding "cui/ui/aboutdialog.ui" to the list of .ui files
in QtInstanceBuilder::IsUIFileSupported, those UI elements
that show up are now in the correct positions, but other things
unrelated to this particular commit are still missing.)

Change-Id: Ic7c342e0307526f29e1fa149acd25a27373069ff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175662
Tested-by: Jenkins
Reviewed-by: Michael Weghorn 

diff --git a/vcl/inc/qt5/QtBuilder.hxx b/vcl/inc/qt5/QtBuilder.hxx
index 51a59d47a712..ad7569b77a11 100644
--- a/vcl/inc/qt5/QtBuilder.hxx
+++ b/vcl/inc/qt5/QtBuilder.hxx
@@ -75,7 +75,7 @@ private:
 static QWidget* windowForObject(QObject* pObject);
 static QDialogButtonBox* findButtonBox(QDialog* pDialog);
 
-static void applyGridPackingProperties(QObject& rCurrentChild, 
QGridLayout& rGrid,
+static void applyGridPackingProperties(QObject* pCurrentChild, 
QGridLayout& rGrid,
const stringmap& 
rPackingProperties);
 };
 
diff --git a/vcl/qt5/QtBuilder.cxx b/vcl/qt5/QtBuilder.cxx
index 9bb32a642288..edb58b16700a 100644
--- a/vcl/qt5/QtBuilder.cxx
+++ b/vcl/qt5/QtBuilder.cxx
@@ -344,12 +344,10 @@ void QtBuilder::applyAtkProperties(QObject* pObject, 
const stringmap& rPropertie
 }
 }
 
-void QtBuilder::applyGridPackingProperties(QObject& rCurrentChild, 
QGridLayout& rGrid,
+void QtBuilder::applyGridPackingProperties(QObject* pCurrentChild, 
QGridLayout& rGrid,
const stringmap& rPackingProperties)
 {
-if (!rCurrentChild.isWidgetType())
-return;
-
+assert(pCurrentChild);
 assert(rPackingProperties.contains(u"left-attach"_ustr)
&& "left-attach property missing for grid item");
 assert(rPackingProperties.contains(u"top-attach"_ustr)
@@ -358,9 +356,18 @@ void QtBuilder::applyGridPackingProperties(QObject& 
rCurrentChild, QGridLayout&
 const sal_Int32 nColumn = 
rPackingProperties.at(u"left-attach"_ustr).toInt32();
 const sal_Int32 nRow = rPackingProperties.at(u"top-attach"_ustr).toInt32();
 
-QWidget& rCurrentWidget = static_cast(rCurrentChild);
-rGrid.removeWidget(&rCurrentWidget);
-rGrid.addWidget(&rCurrentWidget, nRow, nColumn);
+if (pCurrentChild->isWidgetType())
+{
+QWidget* pWidget = static_cast(pCurrentChild);
+rGrid.removeWidget(pWidget);
+rGrid.addWidget(pWidget, nRow, nColumn);
+return;
+}
+
+// if it's not a QWidget, it must be a QLayout
+QLayout* pLayout = static_cast(pCurrentChild);
+rGrid.removeItem(pLayout);
+rGrid.addLayout(pLayout, nRow, nColumn);
 }
 
 void QtBuilder::applyPackingProperties(QObject* pCurrentChild, QObject* 
pParent,
@@ -370,7 +377,7 @@ void QtBuilder::applyPackingProperties(QObject* 
pCurrentChild, QObject* pParent,
 return;
 
 if (QGridLayout* pGrid = qobject_cast(pParent))
-applyGridPackingProperties(*pCurrentChild, *pGrid, rPackingProperties);
+applyGridPackingProperties(pCurrentChild, *pGrid, rPackingProperties);
 else
 SAL_WARN("vcl.qt", "QtBuilder::applyPackingProperties not yet 
implemented for this case");
 }


core.git: sc/source

2024-10-26 Thread Pranam Lashkari (via logerrit)
 sc/source/ui/condformat/condformateasydlg.cxx |   27 +-
 1 file changed, 26 insertions(+), 1 deletion(-)

New commits:
commit 3fd308fef39e6a5551e427dc1a41deccd3476841
Author: Pranam Lashkari 
AuthorDate: Thu Oct 17 06:23:21 2024 +0400
Commit: Pranam Lashkari 
CommitDate: Sun Oct 27 00:07:24 2024 +0200

sc: prefill easy condition dialog with editing condition data

Change-Id: I207bcbf15bedf3dd51980f04899b2c751b64295d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175036
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Caolán McNamara 
Tested-by: Caolán McNamara 
(cherry picked from commit 598e93b1b11f4cdff96f6117c2a7d35f3698fd23)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175207
Reviewed-by: Pranam Lashkari 
Tested-by: Jenkins

diff --git a/sc/source/ui/condformat/condformateasydlg.cxx 
b/sc/source/ui/condformat/condformateasydlg.cxx
index ee8f8318cf37..21c0953cbab0 100644
--- a/sc/source/ui/condformat/condformateasydlg.cxx
+++ b/sc/source/ui/condformat/condformateasydlg.cxx
@@ -283,10 +283,35 @@ 
ConditionalFormatEasyDialog::ConditionalFormatEasyDialog(SfxBindings* pBindings,
 aRange.Format(sRangeString, ScRefFlags::VALID, *mpDocument, 
mpDocument->GetAddressConvention());
 mxRangeEntry->SetText(sRangeString);
 
+ScConditionalFormat* format = mpViewData->GetDocument().GetCondFormat(
+maPosition.Col(), maPosition.Row(), maPosition.Tab());
+OUString sStyleName;
+if (format)
+{
+const ScFormatEntry* entry = format->GetEntry(mnEntryIndex);
+ScFormatEntry::Type type = entry->GetType();
+if (type == ScFormatEntry::Type::Condition)
+{
+const ScCondFormatEntry* condEntry = static_cast(entry);
+sStyleName = condEntry->GetStyle();
+if (mxNumberEntry->get_visible())
+
mxNumberEntry->set_text(condEntry->GetExpression(aRange.GetTopLeftCorner(), 0));
+if (mxNumberEntry2->get_visible())
+
mxNumberEntry->set_text(condEntry->GetExpression(aRange.GetTopLeftCorner(), 1));
+}
+else if (type == ScFormatEntry::Type::Date)
+{
+const ScCondDateFormatEntry* dateEntry
+= static_cast(entry);
+sStyleName = dateEntry->GetStyleName();
+}
+}
+
 StartListening(*mpDocument->GetStyleSheetPool(), 
DuplicateHandling::Prevent);
 ScCondFormatHelper::FillStyleListBox(mpDocument, *mxStyles);
 
-mxStyles->set_active(1);
+mxStyles->set_active_text(sStyleName);
+StyleSelectHdl(*mxStyles);
 mxWdPreviewWin->show();
 }
 


core.git: oox/source

2024-10-26 Thread Bogdan Buzea (via logerrit)
 oox/source/ppt/slidetransitioncontext.cxx |   10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

New commits:
commit 3c9715a64c6552f3b4e920a435fa1ad10489882b
Author: Bogdan Buzea 
AuthorDate: Sun Oct 20 21:33:34 2024 +0200
Commit: David Gilbert 
CommitDate: Sun Oct 27 01:21:56 2024 +0200

tdf#163486: PVS: Identical branches

V1037 Two or more case-branches perform the same actions. Check lines: 83, 
99

Change-Id: Ibe913d3662bb7cb731dd55327c0df4182b328b69
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175272
Reviewed-by: David Gilbert 
Tested-by: Jenkins

diff --git a/oox/source/ppt/slidetransitioncontext.cxx 
b/oox/source/ppt/slidetransitioncontext.cxx
index e3e77cbeb6a9..a3ad670a676d 100644
--- a/oox/source/ppt/slidetransitioncontext.cxx
+++ b/oox/source/ppt/slidetransitioncontext.cxx
@@ -80,6 +80,8 @@ SlideTransitionContext::~SlideTransitionContext() noexcept
 return this;
 case PPT_TOKEN( cover ):
 case PPT_TOKEN( pull ):
+case PPT_TOKEN( push ):
+case PPT_TOKEN( wipe ):
 if (!mbHasTransition)
 {
 mbHasTransition = true;
@@ -94,14 +96,6 @@ SlideTransitionContext::~SlideTransitionContext() noexcept
 maTransition.setOoxTransitionType( aElementToken, 
sal_Int32(rAttribs.getBool( XML_thruBlk, false )), 0);
 }
 return this;
-case PPT_TOKEN( push ):
-case PPT_TOKEN( wipe ):
-if (!mbHasTransition)
-{
-mbHasTransition = true;
-maTransition.setOoxTransitionType( aElementToken, 
rAttribs.getToken( XML_dir, XML_l ), 0 );
-}
-return this;
 case PPT_TOKEN( split ):
 if (!mbHasTransition)
 {


core.git: dbaccess/source

2024-10-26 Thread Bogdan Buzea (via logerrit)
 dbaccess/source/ui/app/AppController.cxx |8 ++--
 1 file changed, 2 insertions(+), 6 deletions(-)

New commits:
commit a74ef20928828d5879f136bf075e4a3e1f3f451e
Author: Bogdan Buzea 
AuthorDate: Mon Oct 21 08:25:34 2024 +0200
Commit: David Gilbert 
CommitDate: Sun Oct 27 01:24:45 2024 +0200

tdf#163486: PVS: Identical branches

V1037 Two or more case-branches perform the same actions. Check lines: 817, 
830
V1037 Two or more case-branches perform the same actions. Check lines: 
1251, 1254

Change-Id: I4e121ec3b0c4465f5637b114d2e91e5b639c398c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175276
Tested-by: Jenkins
Reviewed-by: David Gilbert 

diff --git a/dbaccess/source/ui/app/AppController.cxx 
b/dbaccess/source/ui/app/AppController.cxx
index c433f8c83f44..ed10f38e660b 100644
--- a/dbaccess/source/ui/app/AppController.cxx
+++ b/dbaccess/source/ui/app/AppController.cxx
@@ -814,6 +814,8 @@ FeatureState OApplicationController::GetState(sal_uInt16 
_nId) const
 aReturn.bChecked = getContainer()->getPreviewMode() == 
PreviewMode::Document;
 break;
 case ID_BROWSER_UNDO:
+case SID_DB_APP_SENDREPORTTOWRITER:
+case SID_DB_APP_DBADMIN:
 aReturn.bEnabled = false;
 break;
 case SID_MAIL_SENDDOC:
@@ -825,10 +827,6 @@ FeatureState OApplicationController::GetState(sal_uInt16 
_nId) const
 aReturn.bEnabled = E_REPORT == eType && 
getContainer()->getSelectionCount() > 0 && getContainer()->isALeafSelected();
 }
 break;
-case SID_DB_APP_SENDREPORTTOWRITER:
-case SID_DB_APP_DBADMIN:
-aReturn.bEnabled = false;
-break;
 case SID_DB_APP_STATUS_TYPE:
 aReturn.bEnabled = m_xDataSource.is();
 if ( aReturn.bEnabled )
@@ -1248,8 +1246,6 @@ void OApplicationController::Execute(sal_uInt16 _nId, 
const Sequence< PropertyVa
 case SID_DB_APP_QUERY_OPEN:
 case SID_DB_APP_FORM_OPEN:
 case SID_DB_APP_REPORT_OPEN:
-doAction( _nId, ElementOpenMode::Normal );
-break;
 case SID_DB_APP_CONVERTTOVIEW:
 doAction( _nId, ElementOpenMode::Normal );
 break;


core.git: sd/source

2024-10-26 Thread Bogdan Buzea (via logerrit)
 sd/source/ui/docshell/docshel3.cxx |7 +--
 1 file changed, 1 insertion(+), 6 deletions(-)

New commits:
commit 7ee9cc0f6fdf7d459817f87018bd2bde31c7aa1f
Author: Bogdan Buzea 
AuthorDate: Tue Oct 22 06:32:04 2024 +0200
Commit: David Gilbert 
CommitDate: Sun Oct 27 01:28:15 2024 +0200

tdf#163486: PVS: Identical branches

V1037 Two or more case-branches perform the same actions. Check lines: 235, 
249

Change-Id: If20872264edda30a8854e40787b73060990d2224
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175392
Reviewed-by: David Gilbert 
Tested-by: Jenkins

diff --git a/sd/source/ui/docshell/docshel3.cxx 
b/sd/source/ui/docshell/docshel3.cxx
index 4b1e790428f8..234c63578667 100644
--- a/sd/source/ui/docshell/docshel3.cxx
+++ b/sd/source/ui/docshell/docshel3.cxx
@@ -230,6 +230,7 @@ void DrawDocShell::Execute( SfxRequest& rReq )
 }
 break;
 
+case SID_VERSION:
 case SID_CLOSEDOC:
 {
 ExecuteSlot(rReq, SfxObjectShell::GetStaticInterface());
@@ -244,12 +245,6 @@ void DrawDocShell::Execute( SfxRequest& rReq )
 }
 break;
 
-case SID_VERSION:
-{
-ExecuteSlot( rReq, SfxObjectShell::GetStaticInterface() );
-}
-break;
-
 case SID_HANGUL_HANJA_CONVERSION:
 {
 if( mpViewShell )


core.git: editeng/source

2024-10-26 Thread Bogdan Buzea (via logerrit)
 editeng/source/uno/unofield.cxx |   10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

New commits:
commit f4a8954165eade1730a19a0e25fc08ae7f1825c8
Author: Bogdan Buzea 
AuthorDate: Mon Oct 21 08:35:45 2024 +0200
Commit: David Gilbert 
CommitDate: Sun Oct 27 01:26:21 2024 +0200

tdf#163486: PVS: Identical branches

V1037 Two or more case-branches perform the same actions. Check lines: 804, 
820, 832

Change-Id: I25b810a91c6981f36fbad34c6ad64bc3656f6ddb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175278
Reviewed-by: David Gilbert 
Tested-by: Jenkins

diff --git a/editeng/source/uno/unofield.cxx b/editeng/source/uno/unofield.cxx
index e474647450e9..cc2eb9b6367c 100644
--- a/editeng/source/uno/unofield.cxx
+++ b/editeng/source/uno/unofield.cxx
@@ -801,6 +801,8 @@ uno::Sequence< OUString > SAL_CALL 
SvxUnoTextField::getSupportedServiceNames()
 switch (mnServiceId)
 {
 case text::textfield::Type::DATE:
+case text::textfield::Type::TIME:
+case text::textfield::Type::EXTENDED_TIME:
 pServices[2] = "com.sun.star.text.TextField.DateTime";
 pServices[3] = "com.sun.star.text.textfield.DateTime";
 break;
@@ -816,10 +818,6 @@ uno::Sequence< OUString > SAL_CALL 
SvxUnoTextField::getSupportedServiceNames()
 pServices[2] = "com.sun.star.text.TextField.PageCount";
 pServices[3] = "com.sun.star.text.textfield.PageCount";
 break;
-case text::textfield::Type::TIME:
-pServices[2] = "com.sun.star.text.TextField.DateTime";
-pServices[3] = "com.sun.star.text.textfield.DateTime";
-break;
 case text::textfield::Type::DOCINFO_TITLE:
 pServices[2] = "com.sun.star.text.TextField.docinfo.Title";
 pServices[3] = "com.sun.star.text.textfield.docinfo.Title";
@@ -828,10 +826,6 @@ uno::Sequence< OUString > SAL_CALL 
SvxUnoTextField::getSupportedServiceNames()
 pServices[2] = "com.sun.star.text.TextField.SheetName";
 pServices[3] = "com.sun.star.text.textfield.SheetName";
 break;
-case text::textfield::Type::EXTENDED_TIME:
-pServices[2] = "com.sun.star.text.TextField.DateTime";
-pServices[3] = "com.sun.star.text.textfield.DateTime";
-break;
 case text::textfield::Type::EXTENDED_FILE:
 pServices[2] = "com.sun.star.text.TextField.FileName";
 pServices[3] = "com.sun.star.text.textfield.FileName";


Re: How to write ORG.OPENOFFICE.EASTERSUNDAY for ODF 1.3 and pure EASTERSUNDAY for ODF 1.4?

2024-10-26 Thread Regina Henschel

Hi Mike, hi all,

Mike Kaganski schrieb am 21.10.2024 um 09:19:

Hi Regina!

On 20.10.2024 23:20, Regina Henschel wrote:
it would be necessary to write ORG.OFFICE.EASTERSUNDAY when writing in 
ODF versions 1.3 and before and write pure EASTERSUNDAY in case of ODF 
1.4. But I see no way to distinguish between ODF 1.3 and ODF 1.4 in 
the export filter. I see only a general mxSymbols->isODFF() in 
ScCompiler::ParseOpCode().



It seems to me, that the export of formula is done in 
ScXMLExport::WriteCell (sc/source/filter/xml/xmlexprt.cxx); and there, 
you have access to getSaneDefaultVersion().


Hope this helps.



You can indeed get the version to be saved to in xmlexprt.cxx. But where 
to evaluate it?


Evaluating it directly in sc/source/filter/xml/xmlexprt.cxx would mean, 
that you have to tweak the result of

  #3218 OUString aFormula = pFormulaCell->GetFormula(*mpCompileFormulaCxt);
so that each occurrence of EASTERSUNDAY is replaced by 
ORG.OPENOFFICE.EASTERSUNDAY.
Besides the fact that EASTERSUNDAY as text and not as formula name would 
be replaced too, I think it is not a good idea to check each formula in 
a spreadsheet to catch the EASTERSUNDAY cases.


Such approach seems completely wrong to me also because we will get the 
same problem again with the new functions XLOOKUP, FILTER, UNIQUE, etc. 
when the change from ODF 1.4 to ODF 1.5 is made.


I would prefer a solution, that corrects the string, when the string is 
created from the opcode ocEasterSunday.


When you look where the string is generated, you get the steps:
ScFormulaCell::GetFormula() in sc/source/core/data/formulacell.cxx
FormulaCompiler::CreateStringFromTokenArray() in 
formula/source/core/api/FormulaCompiler.cxx

FormulaCompiler::CreateStringFromToken()
mxSymbols->getSymbol(eOp), which uses the map in 
formula/inc/core_resource.hrc.


You could pass on the ODF version and the fact that you are exporting to 
ODF to the method GetFormula(). That could be done as new parameter or 
by adding members to CompileFormulaContext.


But the method CreateStringFromTokenArray() is not only called from 
export, but in other, totally unrelated situations, e.g. when the window 
with the sheet gets focus.


Do we need a totally new method CreateStringFromTokenArrayForODFExport()?

I'm still looking for your ideas.

Kind regards,
Regina



Re: ESC meeting minutes: 2024-10-24

2024-10-26 Thread Thorsten Behrens
Hi Andreas,

Andreas Mantke wrote:
> I don't think there is a misunderstanding of this change's purpose,
> introduced first with https://gerrit.libreoffice.org/c/core/+/116384
> with the description [...]
>
I think there's a misunderstanding, that this change would somehow be
bad, or incompatible with FOSS, or not appropriate for the core code
base.

If you can make it, would be great to talk this through interactively,
on Thursday during ESC. Alternatively, as suggested in the patch,
please send the ESC your rationale, why this patch should go in
(despite the feedback you've already received).

Cheers,

-- Thorsten


signature.asc
Description: PGP signature


core.git: sc/source

2024-10-26 Thread Bogdan Buzea (via logerrit)
 sc/source/ui/vba/vbaformat.cxx |8 ++--
 1 file changed, 2 insertions(+), 6 deletions(-)

New commits:
commit ba1d759187f7bc9b640927e9327182e487ed04d7
Author: Bogdan Buzea 
AuthorDate: Mon Oct 21 16:57:03 2024 +0200
Commit: David Gilbert 
CommitDate: Sun Oct 27 01:12:32 2024 +0200

tdf#163486: PVS: Identical branches

V1037 Two or more case-branches perform the same actions. Check lines: 138, 
144
V1037 Two or more case-branches perform the same actions. Check lines: 174, 
180
V1037 Two or more case-branches perform the same actions. Check lines: 674, 
683

Change-Id: I34790e43cd06578f83185d7de04b2567732fe870
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175349
Reviewed-by: David Gilbert 
Tested-by: Jenkins

diff --git a/sc/source/ui/vba/vbaformat.cxx b/sc/source/ui/vba/vbaformat.cxx
index 2a0aea444fe9..a866b7c6105e 100644
--- a/sc/source/ui/vba/vbaformat.cxx
+++ b/sc/source/ui/vba/vbaformat.cxx
@@ -135,14 +135,12 @@ ScVbaFormat< Ifc... >::getVerticalAlignment(  )
 switch( aAPIAlignment )
 {
 case table::CellVertJustify2::BOTTOM:
+case table::CellVertJustify2::STANDARD:
 aResult <<= excel::XlVAlign::xlVAlignBottom;
 break;
 case table::CellVertJustify2::CENTER:
 aResult <<= excel::XlVAlign::xlVAlignCenter;
 break;
-case table::CellVertJustify2::STANDARD:
-aResult <<= excel::XlVAlign::xlVAlignBottom;
-break;
 case table::CellVertJustify2::TOP:
 aResult <<= excel::XlVAlign::xlVAlignTop;
 break;
@@ -171,14 +169,12 @@ ScVbaFormat< Ifc... >::setHorizontalAlignment( const 
uno::Any& HorizontalAlignme
 switch ( nAlignment )
 {
 case excel::XlHAlign::xlHAlignJustify:
+case excel::XlHAlign::xlHAlignDistributed:
 aVal <<= table::CellHoriJustify_BLOCK;
 break;
 case excel::XlHAlign::xlHAlignCenter:
 aVal <<= table::CellHoriJustify_CENTER;
 break;
-case excel::XlHAlign::xlHAlignDistributed:
-aVal <<= table::CellHoriJustify_BLOCK;
-break;
 case excel::XlHAlign::xlHAlignLeft:
 aVal <<= table::CellHoriJustify_LEFT;
 break;


core.git: svx/source

2024-10-26 Thread Bogdan Buzea (via logerrit)
 svx/source/unodraw/unopage.cxx |4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

New commits:
commit c0dc8022f2d4adbc1f47a6f74e3ac69587f8ab24
Author: Bogdan Buzea 
AuthorDate: Mon Oct 21 17:03:58 2024 +0200
Commit: David Gilbert 
CommitDate: Sun Oct 27 01:13:55 2024 +0200

tdf#163486: PVS: Identical branches

V1037 Two or more case-branches perform the same actions. Check lines: 643, 
770

Change-Id: I09ba00a35a9f837bba0ea7450fbf2afc0102e1f6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175350
Tested-by: Jenkins
Reviewed-by: David Gilbert 

diff --git a/svx/source/unodraw/unopage.cxx b/svx/source/unodraw/unopage.cxx
index dea32b511d39..e516e990cf80 100644
--- a/svx/source/unodraw/unopage.cxx
+++ b/svx/source/unodraw/unopage.cxx
@@ -640,6 +640,7 @@ rtl::Reference 
SvxDrawPage::CreateShapeByTypeAndInventor( SdrObjKind n
 pRet = new SvxShapePolyPolygon( pObj );
 break;
 case SdrObjKind::Rectangle:
+case SdrObjKind::Annotation:
 pRet = new SvxShapeRect( pObj );
 break;
 case SdrObjKind::CircleOrEllipse:
@@ -766,9 +767,6 @@ rtl::Reference 
SvxDrawPage::CreateShapeByTypeAndInventor( SdrObjKind n
 case SdrObjKind::Table:
 pRet = new SvxTableShape( pObj );
 break;
-case SdrObjKind::Annotation:
-pRet = new SvxShapeRect( pObj );
-break;
 default: // unknown 2D-object on page
 assert(false && "Not implemented Starone-Shape created");
 pRet = new SvxShapeText( pObj );


core.git: sc/source

2024-10-26 Thread Bogdan Buzea (via logerrit)
 sc/source/filter/excel/excform8.cxx |   10 +++---
 1 file changed, 3 insertions(+), 7 deletions(-)

New commits:
commit 4fc95df9c32aa17b73c5bd08d2ab01e6f3c4c15c
Author: Bogdan Buzea 
AuthorDate: Sat Oct 19 18:03:32 2024 +0200
Commit: David Gilbert 
CommitDate: Sun Oct 27 01:17:33 2024 +0200

tdf#163486: PVS: Identical branches

V1037 Two or more case-branches perform the same actions. Check lines: 589, 
643, 648

Change-Id: I808deb5f3a705ae18e97c51737213f280189fdb4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175214
Tested-by: Jenkins
Reviewed-by: David Gilbert 

diff --git a/sc/source/filter/excel/excform8.cxx 
b/sc/source/filter/excel/excform8.cxx
index 6f053373d193..7de536469cff 100644
--- a/sc/source/filter/excel/excform8.cxx
+++ b/sc/source/filter/excel/excform8.cxx
@@ -583,11 +583,6 @@ ConvErr ExcelToSc8::Convert( 
std::unique_ptr& rpTokArray, XclImpSt
 case 0x28: // Incomplete Constant Reference Subexpr.[331 281]
 aIn.Ignore( 6 );   // There isn't any more
 break;
-case 0x49:
-case 0x69:
-case 0x29: // Variable Reference Subexpression  [331 281]
-aIn.Ignore( 2 );   // There isn't any more
-break;
 case 0x4C:
 case 0x6C:
 case 0x2C: // Cell Reference Within a Name  [323]
@@ -637,11 +632,12 @@ ConvErr ExcelToSc8::Convert( 
std::unique_ptr& rpTokArray, XclImpSt
 aStack << aPool.Store( aCRD );
 break;
 }
+case 0x49:
+case 0x69:
+case 0x29: // Variable Reference Subexpression  [331 281]
 case 0x4E:
 case 0x6E:
 case 0x2E: // Reference Subexpression Within a Name [332 282]
-aIn.Ignore( 2 );   // There isn't any more
-break;
 case 0x4F:
 case 0x6F:
 case 0x2F: // Incomplete Reference Subexpression... [332 282]


core.git: sc/source

2024-10-26 Thread Bogdan Buzea (via logerrit)
 sc/source/filter/excel/xeextlst.cxx |4 
 1 file changed, 4 deletions(-)

New commits:
commit 0878b2a522e4f5fbba2842a3862a0de0e7159195
Author: Bogdan Buzea 
AuthorDate: Tue Oct 22 06:06:31 2024 +0200
Commit: David Gilbert 
CommitDate: Sun Oct 27 01:18:22 2024 +0200

tdf#163486: PVS: Identical branches

V1037 Two or more case-branches perform the same actions. Check lines: 331, 
334
V1037 Two or more case-branches perform the same actions. Check lines: 529, 
532

Change-Id: Id6ad82dd2cb570f7b9c04068e5f404077104a36e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175387
Reviewed-by: David Gilbert 
Tested-by: Jenkins

diff --git a/sc/source/filter/excel/xeextlst.cxx 
b/sc/source/filter/excel/xeextlst.cxx
index d32caecaffc2..8d36f639b1f3 100644
--- a/sc/source/filter/excel/xeextlst.cxx
+++ b/sc/source/filter/excel/xeextlst.cxx
@@ -328,8 +328,6 @@ const char* GetOperatorString(ScConditionMode eMode)
 pRet = "notBetween";
 break;
 case ScConditionMode::Duplicate:
-pRet = nullptr;
-break;
 case ScConditionMode::NotDuplicate:
 pRet = nullptr;
 break;
@@ -526,8 +524,6 @@ 
XclExpExtConditionalFormatting::XclExpExtConditionalFormatting( const XclExpRoot
 }
 break;
 case ScFormatEntry::Type::Databar:
-maCfRules.AppendNewRecord(new XclExpExtCfRule( *this, *pEntry, 
aAddr, rItem.aGUID, rItem.nPriority));
-break;
 case ScFormatEntry::Type::ExtCondition:
 maCfRules.AppendNewRecord(new XclExpExtCfRule( *this, *pEntry, 
aAddr, rItem.aGUID, rItem.nPriority));
 break;


Re: ESC meeting minutes: 2024-10-24

2024-10-26 Thread Andreas Mantke

Hi all,

Am 24.10.24 um 16:39 schrieb Miklos Vajna:

(...)



* Feature locking (Andreas)
  +  "Remove blocking
functions feature from core"
  + commented on the change, tend to say it's a useful feature
(Michael W)
  + abandoned the patch once (Ilmari)
  + wait another week on acting, but think there is a misunderstanding
here (Thorsten)


I don't think there is a misunderstanding of this change's purpose,
introduced first with https://gerrit.libreoffice.org/c/core/+/116384
with the description:
'LOK: introduced Freemium LOK
API also block the uno commands from deny list'

This was done by a contractor of Collabora Productivity and approved by
other developer from this company in June 2021.

I think the meaning of Freemium (software) is really obvious:

'Freemium, a portmanteau of the words "free" and "premium", is a pricing
strategy by which a basic product or service is provided free of charge,
but money (a premium) is charged for additional features, services, or
virtual (online) or physical (offline) goods that expand the
functionality of the free version of the software'
(https://en.wikipedia.org/wiki/Freemium).

The naming was changed later to a non-obvious term, but the function
wasn't changed.

The corresponding changes were also available in the Online version,
with the same naming ('Freemium') and the move to a non-obvious term.
The function and the configure options are still there.

The first patches ('Freemium') were introduced after forking away the
Online version from The Document Foundation and LibreOffice and at the
beginning of a dispute about sending LibreOffice Online to the attic.

Regards,
Andreas

--
## Free Software Advocate
## Plone add-on developer
## My blog: http://www.amantke.de/blog



core.git: sw/inc sw/qa sw/source

2024-10-26 Thread László Németh (via logerrit)
 sw/inc/crsrsh.hxx   |3 +
 sw/inc/docsh.hxx|3 +
 sw/qa/extras/uiwriter/uiwriter3.cxx |   44 
 sw/source/core/crsr/crsrsh.cxx  |   39 ++
 sw/source/uibase/app/docst.cxx  |   78 +++-
 5 files changed, 166 insertions(+), 1 deletion(-)

New commits:
commit 7a35f3dc7419d833b8f47069c4df63e900ccb880
Author: László Németh 
AuthorDate: Fri Oct 25 00:38:35 2024 +0200
Commit: László Németh 
CommitDate: Sat Oct 26 17:35:09 2024 +0200

tdf#48459 sw inline heading: apply it on the selected words

Selected text at the beginning of a paragraph (<= 75 characters)
become text frame based inline heading at applying a paragraph style
(using Formatting toolbar, context menu, Ctrl-1...Ctrl-5 or
Styles sidebar panel).

If the whole paragraph is selected, or if no or multiple
paragraphs are selected, formatting is still applied on the
whole paragraphs.

Using text frames for inline heading is ODF 1.0 compliant
and fully back-compatible with the older Writer versions.

The new inline heading frame contains direct formatting
to zero the upper and bottom paragraph margin to solve
interoperability issues: in MSO, margins of heading styles
are zeroed by using the style separators.

Note: lack of inline heading was a showstopper for creating
APA-, IEEE-, MIL-STD-961E-format, legal etc. documents.

Note: recent Formula frame style will be replaced by the
planned Inline Heading, which will be used by the DOCX filter
to export OOXML style separators instead of text frames.

Change-Id: I6722dcaef046bdbca2fe044d175806fa8c65278c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175580
Tested-by: Jenkins
Reviewed-by: László Németh 

diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx
index 02a08289a889..806b1b7d2472 100644
--- a/sw/inc/crsrsh.hxx
+++ b/sw/inc/crsrsh.hxx
@@ -552,6 +552,9 @@ public:
 // Check if selection is within one paragraph.
 bool IsSelOnePara() const;
 
+// Check if selection starts a paragraph.
+bool IsSelStartPara() const;
+
 /*
  * Returns SRectangle, at which the cursor is located.
  */
diff --git a/sw/inc/docsh.hxx b/sw/inc/docsh.hxx
index f29c4ed78134..858c778ac784 100644
--- a/sw/inc/docsh.hxx
+++ b/sw/inc/docsh.hxx
@@ -54,6 +54,7 @@ class SwDrawModel;
 class SwViewShell;
 class SwDocStyleSheetPool;
 class SwXTextDocument;
+class SwTextFormatColl;
 namespace svt
 {
 class EmbeddedObjectRef;
@@ -143,6 +144,8 @@ class SW_DLLPUBLIC SwDocShell
 
 SAL_DLLPRIVATE void  Delete(const OUString &rName, 
SfxStyleFamily nFamily);
 SAL_DLLPRIVATE void  Hide(const OUString &rName, 
SfxStyleFamily nFamily, bool bHidden);
+SAL_DLLPRIVATE bool  MakeInlineHeading(SwWrtShell *pSh, 
SwTextFormatColl* pColl,
+   const sal_uInt16 nMode);
 SAL_DLLPRIVATE SfxStyleFamilyApplyStyles(const OUString &rName,
 const SfxStyleFamily nFamily,
 SwWrtShell* pShell,
diff --git a/sw/qa/extras/uiwriter/uiwriter3.cxx 
b/sw/qa/extras/uiwriter/uiwriter3.cxx
index f7c31f4e76d8..cbd860f0aabf 100644
--- a/sw/qa/extras/uiwriter/uiwriter3.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter3.cxx
@@ -1315,6 +1315,50 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf147206)

u"HyperLinkURL"_ustr));
 }
 
+CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf48459)
+{
+createSwDoc();
+SwDoc* pDoc = getSwDoc();
+SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell();
+
+// insert paragraph text
+pWrtShell->Insert(u"Heading and normal text"_ustr);
+
+// select the first word (proposed for inline heading)
+pWrtShell->SttEndDoc(/*bStart=*/true);
+pWrtShell->Right(SwCursorSkipMode::Chars, /*bSelect=*/true, 7, 
/*bBasicCall=*/false);
+
+// apply styles only on the selected word -> create inline heading
+uno::Sequence aPropertyValues = 
comphelper::InitPropertySequence({
+{ "Style", uno::Any(u"Heading 1"_ustr) },
+{ "FamilyName", uno::Any(u"ParagraphStyles"_ustr) },
+});
+dispatchCommand(mxComponent, u".uno:StyleApply"_ustr, aPropertyValues);
+
+uno::Reference xFrames = mxDesktop->getFrames();
+
+// inline heading frame
+CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xFrames->getCount());
+
+pWrtShell->EndOfSection(false);
+
+// insert table of contents to check ToC content (containing only the 
inline heading)
+SwTOXMgr mgr(pWrtShell);
+SwTOXDescription desc{ TOX_CONTENT };
+mgr.UpdateOrInsertTOX(desc, nullptr, nullptr);
+
+CPPUNIT_ASSERT_EQUAL(int(3), getParagraphs());
+
+// first paragraph: selected text moved to the inline heading frame
+CPPUNIT_ASSERT_EQUAL(u" and normal text"_ustr, 
getParagraph(1)->getString());
+
+// ToC 

core.git: sdext/source

2024-10-26 Thread Arnaud VERSINI (via logerrit)
 sdext/source/pdfimport/tree/drawtreevisiting.cxx |   16 
 1 file changed, 8 insertions(+), 8 deletions(-)

New commits:
commit b48dab459a32ef2cda9e1ff40ae74016eb5e670f
Author: Arnaud VERSINI 
AuthorDate: Sun Jun 23 16:14:28 2024 +0200
Commit: Arnaud Versini 
CommitDate: Sat Oct 26 20:33:38 2024 +0200

sdext replace OUStringLiteral with new OUString literal

Change-Id: I3f2730024fa3cd81c38927d495cdff9c608bddbe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169358
Tested-by: Jenkins
Reviewed-by: Arnaud Versini 

diff --git a/sdext/source/pdfimport/tree/drawtreevisiting.cxx 
b/sdext/source/pdfimport/tree/drawtreevisiting.cxx
index 16142cd532c9..d99d32bbfa50 100644
--- a/sdext/source/pdfimport/tree/drawtreevisiting.cxx
+++ b/sdext/source/pdfimport/tree/drawtreevisiting.cxx
@@ -194,14 +194,14 @@ void DrawXmlEmitter::fillFrameProps( DrawElement&   
rElem,
  bool   bWasTransformed
  )
 {
-static constexpr OUStringLiteral sDrawZIndex = u"draw:z-index";
-static constexpr OUStringLiteral sDrawStyleName = u"draw:style-name";
-static constexpr OUStringLiteral sDrawTextStyleName = 
u"draw:text-style-name";
-static constexpr OUStringLiteral sSvgX = u"svg:x";
-static constexpr OUStringLiteral sSvgY = u"svg:y";
-static constexpr OUStringLiteral sSvgWidth = u"svg:width";
-static constexpr OUStringLiteral sSvgHeight = u"svg:height";
-static constexpr OUStringLiteral sDrawTransform = u"draw:transform";
+static constexpr OUString sDrawZIndex = u"draw:z-index"_ustr;
+static constexpr OUString sDrawStyleName = u"draw:style-name"_ustr;
+static constexpr OUString sDrawTextStyleName = 
u"draw:text-style-name"_ustr;
+static constexpr OUString sSvgX = u"svg:x"_ustr;
+static constexpr OUString sSvgY = u"svg:y"_ustr;
+static constexpr OUString sSvgWidth = u"svg:width"_ustr;
+static constexpr OUString sSvgHeight = u"svg:height"_ustr;
+static constexpr OUString sDrawTransform = u"draw:transform"_ustr;
 
 rProps[ sDrawZIndex ] = OUString::number( rElem.ZOrder );
 rProps[ sDrawStyleName ] = rEmitContext.rStyles.getStyleName( 
rElem.StyleId );


core.git: sc/inc

2024-10-26 Thread Rafael Lima (via logerrit)
 sc/inc/globstr.hrc |   10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

New commits:
commit 6bcb6e7dcb9f06f4a2b709b26f33d2b07f0d711c
Author: Rafael Lima 
AuthorDate: Fri Oct 25 14:53:56 2024 +0200
Commit: Olivier Hallot 
CommitDate: Sat Oct 26 21:27:04 2024 +0200

Fix wrong string ID's for the sensitivity report

Change-Id: I4fe860e29eaf11601c633ff32c44d0c4e67b0958
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175605
Tested-by: Jenkins
Reviewed-by: Olivier Hallot 

diff --git a/sc/inc/globstr.hrc b/sc/inc/globstr.hrc
index e2174c4e5c80..ec04d7170654 100644
--- a/sc/inc/globstr.hrc
+++ b/sc/inc/globstr.hrc
@@ -582,11 +582,11 @@
 #define STR_SENSITIVITY_VARCELLS
NC_("STR_SENSITIVITY_VARCELLS", "Variable Cells")
 #define STR_SENSITIVITY_CONSTRAINTS 
NC_("STR_SENSITIVITY_CONSTRAINTS", "Constraints")
 #define STR_SENSITIVITY_CELLNC_("STR_SENSITIVITY_CELL", 
"Cell")
-#define STR_SENSITIVITY_FINALVALUE  NC_("STR_SENSITIVITY_CELL", 
"Final Value")
-#define STR_SENSITIVITY_REDUCED NC_("STR_SENSITIVITY_CELL", 
"Reduced Cost")
-#define STR_SENSITIVITY_OBJCOEFFNC_("STR_SENSITIVITY_CELL", 
"Objective Coefficient")
-#define STR_SENSITIVITY_DECREASENC_("STR_SENSITIVITY_CELL", 
"Allowable Decrease")
-#define STR_SENSITIVITY_INCREASENC_("STR_SENSITIVITY_CELL", 
"Allowable Increase")
+#define STR_SENSITIVITY_FINALVALUE  
NC_("STR_SENSITIVITY_FINALVALUE", "Final Value")
+#define STR_SENSITIVITY_REDUCED NC_("STR_SENSITIVITY_REDUCED", 
"Reduced Cost")
+#define STR_SENSITIVITY_OBJCOEFF
NC_("STR_SENSITIVITY_OBJCOEFF", "Objective Coefficient")
+#define STR_SENSITIVITY_DECREASE
NC_("STR_SENSITIVITY_DECREASE", "Allowable Decrease")
+#define STR_SENSITIVITY_INCREASE
NC_("STR_SENSITIVITY_INCREASE", "Allowable Increase")
 #define STR_SENSITIVITY_SHADOWPRICE 
NC_("STR_SENSITIVITY_SHADOWPRICE", "Shadow Price")
 #define STR_SENSITIVITY_RHS NC_("STR_SENSITIVITY_RHS", 
"Constraint R.H. Side")
 


core.git: accessibility/source chart2/source comphelper/source cppuhelper/source framework/source io/source sc/source sd/source sfx2/source svx/source testtools/source unotools/source unoxml/source vc

2024-10-26 Thread Caolán McNamara (via logerrit)
 accessibility/source/extended/AccessibleGridControl.cxx   |2 +-
 chart2/source/tools/StatisticsHelper.cxx  |2 +-
 comphelper/source/container/container.cxx |2 +-
 cppuhelper/source/component_context.cxx   |4 ++--
 framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx |2 +-
 framework/source/uielement/complextoolbarcontroller.cxx   |2 +-
 io/source/stm/odata.cxx   |2 +-
 sc/source/filter/excel/excimp8.cxx|2 +-
 sd/source/ui/animations/CustomAnimationList.cxx   |2 +-
 sfx2/source/doc/docfile.cxx   |2 +-
 svx/source/form/fmpgeimp.cxx  |2 +-
 testtools/source/bridgetest/bridgetest.cxx|2 +-
 unotools/source/misc/eventlisteneradapter.cxx |2 +-
 unoxml/source/dom/saxbuilder.cxx  |2 +-
 unoxml/source/rdf/CLiteral.cxx|2 +-
 vcl/source/app/weldutils.cxx  |2 +-
 16 files changed, 17 insertions(+), 17 deletions(-)

New commits:
commit 0c6e26890a822c5891056f83690a477622b85c8a
Author: Caolán McNamara 
AuthorDate: Sat Oct 26 19:01:01 2024 +0100
Commit: Caolán McNamara 
CommitDate: Sat Oct 26 21:54:56 2024 +0200

cid#1556875 COPY_INSTEAD_OF_MOVE

and

cid#1556891 COPY_INSTEAD_OF_MOVE
cid#1556903 COPY_INSTEAD_OF_MOVE
cid#1556917 COPY_INSTEAD_OF_MOVE
cid#1556925 COPY_INSTEAD_OF_MOVE
cid#1557021 COPY_INSTEAD_OF_MOVE
cid#1557092 COPY_INSTEAD_OF_MOVE
cid#1557119 COPY_INSTEAD_OF_MOVE
cid#1557218 COPY_INSTEAD_OF_MOVE
cid#1557342 COPY_INSTEAD_OF_MOVE
cid#1557727 COPY_INSTEAD_OF_MOVE
cid#1557800 COPY_INSTEAD_OF_MOVE
cid#1557821 COPY_INSTEAD_OF_MOVE
cid#1557830 COPY_INSTEAD_OF_MOVE
cid#1557677 COPY_INSTEAD_OF_MOVE
cid#1557674 COPY_INSTEAD_OF_MOVE

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

diff --git a/accessibility/source/extended/AccessibleGridControl.cxx 
b/accessibility/source/extended/AccessibleGridControl.cxx
index 46d04780285b..483b75ed4c8f 100644
--- a/accessibility/source/extended/AccessibleGridControl.cxx
+++ b/accessibility/source/extended/AccessibleGridControl.cxx
@@ -163,7 +163,7 @@ AccessibleGridControl::getAccessibleAtPoint( const 
awt::Point& rPoint )
 
 if (xCurrChildComp.is()
 && 
VCLUnoHelper::ConvertToVCLRect(xCurrChildComp->getBounds()).Contains(aPoint))
-xChild = xCurrChild;
+xChild = std::move(xCurrChild);
 }
 }
 return xChild;
diff --git a/chart2/source/tools/StatisticsHelper.cxx 
b/chart2/source/tools/StatisticsHelper.cxx
index 618236d7efbd..b29e54b80122 100644
--- a/chart2/source/tools/StatisticsHelper.cxx
+++ b/chart2/source/tools/StatisticsHelper.cxx
@@ -200,7 +200,7 @@ uno::Reference< chart2::data::XLabeledDataSequence > 
StatisticsHelper::getErrorL
 uno::Reference< chart2::data::XLabeledDataSequence > xLSeq =
 lcl_getErrorBarLabeledSequence( xDataSource, bPositiveValue, bYError, 
aRole );
 if( xLSeq.is())
-xResult = xLSeq;
+xResult = std::move(xLSeq);
 
 return xResult;
 }
diff --git a/comphelper/source/container/container.cxx 
b/comphelper/source/container/container.cxx
index 7b2432723360..78d3d1879639 100644
--- a/comphelper/source/container/container.cxx
+++ b/comphelper/source/container/container.cxx
@@ -99,7 +99,7 @@ css::uno::Reference< css::uno::XInterface> const & 
IndexAccessIterator::Next()
 break;
 }
 // Finally, if there's nothing more to do in this row (to 
the right), we'll move on to the next row.
-xSearchLoop = xParent;
+xSearchLoop = std::move(xParent);
 bCheckingStartingPoint = false;
 }
 
diff --git a/cppuhelper/source/component_context.cxx 
b/cppuhelper/source/component_context.cxx
index 0ec1fd291de2..227affa9a619 100644
--- a/cppuhelper/source/component_context.cxx
+++ b/cppuhelper/source/component_context.cxx
@@ -410,11 +410,11 @@ void 
ComponentContext::disposing(std::unique_lock& rGuard)
 {
 if ( rName == TDMGR_SINGLETON )
 {
-xTDMgr = xComp;
+xTDMgr = std::move(xComp);
 }
 else if ( rName == AC_SINGLETON )
 {
-xAC = xComp;
+xAC = std::move(xComp);
 }
 else // dispose immediately
 {
diff --git a/framework/source/uiconfiguration/modu

core.git: 2 commits - sc/source sd/source

2024-10-26 Thread Caolán McNamara (via logerrit)
 sc/source/core/tool/interpr1.cxx |5 ++
 sd/source/ui/dlg/animobjs.cxx|   79 ---
 2 files changed, 47 insertions(+), 37 deletions(-)

New commits:
commit 40468f0eb08ea8f83b23cceeeaf7f4beb3ba15ed
Author: Caolán McNamara 
AuthorDate: Wed Oct 16 21:18:20 2024 +0100
Commit: Caolán McNamara 
CommitDate: Sat Oct 26 21:54:46 2024 +0200

cid#1606758 Overflowed constant

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

diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 6a45d78aa655..84ee63f23b92 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -8752,6 +8752,11 @@ void ScInterpreter::ScSortBy()
 return;
 }
 pMatSrc->GetDimensions(nsC, nsR);
+if (nsC == 0 || nsR == 0)
+{
+PushIllegalArgument();
+return;
+}
 nSortCol2 = nsC - 1; // nSortCol1 = 0
 nSortRow2 = nsR - 1; // nSortRow1 = 0
 }
commit 868158d6b21a8446d75f1601fa39366b1f54d52c
Author: Caolán McNamara 
AuthorDate: Sat Oct 26 18:48:32 2024 +0100
Commit: Caolán McNamara 
CommitDate: Sat Oct 26 21:54:38 2024 +0200

cid#1608133 Overflowed constant

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

diff --git a/sd/source/ui/dlg/animobjs.cxx b/sd/source/ui/dlg/animobjs.cxx
index fd58db937d89..daf5011aa7de 100644
--- a/sd/source/ui/dlg/animobjs.cxx
+++ b/sd/source/ui/dlg/animobjs.cxx
@@ -280,55 +280,60 @@ IMPL_LINK( AnimationWindow, ClickPlayHdl, weld::Button&, 
rButton, void )
 sal_uLong nTmpTime = 0;
 size_t i = 0;
 bool bCount = i < nCount;
-if( bReverse )
+if (bCount)
 {
-i = nCount - 1;
-}
-while( bCount && bMovie )
-{
-// make list and view consistent
-assert(i < m_FrameList.size());
-m_nCurrentFrame = i;
-
-UpdateControl(bDisableCtrls);
+if( bReverse )
+i = nCount - 1;
 
-if( m_xRbtBitmap->get_active() )
+while (bMovie)
 {
-::tools::Time const & rTime = m_FrameList[i].second;
+// make list and view consistent
+assert(i < m_FrameList.size());
+m_nCurrentFrame = i;
 
-m_xFormatter->SetTime( rTime );
-sal_uLong nTime = rTime.GetMSFromTime();
+UpdateControl(bDisableCtrls);
 
-WaitInEffect( nTime, nTmpTime, pProgress.get() );
-nTmpTime += nTime;
-}
-else
-{
-WaitInEffect( 100, nTmpTime, pProgress.get() );
-nTmpTime += 100;
-}
-if( bReverse )
-{
-if (i == 0)
+if( m_xRbtBitmap->get_active() )
 {
-// Terminate loop.
-bCount = false;
+::tools::Time const & rTime = m_FrameList[i].second;
+
+m_xFormatter->SetTime( rTime );
+sal_uLong nTime = rTime.GetMSFromTime();
+
+WaitInEffect( nTime, nTmpTime, pProgress.get() );
+nTmpTime += nTime;
 }
 else
 {
---i;
+WaitInEffect( 100, nTmpTime, pProgress.get() );
+nTmpTime += 100;
 }
-}
-else
-{
-i++;
-if (i >= nCount)
+if( bReverse )
+{
+if (i == 0)
+{
+// Terminate loop.
+bCount = false;
+}
+else
+{
+--i;
+}
+}
+else
 {
-// Terminate loop.
-bCount = false;
-// Move i back into valid range.
-i = nCount - 1;
+i++;
+if (i >= nCount)
+{
+// Terminate loop.
+bCount = false;
+// Move i back into valid range.
+i = nCount - 1;
+}
 }
+
+if (!bCount)
+break;
 }
 }
 


core.git: 2 commits - accessibility/source basctl/source basic/source chart2/source connectivity/source cppuhelper/source dbaccess/source desktop/source drawinglayer/source editeng/source extensions/s

2024-10-26 Thread Caolán McNamara (via logerrit)
 accessibility/source/standard/accessiblemenubasecomponent.cxx |2 +-
 basctl/source/dlged/propbrw.cxx   |2 +-
 basic/source/uno/namecont.cxx |2 +-
 chart2/source/controller/main/ChartController_Tools.cxx   |2 +-
 chart2/source/controller/main/ShapeController.cxx |2 +-
 connectivity/source/commontools/statementcomposer.cxx |2 +-
 connectivity/source/cpool/ZConnectionPool.cxx |2 +-
 connectivity/source/drivers/postgresql/pq_connection.cxx  |2 +-
 cppuhelper/source/servicemanager.cxx  |6 +++---
 dbaccess/source/ui/tabledesign/TableController.cxx|2 +-
 dbaccess/source/ui/uno/copytablewizard.cxx|4 ++--
 desktop/source/deployment/manager/dp_managerfac.cxx   |2 +-
 desktop/source/migration/migration.cxx|2 +-
 drawinglayer/source/primitive2d/controlprimitive2d.cxx|2 +-
 editeng/source/misc/splwrap.cxx   |2 +-
 extensions/source/dbpilots/controlwizard.cxx  |2 +-
 extensions/source/update/ui/updatecheckui.cxx |2 +-
 forms/source/component/FormComponent.cxx  |2 +-
 forms/source/misc/InterfaceContainer.cxx  |2 +-
 framework/source/accelerators/presethandler.cxx   |6 +++---
 framework/source/dispatch/closedispatcher.cxx |2 +-
 framework/source/fwe/classes/framelistanalyzer.cxx|4 ++--
 framework/source/helper/statusindicatorfactory.cxx|2 +-
 framework/source/layoutmanager/layoutmanager.cxx  |2 +-
 framework/source/services/frame.cxx   |2 +-
 framework/source/services/taskcreatorsrv.cxx  |2 +-
 framework/source/uiconfiguration/imagemanagerimpl.cxx |2 +-
 framework/source/uielement/complextoolbarcontroller.cxx   |2 +-
 framework/source/uielement/genericstatusbarcontroller.cxx |2 +-
 framework/source/uielement/subtoolbarcontroller.cxx   |2 +-
 i18npool/source/calendar/calendarImpl.cxx |2 +-
 linguistic/source/convdiclist.cxx |2 +-
 linguistic/source/gciterator.cxx  |4 ++--
 oox/source/export/DMLPresetShapeExport.cxx|2 +-
 package/source/xstor/owriteablestream.cxx |4 ++--
 package/source/zippackage/ZipPackage.cxx  |2 +-
 pyuno/source/module/pyuno.cxx |2 +-
 reportdesign/source/core/api/ReportControlModel.cxx   |2 +-
 reportdesign/source/ui/report/ReportController.cxx|4 ++--
 sc/source/filter/excel/xechart.cxx|2 +-
 sc/source/filter/excel/xiescher.cxx   |2 +-
 sc/source/filter/xml/xmlexprt.cxx |2 +-
 sc/source/ui/unoobj/viewuno.cxx   |2 +-
 sc/source/ui/vba/excelvbahelper.cxx   |2 +-
 sc/source/ui/vba/vbarange.cxx |2 +-
 sd/source/ui/animations/CustomAnimationPane.cxx   |2 +-
 sd/source/ui/table/TableDesignPane.cxx|2 +-
 sfx2/source/bastyp/progress.cxx   |2 +-
 sfx2/source/doc/docfile.cxx   |2 +-
 sfx2/source/doc/guisaveas.cxx |4 ++--
 sfx2/source/doc/sfxbasemodel.cxx  |2 +-
 sfx2/source/inet/inettbc.cxx  |2 +-
 sfx2/source/view/lokcharthelper.cxx   |2 +-
 svtools/source/filter/exportdialog.cxx|2 +-
 svx/source/fmcomp/fmgridcl.cxx|4 ++--
 svx/source/form/fmundo.cxx|2 +-
 svx/source/form/fmvwimp.cxx   |2 +-
 svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx |2 +-
 svx/source/table/tabledesign.cxx  |2 +-
 sw/source/core/access/accpara.cxx |2 +-
 sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx  |4 ++--
 toolkit/source/awt/vclxaccessiblecomponent.cxx|2 +-
 toolkit/source/controls/accessiblecontrolcontext.cxx  |2 +-
 ucb/source/ucp/hierarchy/hierarchydata.cxx|4 ++--
 ucbhelper/source/provider/registerucb.cxx |2 +-
 unotools/source/config/lingucfg.cxx   |2 +-
 vcl/source/gdi/formpdfexport.cxx  |2 +-
 xmloff/source/chart/SchXMLImport.cxx  |2 +-
 xmloff/s

License statement

2024-10-26 Thread obienyi peace
   All of my past & future contributions to LibreOffice may be
   licensed under the MPLv2/LGPLv3+ dual license.