diff options
Diffstat (limited to 'src/widgets/widgets/qwidgettextcontrol.cpp')
-rw-r--r-- | src/widgets/widgets/qwidgettextcontrol.cpp | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/src/widgets/widgets/qwidgettextcontrol.cpp b/src/widgets/widgets/qwidgettextcontrol.cpp index e179ea3b40..711c4bfd2a 100644 --- a/src/widgets/widgets/qwidgettextcontrol.cpp +++ b/src/widgets/widgets/qwidgettextcontrol.cpp @@ -57,9 +57,6 @@ #include <qtimer.h> #include "private/qtextdocumentlayout_p.h" #include "private/qabstracttextdocumentlayout_p.h" -#if QT_CONFIG(textedit) -#include "private/qtextedit_p.h" -#endif #include "qtextdocument.h" #include "private/qtextdocument_p.h" #include "qtextlist.h" @@ -218,6 +215,14 @@ bool QWidgetTextControlPrivate::cursorMoveKeyEvent(QKeyEvent *e) else if (e == QKeySequence::SelectPreviousLine) { op = QTextCursor::Up; mode = QTextCursor::KeepAnchor; + { + QTextBlock block = cursor.block(); + QTextLine line = currentTextLine(cursor); + if (!block.previous().isValid() + && line.isValid() + && line.lineNumber() == 0) + op = QTextCursor::Start; + } } else if (e == QKeySequence::SelectNextLine) { op = QTextCursor::Down; @@ -1357,15 +1362,8 @@ process: QVariant QWidgetTextControl::loadResource(int type, const QUrl &name) { -#if !QT_CONFIG(textedit) Q_UNUSED(type); Q_UNUSED(name); -#else - if (QTextEdit *textEdit = qobject_cast<QTextEdit *>(parent())) { - QUrl resolvedName = textEdit->d_func()->resolveUrl(name); - return textEdit->loadResource(type, resolvedName); - } -#endif return QVariant(); } @@ -3094,6 +3092,19 @@ bool QWidgetTextControl::find(const QRegExp &exp, QTextDocument::FindFlags optio } #endif +#if QT_CONFIG(regularexpression) +bool QWidgetTextControl::find(const QRegularExpression &exp, QTextDocument::FindFlags options) +{ + Q_D(QWidgetTextControl); + QTextCursor search = d->doc->find(exp, d->cursor, options); + if (search.isNull()) + return false; + + setTextCursor(search); + return true; +} +#endif + QString QWidgetTextControl::toPlainText() const { return document()->toPlainText(); |