Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qplaintextedit_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QPLAINTEXTEDIT_P_H
5#define QPLAINTEXTEDIT_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtWidgets/private/qtwidgetsglobal_p.h>
19#include "private/qabstractscrollarea_p.h"
20#include "QtGui/qtextdocumentfragment.h"
21#if QT_CONFIG(scrollbar)
22#include "QtWidgets/qscrollbar.h"
23#endif
24#include "QtGui/qtextcursor.h"
25#include "QtGui/qtextformat.h"
26#if QT_CONFIG(menu)
27#include "QtWidgets/qmenu.h"
28#endif
29#include "QtGui/qabstracttextdocumentlayout.h"
30#include "QtCore/qbasictimer.h"
31#include "qplaintextedit.h"
32
33#include "private/qwidgettextcontrol_p.h"
34
36
38
39class QMimeData;
40
41class QPlainTextEdit;
42class ExtraArea;
43
45{
47public:
49
50
51 QMimeData *createMimeDataFromSelection() const override;
52 bool canInsertFromMimeData(const QMimeData *source) const override;
53 void insertFromMimeData(const QMimeData *source) override;
54 int hitTest(const QPointF &point, Qt::HitTestAccuracy = Qt::FuzzyHit) const override;
55 QRectF blockBoundingRect(const QTextBlock &block) const override;
56 QString anchorAt(const QPointF &pos) const override;
57 inline QRectF cursorRect(const QTextCursor &cursor) const {
59 r.setLeft(qMax(r.left(), (qreal) 0.));
60 return r;
61 }
62 inline QRectF cursorRect() { return cursorRect(textCursor()); }
63 void ensureCursorVisible() override {
66 }
67
68
72
73 QVariant loadResource(int type, const QUrl &name) override {
75 }
76
77};
78
79
80class QPlainTextEditPrivate : public QAbstractScrollAreaPrivate
81{
82 Q_DECLARE_PUBLIC(QPlainTextEdit)
83public:
85
86 void init(const QString &txt = QString());
87 void _q_repaintContents(const QRectF &contentsRect);
89
90 inline QPoint mapToContents(const QPoint &point) const
91 { return QPoint(point.x() + horizontalOffset(), point.y() + verticalOffset()); }
92
96 void relayoutDocument();
97
98 void pageUpDown(QTextCursor::MoveOperation op, QTextCursor::MoveMode moveMode, bool moveCursor = true);
99
100 inline int horizontalOffset() const
101 { return (q_func()->isRightToLeft() ? (hbar->maximum() - hbar->value()) : hbar->value()); }
102 qreal verticalOffset(int topBlock, int topLine) const;
103 qreal verticalOffset() const;
104
107
109
111#ifdef QT_KEYPAD_NAVIGATION
112 QBasicTimer deleteAllTimer;
113#endif
116
118 qreal topLineFracture = 0; // for non-int sized fonts
123 int topLine = 0;
124
133
134 void setTopLine(int visualTopLine, int dx = 0);
135 void setTopBlock(int newTopBlock, int newTopLine, int dx = 0);
136
137 void ensureVisible(int position, bool center, bool forceCenter = false);
138 void ensureCursorVisible(bool center = false);
139 void updateViewport();
140
142
144
147};
148
150
151#endif // QPLAINTEXTEDIT_P_H
\inmodule QtCore
Definition qbasictimer.h:18
\inmodule QtCore
Definition qcoreevent.h:45
\inmodule QtCore
Definition qmimedata.h:16
QObject * parent() const
Returns a pointer to the parent object.
Definition qobject.h:311
QVariant loadResource(int type, const QUrl &name) override
void ensureCursorVisible() override
QPlainTextEdit * textEdit
QRectF cursorRect(const QTextCursor &cursor) const
void insertFromMimeData(const QMimeData *source) override
bool canInsertFromMimeData(const QMimeData *source) const override
QTextBlock firstVisibleBlock() const
QRectF blockBoundingRect(const QTextBlock &block) const override
int hitTest(const QPointF &point, Qt::HitTestAccuracy=Qt::FuzzyHit) const override
QString anchorAt(const QPointF &pos) const override
QMimeData * createMimeDataFromSelection() const override
void sendControlEvent(QEvent *e)
void _q_repaintContents(const QRectF &contentsRect)
void _q_verticalScrollbarActionTriggered(int action)
void pageUpDown(QTextCursor::MoveOperation op, QTextCursor::MoveMode moveMode, bool moveCursor=true)
QPlainTextEditControl * control
void append(const QString &text, Qt::TextFormat format=Qt::AutoText)
void ensureVisible(int position, bool center, bool forceCenter=false)
void _q_modificationChanged(bool)
QTextOption::WrapMode wordWrap
void init(const QString &txt=QString())
QPlainTextEdit::LineWrapMode lineWrap
void setTopLine(int visualTopLine, int dx=0)
QPointer< QPlainTextDocumentLayout > documentLayoutPtr
QPoint mapToContents(const QPoint &point) const
void ensureCursorVisible(bool center=false)
void setTopBlock(int newTopBlock, int newTopLine, int dx=0)
The QPlainTextEdit class provides a widget that is used to edit and display plain text.
virtual QVariant loadResource(int type, const QUrl &name)
Loads the resource specified by the given type and name.
void ensureCursorVisible()
Ensures that the cursor is visible by scrolling the text edit if necessary.
LineWrapMode
\value NoWrap \value WidgetWidth
\inmodule QtCore\reentrant
Definition qpoint.h:214
\inmodule QtCore\reentrant
Definition qpoint.h:23
constexpr int x() const noexcept
Returns the x coordinate of this point.
Definition qpoint.h:127
constexpr int y() const noexcept
Returns the y coordinate of this point.
Definition qpoint.h:132
\inmodule QtCore
Definition qpointer.h:18
\inmodule QtCore\reentrant
Definition qrect.h:483
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
\reentrant
\reentrant \inmodule QtGui
Definition qtextcursor.h:30
MoveMode
\value MoveAnchor Moves the anchor to the same position as the cursor itself.
Definition qtextcursor.h:47
MoveOperation
\value NoMove Keep the cursor where it is
Definition qtextcursor.h:61
WrapMode
This enum describes how text is wrapped in a document.
Definition qtextoption.h:60
@ WrapAtWordBoundaryOrAnywhere
Definition qtextoption.h:65
\inmodule QtCore
Definition qurl.h:94
\inmodule QtCore
Definition qvariant.h:64
QTextCursor textCursor() const
virtual void processEvent(QEvent *e, const QTransform &transform, QWidget *contextWidget=nullptr)
QString text
QCursor cursor
double e
Combined button and popup list for selecting options.
TextFormat
@ AutoText
HitTestAccuracy
Definition qnamespace.h:202
@ FuzzyHit
Definition qnamespace.h:202
constexpr const T & qMax(const T &a, const T &b)
Definition qminmax.h:42
GLboolean r
[2]
GLenum type
GLuint name
GLint GLsizei GLsizei GLenum format
GLsizei GLsizei GLchar * source
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
#define QT_REQUIRE_CONFIG(feature)
#define Q_OBJECT
#define emit
unsigned int uint
Definition qtypes.h:29
double qreal
Definition qtypes.h:92
Text files * txt
view viewport() -> scroll(dx, dy, deviceRect)