poppler/GfxState.cc | 14 poppler/TextOutputDev.cc | 4 poppler/TextOutputDev.h | 6 qt4/src/poppler-annotation.cc | 4 qt4/src/poppler-document.cc | 3 qt4/src/poppler-fontinfo.cc | 3 qt4/src/poppler-form.cc | 3 qt4/src/poppler-optcontent.cc | 2 qt4/src/poppler-page.cc | 1 qt5/src/poppler-annotation.cc | 612 +++++++++++++++++++++--------------------- qt5/src/poppler-document.cc | 3 qt5/src/poppler-fontinfo.cc | 3 qt5/src/poppler-form.cc | 3 qt5/src/poppler-optcontent.cc | 2 qt5/src/poppler-page.cc | 1 qt5/src/poppler-private.cc | 18 - 16 files changed, 348 insertions(+), 334 deletions(-)
New commits: commit fc69a5e7dab48636946282e5d4b7be77e650023c Author: Albert Astals Cid <[email protected]> Date: Tue Sep 8 17:48:49 2015 +0200 Qt5: Minor optimizations Call reserve on containers Use QStringLiteral/QLatin1String diff --git a/qt5/src/poppler-annotation.cc b/qt5/src/poppler-annotation.cc index 1de4903..5457ef5 100644 --- a/qt5/src/poppler-annotation.cc +++ b/qt5/src/poppler-annotation.cc @@ -1,5 +1,5 @@ /* poppler-annotation.cc: qt interface to poppler - * Copyright (C) 2006, 2009, 2012-2014 Albert Astals Cid <[email protected]> + * Copyright (C) 2006, 2009, 2012-2015 Albert Astals Cid <[email protected]> * Copyright (C) 2006, 2008, 2010 Pino Toscano <[email protected]> * Copyright (C) 2012, Guillermo A. Amaral B. <[email protected]> * Copyright (C) 2012-2014 Fabio D'Urso <[email protected]> @@ -58,12 +58,12 @@ namespace Poppler { Annotation * AnnotationUtils::createAnnotation( const QDomElement & annElement ) { // safety check on annotation element - if ( !annElement.hasAttribute( "type" ) ) + if ( !annElement.hasAttribute( QStringLiteral("type") ) ) return 0; // build annotation of given type Annotation * annotation = 0; - int typeNumber = annElement.attribute( "type" ).toInt(); + int typeNumber = annElement.attribute( QStringLiteral("type") ).toInt(); switch ( typeNumber ) { case Annotation::AText: @@ -97,7 +97,7 @@ void AnnotationUtils::storeAnnotation( const Annotation * ann, QDomElement & ann QDomDocument & document ) { // save annotation's type as element's attribute - annElement.setAttribute( "type", (uint)ann->subType() ); + annElement.setAttribute( QStringLiteral("type"), (uint)ann->subType() ); // append all annotation data as children of this node ann->store( annElement, document ); @@ -1073,7 +1073,7 @@ Annotation::Annotation( AnnotationPrivate &dd, const QDomNode &annNode ) Q_D( Annotation ); // get the [base] element of the annotation node - QDomElement e = AnnotationUtils::findChildElement( annNode, "base" ); + QDomElement e = AnnotationUtils::findChildElement( annNode, QStringLiteral("base") ); if ( e.isNull() ) return; @@ -1081,24 +1081,24 @@ Annotation::Annotation( AnnotationPrivate &dd, const QDomNode &annNode ) Popup w; // parse -contents- attributes - if ( e.hasAttribute( "author" ) ) - setAuthor(e.attribute( "author" )); - if ( e.hasAttribute( "contents" ) ) - setContents(e.attribute( "contents" )); - if ( e.hasAttribute( "uniqueName" ) ) - setUniqueName(e.attribute( "uniqueName" )); - if ( e.hasAttribute( "modifyDate" ) ) - setModificationDate(QDateTime::fromString( e.attribute( "modifyDate" ) )); - if ( e.hasAttribute( "creationDate" ) ) - setCreationDate(QDateTime::fromString( e.attribute( "creationDate" ) )); + if ( e.hasAttribute( QStringLiteral("author") ) ) + setAuthor(e.attribute( QStringLiteral("author") )); + if ( e.hasAttribute( QStringLiteral("contents") ) ) + setContents(e.attribute( QStringLiteral("contents") )); + if ( e.hasAttribute( QStringLiteral("uniqueName") ) ) + setUniqueName(e.attribute( QStringLiteral("uniqueName") )); + if ( e.hasAttribute( QStringLiteral("modifyDate") ) ) + setModificationDate(QDateTime::fromString( e.attribute( QStringLiteral("modifyDate") ) )); + if ( e.hasAttribute( QStringLiteral("creationDate") ) ) + setCreationDate(QDateTime::fromString( e.attribute( QStringLiteral("creationDate") ) )); // parse -other- attributes - if ( e.hasAttribute( "flags" ) ) - setFlags(e.attribute( "flags" ).toInt()); - if ( e.hasAttribute( "color" ) ) - s.setColor(QColor( e.attribute( "color" ) )); - if ( e.hasAttribute( "opacity" ) ) - s.setOpacity(e.attribute( "opacity" ).toDouble()); + if ( e.hasAttribute( QStringLiteral("flags") ) ) + setFlags(e.attribute( QStringLiteral("flags") ).toInt()); + if ( e.hasAttribute( QStringLiteral("color") ) ) + s.setColor(QColor( e.attribute( QStringLiteral("color") ) )); + if ( e.hasAttribute( QStringLiteral("opacity") ) ) + s.setOpacity(e.attribute( QStringLiteral("opacity") ).toDouble()); // parse -the-subnodes- (describing Style, Window, Revision(s) structures) // Note: all subnodes if present must be 'attributes complete' @@ -1109,22 +1109,22 @@ Annotation::Annotation( AnnotationPrivate &dd, const QDomNode &annNode ) eSubNode = eSubNode.nextSibling(); // parse boundary - if ( ee.tagName() == "boundary" ) + if ( ee.tagName() == QLatin1String("boundary") ) { QRectF brect; - brect.setLeft(ee.attribute( "l" ).toDouble()); - brect.setTop(ee.attribute( "t" ).toDouble()); - brect.setRight(ee.attribute( "r" ).toDouble()); - brect.setBottom(ee.attribute( "b" ).toDouble()); + brect.setLeft(ee.attribute( QStringLiteral("l") ).toDouble()); + brect.setTop(ee.attribute( QStringLiteral("t") ).toDouble()); + brect.setRight(ee.attribute( QStringLiteral("r") ).toDouble()); + brect.setBottom(ee.attribute( QStringLiteral("b") ).toDouble()); setBoundary(brect); } // parse penStyle if not default - else if ( ee.tagName() == "penStyle" ) + else if ( ee.tagName() == QLatin1String("penStyle") ) { - s.setWidth(ee.attribute( "width" ).toDouble()); - s.setLineStyle((LineStyle)ee.attribute( "style" ).toInt()); - s.setXCorners(ee.attribute( "xcr" ).toDouble()); - s.setYCorners(ee.attribute( "ycr" ).toDouble()); + s.setWidth(ee.attribute( QStringLiteral("width") ).toDouble()); + s.setLineStyle((LineStyle)ee.attribute( QStringLiteral("style") ).toInt()); + s.setXCorners(ee.attribute( QStringLiteral("xcr") ).toDouble()); + s.setYCorners(ee.attribute( QStringLiteral("ycr") ).toDouble()); // Try to parse dash array (new format) QVector<double> dashArray; @@ -1135,55 +1135,55 @@ Annotation::Annotation( AnnotationPrivate &dd, const QDomNode &annNode ) QDomElement eee = eeSubNode.toElement(); eeSubNode = eeSubNode.nextSibling(); - if ( eee.tagName() != "dashsegm" ) + if ( eee.tagName() != QLatin1String("dashsegm") ) continue; - dashArray.append(eee.attribute( "len" ).toDouble()); + dashArray.append(eee.attribute( QStringLiteral("len") ).toDouble()); } // If no segments were found use marks/spaces (old format) if ( dashArray.size() == 0 ) { - dashArray.append(ee.attribute( "marks" ).toDouble()); - dashArray.append(ee.attribute( "spaces" ).toDouble()); + dashArray.append(ee.attribute( QStringLiteral("marks") ).toDouble()); + dashArray.append(ee.attribute( QStringLiteral("spaces") ).toDouble()); } s.setDashArray(dashArray); } // parse effectStyle if not default - else if ( ee.tagName() == "penEffect" ) + else if ( ee.tagName() == QLatin1String("penEffect") ) { - s.setLineEffect((LineEffect)ee.attribute( "effect" ).toInt()); - s.setEffectIntensity(ee.attribute( "intensity" ).toDouble()); + s.setLineEffect((LineEffect)ee.attribute( QStringLiteral("effect") ).toInt()); + s.setEffectIntensity(ee.attribute( QStringLiteral("intensity") ).toDouble()); } // parse window if present - else if ( ee.tagName() == "window" ) + else if ( ee.tagName() == QLatin1String("window") ) { QRectF geom; - geom.setX(ee.attribute( "top" ).toDouble()); - geom.setY(ee.attribute( "left" ).toDouble()); + geom.setX(ee.attribute( QStringLiteral("top") ).toDouble()); + geom.setY(ee.attribute( QStringLiteral("left") ).toDouble()); - if (ee.hasAttribute("widthDouble")) - geom.setWidth(ee.attribute( "widthDouble" ).toDouble()); + if (ee.hasAttribute(QStringLiteral("widthDouble"))) + geom.setWidth(ee.attribute( QStringLiteral("widthDouble") ).toDouble()); else - geom.setWidth(ee.attribute( "width" ).toDouble()); + geom.setWidth(ee.attribute( QStringLiteral("width") ).toDouble()); - if (ee.hasAttribute("widthDouble")) - geom.setHeight(ee.attribute( "heightDouble" ).toDouble()); + if (ee.hasAttribute(QStringLiteral("widthDouble"))) + geom.setHeight(ee.attribute( QStringLiteral("heightDouble") ).toDouble()); else - geom.setHeight(ee.attribute( "height" ).toDouble()); + geom.setHeight(ee.attribute( QStringLiteral("height") ).toDouble()); w.setGeometry(geom); - w.setFlags(ee.attribute( "flags" ).toInt()); - w.setTitle(ee.attribute( "title" )); - w.setSummary(ee.attribute( "summary" )); + w.setFlags(ee.attribute( QStringLiteral("flags") ).toInt()); + w.setTitle(ee.attribute( QStringLiteral("title") )); + w.setSummary(ee.attribute( QStringLiteral("summary") )); // parse window subnodes QDomNode winNode = ee.firstChild(); for ( ; winNode.isElement(); winNode = winNode.nextSibling() ) { QDomElement winElement = winNode.toElement(); - if ( winElement.tagName() == "text" ) + if ( winElement.tagName() == QLatin1String("text") ) w.setText(winElement.firstChild().toCDATASection().data()); } } @@ -1197,15 +1197,15 @@ Annotation::Annotation( AnnotationPrivate &dd, const QDomNode &annNode ) for ( ; revNode.isElement(); revNode = revNode.nextSibling() ) { QDomElement revElement = revNode.toElement(); - if ( revElement.tagName() != "revision" ) + if ( revElement.tagName() != QLatin1String("revision") ) continue; Annotation *reply = AnnotationUtils::createAnnotation( revElement ); if (reply) // if annotation is valid, add as a revision of this annotation { - RevScope scope = (RevScope)revElement.attribute( "revScope" ).toInt(); - RevType type = (RevType)revElement.attribute( "revType" ).toInt(); + RevScope scope = (RevScope)revElement.attribute( QStringLiteral("revScope") ).toInt(); + RevType type = (RevType)revElement.attribute( QStringLiteral("revType") ).toInt(); d->addRevision(reply, scope, type); delete reply; } @@ -1215,7 +1215,7 @@ Annotation::Annotation( AnnotationPrivate &dd, const QDomNode &annNode ) void Annotation::storeBaseAnnotationProperties( QDomNode & annNode, QDomDocument & document ) const { // create [base] element of the annotation node - QDomElement e = document.createElement( "base" ); + QDomElement e = document.createElement( QStringLiteral("base") ); annNode.appendChild( e ); const Style s = style(); @@ -1223,44 +1223,44 @@ void Annotation::storeBaseAnnotationProperties( QDomNode & annNode, QDomDocument // store -contents- attributes if ( !author().isEmpty() ) - e.setAttribute( "author", author() ); + e.setAttribute( QStringLiteral("author"), author() ); if ( !contents().isEmpty() ) - e.setAttribute( "contents", contents() ); + e.setAttribute( QStringLiteral("contents"), contents() ); if ( !uniqueName().isEmpty() ) - e.setAttribute( "uniqueName", uniqueName() ); + e.setAttribute( QStringLiteral("uniqueName"), uniqueName() ); if ( modificationDate().isValid() ) - e.setAttribute( "modifyDate", modificationDate().toString() ); + e.setAttribute( QStringLiteral("modifyDate"), modificationDate().toString() ); if ( creationDate().isValid() ) - e.setAttribute( "creationDate", creationDate().toString() ); + e.setAttribute( QStringLiteral("creationDate"), creationDate().toString() ); // store -other- attributes if ( flags() ) - e.setAttribute( "flags", flags() ); + e.setAttribute( QStringLiteral("flags"), flags() ); if ( s.color().isValid() ) - e.setAttribute( "color", s.color().name() ); + e.setAttribute( QStringLiteral("color"), s.color().name() ); if ( s.opacity() != 1.0 ) - e.setAttribute( "opacity", QString::number( s.opacity() ) ); + e.setAttribute( QStringLiteral("opacity"), QString::number( s.opacity() ) ); // Sub-Node-1 - boundary const QRectF brect = boundary(); - QDomElement bE = document.createElement( "boundary" ); + QDomElement bE = document.createElement( QStringLiteral("boundary") ); e.appendChild( bE ); - bE.setAttribute( "l", QString::number( (double)brect.left() ) ); - bE.setAttribute( "t", QString::number( (double)brect.top() ) ); - bE.setAttribute( "r", QString::number( (double)brect.right() ) ); - bE.setAttribute( "b", QString::number( (double)brect.bottom() ) ); + bE.setAttribute( QStringLiteral("l"), QString::number( (double)brect.left() ) ); + bE.setAttribute( QStringLiteral("t"), QString::number( (double)brect.top() ) ); + bE.setAttribute( QStringLiteral("r"), QString::number( (double)brect.right() ) ); + bE.setAttribute( QStringLiteral("b"), QString::number( (double)brect.bottom() ) ); // Sub-Node-2 - penStyle const QVector<double> dashArray = s.dashArray(); if ( s.width() != 1 || s.lineStyle() != Solid || s.xCorners() != 0 || s.yCorners() != 0.0 || dashArray.size() != 1 || dashArray[0] != 3 ) { - QDomElement psE = document.createElement( "penStyle" ); + QDomElement psE = document.createElement( QStringLiteral("penStyle") ); e.appendChild( psE ); - psE.setAttribute( "width", QString::number( s.width() ) ); - psE.setAttribute( "style", (int)s.lineStyle() ); - psE.setAttribute( "xcr", QString::number( s.xCorners() ) ); - psE.setAttribute( "ycr", QString::number( s.yCorners() ) ); + psE.setAttribute( QStringLiteral("width"), QString::number( s.width() ) ); + psE.setAttribute( QStringLiteral("style"), (int)s.lineStyle() ); + psE.setAttribute( QStringLiteral("xcr"), QString::number( s.xCorners() ) ); + psE.setAttribute( QStringLiteral("ycr"), QString::number( s.yCorners() ) ); int marks = 3, spaces = 0; // Do not break code relying on marks/spaces if (dashArray.size() != 0) @@ -1268,13 +1268,13 @@ void Annotation::storeBaseAnnotationProperties( QDomNode & annNode, QDomDocument if (dashArray.size() > 1) spaces = (int)dashArray[1]; - psE.setAttribute( "marks", marks ); - psE.setAttribute( "spaces", spaces ); + psE.setAttribute( QStringLiteral("marks"), marks ); + psE.setAttribute( QStringLiteral("spaces"), spaces ); foreach (double segm, dashArray) { - QDomElement pattE = document.createElement( "dashsegm" ); - pattE.setAttribute( "len", QString::number( segm ) ); + QDomElement pattE = document.createElement( QStringLiteral("dashsegm") ); + pattE.setAttribute( QStringLiteral("len"), QString::number( segm ) ); psE.appendChild(pattE); } } @@ -1282,32 +1282,32 @@ void Annotation::storeBaseAnnotationProperties( QDomNode & annNode, QDomDocument // Sub-Node-3 - penEffect if ( s.lineEffect() != NoEffect || s.effectIntensity() != 1.0 ) { - QDomElement peE = document.createElement( "penEffect" ); + QDomElement peE = document.createElement( QStringLiteral("penEffect") ); e.appendChild( peE ); - peE.setAttribute( "effect", (int)s.lineEffect() ); - peE.setAttribute( "intensity", QString::number( s.effectIntensity() ) ); + peE.setAttribute( QStringLiteral("effect"), (int)s.lineEffect() ); + peE.setAttribute( QStringLiteral("intensity"), QString::number( s.effectIntensity() ) ); } // Sub-Node-4 - window if ( w.flags() != -1 || !w.title().isEmpty() || !w.summary().isEmpty() || !w.text().isEmpty() ) { - QDomElement wE = document.createElement( "window" ); + QDomElement wE = document.createElement( QStringLiteral("window") ); const QRectF geom = w.geometry(); e.appendChild( wE ); - wE.setAttribute( "flags", w.flags() ); - wE.setAttribute( "top", QString::number( geom.x() ) ); - wE.setAttribute( "left", QString::number( geom.y() ) ); - wE.setAttribute( "width", (int)geom.width() ); - wE.setAttribute( "height", (int)geom.height() ); - wE.setAttribute( "widthDouble", QString::number( geom.width() ) ); - wE.setAttribute( "heightDouble", QString::number( geom.height() ) ); - wE.setAttribute( "title", w.title() ); - wE.setAttribute( "summary", w.summary() ); + wE.setAttribute( QStringLiteral("flags"), w.flags() ); + wE.setAttribute( QStringLiteral("top"), QString::number( geom.x() ) ); + wE.setAttribute( QStringLiteral("left"), QString::number( geom.y() ) ); + wE.setAttribute( QStringLiteral("width"), (int)geom.width() ); + wE.setAttribute( QStringLiteral("height"), (int)geom.height() ); + wE.setAttribute( QStringLiteral("widthDouble"), QString::number( geom.width() ) ); + wE.setAttribute( QStringLiteral("heightDouble"), QString::number( geom.height() ) ); + wE.setAttribute( QStringLiteral("title"), w.title() ); + wE.setAttribute( QStringLiteral("summary"), w.summary() ); // store window.text as a subnode, because we need escaped data if ( !w.text().isEmpty() ) { - QDomElement escapedText = document.createElement( "text" ); + QDomElement escapedText = document.createElement( QStringLiteral("text") ); wE.appendChild( escapedText ); QDomCDATASection textCData = document.createCDATASection( w.text() ); escapedText.appendChild( textCData ); @@ -1323,11 +1323,11 @@ void Annotation::storeBaseAnnotationProperties( QDomNode & annNode, QDomDocument // add all revisions as children of revisions element foreach (const Annotation *rev, revs) { - QDomElement r = document.createElement( "revision" ); + QDomElement r = document.createElement( QStringLiteral("revision") ); annNode.appendChild( r ); // set element attributes - r.setAttribute( "revScope", (int)rev->revisionScope() ); - r.setAttribute( "revType", (int)rev->revisionType() ); + r.setAttribute( QStringLiteral("revScope"), (int)rev->revisionScope() ); + r.setAttribute( QStringLiteral("revType"), (int)rev->revisionType() ); // use revision as the annotation element, so fill it up AnnotationUtils::storeAnnotation( rev, r, document ); delete rev; @@ -1840,7 +1840,7 @@ class TextAnnotationPrivate : public AnnotationPrivate TextAnnotationPrivate::TextAnnotationPrivate() : AnnotationPrivate(), textType( TextAnnotation::Linked ), - textIcon( "Note" ), inplaceAlign( 0 ), + textIcon( QStringLiteral("Note") ), inplaceAlign( 0 ), inplaceIntent( TextAnnotation::Unknown ) { } @@ -1912,24 +1912,24 @@ TextAnnotation::TextAnnotation( const QDomNode & node ) { QDomElement e = subNode.toElement(); subNode = subNode.nextSibling(); - if ( e.tagName() != "text" ) + if ( e.tagName() != QLatin1String("text") ) continue; // parse the attributes - if ( e.hasAttribute( "type" ) ) - setTextType((TextAnnotation::TextType)e.attribute( "type" ).toInt()); - if ( e.hasAttribute( "icon" ) ) - setTextIcon(e.attribute( "icon" )); - if ( e.hasAttribute( "font" ) ) + if ( e.hasAttribute( QStringLiteral("type") ) ) + setTextType((TextAnnotation::TextType)e.attribute( QStringLiteral("type") ).toInt()); + if ( e.hasAttribute( QStringLiteral("icon") ) ) + setTextIcon(e.attribute( QStringLiteral("icon") )); + if ( e.hasAttribute( QStringLiteral("font") ) ) { QFont font; - font.fromString( e.attribute( "font" ) ); + font.fromString( e.attribute( QStringLiteral("font") ) ); setTextFont(font); } - if ( e.hasAttribute( "align" ) ) - setInplaceAlign(e.attribute( "align" ).toInt()); - if ( e.hasAttribute( "intent" ) ) - setInplaceIntent((TextAnnotation::InplaceIntent)e.attribute( "intent" ).toInt()); + if ( e.hasAttribute( QStringLiteral("align") ) ) + setInplaceAlign(e.attribute( QStringLiteral("align") ).toInt()); + if ( e.hasAttribute( QStringLiteral("intent") ) ) + setInplaceIntent((TextAnnotation::InplaceIntent)e.attribute( QStringLiteral("intent") ).toInt()); // parse the subnodes QDomNode eSubNode = e.firstChild(); @@ -1938,19 +1938,19 @@ TextAnnotation::TextAnnotation( const QDomNode & node ) QDomElement ee = eSubNode.toElement(); eSubNode = eSubNode.nextSibling(); - if ( ee.tagName() == "escapedText" ) + if ( ee.tagName() == QLatin1String("escapedText") ) { setContents(ee.firstChild().toCDATASection().data()); } - else if ( ee.tagName() == "callout" ) + else if ( ee.tagName() == QLatin1String("callout") ) { QVector<QPointF> points(3); - points[0] = QPointF(ee.attribute( "ax" ).toDouble(), - ee.attribute( "ay" ).toDouble()); - points[1] = QPointF(ee.attribute( "bx" ).toDouble(), - ee.attribute( "by" ).toDouble()); - points[2] = QPointF(ee.attribute( "cx" ).toDouble(), - ee.attribute( "cy" ).toDouble()); + points[0] = QPointF(ee.attribute( QStringLiteral("ax") ).toDouble(), + ee.attribute( QStringLiteral("ay") ).toDouble()); + points[1] = QPointF(ee.attribute( QStringLiteral("bx") ).toDouble(), + ee.attribute( QStringLiteral("by") ).toDouble()); + points[2] = QPointF(ee.attribute( QStringLiteral("cx") ).toDouble(), + ee.attribute( QStringLiteral("cy") ).toDouble()); setCalloutPoints(points); } } @@ -1970,25 +1970,25 @@ void TextAnnotation::store( QDomNode & node, QDomDocument & document ) const storeBaseAnnotationProperties( node, document ); // create [text] element - QDomElement textElement = document.createElement( "text" ); + QDomElement textElement = document.createElement( QStringLiteral("text") ); node.appendChild( textElement ); // store the optional attributes if ( textType() != Linked ) - textElement.setAttribute( "type", (int)textType() ); - if ( textIcon() != "Note" ) - textElement.setAttribute( "icon", textIcon() ); + textElement.setAttribute( QStringLiteral("type"), (int)textType() ); + if ( textIcon() != QLatin1String("Note") ) + textElement.setAttribute( QStringLiteral("icon"), textIcon() ); if ( inplaceAlign() ) - textElement.setAttribute( "align", inplaceAlign() ); + textElement.setAttribute( QStringLiteral("align"), inplaceAlign() ); if ( inplaceIntent() != Unknown ) - textElement.setAttribute( "intent", (int)inplaceIntent() ); + textElement.setAttribute( QStringLiteral("intent"), (int)inplaceIntent() ); - textElement.setAttribute( "font", textFont().toString() ); + textElement.setAttribute( QStringLiteral("font"), textFont().toString() ); // Sub-Node-1 - escapedText if ( !contents().isEmpty() ) { - QDomElement escapedText = document.createElement( "escapedText" ); + QDomElement escapedText = document.createElement( QStringLiteral("escapedText") ); textElement.appendChild( escapedText ); QDomCDATASection textCData = document.createCDATASection( contents() ); escapedText.appendChild( textCData ); @@ -1997,14 +1997,14 @@ void TextAnnotation::store( QDomNode & node, QDomDocument & document ) const // Sub-Node-2 - callout if ( calloutPoint(0).x() != 0.0 ) { - QDomElement calloutElement = document.createElement( "callout" ); + QDomElement calloutElement = document.createElement( QStringLiteral("callout") ); textElement.appendChild( calloutElement ); - calloutElement.setAttribute( "ax", QString::number( calloutPoint(0).x() ) ); - calloutElement.setAttribute( "ay", QString::number( calloutPoint(0).y() ) ); - calloutElement.setAttribute( "bx", QString::number( calloutPoint(1).x() ) ); - calloutElement.setAttribute( "by", QString::number( calloutPoint(1).y() ) ); - calloutElement.setAttribute( "cx", QString::number( calloutPoint(2).x() ) ); - calloutElement.setAttribute( "cy", QString::number( calloutPoint(2).y() ) ); + calloutElement.setAttribute( QStringLiteral("ax"), QString::number( calloutPoint(0).x() ) ); + calloutElement.setAttribute( QStringLiteral("ay"), QString::number( calloutPoint(0).y() ) ); + calloutElement.setAttribute( QStringLiteral("bx"), QString::number( calloutPoint(1).x() ) ); + calloutElement.setAttribute( QStringLiteral("by"), QString::number( calloutPoint(1).y() ) ); + calloutElement.setAttribute( QStringLiteral("cx"), QString::number( calloutPoint(2).x() ) ); + calloutElement.setAttribute( QStringLiteral("cy"), QString::number( calloutPoint(2).y() ) ); } } @@ -2089,7 +2089,7 @@ QFont TextAnnotation::textFont() const { // At the moment, only font size is parsed QString style = QString::fromLatin1( da->getCString() ); - QRegExp rx("(\\d+)(\\.\\d*)? Tf"); + QRegExp rx(QStringLiteral("(\\d+)(\\.\\d*)? Tf")); if (rx.indexIn(style) != -1) font.setPointSize( rx.cap(1).toInt() ); // TODO: Other properties @@ -2363,26 +2363,26 @@ LineAnnotation::LineAnnotation( const QDomNode & node ) { QDomElement e = subNode.toElement(); subNode = subNode.nextSibling(); - if ( e.tagName() != "line" ) + if ( e.tagName() != QLatin1String("line") ) continue; // parse the attributes - if ( e.hasAttribute( "startStyle" ) ) - setLineStartStyle((LineAnnotation::TermStyle)e.attribute( "startStyle" ).toInt()); - if ( e.hasAttribute( "endStyle" ) ) - setLineEndStyle((LineAnnotation::TermStyle)e.attribute( "endStyle" ).toInt()); - if ( e.hasAttribute( "closed" ) ) - setLineClosed(e.attribute( "closed" ).toInt()); - if ( e.hasAttribute( "innerColor" ) ) - setLineInnerColor(QColor( e.attribute( "innerColor" ) )); - if ( e.hasAttribute( "leadFwd" ) ) - setLineLeadingForwardPoint(e.attribute( "leadFwd" ).toDouble()); - if ( e.hasAttribute( "leadBack" ) ) - setLineLeadingBackPoint(e.attribute( "leadBack" ).toDouble()); - if ( e.hasAttribute( "showCaption" ) ) - setLineShowCaption(e.attribute( "showCaption" ).toInt()); - if ( e.hasAttribute( "intent" ) ) - setLineIntent((LineAnnotation::LineIntent)e.attribute( "intent" ).toInt()); + if ( e.hasAttribute( QStringLiteral("startStyle") ) ) + setLineStartStyle((LineAnnotation::TermStyle)e.attribute( QStringLiteral("startStyle") ).toInt()); + if ( e.hasAttribute( QStringLiteral("endStyle") ) ) + setLineEndStyle((LineAnnotation::TermStyle)e.attribute( QStringLiteral("endStyle") ).toInt()); + if ( e.hasAttribute( QStringLiteral("closed") ) ) + setLineClosed(e.attribute( QStringLiteral("closed") ).toInt()); + if ( e.hasAttribute( QStringLiteral("innerColor") ) ) + setLineInnerColor(QColor( e.attribute( QStringLiteral("innerColor") ) )); + if ( e.hasAttribute( QStringLiteral("leadFwd") ) ) + setLineLeadingForwardPoint(e.attribute( QStringLiteral("leadFwd") ).toDouble()); + if ( e.hasAttribute( QStringLiteral("leadBack") ) ) + setLineLeadingBackPoint(e.attribute( QStringLiteral("leadBack") ).toDouble()); + if ( e.hasAttribute( QStringLiteral("showCaption") ) ) + setLineShowCaption(e.attribute( QStringLiteral("showCaption") ).toInt()); + if ( e.hasAttribute( QStringLiteral("intent") ) ) + setLineIntent((LineAnnotation::LineIntent)e.attribute( QStringLiteral("intent") ).toInt()); // parse all 'point' subnodes QLinkedList<QPointF> points; @@ -2392,10 +2392,10 @@ LineAnnotation::LineAnnotation( const QDomNode & node ) QDomElement pe = pointNode.toElement(); pointNode = pointNode.nextSibling(); - if ( pe.tagName() != "point" ) + if ( pe.tagName() != QLatin1String("point") ) continue; - QPointF p(pe.attribute( "x", "0.0" ).toDouble(), pe.attribute( "y", "0.0" ).toDouble()); + QPointF p(pe.attribute( QStringLiteral("x"), QStringLiteral("0.0") ).toDouble(), pe.attribute( QStringLiteral("y"), QStringLiteral("0.0") ).toDouble()); points.append( p ); } setLinePoints(points); @@ -2416,26 +2416,26 @@ void LineAnnotation::store( QDomNode & node, QDomDocument & document ) const storeBaseAnnotationProperties( node, document ); // create [line] element - QDomElement lineElement = document.createElement( "line" ); + QDomElement lineElement = document.createElement( QStringLiteral("line") ); node.appendChild( lineElement ); // store the attributes if ( lineStartStyle() != None ) - lineElement.setAttribute( "startStyle", (int)lineStartStyle() ); + lineElement.setAttribute( QStringLiteral("startStyle"), (int)lineStartStyle() ); if ( lineEndStyle() != None ) - lineElement.setAttribute( "endStyle", (int)lineEndStyle() ); + lineElement.setAttribute( QStringLiteral("endStyle"), (int)lineEndStyle() ); if ( isLineClosed() ) - lineElement.setAttribute( "closed", isLineClosed() ); + lineElement.setAttribute( QStringLiteral("closed"), isLineClosed() ); if ( lineInnerColor().isValid() ) - lineElement.setAttribute( "innerColor", lineInnerColor().name() ); + lineElement.setAttribute( QStringLiteral("innerColor"), lineInnerColor().name() ); if ( lineLeadingForwardPoint() != 0.0 ) - lineElement.setAttribute( "leadFwd", QString::number( lineLeadingForwardPoint() ) ); + lineElement.setAttribute( QStringLiteral("leadFwd"), QString::number( lineLeadingForwardPoint() ) ); if ( lineLeadingBackPoint() != 0.0 ) - lineElement.setAttribute( "leadBack", QString::number( lineLeadingBackPoint() ) ); + lineElement.setAttribute( QStringLiteral("leadBack"), QString::number( lineLeadingBackPoint() ) ); if ( lineShowCaption() ) - lineElement.setAttribute( "showCaption", lineShowCaption() ); + lineElement.setAttribute( QStringLiteral("showCaption"), lineShowCaption() ); if ( lineIntent() != Unknown ) - lineElement.setAttribute( "intent", lineIntent() ); + lineElement.setAttribute( QStringLiteral("intent"), lineIntent() ); // append the list of points const QLinkedList<QPointF> points = linePoints(); @@ -2445,10 +2445,10 @@ void LineAnnotation::store( QDomNode & node, QDomDocument & document ) const while ( it != end ) { const QPointF & p = *it; - QDomElement pElement = document.createElement( "point" ); + QDomElement pElement = document.createElement( QStringLiteral("point") ); lineElement.appendChild( pElement ); - pElement.setAttribute( "x", QString::number( p.x() ) ); - pElement.setAttribute( "y", QString::number( p.y() ) ); + pElement.setAttribute( QStringLiteral("x"), QString::number( p.x() ) ); + pElement.setAttribute( QStringLiteral("y"), QString::number( p.y() ) ); ++it; } } @@ -2944,14 +2944,14 @@ GeomAnnotation::GeomAnnotation( const QDomNode & node ) { QDomElement e = subNode.toElement(); subNode = subNode.nextSibling(); - if ( e.tagName() != "geom" ) + if ( e.tagName() != QLatin1String("geom") ) continue; // parse the attributes - if ( e.hasAttribute( "type" ) ) - setGeomType((GeomAnnotation::GeomType)e.attribute( "type" ).toInt()); - if ( e.hasAttribute( "color" ) ) - setGeomInnerColor(QColor( e.attribute( "color" ) )); + if ( e.hasAttribute( QStringLiteral("type") ) ) + setGeomType((GeomAnnotation::GeomType)e.attribute( QStringLiteral("type") ).toInt()); + if ( e.hasAttribute( QStringLiteral("color") ) ) + setGeomInnerColor(QColor( e.attribute( QStringLiteral("color") ) )); // loading complete break; @@ -2968,14 +2968,14 @@ void GeomAnnotation::store( QDomNode & node, QDomDocument & document ) const storeBaseAnnotationProperties( node, document ); // create [geom] element - QDomElement geomElement = document.createElement( "geom" ); + QDomElement geomElement = document.createElement( QStringLiteral("geom") ); node.appendChild( geomElement ); // append the optional attributes if ( geomType() != InscribedSquare ) - geomElement.setAttribute( "type", (int)geomType() ); + geomElement.setAttribute( QStringLiteral("type"), (int)geomType() ); if ( geomInnerColor().isValid() ) - geomElement.setAttribute( "color", geomInnerColor().name() ); + geomElement.setAttribute( QStringLiteral("color"), geomInnerColor().name() ); } Annotation::SubType GeomAnnotation::subType() const @@ -3093,6 +3093,7 @@ QList< HighlightAnnotation::Quad > HighlightAnnotationPrivate::fromQuadrilateral double MTX[6]; fillTransformationMTX(MTX); + quads.reserve(quadsCount); for (int q = 0; q < quadsCount; ++q) { HighlightAnnotation::Quad quad; @@ -3181,12 +3182,12 @@ HighlightAnnotation::HighlightAnnotation( const QDomNode & node ) { QDomElement e = subNode.toElement(); subNode = subNode.nextSibling(); - if ( e.tagName() != "hl" ) + if ( e.tagName() != QLatin1String("hl") ) continue; // parse the attributes - if ( e.hasAttribute( "type" ) ) - setHighlightType((HighlightAnnotation::HighlightType)e.attribute( "type" ).toInt()); + if ( e.hasAttribute( QStringLiteral("type") ) ) + setHighlightType((HighlightAnnotation::HighlightType)e.attribute( QStringLiteral("type") ).toInt()); // parse all 'quad' subnodes QList<HighlightAnnotation::Quad> quads; @@ -3194,21 +3195,21 @@ HighlightAnnotation::HighlightAnnotation( const QDomNode & node ) for ( ; quadNode.isElement(); quadNode = quadNode.nextSibling() ) { QDomElement qe = quadNode.toElement(); - if ( qe.tagName() != "quad" ) + if ( qe.tagName() != QLatin1String("quad") ) continue; Quad q; - q.points[0].setX(qe.attribute( "ax", "0.0" ).toDouble()); - q.points[0].setY(qe.attribute( "ay", "0.0" ).toDouble()); - q.points[1].setX(qe.attribute( "bx", "0.0" ).toDouble()); - q.points[1].setY(qe.attribute( "by", "0.0" ).toDouble()); - q.points[2].setX(qe.attribute( "cx", "0.0" ).toDouble()); - q.points[2].setY(qe.attribute( "cy", "0.0" ).toDouble()); - q.points[3].setX(qe.attribute( "dx", "0.0" ).toDouble()); - q.points[3].setY(qe.attribute( "dy", "0.0" ).toDouble()); - q.capStart = qe.hasAttribute( "start" ); - q.capEnd = qe.hasAttribute( "end" ); - q.feather = qe.attribute( "feather", "0.1" ).toDouble(); + q.points[0].setX(qe.attribute( QStringLiteral("ax"), QStringLiteral("0.0") ).toDouble()); + q.points[0].setY(qe.attribute( QStringLiteral("ay"), QStringLiteral("0.0") ).toDouble()); + q.points[1].setX(qe.attribute( QStringLiteral("bx"), QStringLiteral("0.0") ).toDouble()); + q.points[1].setY(qe.attribute( QStringLiteral("by"), QStringLiteral("0.0") ).toDouble()); + q.points[2].setX(qe.attribute( QStringLiteral("cx"), QStringLiteral("0.0") ).toDouble()); + q.points[2].setY(qe.attribute( QStringLiteral("cy"), QStringLiteral("0.0") ).toDouble()); + q.points[3].setX(qe.attribute( QStringLiteral("dx"), QStringLiteral("0.0") ).toDouble()); + q.points[3].setY(qe.attribute( QStringLiteral("dy"), QStringLiteral("0.0") ).toDouble()); + q.capStart = qe.hasAttribute( QStringLiteral("start") ); + q.capEnd = qe.hasAttribute( QStringLiteral("end") ); + q.feather = qe.attribute( QStringLiteral("feather"), QStringLiteral("0.1") ).toDouble(); quads.append( q ); } setHighlightQuads(quads); @@ -3228,12 +3229,12 @@ void HighlightAnnotation::store( QDomNode & node, QDomDocument & document ) cons storeBaseAnnotationProperties( node, document ); // create [hl] element - QDomElement hlElement = document.createElement( "hl" ); + QDomElement hlElement = document.createElement( QStringLiteral("hl") ); node.appendChild( hlElement ); // append the optional attributes if ( highlightType() != Highlight ) - hlElement.setAttribute( "type", (int)highlightType() ); + hlElement.setAttribute( QStringLiteral("type"), (int)highlightType() ); const QList<HighlightAnnotation::Quad> quads = highlightQuads(); if ( quads.count() < 1 ) @@ -3242,22 +3243,22 @@ void HighlightAnnotation::store( QDomNode & node, QDomDocument & document ) cons QList< HighlightAnnotation::Quad >::const_iterator it = quads.begin(), end = quads.end(); for ( ; it != end; ++it ) { - QDomElement quadElement = document.createElement( "quad" ); + QDomElement quadElement = document.createElement( QStringLiteral("quad") ); hlElement.appendChild( quadElement ); const Quad & q = *it; - quadElement.setAttribute( "ax", QString::number( q.points[0].x() ) ); - quadElement.setAttribute( "ay", QString::number( q.points[0].y() ) ); - quadElement.setAttribute( "bx", QString::number( q.points[1].x() ) ); - quadElement.setAttribute( "by", QString::number( q.points[1].y() ) ); - quadElement.setAttribute( "cx", QString::number( q.points[2].x() ) ); - quadElement.setAttribute( "cy", QString::number( q.points[2].y() ) ); - quadElement.setAttribute( "dx", QString::number( q.points[3].x() ) ); - quadElement.setAttribute( "dy", QString::number( q.points[3].y() ) ); + quadElement.setAttribute( QStringLiteral("ax"), QString::number( q.points[0].x() ) ); + quadElement.setAttribute( QStringLiteral("ay"), QString::number( q.points[0].y() ) ); + quadElement.setAttribute( QStringLiteral("bx"), QString::number( q.points[1].x() ) ); + quadElement.setAttribute( QStringLiteral("by"), QString::number( q.points[1].y() ) ); + quadElement.setAttribute( QStringLiteral("cx"), QString::number( q.points[2].x() ) ); + quadElement.setAttribute( QStringLiteral("cy"), QString::number( q.points[2].y() ) ); + quadElement.setAttribute( QStringLiteral("dx"), QString::number( q.points[3].x() ) ); + quadElement.setAttribute( QStringLiteral("dy"), QString::number( q.points[3].y() ) ); if ( q.capStart ) - quadElement.setAttribute( "start", 1 ); + quadElement.setAttribute( QStringLiteral("start"), 1 ); if ( q.capEnd ) - quadElement.setAttribute( "end", 1 ); - quadElement.setAttribute( "feather", QString::number( q.feather ) ); + quadElement.setAttribute( QStringLiteral("end"), 1 ); + quadElement.setAttribute( QStringLiteral("feather"), QString::number( q.feather ) ); } } @@ -3340,7 +3341,7 @@ class StampAnnotationPrivate : public AnnotationPrivate }; StampAnnotationPrivate::StampAnnotationPrivate() - : AnnotationPrivate(), stampIconName( "Draft" ) + : AnnotationPrivate(), stampIconName( QStringLiteral("Draft") ) { } @@ -3389,12 +3390,12 @@ StampAnnotation::StampAnnotation( const QDomNode & node ) { QDomElement e = subNode.toElement(); subNode = subNode.nextSibling(); - if ( e.tagName() != "stamp" ) + if ( e.tagName() != QLatin1String("stamp") ) continue; // parse the attributes - if ( e.hasAttribute( "icon" ) ) - setStampIconName(e.attribute( "icon" )); + if ( e.hasAttribute( QStringLiteral("icon") ) ) + setStampIconName(e.attribute( QStringLiteral("icon") )); // loading complete break; @@ -3411,12 +3412,12 @@ void StampAnnotation::store( QDomNode & node, QDomDocument & document ) const storeBaseAnnotationProperties( node, document ); // create [stamp] element - QDomElement stampElement = document.createElement( "stamp" ); + QDomElement stampElement = document.createElement( QStringLiteral("stamp") ); node.appendChild( stampElement ); // append the optional attributes - if ( stampIconName() != "Draft" ) - stampElement.setAttribute( "icon", stampIconName() ); + if ( stampIconName() != QLatin1String("Draft") ) + stampElement.setAttribute( QStringLiteral("icon"), stampIconName() ); } Annotation::SubType StampAnnotation::subType() const @@ -3527,7 +3528,7 @@ InkAnnotation::InkAnnotation( const QDomNode & node ) { QDomElement e = subNode.toElement(); subNode = subNode.nextSibling(); - if ( e.tagName() != "ink" ) + if ( e.tagName() != QLatin1String("ink") ) continue; // parse the 'path' subnodes @@ -3538,7 +3539,7 @@ InkAnnotation::InkAnnotation( const QDomNode & node ) QDomElement pathElement = pathNode.toElement(); pathNode = pathNode.nextSibling(); - if ( pathElement.tagName() != "path" ) + if ( pathElement.tagName() != QLatin1String("path") ) continue; // build each path parsing 'point' subnodes @@ -3549,10 +3550,10 @@ InkAnnotation::InkAnnotation( const QDomNode & node ) QDomElement pointElement = pointNode.toElement(); pointNode = pointNode.nextSibling(); - if ( pointElement.tagName() != "point" ) + if ( pointElement.tagName() != QLatin1String("point") ) continue; - QPointF p(pointElement.attribute( "x", "0.0" ).toDouble(), pointElement.attribute( "y", "0.0" ).toDouble()); + QPointF p(pointElement.attribute( QStringLiteral("x"), QStringLiteral("0.0") ).toDouble(), pointElement.attribute( QStringLiteral("y"), QStringLiteral("0.0") ).toDouble()); path.append( p ); } @@ -3577,7 +3578,7 @@ void InkAnnotation::store( QDomNode & node, QDomDocument & document ) const storeBaseAnnotationProperties( node, document ); // create [ink] element - QDomElement inkElement = document.createElement( "ink" ); + QDomElement inkElement = document.createElement( QStringLiteral("ink") ); node.appendChild( inkElement ); // append the optional attributes @@ -3587,17 +3588,17 @@ void InkAnnotation::store( QDomNode & node, QDomDocument & document ) const QList< QLinkedList<QPointF> >::const_iterator pIt = paths.begin(), pEnd = paths.end(); for ( ; pIt != pEnd; ++pIt ) { - QDomElement pathElement = document.createElement( "path" ); + QDomElement pathElement = document.createElement( QStringLiteral("path") ); inkElement.appendChild( pathElement ); const QLinkedList<QPointF> & path = *pIt; QLinkedList<QPointF>::const_iterator iIt = path.begin(), iEnd = path.end(); for ( ; iIt != iEnd; ++iIt ) { const QPointF & point = *iIt; - QDomElement pointElement = document.createElement( "point" ); + QDomElement pointElement = document.createElement( QStringLiteral("point") ); pathElement.appendChild( pointElement ); - pointElement.setAttribute( "x", QString::number( point.x() ) ); - pointElement.setAttribute( "y", QString::number( point.y() ) ); + pointElement.setAttribute( QStringLiteral("x"), QString::number( point.x() ) ); + pointElement.setAttribute( QStringLiteral("y"), QString::number( point.y() ) ); } } } @@ -3625,6 +3626,7 @@ QList< QLinkedList<QPointF> > InkAnnotation::inkPaths() const const int pathsNumber = inkann->getInkListLength(); QList< QLinkedList<QPointF> > inkPaths; + inkPaths.reserve(pathsNumber); for (int m = 0; m < pathsNumber; ++m) { // transform each path in a list of normalized points .. @@ -3716,77 +3718,77 @@ LinkAnnotation::LinkAnnotation( const QDomNode & node ) { QDomElement e = subNode.toElement(); subNode = subNode.nextSibling(); - if ( e.tagName() != "link" ) + if ( e.tagName() != QLatin1String("link") ) continue; // parse the attributes - if ( e.hasAttribute( "hlmode" ) ) - setLinkHighlightMode((LinkAnnotation::HighlightMode)e.attribute( "hlmode" ).toInt()); + if ( e.hasAttribute( QStringLiteral("hlmode") ) ) + setLinkHighlightMode((LinkAnnotation::HighlightMode)e.attribute( QStringLiteral("hlmode") ).toInt()); // parse all 'quad' subnodes QDomNode quadNode = e.firstChild(); for ( ; quadNode.isElement(); quadNode = quadNode.nextSibling() ) { QDomElement qe = quadNode.toElement(); - if ( qe.tagName() == "quad" ) + if ( qe.tagName() == QLatin1String("quad") ) { - setLinkRegionPoint(0, QPointF(qe.attribute( "ax", "0.0" ).toDouble(), - qe.attribute( "ay", "0.0" ).toDouble())); - setLinkRegionPoint(1, QPointF(qe.attribute( "bx", "0.0" ).toDouble(), - qe.attribute( "by", "0.0" ).toDouble())); - setLinkRegionPoint(2, QPointF(qe.attribute( "cx", "0.0" ).toDouble(), - qe.attribute( "cy", "0.0" ).toDouble())); - setLinkRegionPoint(3, QPointF(qe.attribute( "dx", "0.0" ).toDouble(), - qe.attribute( "dy", "0.0" ).toDouble())); + setLinkRegionPoint(0, QPointF(qe.attribute( QStringLiteral("ax"), QStringLiteral("0.0") ).toDouble(), + qe.attribute( QStringLiteral("ay"), QStringLiteral("0.0") ).toDouble())); + setLinkRegionPoint(1, QPointF(qe.attribute( QStringLiteral("bx"), QStringLiteral("0.0") ).toDouble(), + qe.attribute( QStringLiteral("by"), QStringLiteral("0.0") ).toDouble())); + setLinkRegionPoint(2, QPointF(qe.attribute( QStringLiteral("cx"), QStringLiteral("0.0") ).toDouble(), + qe.attribute( QStringLiteral("cy"), QStringLiteral("0.0") ).toDouble())); + setLinkRegionPoint(3, QPointF(qe.attribute( QStringLiteral("dx"), QStringLiteral("0.0") ).toDouble(), + qe.attribute( QStringLiteral("dy"), QStringLiteral("0.0") ).toDouble())); } - else if ( qe.tagName() == "link" ) + else if ( qe.tagName() == QLatin1String("link") ) { - QString type = qe.attribute( "type" ); - if ( type == "GoTo" ) + QString type = qe.attribute( QStringLiteral("type") ); + if ( type == QLatin1String("GoTo") ) { - Poppler::LinkGoto * go = new Poppler::LinkGoto( QRect(), qe.attribute( "filename" ), LinkDestination( qe.attribute( "destination" ) ) ); + Poppler::LinkGoto * go = new Poppler::LinkGoto( QRect(), qe.attribute( QStringLiteral("filename") ), LinkDestination( qe.attribute( QStringLiteral("destination") ) ) ); setLinkDestination(go); } - else if ( type == "Exec" ) + else if ( type == QLatin1String("Exec") ) { - Poppler::LinkExecute * exec = new Poppler::LinkExecute( QRect(), qe.attribute( "filename" ), qe.attribute( "parameters" ) ); + Poppler::LinkExecute * exec = new Poppler::LinkExecute( QRect(), qe.attribute( QStringLiteral("filename") ), qe.attribute( QStringLiteral("parameters") ) ); setLinkDestination(exec); } - else if ( type == "Browse" ) + else if ( type == QLatin1String("Browse") ) { - Poppler::LinkBrowse * browse = new Poppler::LinkBrowse( QRect(), qe.attribute( "url" ) ); + Poppler::LinkBrowse * browse = new Poppler::LinkBrowse( QRect(), qe.attribute( QStringLiteral("url") ) ); setLinkDestination(browse); } - else if ( type == "Action" ) + else if ( type == QLatin1String("Action") ) { Poppler::LinkAction::ActionType act; - QString actString = qe.attribute( "action" ); + QString actString = qe.attribute( QStringLiteral("action") ); bool found = true; - if ( actString == "PageFirst" ) + if ( actString == QLatin1String("PageFirst") ) act = Poppler::LinkAction::PageFirst; - else if ( actString == "PagePrev" ) + else if ( actString == QLatin1String("PagePrev") ) act = Poppler::LinkAction::PagePrev; - else if ( actString == "PageNext" ) + else if ( actString == QLatin1String("PageNext") ) act = Poppler::LinkAction::PageNext; - else if ( actString == "PageLast" ) + else if ( actString == QLatin1String("PageLast") ) act = Poppler::LinkAction::PageLast; - else if ( actString == "HistoryBack" ) + else if ( actString == QLatin1String("HistoryBack") ) act = Poppler::LinkAction::HistoryBack; - else if ( actString == "HistoryForward" ) + else if ( actString == QLatin1String("HistoryForward") ) act = Poppler::LinkAction::HistoryForward; - else if ( actString == "Quit" ) + else if ( actString == QLatin1String("Quit") ) act = Poppler::LinkAction::Quit; - else if ( actString == "Presentation" ) + else if ( actString == QLatin1String("Presentation") ) act = Poppler::LinkAction::Presentation; - else if ( actString == "EndPresentation" ) + else if ( actString == QLatin1String("EndPresentation") ) act = Poppler::LinkAction::EndPresentation; - else if ( actString == "Find" ) + else if ( actString == QLatin1String("Find") ) act = Poppler::LinkAction::Find; - else if ( actString == "GoToPage" ) + else if ( actString == QLatin1String("GoToPage") ) act = Poppler::LinkAction::GoToPage; - else if ( actString == "Close" ) + else if ( actString == QLatin1String("Close") ) act = Poppler::LinkAction::Close; - else if ( actString == "Print" ) + else if ( actString == QLatin1String("Print") ) act = Poppler::LinkAction::Print; else found = false; @@ -3821,27 +3823,27 @@ void LinkAnnotation::store( QDomNode & node, QDomDocument & document ) const storeBaseAnnotationProperties( node, document ); // create [hl] element - QDomElement linkElement = document.createElement( "link" ); + QDomElement linkElement = document.createElement( QStringLiteral("link") ); node.appendChild( linkElement ); // append the optional attributes if ( linkHighlightMode() != Invert ) - linkElement.setAttribute( "hlmode", (int)linkHighlightMode() ); + linkElement.setAttribute( QStringLiteral("hlmode"), (int)linkHighlightMode() ); // saving region - QDomElement quadElement = document.createElement( "quad" ); + QDomElement quadElement = document.createElement( QStringLiteral("quad") ); linkElement.appendChild( quadElement ); - quadElement.setAttribute( "ax", QString::number( linkRegionPoint(0).x() ) ); - quadElement.setAttribute( "ay", QString::number( linkRegionPoint(0).y() ) ); - quadElement.setAttribute( "bx", QString::number( linkRegionPoint(1).x() ) ); - quadElement.setAttribute( "by", QString::number( linkRegionPoint(1).y() ) ); - quadElement.setAttribute( "cx", QString::number( linkRegionPoint(2).x() ) ); - quadElement.setAttribute( "cy", QString::number( linkRegionPoint(2).y() ) ); - quadElement.setAttribute( "dx", QString::number( linkRegionPoint(3).x() ) ); - quadElement.setAttribute( "dy", QString::number( linkRegionPoint(3).y() ) ); + quadElement.setAttribute( QStringLiteral("ax"), QString::number( linkRegionPoint(0).x() ) ); + quadElement.setAttribute( QStringLiteral("ay"), QString::number( linkRegionPoint(0).y() ) ); + quadElement.setAttribute( QStringLiteral("bx"), QString::number( linkRegionPoint(1).x() ) ); + quadElement.setAttribute( QStringLiteral("by"), QString::number( linkRegionPoint(1).y() ) ); + quadElement.setAttribute( QStringLiteral("cx"), QString::number( linkRegionPoint(2).x() ) ); + quadElement.setAttribute( QStringLiteral("cy"), QString::number( linkRegionPoint(2).y() ) ); + quadElement.setAttribute( QStringLiteral("dx"), QString::number( linkRegionPoint(3).x() ) ); + quadElement.setAttribute( QStringLiteral("dy"), QString::number( linkRegionPoint(3).y() ) ); // saving link - QDomElement hyperlinkElement = document.createElement( "link" ); + QDomElement hyperlinkElement = document.createElement( QStringLiteral("link") ); linkElement.appendChild( hyperlinkElement ); if ( linkDestination() ) { @@ -3850,83 +3852,83 @@ void LinkAnnotation::store( QDomNode & node, QDomDocument & document ) const case Poppler::Link::Goto: { Poppler::LinkGoto * go = static_cast< Poppler::LinkGoto * >( linkDestination() ); - hyperlinkElement.setAttribute( "type", "GoTo" ); - hyperlinkElement.setAttribute( "filename", go->fileName() ); - hyperlinkElement.setAttribute( "destionation", go->destination().toString() ); // TODO remove for poppler 0.28 - hyperlinkElement.setAttribute( "destination", go->destination().toString() ); + hyperlinkElement.setAttribute( QStringLiteral("type"), QStringLiteral("GoTo") ); + hyperlinkElement.setAttribute( QStringLiteral("filename"), go->fileName() ); + hyperlinkElement.setAttribute( QStringLiteral("destionation"), go->destination().toString() ); // TODO remove for poppler 0.28 + hyperlinkElement.setAttribute( QStringLiteral("destination"), go->destination().toString() ); break; } case Poppler::Link::Execute: { Poppler::LinkExecute * exec = static_cast< Poppler::LinkExecute * >( linkDestination() ); - hyperlinkElement.setAttribute( "type", "Exec" ); - hyperlinkElement.setAttribute( "filename", exec->fileName() ); - hyperlinkElement.setAttribute( "parameters", exec->parameters() ); + hyperlinkElement.setAttribute( QStringLiteral("type"), QStringLiteral("Exec") ); + hyperlinkElement.setAttribute( QStringLiteral("filename"), exec->fileName() ); + hyperlinkElement.setAttribute( QStringLiteral("parameters"), exec->parameters() ); break; } case Poppler::Link::Browse: { Poppler::LinkBrowse * browse = static_cast< Poppler::LinkBrowse * >( linkDestination() ); - hyperlinkElement.setAttribute( "type", "Browse" ); - hyperlinkElement.setAttribute( "url", browse->url() ); + hyperlinkElement.setAttribute( QStringLiteral("type"), QStringLiteral("Browse") ); + hyperlinkElement.setAttribute( QStringLiteral("url"), browse->url() ); break; } case Poppler::Link::Action: { Poppler::LinkAction * action = static_cast< Poppler::LinkAction * >( linkDestination() ); - hyperlinkElement.setAttribute( "type", "Action" ); + hyperlinkElement.setAttribute( QStringLiteral("type"), QStringLiteral("Action") ); switch ( action->actionType() ) { case Poppler::LinkAction::PageFirst: - hyperlinkElement.setAttribute( "action", "PageFirst" ); + hyperlinkElement.setAttribute( QStringLiteral("action"), QStringLiteral("PageFirst") ); break; case Poppler::LinkAction::PagePrev: - hyperlinkElement.setAttribute( "action", "PagePrev" ); + hyperlinkElement.setAttribute( QStringLiteral("action"), QStringLiteral("PagePrev") ); break; case Poppler::LinkAction::PageNext: - hyperlinkElement.setAttribute( "action", "PageNext" ); + hyperlinkElement.setAttribute( QStringLiteral("action"), QStringLiteral("PageNext") ); break; case Poppler::LinkAction::PageLast: - hyperlinkElement.setAttribute( "action", "PageLast" ); + hyperlinkElement.setAttribute( QStringLiteral("action"), QStringLiteral("PageLast") ); break; case Poppler::LinkAction::HistoryBack: - hyperlinkElement.setAttribute( "action", "HistoryBack" ); + hyperlinkElement.setAttribute( QStringLiteral("action"), QStringLiteral("HistoryBack") ); break; case Poppler::LinkAction::HistoryForward: - hyperlinkElement.setAttribute( "action", "HistoryForward" ); + hyperlinkElement.setAttribute( QStringLiteral("action"), QStringLiteral("HistoryForward") ); break; case Poppler::LinkAction::Quit: - hyperlinkElement.setAttribute( "action", "Quit" ); + hyperlinkElement.setAttribute( QStringLiteral("action"), QStringLiteral("Quit") ); break; case Poppler::LinkAction::Presentation: - hyperlinkElement.setAttribute( "action", "Presentation" ); + hyperlinkElement.setAttribute( QStringLiteral("action"), QStringLiteral("Presentation") ); break; case Poppler::LinkAction::EndPresentation: - hyperlinkElement.setAttribute( "action", "EndPresentation" ); + hyperlinkElement.setAttribute( QStringLiteral("action"), QStringLiteral("EndPresentation") ); break; case Poppler::LinkAction::Find: - hyperlinkElement.setAttribute( "action", "Find" ); + hyperlinkElement.setAttribute( QStringLiteral("action"), QStringLiteral("Find") ); break; case Poppler::LinkAction::GoToPage: - hyperlinkElement.setAttribute( "action", "GoToPage" ); + hyperlinkElement.setAttribute( QStringLiteral("action"), QStringLiteral("GoToPage") ); break; case Poppler::LinkAction::Close: - hyperlinkElement.setAttribute( "action", "Close" ); + hyperlinkElement.setAttribute( QStringLiteral("action"), QStringLiteral("Close") ); break; case Poppler::LinkAction::Print: - hyperlinkElement.setAttribute( "action", "Print" ); + hyperlinkElement.setAttribute( QStringLiteral("action"), QStringLiteral("Print") ); break; } break; } case Poppler::Link::Movie: { - hyperlinkElement.setAttribute( "type", "Movie" ); + hyperlinkElement.setAttribute( QStringLiteral("type"), QStringLiteral("Movie") ); break; } case Poppler::Link::Rendition: { - hyperlinkElement.setAttribute( "type", "Rendition" ); + hyperlinkElement.setAttribute( QStringLiteral("type"), QStringLiteral("Rendition") ); break; } case Poppler::Link::Sound: @@ -4005,9 +4007,9 @@ static QString caretSymbolToString( CaretAnnotation::CaretSymbol symbol ) switch ( symbol ) { case CaretAnnotation::None: - return QString::fromLatin1( "None" ); + return QStringLiteral("None"); case CaretAnnotation::P: - return QString::fromLatin1( "P" ); + return QStringLiteral("P"); } return QString(); } @@ -4071,12 +4073,12 @@ CaretAnnotation::CaretAnnotation( const QDomNode & node ) { QDomElement e = subNode.toElement(); subNode = subNode.nextSibling(); - if ( e.tagName() != "caret" ) + if ( e.tagName() != QLatin1String("caret") ) continue; // parse the attributes - if ( e.hasAttribute( "symbol" ) ) - setCaretSymbol(caretSymbolFromString( e.attribute( "symbol" ) )); + if ( e.hasAttribute( QStringLiteral("symbol") ) ) + setCaretSymbol(caretSymbolFromString( e.attribute( QStringLiteral("symbol") ) )); // loading complete break; @@ -4093,12 +4095,12 @@ void CaretAnnotation::store( QDomNode & node, QDomDocument & document ) const storeBaseAnnotationProperties( node, document ); // create [caret] element - QDomElement caretElement = document.createElement( "caret" ); + QDomElement caretElement = document.createElement( QStringLiteral("caret") ); node.appendChild( caretElement ); // append the optional attributes if ( caretSymbol() != CaretAnnotation::None ) - caretElement.setAttribute( "symbol", caretSymbolToString( caretSymbol() ) ); + caretElement.setAttribute( QStringLiteral("symbol"), caretSymbolToString( caretSymbol() ) ); } Annotation::SubType CaretAnnotation::subType() const @@ -4146,7 +4148,7 @@ class FileAttachmentAnnotationPrivate : public AnnotationPrivate }; FileAttachmentAnnotationPrivate::FileAttachmentAnnotationPrivate() - : AnnotationPrivate(), icon( "PushPin" ), embfile( 0 ) + : AnnotationPrivate(), icon( QStringLiteral("PushPin") ), embfile( 0 ) { } @@ -4184,7 +4186,7 @@ FileAttachmentAnnotation::FileAttachmentAnnotation( const QDomNode & node ) { QDomElement e = subNode.toElement(); subNode = subNode.nextSibling(); - if ( e.tagName() != "fileattachment" ) + if ( e.tagName() != QLatin1String("fileattachment") ) continue; // loading complete @@ -4202,7 +4204,7 @@ void FileAttachmentAnnotation::store( QDomNode & node, QDomDocument & document ) storeBaseAnnotationProperties( node, document ); // create [fileattachment] element - QDomElement fileAttachmentElement = document.createElement( "fileattachment" ); + QDomElement fileAttachmentElement = document.createElement( QStringLiteral("fileattachment") ); node.appendChild( fileAttachmentElement ); } @@ -4250,7 +4252,7 @@ class SoundAnnotationPrivate : public AnnotationPrivate }; SoundAnnotationPrivate::SoundAnnotationPrivate() - : AnnotationPrivate(), icon( "Speaker" ), sound( 0 ) + : AnnotationPrivate(), icon( QStringLiteral("Speaker") ), sound( 0 ) { } @@ -4288,7 +4290,7 @@ SoundAnnotation::SoundAnnotation( const QDomNode & node ) { QDomElement e = subNode.toElement(); subNode = subNode.nextSibling(); - if ( e.tagName() != "sound" ) + if ( e.tagName() != QLatin1String("sound") ) continue; // loading complete @@ -4306,7 +4308,7 @@ void SoundAnnotation::store( QDomNode & node, QDomDocument & document ) const storeBaseAnnotationProperties( node, document ); // create [sound] element - QDomElement soundElement = document.createElement( "sound" ); + QDomElement soundElement = document.createElement( QStringLiteral("sound") ); node.appendChild( soundElement ); } @@ -4392,7 +4394,7 @@ MovieAnnotation::MovieAnnotation( const QDomNode & node ) { QDomElement e = subNode.toElement(); subNode = subNode.nextSibling(); - if ( e.tagName() != "movie" ) + if ( e.tagName() != QLatin1String("movie") ) continue; // loading complete @@ -4410,7 +4412,7 @@ void MovieAnnotation::store( QDomNode & node, QDomDocument & document ) const storeBaseAnnotationProperties( node, document ); // create [movie] element - QDomElement movieElement = document.createElement( "movie" ); + QDomElement movieElement = document.createElement( QStringLiteral("movie") ); node.appendChild( movieElement ); } @@ -4496,7 +4498,7 @@ void ScreenAnnotation::store( QDomNode & node, QDomDocument & document ) const storeBaseAnnotationProperties( node, document ); // create [screen] element - QDomElement screenElement = document.createElement( "screen" ); + QDomElement screenElement = document.createElement( QStringLiteral("screen") ); node.appendChild( screenElement ); } @@ -4572,7 +4574,7 @@ void WidgetAnnotation::store( QDomNode & node, QDomDocument & document ) const storeBaseAnnotationProperties( node, document ); // create [widget] element - QDomElement widgetElement = document.createElement( "widget" ); + QDomElement widgetElement = document.createElement( QStringLiteral("widget") ); node.appendChild( widgetElement ); } @@ -4979,7 +4981,7 @@ RichMediaAnnotation::RichMediaAnnotation( const QDomNode & node ) { QDomElement e = subNode.toElement(); subNode = subNode.nextSibling(); - if ( e.tagName() != "richMedia" ) + if ( e.tagName() != QLatin1String("richMedia") ) continue; // loading complete @@ -4997,7 +4999,7 @@ void RichMediaAnnotation::store( QDomNode & node, QDomDocument & document ) cons storeBaseAnnotationProperties( node, document ); // create [richMedia] element - QDomElement richMediaElement = document.createElement( "richMedia" ); + QDomElement richMediaElement = document.createElement( QStringLiteral("richMedia") ); node.appendChild( richMediaElement ); } diff --git a/qt5/src/poppler-document.cc b/qt5/src/poppler-document.cc index d5d9a6d..537dca3 100644 --- a/qt5/src/poppler-document.cc +++ b/qt5/src/poppler-document.cc @@ -1,7 +1,7 @@ /* poppler-document.cc: qt interface to poppler * Copyright (C) 2005, Net Integration Technologies, Inc. * Copyright (C) 2005, 2008, Brad Hards <[email protected]> - * Copyright (C) 2005-2010, 2012, 2013, Albert Astals Cid <[email protected]> + * Copyright (C) 2005-2010, 2012, 2013, 2015, Albert Astals Cid <[email protected]> * Copyright (C) 2006-2010, Pino Toscano <[email protected]> * Copyright (C) 2010, 2011 Hib Eris <[email protected]> * Copyright (C) 2012 Koji Otani <[email protected]> @@ -314,6 +314,7 @@ namespace Poppler { Dict *infoDict = info.getDict(); // somehow iterate over keys in infoDict + keys.reserve(infoDict->getLength()); for( int i=0; i < infoDict->getLength(); ++i ) { keys.append( QString::fromLatin1(infoDict->getKey(i)) ); } diff --git a/qt5/src/poppler-fontinfo.cc b/qt5/src/poppler-fontinfo.cc index f2a5579..dbc5292 100644 --- a/qt5/src/poppler-fontinfo.cc +++ b/qt5/src/poppler-fontinfo.cc @@ -2,7 +2,7 @@ * Copyright (C) 2005, Net Integration Technologies, Inc. * Copyright (C) 2005, Tobias Koening <[email protected]> * Copyright (C) 2005, Brad Hards <[email protected]> - * Copyright (C) 2005-2008, Albert Astals Cid <[email protected]> + * Copyright (C) 2005-2008, 2015, Albert Astals Cid <[email protected]> * Copyright (C) 2008, 2009, Pino Toscano <[email protected]> * * This program is free software; you can redistribute it and/or modify @@ -129,6 +129,7 @@ QList<FontInfo> FontIterator::next() GooList *items = d->fontInfoScanner.scan( 1 ); if ( !items ) return fonts; + fonts.reserve( items->getLength() ); for ( int i = 0; i < items->getLength(); ++i ) { fonts.append( FontInfo( FontInfoData( ( ::FontInfo* )items->get( i ) ) ) ); } diff --git a/qt5/src/poppler-form.cc b/qt5/src/poppler-form.cc index 4be0482..ba3dafd 100644 --- a/qt5/src/poppler-form.cc +++ b/qt5/src/poppler-form.cc @@ -1,6 +1,6 @@ /* poppler-form.h: qt interface to poppler * Copyright (C) 2007-2008, 2011, Pino Toscano <[email protected]> - * Copyright (C) 2008, 2011, 2012 Albert Astals Cid <[email protected]> + * Copyright (C) 2008, 2011, 2012, 2015 Albert Astals Cid <[email protected]> * Copyright (C) 2011 Carlos Garcia Campos <[email protected]> * Copyright (C) 2012, Adam Reichold <[email protected]> * @@ -342,6 +342,7 @@ QStringList FormFieldChoice::choices() const FormWidgetChoice* fwc = static_cast<FormWidgetChoice*>(m_formData->fm); QStringList ret; int num = fwc->getNumChoices(); + ret.reserve(num); for (int i = 0; i < num; ++i) { ret.append(UnicodeParsedString(fwc->getChoice(i))); diff --git a/qt5/src/poppler-optcontent.cc b/qt5/src/poppler-optcontent.cc index 7c0513b..e2fd66e 100644 --- a/qt5/src/poppler-optcontent.cc +++ b/qt5/src/poppler-optcontent.cc @@ -3,6 +3,7 @@ * Copyright (C) 2007, Brad Hards <[email protected]> * Copyright (C) 2008, 2014, Pino Toscano <[email protected]> * Copyright (C) 2008, Carlos Garcia Campos <[email protected]> + * Copyright (C) 2015, Albert Astals Cid <[email protected]> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -35,6 +36,7 @@ namespace Poppler RadioButtonGroup::RadioButtonGroup( OptContentModelPrivate *ocModel, Array *rbarray ) { + itemsInGroup.reserve(rbarray->getLength()); for (int i = 0; i < rbarray->getLength(); ++i) { Object ref; rbarray->getNF( i, &ref ); diff --git a/qt5/src/poppler-page.cc b/qt5/src/poppler-page.cc index 3832861..42a342d 100644 --- a/qt5/src/poppler-page.cc +++ b/qt5/src/poppler-page.cc @@ -584,6 +584,7 @@ QList<TextBox*> Page::textList(Rotation rotate) const QHash<TextWord *, TextBox*> wordBoxMap; + output_list.reserve(word_list->getLength()); for (int i = 0; i < word_list->getLength(); i++) { TextWord *word = word_list->get(i); GooString *gooWord = word->getText(); diff --git a/qt5/src/poppler-private.cc b/qt5/src/poppler-private.cc index 51395a2..86855fd 100644 --- a/qt5/src/poppler-private.cc +++ b/qt5/src/poppler-private.cc @@ -62,11 +62,11 @@ namespace Debug { if (pos >= 0) { - emsg = QString::fromLatin1("Error (%1): ").arg(pos); + emsg = QStringLiteral("Error (%1): ").arg(pos); } else { - emsg = QString::fromLatin1("Error: "); + emsg = QStringLiteral("Error: "); } emsg += QString::fromLatin1(msg); (*Debug::debugFunction)(emsg, Debug::debugClosure); @@ -174,13 +174,13 @@ namespace Debug { QChar *charArray = new QChar[s->getLength()]; for (int i = 0; i < s->getLength(); ++i) charArray[i] = QChar(s->getCString()[i]); QString aux(charArray, s->getLength()); - e->setAttribute( "DestinationName", aux ); + e->setAttribute( QStringLiteral("DestinationName"), aux ); delete[] charArray; } else if ( destination && destination->isOk() ) { LinkDestinationData ldd(destination, NULL, doc, false); - e->setAttribute( "Destination", LinkDestination(ldd).toString() ); + e->setAttribute( QStringLiteral("Destination"), LinkDestination(ldd).toString() ); } break; } @@ -198,21 +198,21 @@ namespace Debug { QChar *charArray = new QChar[s->getLength()]; for (int i = 0; i < s->getLength(); ++i) charArray[i] = QChar(s->getCString()[i]); QString aux(charArray, s->getLength()); - e->setAttribute( "DestinationName", aux ); + e->setAttribute( QStringLiteral("DestinationName"), aux ); delete[] charArray; } else if ( destination && destination->isOk() ) { LinkDestinationData ldd(destination, NULL, doc, g->getFileName() != 0); - e->setAttribute( "Destination", LinkDestination(ldd).toString() ); + e->setAttribute( QStringLiteral("Destination"), LinkDestination(ldd).toString() ); } - e->setAttribute( "ExternalFileName", g->getFileName()->getCString() ); + e->setAttribute( QStringLiteral("ExternalFileName"), g->getFileName()->getCString() ); break; } case actionURI: { LinkURI * u = static_cast< LinkURI * >( a ); - e->setAttribute( "DestinationURI", u->getURI()->getCString() ); + e->setAttribute( QStringLiteral("DestinationURI"), u->getURI()->getCString() ); } default: ; } @@ -272,7 +272,7 @@ namespace Debug { ::LinkAction * a = outlineItem->getAction(); linkActionToTocItem( a, this, &item ); - item.setAttribute( "Open", QVariant( (bool)outlineItem->isOpen() ).toString() ); + item.setAttribute( QStringLiteral("Open"), QVariant( (bool)outlineItem->isOpen() ).toString() ); // 3. recursively descend over children outlineItem->open(); commit 9b4e908d86e78535cced9fb7ccac1f3f0e1fc5c1 Author: Albert Astals Cid <[email protected]> Date: Tue Sep 8 17:48:16 2015 +0200 Qt4: Minor optimization Call reserve on containers upfront diff --git a/qt4/src/poppler-annotation.cc b/qt4/src/poppler-annotation.cc index f026d6f..8a7f60b 100644 --- a/qt4/src/poppler-annotation.cc +++ b/qt4/src/poppler-annotation.cc @@ -1,5 +1,5 @@ /* poppler-annotation.cc: qt interface to poppler - * Copyright (C) 2006, 2009, 2012-2014 Albert Astals Cid <[email protected]> + * Copyright (C) 2006, 2009, 2012-2015 Albert Astals Cid <[email protected]> * Copyright (C) 2006, 2008, 2010 Pino Toscano <[email protected]> * Copyright (C) 2012, Guillermo A. Amaral B. <[email protected]> * Copyright (C) 2012-2014 Fabio D'Urso <[email protected]> @@ -3106,6 +3106,7 @@ QList< HighlightAnnotation::Quad > HighlightAnnotationPrivate::fromQuadrilateral double MTX[6]; fillTransformationMTX(MTX); + quads.reserve(quadsCount); for (int q = 0; q < quadsCount; ++q) { HighlightAnnotation::Quad quad; @@ -3638,6 +3639,7 @@ QList< QLinkedList<QPointF> > InkAnnotation::inkPaths() const const int pathsNumber = inkann->getInkListLength(); QList< QLinkedList<QPointF> > inkPaths; + inkPaths.reserve(pathsNumber); for (int m = 0; m < pathsNumber; ++m) { // transform each path in a list of normalized points .. diff --git a/qt4/src/poppler-document.cc b/qt4/src/poppler-document.cc index e1266e8..94f997d 100644 --- a/qt4/src/poppler-document.cc +++ b/qt4/src/poppler-document.cc @@ -1,7 +1,7 @@ /* poppler-document.cc: qt interface to poppler * Copyright (C) 2005, Net Integration Technologies, Inc. * Copyright (C) 2005, 2008, Brad Hards <[email protected]> - * Copyright (C) 2005-2010, 2012, 2013, Albert Astals Cid <[email protected]> + * Copyright (C) 2005-2010, 2012, 2013, 2015, Albert Astals Cid <[email protected]> * Copyright (C) 2006-2010, Pino Toscano <[email protected]> * Copyright (C) 2010, 2011 Hib Eris <[email protected]> * Copyright (C) 2012 Koji Otani <[email protected]> @@ -328,6 +328,7 @@ namespace Poppler { Dict *infoDict = info.getDict(); // somehow iterate over keys in infoDict + keys.reserve( infoDict->getLength() ); for( int i=0; i < infoDict->getLength(); ++i ) { keys.append( QString::fromAscii(infoDict->getKey(i)) ); } diff --git a/qt4/src/poppler-fontinfo.cc b/qt4/src/poppler-fontinfo.cc index 81aed71..5bb9e3a 100644 --- a/qt4/src/poppler-fontinfo.cc +++ b/qt4/src/poppler-fontinfo.cc @@ -2,7 +2,7 @@ * Copyright (C) 2005, Net Integration Technologies, Inc. * Copyright (C) 2005, Tobias Koening <[email protected]> * Copyright (C) 2005, Brad Hards <[email protected]> - * Copyright (C) 2005-2008, Albert Astals Cid <[email protected]> + * Copyright (C) 2005-2008, 2015, Albert Astals Cid <[email protected]> * Copyright (C) 2008, 2009, Pino Toscano <[email protected]> * * This program is free software; you can redistribute it and/or modify @@ -129,6 +129,7 @@ QList<FontInfo> FontIterator::next() GooList *items = d->fontInfoScanner.scan( 1 ); if ( !items ) return fonts; + fonts.reserve( items->getLength() ); for ( int i = 0; i < items->getLength(); ++i ) { fonts.append( FontInfo( FontInfoData( ( ::FontInfo* )items->get( i ) ) ) ); } diff --git a/qt4/src/poppler-form.cc b/qt4/src/poppler-form.cc index a5e5adf..12aa329 100644 --- a/qt4/src/poppler-form.cc +++ b/qt4/src/poppler-form.cc @@ -1,6 +1,6 @@ /* poppler-form.h: qt4 interface to poppler * Copyright (C) 2007-2008, 2011, Pino Toscano <[email protected]> - * Copyright (C) 2008, 2011, 2012 Albert Astals Cid <[email protected]> + * Copyright (C) 2008, 2011, 2012, 2015, Albert Astals Cid <[email protected]> * Copyright (C) 2011 Carlos Garcia Campos <[email protected]> * Copyright (C) 2012, Adam Reichold <[email protected]> * @@ -342,6 +342,7 @@ QStringList FormFieldChoice::choices() const FormWidgetChoice* fwc = static_cast<FormWidgetChoice*>(m_formData->fm); QStringList ret; int num = fwc->getNumChoices(); + ret.reserve(num); for (int i = 0; i < num; ++i) { ret.append(UnicodeParsedString(fwc->getChoice(i))); diff --git a/qt4/src/poppler-optcontent.cc b/qt4/src/poppler-optcontent.cc index 1a0be68..431f0ee 100644 --- a/qt4/src/poppler-optcontent.cc +++ b/qt4/src/poppler-optcontent.cc @@ -3,6 +3,7 @@ * Copyright (C) 2007, Brad Hards <[email protected]> * Copyright (C) 2008, 2014, Pino Toscano <[email protected]> * Copyright (C) 2008, Carlos Garcia Campos <[email protected]> + * Copyright (C) 2015, Albert Astals Cid <[email protected]> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -35,6 +36,7 @@ namespace Poppler RadioButtonGroup::RadioButtonGroup( OptContentModelPrivate *ocModel, Array *rbarray ) { + itemsInGroup.reserve( rbarray->getLength() ); for (int i = 0; i < rbarray->getLength(); ++i) { Object ref; rbarray->getNF( i, &ref ); diff --git a/qt4/src/poppler-page.cc b/qt4/src/poppler-page.cc index 16a18f1..83bcf4a 100644 --- a/qt4/src/poppler-page.cc +++ b/qt4/src/poppler-page.cc @@ -602,6 +602,7 @@ QList<TextBox*> Page::textList(Rotation rotate) const QHash<TextWord *, TextBox*> wordBoxMap; + output_list.reserve(word_list->getLength()); for (int i = 0; i < word_list->getLength(); i++) { TextWord *word = word_list->get(i); GooString *gooWord = word->getText(); commit f8182694909c989bd65b7317f9df439c5bfabe95 Author: Albert Astals Cid <[email protected]> Date: Tue Sep 8 17:13:07 2015 +0200 renderingIntent is always non null diff --git a/poppler/GfxState.cc b/poppler/GfxState.cc index 3e9cac4..cacccad 100644 --- a/poppler/GfxState.cc +++ b/poppler/GfxState.cc @@ -6833,14 +6833,12 @@ GfxColorTransform *GfxState::getXYZ2DisplayTransform() { GfxColorTransform *transform; transform = XYZ2DisplayTransformRelCol; - if (renderingIntent != NULL) { - if (strcmp(renderingIntent, "AbsoluteColorimetric") == 0) { - transform = XYZ2DisplayTransformAbsCol; - } else if (strcmp(renderingIntent, "Saturation") == 0) { - transform = XYZ2DisplayTransformSat; - } else if (strcmp(renderingIntent, "Perceptual") == 0) { - transform = XYZ2DisplayTransformPerc; - } + if (strcmp(renderingIntent, "AbsoluteColorimetric") == 0) { + transform = XYZ2DisplayTransformAbsCol; + } else if (strcmp(renderingIntent, "Saturation") == 0) { + transform = XYZ2DisplayTransformSat; + } else if (strcmp(renderingIntent, "Perceptual") == 0) { + transform = XYZ2DisplayTransformPerc; } if (transform == NULL) { transform = XYZ2DisplayTransform; commit 6f69e2e35b8fe7a347367074ce36959d47fd8635 Author: Albert Astals Cid <[email protected]> Date: Tue Sep 8 09:44:30 2015 +0200 Matrix is 48 bytes, pass it by ref instead of by value diff --git a/poppler/TextOutputDev.cc b/poppler/TextOutputDev.cc index 16f099f..bbb371a 100644 --- a/poppler/TextOutputDev.cc +++ b/poppler/TextOutputDev.cc @@ -298,7 +298,7 @@ TextWord::~TextWord() { void TextWord::addChar(GfxState *state, TextFontInfo *fontA, double x, double y, double dx, double dy, int charPosA, int charLen, - CharCode c, Unicode u, Matrix textMatA) { + CharCode c, Unicode u, const Matrix &textMatA) { ensureCapacity(len+1); text[len] = u; charcode[len] = c; @@ -486,7 +486,7 @@ Unicode getCombiningChar(Unicode u) { GBool TextWord::addCombining(GfxState *state, TextFontInfo *fontA, double fontSizeA, double x, double y, double dx, double dy, int charPosA, int charLen, - CharCode c, Unicode u, Matrix textMatA) { + CharCode c, Unicode u, const Matrix &textMatA) { if (len == 0 || wMode != 0 || fontA->getWMode() != 0) return gFalse; diff --git a/poppler/TextOutputDev.h b/poppler/TextOutputDev.h index a0aa6f8..2aab94f 100644 --- a/poppler/TextOutputDev.h +++ b/poppler/TextOutputDev.h @@ -17,7 +17,7 @@ // Copyright (C) 2006 Ed Catmur <[email protected]> // Copyright (C) 2007, 2008, 2011, 2013 Carlos Garcia Campos <[email protected]> // Copyright (C) 2007 Adrian Johnson <[email protected]> -// Copyright (C) 2008, 2010 Albert Astals Cid <[email protected]> +// Copyright (C) 2008, 2010, 2015 Albert Astals Cid <[email protected]> // Copyright (C) 2010 Brian Ewins <[email protected]> // Copyright (C) 2012, 2013, 2015 Jason Crain <[email protected]> // Copyright (C) 2013 Thomas Freitag <[email protected]> @@ -132,7 +132,7 @@ public: // Add a character to the word. void addChar(GfxState *state, TextFontInfo *fontA, double x, double y, double dx, double dy, int charPosA, int charLen, - CharCode c, Unicode u, Matrix textMatA); + CharCode c, Unicode u, const Matrix &textMatA); // Attempt to add a character to the word as a combining character. // Either character u or the last character in the word must be an @@ -140,7 +140,7 @@ public: // the character was added. GBool addCombining(GfxState *state, TextFontInfo *fontA, double fontSizeA, double x, double y, double dx, double dy, int charPosA, int charLen, - CharCode c, Unicode u, Matrix textMatA); + CharCode c, Unicode u, const Matrix &textMatA); // Merge <word> onto the end of <this>. void merge(TextWord *word); _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
