diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 48 | ||||
-rw-r--r-- | src/gui/kernel/qplatformgraphicsbufferhelper.cpp | 1 | ||||
-rw-r--r-- | src/gui/opengl/qopenglpaintengine.cpp | 15 | ||||
-rw-r--r-- | src/gui/opengl/qopenglpaintengine_p.h | 5 | ||||
-rw-r--r-- | src/gui/painting/qplatformbackingstore.cpp | 2 | ||||
-rw-r--r-- | src/gui/text/qfontengine_ft_p.h | 92 | ||||
-rw-r--r-- | src/gui/text/qtextcursor.cpp | 4 | ||||
-rw-r--r-- | src/gui/text/qtextcursor.h | 6 | ||||
-rw-r--r-- | src/gui/text/qtextcursor_p.h | 3 | ||||
-rw-r--r-- | src/gui/text/qtextdocument.cpp | 7 | ||||
-rw-r--r-- | src/gui/text/qtextdocument_p.cpp | 2 | ||||
-rw-r--r-- | src/gui/text/qtextobject.cpp | 5 | ||||
-rw-r--r-- | src/gui/text/qtexttable.cpp | 13 |
13 files changed, 99 insertions, 104 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 37d6ab6be0..58e2586024 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -1220,30 +1220,32 @@ void QGuiApplicationPrivate::createPlatformIntegration() int j = argc ? 1 : 0; for (int i=1; i<argc; i++) { - if (argv[i] && *argv[i] != '-') { + if (!argv[i]) + continue; + if (*argv[i] != '-') { argv[j++] = argv[i]; continue; } const bool isXcb = platformName == "xcb"; - QByteArray arg = argv[i]; - if (arg.startsWith("--")) - arg.remove(0, 1); - if (arg == "-platformpluginpath") { + const char *arg = argv[i]; + if (arg[1] == '-') // startsWith("--") + ++arg; + if (strcmp(arg, "-platformpluginpath") == 0) { if (++i < argc) platformPluginPath = QString::fromLocal8Bit(argv[i]); - } else if (arg == "-platform") { + } else if (strcmp(arg, "-platform") == 0) { if (++i < argc) platformName = argv[i]; - } else if (arg == "-platformtheme") { + } else if (strcmp(arg, "-platformtheme") == 0) { if (++i < argc) platformThemeName = QString::fromLocal8Bit(argv[i]); - } else if (arg == "-qwindowgeometry" || (isXcb && arg == "-geometry")) { + } else if (strcmp(arg, "-qwindowgeometry") == 0 || (isXcb && strcmp(arg, "-geometry") == 0)) { if (++i < argc) windowGeometrySpecification = QWindowGeometrySpecification::fromArgument(argv[i]); - } else if (arg == "-qwindowtitle" || (isXcb && arg == "-title")) { + } else if (strcmp(arg, "-qwindowtitle") == 0 || (isXcb && strcmp(arg, "-title") == 0)) { if (++i < argc) firstWindowTitle = QString::fromLocal8Bit(argv[i]); - } else if (arg == "-qwindowicon" || (isXcb && arg == "-icon")) { + } else if (strcmp(arg, "-qwindowicon") == 0 || (isXcb && strcmp(arg, "-icon") == 0)) { if (++i < argc) { icon = QString::fromLocal8Bit(argv[i]); } @@ -1319,20 +1321,22 @@ void QGuiApplicationPrivate::init() QString s; int j = argc ? 1 : 0; for (int i=1; i<argc; i++) { - if (argv[i] && *argv[i] != '-') { + if (!argv[i]) + continue; + if (*argv[i] != '-') { argv[j++] = argv[i]; continue; } - QByteArray arg = argv[i]; - if (arg.startsWith("--")) - arg.remove(0, 1); - if (arg == "-plugin") { + const char *arg = argv[i]; + if (arg[1] == '-') // startsWith("--") + ++arg; + if (strcmp(arg, "-plugin") == 0) { if (++i < argc) pluginList << argv[i]; - } else if (arg == "-reverse") { + } else if (strcmp(arg, "-reverse") == 0) { force_reverse = true; #ifdef Q_OS_MAC - } else if (arg.startsWith("-psn_")) { + } else if (strncmp(arg, "-psn_", 5) == 0) { // eat "-psn_xxxx" on Mac, which is passed when starting an app from Finder. // special hack to change working directory (for an app bundle) when running from finder if (QDir::currentPath() == QLatin1String("/")) { @@ -1344,7 +1348,7 @@ void QGuiApplicationPrivate::init() } #endif #ifndef QT_NO_SESSIONMANAGER - } else if (arg == "-session" && i < argc-1) { + } else if (strcmp(arg, "-session") == 0 && i < argc - 1) { ++i; if (argv[i] && *argv[i]) { session_id = QString::fromLatin1(argv[i]); @@ -1356,11 +1360,11 @@ void QGuiApplicationPrivate::init() is_session_restored = true; } #endif - } else if (arg == "-testability") { + } else if (strcmp(arg, "-testability") == 0) { loadTestability = true; - } else if (arg.indexOf("-style=", 0) != -1) { - s = QString::fromLocal8Bit(arg.right(arg.length() - 7).toLower()); - } else if (arg == "-style" && i < argc-1) { + } else if (strncmp(arg, "-style=", 7) == 0) { + s = QString::fromLocal8Bit(arg + 7).toLower(); + } else if (strcmp(arg, "-style") == 0 && i < argc - 1) { s = QString::fromLocal8Bit(argv[++i]).toLower(); } else { argv[j++] = argv[i]; diff --git a/src/gui/kernel/qplatformgraphicsbufferhelper.cpp b/src/gui/kernel/qplatformgraphicsbufferhelper.cpp index 46a536c923..82a88eca04 100644 --- a/src/gui/kernel/qplatformgraphicsbufferhelper.cpp +++ b/src/gui/kernel/qplatformgraphicsbufferhelper.cpp @@ -238,6 +238,7 @@ bool QPlatformGraphicsBufferHelper::bindSWToTexture(const QPlatformGraphicsBuffe #else Q_UNUSED(graphicsBuffer) Q_UNUSED(swizzleRandB) + Q_UNUSED(premultipliedB) Q_UNUSED(subRect) return false; #endif // QT_NO_OPENGL diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp index a1e5084fc1..d93871c99b 100644 --- a/src/gui/opengl/qopenglpaintengine.cpp +++ b/src/gui/opengl/qopenglpaintengine.cpp @@ -99,13 +99,6 @@ QOpenGL2PaintEngineExPrivate::~QOpenGL2PaintEngineExPrivate() { delete shaderManager; - while (pathCaches.size()) { - QVectorPath::CacheEntry *e = *(pathCaches.constBegin()); - e->cleanup(e->engine, e->data); - e->data = 0; - e->engine = 0; - } - if (elementIndicesVBOId != 0) { funcs.glDeleteBuffers(1, &elementIndicesVBOId); elementIndicesVBOId = 0; @@ -298,8 +291,6 @@ void QOpenGL2PaintEngineExPrivate::updateBrushTexture() } updateTexture(QT_BRUSH_TEXTURE_UNIT, currentBrushImage, wrapMode, filterMode, ForceUpdate); - - textureInvertedY = false; } brushTextureDirty = false; } @@ -415,11 +406,7 @@ void QOpenGL2PaintEngineExPrivate::updateBrushUniforms() dy = 0; } QTransform gl_to_qt(1, 0, 0, m22, 0, dy); - QTransform inv_matrix; - if (style == Qt::TexturePattern && textureInvertedY == -1) - inv_matrix = gl_to_qt * (QTransform(1, 0, 0, -1, 0, currentBrush.texture().height()) * brushQTransform * matrix).inverted() * translate; - else - inv_matrix = gl_to_qt * (brushQTransform * matrix).inverted() * translate; + QTransform inv_matrix = gl_to_qt * (brushQTransform * matrix).inverted() * translate; shaderManager->currentProgram()->setUniformValue(location(QOpenGLEngineShaderManager::BrushTransform), inv_matrix); shaderManager->currentProgram()->setUniformValue(location(QOpenGLEngineShaderManager::BrushTexture), QT_BRUSH_TEXTURE_UNIT); diff --git a/src/gui/opengl/qopenglpaintengine_p.h b/src/gui/opengl/qopenglpaintengine_p.h index 88ad22e635..c9f328203c 100644 --- a/src/gui/opengl/qopenglpaintengine_p.h +++ b/src/gui/opengl/qopenglpaintengine_p.h @@ -315,14 +315,9 @@ public: bool needsSync; bool multisamplingAlwaysEnabled; - GLfloat depthRange[2]; - - float textureInvertedY; - QTriangulatingStroker stroker; QDashedStrokeProcessor dasher; - QSet<QVectorPath::CacheEntry *> pathCaches; QVector<GLuint> unusedVBOSToClean; QVector<GLuint> unusedIBOSToClean; diff --git a/src/gui/painting/qplatformbackingstore.cpp b/src/gui/painting/qplatformbackingstore.cpp index 640792c6ec..d35f1d00d1 100644 --- a/src/gui/painting/qplatformbackingstore.cpp +++ b/src/gui/painting/qplatformbackingstore.cpp @@ -391,7 +391,7 @@ void QPlatformBackingStore::composeAndFlush(QWindow *window, const QRegion ®i // The backingstore is for the entire tlw. // In case of native children offset tells the position relative to the tlw. const QRect srcRect = toBottomLeftRect(deviceWindowRect.translated(offset), d_ptr->textureSize.height()); - const QMatrix3x3 source = QOpenGLTextureBlitter::sourceTransform(deviceRect(srcRect, window), + const QMatrix3x3 source = QOpenGLTextureBlitter::sourceTransform(srcRect, d_ptr->textureSize, origin); d_ptr->blitter->blit(textureId, QMatrix4x4(), source); diff --git a/src/gui/text/qfontengine_ft_p.h b/src/gui/text/qfontengine_ft_p.h index 9c1cf20827..1886fc67ba 100644 --- a/src/gui/text/qfontengine_ft_p.h +++ b/src/gui/text/qfontengine_ft_p.h @@ -195,65 +195,65 @@ private: mutable int fast_glyph_count; }; - virtual QFontEngine::FaceId faceId() const Q_DECL_OVERRIDE; - virtual QFontEngine::Properties properties() const Q_DECL_OVERRIDE; - virtual QFixed emSquareSize() const Q_DECL_OVERRIDE; - virtual bool supportsSubPixelPositions() const Q_DECL_OVERRIDE + QFontEngine::FaceId faceId() const Q_DECL_OVERRIDE; + QFontEngine::Properties properties() const Q_DECL_OVERRIDE; + QFixed emSquareSize() const Q_DECL_OVERRIDE; + bool supportsSubPixelPositions() const Q_DECL_OVERRIDE { return default_hint_style == HintLight || default_hint_style == HintNone; } - virtual bool getSfntTableData(uint tag, uchar *buffer, uint *length) const Q_DECL_OVERRIDE; - virtual int synthesized() const Q_DECL_OVERRIDE; + bool getSfntTableData(uint tag, uchar *buffer, uint *length) const Q_DECL_OVERRIDE; + int synthesized() const Q_DECL_OVERRIDE; - virtual QFixed ascent() const Q_DECL_OVERRIDE; - virtual QFixed descent() const Q_DECL_OVERRIDE; - virtual QFixed leading() const Q_DECL_OVERRIDE; - virtual QFixed xHeight() const Q_DECL_OVERRIDE; - virtual QFixed averageCharWidth() const Q_DECL_OVERRIDE; + QFixed ascent() const Q_DECL_OVERRIDE; + QFixed descent() const Q_DECL_OVERRIDE; + QFixed leading() const Q_DECL_OVERRIDE; + QFixed xHeight() const Q_DECL_OVERRIDE; + QFixed averageCharWidth() const Q_DECL_OVERRIDE; - virtual qreal maxCharWidth() const Q_DECL_OVERRIDE; - virtual QFixed lineThickness() const Q_DECL_OVERRIDE; - virtual QFixed underlinePosition() const Q_DECL_OVERRIDE; + qreal maxCharWidth() const Q_DECL_OVERRIDE; + QFixed lineThickness() const Q_DECL_OVERRIDE; + QFixed underlinePosition() const Q_DECL_OVERRIDE; - virtual glyph_t glyphIndex(uint ucs4) const Q_DECL_OVERRIDE; + glyph_t glyphIndex(uint ucs4) const Q_DECL_OVERRIDE; void doKerning(QGlyphLayout *, ShaperFlags) const Q_DECL_OVERRIDE; - virtual void getUnscaledGlyph(glyph_t glyph, QPainterPath *path, glyph_metrics_t *metrics) Q_DECL_OVERRIDE; + void getUnscaledGlyph(glyph_t glyph, QPainterPath *path, glyph_metrics_t *metrics) Q_DECL_OVERRIDE; - virtual bool supportsTransformation(const QTransform &transform) const Q_DECL_OVERRIDE; + bool supportsTransformation(const QTransform &transform) const Q_DECL_OVERRIDE; - virtual void addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, int nglyphs, - QPainterPath *path, QTextItem::RenderFlags flags) Q_DECL_OVERRIDE; - virtual void addOutlineToPath(qreal x, qreal y, const QGlyphLayout &glyphs, - QPainterPath *path, QTextItem::RenderFlags flags) Q_DECL_OVERRIDE; + void addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, int nglyphs, + QPainterPath *path, QTextItem::RenderFlags flags) Q_DECL_OVERRIDE; + void addOutlineToPath(qreal x, qreal y, const QGlyphLayout &glyphs, + QPainterPath *path, QTextItem::RenderFlags flags) Q_DECL_OVERRIDE; - virtual bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, ShaperFlags flags) const Q_DECL_OVERRIDE; + bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, ShaperFlags flags) const Q_DECL_OVERRIDE; - virtual glyph_metrics_t boundingBox(const QGlyphLayout &glyphs) Q_DECL_OVERRIDE; - virtual glyph_metrics_t boundingBox(glyph_t glyph) Q_DECL_OVERRIDE; - virtual glyph_metrics_t boundingBox(glyph_t glyph, const QTransform &matrix) Q_DECL_OVERRIDE; + glyph_metrics_t boundingBox(const QGlyphLayout &glyphs) Q_DECL_OVERRIDE; + glyph_metrics_t boundingBox(glyph_t glyph) Q_DECL_OVERRIDE; + glyph_metrics_t boundingBox(glyph_t glyph, const QTransform &matrix) Q_DECL_OVERRIDE; - virtual void recalcAdvances(QGlyphLayout *glyphs, ShaperFlags flags) const Q_DECL_OVERRIDE; - virtual QImage alphaMapForGlyph(glyph_t g) Q_DECL_OVERRIDE { return alphaMapForGlyph(g, 0); } - virtual QImage alphaMapForGlyph(glyph_t, QFixed) Q_DECL_OVERRIDE; + void recalcAdvances(QGlyphLayout *glyphs, ShaperFlags flags) const Q_DECL_OVERRIDE; + QImage alphaMapForGlyph(glyph_t g) Q_DECL_OVERRIDE { return alphaMapForGlyph(g, 0); } + QImage alphaMapForGlyph(glyph_t, QFixed) Q_DECL_OVERRIDE; QImage alphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition, const QTransform &t) Q_DECL_OVERRIDE; - virtual QImage alphaRGBMapForGlyph(glyph_t, QFixed subPixelPosition, const QTransform &t) Q_DECL_OVERRIDE; - virtual glyph_metrics_t alphaMapBoundingBox(glyph_t glyph, - QFixed subPixelPosition, - const QTransform &matrix, - QFontEngine::GlyphFormat format) Q_DECL_OVERRIDE; - virtual QImage *lockedAlphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition, - GlyphFormat neededFormat, const QTransform &t, - QPoint *offset) Q_DECL_OVERRIDE; - virtual bool hasInternalCaching() const Q_DECL_OVERRIDE { return cacheEnabled; } - virtual void unlockAlphaMapForGlyph() Q_DECL_OVERRIDE; - - virtual void removeGlyphFromCache(glyph_t glyph) Q_DECL_OVERRIDE; - virtual int glyphMargin(QFontEngine::GlyphFormat /* format */) Q_DECL_OVERRIDE { return 0; } - - virtual int glyphCount() const Q_DECL_OVERRIDE; + QImage alphaRGBMapForGlyph(glyph_t, QFixed subPixelPosition, const QTransform &t) Q_DECL_OVERRIDE; + glyph_metrics_t alphaMapBoundingBox(glyph_t glyph, + QFixed subPixelPosition, + const QTransform &matrix, + QFontEngine::GlyphFormat format) Q_DECL_OVERRIDE; + QImage *lockedAlphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition, + GlyphFormat neededFormat, const QTransform &t, + QPoint *offset) Q_DECL_OVERRIDE; + bool hasInternalCaching() const Q_DECL_OVERRIDE { return cacheEnabled; } + void unlockAlphaMapForGlyph() Q_DECL_OVERRIDE; + + void removeGlyphFromCache(glyph_t glyph) Q_DECL_OVERRIDE; + int glyphMargin(QFontEngine::GlyphFormat /* format */) Q_DECL_OVERRIDE { return 0; } + + int glyphCount() const Q_DECL_OVERRIDE; enum Scaling { Scaled, @@ -283,12 +283,12 @@ private: bool init(FaceId faceId, bool antialias, GlyphFormat format, QFreetypeFace *freetypeFace); - virtual int getPointInOutline(glyph_t glyph, int flags, quint32 point, QFixed *xpos, QFixed *ypos, quint32 *nPoints) Q_DECL_OVERRIDE; + int getPointInOutline(glyph_t glyph, int flags, quint32 point, QFixed *xpos, QFixed *ypos, quint32 *nPoints) Q_DECL_OVERRIDE; void setQtDefaultHintStyle(QFont::HintingPreference hintingPreference); - virtual void setDefaultHintStyle(HintStyle style) Q_DECL_OVERRIDE; + void setDefaultHintStyle(HintStyle style) Q_DECL_OVERRIDE; - virtual QFontEngine *cloneWithSize(qreal pixelSize) const Q_DECL_OVERRIDE; + QFontEngine *cloneWithSize(qreal pixelSize) const Q_DECL_OVERRIDE; bool initFromFontEngine(const QFontEngineFT *fontEngine); HintStyle defaultHintStyle() const { return default_hint_style; } diff --git a/src/gui/text/qtextcursor.cpp b/src/gui/text/qtextcursor.cpp index f824d1b369..85484b8b03 100644 --- a/src/gui/text/qtextcursor.cpp +++ b/src/gui/text/qtextcursor.cpp @@ -1078,8 +1078,8 @@ QTextCursor::QTextCursor(const QTextBlock &block) /*! \internal */ -QTextCursor::QTextCursor(QTextDocumentPrivate *p, int pos) - : d(new QTextCursorPrivate(p)) +QTextCursor::QTextCursor(QTextDocumentPrivate &p, int pos) + : d(new QTextCursorPrivate(&p)) { d->adjusted_anchor = d->anchor = d->position = pos; diff --git a/src/gui/text/qtextcursor.h b/src/gui/text/qtextcursor.h index bc099e9d03..b8fa3145eb 100644 --- a/src/gui/text/qtextcursor.h +++ b/src/gui/text/qtextcursor.h @@ -67,10 +67,8 @@ class Q_GUI_EXPORT QTextCursor public: QTextCursor(); explicit QTextCursor(QTextDocument *document); - QTextCursor(QTextDocumentPrivate *p, int pos); explicit QTextCursor(QTextFrame *frame); explicit QTextCursor(const QTextBlock &block); - explicit QTextCursor(QTextCursorPrivate *d); QTextCursor(const QTextCursor &cursor); #ifdef Q_COMPILER_RVALUE_REFS QTextCursor &operator=(QTextCursor &&other) Q_DECL_NOTHROW { swap(other); return *this; } @@ -227,8 +225,12 @@ public: QTextDocument *document() const; private: + QTextCursor(QTextDocumentPrivate &p, int pos); + explicit QTextCursor(QTextCursorPrivate *d); + QSharedDataPointer<QTextCursorPrivate> d; friend class QTextCursorPrivate; + friend class QTextDocumentPrivate; friend class QTextDocumentFragmentPrivate; friend class QTextCopyHelper; friend class QWidgetTextControlPrivate; diff --git a/src/gui/text/qtextcursor_p.h b/src/gui/text/qtextcursor_p.h index 9463a8be6f..5b593b8a9b 100644 --- a/src/gui/text/qtextcursor_p.h +++ b/src/gui/text/qtextcursor_p.h @@ -106,6 +106,9 @@ public: void aboutToRemoveCell(int from, int to); + static QTextCursor fromPosition(QTextDocumentPrivate *d, int pos) + { return QTextCursor(*d, pos); } + QTextDocumentPrivate *priv; qreal x; int position; diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp index 01d6d2c519..f50f771c07 100644 --- a/src/gui/text/qtextdocument.cpp +++ b/src/gui/text/qtextdocument.cpp @@ -39,6 +39,7 @@ #include "qtextdocument.h" #include <qtextformat.h> +#include "qtextcursor_p.h" #include "qtextdocumentlayout_p.h" #include "qtextdocumentfragment.h" #include "qtextdocumentfragment_p.h" @@ -1279,7 +1280,7 @@ static bool findInBlock(const QTextBlock &block, const QString &expression, int } } //we have a hit, return the cursor for that. - *cursor = QTextCursor(block.docHandle(), block.position() + idx); + *cursor = QTextCursorPrivate::fromPosition(block.docHandle(), block.position() + idx); cursor->setPosition(cursor->position() + expression.length(), QTextCursor::KeepAnchor); return true; } @@ -1397,7 +1398,7 @@ static bool findInBlock(const QTextBlock &block, const QRegExp &expression, int } } //we have a hit, return the cursor for that. - *cursor = QTextCursor(block.docHandle(), block.position() + idx); + *cursor = QTextCursorPrivate::fromPosition(block.docHandle(), block.position() + idx); cursor->setPosition(cursor->position() + expr.matchedLength(), QTextCursor::KeepAnchor); return true; } @@ -1525,7 +1526,7 @@ static bool findInBlock(const QTextBlock &block, const QRegularExpression &expre } } //we have a hit, return the cursor for that. - *cursor = QTextCursor(block.docHandle(), block.position() + idx); + *cursor = QTextCursorPrivate::fromPosition(block.docHandle(), block.position() + idx); cursor->setPosition(cursor->position() + match.capturedLength(), QTextCursor::KeepAnchor); return true; } diff --git a/src/gui/text/qtextdocument_p.cpp b/src/gui/text/qtextdocument_p.cpp index ed421177fe..cfca718f01 100644 --- a/src/gui/text/qtextdocument_p.cpp +++ b/src/gui/text/qtextdocument_p.cpp @@ -1710,7 +1710,7 @@ bool QTextDocumentPrivate::ensureMaximumBlockCount() beginEditBlock(); const int blocksToRemove = blocks.numNodes() - maximumBlockCount; - QTextCursor cursor(this, 0); + QTextCursor cursor(*this, 0); cursor.movePosition(QTextCursor::NextBlock, QTextCursor::KeepAnchor, blocksToRemove); unreachableCharacterCount += cursor.selectionEnd() - cursor.selectionStart(); diff --git a/src/gui/text/qtextobject.cpp b/src/gui/text/qtextobject.cpp index 6aefe8b339..49cf35ecc0 100644 --- a/src/gui/text/qtextobject.cpp +++ b/src/gui/text/qtextobject.cpp @@ -39,6 +39,7 @@ #include "qtextobject.h" #include "qtextobject_p.h" +#include "qtextcursor_p.h" #include "qtextdocument.h" #include "qtextformat_p.h" #include "qtextdocument_p.h" @@ -467,7 +468,7 @@ QTextFrame *QTextFrame::parentFrame() const QTextCursor QTextFrame::firstCursorPosition() const { Q_D(const QTextFrame); - return QTextCursor(d->pieceTable, firstPosition()); + return QTextCursorPrivate::fromPosition(d->pieceTable, firstPosition()); } /*! @@ -478,7 +479,7 @@ QTextCursor QTextFrame::firstCursorPosition() const QTextCursor QTextFrame::lastCursorPosition() const { Q_D(const QTextFrame); - return QTextCursor(d->pieceTable, lastPosition()); + return QTextCursorPrivate::fromPosition(d->pieceTable, lastPosition()); } /*! diff --git a/src/gui/text/qtexttable.cpp b/src/gui/text/qtexttable.cpp index 20821c66ef..062a214d63 100644 --- a/src/gui/text/qtexttable.cpp +++ b/src/gui/text/qtexttable.cpp @@ -41,6 +41,7 @@ #include "qtextcursor.h" #include "qtextformat.h" #include <qdebug.h> +#include "qtextcursor_p.h" #include "qtexttable_p.h" #include "qvarlengtharray.h" @@ -226,7 +227,7 @@ int QTextTableCell::columnSpan() const */ QTextCursor QTextTableCell::firstCursorPosition() const { - return QTextCursor(table->d_func()->pieceTable, firstPosition()); + return QTextCursorPrivate::fromPosition(table->d_func()->pieceTable, firstPosition()); } /*! @@ -236,7 +237,7 @@ QTextCursor QTextTableCell::firstCursorPosition() const */ QTextCursor QTextTableCell::lastCursorPosition() const { - return QTextCursor(table->d_func()->pieceTable, lastPosition()); + return QTextCursorPrivate::fromPosition(table->d_func()->pieceTable, lastPosition()); } @@ -1109,10 +1110,10 @@ void QTextTable::mergeCells(int row, int column, int numRows, int numCols) if (nextPos > pos) { if (needsParagraph) { needsParagraph = false; - QTextCursor(p, insertPos++).insertBlock(); + QTextCursorPrivate::fromPosition(p, insertPos++).insertBlock(); p->move(pos + 1, insertPos, nextPos - pos); } else if (rowHasText) { - QTextCursor(p, insertPos++).insertText(QLatin1String(" ")); + QTextCursorPrivate::fromPosition(p, insertPos++).insertText(QLatin1String(" ")); p->move(pos + 1, insertPos, nextPos - pos); } else { p->move(pos, insertPos, nextPos - pos); @@ -1288,7 +1289,7 @@ QTextCursor QTextTable::rowStart(const QTextCursor &c) const int row = cell.row(); QTextDocumentPrivate *p = d->pieceTable; QTextDocumentPrivate::FragmentIterator it(&p->fragmentMap(), d->grid[row*d->nCols]); - return QTextCursor(p, it.position()); + return QTextCursorPrivate::fromPosition(p, it.position()); } /*! @@ -1310,7 +1311,7 @@ QTextCursor QTextTable::rowEnd(const QTextCursor &c) const int fragment = row < d->nRows ? d->grid[row*d->nCols] : d->fragment_end; QTextDocumentPrivate *p = d->pieceTable; QTextDocumentPrivate::FragmentIterator it(&p->fragmentMap(), fragment); - return QTextCursor(p, it.position() - 1); + return QTextCursorPrivate::fromPosition(p, it.position() - 1); } /*! |