[Libreoffice-commits] core.git: include/tools sc/source svx/source tools/source vcl/source

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Mon Apr 20 08:48:22 UTC 2020


 include/tools/gen.hxx                             |    3 +++
 sc/source/core/tool/detfunc.cxx                   |    4 ++--
 svx/source/customshapes/EnhancedCustomShape2d.cxx |    2 +-
 svx/source/svdraw/svdopath.cxx                    |    3 +--
 tools/source/generic/gen.cxx                      |    9 +++++++++
 vcl/source/control/scrbar.cxx                     |   10 ++--------
 6 files changed, 18 insertions(+), 13 deletions(-)

New commits:
commit df4c562ac613ce51d431cbb633ffe57c5305714f
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Mon Apr 20 09:29:23 2020 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Mon Apr 20 10:47:44 2020 +0200

    add tools::Rectangle::Justify
    
    so rectangles can be constructed already valid
    
    Change-Id: I3ae5e24add3c81f79dcdf863f855dca439876f11
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92521
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/include/tools/gen.hxx b/include/tools/gen.hxx
index fb4a14f1db7b..7365d60728a4 100644
--- a/include/tools/gen.hxx
+++ b/include/tools/gen.hxx
@@ -25,6 +25,7 @@
 #include <algorithm>
 #include <ostream>
 #include <config_options.h>
+#include <cassert>
 
 class SvStream;
 namespace rtl
@@ -386,6 +387,8 @@ public:
                         Rectangle( long nLeft, long nTop );
                         Rectangle( const Point& rLT, const Size& rSize );
 
+    static Rectangle    Justify( const Point& rLT, const Point& rRB );
+
     long                Left() const    { return nLeft;   }
     long                Right() const;
     long                Top() const     { return nTop;    }
diff --git a/sc/source/core/tool/detfunc.cxx b/sc/source/core/tool/detfunc.cxx
index ac1af287d1a5..4923a2f68345 100644
--- a/sc/source/core/tool/detfunc.cxx
+++ b/sc/source/core/tool/detfunc.cxx
@@ -509,7 +509,7 @@ void ScDetectiveFunc::InsertArrow( SCCOL nCol, SCROW nRow,
         *pModel,
         OBJ_LINE,
         basegfx::B2DPolyPolygon(aTempPoly));
-    pArrow->NbcSetLogicRect(tools::Rectangle(aStartPos,aEndPos));  //TODO: needed ???
+    pArrow->NbcSetLogicRect(tools::Rectangle::Justify(aStartPos,aEndPos));  //TODO: needed ???
     pArrow->SetMergedItemSetAndBroadcast(rAttrSet);
 
     pArrow->SetLayer( SC_LAYER_INTERN );
@@ -578,7 +578,7 @@ void ScDetectiveFunc::InsertToOtherTab( SCCOL nStartCol, SCROW nStartRow,
         *pModel,
         OBJ_LINE,
         basegfx::B2DPolyPolygon(aTempPoly));
-    pArrow->NbcSetLogicRect(tools::Rectangle(aStartPos,aEndPos));  //TODO: needed ???
+    pArrow->NbcSetLogicRect(tools::Rectangle::Justify(aStartPos,aEndPos));  //TODO: needed ???
 
     pArrow->SetMergedItemSetAndBroadcast(rAttrSet);
 
