File indexing completed on 2025-03-09 04:54:31
0001 /* SPDX-FileCopyrightText: 2011-2024 Laurent Montel <montel@kde.org> 0002 * 0003 * SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 #include "findbarsourceview.h" 0006 #include <PimCommon/LineEditWithCompleterNg> 0007 0008 #include <QAction> 0009 #include <QPlainTextEdit> 0010 0011 using namespace MessageViewer; 0012 0013 FindBarSourceView::FindBarSourceView(QPlainTextEdit *view, QWidget *parent) 0014 : WebEngineViewer::FindBarBase(parent) 0015 , mView(view) 0016 { 0017 } 0018 0019 FindBarSourceView::~FindBarSourceView() = default; 0020 0021 void FindBarSourceView::searchText(bool backward, bool isAutoSearch) 0022 { 0023 QTextDocument::FindFlags searchOptions = {}; 0024 if (backward) { 0025 searchOptions |= QTextDocument::FindBackward; 0026 } 0027 if (mCaseSensitiveAct->isChecked()) { 0028 searchOptions |= QTextDocument::FindCaseSensitively; 0029 } 0030 0031 if (isAutoSearch) { 0032 QTextCursor cursor = mView->textCursor(); 0033 cursor.setPosition(cursor.selectionStart()); 0034 mView->setTextCursor(cursor); 0035 } else if (!mLastSearchStr.contains(mSearch->text(), Qt::CaseSensitive)) { 0036 clearSelections(); 0037 } 0038 mLastSearchStr = mSearch->text(); 0039 const bool found = mView->find(mLastSearchStr, searchOptions); 0040 0041 setFoundMatch(found); 0042 } 0043 0044 void FindBarSourceView::clearSelections() 0045 { 0046 QTextCursor textCursor = mView->textCursor(); 0047 textCursor.clearSelection(); 0048 textCursor.setPosition(0); 0049 mView->setTextCursor(textCursor); 0050 0051 WebEngineViewer::FindBarBase::clearSelections(); 0052 } 0053 0054 void FindBarSourceView::updateHighLight(bool) 0055 { 0056 clearSelections(); 0057 } 0058 0059 void FindBarSourceView::updateSensitivity(bool) 0060 { 0061 QTextDocument::FindFlags searchOptions = {}; 0062 if (mCaseSensitiveAct->isChecked()) { 0063 searchOptions |= QTextDocument::FindCaseSensitively; 0064 } 0065 mLastSearchStr = mSearch->text(); 0066 const bool found = mView->find(mLastSearchStr, searchOptions); 0067 setFoundMatch(found); 0068 } 0069 0070 #include "moc_findbarsourceview.cpp"