• Tero Rintaluoma's avatar
    Adds "armvX-none-rvct" targets · 11a222f5
    Tero Rintaluoma authored
    Adds following targets to configure script to support RVCT compilation
    without operating system support (for Profiler or bare metal images).
     - armv5te-none-rvct
     - armv6-none-rvct
     - armv7-none-rvct
    
    To strip OS specific parts from the code "os_support"-config was added
    to script and CONFIG_OS_SUPPORT flag is used in the code to exclude OS
    specific parts such as OS specific includes and function calls for
    timers and threads etc. This was done to enable RVCT compilation for
    profiling purposes or running the image on bare metal target with
    Lauterbach.
    
    Removed separate AREA directives for READONLY data in armv6 and neon
    assembly files to fix the RVCT compilation. Otherwise
    "ldr <reg>, =label" syntax would have been needed to prevent linker
    errors. This syntax is not supported by older gnu assemblers.
    
    Change-Id: I14f4c68529e8c27397502fbc3010a54e505ddb43
    11a222f5
qquicktext_p_p.h 5.88 KiB
// Commit: 6e5a642c9484536fc173714f560f739944368cf5
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/
**
** This file is part of the QtDeclarative module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU General
** Public License version 3.0 as published by the Free Software Foundation
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
** http://www.gnu.org/copyleft/gpl.html.
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
** $QT_END_LICENSE$
****************************************************************************/
#ifndef QQUICKTEXT_P_P_H
#define QQUICKTEXT_P_P_H
//  W A R N I N G
//  -------------
// This file is not part of the Qt API.  It exists purely as an
// implementation detail.  This header file may change from version to
// version without notice, or even be removed.
// We mean it.
#include "qquicktext_p.h"
#include "qquickimplicitsizeitem_p_p.h"
#include <QtDeclarative/qdeclarative.h>
#include <QtGui/qabstracttextdocumentlayout.h>
#include <QtGui/qtextlayout.h>
#include <private/qdeclarativestyledtext_p.h>
QT_BEGIN_NAMESPACE
class QTextLayout;
class QQuickTextDocumentWithImageResources;
class Q_AUTOTEST_EXPORT QQuickTextPrivate : public QQuickImplicitSizeItemPrivate
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
{ Q_DECLARE_PUBLIC(QQuickText) public: QQuickTextPrivate(); ~QQuickTextPrivate(); void init(); void updateSize(); void updateLayout(); bool determineHorizontalAlignment(); bool setHAlign(QQuickText::HAlignment, bool forceAlign = false); void mirrorChange(); QTextDocument *textDocument(); bool isLineLaidOutConnected(); void setLineGeometry(QTextLine &line, qreal lineWidth, qreal &height); QString text; QUrl baseUrl; QFont font; QFont sourceFont; QColor color; QQuickText::TextStyle style; QColor styleColor; QString activeLink; QQuickText::HAlignment hAlign; QQuickText::VAlignment vAlign; QQuickText::TextElideMode elideMode; QQuickText::TextFormat format; QQuickText::WrapMode wrapMode; qreal lineHeight; QQuickText::LineHeightMode lineHeightMode; int lineCount; int maximumLineCount; int maximumLineCountValid; QQuickText::FontSizeMode fontSizeMode; int minimumPixelSize; int minimumPointSize; QPointF elidePos; static const QChar elideChar; bool updateOnComponentComplete:1; bool updateLayoutOnPolish:1; bool richText:1; bool styledText:1; bool singleline:1; bool internalWidthUpdate:1; bool requireImplicitWidth:1; bool truncated:1; bool hAlignImplicit:1; bool rightToLeftText:1; bool layoutTextElided:1; bool textHasChanged:1; bool needToUpdateLayout:1; QRect layedOutTextRect; QSize paintedSize; qreal naturalWidth; virtual qreal getImplicitWidth() const; void ensureDoc(); QQuickTextDocumentWithImageResources *doc; QRect setupTextLayout(); void setupCustomLineGeometry(QTextLine &line, qreal &height, int lineOffset = 0); bool isLinkActivatedConnected(); QString anchorAt(const QPointF &pos); QTextLayout layout; QTextLayout *elideLayout; QQuickTextLine *textLine;
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
static inline QQuickTextPrivate *get(QQuickText *t) { return t->d_func(); } enum UpdateType { UpdateNone, UpdatePreprocess, UpdatePaintNode }; UpdateType updateType; QList<QDeclarativeStyledTextImgTag*> imgTags; QList<QDeclarativeStyledTextImgTag*> visibleImgTags; int nbActiveDownloads; #if defined(Q_OS_MAC) QList<QRectF> linesRects; QThread *layoutThread; QThread *paintingThread; #endif }; class QDeclarativePixmap; class QQuickTextDocumentWithImageResources : public QTextDocument, public QTextObjectInterface { Q_OBJECT Q_INTERFACES(QTextObjectInterface) public: QQuickTextDocumentWithImageResources(QQuickItem *parent); virtual ~QQuickTextDocumentWithImageResources(); void setText(const QString &); int resourcesLoading() const { return outstanding; } void clearResources(); void clear(); QSizeF intrinsicSize(QTextDocument *doc, int posInDocument, const QTextFormat &format); void drawObject(QPainter *p, const QRectF &rect, QTextDocument *doc, int posInDocument, const QTextFormat &format); QImage image(const QTextImageFormat &format); void setBaseUrl(const QUrl &url, bool clear = true); Q_SIGNALS: void imagesLoaded(); protected: QVariant loadResource(int type, const QUrl &name); QDeclarativePixmap *loadPixmap(QDeclarativeContext *context, const QUrl &name); private slots: void requestFinished(); private: QHash<QUrl, QDeclarativePixmap *> m_resources; QUrl m_baseUrl; int outstanding; static QSet<QUrl> errors; }; QT_END_NAMESPACE #endif // QQUICKTEXT_P_P_H