Files
pineapple-notepad/findreplacedialog.h

58 lines
1.1 KiB
C
Raw Permalink Normal View History

2026-02-02 00:02:43 +08:00
#pragma once
#include <QDialog>
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;
};