Author: jghali
Date: Tue Dec 10 05:16:58 2019
New Revision: 23410

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=23410
Log:
Simplify visualXPos(), visualYPos(), visualWidth() and visualHeight() 
implementation by reusing visualLineWidth()

Modified:
    trunk/Scribus/scribus/pageitem.cpp
    trunk/Scribus/scribus/pageitem.h
    trunk/Scribus/scribus/pageitem_line.cpp
    trunk/Scribus/scribus/pageitem_line.h
    trunk/Scribus/scribus/pageitem_pathtext.cpp
    trunk/Scribus/scribus/pageitem_pathtext.h

Modified: trunk/Scribus/scribus/pageitem.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23410&path=/trunk/Scribus/scribus/pageitem.cpp
==============================================================================
--- trunk/Scribus/scribus/pageitem.cpp  (original)
+++ trunk/Scribus/scribus/pageitem.cpp  Tue Dec 10 05:16:58 2019
@@ -8954,42 +8954,7 @@
        double miny =  std::numeric_limits<double>::max();
        double maxx = -std::numeric_limits<double>::max();
        double maxy = -std::numeric_limits<double>::max();
-       double extraSpace = 0.0;
-       if (NamedLStyle.isEmpty())
-       {
-               if ((lineColor() != CommonStrings::None) || 
(!patternStrokeVal.isEmpty()) || (GrTypeStroke > 0))
-               {
-                       if (isLine() && (PLineEnd == Qt::FlatCap))
-                               extraSpace = 0.0;
-                       else
-                       {
-                               extraSpace = m_lineWidth / 2.0;
-                               if ((extraSpace == 0.0) && m_Doc->view()) // 
Hairline case
-                                       extraSpace = 0.5 / 
m_Doc->view()->scale();
-                       }
-               }
-               if ((!patternStrokeVal.isEmpty()) && 
(m_Doc->docPatterns.contains(patternStrokeVal)) && (patternStrokePath))
-               {
-                       ScPattern *pat = &m_Doc->docPatterns[patternStrokeVal];
-                       QTransform mat;
-                       mat.rotate(patternStrokeRotation);
-                       mat.scale(patternStrokeScaleX / 100.0, 
patternStrokeScaleY / 100.0);
-                       QRectF p1R = QRectF(0, 0, pat->width / 2.0, pat->height 
/ 2.0);
-                       QRectF p2R = mat.map(p1R).boundingRect();
-                       extraSpace = p2R.height();
-               }
-       }
-       else
-       {
-               multiLine ml = m_Doc->MLineStyles[NamedLStyle];
-               const SingleLine& sl = ml.last();
-               if (sl.Color != CommonStrings::None)
-               {
-                       extraSpace = sl.Width / 2.0;
-                       if ((extraSpace == 0.0) && m_Doc->view()) // Hairline 
case
-                               extraSpace = 0.5 / m_Doc->view()->scale();
-               }
-       }
+       double extraSpace = visualLineWidth() / 2.0;
        if (m_rotation != 0)
        {
                FPointArray pb;
@@ -9021,160 +8986,26 @@
 
 double PageItem::visualXPos() const
 {
-       double extraSpace = 0.0;
-       if (!isLine())
-       {
-               if (NamedLStyle.isEmpty())
-               {
-                       if ((lineColor() != CommonStrings::None) || 
(!patternStrokeVal.isEmpty()) || (GrTypeStroke > 0))
-                       {
-                               extraSpace = m_lineWidth / 2.0;
-                               if ((extraSpace == 0.0) && m_Doc->view()) // 
Hairline case
-                                       extraSpace = 0.5 / 
m_Doc->view()->scale();
-                       }
-                       if ((!patternStrokeVal.isEmpty()) && 
(m_Doc->docPatterns.contains(patternStrokeVal)) && (patternStrokePath))
-                       {
-                               ScPattern *pat = 
&m_Doc->docPatterns[patternStrokeVal];
-                               QTransform mat;
-                               mat.rotate(patternStrokeRotation);
-                               mat.scale(patternStrokeScaleX / 100.0, 
patternStrokeScaleY / 100.0);
-                               QRectF p1R = QRectF(0, 0, pat->width / 2.0, 
pat->height / 2.0);
-                               QRectF p2R = mat.map(p1R).boundingRect();
-                               extraSpace = p2R.height();
-                       }
-               }
-               else
-               {
-                       multiLine ml = m_Doc->MLineStyles[NamedLStyle];
-                       const SingleLine& sl = ml.last();
-                       if (sl.Color != CommonStrings::None)
-                       {
-                               extraSpace = sl.Width / 2.0;
-                               if ((extraSpace == 0.0) && m_Doc->view()) // 
Hairline case
-                                       extraSpace = 0.5 / 
m_Doc->view()->scale();
-                       }
-               }
-       }
-       if (isPathText())
-               return qMin(m_xPos + QRectF(Clip.boundingRect()).x(), m_xPos - 
extraSpace);
+       double extraSpace = visualLineWidth() / 2.0;
        return m_xPos - extraSpace;
 }
 
 double PageItem::visualYPos() const
 {
-       double extraSpace = 0.0;
-       if (NamedLStyle.isEmpty())
-       {
-               if ((lineColor() != CommonStrings::None) || 
(!patternStrokeVal.isEmpty()) || (GrTypeStroke > 0))
-               {
-                       extraSpace = m_lineWidth / 2.0;
-                       if ((extraSpace == 0.0) && m_Doc->view()) // Hairline 
case
-                               extraSpace = 0.5 / m_Doc->view()->scale();
-               }
-               if ((!patternStrokeVal.isEmpty()) && 
(m_Doc->docPatterns.contains(patternStrokeVal)) && (patternStrokePath))
-               {
-                       ScPattern *pat = &m_Doc->docPatterns[patternStrokeVal];
-                       QTransform mat;
-                       mat.rotate(patternStrokeRotation);
-                       mat.scale(patternStrokeScaleX / 100.0, 
patternStrokeScaleY / 100.0);
-                       QRectF p1R = QRectF(0, 0, pat->width / 2.0, pat->height 
/ 2.0);
-                       QRectF p2R = mat.map(p1R).boundingRect();
-                       extraSpace = p2R.height();
-               }
-       }
-       else
-       {
-               multiLine ml = m_Doc->MLineStyles[NamedLStyle];
-               const SingleLine& sl = ml.last();
-               if (sl.Color != CommonStrings::None)
-               {
-                       extraSpace = sl.Width / 2.0;
-                       if ((extraSpace == 0.0) && m_Doc->view()) // Hairline 
case
-                               extraSpace = 0.5 / m_Doc->view()->scale();
-               }
-       }
-       if (isPathText())
-               return qMin(m_yPos + QRectF(Clip.boundingRect()).y(), m_yPos - 
extraSpace);
+       double extraSpace = visualLineWidth() / 2.0;
        return m_yPos - extraSpace;
 }
 
 double PageItem::visualWidth() const
 {
-       double extraSpace = 0.0;
-       if (!isLine())
-       {
-               if (NamedLStyle.isEmpty())
-               {
-                       if ((lineColor() != CommonStrings::None) || 
(!patternStrokeVal.isEmpty()) || (GrTypeStroke > 0))
-                       {
-                               extraSpace = m_lineWidth;
-                               if ((extraSpace == 0.0) && m_Doc->view()) // 
Hairline case
-                                       extraSpace = 1.0 / 
m_Doc->view()->scale();
-                       }
-                       if ((!patternStrokeVal.isEmpty()) && 
(m_Doc->docPatterns.contains(patternStrokeVal)) && (patternStrokePath))
-                       {
-                               ScPattern *pat = 
&m_Doc->docPatterns[patternStrokeVal];
-                               QTransform mat;
-                               mat.rotate(patternStrokeRotation);
-                               mat.scale(patternStrokeScaleX / 100.0, 
patternStrokeScaleY / 100.0);
-                               QRectF p1R = QRectF(0, 0, pat->width, 
pat->height);
-                               QRectF p2R = mat.map(p1R).boundingRect();
-                               extraSpace = p2R.height();
-                       }
-               }
-               else
-               {
-                       multiLine ml = m_Doc->MLineStyles[NamedLStyle];
-                       const SingleLine& sl = ml.last();
-                       if (sl.Color != CommonStrings::None)
-                       {
-                               extraSpace = sl.Width;
-                               if ((extraSpace == 0.0) && m_Doc->view()) // 
Hairline case
-                                       extraSpace = 1.0 / 
m_Doc->view()->scale();
-                       }
-               }
-       }
-       if (isPathText())
-               return qMax(QRectF(Clip.boundingRect()).width(), m_width + 
extraSpace);
+       double extraSpace = visualLineWidth();
        return m_width + extraSpace;
 }
 
 double PageItem::visualHeight() const
 {
-       double extraSpace = 0.0;
-       if (NamedLStyle.isEmpty())
-       {
-               if ((lineColor() != CommonStrings::None) || 
(!patternStrokeVal.isEmpty()) || (GrTypeStroke > 0))
-               {
-                       extraSpace = m_lineWidth;
-                       if ((extraSpace == 0.0) && m_Doc->view()) // Hairline 
case
-                               extraSpace = 1.0 / m_Doc->view()->scale();
-               }
-               if ((!patternStrokeVal.isEmpty()) && 
(m_Doc->docPatterns.contains(patternStrokeVal)) && (patternStrokePath))
-               {
-                       ScPattern *pat = &m_Doc->docPatterns[patternStrokeVal];
-                       QTransform mat;
-                       mat.rotate(patternStrokeRotation);
-                       mat.scale(patternStrokeScaleX / 100.0, 
patternStrokeScaleY / 100.0);
-                       QRectF p1R = QRectF(0, 0, pat->width, pat->height);
-                       QRectF p2R = mat.map(p1R).boundingRect();
-                       extraSpace = p2R.height();
-               }
-       }
-       else
-       {
-               multiLine ml = m_Doc->MLineStyles[NamedLStyle];
-               struct SingleLine& sl = ml[ml.size()-1];
-               if (sl.Color != CommonStrings::None)
-               {
-                       extraSpace = sl.Width;
-                       if ((extraSpace == 0.0) && m_Doc->view()) // Hairline 
case
-                               extraSpace = 1.0 / m_Doc->view()->scale();
-               }
-       }
-       if (isPathText())
-               return qMax(QRectF(Clip.boundingRect()).height(), m_height + 
extraSpace);
-       return isLine() ? extraSpace : m_height + extraSpace;
+       double extraSpace = visualLineWidth();
+       return m_height + extraSpace;
 }
 
 double PageItem::visualLineWidth() const

Modified: trunk/Scribus/scribus/pageitem.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23410&path=/trunk/Scribus/scribus/pageitem.h
==============================================================================
--- trunk/Scribus/scribus/pageitem.h    (original)
+++ trunk/Scribus/scribus/pageitem.h    Tue Dec 10 05:16:58 2019
@@ -501,8 +501,8 @@
        //Position
        double xPos() const { return m_xPos; }
        double yPos() const { return m_yPos; }
-       double visualXPos() const;
-       double visualYPos() const;
+       virtual double visualXPos() const;
+       virtual double visualYPos() const;
        FPoint xyPos() const { return FPoint(m_xPos, m_yPos); }
        void setXPos(double, bool drawingOnly=false);
        void setYPos(double, bool drawingOnly=false);
@@ -511,8 +511,8 @@
        //Size
        double width() const override { return m_width; }
        double height() const override { return m_height; }
-       double visualWidth() const;
-       double visualHeight() const;
+       virtual double visualWidth() const;
+       virtual double visualHeight() const;
        double visualLineWidth() const;
        void setWidth(double);
        void setHeight(double);

Modified: trunk/Scribus/scribus/pageitem_line.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23410&path=/trunk/Scribus/scribus/pageitem_line.cpp
==============================================================================
--- trunk/Scribus/scribus/pageitem_line.cpp     (original)
+++ trunk/Scribus/scribus/pageitem_line.cpp     Tue Dec 10 05:16:58 2019
@@ -478,3 +478,25 @@
 
        return arrowRect;
 }
+
+double PageItem_Line::visualXPos() const
+{
+       return m_xPos;
+}
+
+double PageItem_Line::visualYPos() const
+{
+       double extraSpace = visualLineWidth() / 2.0;
+       return m_yPos - extraSpace;
+}
+
+double PageItem_Line::visualWidth() const
+{
+       return m_width;
+}
+
+double PageItem_Line::visualHeight() const
+{
+       double extraSpace = visualLineWidth();
+       return extraSpace;
+}

Modified: trunk/Scribus/scribus/pageitem_line.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23410&path=/trunk/Scribus/scribus/pageitem_line.h
==============================================================================
--- trunk/Scribus/scribus/pageitem_line.h       (original)
+++ trunk/Scribus/scribus/pageitem_line.h       Tue Dec 10 05:16:58 2019
@@ -58,6 +58,11 @@
 
        QRectF getEndArrowBoundingRect() const override;
        QRectF getEndArrowOldBoundingRect() const override;
+
+       double visualXPos() const override;
+       double visualYPos() const override;
+       double visualWidth() const override;
+       double visualHeight() const override;
        
 protected:
        void DrawObj_Item(ScPainter *p, QRectF e) override;

Modified: trunk/Scribus/scribus/pageitem_pathtext.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23410&path=/trunk/Scribus/scribus/pageitem_pathtext.cpp
==============================================================================
--- trunk/Scribus/scribus/pageitem_pathtext.cpp (original)
+++ trunk/Scribus/scribus/pageitem_pathtext.cpp Tue Dec 10 05:16:58 2019
@@ -421,3 +421,27 @@
        totalRect = 
