Author: jghali
Date: Wed Jan 17 22:10:47 2018
New Revision: 22352

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22352
Log:
#15104: Lines sometimes reported by Preflight Verifier as "not on page"

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

Modified: trunk/Scribus/scribus/pageitem.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22352&path=/trunk/Scribus/scribus/pageitem.cpp
==============================================================================
--- trunk/Scribus/scribus/pageitem.cpp  (original)
+++ trunk/Scribus/scribus/pageitem.cpp  Wed Jan 17 22:10:47 2018
@@ -8978,7 +8978,11 @@
                        if (isLine() && (PLineEnd == Qt::FlatCap))
                                extraSpace = 0.0;
                        else
+                       {
                                extraSpace = m_lineWidth / 2.0;
+                               if ((extraSpace == 0) && m_Doc->view()) // 
Hairline case
+                                       extraSpace = 0.5 / 
m_Doc->view()->scale();
+                       }
                }
                if ((!patternStrokeVal.isEmpty()) && 
(m_Doc->docPatterns.contains(patternStrokeVal)) && (patternStrokePath))
                {
@@ -8994,9 +8998,13 @@
        else
        {
                multiLine ml = m_Doc->MLineStyles[NamedLStyle];
-               struct SingleLine& sl = ml[ml.size()-1];
-               if ((sl.Color != CommonStrings::None) && (sl.Width != 0))
+               const SingleLine& sl = ml.last();
+               if (sl.Color != CommonStrings::None)
+               {
                        extraSpace = sl.Width / 2.0;
+                       if ((extraSpace == 0) && m_Doc->view()) // Hairline case
+                               extraSpace = 0.5 / m_Doc->view()->scale();
+               }
        }
        if (m_rotation != 0)
        {
@@ -9035,7 +9043,11 @@
                if (NamedLStyle.isEmpty())
                {
                        if ((lineColor() != CommonStrings::None) || 
(!patternStrokeVal.isEmpty()) || (GrTypeStroke > 0))
+                       {
                                extraSpace = m_lineWidth / 2.0;
+                               if ((extraSpace == 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];
@@ -9050,9 +9062,13 @@
                else
                {
                        multiLine ml = m_Doc->MLineStyles[NamedLStyle];
-                       struct SingleLine& sl = ml[ml.size()-1];
-                       if ((sl.Color != CommonStrings::None) && (sl.Width != 
0))
+                       const SingleLine& sl = ml.last();
+                       if (sl.Color != CommonStrings::None)
+                       {
                                extraSpace = sl.Width / 2.0;
+                               if ((extraSpace == 0) && m_Doc->view()) // 
Hairline case
+                                       extraSpace = 0.5 / 
m_Doc->view()->scale();
+                       }
                }
        }
        if (isPathText())
@@ -9066,7 +9082,11 @@
        if (NamedLStyle.isEmpty())
        {
                if ((lineColor() != CommonStrings::None) || 
(!patternStrokeVal.isEmpty()) || (GrTypeStroke > 0))
+               {
                        extraSpace = m_lineWidth / 2.0;
+                       if ((extraSpace == 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];
@@ -9081,9 +9101,13 @@
        else
        {
                multiLine ml = m_Doc->MLineStyles[NamedLStyle];
-               struct SingleLine& sl = ml[ml.size()-1];
-               if ((sl.Color != CommonStrings::None) && (sl.Width != 0))
+               const SingleLine& sl = ml.last();
+               if (sl.Color != CommonStrings::None)
+               {
                        extraSpace = sl.Width / 2.0;
+                       if ((extraSpace == 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);
@@ -9098,7 +9122,11 @@
                if (NamedLStyle.isEmpty())
                {
                        if ((lineColor() != CommonStrings::None) || 
(!patternStrokeVal.isEmpty()) || (GrTypeStroke > 0))
+                       {
                                extraSpace = m_lineWidth;
+                               if ((extraSpace == 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];
@@ -9113,9 +9141,13 @@
                else
                {
                        multiLine ml = m_Doc->MLineStyles[NamedLStyle];
-                       struct SingleLine& sl = ml[ml.size()-1];
-                       if ((sl.Color != CommonStrings::None) && (sl.Width != 
0))
+                       const SingleLine& sl = ml.last();
+                       if (sl.Color != CommonStrings::None)
+                       {
                                extraSpace = sl.Width;
+                               if ((extraSpace == 0) && m_Doc->view()) // 
Hairline case
+                                       extraSpace = 1.0 / 
m_Doc->view()->scale();
+                       }
                }
        }
        if (isPathText())
@@ -9129,7 +9161,11 @@
        if (NamedLStyle.isEmpty())
        {
                if ((lineColor() != CommonStrings::None) || 
(!patternStrokeVal.isEmpty()) || (GrTypeStroke > 0))
+               {
                        extraSpace = m_lineWidth;
+                       if ((extraSpace == 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];
@@ -9145,8 +9181,12 @@
        {
                multiLine ml = m_Doc->MLineStyles[NamedLStyle];
                struct SingleLine& sl = ml[ml.size()-1];
-               if ((sl.Color != CommonStrings::None) && (sl.Width != 0))
+               if (sl.Color != CommonStrings::None)
+               {
                        extraSpace = sl.Width;
+                       if ((extraSpace == 0) && m_Doc->view()) // Hairline case
+                               extraSpace = 1.0 / m_Doc->view()->scale();
+               }
        }
        if (isPathText())
                return qMax(QRectF(Clip.boundingRect()).height(), m_height + 
extraSpace);
@@ -9159,7 +9199,11 @@
        if (NamedLStyle.isEmpty())
        {
                if ((lineColor() != CommonStrings::None) || 
(!patternStrokeVal.isEmpty()) || (GrTypeStroke > 0))
+               {
                        extraSpace = m_lineWidth;
+                       if ((extraSpace == 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];
@@ -9174,9 +9218,13 @@
        else
        {
                multiLine ml = m_Doc->MLineStyles[NamedLStyle];
-               struct SingleLine& sl = ml[ml.size()-1];
-               if ((sl.Color != CommonStrings::None) && (sl.Width != 0))
+               const SingleLine& sl = ml.last();
+               if (sl.Color != CommonStrings::None)
+               {
                        extraSpace = sl.Width;
+                       if ((extraSpace == 0) && m_Doc->view()) // Hairline case
+                               extraSpace = 1.0 / m_Doc->view()->scale();
+               }
        }
        return extraSpace;
 }

Modified: trunk/Scribus/scribus/pageitem_line.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22352&path=/trunk/Scribus/scribus/pageitem_line.cpp
==============================================================================
--- trunk/Scribus/scribus/pageitem_line.cpp     (original)
+++ trunk/Scribus/scribus/pageitem_line.cpp     Wed Jan 17 22:10:47 2018
@@ -272,6 +272,8 @@
                if ((lineColor() != CommonStrings::None) || 
(!patternStrokeVal.isEmpty()) || (GrTypeStroke > 0))
                {
                        extraSpace = m_lineWidth / 2.0;
+                       if ((extraSpace == 0) && m_Doc->view()) // Hairline case
+                               extraSpace = 0.5 / m_Doc->view()->scale();
                }
                if ((!patternStrokeVal.isEmpty()) && 
(m_Doc->docPatterns.contains(patternStrokeVal)) && (patternStrokePath))
                {
@@ -287,9 +289,13 @@
        else
        {
                multiLine ml = m_Doc->MLineStyles[NamedLStyle];
-               struct SingleLine& sl = ml[ml.size()-1];
-               if ((sl.Color != CommonStrings::None) && (sl.Width != 0))
+               const SingleLine& sl = ml.last();
+               if (sl.Color != CommonStrings::None)
+               {
                        extraSpace = sl.Width / 2.0;
+                       if ((extraSpace == 0) && m_Doc->view()) // Hairline case
+                               extraSpace = 0.5 / m_Doc->view()->scale();
+               }
        }
        if (m_rotation != 0)
        {


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

Reply via email to