Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qtextcursor.cpp
Go to the documentation of this file.
1
// Copyright (C) 2021 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
#
include
"qtextcursor_p.h"
6
#
include
"qtextdocument_p.h"
7
#
include
"qtextblock_p.h"
8
9
QT_BEGIN_NAMESPACE
10
11
namespace
Utils
{
12
13
class
TextFrame;
14
class
TextTable;
15
class
TextTableCell;
16
17
TextCursor
::
TextCursor
(TextDocument *document) : m_document(document) { }
18
19
bool
TextCursor
::
movePosition
(
TextCursor
::
MoveOperation
op,
TextCursor
::
MoveMode
mode,
int
n)
20
{
21
Q_UNUSED(n);
22
switch
(op) {
23
case
NoMove
:
24
return
true
;
25
case
Start
:
26
m_position = 0;
27
break
;
28
case
PreviousCharacter
:
29
while
(--n >= 0) {
30
if
(m_position == 0)
31
return
false
;
32
--m_position;
33
}
34
break
;
35
case
End
:
36
m_position = m_document->characterCount();
37
break
;
38
case
NextCharacter
:
39
while
(--n >= 0) {
40
if
(m_position == m_document->characterCount())
41
return
false
;
42
++m_position;
43
}
44
break
;
45
}
46
47
if
(mode ==
MoveAnchor
)
48
m_anchor = m_position;
49
50
return
false
;
51
}
52
53
int
TextCursor
::
position
()
const
54
{
55
return
m_position;
56
}
57
58
void
TextCursor
::
setPosition
(
int
pos,
Utils
::
TextCursor
::
MoveMode
mode)
59
{
60
m_position = pos;
61
if
(mode ==
MoveAnchor
)
62
m_anchor = pos;
63
}
64
65
QString
TextCursor
::
selectedText
()
const
66
{
67
return
m_document->toPlainText().mid(qMin(m_position, m_anchor), qAbs(m_position - m_anchor));
68
}
69
70
void
TextCursor
::
clearSelection
()
71
{
72
m_anchor = m_position;
73
}
74
75
TextDocument *
TextCursor
::
document
()
const
76
{
77
return
m_document;
78
}
79
80
void
TextCursor
::
insertText
(
const
QString &text)
81
{
82
const
QString orig = m_document->toPlainText();
83
const
QString left = orig.left(qMin(m_position, m_anchor));
84
const
QString right = orig.mid(qMax(m_position, m_anchor));
85
m_document->setPlainText(left + text + right);
86
}
87
88
TextBlock
TextCursor
::
block
()
const
89
{
90
TextBlock
current = m_document->firstBlock();
91
while
(current
.
isValid
(
)
) {
92
if
(current
.
position
(
)
<=
position
(
)
93
&& current
.
position
(
)
+ current
.
length
(
)
> current
.
position
(
)
)
94
break
;
95
current = current
.
next
(
)
;
96
}
97
return
current;
98
}
99
100
int
TextCursor
::
positionInBlock
()
const
101
{
102
return
m_position -
block
(
)
.
position
(
)
;
103
}
104
105
int
TextCursor
::
blockNumber
()
const
106
{
107
return
block
(
)
.
blockNumber
(
)
;
108
}
109
110
void
TextCursor
::
removeSelectedText
()
111
{
112
insertText(QString());
113
}
114
115
int
TextCursor
::
selectionEnd
()
const
116
{
117
return
qMax(m_position, m_anchor);
118
}
119
120
bool
TextCursor
::
isNull
()
const
121
{
122
return
m_document ==
nullptr
;
123
}
124
125
}
// namespace Utils
126
127
QT_END_NAMESPACE
Utils::TextBlock
Definition
qtextblock_p.h:29
Utils::TextBlock::next
TextBlock next() const
Definition
qtextblock.cpp:49
Utils::TextBlock::length
int length() const
Definition
qtextblock.cpp:44
Utils::TextBlock::isValid
bool isValid() const
Definition
qtextblock.cpp:14
Utils::TextBlock::position
int position() const
Definition
qtextblock.cpp:34
Utils::TextBlock::blockNumber
int blockNumber() const
Definition
qtextblock.cpp:24
Utils::TextCursor
Definition
qtextcursor_p.h:29
Utils::TextCursor::removeSelectedText
void removeSelectedText()
Definition
qtextcursor.cpp:110
Utils::TextCursor::selectionEnd
int selectionEnd() const
Definition
qtextcursor.cpp:115
Utils::TextCursor::movePosition
bool movePosition(MoveOperation op, MoveMode=MoveAnchor, int n=1)
Definition
qtextcursor.cpp:19
Utils::TextCursor::TextCursor
TextCursor(TextDocument *document)
Definition
qtextcursor.cpp:17
Utils::TextCursor::MoveOperation
MoveOperation
Definition
qtextcursor_p.h:31
Utils::TextCursor::PreviousCharacter
@ PreviousCharacter
Definition
qtextcursor_p.h:34
Utils::TextCursor::Start
@ Start
Definition
qtextcursor_p.h:33
Utils::TextCursor::NextCharacter
@ NextCharacter
Definition
qtextcursor_p.h:36
Utils::TextCursor::NoMove
@ NoMove
Definition
qtextcursor_p.h:32
Utils::TextCursor::End
@ End
Definition
qtextcursor_p.h:35
Utils::TextCursor::blockNumber
int blockNumber() const
Definition
qtextcursor.cpp:105
Utils::TextCursor::clearSelection
void clearSelection()
Definition
qtextcursor.cpp:70
Utils::TextCursor::positionInBlock
int positionInBlock() const
Definition
qtextcursor.cpp:100
Utils::TextCursor::block
TextBlock block() const
Definition
qtextcursor.cpp:88
Utils::TextCursor::insertText
void insertText(const QString &text)
Definition
qtextcursor.cpp:80
Utils::TextCursor::position
int position() const
Definition
qtextcursor.cpp:53
Utils::TextCursor::document
TextDocument * document() const
Definition
qtextcursor.cpp:75
Utils::TextCursor::selectedText
QString selectedText() const
Definition
qtextcursor.cpp:65
Utils::TextCursor::setPosition
void setPosition(int pos, MoveMode mode=MoveAnchor)
Definition
qtextcursor.cpp:58
Utils::TextCursor::MoveMode
MoveMode
Definition
qtextcursor_p.h:39
Utils::TextCursor::MoveAnchor
@ MoveAnchor
Definition
qtextcursor_p.h:39
Utils::TextCursor::isNull
bool isNull() const
Definition
qtextcursor.cpp:120
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qdesigner_internal::Utils
Definition
qdesigner_utils_p.h:526
qtdeclarative
src
qmlls
qtextcursor.cpp
Generated on
for Qt by
1.18.0