John Levon: > send me the patch again and I will Here you are, sir.
Thanks, Juergen
Index: src/ChangeLog =================================================================== RCS file: /cvs/lyx/lyx-devel/src/ChangeLog,v retrieving revision 1.837 diff -u -r1.837 ChangeLog --- src/ChangeLog 2002/07/25 02:23:13 1.837 +++ src/ChangeLog 2002/07/25 09:56:19 @@ -1,3 +1,11 @@ +2002-07-25 Dekel Tsur <[EMAIL PROTECTED]> + + * buffer.C (parseSingleLyXformat2Token): Use default placement + when reading old floats. + + * FloatList.C (FloatList): Change the default placement of figure + and tables to "tbp". + 2002-07-25 John Levon <[EMAIL PROTECTED]> * MenuBackend.C: using std::max Index: src/FloatList.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/FloatList.C,v retrieving revision 1.11 diff -u -r1.11 FloatList.C --- src/FloatList.C 2002/04/04 14:39:55 1.11 +++ src/FloatList.C 2002/07/25 09:56:20 @@ -30,12 +30,12 @@ // (these will later be read from a layout file) // table - Floating table("table", "htbp", "lot", "", "plain", N_("Table"), + Floating table("table", "tbp", "lot", "", "plain", N_("Table"), N_("List of Tables"), true); newFloat(table); // figure - Floating figure("figure", "htbp", "lof", + Floating figure("figure", "tbp", "lof", "", "plain", N_("Figure"), N_("List of Figures"), true); newFloat(figure); Index: src/buffer.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/buffer.C,v retrieving revision 1.355 diff -u -r1.355 buffer.C --- src/buffer.C 2002/07/22 17:11:40 1.355 +++ src/buffer.C 2002/07/25 09:56:26 @@ -803,34 +803,29 @@ old_float << "collapsed true\n"; } else if (tmptok == "fig") { inset = new InsetFloat(params, "figure"); - old_float << "placement htbp\n" - << "wide false\n" + old_float << "wide false\n" << "collapsed false\n"; } else if (tmptok == "tab") { inset = new InsetFloat(params, "table"); - old_float << "placement htbp\n" - << "wide false\n" + old_float << "wide false\n" << "collapsed false\n"; } else if (tmptok == "alg") { inset = new InsetFloat(params, "algorithm"); - old_float << "placement htbp\n" - << "wide false\n" + old_float << "wide false\n" << "collapsed false\n"; } else if (tmptok == "wide-fig") { inset = new InsetFloat(params, "figure"); //InsetFloat * tmp = new InsetFloat("figure"); //tmp->wide(true); //inset = tmp; - old_float << "placement htbp\n" - << "wide true\n" + old_float << "wide true\n" << "collapsed false\n"; } else if (tmptok == "wide-tab") { inset = new InsetFloat(params, "table"); //InsetFloat * tmp = new InsetFloat("table"); //tmp->wide(true); //inset = tmp; - old_float << "placement htbp\n" - << "wide true\n" + old_float << "wide true\n" << "collapsed false\n"; } Index: src/frontends/xforms/ChangeLog =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/xforms/ChangeLog,v retrieving revision 1.491 diff -u -r1.491 ChangeLog --- src/frontends/xforms/ChangeLog 2002/07/24 22:32:03 1.491 +++ src/frontends/xforms/ChangeLog 2002/07/25 09:56:34 @@ -1,3 +1,9 @@ +2002-07-25 Juergen Spitzmueller <[EMAIL PROTECTED]> + + * FormFloat.C: + * forms/form_float.fd: Implement default placement checkbox; + some minor tweaks + 2002-07-25 Jean-Marc Lasgouttes <[EMAIL PROTECTED]> * Menubar_pimpl.C (create_submenu): add the code for splitting too @@ -10,8 +16,9 @@ 2002-07-24 Juergen Spitzmueller <[EMAIL PROTECTED]> - * FormFloat.C: - * forms/form_float.fd: Implement Wide Float toggle + * FormFloat.C: + * forms/form_float.fd: Implement Wide Float toggle and !-option; + disable h and b with wide floats 2002-07-24 Jean-Marc Lasgouttes <[EMAIL PROTECTED]> Index: src/frontends/xforms/FormFloat.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/xforms/FormFloat.C,v retrieving revision 1.11 diff -u -r1.11 FormFloat.C --- src/frontends/xforms/FormFloat.C 2002/07/24 15:37:17 1.11 +++ src/frontends/xforms/FormFloat.C 2002/07/25 09:56:34 @@ -4,6 +4,7 @@ * See the file COPYING. * * \author Lars Gullik Bjønnes, [EMAIL PROTECTED] + * \author Juergen Spitzmueller [EMAIL PROTECTED] */ #include <config.h> @@ -27,10 +28,6 @@ {} -// FIX: Needs to be implemented. (Lgb) -// A way to set to float default is missing. -// A way to set "force[!]" is missing. - void FormFloat::build() { dialog_.reset(build_float(this)); @@ -41,10 +38,12 @@ bc().setCancel(dialog_->button_close); bc().setRestore(dialog_->button_restore); + bc().addReadOnly(dialog_->check_default); bc().addReadOnly(dialog_->check_top); bc().addReadOnly(dialog_->check_bottom); bc().addReadOnly(dialog_->check_page); bc().addReadOnly(dialog_->check_here); + bc().addReadOnly(dialog_->check_force); bc().addReadOnly(dialog_->check_here_definitely); bc().addReadOnly(dialog_->check_wide); } @@ -56,6 +55,12 @@ if (fl_get_button(dialog_->check_here_definitely)) { placement += "H"; } else { + if (fl_get_button(dialog_->check_force)) { + placement += "!"; + } + if (fl_get_button(dialog_->check_here)) { + placement += "h"; + } if (fl_get_button(dialog_->check_top)) { placement += "t"; } @@ -65,9 +70,7 @@ if (fl_get_button(dialog_->check_page)) { placement += "p"; } - if (fl_get_button(dialog_->check_here)) { - placement += "h"; - } + } controller().params().placement = placement; controller().params().wide = fl_get_button(dialog_->check_wide); @@ -76,17 +79,26 @@ void FormFloat::update() { + bool def_placement = false; bool top = false; bool bottom = false; bool page = false; bool here = false; + bool force = false; bool here_definitely = false; string placement(controller().params().placement); + + if (placement.empty()) { + def_placement = true; - if (contains(placement, "H")) { + } else if (contains(placement, "H")) { here_definitely = true; + } else { + if (contains(placement, "!")) { + force = true; + } if (contains(placement, "t")) { top = true; } @@ -100,37 +112,75 @@ here = true; } } + fl_set_button(dialog_->check_default, def_placement); fl_set_button(dialog_->check_top, top); fl_set_button(dialog_->check_bottom, bottom); fl_set_button(dialog_->check_page, page); fl_set_button(dialog_->check_here, here); + fl_set_button(dialog_->check_force, force); fl_set_button(dialog_->check_here_definitely, here_definitely); - setEnabled(dialog_->check_here_definitely, !controller().params().wide); + setEnabled(dialog_->check_here_definitely, !controller().params().wide + && !def_placement); + if (controller().params().wide) { + fl_set_button(dialog_->check_here, false); + fl_set_button(dialog_->check_bottom, false); + } + setEnabled(dialog_->check_here, !controller().params().wide && !def_placement); + setEnabled(dialog_->check_bottom, !controller().params().wide && !def_placement); fl_set_button(dialog_->check_wide, controller().params().wide); + setEnabled(dialog_->check_top, !def_placement); + setEnabled(dialog_->check_page, !def_placement); + setEnabled(dialog_->check_force, !def_placement); } ButtonPolicy::SMInput FormFloat::input(FL_OBJECT * ob, long) { - if (ob == dialog_->check_here_definitely) { + bool const def_place = fl_get_button(dialog_->check_default); + if (ob == dialog_->check_default) { + if (def_place) { + fl_set_button(dialog_->check_top, false); + fl_set_button(dialog_->check_bottom, false); + fl_set_button(dialog_->check_page, false); + fl_set_button(dialog_->check_here, false); + fl_set_button(dialog_->check_force, false); + fl_set_button(dialog_->check_here_definitely, false); + } + setEnabled(dialog_->check_top, !def_place); + setEnabled(dialog_->check_bottom, !def_place); + setEnabled(dialog_->check_page, !def_place); + setEnabled(dialog_->check_here, !def_place); + setEnabled(dialog_->check_force, !def_place); + setEnabled(dialog_->check_here_definitely, !def_place); + + } else if (ob == dialog_->check_here_definitely) { if (fl_get_button(dialog_->check_here_definitely)) { fl_set_button(dialog_->check_top, false); fl_set_button(dialog_->check_bottom, false); fl_set_button(dialog_->check_page, false); fl_set_button(dialog_->check_here, false); + fl_set_button(dialog_->check_force, false); } } else { if (fl_get_button(dialog_->check_here_definitely)) { fl_set_button(dialog_->check_here_definitely, false); } } + if (ob == dialog_->check_wide) { if (fl_get_button(dialog_->check_wide)) { fl_set_button(dialog_->check_here_definitely, false); setEnabled(dialog_->check_here_definitely, false); - } - else + fl_set_button(dialog_->check_here, false); + setEnabled(dialog_->check_here, false); + fl_set_button(dialog_->check_bottom, false); + setEnabled(dialog_->check_bottom, false); + + } else { setEnabled(dialog_->check_here_definitely, true); + setEnabled(dialog_->check_here, true); + setEnabled(dialog_->check_bottom, true); + } } return ButtonPolicy::SMI_VALID; Index: src/frontends/xforms/forms/form_float.fd =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/xforms/forms/form_float.fd,v retrieving revision 1.5 diff -u -r1.5 form_float.fd --- src/frontends/xforms/forms/form_float.fd 2002/07/24 15:37:17 1.5 +++ src/frontends/xforms/forms/form_float.fd 2002/07/25 09:56:35 @@ -8,14 +8,14 @@ =============== FORM =============== Name: form_float -Width: 360 -Height: 240 -Number of Objects: 12 +Width: 370 +Height: 320 +Number of Objects: 14 -------------------- class: FL_BOX type: FLAT_BOX -box: 0 0 360 240 +box: 0 0 370 320 boxtype: FL_FLAT_BOX colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_CENTER @@ -33,7 +33,7 @@ -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 20 30 152 30 +box: 20 75 152 30 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -51,7 +51,7 @@ -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 20 60 152 30 +box: 20 105 152 30 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -69,7 +69,7 @@ -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 190 30 152 30 +box: 190 75 152 30 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -87,7 +87,7 @@ -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 190 60 152 30 +box: 190 105 152 30 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -105,7 +105,7 @@ -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 20 110 152 30 +box: 20 180 152 30 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER @@ -123,7 +123,7 @@ -------------------- class: FL_BUTTON type: NORMAL_BUTTON -box: 10 200 80 30 +box: 10 280 100 30 boxtype: FL_UP_BOX colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_CENTER @@ -141,7 +141,7 @@ -------------------- class: FL_BUTTON type: RETURN_BUTTON -box: 120 200 70 30 +box: 130 280 70 30 boxtype: FL_UP_BOX colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_CENTER @@ -159,7 +159,7 @@ -------------------- class: FL_BUTTON type: NORMAL_BUTTON -box: 200 200 70 30 +box: 210 280 70 30 boxtype: FL_UP_BOX colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_CENTER @@ -177,7 +177,7 @@ -------------------- class: FL_BUTTON type: NORMAL_BUTTON -box: 280 200 70 30 +box: 290 280 70 30 boxtype: FL_UP_BOX colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_CENTER @@ -195,14 +195,14 @@ -------------------- class: FL_CHECKBUTTON type: PUSH_BUTTON -box: 20 160 30 30 +box: 20 230 30 30 boxtype: FL_NO_BOX colors: FL_COL1 FL_YELLOW alignment: FL_ALIGN_CENTER style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE +size: FL_NORMAL_SIZE lcol: FL_BLACK -label: Wide Float|#W +label: Span all columns|#S shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity @@ -213,7 +213,7 @@ -------------------- class: FL_LABELFRAME type: ENGRAVED_FRAME -box: 10 20 340 130 +box: 10 20 350 200 boxtype: FL_NO_BOX colors: FL_BLACK FL_COL1 alignment: FL_ALIGN_TOP_LEFT @@ -227,6 +227,42 @@ name: callback: argument: + +-------------------- +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 20 135 30 30 +boxtype: FL_NO_BOX +colors: FL_COL1 FL_YELLOW +alignment: FL_ALIGN_CENTER +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: Ignore internal placement rules|#g +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: check_force +callback: C_FormBaseInputCB +argument: 0 + +-------------------- +class: FL_CHECKBUTTON +type: PUSH_BUTTON +box: 20 30 30 30 +boxtype: FL_NO_BOX +colors: FL_COL1 FL_YELLOW +alignment: FL_ALIGN_CENTER +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: Float Defaults|#D +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: check_default +callback: C_FormBaseInputCB +argument: 0 ============================== create_the_forms Index: src/insets/ChangeLog =================================================================== RCS file: /cvs/lyx/lyx-devel/src/insets/ChangeLog,v retrieving revision 1.474 diff -u -r1.474 ChangeLog --- src/insets/ChangeLog 2002/07/23 21:03:38 1.474 +++ src/insets/ChangeLog 2002/07/25 09:56:41 @@ -1,3 +1,8 @@ +2002-07-25 Dekel Tsur <[EMAIL PROTECTED]> + + * insetfloat.C (read, write): Allow default placement + (floatPlacement_ is empty). + 2002-07-23 Jean-Marc Lasgouttes <[EMAIL PROTECTED]> * insetminipage.h (noFontChange): Index: src/insets/insetfloat.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/insets/insetfloat.C,v retrieving revision 1.48 diff -u -r1.48 insetfloat.C --- src/insets/insetfloat.C 2002/07/21 21:21:04 1.48 +++ src/insets/insetfloat.C 2002/07/25 09:56:41 @@ -154,10 +154,7 @@ os << "Float " // getInsetName() << floatType_ << '\n'; - if (floatPlacement_.empty()) { - os << "placement " - << floatList.getType(floatType_).placement() << "\n"; - } else { + if (!floatPlacement_.empty()) { os << "placement " << floatPlacement_ << "\n"; } if (wide_) { @@ -179,8 +176,6 @@ lex.next(); floatPlacement_ = lex.getString(); } else { - lyxerr << "InsetFloat::Read: Missing placement!" - << endl; // take countermeasures lex.pushToken(token); }