summaryrefslogtreecommitdiffstats
path: root/src/declarative/fx
diff options
context:
space:
mode:
authorYann Bodson <yann.bodson@nokia.com>2009-07-02 02:40:15 (GMT)
committerYann Bodson <yann.bodson@nokia.com>2009-07-02 02:40:15 (GMT)
commitcf8871a52244884943c2d798dbe93fb181728bcd (patch)
tree2629be260a5b5907af49ba7a5b6f3dadfade64c8 /src/declarative/fx
parent4e9336d1f60089bffda7fca93a63d18ffce0a6fa (diff)
downloadQt-cf8871a52244884943c2d798dbe93fb181728bcd.zip
Qt-cf8871a52244884943c2d798dbe93fb181728bcd.tar.gz
Qt-cf8871a52244884943c2d798dbe93fb181728bcd.tar.bz2
Add smooth property to Text element.
Diffstat (limited to 'src/declarative/fx')
-rw-r--r--src/declarative/fx/qfxtext.cpp25
-rw-r--r--src/declarative/fx/qfxtext.h4
-rw-r--r--src/declarative/fx/qfxtext_p.h3
3 files changed, 31 insertions, 1 deletions
diff --git a/src/declarative/fx/qfxtext.cpp b/src/declarative/fx/qfxtext.cpp
index 9550af9..d1e118d 100644
--- a/src/declarative/fx/qfxtext.cpp
+++ b/src/declarative/fx/qfxtext.cpp
@@ -701,6 +701,21 @@ void QFxTextPrivate::checkImgCache()
imgDirty = false;
}
+bool QFxText::smoothTransform() const
+{
+ Q_D(const QFxText);
+ return d->smooth;
+}
+
+void QFxText::setSmoothTransform(bool s)
+{
+ Q_D(QFxText);
+ if (d->smooth == s)
+ return;
+ d->smooth = s;
+ update();
+}
+
#if defined(QFX_RENDER_QPAINTER)
void QFxText::paintContents(QPainter &p)
{
@@ -709,6 +724,11 @@ void QFxText::paintContents(QPainter &p)
if (d->imgCache.isNull())
return;
+ bool oldAA = p.testRenderHint(QPainter::Antialiasing);
+ bool oldSmooth = p.testRenderHint(QPainter::SmoothPixmapTransform);
+ if (d->smooth)
+ p.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth);
+
int w = width();
int h = height();
@@ -749,6 +769,11 @@ void QFxText::paintContents(QPainter &p)
p.drawPixmap(x, y, d->imgCache);
if (needClip)
p.restore();
+
+ if (d->smooth) {
+ p.setRenderHint(QPainter::Antialiasing, oldAA);
+ p.setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth);
+ }
}
#elif defined(QFX_RENDER_OPENGL2)
diff --git a/src/declarative/fx/qfxtext.h b/src/declarative/fx/qfxtext.h
index 1f5a7b8..104d18c 100644
--- a/src/declarative/fx/qfxtext.h
+++ b/src/declarative/fx/qfxtext.h
@@ -69,6 +69,7 @@ class Q_DECLARATIVE_EXPORT QFxText : public QFxItem
Q_PROPERTY(bool wrap READ wrap WRITE setWrap)
Q_PROPERTY(Qt::TextElideMode elide READ elideMode WRITE setElideMode)
Q_PROPERTY(QString activeLink READ activeLink)
+ Q_PROPERTY(bool smooth READ smoothTransform WRITE setSmoothTransform)
public:
QFxText(QFxItem *parent=0);
@@ -113,6 +114,9 @@ public:
QString activeLink() const;
+ bool smoothTransform() const;
+ void setSmoothTransform(bool);
+
virtual void dump(int depth);
virtual QString propertyInfo() const;
diff --git a/src/declarative/fx/qfxtext_p.h b/src/declarative/fx/qfxtext_p.h
index dfaef63..c58705c 100644
--- a/src/declarative/fx/qfxtext_p.h
+++ b/src/declarative/fx/qfxtext_p.h
@@ -75,7 +75,7 @@ public:
QFxTextPrivate()
: _font(0), color((QRgb)0), style(QFxText::Normal), imgDirty(true),
hAlign(QFxText::AlignLeft), vAlign(QFxText::AlignTop), elideMode(Qt::ElideNone),
- dirty(false), wrap(false), richText(false), singleline(false), control(0), doc(0)
+ dirty(false), wrap(false), smooth(false), richText(false), singleline(false), control(0), doc(0)
{
}
@@ -125,6 +125,7 @@ public:
Qt::TextElideMode elideMode;
bool dirty;
bool wrap;
+ bool smooth;
bool richText;
bool singleline;
QTextControl *control;