Author: jghali
Date: Sun Jun  3 16:19:44 2018
New Revision: 22568

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22568
Log:
avoid another unnecessarily large "if" block by exiting early in 
PSLib::ProcessPageLayer() when possible

Modified:
    trunk/Scribus/scribus/pslib.cpp

Modified: trunk/Scribus/scribus/pslib.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22568&path=/trunk/Scribus/scribus/pslib.cpp
==============================================================================
--- trunk/Scribus/scribus/pslib.cpp     (original)
+++ trunk/Scribus/scribus/pslib.cpp     Sun Jun  3 16:19:44 2018
@@ -2995,51 +2995,51 @@
 bool PSLib::ProcessPageLayer(ScribusDoc* Doc, ScPage* page, ScLayer& layer, 
uint PNr, bool sep, bool farb)
 {
        bool success = true;
-       int b;
-//     int h, s, v, k;
+       
+       if (!layer.isPrintable || abortExport)
+               return true;
+
        QList<PageItem*> items;
        items = (page->pageName().isEmpty()) ? Doc->DocItems : Doc->MasterItems;
-       if (layer.isPrintable && !abortExport)
-       {
-               for (b = 0; b < items.count() && !abortExport; ++b)
-               {
-                       PageItem *item = items.at(b);
-                       if (progressDialog)
-                               ScQApp->processEvents();
-                       if (item->LayerID != layer.ID)
-                               continue;
-                       if ((!page->pageName().isEmpty()) && 
(item->asTextFrame()))
-                               continue;
-                       if ((!page->pageName().isEmpty()) && 
(item->asPathText()))
-                               continue;
-                       if ((!page->pageName().isEmpty()) && (item->asTable()))
-                               continue;
-                       if ((!page->pageName().isEmpty()) && 
(item->asImageFrame()) && ((sep) || (!farb)))
-                               continue;
-                       //if ((!Art) && (view->SelItem.count() != 0) && 
(!c->Select))
-                       if ((!psExport) && (!item->isSelected()) && 
(Doc->m_Selection->count() != 0))
-                               continue;
-                       double bLeft, bRight, bBottom, bTop;
-                       GetBleeds(page, bLeft, bRight, bBottom, bTop);
-                       double x1 = page->xOffset() - bLeft;
-                       double y1 = page->yOffset() - bTop;
-                       double w1 = page->width() + bLeft + bRight;
-                       double h1 = page->height() + bBottom + bTop;
-                       double lw = item->visualLineWidth();
-                       double x2 = item->BoundingX - lw / 2.0;
-                       double y2 = item->BoundingY - lw / 2.0;
-                       double w2 = qMax(item->BoundingW + lw, 1.0);
-                       double h2 = qMax(item->BoundingH + lw, 1.0);
-                       if (!QRectF(x2, y2, w2, h2).intersects(QRectF(x1, y1, 
w1, h1)))
-                               continue;
-                       if (item->ChangedMasterItem)
-                               continue;
-                       if ((!page->pageName().isEmpty()) && (item->OwnPage != 
static_cast<int>(page->pageNr())) && (item->OwnPage != -1))
-                               continue;
-                       success &= ProcessItem(Doc, page, item, PNr, sep, farb, 
false);
-                       if (!success)
-                               break;
-               }
+
+       for (int i = 0; i < items.count() && !abortExport; ++i)
+       {
+               PageItem *item = items.at(i);
+               if (progressDialog)
+                       ScQApp->processEvents();
+               if (item->LayerID != layer.ID)
+                       continue;
+               if ((!page->pageName().isEmpty()) && (item->asTextFrame()))
+                       continue;
+               if ((!page->pageName().isEmpty()) && (item->asPathText()))
+                       continue;
+               if ((!page->pageName().isEmpty()) && (item->asTable()))
+                       continue;
+               if ((!page->pageName().isEmpty()) && (item->asImageFrame()) && 
((sep) || (!farb)))
+                       continue;
+               //if ((!Art) && (view->SelItem.count() != 0) && (!c->Select))
+               if ((!psExport) && (!item->isSelected()) && 
(Doc->m_Selection->count() != 0))
+                       continue;
+               double bLeft, bRight, bBottom, bTop;
+               GetBleeds(page, bLeft, bRight, bBottom, bTop);
+               double x1 = page->xOffset() - bLeft;
+               double y1 = page->yOffset() - bTop;
+               double w1 = page->width() + bLeft + bRight;
+               double h1 = page->height() + bBottom + bTop;
+               double lw = item->visualLineWidth();
+               double x2 = item->BoundingX - lw / 2.0;
+               double y2 = item->BoundingY - lw / 2.0;
+               double w2 = qMax(item->BoundingW + lw, 1.0);
+               double h2 = qMax(item->BoundingH + lw, 1.0);
+               if (!QRectF(x2, y2, w2, h2).intersects(QRectF(x1, y1, w1, h1)))
+                       continue;
+               if (item->ChangedMasterItem)
+                       continue;
+               if ((!page->pageName().isEmpty()) && (item->OwnPage != 
static_cast<int>(page->pageNr())) && (item->OwnPage != -1))
+                       continue;
+               success &= ProcessItem(Doc, page, item, PNr, sep, farb, false);
+               if (!success)
+                       break;
        }
        return success;
 }


_______________________________________________
scribus-commit mailing list
scribus-commit@lists.scribus.net
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to