aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/FindWidget.cpp
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2022-01-12 03:04:46 +0000
committerSaturneric <[email protected]>2022-01-12 03:04:46 +0000
commitd24f0251e8c8964bf42f4bf028023f02f4e96933 (patch)
treeb0d1fe016143274a66898ec6ca0913115400c033 /src/ui/FindWidget.cpp
parent<refactor>(ui): Adjust src/ui/function to src/ui/thread (diff)
downloadGpgFrontend-d24f0251e8c8964bf42f4bf028023f02f4e96933.tar.gz
GpgFrontend-d24f0251e8c8964bf42f4bf028023f02f4e96933.zip
<refactor, feat>(ui): Text editor improvements.
1. Add binary display mode 2. Add information bar 3. Added character code recognition function. 4. Identify text encoding and line breaks 5. Count the number of characters 6. Code reconstruction
Diffstat (limited to 'src/ui/FindWidget.cpp')
-rw-r--r--src/ui/FindWidget.cpp52
1 files changed, 27 insertions, 25 deletions
diff --git a/src/ui/FindWidget.cpp b/src/ui/FindWidget.cpp
index 6326b119..b95859a1 100644
--- a/src/ui/FindWidget.cpp
+++ b/src/ui/FindWidget.cpp
@@ -26,8 +26,8 @@
namespace GpgFrontend::UI {
-FindWidget::FindWidget(QWidget* parent, QTextEdit* edit) : QWidget(parent) {
- mTextpage = edit;
+FindWidget::FindWidget(QWidget* parent, PlainTextEditorPage* edit)
+ : QWidget(parent), mTextpage(edit) {
findEdit = new QLineEdit(this);
auto* closeButton = new QPushButton(
this->style()->standardIcon(QStyle::SP_TitleBarCloseButton), QString(),
@@ -55,12 +55,13 @@ FindWidget::FindWidget(QWidget* parent, QTextEdit* edit) : QWidget(parent) {
}
void FindWidget::setBackground() {
- QTextCursor cursor = mTextpage->textCursor();
+ auto cursor = mTextpage->getTextPage()->textCursor();
// if match is found set background of QLineEdit to white, otherwise to red
QPalette bgPalette(findEdit->palette());
if (!findEdit->text().isEmpty() &&
- mTextpage->document()->find(findEdit->text()).position() < 0) {
+ mTextpage->getTextPage()->document()->find(findEdit->text()).position() <
+ 0) {
bgPalette.setColor(QPalette::Base, "#ececba");
} else {
bgPalette.setColor(QPalette::Base, Qt::white);
@@ -69,45 +70,45 @@ void FindWidget::setBackground() {
}
void FindWidget::slotFindNext() {
- QTextCursor cursor = mTextpage->textCursor();
- cursor = mTextpage->document()->find(findEdit->text(), cursor,
- QTextDocument::FindCaseSensitively);
+ QTextCursor cursor = mTextpage->getTextPage()->textCursor();
+ cursor = mTextpage->getTextPage()->document()->find(
+ findEdit->text(), cursor, QTextDocument::FindCaseSensitively);
// if end of document is reached, restart search from beginning
if (cursor.position() == -1) {
- cursor = mTextpage->document()->find(findEdit->text(), cursor,
- QTextDocument::FindCaseSensitively);
+ cursor = mTextpage->getTextPage()->document()->find(
+ findEdit->text(), cursor, QTextDocument::FindCaseSensitively);
}
// cursor should not stay at -1, otherwise text is not editable
// todo: check how gedit handles this
if (cursor.position() != -1) {
- mTextpage->setTextCursor(cursor);
+ mTextpage->getTextPage()->setTextCursor(cursor);
}
this->setBackground();
}
void FindWidget::slotFind() {
- QTextCursor cursor = mTextpage->textCursor();
+ QTextCursor cursor = mTextpage->getTextPage()->textCursor();
if (cursor.anchor() == -1) {
- cursor = mTextpage->document()->find(findEdit->text(), cursor,
- QTextDocument::FindCaseSensitively);
+ cursor = mTextpage->getTextPage()->document()->find(
+ findEdit->text(), cursor, QTextDocument::FindCaseSensitively);
} else {
- cursor = mTextpage->document()->find(findEdit->text(), cursor.anchor(),
- QTextDocument::FindCaseSensitively);
+ cursor = mTextpage->getTextPage()->document()->find(
+ findEdit->text(), cursor.anchor(), QTextDocument::FindCaseSensitively);
}
// if end of document is reached, restart search from beginning
if (cursor.position() == -1) {
- cursor = mTextpage->document()->find(findEdit->text(), cursor,
- QTextDocument::FindCaseSensitively);
+ cursor = mTextpage->getTextPage()->document()->find(
+ findEdit->text(), cursor, QTextDocument::FindCaseSensitively);
}
// cursor should not stay at -1, otherwise text is not editable
// todo: check how gedit handles this
if (cursor.position() != -1) {
- mTextpage->setTextCursor(cursor);
+ mTextpage->getTextPage()->setTextCursor(cursor);
}
this->setBackground();
}
@@ -117,19 +118,20 @@ void FindWidget::slotFindPrevious() {
flags |= QTextDocument::FindBackward;
flags |= QTextDocument::FindCaseSensitively;
- QTextCursor cursor = mTextpage->textCursor();
- cursor = mTextpage->document()->find(findEdit->text(), cursor, flags);
+ QTextCursor cursor = mTextpage->getTextPage()->textCursor();
+ cursor = mTextpage->getTextPage()->document()->find(findEdit->text(), cursor,
+ flags);
// if begin of document is reached, restart search from end
if (cursor.position() == -1) {
- cursor =
- mTextpage->document()->find(findEdit->text(), QTextCursor::End, flags);
+ cursor = mTextpage->getTextPage()->document()->find(
+ findEdit->text(), QTextCursor::End, flags);
}
// cursor should not stay at -1, otherwise text is not editable
// todo: check how gedit handles this
if (cursor.position() != -1) {
- mTextpage->setTextCursor(cursor);
+ mTextpage->getTextPage()->setTextCursor(cursor);
}
this->setBackground();
}
@@ -150,11 +152,11 @@ void FindWidget::keyPressEvent(QKeyEvent* e) {
}
void FindWidget::slotClose() {
- QTextCursor cursor = mTextpage->textCursor();
+ QTextCursor cursor = mTextpage->getTextPage()->textCursor();
if (cursor.position() == -1) {
cursor.setPosition(0);
- mTextpage->setTextCursor(cursor);
+ mTextpage->getTextPage()->setTextCursor(cursor);
}
mTextpage->setFocus();
close();