Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qwidgettextcontrol_p_p.h
Go to the documentation of this file.
1// Copyright (C) 2019 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// Qt-Security score:significant reason:default
4
5#ifndef QWIDGETTEXTCONTROL_P_P_H
6#define QWIDGETTEXTCONTROL_P_P_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include <QtWidgets/private/qtwidgetsglobal_p.h>
20#include "QtGui/qtextdocumentfragment.h"
21#include "QtGui/qtextcursor.h"
22#include "QtGui/qtextformat.h"
23#include "QtGui/qtextobject.h"
24#if QT_CONFIG(menu)
25#include "QtWidgets/qmenu.h"
26#endif
27#include "QtGui/qabstracttextdocumentlayout.h"
28#include "QtCore/qbasictimer.h"
29#include "QtCore/qpointer.h"
30#include "private/qobject_p.h"
31
33
34QT_BEGIN_NAMESPACE
35
36class QMimeData;
37class QAbstractScrollArea;
38
40{
41public:
42 Q_DECLARE_PUBLIC(QWidgetTextControl)
43
45
46 bool cursorMoveKeyEvent(QKeyEvent *e);
47
49
50 void indent();
51 void outdent();
52
53 void gotoNextTableCell();
55
57
58 void init(Qt::TextFormat format = Qt::RichText, const QString &text = QString(),
59 QTextDocument *document = nullptr);
60 void setContent(Qt::TextFormat format = Qt::RichText, const QString &text = QString(),
61 QTextDocument *document = nullptr);
62 void startDrag();
63
64 void paste(const QMimeData *source);
65
66 void setCursorPosition(const QPointF &pos);
67 void setCursorPosition(int pos, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor);
68
69 void repaintCursor();
70 inline void repaintSelection()
71 { repaintOldAndNewSelection(QTextCursor()); }
72 void repaintOldAndNewSelection(const QTextCursor &oldSelection);
73
74 void selectionChanged(bool forceEmitSelectionChanged = false);
75
77
78#ifndef QT_NO_CLIPBOARD
80#endif
81
82 void _q_emitCursorPosChanged(const QTextCursor &someCursor);
83 void _q_contentsChanged(int from, int charsRemoved, int charsAdded);
84
85 void setCursorVisible(bool visible);
86 void setBlinkingCursorEnabled(bool enable);
88
89 void extendWordwiseSelection(int suggestedNewPosition, qreal mouseXPosition);
90 void extendBlockwiseSelection(int suggestedNewPosition);
91
92 void _q_deleteSelected();
93
94 void _q_setCursorAfterUndoRedo(int undoPosition, int charsAdded, int charsRemoved);
95
96 QRectF cursorRectPlusUnicodeDirectionMarkers(const QTextCursor &cursor) const;
97 QRectF rectForPosition(int position) const;
98 QRectF selectionRect(const QTextCursor &cursor) const;
99 inline QRectF selectionRect() const
100 { return selectionRect(this->cursor); }
101
102 QString anchorForCursor(const QTextCursor &anchor) const;
103
104 void keyPressEvent(QKeyEvent *e);
105 void mousePressEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos,
106 Qt::KeyboardModifiers modifiers,
107 Qt::MouseButtons buttons,
108 const QPoint &globalPos);
109 void mouseMoveEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos,
110 Qt::KeyboardModifiers modifiers,
111 Qt::MouseButtons buttons,
112 const QPoint &globalPos);
113 void mouseReleaseEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos,
114 Qt::KeyboardModifiers modifiers,
115 Qt::MouseButtons buttons,
116 const QPoint &globalPos);
117 void mouseDoubleClickEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos,
118 Qt::KeyboardModifiers modifiers,
119 Qt::MouseButtons buttons,
120 const QPoint &globalPos);
121 bool sendMouseEventToInputContext(QEvent *e, QEvent::Type eventType, Qt::MouseButton button,
122 const QPointF &pos,
123 Qt::KeyboardModifiers modifiers,
124 Qt::MouseButtons buttons,
125 const QPoint &globalPos);
126 void contextMenuEvent(const QPoint &screenPos, const QPointF &docPos, QWidget *contextWidget);
127 void focusEvent(QFocusEvent *e);
128#ifdef QT_KEYPAD_NAVIGATION
129 void editFocusEvent(QEvent *e);
130#endif
131 bool dragEnterEvent(QEvent *e, const QMimeData *mimeData);
132 void dragLeaveEvent();
133 bool dragMoveEvent(QEvent *e, const QMimeData *mimeData, const QPointF &pos);
134 bool dropEvent(const QMimeData *mimeData, const QPointF &pos, Qt::DropAction dropAction, QObject *source);
135
136 void inputMethodEvent(QInputMethodEvent *);
137
138 void activateLinkUnderCursor(QString href = QString());
139
140#if QT_CONFIG(tooltip)
142#endif
143
144 bool isPreediting() const;
145 void commitPreedit();
146
148 void append(const QString &text, Qt::TextFormat format = Qt::AutoText);
149
150 QTextDocument *doc;
156
158
160
164
166
168
172
175
177
180
183
185 bool hideCursor; // used to hide the cursor in the preedit area
186
188
191#ifdef QT_KEYPAD_NAVIGATION
192 bool hasEditFocus;
193#endif
195
196 QString highlightedAnchor; // Anchor below cursor
200
203
205
207 void _q_copyLink();
208 void _q_updateBlock(const QTextBlock &);
210};
211
212QT_END_NAMESPACE
213
214#endif // QWidgetTextControl_P_H
\inmodule QtCore \reentrant
Definition qbuffer.h:17
friend class QWidget
Definition qpainter.h:431
\inmodule QtCore\reentrant
Definition qpoint.h:231
\inmodule QtCore\reentrant
Definition qpoint.h:29
The QTextDocumentWriter class provides a format-independent interface for writing a QTextDocument to ...
virtual QVariant retrieveData(const QString &mimeType, QMetaType type) const override
Returns a variant with the given type containing data for the MIME type specified by mimeType.
QTextEditMimeData(const QTextDocumentFragment &aFragment)
virtual QStringList formats() const override
bool hasFormat(const QString &format) const override
\reentrant
Definition qtexttable.h:19
void _q_updateBlock(const QTextBlock &)
void mouseReleaseEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPoint &globalPos)
void setCursorVisible(bool visible)
void paste(const QMimeData *source)
QList< QAbstractTextDocumentLayout::Selection > extraSelections
void _q_contentsChanged(int from, int charsRemoved, int charsAdded)
void setContent(Qt::TextFormat format=Qt::RichText, const QString &text=QString(), QTextDocument *document=nullptr)
QRectF selectionRect(const QTextCursor &cursor) const
void setCursorPosition(const QPointF &pos)
Qt::TextInteractionFlags interactionFlags
void contextMenuEvent(const QPoint &screenPos, const QPointF &docPos, QWidget *contextWidget)
void selectionChanged(bool forceEmitSelectionChanged=false)
void repaintOldAndNewSelection(const QTextCursor &oldSelection)
void extendWordwiseSelection(int suggestedNewPosition, qreal mouseXPosition)
void setCursorPosition(int pos, QTextCursor::MoveMode mode=QTextCursor::MoveAnchor)
void _q_emitCursorPosChanged(const QTextCursor &someCursor)
bool dragEnterEvent(QEvent *e, const QMimeData *mimeData)
bool sendMouseEventToInputContext(QEvent *e, QEvent::Type eventType, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPoint &globalPos)
void init(Qt::TextFormat format=Qt::RichText, const QString &text=QString(), QTextDocument *document=nullptr)
QRectF rectForPosition(int position) const
void setBlinkingCursorEnabled(bool enable)
bool cursorMoveKeyEvent(QKeyEvent *e)
QRectF cursorRectPlusUnicodeDirectionMarkers(const QTextCursor &cursor) const
QString anchorForCursor(const QTextCursor &anchor) const
void append(const QString &text, Qt::TextFormat format=Qt::AutoText)
bool dragMoveEvent(QEvent *e, const QMimeData *mimeData, const QPointF &pos)
void inputMethodEvent(QInputMethodEvent *)
void activateLinkUnderCursor(QString href=QString())
void _q_setCursorAfterUndoRedo(int undoPosition, int charsAdded, int charsRemoved)
void mousePressEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPoint &globalPos)
bool dropEvent(const QMimeData *mimeData, const QPointF &pos, Qt::DropAction dropAction, QObject *source)
void mouseMoveEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPoint &globalPos)
void extendBlockwiseSelection(int suggestedNewPosition)
void mouseDoubleClickEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPoint &globalPos)
QT_REQUIRE_CONFIG(animation)
#define ACCEL_KEY(k)
Definition qlineedit.cpp:56
static QRectF boundingRectOfFloatsInSelection(const QTextCursor &cursor)
static constexpr auto supportedMimeTypes
#define NUM_CONTROL_CHARACTERS
static QTextLine currentTextLine(const QTextCursor &cursor)
void setActionIcon(QAction *action, const QString &name)
QT_REQUIRE_CONFIG(widgettextcontrol)
void setActionIcon(QAction *action, const QString &name)