// -*- C++ -*- /** * \file FindAndReplace.h * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * * \author Tommaso Cucinotta * * Full author contact details are available in file CREDITS. */ #ifndef QSEARCHADV_H #define QSEARCHADV_H #include "DockView.h" // This is needed so that ui_FindAndReplaceUi.h can find qt_() #include "qt_helpers.h" #include "ui_FindAndReplaceUi.h" #include "lyxfind.h" #include namespace lyx { namespace frontend { class FindAndReplaceWidget : public QTabWidget, public Ui::FindAndReplaceUi { Q_OBJECT public: FindAndReplaceWidget(GuiView & view); bool initialiseParams(std::string const & params); void updateGUI(); public Q_SLOTS: /// void dockLocationChanged(Qt::DockWidgetArea area); private: /// GuiView & view_; /// Buffer * old_buffer_; /// add a string to the combo if needed void remember(std::string const & find, QComboBox & combo); /// Perform the scope-related buffer switch while searching bool findAndReplaceScope(FindAndReplaceOptions & opt, bool replace_all = false); /// Collect options from the GUI elements, then perform the search bool findAndReplace(bool backwards, bool replace, bool replace_all = false); /// FIXME Probably to be merged with findAndReplace(bool, bool, bool) bool findAndReplace(bool casesensitive, bool matchword, bool backwards, bool expandmacros, bool ignoreformat, bool replace, bool keep_case, bool replace_all = false); 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_replacePB_clicked(); void on_replaceallPB_clicked(); }; 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() {} void dispatchParams() {} bool isBufferDependent() const { return false; } bool canApplyToReadOnly() const { return true; } void selectAll(); /// update void updateView(); //virtual void update_contents() {} protected: virtual bool wantInitialFocus() const { return true; } private: /// The encapsulated widget. FindAndReplaceWidget * widget_; }; } // namespace frontend } // namespace lyx #endif // QSEARCHADV_H