mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-23 10:18:50 +00:00
FindAndReplace: more simplification and correct focus handling.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27668 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
227dd33f2f
commit
b718b83074
@ -50,6 +50,7 @@ FindAndReplace::FindAndReplace(GuiView & parent)
|
|||||||
setupUi(this);
|
setupUi(this);
|
||||||
find_work_area_->setGuiView(parent_view_);
|
find_work_area_->setGuiView(parent_view_);
|
||||||
find_work_area_->init();
|
find_work_area_->init();
|
||||||
|
setFocusProxy(find_work_area_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -133,20 +134,11 @@ void FindAndReplace::findAdv(bool casesensitive,
|
|||||||
// searchString, len, casesensitive, matchword, ! backwards, expandmacros);
|
// searchString, len, casesensitive, matchword, ! backwards, expandmacros);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool FindAndReplace::initialiseParams(std::string const &)
|
||||||
void FindAndReplace::showEvent(QShowEvent *ev)
|
|
||||||
{
|
{
|
||||||
|
find_work_area_->setFocus();
|
||||||
selectAll();
|
selectAll();
|
||||||
QWidget::showEvent(ev);
|
return true;
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void FindAndReplace::hideEvent(QHideEvent *ev)
|
|
||||||
{
|
|
||||||
LYXERR(Debug::DEBUG, "FindAndReplace::hideEvent");
|
|
||||||
find_work_area_->removeEventFilter(this);
|
|
||||||
find_work_area_->disable();
|
|
||||||
this->QWidget::hideEvent(ev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -159,7 +151,6 @@ void FindAndReplace::find(bool backwards)
|
|||||||
expandMacrosCB->isChecked(),
|
expandMacrosCB->isChecked(),
|
||||||
ignoreFormatCB->isChecked());
|
ignoreFormatCB->isChecked());
|
||||||
parent_view_.currentMainWorkArea()->redraw();
|
parent_view_.currentMainWorkArea()->redraw();
|
||||||
parent_view_.setCurrentWorkArea(find_work_area_);
|
|
||||||
find_work_area_->setFocus();
|
find_work_area_->setFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,15 +36,12 @@ class FindAndReplace : public DockView, public Ui::FindAndReplaceUi
|
|||||||
public:
|
public:
|
||||||
FindAndReplace(GuiView & parent);
|
FindAndReplace(GuiView & parent);
|
||||||
|
|
||||||
bool initialiseParams(std::string const &) { return true; }
|
bool initialiseParams(std::string const &);
|
||||||
void clearParams() {}
|
void clearParams() {}
|
||||||
void dispatchParams() {}
|
void dispatchParams() {}
|
||||||
bool isBufferDependent() const { return true; }
|
bool isBufferDependent() const { return true; }
|
||||||
void selectAll();
|
void selectAll();
|
||||||
|
|
||||||
void showEvent(QShowEvent * ev);
|
|
||||||
void hideEvent(QHideEvent * ev);
|
|
||||||
|
|
||||||
/// update
|
/// update
|
||||||
void updateView() {}
|
void updateView() {}
|
||||||
//virtual void update_contents() {}
|
//virtual void update_contents() {}
|
||||||
|
@ -1223,13 +1223,10 @@ bool GuiWorkArea::isFullScreen()
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
EmbeddedWorkArea::EmbeddedWorkArea(QWidget * w): GuiWorkArea(w),
|
EmbeddedWorkArea::EmbeddedWorkArea(QWidget * w): GuiWorkArea(w)
|
||||||
delayed_focus_timer_(this)
|
|
||||||
{
|
{
|
||||||
buffer_ = theBufferList().newBuffer(
|
buffer_ = theBufferList().newBuffer(
|
||||||
support::FileName::tempName().absFilename() + "_embedded.internal");
|
support::FileName::tempName().absFilename() + "_embedded.internal");
|
||||||
LASSERT(buffer_ != 0, /* */);
|
|
||||||
|
|
||||||
buffer_->setUnnamed(true);
|
buffer_->setUnnamed(true);
|
||||||
buffer_->setFullyLoaded(true);
|
buffer_->setFullyLoaded(true);
|
||||||
setBuffer(*buffer_);
|
setBuffer(*buffer_);
|
||||||
@ -1245,48 +1242,27 @@ EmbeddedWorkArea::~EmbeddedWorkArea()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void EmbeddedWorkArea::onDelayedFocus()
|
void EmbeddedWorkArea::closeEvent(QCloseEvent * ev)
|
||||||
{
|
{
|
||||||
LYXERR(Debug::DEBUG, "Delayed Focus");
|
|
||||||
view().setCurrentWorkArea(this);
|
|
||||||
setFocus();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void EmbeddedWorkArea::showEvent(QShowEvent *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);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void EmbeddedWorkArea::closeEvent(QCloseEvent * close_event)
|
|
||||||
{
|
|
||||||
LYXERR(Debug::DEBUG, "FindAndReplace::closeEvent()");
|
|
||||||
removeEventFilter(this);
|
|
||||||
disable();
|
disable();
|
||||||
|
GuiWorkArea::closeEvent(ev);
|
||||||
|
}
|
||||||
|
|
||||||
GuiWorkArea::closeEvent(close_event);
|
|
||||||
|
void EmbeddedWorkArea::hideEvent(QHideEvent * ev)
|
||||||
|
{
|
||||||
|
disable();
|
||||||
|
GuiWorkArea::hideEvent(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void EmbeddedWorkArea::disable()
|
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();
|
stopBlinkingCursor();
|
||||||
|
if (view().currentWorkArea() != this)
|
||||||
|
return;
|
||||||
|
LASSERT(view().currentMainWorkArea(), /* */);
|
||||||
|
view().setCurrentWorkArea(view().currentMainWorkArea());
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
@ -278,17 +278,11 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
///
|
///
|
||||||
void showEvent(QShowEvent * ev);
|
void closeEvent(QCloseEvent * ev);
|
||||||
/// this happens when the dialog is simply closed/hidden
|
///
|
||||||
void closeEvent(QCloseEvent * e);
|
void hideEvent(QHideEvent *ev);
|
||||||
|
|
||||||
private Q_SLOTS:
|
|
||||||
/// this happens 100ms after dialog showEvent()
|
|
||||||
void onDelayedFocus();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// @TODO: Investigate on focus issue and remove this ugly hack, please !
|
|
||||||
QTimer delayed_focus_timer_;
|
|
||||||
/// Embedded Buffer.
|
/// Embedded Buffer.
|
||||||
Buffer * buffer_;
|
Buffer * buffer_;
|
||||||
}; // EmbeddedWorkArea
|
}; // EmbeddedWorkArea
|
||||||
|
Loading…
Reference in New Issue
Block a user