setupUi(this);
find_work_area_->setGuiView(parent_view_);
find_work_area_->init();
+ setFocusProxy(find_work_area_);
}
// searchString, len, casesensitive, matchword, ! backwards, expandmacros);
}
-
-void FindAndReplace::showEvent(QShowEvent *ev)
+bool FindAndReplace::initialiseParams(std::string const &)
{
+ find_work_area_->setFocus();
selectAll();
- QWidget::showEvent(ev);
-}
-
-
-void FindAndReplace::hideEvent(QHideEvent *ev)
-{
- LYXERR(Debug::DEBUG, "FindAndReplace::hideEvent");
- find_work_area_->removeEventFilter(this);
- find_work_area_->disable();
- this->QWidget::hideEvent(ev);
+ return true;
}
expandMacrosCB->isChecked(),
ignoreFormatCB->isChecked());
parent_view_.currentMainWorkArea()->redraw();
- parent_view_.setCurrentWorkArea(find_work_area_);
find_work_area_->setFocus();
}
////////////////////////////////////////////////////////////////////
-EmbeddedWorkArea::EmbeddedWorkArea(QWidget * w): GuiWorkArea(w),
- delayed_focus_timer_(this)
+EmbeddedWorkArea::EmbeddedWorkArea(QWidget * w): GuiWorkArea(w)
{
buffer_ = theBufferList().newBuffer(
support::FileName::tempName().absFilename() + "_embedded.internal");
- LASSERT(buffer_ != 0, /* */);
-
buffer_->setUnnamed(true);
buffer_->setFullyLoaded(true);
setBuffer(*buffer_);
}
-void EmbeddedWorkArea::onDelayedFocus()
-{
- LYXERR(Debug::DEBUG, "Delayed Focus");
- view().setCurrentWorkArea(this);
- setFocus();
-}
-
-
-void EmbeddedWorkArea::showEvent(QShowEvent *ev)
+void EmbeddedWorkArea::closeEvent(QCloseEvent * ev)
{
- view().setCurrentWorkArea(this);
- redraw();
- setFocus();
- installEventFilter(this);
- connect(&delayed_focus_timer_, SIGNAL(timeout()), this,
- SLOT(onDelayedFocus()));
- delayed_focus_timer_.setSingleShot(true);
- delayed_focus_timer_.start(100);
-
- GuiWorkArea::showEvent(ev);
+ disable();
+ GuiWorkArea::closeEvent(ev);
}
-void EmbeddedWorkArea::closeEvent(QCloseEvent * close_event)
+void EmbeddedWorkArea::hideEvent(QHideEvent * ev)
{
- LYXERR(Debug::DEBUG, "FindAndReplace::closeEvent()");
- removeEventFilter(this);
disable();
-
- GuiWorkArea::closeEvent(close_event);
+ GuiWorkArea::hideEvent(ev);
}
void EmbeddedWorkArea::disable()
{
- // Ok, closing the window before 100ms may be impossible, however...
- delayed_focus_timer_.stop();
- if (view().currentWorkArea() == this) {
- LASSERT(view().currentMainWorkArea(), /* */);
- view().setCurrentWorkArea(view().currentMainWorkArea());
- }
stopBlinkingCursor();
+ if (view().currentWorkArea() != this)
+ return;
+ LASSERT(view().currentMainWorkArea(), /* */);
+ view().setCurrentWorkArea(view().currentMainWorkArea());
}
////////////////////////////////////////////////////////////////////
protected:
///
- void showEvent(QShowEvent * ev);
- /// this happens when the dialog is simply closed/hidden
- void closeEvent(QCloseEvent * e);
-
-private Q_SLOTS:
- /// this happens 100ms after dialog showEvent()
- void onDelayedFocus();
+ void closeEvent(QCloseEvent * ev);
+ ///
+ void hideEvent(QHideEvent *ev);
private:
- /// @TODO: Investigate on focus issue and remove this ugly hack, please !
- QTimer delayed_focus_timer_;
/// Embedded Buffer.
Buffer * buffer_;
}; // EmbeddedWorkArea