]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/FindAndReplace.h
* fix spelling in comments to please John.
[lyx.git] / src / frontends / qt4 / FindAndReplace.h
index 09bde38ca387443412a21a38ba7cc8e485a034e6..b9c82042e89d8f50e39b1fcf4cc904db42f0114e 100644 (file)
@@ -22,6 +22,7 @@
 #include "LyX.h"
 #include "LyXFunc.h"
 #include "Text.h"
+#include "lyxfind.h"
 
 #include <QDialog>
 
 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);
 
-       ~FindAndReplace();
+private:
+       ///
+       GuiView & view_;
 
-       bool initialiseParams(std::string const &) { return true; }
-       void clearParams() {}
-       void dispatchParams() {}
-       bool isBufferDependent() const { return true; }
-       void selectAll();
+       /// add a string to the combo if needed
+       void remember(std::string const & find, QComboBox & combo);
 
-       void showEvent(QShowEvent * ev);
-       void hideEvent(QHideEvent * ev);
+       /// 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
+       );
 
-       /// update
-       void updateView() {}
-       //virtual void update_contents() {}
+       /// 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_replacePB_clicked();
+       void on_replaceNextPB_clicked();
+       void on_replacePrevPB_clicked();
        void on_replaceallPB_clicked();
-       void on_closePB_clicked();
-       void on_regexpInsertCombo_currentIndexChanged(int index);
+       void insertRegexp(QAction *);
+};
 
-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);
+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);
 
-       GuiView & parent_view_;
+       ~FindAndReplace();
 
-       Buffer *searchBuffer_;
-       BufferView *searchBufferView_;
+       bool initialiseParams(std::string const &);
+       void clearParams() {}
+       void dispatchParams() {}
+       bool isBufferDependent() const { return true; }
+       void selectAll();
 
-       GuiWorkArea * searchWorkArea_;  // The work area defining what to search
+       /// update
+       void updateView() {}
+       //virtual void update_contents() {}
 
-       /// @TODO: Investigate on focus issue and remove this ugly hack, please !
-       QTimer delayedFocusTimer_;
-       void disableSearchWorkArea();
+protected:
+       virtual bool wantInitialFocus() const { return true; }
 
 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);
-
-public Q_SLOTS:
-       /// this happens when the dialog is simply closed/hidden
-       void closeEvent(QCloseEvent * e);
-       /// this happens 100ms after dialog showEvent()
-       void onDelayedFocus();
+       /// The encapsulated widget.
+       FindAndReplaceWidget * widget_;
 };