From e2b3a1254c2cc1145ac7b24abd2c52bab915375e Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrgen=20Vigna?= Date: Fri, 14 Jul 2000 07:52:03 +0000 Subject: [PATCH] Some forgotten files and Anguses citation patch. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@882 a592a061-630c-0410-9148-cb99ea01b6c8 --- ChangeLog | 8 ++++ lib/listerrors | 5 +++ src/BufferView_pimpl.C | 14 +------ src/frontends/Dialogs.h | 2 + src/frontends/xforms/FormCitation.C | 19 +++++++-- src/frontends/xforms/FormCitation.h | 4 +- src/frontends/xforms/form_citation.h | 2 +- src/frontends/xforms/form_copyright.h | 2 +- src/frontends/xforms/form_preferences.h | 2 +- src/frontends/xforms/form_print.h | 2 +- src/frontends/xforms/form_tabular.h | 2 +- src/frontends/xforms/forms/fdfixh.sed | 52 +++++++++++++++++++++++++ src/insets/insetcite.C | 18 ++++++++- src/insets/insetcite.h | 11 ++++-- src/insets/insetloa.C | 1 + src/insets/insetloa.h | 1 - src/insets/insetlof.C | 1 + src/insets/insetlof.h | 1 - src/insets/insetlot.C | 1 + src/insets/insetlot.h | 1 - src/insets/insetparent.C | 1 + src/insets/insetparent.h | 1 - src/insets/insettoc.C | 1 + src/insets/insettoc.h | 1 - src/insets/lyxinset.h | 2 - 25 files changed, 122 insertions(+), 33 deletions(-) create mode 100755 lib/listerrors create mode 100644 src/frontends/xforms/forms/fdfixh.sed diff --git a/ChangeLog b/ChangeLog index e1146d8d1d..c90e1d00e2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2000-07-13 Angus Leeming + + * src/frontends/Dialogs.h (hideCitation) : new signal to prevent + crashes when closing dialog to a deleted inset. + + * src/insets/insetcite.[Ch] (Edit) : the return of this former + method! Now similar to other insets. + 2000-07-13 Juergen Vigna * src/text.C (GetVisibleRow): fixed clearing of rows with insets! diff --git a/lib/listerrors b/lib/listerrors new file mode 100755 index 0000000000..ce262102a5 --- /dev/null +++ b/lib/listerrors @@ -0,0 +1,5 @@ +#!/bin/sh +echo "This is NOT the listerrors program." +echo "" +echo "Here was the problem when we tried to build listerrors:" +echo The NOWEB notangle was not found. diff --git a/src/BufferView_pimpl.C b/src/BufferView_pimpl.C index f9082ab94e..aad1957478 100644 --- a/src/BufferView_pimpl.C +++ b/src/BufferView_pimpl.C @@ -27,7 +27,6 @@ #include "intl.h" #include "support/LAssert.h" #include "frontends/Dialogs.h" -#include "insets/insetcite.h" #ifdef SIGC_CXX_NAMESPACES using SigC::slot; @@ -790,18 +789,7 @@ void BufferView::Pimpl::workAreaButtonRelease(int x, int y, inset->InsetButtonRelease(bv_, x, y, button); } else { inset_hit->InsetButtonRelease(bv_, x, y, button); - - switch( inset_hit->LyxCode() ) { - case Inset::CITATION_CODE: - { - owner_->getDialogs()-> - showCitation( (InsetCitation *)inset_hit ); - } - break; - default: - inset_hit->Edit(bv_, x, y, button); - break; - } + inset_hit->Edit(bv_, x, y, button); } return; } diff --git a/src/frontends/Dialogs.h b/src/frontends/Dialogs.h index 07bd1b480c..5fe2a6b392 100644 --- a/src/frontends/Dialogs.h +++ b/src/frontends/Dialogs.h @@ -113,6 +113,8 @@ public: /// Signal1 createCitation; /// + Signal1 hideCitation; + /// Signal1 showBibtex; /// Signal1 showInfo; diff --git a/src/frontends/xforms/FormCitation.C b/src/frontends/xforms/FormCitation.C index ba7462db1d..fac2d3b8c0 100644 --- a/src/frontends/xforms/FormCitation.C +++ b/src/frontends/xforms/FormCitation.C @@ -48,6 +48,7 @@ FormCitation::FormCitation(LyXView * lv, Dialogs * d) // storing a copy because we won't be disconnecting. d->showCitation.connect(slot(this, &FormCitation::showInset)); d->createCitation.connect(slot(this, &FormCitation::createInset)); + d->hideCitation.connect(slot(this, &FormCitation::hideInset)); } @@ -93,6 +94,15 @@ void FormCitation::createInset( string const & arg ) } +void FormCitation::hideInset(InsetCitation * ti) +{ + if (inset_ == ti) { + inset_ = 0; + hide(); + } +} + + void FormCitation::show() { if (!dialog_) { @@ -134,6 +144,8 @@ void FormCitation::update() blist.clear(); + fl_freeze_form( dialog_->form_citation ); + updateBrowser( dialog_->bibBrsr, bibkeys ); updateBrowser( dialog_->citeBrsr, citekeys ); fl_clear_browser( dialog_->infoBrsr ); @@ -153,6 +165,8 @@ void FormCitation::update() setSize( size, bibPresent ); fl_set_input( dialog_->textAftr, textAfter.c_str() ); + + fl_unfreeze_form( dialog_->form_citation ); } @@ -175,10 +189,8 @@ void FormCitation::updateBrowser( FL_OBJECT * browser, { fl_clear_browser( browser ); - fl_freeze_form( browser->form ); for( unsigned int i = 0; i < keys.size(); ++i ) fl_add_browser_line( browser, keys[i].c_str() ); - fl_unfreeze_form( browser->form ); } @@ -291,7 +303,8 @@ void FormCitation::setSize( int brsrHeight, bool bibPresent ) const // awaiting natbib support fl_hide_object( dialog_->textBefore ); - fl_set_object_geometry( dialog_->textAftr, 100, ypos, 250, 30 ); + fl_set_object_position(dialog_->textAftr, 100, ypos); +// fl_set_object_geometry( dialog_->textAftr, 100, ypos, 250, 30 ); fl_set_object_geometry( dialog_->ok, 230, ypos+50, 90, 30 ); fl_set_object_geometry( dialog_->cancel, 330, ypos+50, 90, 30 ); } diff --git a/src/frontends/xforms/FormCitation.h b/src/frontends/xforms/FormCitation.h index 7d55579d43..57ea8a85c5 100644 --- a/src/frontends/xforms/FormCitation.h +++ b/src/frontends/xforms/FormCitation.h @@ -15,12 +15,12 @@ #include "DialogBase.h" #include "LString.h" #include -#include "form_citation.h" class Dialogs; // same arguement as in Dialogs.h s/LyX/UI/ class LyXView; class InsetCitation; +struct FD_form_citation; /** This class provides an XForms implementation of the FormCitation Dialog. */ @@ -64,6 +64,8 @@ private: /// void showInset( InsetCitation * ); /// + void hideInset( InsetCitation * ); + /// void show(); /// Hide the dialog. void hide(); diff --git a/src/frontends/xforms/form_citation.h b/src/frontends/xforms/form_citation.h index 2137d2c09a..3176997c66 100644 --- a/src/frontends/xforms/form_citation.h +++ b/src/frontends/xforms/form_citation.h @@ -1,4 +1,4 @@ -/** Header file generated with fdesign on Thu Jul 13 16:53:24 2000.**/ +/** Header file generated with fdesign on Fri Jul 14 09:35:06 2000.**/ #ifndef FD_form_citation_h_ #define FD_form_citation_h_ diff --git a/src/frontends/xforms/form_copyright.h b/src/frontends/xforms/form_copyright.h index fc1977bd06..3c70c88d52 100644 --- a/src/frontends/xforms/form_copyright.h +++ b/src/frontends/xforms/form_copyright.h @@ -1,4 +1,4 @@ -/** Header file generated with fdesign on Thu Jul 13 16:53:24 2000.**/ +/** Header file generated with fdesign on Fri Jul 14 09:35:06 2000.**/ #ifndef FD_form_copyright_h_ #define FD_form_copyright_h_ diff --git a/src/frontends/xforms/form_preferences.h b/src/frontends/xforms/form_preferences.h index 1abb4c2012..a419617a0f 100644 --- a/src/frontends/xforms/form_preferences.h +++ b/src/frontends/xforms/form_preferences.h @@ -1,4 +1,4 @@ -/** Header file generated with fdesign on Thu Jul 13 16:53:24 2000.**/ +/** Header file generated with fdesign on Fri Jul 14 09:35:06 2000.**/ #ifndef FD_form_bind_h_ #define FD_form_bind_h_ diff --git a/src/frontends/xforms/form_print.h b/src/frontends/xforms/form_print.h index 04857d5436..c8461fd8f1 100644 --- a/src/frontends/xforms/form_print.h +++ b/src/frontends/xforms/form_print.h @@ -1,4 +1,4 @@ -/** Header file generated with fdesign on Thu Jul 13 16:53:24 2000.**/ +/** Header file generated with fdesign on Fri Jul 14 09:35:06 2000.**/ #ifndef FD_form_print_h_ #define FD_form_print_h_ diff --git a/src/frontends/xforms/form_tabular.h b/src/frontends/xforms/form_tabular.h index 7dbd0cfd69..d675a3d1fd 100644 --- a/src/frontends/xforms/form_tabular.h +++ b/src/frontends/xforms/form_tabular.h @@ -1,4 +1,4 @@ -/** Header file generated with fdesign on Thu Jul 13 16:53:24 2000.**/ +/** Header file generated with fdesign on Fri Jul 14 09:35:06 2000.**/ #ifndef FD_form_tabular_h_ #define FD_form_tabular_h_ diff --git a/src/frontends/xforms/forms/fdfixh.sed b/src/frontends/xforms/forms/fdfixh.sed new file mode 100644 index 0000000000..354d07aaf7 --- /dev/null +++ b/src/frontends/xforms/forms/fdfixh.sed @@ -0,0 +1,52 @@ +# cat someFile.h | sed -f fdfixh.sed + +# It contains the instructions that sed requires to manipulate +# the header files produced by fdesign into a form usable by LyX + +# In summary it... + +# s/\(extern \)\(.*\)/\1 "C" \2/ +# +# Replaces lines such as "extern void func(args);" +# with "extern "C" void func(args);" + +# /create_form_/d +# +# Deletes lines containing "/create_form_/d" + +# Rewrites as +# typedef struct { struct someStruct { +# ... ... +# void *vdata; ... +# char *cdata; }; +# long ldata; +# ... +# } someStruct; +# +# This is detailed more closely below + +s/\(extern \)\(.*\)/\1 "C" \2/ +/create_form_/d + +/typedef struct {/,/} .*;/{ +# delete lines containing ... +/typedef struct {/d +/vdata/d +/cdata/d +/ldata/d + +# copy remaining lines into the hold space +H + +# rewrite "} someStruct;" as "struct someStruct {" and print +s/} \(.*\);/struct \1 {/p + +# delete line from pattern space +d +} +# swap the hold space back into the pattern space and... +/^$/x +{ +# rewrite "} someStruct;" as "};" +s/} \(.*\);/};/ +} diff --git a/src/insets/insetcite.C b/src/insets/insetcite.C index 13ec3a2d0e..9f31ae2186 100644 --- a/src/insets/insetcite.C +++ b/src/insets/insetcite.C @@ -15,12 +15,21 @@ #endif #include "insetcite.h" +#include "LyXView.h" +#include "BufferView.h" +#include "frontends/Dialogs.h" InsetCitation::InsetCitation(string const & key, string const & note) - : InsetCommand("cite", key, note) + : InsetCommand("cite", key, note), dialogs_(0) { } +InsetCitation::~InsetCitation() +{ + if( dialogs_ != 0 ) + dialogs_->hideCitation( this ); +} + string InsetCitation::getScreenLabel() const { string temp("["); @@ -33,3 +42,10 @@ string InsetCitation::getScreenLabel() const return temp + ']'; } + +void InsetCitation::Edit(BufferView * bv, int, int, unsigned int) +{ + dialogs_ = bv->owner()->getDialogs(); + dialogs_->showCitation( this ); +} + diff --git a/src/insets/insetcite.h b/src/insets/insetcite.h index 92bb90f3f2..3aa04702ab 100644 --- a/src/insets/insetcite.h +++ b/src/insets/insetcite.h @@ -16,6 +16,7 @@ #endif #include "insetcommand.h" +class Dialogs; /** Used to insert citations */ @@ -25,18 +26,22 @@ public: explicit InsetCitation(string const & key, string const & note = string()); /// + ~InsetCitation(); + /// Inset * Clone() const { return new InsetCitation(getContents(), getOptions()); } /// string getScreenLabel() const; /// - Code LyxCode() const { return CITATION_CODE; } - /// EDITABLE Editable() const { return IS_EDITABLE; } + /// + void Edit(BufferView *, int, int, unsigned int); private: /// - InsetCitation() : InsetCommand("cite") {} + InsetCitation() : InsetCommand("cite"), dialogs_(0) {} + /// + Dialogs * dialogs_; }; #endif // INSET_CITE_H diff --git a/src/insets/insetloa.C b/src/insets/insetloa.C index bb3ef255bd..65215ad2ab 100644 --- a/src/insets/insetloa.C +++ b/src/insets/insetloa.C @@ -17,6 +17,7 @@ #pragma implementation #endif +#include "gettext.h" #include "insetloa.h" #include "LaTeXFeatures.h" #include "BufferView.h" diff --git a/src/insets/insetloa.h b/src/insets/insetloa.h index 48617ea296..f16bbfcc48 100644 --- a/src/insets/insetloa.h +++ b/src/insets/insetloa.h @@ -17,7 +17,6 @@ #endif #include "insetcommand.h" -#include "gettext.h" class Buffer; diff --git a/src/insets/insetlof.C b/src/insets/insetlof.C index d3555ca8af..12705e0f85 100644 --- a/src/insets/insetlof.C +++ b/src/insets/insetlof.C @@ -4,6 +4,7 @@ #pragma implementation #endif +#include "gettext.h" #include "insetlof.h" #include "BufferView.h" #include "LyXView.h" diff --git a/src/insets/insetlof.h b/src/insets/insetlof.h index e4b19888f9..10836c8bc1 100644 --- a/src/insets/insetlof.h +++ b/src/insets/insetlof.h @@ -13,7 +13,6 @@ #define INSET_LOF_H #include "insetcommand.h" -#include "gettext.h" // Created by Lgb 970527 diff --git a/src/insets/insetlot.C b/src/insets/insetlot.C index d683ead381..f4a1e3b045 100644 --- a/src/insets/insetlot.C +++ b/src/insets/insetlot.C @@ -4,6 +4,7 @@ #pragma implementation #endif +#include "gettext.h" #include "insetlot.h" #include "BufferView.h" #include "LyXView.h" diff --git a/src/insets/insetlot.h b/src/insets/insetlot.h index 7b48da7577..6ef73b4a94 100644 --- a/src/insets/insetlot.h +++ b/src/insets/insetlot.h @@ -17,7 +17,6 @@ #endif #include "insetcommand.h" -#include "gettext.h" // Created by Lgb 970527 diff --git a/src/insets/insetparent.C b/src/insets/insetparent.C index 71fc512398..fb65bdcb22 100644 --- a/src/insets/insetparent.C +++ b/src/insets/insetparent.C @@ -24,6 +24,7 @@ #include "lyxfunc.h" #include "commandtags.h" #include "buffer.h" +#include "gettext.h" using std::ostream; diff --git a/src/insets/insetparent.h b/src/insets/insetparent.h index 59d77d7a1c..48bccbd0f0 100644 --- a/src/insets/insetparent.h +++ b/src/insets/insetparent.h @@ -16,7 +16,6 @@ #endif #include "insetcommand.h" -#include "gettext.h" class Buffer; diff --git a/src/insets/insettoc.C b/src/insets/insettoc.C index 15414fb8f8..a30456235d 100644 --- a/src/insets/insettoc.C +++ b/src/insets/insettoc.C @@ -4,6 +4,7 @@ #pragma implementation #endif +#include "gettext.h" #include "insettoc.h" #include "commandtags.h" #include "lyxfunc.h" diff --git a/src/insets/insettoc.h b/src/insets/insettoc.h index aed9460393..c96c6266a1 100644 --- a/src/insets/insettoc.h +++ b/src/insets/insettoc.h @@ -17,7 +17,6 @@ #endif #include "insetcommand.h" -#include "gettext.h" class Buffer; diff --git a/src/insets/lyxinset.h b/src/insets/lyxinset.h index 5e244dd31b..1a190f2b69 100644 --- a/src/insets/lyxinset.h +++ b/src/insets/lyxinset.h @@ -102,8 +102,6 @@ public: /// EXTERNAL_CODE, /// - CITATION_CODE, - /// THEOREM_CODE }; -- 2.39.5