diff options
Diffstat (limited to 'src/quick/items/qquicktext_p.h')
-rw-r--r-- | src/quick/items/qquicktext_p.h | 138 |
1 files changed, 68 insertions, 70 deletions
diff --git a/src/quick/items/qquicktext_p.h b/src/quick/items/qquicktext_p.h index 1af60051fb..ed474b29c0 100644 --- a/src/quick/items/qquicktext_p.h +++ b/src/quick/items/qquicktext_p.h @@ -1,41 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtQuick module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QQUICKTEXT_P_H #define QQUICKTEXT_P_H @@ -52,6 +16,7 @@ // #include "qquickimplicitsizeitem_p.h" +#include "qquicktextinterface_p.h" #include <private/qtquickglobal_p.h> #include <QtGui/qtextoption.h> @@ -59,9 +24,10 @@ QT_BEGIN_NAMESPACE class QQuickTextPrivate; class QQuickTextLine; -class Q_QUICK_PRIVATE_EXPORT QQuickText : public QQuickImplicitSizeItem +class Q_QUICK_EXPORT QQuickText : public QQuickImplicitSizeItem, public QQuickTextInterface { Q_OBJECT + Q_INTERFACES(QQuickTextInterface) Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged) @@ -90,16 +56,19 @@ class Q_QUICK_PRIVATE_EXPORT QQuickText : public QQuickImplicitSizeItem Q_PROPERTY(int minimumPointSize READ minimumPointSize WRITE setMinimumPointSize NOTIFY minimumPointSizeChanged) Q_PROPERTY(FontSizeMode fontSizeMode READ fontSizeMode WRITE setFontSizeMode NOTIFY fontSizeModeChanged) Q_PROPERTY(RenderType renderType READ renderType WRITE setRenderType NOTIFY renderTypeChanged) - Q_PROPERTY(QString hoveredLink READ hoveredLink NOTIFY linkHovered REVISION 2) + Q_PROPERTY(QString hoveredLink READ hoveredLink NOTIFY linkHovered REVISION(2, 2)) + Q_PROPERTY(int renderTypeQuality READ renderTypeQuality WRITE setRenderTypeQuality NOTIFY renderTypeQualityChanged REVISION(6, 0)) - Q_PROPERTY(qreal padding READ padding WRITE setPadding RESET resetPadding NOTIFY paddingChanged REVISION 6) - Q_PROPERTY(qreal topPadding READ topPadding WRITE setTopPadding RESET resetTopPadding NOTIFY topPaddingChanged REVISION 6) - Q_PROPERTY(qreal leftPadding READ leftPadding WRITE setLeftPadding RESET resetLeftPadding NOTIFY leftPaddingChanged REVISION 6) - Q_PROPERTY(qreal rightPadding READ rightPadding WRITE setRightPadding RESET resetRightPadding NOTIFY rightPaddingChanged REVISION 6) - Q_PROPERTY(qreal bottomPadding READ bottomPadding WRITE setBottomPadding RESET resetBottomPadding NOTIFY bottomPaddingChanged REVISION 6) + Q_PROPERTY(qreal padding READ padding WRITE setPadding RESET resetPadding NOTIFY paddingChanged REVISION(2, 6)) + Q_PROPERTY(qreal topPadding READ topPadding WRITE setTopPadding RESET resetTopPadding NOTIFY topPaddingChanged REVISION(2, 6)) + Q_PROPERTY(qreal leftPadding READ leftPadding WRITE setLeftPadding RESET resetLeftPadding NOTIFY leftPaddingChanged REVISION(2, 6)) + Q_PROPERTY(qreal rightPadding READ rightPadding WRITE setRightPadding RESET resetRightPadding NOTIFY rightPaddingChanged REVISION(2, 6)) + Q_PROPERTY(qreal bottomPadding READ bottomPadding WRITE setBottomPadding RESET resetBottomPadding NOTIFY bottomPaddingChanged REVISION(2, 6)) - Q_PROPERTY(QJSValue fontInfo READ fontInfo NOTIFY fontInfoChanged REVISION 9) - Q_PROPERTY(QSizeF advance READ advance NOTIFY contentSizeChanged REVISION 10) + Q_PROPERTY(QJSValue fontInfo READ fontInfo NOTIFY fontInfoChanged REVISION(2, 9)) + Q_PROPERTY(QSizeF advance READ advance NOTIFY contentSizeChanged REVISION(2, 10)) + QML_NAMED_ELEMENT(Text) + QML_ADDED_IN_VERSION(2, 0) public: QQuickText(QQuickItem *parent=nullptr); @@ -121,6 +90,7 @@ public: Q_ENUM(TextStyle) enum TextFormat { PlainText = Qt::PlainText, RichText = Qt::RichText, + MarkdownText = Qt::MarkdownText, AutoText = Qt::AutoText, StyledText = 4 }; Q_ENUM(TextFormat) @@ -139,10 +109,19 @@ public: Q_ENUM(WrapMode) enum RenderType { QtRendering, - NativeRendering + NativeRendering, + CurveRendering }; Q_ENUM(RenderType) + enum RenderTypeQuality { DefaultRenderTypeQuality = -1, + LowRenderTypeQuality = 26, + NormalRenderTypeQuality = 52, + HighRenderTypeQuality = 104, + VeryHighRenderTypeQuality = 208 + }; + Q_ENUM(RenderTypeQuality) + enum LineHeightMode { ProportionalHeight, FixedHeight }; Q_ENUM(LineHeightMode) @@ -221,15 +200,23 @@ public: QRectF boundingRect() const override; QRectF clipRect() const override; - Q_INVOKABLE void doLayout(); // ### Qt 6: remove - Q_REVISION(9) Q_INVOKABLE void forceLayout(); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) +#if QT_DEPRECATED_SINCE(5, 15) + QT_DEPRECATED_X("Use forceLayout() instead") + Q_INVOKABLE void doLayout(); +#endif +#endif + Q_REVISION(2, 9) Q_INVOKABLE void forceLayout(); RenderType renderType() const; void setRenderType(RenderType renderType); + int renderTypeQuality() const; + void setRenderTypeQuality(int renderTypeQuality); + QString hoveredLink() const; - Q_REVISION(3) Q_INVOKABLE QString linkAt(qreal x, qreal y) const; + Q_REVISION(2, 3) Q_INVOKABLE QString linkAt(qreal x, qreal y) const; qreal padding() const; void setPadding(qreal padding); @@ -254,10 +241,12 @@ public: QJSValue fontInfo() const; QSizeF advance() const; + void invalidate() override; + Q_SIGNALS: void textChanged(const QString &text); void linkActivated(const QString &link); - Q_REVISION(2) void linkHovered(const QString &link); + Q_REVISION(2, 2) void linkHovered(const QString &link); void fontChanged(const QFont &font); void colorChanged(); void linkColorChanged(); @@ -272,7 +261,7 @@ Q_SIGNALS: void textFormatChanged(QQuickText::TextFormat textFormat); void elideModeChanged(QQuickText::TextElideMode mode); void contentSizeChanged(); - // The next two signals should be marked as Q_REVISION(12). See QTBUG-71247 + // The next two signals should be marked as Q_REVISION(2, 12). See QTBUG-71247 void contentWidthChanged(qreal contentWidth); void contentHeightChanged(qreal contentHeight); @@ -285,12 +274,13 @@ Q_SIGNALS: void lineLaidOut(QQuickTextLine *line); void baseUrlChanged(); void renderTypeChanged(); - Q_REVISION(6) void paddingChanged(); - Q_REVISION(6) void topPaddingChanged(); - Q_REVISION(6) void leftPaddingChanged(); - Q_REVISION(6) void rightPaddingChanged(); - Q_REVISION(6) void bottomPaddingChanged(); - Q_REVISION(9) void fontInfoChanged(); + Q_REVISION(2, 6) void paddingChanged(); + Q_REVISION(2, 6) void topPaddingChanged(); + Q_REVISION(2, 6) void leftPaddingChanged(); + Q_REVISION(2, 6) void rightPaddingChanged(); + Q_REVISION(2, 6) void bottomPaddingChanged(); + Q_REVISION(2, 9) void fontInfoChanged(); + Q_REVISION(6, 0) void renderTypeQualityChanged(); protected: QQuickText(QQuickTextPrivate &dd, QQuickItem *parent = nullptr); @@ -298,8 +288,7 @@ protected: void mousePressEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; void itemChange(ItemChange change, const ItemChangeData &value) override; - void geometryChanged(const QRectF &newGeometry, - const QRectF &oldGeometry) override; + void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override; QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override; void updatePolish() override; @@ -312,6 +301,8 @@ protected: private Q_SLOTS: void q_updateLayout(); void triggerPreprocess(); + Q_REVISION(6, 7) QVariant loadResource(int type, const QUrl &source); + void resourceRequestFinished(); void imageDownloadFinished(); private: @@ -319,22 +310,31 @@ private: Q_DECLARE_PRIVATE(QQuickText) }; +Q_DECLARE_MIXED_ENUM_OPERATORS_SYMMETRIC(int, QQuickText::HAlignment, QQuickText::VAlignment) + class QTextLine; -class QQuickTextLine : public QObject +class Q_QUICK_EXPORT QQuickTextLine : public QObject { Q_OBJECT - Q_PROPERTY(int number READ number) - Q_PROPERTY(qreal width READ width WRITE setWidth) - Q_PROPERTY(qreal height READ height WRITE setHeight) - Q_PROPERTY(qreal x READ x WRITE setX) - Q_PROPERTY(qreal y READ y WRITE setY) + Q_PROPERTY(int number READ number FINAL) + Q_PROPERTY(qreal width READ width WRITE setWidth FINAL) + Q_PROPERTY(qreal height READ height WRITE setHeight FINAL) + Q_PROPERTY(qreal x READ x WRITE setX FINAL) + Q_PROPERTY(qreal y READ y WRITE setY FINAL) + Q_PROPERTY(qreal implicitWidth READ implicitWidth REVISION(2, 15) FINAL) + Q_PROPERTY(bool isLast READ isLast REVISION(2, 15) FINAL) + QML_ANONYMOUS + QML_ADDED_IN_VERSION(2, 0) public: QQuickTextLine(); void setLine(QTextLine* line); void setLineOffset(int offset); + void setFullLayoutTextLength(int length); int number() const; + qreal implicitWidth() const; + bool isLast() const; qreal width() const; void setWidth(qreal width); @@ -352,11 +352,9 @@ private: QTextLine *m_line; qreal m_height; int m_lineOffset; + int m_fullLayoutTextLength; }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QQuickText) -QML_DECLARE_TYPE(QQuickTextLine) - #endif // QQUICKTEXT_P_H |