X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FFindAndReplace.h;h=b9c82042e89d8f50e39b1fcf4cc904db42f0114e;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=62b2b738a050034c0010f68a0fed6f542bed056f;hpb=6f305f211d192872796a3237803f80fd0507fdb7;p=lyx.git diff --git a/src/frontends/qt4/FindAndReplace.h b/src/frontends/qt4/FindAndReplace.h index 62b2b738a0..b9c82042e8 100644 --- a/src/frontends/qt4/FindAndReplace.h +++ b/src/frontends/qt4/FindAndReplace.h @@ -22,6 +22,7 @@ #include "LyX.h" #include "LyXFunc.h" #include "Text.h" +#include "lyxfind.h" #include @@ -30,11 +31,61 @@ namespace lyx { namespace frontend { -class FindAndReplace : public DockView, public Ui::FindAndReplaceUi +class FindAndReplaceWidget : public QWidget, public Ui::FindAndReplaceUi { Q_OBJECT + public: - FindAndReplace(GuiView & parent); + FindAndReplaceWidget(GuiView & view); + bool initialiseParams(std::string const & params); + +private: + /// + GuiView & view_; + + /// add a string to the combo if needed + void remember(std::string const & find, QComboBox & combo); + + /// FIXME Probably to be merged with findAndReplace(bool, bool) + void findAndReplace( + bool casesensitive, bool matchword, bool backwards, + bool expandmacros, bool ignoreformat, bool replace, + bool keep_case + ); + + /// Perform the scope-related buffer switch while searching + void findAndReplaceScope(FindAndReplaceOptions & opt); + + /// Collect options from the GUI elements, then perform the search + void findAndReplace(bool backwards, bool replace); + + bool eventFilter(QObject *obj, QEvent *event); + + void virtual showEvent(QShowEvent *ev); + void virtual hideEvent(QHideEvent *ev); + + void hideDialog(); + +protected Q_SLOTS: + void on_findNextPB_clicked(); + void on_findPrevPB_clicked(); + void on_replaceNextPB_clicked(); + void on_replacePrevPB_clicked(); + void on_replaceallPB_clicked(); + void insertRegexp(QAction *); +}; + + +class FindAndReplace : public DockView +{ + Q_OBJECT +public: + FindAndReplace( + GuiView & parent, ///< the main window where to dock. + Qt::DockWidgetArea area = Qt::RightDockWidgetArea, ///< Position of the dock (and also drawer) + Qt::WindowFlags flags = 0); + + ~FindAndReplace(); bool initialiseParams(std::string const &); void clearParams() {} @@ -46,36 +97,12 @@ public: void updateView() {} //virtual void update_contents() {} -protected Q_SLOTS: - void on_findNextPB_clicked(); - void on_findPrevPB_clicked(); - void on_replacePB_clicked(); - void on_replaceallPB_clicked(); - void on_closePB_clicked(); - void on_regexpInsertCombo_currentIndexChanged(int index); - protected: - void find(bool backwards); virtual bool wantInitialFocus() const { return true; } private: - // add a string to the combo if needed - void remember(std::string const & find, QComboBox & combo); - void findAdv(bool casesensitive, - bool matchword, bool backwards, - bool expandmacros, bool ignoreformat); - -private: - /// Apply changes - virtual void apply() {} - - void find(docstring const & str, int len, bool casesens, - bool words, bool backwards, bool expandmacros); - - void replace(docstring const & findstr, - docstring const & replacestr, - bool casesens, bool words, bool backwards, bool expandmacros, bool all); - bool eventFilter(QObject *obj, QEvent *event); + /// The encapsulated widget. + FindAndReplaceWidget * widget_; };