From 8ae23e75267ac755a2a8c0802c33f75103eaec3e Mon Sep 17 00:00:00 2001 From: Angus Leeming Date: Fri, 24 Aug 2001 14:57:27 +0000 Subject: [PATCH] John's recent build.diff patch git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2582 a592a061-630c-0410-9148-cb99ea01b6c8 --- po/POTFILES.in | 96 ++++++++++---------- src/frontends/controllers/ChangeLog | 9 ++ src/frontends/controllers/ControlCharacter.C | 2 +- src/frontends/controllers/ControlDialogs.h | 12 ++- src/frontends/controllers/ControlInset.h | 11 +++ src/frontends/controllers/ViewBase.h | 2 + src/frontends/xforms/ChangeLog | 7 ++ src/frontends/xforms/FormCitation.C | 90 +++++++++--------- src/frontends/xforms/FormCitation.h | 4 + src/frontends/xforms/GUIRunTime.C | 8 +- 10 files changed, 144 insertions(+), 97 deletions(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index dc7e9ec132..8d579f4a69 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -10,13 +10,14 @@ src/CutAndPaste.C src/debug.C src/exporter.C src/ext_l10n.h -src/figure_form.C src/figureForm.C +src/figure_form.C src/FontLoader.C src/frontends/controllers/biblio.C src/frontends/controllers/ButtonController.h src/frontends/controllers/character.C src/frontends/controllers/ControlAboutlyx.C +src/frontends/controllers/ControlBibtex.C src/frontends/controllers/ControlCharacter.C src/frontends/controllers/ControlExternal.C src/frontends/controllers/ControlGraphics.C @@ -34,89 +35,89 @@ src/frontends/gnome/FormRef.C src/frontends/gnome/FormToc.C src/frontends/gnome/Menubar_pimpl.C src/frontends/qt2/FileDialog.C -src/frontends/qt2/FormCharacter.C -src/frontends/qt2/FormCitation.C -src/frontends/qt2/FormCredits.C -src/frontends/qt2/FormDocument.C -src/frontends/qt2/FormIndex.C -src/frontends/qt2/FormParagraph.C -src/frontends/qt2/FormPrint.C -src/frontends/qt2/FormRef.C -src/frontends/qt2/FormSearch.C -src/frontends/qt2/FormTabularCreate.C -src/frontends/qt2/FormToc.C -src/frontends/qt2/FormUrl.C -src/frontends/qt2/paragraphdlgimpl.C -src/frontends/qt2/tabularcreatedlgimpl.C +src/frontends/qt2/QAbout.C +src/frontends/qt2/QCharacter.C +src/frontends/qt2/QCitation.C +src/frontends/qt2/QDocument.C +src/frontends/qt2/QIndex.C +src/frontends/qt2/QParagraph.C +src/frontends/qt2/QParagraphDialog.C +src/frontends/qt2/QPrint.C +src/frontends/qt2/QRef.C +src/frontends/qt2/QSearch.C +src/frontends/qt2/QTabularCreate.C +src/frontends/qt2/QTabularCreateDialog.C +src/frontends/qt2/QToc.C +src/frontends/qt2/QURL.C src/frontends/xforms/combox.C src/frontends/xforms/FileDialog.C -src/frontends/xforms/form_aboutlyx.C src/frontends/xforms/FormAboutlyx.C -src/frontends/xforms/form_bibitem.C +src/frontends/xforms/form_aboutlyx.C src/frontends/xforms/FormBibitem.C -src/frontends/xforms/form_bibtex.C +src/frontends/xforms/form_bibitem.C src/frontends/xforms/FormBibtex.C +src/frontends/xforms/form_bibtex.C src/frontends/xforms/form_browser.C -src/frontends/xforms/form_character.C src/frontends/xforms/FormCharacter.C -src/frontends/xforms/form_citation.C +src/frontends/xforms/form_character.C src/frontends/xforms/FormCitation.C -src/frontends/xforms/form_document.C +src/frontends/xforms/form_citation.C src/frontends/xforms/FormDocument.C -src/frontends/xforms/form_error.C +src/frontends/xforms/form_document.C src/frontends/xforms/FormError.C -src/frontends/xforms/form_ert.C +src/frontends/xforms/form_error.C src/frontends/xforms/FormERT.C -src/frontends/xforms/form_external.C +src/frontends/xforms/form_ert.C src/frontends/xforms/FormExternal.C -src/frontends/xforms/form_filedialog.C +src/frontends/xforms/form_external.C src/frontends/xforms/FormFiledialog.C -src/frontends/xforms/form_float.C +src/frontends/xforms/form_filedialog.C src/frontends/xforms/FormFloat.C -src/frontends/xforms/form_graphics.C +src/frontends/xforms/form_float.C src/frontends/xforms/FormGraphics.C -src/frontends/xforms/form_include.C +src/frontends/xforms/form_graphics.C src/frontends/xforms/FormInclude.C -src/frontends/xforms/form_index.C +src/frontends/xforms/form_include.C src/frontends/xforms/FormIndex.C +src/frontends/xforms/form_index.C src/frontends/xforms/FormLog.C src/frontends/xforms/FormMathsBitmap.C -src/frontends/xforms/form_maths_deco.C src/frontends/xforms/FormMathsDeco.C -src/frontends/xforms/form_maths_delim.C +src/frontends/xforms/form_maths_deco.C src/frontends/xforms/FormMathsDelim.C -src/frontends/xforms/form_maths_matrix.C +src/frontends/xforms/form_maths_delim.C src/frontends/xforms/FormMathsMatrix.C -src/frontends/xforms/form_maths_panel.C +src/frontends/xforms/form_maths_matrix.C src/frontends/xforms/FormMathsPanel.C -src/frontends/xforms/form_maths_space.C +src/frontends/xforms/form_maths_panel.C src/frontends/xforms/FormMathsSpace.C -src/frontends/xforms/form_minipage.C +src/frontends/xforms/form_maths_space.C src/frontends/xforms/FormMinipage.C -src/frontends/xforms/form_paragraph.C +src/frontends/xforms/form_minipage.C src/frontends/xforms/FormParagraph.C -src/frontends/xforms/form_preamble.C +src/frontends/xforms/form_paragraph.C src/frontends/xforms/FormPreamble.C -src/frontends/xforms/form_preferences.C +src/frontends/xforms/form_preamble.C src/frontends/xforms/FormPreferences.C -src/frontends/xforms/form_print.C +src/frontends/xforms/form_preferences.C src/frontends/xforms/FormPrint.C -src/frontends/xforms/form_ref.C +src/frontends/xforms/form_print.C src/frontends/xforms/FormRef.C -src/frontends/xforms/form_search.C +src/frontends/xforms/form_ref.C src/frontends/xforms/FormSearch.C -src/frontends/xforms/form_spellchecker.C +src/frontends/xforms/form_search.C src/frontends/xforms/FormSpellchecker.C -src/frontends/xforms/form_tabular.C +src/frontends/xforms/form_spellchecker.C src/frontends/xforms/FormTabular.C -src/frontends/xforms/form_tabular_create.C +src/frontends/xforms/form_tabular.C src/frontends/xforms/FormTabularCreate.C -src/frontends/xforms/form_thesaurus.C +src/frontends/xforms/form_tabular_create.C src/frontends/xforms/FormThesaurus.C -src/frontends/xforms/form_toc.C +src/frontends/xforms/form_thesaurus.C src/frontends/xforms/FormToc.C -src/frontends/xforms/form_url.C +src/frontends/xforms/form_toc.C src/frontends/xforms/FormUrl.C +src/frontends/xforms/form_url.C src/frontends/xforms/FormVCLog.C src/frontends/xforms/input_validators.C src/frontends/xforms/Menubar_pimpl.C @@ -136,7 +137,6 @@ src/insets/insetfoot.C src/insets/insetgraphics.C src/insets/insetinclude.C src/insets/insetindex.C -src/insets/insetinfo.C src/insets/insetlabel.C src/insets/insetlist.C src/insets/insetmarginal.C diff --git a/src/frontends/controllers/ChangeLog b/src/frontends/controllers/ChangeLog index 6f79fa8d7c..b92ef6ff3a 100644 --- a/src/frontends/controllers/ChangeLog +++ b/src/frontends/controllers/ChangeLog @@ -1,3 +1,12 @@ +2001-08-24 John Levon + + * ControlCharacter.C: fix typo + + * ViewBase.h: + * ControlDialogs.C: + * ControlInsets.C: make sure dialog is built before it is shown, so + it works properly the very first time it is shown + 2001-08-20 Herbert Voss * ControlBibtex.[Ch]: enhanced bibtex-data gui to browse for databases diff --git a/src/frontends/controllers/ControlCharacter.C b/src/frontends/controllers/ControlCharacter.C index aca63a7e72..39a4cba313 100644 --- a/src/frontends/controllers/ControlCharacter.C +++ b/src/frontends/controllers/ControlCharacter.C @@ -3,7 +3,7 @@ * Copyright 2001 The LyX Team. * See the file COPYING. * - * \author Angus Leeming, a.leeming@.ac.uk + * \author Angus Leeming, a.leeming@ic.ac.uk */ #include diff --git a/src/frontends/controllers/ControlDialogs.h b/src/frontends/controllers/ControlDialogs.h index 2335eb2db8..65d87f3101 100644 --- a/src/frontends/controllers/ControlDialogs.h +++ b/src/frontends/controllers/ControlDialogs.h @@ -64,6 +64,12 @@ void ControlDialog::show() setParams(); + static bool isBuilt = false; + if (!isBuilt) { + isBuilt = true; + view().build(); + } + bc().readOnly(isReadonly()); view().show(); } @@ -75,8 +81,12 @@ void ControlDialog::update() return; setParams(); - + bc().readOnly(isReadonly()); + // Reset the Button Controller to it's initial state + bc().invalid(); + bc().restore(); + view().update(); } diff --git a/src/frontends/controllers/ControlInset.h b/src/frontends/controllers/ControlInset.h index 8ef34e543d..45b303df84 100644 --- a/src/frontends/controllers/ControlInset.h +++ b/src/frontends/controllers/ControlInset.h @@ -20,6 +20,7 @@ #define CONTROLINSET_H #include "support/LAssert.h" +#include "debug.h" #include "ControlConnections.h" class Inset; @@ -135,6 +136,12 @@ void ControlInset::show(Params const & params) setDaughterParams(); + static bool isBuilt = false; + if (!isBuilt) { + isBuilt = true; + view().build(); + } + bc().readOnly(isReadonly()); view().show(); } @@ -168,6 +175,10 @@ void ControlInset::update() params_ = new Params(); bc().readOnly(isReadonly()); + // Reset the Button Controller to it's initial state + bc().invalid(); + bc().restore(); + view().update(); } diff --git a/src/frontends/controllers/ViewBase.h b/src/frontends/controllers/ViewBase.h index 1e233614a1..f84cf426f0 100644 --- a/src/frontends/controllers/ViewBase.h +++ b/src/frontends/controllers/ViewBase.h @@ -35,6 +35,8 @@ public: virtual void show() = 0; /// Update dialog before/whilst showing it. virtual void update() = 0; + /// build the dialog + virtual void build() = 0; /** These shortcuts allow (e.g. xform's) global callback functions access to the buttons without making the whole controller_ public. diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index 9ad36ea15e..492ebcf0d8 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,10 @@ +2001-08-24 John Levon + + * FormCitation.h: + * FormCitation.C: tidy code a little + + * GUIRunTime.C: more informative error + 2001-08-23 Angus Leeming * forms/form_preferences.fd: order the items "logically" so that diff --git a/src/frontends/xforms/FormCitation.C b/src/frontends/xforms/FormCitation.C index d90066b18d..4f9857f7fb 100644 --- a/src/frontends/xforms/FormCitation.C +++ b/src/frontends/xforms/FormCitation.C @@ -25,7 +25,6 @@ #include "form_citation.h" #include "gettext.h" #include "support/lstrings.h" -#include "biblio.h" #include "helper_funcs.h" #include "xforms_helpers.h" @@ -136,6 +135,7 @@ void FormCitation::build() fl_set_input_return(dialog_->input_after, FL_RETURN_CHANGED); fl_set_input_return(dialog_->input_before, FL_RETURN_CHANGED); + fl_set_input_return(dialog_->input_search, FL_RETURN_END); fl_set_button(dialog_->button_search_case, 0); fl_set_button(dialog_->button_search_type, 0); @@ -158,6 +158,44 @@ void FormCitation::build() } +void FormCitation::findBiblio(biblio::Direction const dir) +{ + string const str = fl_get_input(dialog_->input_search); + biblio::InfoMap const & theMap = controller().bibkeysInfo(); + bool const caseSensitive = + fl_get_button(dialog_->button_search_case); + biblio::Search const type = + fl_get_button(dialog_->button_search_type) ? + biblio::REGEX : biblio::SIMPLE; + + vector::const_iterator start = bibkeys.begin(); + int const sel = fl_get_browser(dialog_->browser_bib); + if (sel >= 1 && sel <= int(bibkeys.size())) + start += sel - 1; + + // Find the NEXT instance... + (dir == biblio::FORWARD) ? ++start : --start; + + + vector::const_iterator const cit = + biblio::searchKeys(theMap, bibkeys, str, + start, type, dir, caseSensitive); + + if (cit == bibkeys.end()) + return; + + int const found = int(cit - bibkeys.begin()) + 1; + if (found == sel) + return; + + // Update the display + int const top = max(found - 5, 1); + fl_set_browser_topline(dialog_->browser_bib, top); + fl_select_browser_line(dialog_->browser_bib, found); + input(dialog_->browser_bib, 0); +} + + ButtonPolicy::SMInput FormCitation::input(FL_OBJECT * ob, long) { ButtonPolicy::SMInput activate = ButtonPolicy::SMI_NOOP; @@ -299,50 +337,12 @@ ButtonPolicy::SMInput FormCitation::input(FL_OBJECT * ob, long) setCiteButtons(ON); activate = ButtonPolicy::SMI_VALID; - } else if (ob == dialog_->button_previous || - ob == dialog_->button_next) { - - string const str = fl_get_input(dialog_->input_search); - - biblio::Direction const dir = - (ob == dialog_->button_previous) ? - biblio::BACKWARD : biblio::FORWARD; - - biblio::Search const type = - fl_get_button(dialog_->button_search_type) ? - biblio::REGEX : biblio::SIMPLE; - - vector::const_iterator start = bibkeys.begin(); - int const sel = fl_get_browser(dialog_->browser_bib); - if (sel >= 1 && sel <= int(bibkeys.size())) - start += sel-1; - - // Find the NEXT instance... - if (dir == biblio::FORWARD) - start += 1; - else - start -= 1; - - bool const caseSensitive = - fl_get_button(dialog_->button_search_case); - - vector::const_iterator const cit = - biblio::searchKeys(theMap, bibkeys, str, - start, type, dir, caseSensitive); - - if (cit == bibkeys.end()) - return ButtonPolicy::SMI_NOOP; - - int const found = int(cit - bibkeys.begin()) + 1; - if (found == sel) - return ButtonPolicy::SMI_NOOP; - - // Update the display - int const top = max(found-5, 1); - fl_set_browser_topline(dialog_->browser_bib, top); - fl_select_browser_line(dialog_->browser_bib, found); - input(dialog_->browser_bib, 0); - + } else if (ob == dialog_->button_previous) { + findBiblio(biblio::BACKWARD); + } else if (ob == dialog_->button_next) { + findBiblio(biblio::FORWARD); + } else if (ob == dialog_->input_search) { + findBiblio(biblio::FORWARD); } else if (ob == dialog_->choice_style || ob == dialog_->button_full_author_list || ob == dialog_->button_force_uppercase || diff --git a/src/frontends/xforms/FormCitation.h b/src/frontends/xforms/FormCitation.h index 1135006d95..1bac28bb52 100644 --- a/src/frontends/xforms/FormCitation.h +++ b/src/frontends/xforms/FormCitation.h @@ -20,6 +20,7 @@ #endif #include "FormBase.h" +#include "biblio.h" /** This class provides an XForms implementation of the Citation Dialog. */ @@ -54,6 +55,9 @@ private: /// Fdesign generated method FD_form_citation * build_citation(); + /// search for a citation + void FormCitation::findBiblio(biblio::Direction const dir); + /// void updateBrowser(FL_OBJECT *, std::vector const &) const; /// diff --git a/src/frontends/xforms/GUIRunTime.C b/src/frontends/xforms/GUIRunTime.C index 15ab6e9270..46fa22c5c0 100644 --- a/src/frontends/xforms/GUIRunTime.C +++ b/src/frontends/xforms/GUIRunTime.C @@ -71,9 +71,11 @@ int GUIRunTime::initApplication(int , char **) void GUIRunTime::processEvents() { if (fl_do_forms() == FL_EVENT) { - lyxerr << "LyX: This shouldn't happen..." << endl; XEvent ev; fl_XNextEvent(&ev); + lyxerr << "Received unhandled X11 event" << endl; + lyxerr << "Type: 0x" << std::hex << ev.xany.type << + "Target: 0x" << std::hex << ev.xany.window << endl; } } @@ -82,9 +84,11 @@ void GUIRunTime::runTime() { while (!finished) { if (fl_check_forms() == FL_EVENT) { - lyxerr << "LyX: This shouldn't happen..." << endl; XEvent ev; fl_XNextEvent(&ev); + lyxerr << "Received unhandled X11 event" << endl; + lyxerr << "Type: 0x" << std::hex << ev.xany.type << + "Target: 0x" << std::hex << ev.xany.window << endl; } } } -- 2.39.2