Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
PIM
KPimTextEdit
Commits
532adacc
Commit
532adacc
authored
Mar 02, 2022
by
Laurent Montel
😁
Browse files
It will allow to autotest code
parent
beda2a3d
Pipeline
#143939
passed with stages
in 2 minutes and 40 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/texteditor/commonwidget/findutils.cpp
View file @
532adacc
...
...
@@ -31,19 +31,34 @@ QTextDocument::FindFlags FindUtils::convertTextEditFindFlags(TextEditFindBarBase
return
flags
;
}
int
FindUtils
::
replaceAll
(
QTextDocument
*
document
,
const
TextFindWidget
*
findWidget
,
const
QString
&
replaceWidget
)
int
FindUtils
::
replaceAll
(
QTextDocument
*
document
,
const
QString
&
str
,
const
QString
&
replaceWidget
,
QTextDocument
::
FindFlags
searchOptions
)
{
QTextCursor
c
(
document
);
c
.
beginEditBlock
();
int
count
=
0
;
// Ignoring FindBackward when replacing all
const
QTextDocument
::
FindFlags
flags
=
FindUtils
::
convertTextEditFindFlags
(
findWidget
->
searchOptions
())
&
~
QTextDocument
::
FindBackward
;
const
QTextDocument
::
FindFlags
flags
=
searchOptions
&
~
QTextDocument
::
FindBackward
;
while
(
!
c
.
isNull
())
{
if
(
findWidget
->
isRegularExpression
())
{
c
=
document
->
find
(
findWidget
->
searchRegularExpression
(),
c
,
flags
);
}
else
{
c
=
document
->
find
(
findWidget
->
searchText
(),
c
,
flags
);
c
=
document
->
find
(
str
,
c
,
flags
);
if
(
!
c
.
isNull
())
{
// find() selects found text, and insertText() replaces selection
c
.
insertText
(
replaceWidget
);
count
++
;
}
}
c
.
endEditBlock
();
return
count
;
}
int
FindUtils
::
replaceAll
(
QTextDocument
*
document
,
const
QRegularExpression
&
regExp
,
const
QString
&
replaceWidget
,
QTextDocument
::
FindFlags
searchOptions
)
{
QTextCursor
c
(
document
);
c
.
beginEditBlock
();
int
count
=
0
;
// Ignoring FindBackward when replacing all
const
QTextDocument
::
FindFlags
flags
=
searchOptions
&
~
QTextDocument
::
FindBackward
;
while
(
!
c
.
isNull
())
{
c
=
document
->
find
(
regExp
,
c
,
flags
);
if
(
!
c
.
isNull
())
{
// find() selects found text, and insertText() replaces selection
c
.
insertText
(
replaceWidget
);
...
...
src/texteditor/commonwidget/findutils.h
View file @
532adacc
...
...
@@ -27,8 +27,9 @@ namespace FindUtils
*
* @return number of replacements done
*/
Q_REQUIRED_RESULT
int
replaceAll
(
QTextDocument
*
document
,
const
TextFindWidget
*
findWidget
,
const
QString
&
replaceWidget
);
Q_REQUIRED_RESULT
int
replaceAll
(
QTextDocument
*
document
,
const
QString
&
str
,
const
QString
&
replaceWidget
,
QTextDocument
::
FindFlags
searchOptions
);
Q_REQUIRED_RESULT
int
replaceAll
(
QTextDocument
*
document
,
const
QRegularExpression
&
regExp
,
const
QString
&
replaceWidget
,
QTextDocument
::
FindFlags
searchOptions
);
Q_REQUIRED_RESULT
QString
normalize
(
QStringView
str
);
Q_REQUIRED_RESULT
QChar
normalize
(
QChar
c
);
Q_REQUIRED_RESULT
bool
find
(
QPlainTextEdit
*
view
,
const
QString
&
searchText
,
QTextDocument
::
FindFlags
searchOptions
);
...
...
src/texteditor/plaintexteditor/plaintexteditfindbar.cpp
View file @
532adacc
...
...
@@ -111,6 +111,13 @@ void PlainTextEditFindBar::slotReplaceText()
void
PlainTextEditFindBar
::
slotReplaceAllText
()
{
const
int
count
=
FindUtils
::
replaceAll
(
d
->
mView
->
document
(),
mFindWidget
,
mReplaceWidget
->
replaceLineEdit
()
->
text
());
int
count
=
0
;
const
QString
replaceStr
{
mReplaceWidget
->
replaceLineEdit
()
->
text
()};
const
QTextDocument
::
FindFlags
searchOptions
{
FindUtils
::
convertTextEditFindFlags
(
mFindWidget
->
searchOptions
())};
if
(
mFindWidget
->
isRegularExpression
())
{
count
=
FindUtils
::
replaceAll
(
d
->
mView
->
document
(),
mFindWidget
->
searchRegularExpression
(),
replaceStr
,
searchOptions
);
}
else
{
count
=
FindUtils
::
replaceAll
(
d
->
mView
->
document
(),
mFindWidget
->
searchText
(),
replaceStr
,
searchOptions
);
}
Q_EMIT
displayMessageIndicator
(
i18np
(
"%1 replacement made"
,
"%1 replacements made"
,
count
));
}
src/texteditor/richtexteditor/richtexteditfindbar.cpp
View file @
532adacc
...
...
@@ -101,6 +101,13 @@ void RichTextEditFindBar::slotReplaceText()
void
RichTextEditFindBar
::
slotReplaceAllText
()
{
const
int
count
=
FindUtils
::
replaceAll
(
d
->
mView
->
document
(),
mFindWidget
,
mReplaceWidget
->
replaceLineEdit
()
->
text
());
int
count
=
0
;
const
QString
replaceStr
{
mReplaceWidget
->
replaceLineEdit
()
->
text
()};
const
QTextDocument
::
FindFlags
searchOptions
{
FindUtils
::
convertTextEditFindFlags
(
mFindWidget
->
searchOptions
())};
if
(
mFindWidget
->
isRegularExpression
())
{
count
=
FindUtils
::
replaceAll
(
d
->
mView
->
document
(),
mFindWidget
->
searchRegularExpression
(),
replaceStr
,
searchOptions
);
}
else
{
count
=
FindUtils
::
replaceAll
(
d
->
mView
->
document
(),
mFindWidget
->
searchText
(),
replaceStr
,
searchOptions
);
}
Q_EMIT
displayMessageIndicator
(
i18np
(
"%1 replacement made"
,
"%1 replacements made"
,
count
));
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment