compilerplugins/clang/mergeclasses.results |    1 
 include/svx/uiobject.hxx                   |   17 ---
 sd/source/ui/uitest/uiobject.cxx           |  153 +++++++++++++++++++++++++++--
 svx/source/uitest/sdrobject.cxx            |  142 --------------------------
 4 files changed, 147 insertions(+), 166 deletions(-)

New commits:
commit 451745896de239a05c7239b11e1e7095ee335021
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Thu Aug 21 16:50:31 2025 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Thu Aug 21 18:55:43 2025 +0200

    merge SdrUIObject with ImpressSdrObject
    
    Change-Id: I30fa8ccb627f1cd083906bef3f787ac331896272
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190003
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/compilerplugins/clang/mergeclasses.results 
b/compilerplugins/clang/mergeclasses.results
index b8ca9446c8a4..553265f26d74 100644
--- a/compilerplugins/clang/mergeclasses.results
+++ b/compilerplugins/clang/mergeclasses.results
@@ -198,7 +198,6 @@ merge SdrPaintView with SdrSnapView
 merge SdrPolyEditView with SdrGlueEditView
 maybe merge SdrPowerPointImport with ImplSdPPTImport, in modules filter and sd
 merge SdrSnapView with SdrMarkView
-maybe merge SdrUIObject with (anonymous namespace)::ImpressSdrObject, in 
modules svx and sd
 maybe merge SdrUndoAttrObj with sd::UndoAttrObject, in modules svx and sd
 maybe merge SdrUndoDelObj with sd::UndoDeleteObject, in modules svx and sd
 maybe merge SdrUndoGeoObj with sd::UndoGeoObject, in modules svx and sd
diff --git a/include/svx/uiobject.hxx b/include/svx/uiobject.hxx
index 4fd63c9d0d05..d1cc1c45377a 100644
--- a/include/svx/uiobject.hxx
+++ b/include/svx/uiobject.hxx
@@ -16,25 +16,8 @@
 
 #include <vcl/uitest/uiobject.hxx>
 
-class SdrObject;
 class SvxColorValueSet;
 
