#include <QPainter>
#include <QLineEdit>
#include <QSettings>
+#include <QHideEvent>
#include <QShowEvent>
#include "QSizePolicy"
#if QT_VERSION >= 0x050000
}
-GuiSearchWidget::GuiSearchWidget(QWidget * parent)
- : QWidget(parent)
+GuiSearchWidget::GuiSearchWidget(QWidget * parent, GuiView & view)
+ : QWidget(parent), view_(view)
{
setupUi(this);
}
if (ev->key() == Qt::Key_Escape) {
dispatch(FuncRequest(LFUN_DIALOG_HIDE, "findreplace"));
+ view_.setFocus();
+ dispatch(FuncRequest(LFUN_BUFFER_UPDATE));
return;
}
}
+void GuiSearchWidget::hideEvent(QHideEvent * e)
+{
+ QWidget::hideEvent(e);
+ view_.setFocus();
+ // update toolbar status
+ dispatch(FuncRequest(LFUN_BUFFER_UPDATE));
+}
+
+
void GuiSearchWidget::findBufferChanged()
{
docstring search = theClipboard().getFindBuffer();
GuiSearch::GuiSearch(GuiView & parent, Qt::DockWidgetArea area, Qt::WindowFlags flags)
: DockView(parent, "findreplace", qt_("Search and Replace"), area, flags),
- widget_(new GuiSearchWidget(this))
+ widget_(new GuiSearchWidget(this, parent))
{
setWidget(widget_);
widget_->setBufferView(bufferview());
Q_OBJECT
public:
- GuiSearchWidget(QWidget * parent);
+ GuiSearchWidget(QWidget * parent, GuiView & view);
///
void saveSession(QSettings & settings, QString const & session_key) const;
///
///
void showEvent(QShowEvent * e) override;
///
+ void hideEvent(QHideEvent * e) override;
+ ///
void doFind(bool const backwards = false,
bool const instant = false);
///
///
BufferView const * bv_ = nullptr;
///
+ GuiView & view_;
+ ///
bool minimized_ = false;
/// contains the search box
FancyLineEdit * findLE_;