totalRect.united(QRectF(clipTrans.mapRect(Clip.boundingRect())));
        totalRect.getCoords(x1, y1, x2, y2);
 }
+
+double PageItem_PathText::visualXPos() const
+{
+       double extraSpace = visualLineWidth() / 2.0;
+       return qMin(m_xPos + QRectF(Clip.boundingRect()).x(), m_xPos - 
extraSpace);
+}
+
+double PageItem_PathText::visualYPos() const
+{
+       double extraSpace = visualLineWidth() / 2.0;
+       return qMin(m_yPos + QRectF(Clip.boundingRect()).y(), m_yPos - 
extraSpace);
+}
+
+double PageItem_PathText::visualWidth() const
+{
+       double extraSpace = visualLineWidth();
+       return qMax(QRectF(Clip.boundingRect()).width(), m_width + extraSpace);
+}
+
+double PageItem_PathText::visualHeight() const
+{
+       double extraSpace = visualLineWidth();
+       return qMax(QRectF(Clip.boundingRect()).height(), m_height + 
extraSpace);
+}

Modified: trunk/Scribus/scribus/pageitem_pathtext.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23410&path=/trunk/Scribus/scribus/pageitem_pathtext.h
==============================================================================
--- trunk/Scribus/scribus/pageitem_pathtext.h   (original)
+++ trunk/Scribus/scribus/pageitem_pathtext.h   Tue Dec 10 05:16:58 2019
@@ -49,6 +49,11 @@
 
        void getVisualBoundingRect(double *x1, double *y1, double *x2, double 
*y2) const override;
 
+       double visualXPos() const override;
+       double visualYPos() const override;
+       double visualWidth() const override;
+       double visualHeight() const override;
+
 protected:
        void DrawObj_Item(ScPainter *p, QRectF e) override;
 


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to