aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquicktext_p.h
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2012-01-11 15:49:36 +1000
committerQt by Nokia <qt-info@nokia.com>2012-02-06 04:13:08 +0100
commit5b9e19ff591f9460adc7a85fa9fe822c05ab3b41 (patch)
tree782ede165cbb84db62ae85cf5cf46087fe9a1a13 /src/quick/items/qquicktext_p.h
parent0323a56a04dd4d858eb0c98955d179b8418c1ed7 (diff)
Add support for resizing fonts to fit Text dimensions.
This adds a mode where if the content of a Text item doesn't fit within its bounds the font size is reduced during layout until it does or a minimum font size is reached. Task-number: QTBUG-22832 Change-Id: I6198ef03899e2f21b32e313548966ef4b0e3bff1 Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com> Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
Diffstat (limited to 'src/quick/items/qquicktext_p.h')
-rw-r--r--src/quick/items/qquicktext_p.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/quick/items/qquicktext_p.h b/src/quick/items/qquicktext_p.h
index ddc9d38c75..0630fe4510 100644
--- a/src/quick/items/qquicktext_p.h
+++ b/src/quick/items/qquicktext_p.h
@@ -63,6 +63,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickText : public QQuickImplicitSizeItem
Q_ENUMS(TextElideMode)
Q_ENUMS(WrapMode)
Q_ENUMS(LineHeightMode)
+ Q_ENUMS(FontSizeMode)
Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged)
Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged)
@@ -84,6 +85,9 @@ class Q_QUICK_PRIVATE_EXPORT QQuickText : public QQuickImplicitSizeItem
Q_PROPERTY(qreal lineHeight READ lineHeight WRITE setLineHeight NOTIFY lineHeightChanged)
Q_PROPERTY(LineHeightMode lineHeightMode READ lineHeightMode WRITE setLineHeightMode NOTIFY lineHeightModeChanged)
Q_PROPERTY(QUrl baseUrl READ baseUrl WRITE setBaseUrl RESET resetBaseUrl NOTIFY baseUrlChanged)
+ Q_PROPERTY(int minimumPixelSize READ minimumPixelSize WRITE setMinimumPixelSize NOTIFY minimumPixelSizeChanged)
+ Q_PROPERTY(int minimumPointSize READ minimumPointSize WRITE setMinimumPointSize NOTIFY minimumPointSizeChanged)
+ Q_PROPERTY(FontSizeMode fontSizeMode READ fontSizeMode WRITE setFontSizeMode NOTIFY fontSizeModeChanged)
public:
QQuickText(QQuickItem *parent=0);
@@ -118,6 +122,9 @@ public:
enum LineHeightMode { ProportionalHeight, FixedHeight };
+ enum FontSizeMode { FixedSize = 0x0, HorizontalFit = 0x01, VerticalFit = 0x02,
+ Fit = HorizontalFit | VerticalFit };
+
QString text() const;
void setText(const QString &);
@@ -163,10 +170,20 @@ public:
LineHeightMode lineHeightMode() const;
void setLineHeightMode(LineHeightMode);
+
QUrl baseUrl() const;
void setBaseUrl(const QUrl &url);
void resetBaseUrl();
+ int minimumPixelSize() const;
+ void setMinimumPixelSize(int size);
+
+ int minimumPointSize() const;
+ void setMinimumPointSize(int size);
+
+ FontSizeMode fontSizeMode() const;
+ void setFontSizeMode(FontSizeMode mode);
+
virtual void componentComplete();
int resourcesLoading() const; // mainly for testing
@@ -195,6 +212,9 @@ Q_SIGNALS:
void paintedSizeChanged();
void lineHeightChanged(qreal lineHeight);
void lineHeightModeChanged(LineHeightMode mode);
+ void fontSizeModeChanged();
+ void minimumPixelSizeChanged();
+ void minimumPointSizeChanged();
void effectiveHorizontalAlignmentChanged();
void lineLaidOut(QQuickTextLine *line);
void baseUrlChanged();
@@ -207,6 +227,8 @@ protected:
virtual QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *);
virtual bool event(QEvent *);
+ void updatePolish();
+
private Q_SLOTS:
void q_imagesLoaded();
void triggerPreprocess();
@@ -231,6 +253,7 @@ public:
QQuickTextLine();
void setLine(QTextLine* line);
+ void setLineOffset(int offset);
int number() const;
qreal width() const;
@@ -248,6 +271,7 @@ public:
private:
QTextLine *m_line;
qreal m_height;
+ int m_lineOffset;
};
QT_END_NAMESPACE