Author: jghali
Date: Tue Jan  5 21:09:24 2021
New Revision: 24376

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=24376
Log:
Fix build failure with clang compiler

Modified:
    trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.cpp
    trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.h

Modified: trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24376&path=/trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.cpp     
(original)
+++ trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.cpp     Tue Jan 
 5 21:09:24 2021
@@ -12,7 +12,8 @@
 */
 PdfTextRecognition::PdfTextRecognition()
 {
-       m_pdfTextRegions.push_back(activePdfTextRegion);
+       m_pdfTextRegions.push_back(PdfTextRegion());
+       activePdfTextRegion = &(m_pdfTextRegions.back());
        setCharMode(AddCharMode::ADDFIRSTCHAR);
 }
 
@@ -28,8 +29,8 @@
 */
 void PdfTextRecognition::addPdfTextRegion()
 {
-       activePdfTextRegion = PdfTextRegion();
-       m_pdfTextRegions.push_back(activePdfTextRegion);
+       m_pdfTextRegions.push_back(PdfTextRegion());
+       activePdfTextRegion = &(m_pdfTextRegions.back());
        setCharMode(PdfTextRecognition::AddCharMode::ADDFIRSTCHAR);
 }
 
@@ -61,10 +62,10 @@
 */
 bool PdfTextRecognition::isNewLineOrRegion(QPointF newPosition)
 {
-       return (activePdfTextRegion.collinear(activePdfTextRegion.lastXY.y(), 
activePdfTextRegion.pdfTextRegionLines.back().baseOrigin.y()) &&
-               !activePdfTextRegion.collinear(newPosition.y(), 
activePdfTextRegion.lastXY.y()))
-               || (activePdfTextRegion.collinear(newPosition.y(), 
activePdfTextRegion.lastXY.y())
-                       && !activePdfTextRegion.isCloseToX(newPosition.x(), 
activePdfTextRegion.lastXY.x()));
+       return (activePdfTextRegion->collinear(activePdfTextRegion->lastXY.y(), 
activePdfTextRegion->pdfTextRegionLines.back().baseOrigin.y()) &&
+               !activePdfTextRegion->collinear(newPosition.y(), 
activePdfTextRegion->lastXY.y()))
+               || (activePdfTextRegion->collinear(newPosition.y(), 
activePdfTextRegion->lastXY.y())
+                       && !activePdfTextRegion->isCloseToX(newPosition.x(), 
activePdfTextRegion->lastXY.x()));
 }
 
 
@@ -97,11 +98,11 @@
 {
        //qDebug() << "AddFirstChar() '" << u << " : " << uLen;
        PdfGlyph newGlyph = PdfTextRecognition::AddCharCommon(state, x, y, dx, 
dy, u, uLen);
-       activePdfTextRegion.glyphs.push_back(newGlyph);
+       activePdfTextRegion->glyphs.push_back(newGlyph);
        setCharMode(AddCharMode::ADDBASICCHAR);
 
        //only need to be called for the very first point
-       auto success = activePdfTextRegion.addGlyphAtPoint(QPointF(x, y), 
newGlyph);
+       auto success = activePdfTextRegion->addGlyphAtPoint(QPointF(x, y), 
newGlyph);
        if (success == PdfTextRegion::LineType::FAIL)
                qDebug("FIXME: Rogue glyph detected, this should never happen 
because the cursor should move before glyphs in new regions are added.");
        return newGlyph;
@@ -113,8 +114,8 @@
 PdfGlyph PdfTextRecognition::AddBasicChar(GfxState* state, double x, double y, 
double dx, double dy, double originX, double originY, CharCode code, int 
nBytes, Unicode const* u, int uLen)
 {
        PdfGlyph newGlyph = AddCharCommon(state, x, y, dx, dy, u, uLen);
-       activePdfTextRegion.lastXY = QPointF(x, y);
-       activePdfTextRegion.glyphs.push_back(newGlyph);
+       activePdfTextRegion->lastXY = QPointF(x, y);
+       activePdfTextRegion->glyphs.push_back(newGlyph);
        return newGlyph;
 }
 
@@ -126,7 +127,7 @@
 {
        //qDebug() << "AddCharWithNewStyle() '" << u << " : " << uLen;
        auto newGlyph = AddCharCommon(state, x, y, dx, dy, u, uLen);
-       activePdfTextRegion.glyphs.push_back(newGlyph);
+       activePdfTextRegion->glyphs.push_back(newGlyph);
        return newGlyph;
 }
 
@@ -138,7 +139,7 @@
 {
        //qDebug() << "AddCharWithPreviousStyle() '" << u << " : " << uLen;
        auto newGlyph = AddCharCommon(state, x, y, dx, dy, u, uLen);
-       activePdfTextRegion.glyphs.push_back(newGlyph);
+       activePdfTextRegion->glyphs.push_back(newGlyph);
        return newGlyph;
 }
 
@@ -435,10 +436,9 @@
 void PdfTextOutputDev::updateTextPos(GfxState* state)
 {
        QPointF newPosition = QPointF(state->getCurX(), state->getCurY());
-       PdfTextRegion* activePdfTextRegion = 
&m_pdfTextRecognition.activePdfTextRegion;
-
-       if (activePdfTextRegion->isNew()
-               )
+       PdfTextRegion *activePdfTextRegion = 
m_pdfTextRecognition.activePdfTextRegion;
+
+       if (activePdfTextRegion->isNew())
        {
                activePdfTextRegion->pdfTextRegionBasenOrigin = newPosition;
                
m_pdfTextRecognition.setCharMode(PdfTextRecognition::AddCharMode::ADDFIRSTCHAR);
@@ -480,7 +480,7 @@
 void PdfTextOutputDev::renderTextFrame()
 {
        //qDebug() << "_flushText()    m_doc->currentPage()->xOffset():" << 
m_doc->currentPage()->xOffset();
-       auto activePdfTextRegion = &m_pdfTextRecognition.activePdfTextRegion;
+       auto activePdfTextRegion = m_pdfTextRecognition.activePdfTextRegion;
        if (activePdfTextRegion->glyphs.empty())
                return;
 
@@ -598,7 +598,7 @@
 void PdfTextOutputDev::beginTextObject(GfxState* state)
 {
        pushGroup();
-       if 
(!m_pdfTextRecognition.activePdfTextRegion.pdfTextRegionLines.empty())
+       if 
(!m_pdfTextRecognition.activePdfTextRegion->pdfTextRegionLines.empty())
        {
 #ifdef DEBUG_TEXT_IMPORT
                qDebug("beginTextObject: m_textRecognition.addTextRegion()");
@@ -609,12 +609,12 @@
 
 void PdfTextOutputDev::endTextObject(GfxState* state)
 {
-       if 
(!m_pdfTextRecognition.activePdfTextRegion.pdfTextRegionLines.empty())
+       if 
(!m_pdfTextRecognition.activePdfTextRegion->pdfTextRegionLines.empty())
        {
                // Add the last glyph to the textregion
-               QPointF glyphXY = 
m_pdfTextRecognition.activePdfTextRegion.lastXY;
-               
m_pdfTextRecognition.activePdfTextRegion.lastXY.setX(m_pdfTextRecognition.activePdfTextRegion.lastXY.x()
 - m_pdfTextRecognition.activePdfTextRegion.glyphs.back().dx);
-               if 
(m_pdfTextRecognition.activePdfTextRegion.addGlyphAtPoint(glyphXY, 
m_pdfTextRecognition.activePdfTextRegion.glyphs.back()) == 
PdfTextRegion::LineType::FAIL)
+               QPointF glyphXY = 
m_pdfTextRecognition.activePdfTextRegion->lastXY;
+               
m_pdfTextRecognition.activePdfTextRegion->lastXY.setX(m_pdfTextRecognition.activePdfTextRegion->lastXY.x()
 - m_pdfTextRecognition.activePdfTextRegion->glyphs.back().dx);
+               if 
(m_pdfTextRecognition.activePdfTextRegion->addGlyphAtPoint(glyphXY, 
m_pdfTextRecognition.activePdfTextRegion->glyphs.back()) == 
PdfTextRegion::LineType::FAIL)
                {
                        qDebug("FIXME: Rogue glyph detected, this should never 
happen because the cursor should move before glyphs in new regions are added.");
                }
@@ -623,7 +623,7 @@
 #endif
                renderTextFrame();
        }
-       else if 
(!m_pdfTextRecognition.activePdfTextRegion.pdfTextRegionLines.empty())
+       else if 
(!m_pdfTextRecognition.activePdfTextRegion->pdfTextRegionLines.empty())
                qDebug("FIXME:Rogue textblock");
 
        
m_pdfTextRecognition.setCharMode(PdfTextRecognition::AddCharMode::ADDFIRSTCHAR);

Modified: trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24376&path=/trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.h
==============================================================================
--- trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.h       
(original)
+++ trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.h       Tue Jan 
 5 21:09:24 2021
@@ -120,10 +120,12 @@
                m_addCharMode = mode;
        }
 
-       PdfTextRegion&& activePdfTextRegion = PdfTextRegion(); //faster and 
cleaner than calling back on the vector all the time.
+       PdfTextRegion* activePdfTextRegion = nullptr; //faster and cleaner than 
calling back on the vector all the time.
+
        void addPdfTextRegion();
        void addChar(GfxState* state, double x, double y, double dx, double dy, 
double originX, double originY, CharCode code, int nBytes, POPPLER_CONST_082 
Unicode* u, int uLen);
        bool isNewLineOrRegion(QPointF newPosition);
+
 private:
        std::vector<PdfTextRegion> m_pdfTextRegions = 
std::vector<PdfTextRegion>();
        AddCharMode m_addCharMode = AddCharMode::ADDFIRSTCHAR;


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

Reply via email to