diff options
author | Saturneric <[email protected]> | 2022-01-12 03:04:46 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2022-01-12 03:04:46 +0000 |
commit | d24f0251e8c8964bf42f4bf028023f02f4e96933 (patch) | |
tree | b0d1fe016143274a66898ec6ca0913115400c033 /src/ui/FindWidget.cpp | |
parent | <refactor>(ui): Adjust src/ui/function to src/ui/thread (diff) | |
download | GpgFrontend-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.cpp | 52 |
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(); |