From 419642ad9ea4055fc16694850037059811016559 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Wed, 13 Aug 2008 14:32:30 +0000 Subject: [PATCH] Fix citation bug: In certain circumstances, attempts to insert a new citation would instead change an old one. The problem was that we were hiding the dialog with hide(), which does not trigger closeEvent(). So we have to implement hideEvent(). http://marc.info/?l=lyx-devel&m=121278861019829&w=2 git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26143 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt4/DialogView.h | 9 +++++++++ src/frontends/qt4/GuiCitation.cpp | 9 --------- src/frontends/qt4/GuiCitation.h | 1 - 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/frontends/qt4/DialogView.h b/src/frontends/qt4/DialogView.h index 3901c76994..058d21dbf2 100644 --- a/src/frontends/qt4/DialogView.h +++ b/src/frontends/qt4/DialogView.h @@ -49,6 +49,15 @@ protected: Dialog::disconnect(); ev->accept(); } + /// Any dialog that overrides this method should make sure to call it. + void hideEvent(QHideEvent * ev) + { + if (!ev->spontaneous()) { + clearParams(); + Dialog::disconnect(); + ev->accept(); + } + } }; } // namespace frontend diff --git a/src/frontends/qt4/GuiCitation.cpp b/src/frontends/qt4/GuiCitation.cpp index 74d7c1508d..601b386221 100644 --- a/src/frontends/qt4/GuiCitation.cpp +++ b/src/frontends/qt4/GuiCitation.cpp @@ -105,8 +105,6 @@ GuiCitation::GuiCitation(GuiView & lv) connect(textAfterED, SIGNAL(returnPressed()), this, SLOT(on_okPB_clicked())); - connect(this, SIGNAL(rejected()), this, SLOT(cleanUp())); - selectionManager = new GuiSelectionManager(availableLV, selectedLV, addPB, deletePB, upPB, downPB, &available_model_, &selected_model_); connect(selectionManager, SIGNAL(selectionChanged()), @@ -127,13 +125,6 @@ GuiCitation::~GuiCitation() } -void GuiCitation::cleanUp() -{ - clearParams(); - close(); -} - - void GuiCitation::closeEvent(QCloseEvent * e) { clearSelection(); diff --git a/src/frontends/qt4/GuiCitation.h b/src/frontends/qt4/GuiCitation.h index b8ca33f488..27f69e56bc 100644 --- a/src/frontends/qt4/GuiCitation.h +++ b/src/frontends/qt4/GuiCitation.h @@ -44,7 +44,6 @@ public: ~GuiCitation(); private Q_SLOTS: - void cleanUp(); void on_okPB_clicked(); void on_cancelPB_clicked(); void on_restorePB_clicked();