-class SVXCORE_DLLPUBLIC SdrUIObject : public UIObject
-{
-public:
-
-    virtual ~SdrUIObject() override;
-
-    virtual StringMap get_state() override;
-
-    virtual void execute(const OUString& rAction,
-            const StringMap& rParameters) override;
-
-    virtual OUString get_type() const override;
-
-    virtual SdrObject* get_object() = 0;
-};
-
 class SvxColorValueSetUIObject final : public DrawingAreaUIObject
 {
     SvxColorValueSet* mpColorSet;
diff --git a/sd/source/ui/uitest/uiobject.cxx b/sd/source/ui/uitest/uiobject.cxx
index 24d507efdc73..2142b132a137 100644
--- a/sd/source/ui/uitest/uiobject.cxx
+++ b/sd/source/ui/uitest/uiobject.cxx
@@ -16,21 +16,24 @@
 
 #include <sfx2/sidebar/Sidebar.hxx>
 #include <sfx2/sfxsids.hrc>
-#include <svx/uiobject.hxx>
 #include <tools/debug.hxx>
 #include <utility>
 
 namespace
 {
-class ImpressSdrObject : public SdrUIObject
+class ImpressSdrObject : public UIObject
 {
 public:
     ImpressSdrObject(const VclPtr<sd::Window>& xImpressWin, OUString aName);
 
-    SdrObject* get_object() override;
-
     virtual bool equals(const UIObject& rOther) const override;
 
+    virtual StringMap get_state() override;
+
+    virtual void execute(const OUString& rAction, const StringMap& 
rParameters) override;
+
+    virtual OUString get_type() const override;
+
 private:
     VclPtr<sd::Window> mxWindow;
 
@@ -74,8 +77,6 @@ ImpressSdrObject::ImpressSdrObject(const VclPtr<sd::Window>& 
xImpressWin, OUStri
 {
 }
 
-SdrObject* ImpressSdrObject::get_object() { return getObject(mxWindow, 
maName); }
-
 bool ImpressSdrObject::equals(const UIObject& rOther) const
 {
     const ImpressSdrObject* pOther = dynamic_cast<const 
ImpressSdrObject*>(&rOther);
@@ -84,6 +85,146 @@ bool ImpressSdrObject::equals(const UIObject& rOther) const
     return mxWindow.get() == pOther->mxWindow.get();
 }
 
+StringMap ImpressSdrObject::get_state()
+{
+    StringMap aMap;
+    SdrObject* pObject = getObject(mxWindow, maName);
+
+    if (!pObject)
+        return aMap;
+
+    aMap[u"Name"_ustr] = pObject->GetName();
+    aMap[u"Description"_ustr] = pObject->GetDescription();
+    aMap[u"Title"_ustr] = pObject->GetTitle();
+    aMap[u"Z-Order"_ustr] = OUString::number(pObject->GetOrdNum());
+    aMap[u"Layer"_ustr] = OUString::number(pObject->GetLayer().get());
+    aMap[u"IsGroupObject"_ustr] = OUString::boolean(pObject->IsGroupObject());
+    aMap[u"IsPolyObject"_ustr] = OUString::boolean(pObject->IsPolyObj());
+    aMap[u"PointCount"_ustr] = OUString::number(pObject->GetPointCount());
+    aMap[u"HasTextEdit"_ustr] = OUString::boolean(pObject->HasTextEdit());
+    aMap[u"HasMacro"_ustr] = OUString::boolean(pObject->HasMacro());
+    aMap[u"IsClosed"_ustr] = OUString::boolean(pObject->IsClosedObj());
+    aMap[u"IsEdgeObject"_ustr] = OUString::boolean(pObject->IsEdgeObj());
+    aMap[u"Is3DObject"_ustr] = OUString::boolean(pObject->Is3DObj());
+    aMap[u"IsUNOObject"_ustr] = OUString::boolean(pObject->IsUnoObj());
+    aMap[u"MoveProtected"_ustr] = OUString::boolean(pObject->IsMoveProtect());
+    aMap[u"ResizeProtected"_ustr] = 
OUString::boolean(pObject->IsResizeProtect());
+    aMap[u"Printable"_ustr] = OUString::boolean(pObject->IsPrintable());
+    aMap[u"Visible"_ustr] = OUString::boolean(pObject->IsVisible());
+    aMap[u"HasText"_ustr] = OUString::boolean(pObject->HasText());
+
+    return aMap;
+}
+
+void ImpressSdrObject::execute(const OUString& rAction, const StringMap& 
rParameters)
+{
+    SdrObject* pObj = getObject(mxWindow, maName);
+    if (!pObj)
+        return;
+
+    if (rAction == "MOVE")
+    {
+        auto itrNX = rParameters.find(u"X"_ustr);
+        if (itrNX == rParameters.end())
+            throw css::uno::RuntimeException(u"missing parameter X"_ustr);
+
+        auto itrNY = rParameters.find(u"Y"_ustr);
+        if (itrNY == rParameters.end())
+            throw css::uno::RuntimeException(u"missing parameter Y"_ustr);
+
+        tools::Long nX = itrNX->second.toInt32();
+        tools::Long nY = itrNY->second.toInt32();
+        Size aMoveRange(nX, nY);
+        pObj->Move(aMoveRange);
+    }
+    else if (rAction == "RESIZE")
+    {
+        auto itrNX = rParameters.find(u"X"_ustr);
+        if (itrNX == rParameters.end())
+            throw css::uno::RuntimeException(u"missing parameter X"_ustr);
+
+        auto itrNY = rParameters.find(u"Y"_ustr);
+        if (itrNY == rParameters.end())
+            throw css::uno::RuntimeException(u"missing parameter Y"_ustr);
+
+        tools::Long nX = itrNX->second.toInt32();
+        tools::Long nY = itrNY->second.toInt32();
+        Point aPos(nX, nY);
+
+        auto itrFracX = rParameters.find(u"FRAC_X"_ustr);
+        if (itrFracX == rParameters.end())
+            throw css::uno::RuntimeException(u"missing parameter FRAC_X"_ustr);
+        double nFracX = itrFracX->second.toDouble();
+        Fraction aFracX(nFracX);
+
+        auto itrFracY = rParameters.find(u"FRAC_Y"_ustr);
+        if (itrFracY == rParameters.end())
+            throw css::uno::RuntimeException(u"missing parameter FRAC_Y"_ustr);
+        double nFracY = itrFracY->second.toDouble();
+        Fraction aFracY(nFracY);
+        pObj->Resize(aPos, aFracX, aFracY, true /*bRelative*/);
+    }
+    else if (rAction == "CROP")
+    {
+        // RotateFlyFrame3: Note: Crop does nothing at SdrObject
+        // anymore, see comment at SdrObject::NbcCrop
+        auto itrNX = rParameters.find(u"X"_ustr);
+        if (itrNX == rParameters.end())
+            throw css::uno::RuntimeException(u"missing parameter X"_ustr);
+
+        auto itrNY = rParameters.find(u"Y"_ustr);
+        if (itrNY == rParameters.end())
+            throw css::uno::RuntimeException(u"missing parameter Y"_ustr);
+
+        const double fX(itrNX->second.toDouble());
+        const double fY(itrNY->second.toDouble());
+        const basegfx::B2DPoint aPos(fX, fY);
+
+        auto itrFracX = rParameters.find(u"FRAC_X"_ustr);
+        if (itrFracX == rParameters.end())
+            throw css::uno::RuntimeException(u"missing parameter FRAC_X"_ustr);
+        const double fFracX(itrFracX->second.toDouble());
+
+        auto itrFracY = rParameters.find(u"FRAC_Y"_ustr);
+        if (itrFracY == rParameters.end())
+            throw css::uno::RuntimeException(u"missing parameter FRAC_Y"_ustr);
+        const double fFracY(itrFracY->second.toDouble());
+
+        pObj->Crop(aPos, fFracX, fFracY);
+    }
+    else if (rAction == "ROTATE")
+    {
+        auto itrNX = rParameters.find(u"X"_ustr);
+        if (itrNX == rParameters.end())
+            throw css::uno::RuntimeException(u"missing parameter X"_ustr);
+
+        auto itrNY = rParameters.find(u"Y"_ustr);
+        if (itrNY == rParameters.end())
+            throw css::uno::RuntimeException(u"missing parameter Y"_ustr);
+
+        tools::Long nX = itrNX->second.toInt32();
+        tools::Long nY = itrNY->second.toInt32();
+        Point aPos(nX, nY);
+
+        auto itrAngle = rParameters.find(u"ANGLE"_ustr);
+        if (itrAngle == rParameters.end())
+            throw css::uno::RuntimeException(u"missing parameter ANGLE"_ustr);
+
+        double nAngle = itrAngle->second.toDouble();
+        pObj->Rotate(aPos, Degree100(sal_Int32(nAngle)), 0, 0);
+    }
+    else if (rAction == "Mirror")
+    {
+        pObj->Mirror(Point(), Point());
+    }
+    else if (rAction == "SHEAR")
+    {
+        pObj->Shear(Point(), 0_deg100 /*nAngle*/, 0, false);
+    }
+}
+
+OUString ImpressSdrObject::get_type() const { return u"ImpressSdrObject"_ustr; 
}
+
 ImpressWindowUIObject::ImpressWindowUIObject(const VclPtr<sd::Window>& xWindow)
     : WindowUIObject(xWindow)
     , mxWindow(xWindow)
diff --git a/svx/source/uitest/sdrobject.cxx b/svx/source/uitest/sdrobject.cxx
index 0c8d510f4d88..8838733630cf 100644
--- a/svx/source/uitest/sdrobject.cxx
+++ b/svx/source/uitest/sdrobject.cxx
@@ -14,148 +14,6 @@
 #include <vcl/window.hxx>
 #include <memory>
 
-SdrUIObject::~SdrUIObject() {}
-
-StringMap SdrUIObject::get_state()
-{
-    StringMap aMap;
-    SdrObject* pObject = get_object();
-
-    if (!pObject)
-        return aMap;
-
-    aMap[u"Name"_ustr] = pObject->GetName();
-    aMap[u"Description"_ustr] = pObject->GetDescription();
-    aMap[u"Title"_ustr] = pObject->GetTitle();
-    aMap[u"Z-Order"_ustr] = OUString::number(pObject->GetOrdNum());
-    aMap[u"Layer"_ustr] = OUString::number(pObject->GetLayer().get());
-    aMap[u"IsGroupObject"_ustr] = OUString::boolean(pObject->IsGroupObject());
-    aMap[u"IsPolyObject"_ustr] = OUString::boolean(pObject->IsPolyObj());
-    aMap[u"PointCount"_ustr] = OUString::number(pObject->GetPointCount());
-    aMap[u"HasTextEdit"_ustr] = OUString::boolean(pObject->HasTextEdit());
-    aMap[u"HasMacro"_ustr] = OUString::boolean(pObject->HasMacro());
-    aMap[u"IsClosed"_ustr] = OUString::boolean(pObject->IsClosedObj());
-    aMap[u"IsEdgeObject"_ustr] = OUString::boolean(pObject->IsEdgeObj());
-    aMap[u"Is3DObject"_ustr] = OUString::boolean(pObject->Is3DObj());
-    aMap[u"IsUNOObject"_ustr] = OUString::boolean(pObject->IsUnoObj());
-    aMap[u"MoveProtected"_ustr] = OUString::boolean(pObject->IsMoveProtect());
-    aMap[u"ResizeProtected"_ustr] = 
OUString::boolean(pObject->IsResizeProtect());
-    aMap[u"Printable"_ustr] = OUString::boolean(pObject->IsPrintable());
-    aMap[u"Visible"_ustr] = OUString::boolean(pObject->IsVisible());
-    aMap[u"HasText"_ustr] = OUString::boolean(pObject->HasText());
-
-    return aMap;
-}
-
-void SdrUIObject::execute(const OUString& rAction, const StringMap& 
rParameters)
-{
-    SdrObject* pObj = get_object();
-    if (!pObj)
-        return;
-
-    if (rAction == "MOVE")
-    {
-        auto itrNX = rParameters.find(u"X"_ustr);
-        if (itrNX == rParameters.end())
-            throw css::uno::RuntimeException(u"missing parameter X"_ustr);
-
-        auto itrNY = rParameters.find(u"Y"_ustr);
-        if (itrNY == rParameters.end())
-            throw css::uno::RuntimeException(u"missing parameter Y"_ustr);
-
-        tools::Long nX = itrNX->second.toInt32();
-        tools::Long nY = itrNY->second.toInt32();
-        Size aMoveRange(nX, nY);
-        pObj->Move(aMoveRange);
-    }
-    else if (rAction == "RESIZE")
-    {
-        auto itrNX = rParameters.find(u"X"_ustr);
-        if (itrNX == rParameters.end())
-            throw css::uno::RuntimeException(u"missing parameter X"_ustr);
-
-        auto itrNY = rParameters.find(u"Y"_ustr);
-        if (itrNY == rParameters.end())
-            throw css::uno::RuntimeException(u"missing parameter Y"_ustr);
-
-        tools::Long nX = itrNX->second.toInt32();
-        tools::Long nY = itrNY->second.toInt32();
-        Point aPos(nX, nY);
-
-        auto itrFracX = rParameters.find(u"FRAC_X"_ustr);
-        if (itrFracX == rParameters.end())
-            throw css::uno::RuntimeException(u"missing parameter FRAC_X"_ustr);
-        double nFracX = itrFracX->second.toDouble();
-        Fraction aFracX(nFracX);
-
-        auto itrFracY = rParameters.find(u"FRAC_Y"_ustr);
-        if (itrFracY == rParameters.end())
-            throw css::uno::RuntimeException(u"missing parameter FRAC_Y"_ustr);
-        double nFracY = itrFracY->second.toDouble();
-        Fraction aFracY(nFracY);
-        pObj->Resize(aPos, aFracX, aFracY, true /*bRelative*/);
-    }
-    else if (rAction == "CROP")
-    {
-        // RotateFlyFrame3: Note: Crop does nothing at SdrObject
-        // anymore, see comment at SdrObject::NbcCrop
-        auto itrNX = rParameters.find(u"X"_ustr);
-        if (itrNX == rParameters.end())
-            throw css::uno::RuntimeException(u"missing parameter X"_ustr);
-
-        auto itrNY = rParameters.find(u"Y"_ustr);
-        if (itrNY == rParameters.end())
-            throw css::uno::RuntimeException(u"missing parameter Y"_ustr);
-
-        const double fX(itrNX->second.toDouble());
-        const double fY(itrNY->second.toDouble());
-        const basegfx::B2DPoint aPos(fX, fY);
-
-        auto itrFracX = rParameters.find(u"FRAC_X"_ustr);
-        if (itrFracX == rParameters.end())
-            throw css::uno::RuntimeException(u"missing parameter FRAC_X"_ustr);
-        const double fFracX(itrFracX->second.toDouble());
-
-        auto itrFracY = rParameters.find(u"FRAC_Y"_ustr);
-        if (itrFracY == rParameters.end())
-            throw css::uno::RuntimeException(u"missing parameter FRAC_Y"_ustr);
-        const double fFracY(itrFracY->second.toDouble());
-
-        pObj->Crop(aPos, fFracX, fFracY);
-    }
-    else if (rAction == "ROTATE")
-    {
-        auto itrNX = rParameters.find(u"X"_ustr);
-        if (itrNX == rParameters.end())
-            throw css::uno::RuntimeException(u"missing parameter X"_ustr);
-
-        auto itrNY = rParameters.find(u"Y"_ustr);
-        if (itrNY == rParameters.end())
-            throw css::uno::RuntimeException(u"missing parameter Y"_ustr);
-
-        tools::Long nX = itrNX->second.toInt32();
-        tools::Long nY = itrNY->second.toInt32();
-        Point aPos(nX, nY);
-
-        auto itrAngle = rParameters.find(u"ANGLE"_ustr);
-        if (itrAngle == rParameters.end())
-            throw css::uno::RuntimeException(u"missing parameter ANGLE"_ustr);
-
-        double nAngle = itrAngle->second.toDouble();
-        pObj->Rotate(aPos, Degree100(sal_Int32(nAngle)), 0, 0);
-    }
-    else if (rAction == "Mirror")
-    {
-        pObj->Mirror(Point(), Point());
-    }
-    else if (rAction == "SHEAR")
-    {
-        pObj->Shear(Point(), 0_deg100 /*nAngle*/, 0, false);
-    }
-}
-
-OUString SdrUIObject::get_type() const { return u"SdrUIObject"_ustr; }
-
 SvxColorValueSetUIObject::SvxColorValueSetUIObject(vcl::Window* pColorSetWin)
     : DrawingAreaUIObject(pColorSetWin)
     , mpColorSet(static_cast<SvxColorValueSet*>(mpController))

Reply via email to