On Tuesday, April 10, 2012 07:26:59 PM Albert Astals Cid wrote:
> Why do we need Annotation::invalidateAppearance to be public? Can't the
> methods that change the appearance just call this?
Ok! Changed to implicit appearance invalidation

Fabio
From 02111fbb4ae29bcd59a13b28a7e5b8ae9182972a Mon Sep 17 00:00:00 2001
From: Fabio D'Urso <[email protected]>
Date: Thu, 12 Apr 2012 00:39:33 +0200
Subject: [PATCH] qt4: Annotation appearance invalidation

Call Annot::invalidateAppearance every time the visual aspect is changed
---
 qt4/src/poppler-annotation.cc |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/qt4/src/poppler-annotation.cc b/qt4/src/poppler-annotation.cc
index 549fe23..dfe4e37 100644
--- a/qt4/src/poppler-annotation.cc
+++ b/qt4/src/poppler-annotation.cc
@@ -1063,6 +1063,7 @@ void Annotation::setContents( const QString &contents )
     GooString *s = QStringToUnicodeGooString(contents);
     d->pdfAnnot->setContents(s);
     delete s;
+    d->pdfAnnot->invalidateAppearance();
 }
 
 QString Annotation::uniqueName() const
@@ -1226,6 +1227,7 @@ void Annotation::setFlags( int flags )
     }
 
     d->pdfAnnot->setFlags(toPdfFlags( flags ));
+    d->pdfAnnot->invalidateAppearance();
 }
 
 QRectF Annotation::boundary() const
@@ -1251,6 +1253,7 @@ void Annotation::setBoundary( const QRectF &boundary )
 
     PDFRectangle rect = d->toPdfRectangle(boundary);
     d->pdfAnnot->setRect(&rect);
+    d->pdfAnnot->invalidateAppearance();
 }
 
 Annotation::Style Annotation::style() const
@@ -1331,6 +1334,7 @@ void Annotation::setStyle( const Annotation::Style& style )
     border->setHorizontalCorner( style.xCorners() );
     border->setVerticalCorner( style.yCorners() );
     d->pdfAnnot->setBorder(border);
+    d->pdfAnnot->invalidateAppearance();
 }
 
 Annotation::Popup Annotation::popup() const
@@ -1783,6 +1787,7 @@ void TextAnnotation::setTextIcon( const QString &icon )
         QByteArray encoded = icon.toLatin1();
         GooString s(encoded.constData());
         textann->setIcon(&s);
+        d->pdfAnnot->invalidateAppearance();
     }
 }
 
@@ -1830,6 +1835,7 @@ void TextAnnotation::setTextFont( const QFont &font )
     GooString * da = TextAnnotationPrivate::toAppearanceString(font);
     ftextann->setAppearanceString(da);
     delete da;
+    d->pdfAnnot->invalidateAppearance();
 }
 
 int TextAnnotation::inplaceAlign() const
@@ -1862,6 +1868,7 @@ void TextAnnotation::setInplaceAlign( int align )
     {
         AnnotFreeText * ftextann = static_cast<AnnotFreeText*>(d->pdfAnnot);
         ftextann->setQuadding((AnnotFreeText::AnnotFreeTextQuadding)align);
+        d->pdfAnnot->invalidateAppearance();
     }
 }
 
@@ -1930,6 +1937,7 @@ void TextAnnotation::setCalloutPoints( const QVector<QPointF> &points )
     if (count == 0)
     {
         ftextann->setCalloutLine(0);
+        d->pdfAnnot->invalidateAppearance();
         return;
     }
 
@@ -1959,6 +1967,7 @@ void TextAnnotation::setCalloutPoints( const QVector<QPointF> &points )
 
     ftextann->setCalloutLine(callout);
     delete callout;
+    d->pdfAnnot->invalidateAppearance();
 }
 
 TextAnnotation::InplaceIntent TextAnnotation::inplaceIntent() const
@@ -1991,6 +2000,7 @@ void TextAnnotation::setInplaceIntent( TextAnnotation::InplaceIntent intent )
     {
         AnnotFreeText * ftextann = static_cast<AnnotFreeText*>(d->pdfAnnot);
         ftextann->setIntent((AnnotFreeText::AnnotFreeTextIntent)intent);
+        d->pdfAnnot->invalidateAppearance();
     }
 }
 
@@ -2277,6 +2287,8 @@ void LineAnnotation::setLinePoints( const QLinkedList<QPointF> &points )
         polyann->setVertices(p);
         delete p;
     }
+
+    d->pdfAnnot->invalidateAppearance();
 }
 
 LineAnnotation::TermStyle LineAnnotation::lineStartStyle() const
@@ -2318,6 +2330,8 @@ void LineAnnotation::setLineStartStyle( LineAnnotation::TermStyle style )
         AnnotPolygon *polyann = static_cast<AnnotPolygon*>(d->pdfAnnot);
         polyann->setStartEndStyle((AnnotLineEndingStyle)style, polyann->getEndStyle());
     }
+
+    d->pdfAnnot->invalidateAppearance();
 }
 
 LineAnnotation::TermStyle LineAnnotation::lineEndStyle() const
