#pragma once #include namespace Ui { class FindReplaceDialog; } enum class SearchMode { Normal, Extended, Regex, }; class FindReplaceDialog final : public QDialog { Q_OBJECT public: explicit FindReplaceDialog(QWidget *parent = nullptr); ~FindReplaceDialog() override; void openFind(); void openReplace(); QString findText() const; QString replaceText() const; QString findTextForSearch() const; QString replaceTextForReplace() const; bool matchCase() const; bool wholeWord() const; bool wrapAround() const; bool inSelection() const; SearchMode searchMode() const; void setFindTextIfNotEmpty(const QString &text); void commitHistory(); signals: void findRequested(bool forward); void replaceRequested(); void replaceAllRequested(); protected: void closeEvent(QCloseEvent *event) override; private: void initCombos(); void initModeCombos(); void initSync(); void syncFromFindTab(); void syncFromReplaceTab(); Ui::FindReplaceDialog *ui = nullptr; bool m_syncing = false; };