Author: jghali
Date: Fri Jan 22 01:31:11 2021
New Revision: 24421

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=24421
Log:
Fix incorrect code used for item/page intersection in XPS exporter

Modified:
    trunk/Scribus/scribus/plugins/export/xpsexport/xpsexplugin.cpp

Modified: trunk/Scribus/scribus/plugins/export/xpsexport/xpsexplugin.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24421&path=/trunk/Scribus/scribus/plugins/export/xpsexport/xpsexplugin.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/export/xpsexport/xpsexplugin.cpp      
(original)
+++ trunk/Scribus/scribus/plugins/export/xpsexport/xpsexplugin.cpp      Fri Jan 
22 01:31:11 2021
@@ -301,9 +301,9 @@
 
 void XPSExPlug::writePages(QDomElement &root)
 {
-       for (int a = 0; a < m_Doc->Pages->count(); a++)
-       {
-               ScPage* Page = m_Doc->Pages->at(a);
+       for (int i = 0; i < m_Doc->Pages->count(); ++i)
+       {
+               ScPage* Page = m_Doc->Pages->at(i);
 
                p_docu.setContent(QString("<FixedPage></FixedPage>"));
                QDomElement droot  = p_docu.documentElement();
@@ -321,7 +321,7 @@
 
                writePage(droot, rroot, Page);
 
-               QFile ft(baseDir + 
QString("/Documents/1/Pages/%1.fpage").arg(a+1));
+               QFile ft(baseDir + QString("/Documents/1/Pages/%1.fpage").arg(i 
+ 1));
                if (ft.open(QIODevice::WriteOnly))
                {
                        QString vo = "<?xml version=\"1.0\" encoding=\"UTF-8\" 
standalone=\"yes\"?>\n";
@@ -332,7 +332,7 @@
                        ft.close();
                }
 
-               QFile ftr(baseDir + 
QString("/Documents/1/Pages/_rels/%1.fpage.rels").arg(a+1));
+               QFile ftr(baseDir + 
QString("/Documents/1/Pages/_rels/%1.fpage.rels").arg(i + 1));
                if (ftr.open(QIODevice::WriteOnly))
                {
                        QString vo = "<?xml version=\"1.0\" encoding=\"UTF-8\" 
standalone=\"yes\"?>\n";
@@ -344,7 +344,7 @@
                }
 
                QDomElement rel1 = f_docu.createElement("PageContent");
-               rel1.setAttribute("Source", QString("Pages/%1.fpage").arg(a+1));
+               rel1.setAttribute("Source", QString("Pages/%1.fpage").arg(i + 
1));
                root.appendChild(rel1);
                p_docu.clear();
                r_docu.clear();
@@ -395,11 +395,12 @@
                double y = page->yOffset();
                double w = page->width();
                double h = page->height();
-               double x2 = item->BoundingX;
-               double y2 = item->BoundingY;
-               double w2 = item->BoundingW;
-               double h2 = item->BoundingH;
-               if (!( qMax( x, x2 ) <= qMin( x+w, x2+w2 ) && qMax( y, y2 ) <= 
qMin( y+h, y2+h2 )))
+               double lw = item->visualLineWidth();
+               double x2 = item->BoundingX - lw / 2.0;
+               double y2 = item->BoundingY - lw / 2.0;
+               double w2 = item->BoundingW + lw;
+               double h2 = item->BoundingH + lw;
+               if (!QRectF(x2, y2, w2, h2).intersects(QRectF(x, y, w, h)))
                        continue;
                if ((!page->pageNameEmpty()) && (item->OwnPage != 
static_cast<int>(page->pageNr())) && (item->OwnPage != -1))
                        continue;


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

Reply via email to