From c84272021899a7acd8a1ded0657632c326af365d Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrgen=20Spitzm=C3=BCller?= Date: Mon, 21 Jun 2004 08:56:43 +0000 Subject: [PATCH] disallow the insertion of incomplete citation references, prevent crash (bug 1617) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8818 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt2/ChangeLog | 4 ++++ src/frontends/qt2/QCitation.C | 10 ++++++++++ src/frontends/qt2/QCitation.h | 2 ++ src/frontends/xforms/ChangeLog | 4 ++++ src/frontends/xforms/FormCitation.C | 4 ++++ 5 files changed, 24 insertions(+) diff --git a/src/frontends/qt2/ChangeLog b/src/frontends/qt2/ChangeLog index 0e6b72baee..7585f32fa1 100644 --- a/src/frontends/qt2/ChangeLog +++ b/src/frontends/qt2/ChangeLog @@ -1,3 +1,7 @@ +2004-06-21 Jürgen Spitzmüller + + * QCitation.[Ch]: add validation (fix bug 1617). + 2004-06-18 Lars Gullik Bjonnes * lyx_gui.C (roman_font_name): go through QString when converting diff --git a/src/frontends/qt2/QCitation.C b/src/frontends/qt2/QCitation.C index aefedb6c31..7f7c9a45ba 100644 --- a/src/frontends/qt2/QCitation.C +++ b/src/frontends/qt2/QCitation.C @@ -19,6 +19,7 @@ #include "bufferparams.h" +#include "controllers/ButtonController.h" #include "controllers/ControlCitation.h" #include "support/lstrings.h" @@ -212,6 +213,8 @@ void QCitation::update_contents() // the bool prevents that this is also done after "apply" if (open_find_) dialog_->openFind(); + + bc().valid(isValid()); } @@ -229,5 +232,12 @@ void QCitation::updateBrowser(QListBox * browser, } } + +bool QCitation::isValid() +{ + return dialog_->selectedLB->count() > 0; +} + + } // namespace frontend } // namespace lyx diff --git a/src/frontends/qt2/QCitation.h b/src/frontends/qt2/QCitation.h index 23d22f2213..b185b76328 100644 --- a/src/frontends/qt2/QCitation.h +++ b/src/frontends/qt2/QCitation.h @@ -31,6 +31,8 @@ public: friend class QCitationDialog; /// QCitation(Dialog &); +protected: + virtual bool isValid(); private: /// Set the Params variable for the Controller. diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index cee43700b3..d9be053ea8 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,7 @@ +2004-06-21 Jürgen Spitzmüller + + * FormCitation.C: Don't allow incomplete input (fix bug 1617). + 2004-06-04 Angus Leeming * combox.c (combox_handle): prevent crash when trying to draw diff --git a/src/frontends/xforms/FormCitation.C b/src/frontends/xforms/FormCitation.C index f6891d43f8..1898387635 100644 --- a/src/frontends/xforms/FormCitation.C +++ b/src/frontends/xforms/FormCitation.C @@ -433,6 +433,10 @@ ButtonPolicy::SMInput FormCitation::input(FL_OBJECT * ob, long) controller().getCiteStrings(currentCitekey)); fl_set_choice(dialog_->choice_style, choice); } + + // Invalid if no citation has been chosen + if (fl_get_browser_maxline(dialog_->browser_cite) < 1) + activate = ButtonPolicy::SMI_INVALID; return activate; } -- 2.39.2