diff --git a/svx/source/customshapes/EnhancedCustomShape2d.cxx b/svx/source/customshapes/EnhancedCustomShape2d.cxx
index a6d74d075077..33eb60a9dd37 100644
--- a/svx/source/customshapes/EnhancedCustomShape2d.cxx
+++ b/svx/source/customshapes/EnhancedCustomShape2d.cxx
@@ -2340,7 +2340,7 @@ void EnhancedCustomShape2d::CreateSubPath(
                     sal_uInt32 nXor = bClockwise ? 3 : 2;
                     for ( sal_uInt16 i = 0; ( i < nPntCount ) && ( ( rSrcPt + 3 ) < nCoordSize ); i++ )
                     {
-                        tools::Rectangle aRect( GetPoint( seqCoordinates[ rSrcPt ], true, true ), GetPoint( seqCoordinates[ rSrcPt + 1 ], true, true ) );
+                        tools::Rectangle aRect = tools::Rectangle::Justify( GetPoint( seqCoordinates[ rSrcPt ], true, true ), GetPoint( seqCoordinates[ rSrcPt + 1 ], true, true ) );
                         if ( aRect.GetWidth() && aRect.GetHeight() )
                         {
                             Point aStart( GetPoint( seqCoordinates[ static_cast<sal_uInt16>( rSrcPt + nXor ) ], true, true ) );
diff --git a/svx/source/svdraw/svdopath.cxx b/svx/source/svdraw/svdopath.cxx
index 4ff57d767470..bba20891df41 100644
--- a/svx/source/svdraw/svdopath.cxx
+++ b/svx/source/svdraw/svdopath.cxx
@@ -1674,8 +1674,7 @@ void SdrPathObj::ImpForceLineAngle()
     aGeo.RecalcTan();
 
     // for SdrTextObj, keep aRect up to date
-    maRect = tools::Rectangle(aPoint0, aPoint1);
-    maRect.Justify();
+    maRect = tools::Rectangle::Justify(aPoint0, aPoint1);
 }
 
 void SdrPathObj::ImpForceKind()
diff --git a/tools/source/generic/gen.cxx b/tools/source/generic/gen.cxx
index 7c182818c460..7a275eea3088 100644
--- a/tools/source/generic/gen.cxx
+++ b/tools/source/generic/gen.cxx
@@ -37,6 +37,15 @@ OString Pair::toString() const
     return ss.str().c_str();
 }
 
+tools::Rectangle tools::Rectangle::Justify( const Point& rLT, const Point& rRB )
+{
+    long nLeft   = std::min(rLT.X(), rRB.X());
+    long nTop    = std::min(rLT.Y(), rRB.Y());
+    long nRight  = std::max(rLT.X(), rRB.X());
+    long nBottom = std::max(rLT.Y(), rRB.Y());
+    return Rectangle( nLeft, nTop, nRight, nBottom );
+}
+
 void tools::Rectangle::SetSize( const Size& rSize )
 {
     if ( rSize.Width() < 0 )
diff --git a/vcl/source/control/scrbar.cxx b/vcl/source/control/scrbar.cxx
index 0cf1c9c5f82c..6d313b0ffe1e 100644
--- a/vcl/source/control/scrbar.cxx
+++ b/vcl/source/control/scrbar.cxx
@@ -269,10 +269,7 @@ void ScrollBar::ImplCalc( bool bUpdate )
                      aControlRegion, ControlState::NONE, ImplControlValue(), aBoundingRegion, aTrackRegion ) )
                 maTrackRect = aTrackRegion;
             else
-            {
-                maTrackRect = tools::Rectangle( maBtn1Rect.TopRight(), maBtn2Rect.BottomLeft() );
-                maTrackRect.Justify();
-            }
+                maTrackRect = tools::Rectangle::Justify( maBtn1Rect.TopRight(), maBtn2Rect.BottomLeft() );
 
             // Check if available space is big enough for thumb ( min thumb size = ScrBar width/height )
             mnThumbPixRange = maTrackRect.Right() - maTrackRect.Left();
@@ -309,10 +306,7 @@ void ScrollBar::ImplCalc( bool bUpdate )
                      aControlRegion, ControlState::NONE, ImplControlValue(), aBoundingRegion, aTrackRegion ) )
                 maTrackRect = aTrackRegion;
             else
-            {
-                maTrackRect = tools::Rectangle( maBtn1Rect.BottomLeft()+Point(0,1), maBtn2Rect.TopRight() );
-                maTrackRect.Justify();
-            }
+                maTrackRect = tools::Rectangle::Justify( maBtn1Rect.BottomLeft()+Point(0,1), maBtn2Rect.TopRight() );
 
             // Check if available space is big enough for thumb
             mnThumbPixRange = maTrackRect.Bottom() - maTrackRect.Top();


More information about the Libreoffice-commits mailing list