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 void updateHighlightedAnchor(QPointF mousePos);
105
106 void keyPressEvent(QKeyEvent *e);
107 void mousePressEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos,
108 Qt::KeyboardModifiers modifiers,
109 Qt::MouseButtons buttons,
110 const QPointF &globalPos);
111 void mouseMoveEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos,
112 Qt::KeyboardModifiers modifiers,
113 Qt::MouseButtons buttons,
114 const QPointF &globalPos);
115 void mouseReleaseEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos,
116 Qt::KeyboardModifiers modifiers,
117 Qt::MouseButtons buttons,
118 const QPointF &globalPos);
119 void mouseDoubleClickEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos,
120 Qt::KeyboardModifiers modifiers,
121 Qt::MouseButtons buttons,
122 const QPointF &globalPos);
123 bool sendMouseEventToInputContext(QEvent *e, QEvent::Type eventType, Qt::MouseButton button,
124 const QPointF &pos,
125 Qt::KeyboardModifiers modifiers,
126 Qt::MouseButtons buttons,
127 const QPointF &globalPos);
128 void contextMenuEvent(const QPointF &screenPos, const QPointF &docPos, QWidget *contextWidget);
129 void focusEvent(QFocusEvent *e);
130#ifdef QT_KEYPAD_NAVIGATION
131 void editFocusEvent(QEvent *e);
132#endif
133 bool dragEnterEvent(QEvent *e, const QMimeData *mimeData);
134 void dragLeaveEvent();
135 bool dragMoveEvent(QEvent *e, const QMimeData *mimeData, const QPointF &pos);
136 bool dropEvent(const QMimeData *mimeData, const QPointF &pos, Qt::DropAction dropAction, QObject *source);
137
138 void inputMethodEvent(QInputMethodEvent *);
139
140 void activateLinkUnderCursor(QString href = QString());
141
142#if QT_CONFIG(tooltip)
144#endif
145
146 bool isPreediting() const;
147 void commitPreedit();
148
150 void append(const QString &text, Qt::TextFormat format = Qt::AutoText);
151
152 QTextDocument *doc;
158
160
162
166
168
170
174
177
179
182
185
187 bool hideCursor; // used to hide the cursor in the preedit area
188
190
193#ifdef QT_KEYPAD_NAVIGATION
194 bool hasEditFocus;
195#endif
197
198 QString highlightedAnchor; // Anchor below cursor
202
205
207
209 void _q_copyLink();
210 void _q_updateBlock(const QTextBlock &);
212};
213
214QT_END_NAMESPACE
215
216#endif // QWidgetTextControl_P_H
\inmodule QtCore \reentrant
Definition qbuffer.h:17
friend class QWidget
Definition qpainter.h:432
\inmodule QtCore\reentrant
Definition qpoint.h:232
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 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)
void updateHighlightedAnchor(QPointF mousePos)
void mouseReleaseEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPointF &globalPos)
QRectF selectionRect(const QTextCursor &cursor) const
void setCursorPosition(const QPointF &pos)
Qt::TextInteractionFlags interactionFlags
void contextMenuEvent(const QPointF &screenPos, const QPointF &docPos, QWidget *contextWidget)
void mousePressEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPointF &globalPos)
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)
void mouseMoveEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPointF &globalPos)
void init(Qt::TextFormat format=Qt::RichText, const QString &text=QString(), QTextDocument *document=nullptr)
QRectF rectForPosition(int position) const
bool sendMouseEventToInputContext(QEvent *e, QEvent::Type eventType, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPointF &globalPos)
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 mouseDoubleClickEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPointF &globalPos)
void _q_setCursorAfterUndoRedo(int undoPosition, int charsAdded, int charsRemoved)
bool dropEvent(const QMimeData *mimeData, const QPointF &pos, Qt::DropAction dropAction, QObject *source)
void extendBlockwiseSelection(int suggestedNewPosition)
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)