From: Jürgen Spitzmüller Date: Mon, 21 Jun 2004 08:56:43 +0000 (+0000) Subject: disallow the insertion of incomplete citation references, prevent crash (bug 1617) X-Git-Tag: 1.6.10~15168 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=c84272021899a7acd8a1ded0657632c326af365d;p=features.git 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 --- 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; }