@@ -2359,6 +2373,8 @@ void LineAnnotation::setLineEndStyle( LineAnnotation::TermStyle style )
         AnnotPolygon *polyann = static_cast<AnnotPolygon*>(d->pdfAnnot);
         polyann->setStartEndStyle(polyann->getStartStyle(), (AnnotLineEndingStyle)style);
     }
+
+    d->pdfAnnot->invalidateAppearance();
 }
 
 bool LineAnnotation::isLineClosed() const
@@ -2398,6 +2414,8 @@ void LineAnnotation::setLineClosed( bool closed )
             if (polyann->getIntent() == AnnotPolygon::polygonDimension)
                 polyann->setIntent( AnnotPolygon::polylineDimension );
         }
+
+        d->pdfAnnot->invalidateAppearance();
     }
 }
 
@@ -2446,6 +2464,8 @@ void LineAnnotation::setLineInnerColor( const QColor &color )
         AnnotPolygon *polyann = static_cast<AnnotPolygon*>(d->pdfAnnot);
         polyann->setInteriorColor(c);
     }
+
+    d->pdfAnnot->invalidateAppearance();
 }
 
 double LineAnnotation::lineLeadingForwardPoint() const
@@ -2478,6 +2498,7 @@ void LineAnnotation::setLineLeadingForwardPoint( double point )
     {
         AnnotLine *lineann = static_cast<AnnotLine*>(d->pdfAnnot);
         lineann->setLeaderLineLength(point);
+        d->pdfAnnot->invalidateAppearance();
     }
 }
 
@@ -2511,6 +2532,7 @@ void LineAnnotation::setLineLeadingBackPoint( double point )
     {
         AnnotLine *lineann = static_cast<AnnotLine*>(d->pdfAnnot);
         lineann->setLeaderLineExtension(point);
+        d->pdfAnnot->invalidateAppearance();
     }
 }
 
@@ -2544,6 +2566,7 @@ void LineAnnotation::setLineShowCaption( bool show )
     {
         AnnotLine *lineann = static_cast<AnnotLine*>(d->pdfAnnot);
         lineann->setCaption(show);
+        d->pdfAnnot->invalidateAppearance();
     }
 }
 
@@ -2600,6 +2623,8 @@ void LineAnnotation::setLineIntent( LineAnnotation::LineIntent intent )
                 polyann->setIntent( AnnotPolygon::polylineDimension );
         }
     }
+
+    d->pdfAnnot->invalidateAppearance();
 }
 
 
@@ -2737,6 +2762,8 @@ void GeomAnnotation::setGeomType( GeomAnnotation::GeomType type )
         geomann->setType(Annot::typeSquare);
     else // GeomAnnotation::InscribedCircle
         geomann->setType(Annot::typeCircle);
+
+    d->pdfAnnot->invalidateAppearance();
 }
 
 QColor GeomAnnotation::geomInnerColor() const
@@ -2762,6 +2789,7 @@ void GeomAnnotation::setGeomInnerColor( const QColor &color )
 
     AnnotGeometry * geomann = static_cast<AnnotGeometry*>(d->pdfAnnot);
     geomann->setInteriorColor(convertQColor( color ));
+    d->pdfAnnot->invalidateAppearance();
 }
 
 
@@ -3019,6 +3047,7 @@ void HighlightAnnotation::setHighlightType( HighlightAnnotation::HighlightType t
 
     AnnotTextMarkup * hlann = static_cast<AnnotTextMarkup*>(d->pdfAnnot);
     hlann->setType(HighlightAnnotationPrivate::toAnnotSubType( type ));
+    d->pdfAnnot->invalidateAppearance();
 }
 
 QList< HighlightAnnotation::Quad > HighlightAnnotation::highlightQuads() const
@@ -3046,6 +3075,7 @@ void HighlightAnnotation::setHighlightQuads( const QList< HighlightAnnotation::Q
     AnnotQuadrilaterals * quadrilaterals = d->toQuadrilaterals(quads);
     hlann->setQuadrilaterals(quadrilaterals);
     delete quadrilaterals;
+    d->pdfAnnot->invalidateAppearance();
 }
 
 
@@ -3171,6 +3201,7 @@ void StampAnnotation::setStampIconName( const QString &name )
     QByteArray encoded = name.toLatin1();
     GooString s(encoded.constData());
     stampann->setIcon(&s);
+    d->pdfAnnot->invalidateAppearance();
 }
 
 /** InkAnnotation [Annotation] */
@@ -3383,6 +3414,8 @@ void InkAnnotation::setInkPaths( const QList< QLinkedList<QPointF> > &paths )
     for (int i = 0; i < pathsNumber; ++i)
         delete annotpaths[i];
     delete[] annotpaths;
+
+    d->pdfAnnot->invalidateAppearance();
 }
 
 
@@ -3850,6 +3883,7 @@ void CaretAnnotation::setCaretSymbol( CaretAnnotation::CaretSymbol symbol )
 
     AnnotCaret * caretann = static_cast<AnnotCaret *>(d->pdfAnnot);
     caretann->setSymbol((AnnotCaret::AnnotCaretSymbol)symbol);
+    d->pdfAnnot->invalidateAppearance();
 }
 
 /** FileAttachmentAnnotation [Annotation] */
-- 
1.7.6.5

_______________________________________________
poppler mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to