File indexing completed on 2024-05-26 04:46:50
0001 /* 0002 SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "textcustomeditor_private_export.h" 0010 #include "texteditfindbarbase.h" 0011 #include <QWidget> 0012 0013 class QAction; 0014 class QLineEdit; 0015 class QPushButton; 0016 namespace TextCustomEditor 0017 { 0018 class TEXTCUSTOMEDITOR_TESTS_EXPORT TextFindWidget : public QWidget 0019 { 0020 Q_OBJECT 0021 public: 0022 explicit TextFindWidget(QWidget *parent = nullptr); 0023 ~TextFindWidget() override; 0024 0025 [[nodiscard]] TextEditFindBarBase::FindFlags searchOptions() const; 0026 0027 QLineEdit *searchLineEdit() const; 0028 0029 void setFoundMatch(bool match); 0030 0031 [[nodiscard]] bool isRegularExpression() const; 0032 [[nodiscard]] QRegularExpression searchRegularExpression() const; 0033 0034 [[nodiscard]] QString searchText() const; 0035 0036 Q_SIGNALS: 0037 void findNext(); 0038 void findPrev(); 0039 void clearSearch(); 0040 void autoSearch(const QString &); 0041 void updateSearchOptions(); 0042 void searchStringEmpty(bool); 0043 0044 private: 0045 void slotAutoSearch(const QString &str); 0046 void slotRegularExpressionChanged(bool b); 0047 QLineEdit *const mSearch; 0048 QAction *mCaseSensitiveAct = nullptr; 0049 QAction *mWholeWordAct = nullptr; 0050 QAction *mRegularExpressionAct = nullptr; 0051 QAction *mRespectDiacriticAct = nullptr; 0052 0053 QPushButton *const mFindPrevBtn; 0054 QPushButton *const mFindNextBtn; 0055 }; 0056 0057 class TEXTCUSTOMEDITOR_TESTS_EXPORT TextReplaceWidget : public QWidget 0058 { 0059 Q_OBJECT 0060 public: 0061 explicit TextReplaceWidget(QWidget *parent = nullptr); 0062 ~TextReplaceWidget() override; 0063 0064 QLineEdit *replaceLineEdit() const; 0065 0066 public Q_SLOTS: 0067 void slotSearchStringEmpty(bool); 0068 0069 Q_SIGNALS: 0070 void replaceText(); 0071 void replaceAllText(); 0072 0073 private: 0074 QLineEdit *const mReplace; 0075 QPushButton *const mReplaceBtn; 0076 QPushButton *const mReplaceAllBtn; 0077 }; 0078 }