mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 01:59:02 +00:00
support for sidewaysfloats and fix for bug 1016 (float placement allows impossible settings).
BTW: floats are still broken (dialogs do not get updated). No idea where this bug sits. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8557 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
374e280417
commit
4072a82b6e
@ -1,6 +1,19 @@
|
||||
LyX file-format changes
|
||||
-----------------------
|
||||
|
||||
2004-03-29 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
||||
|
||||
* format incremented to 231.
|
||||
|
||||
* Support for sidewaysfigure/sidewaystable (rotating package).
|
||||
insetfloat has now a param \sideways [true|false] (default is false).
|
||||
The param should be erased on downwards conversion, if it was true,
|
||||
the inset should be replaced by
|
||||
\begin{sidewaysfigure} <content> \end{sidewaysfigure}
|
||||
resp.
|
||||
\begin{sidewaystable} <content> \end{sidewaystable}
|
||||
i.e. ERT.
|
||||
|
||||
2004-02-23 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
||||
|
||||
* format incremented to 230.
|
||||
|
@ -1,3 +1,7 @@
|
||||
2004-03-29 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
||||
|
||||
* lyx2lyx: up the format to 231.
|
||||
|
||||
2004-03-26 Georg Baum <Georg.Baum@post.rwth-aachen.de>
|
||||
|
||||
* lyxrevert_225.py (convert_frameless_box): fix minipage ERT output
|
||||
|
@ -40,7 +40,8 @@ opt.quiet = 0
|
||||
|
||||
format = re.compile(r"(\d)[\.,]?(\d\d)")
|
||||
fileformat = re.compile(r"\\lyxformat\s*(\S*)")
|
||||
lst_ft = [210, 215, 216, 217, 218, 220, 221, 223, 224, 225, 226, 227, 228, 229, 230]
|
||||
lst_ft = [210, 215, 216, 217, 218, 220, 221, 223, 224, 225, 226, 227, 228, 229,
|
||||
230, 231]
|
||||
|
||||
def usage():
|
||||
print """Usage: lyx2lyx [options] [file]
|
||||
|
29
lib/lyx2lyx/lyxconvert_230.py
Normal file
29
lib/lyx2lyx/lyxconvert_230.py
Normal file
@ -0,0 +1,29 @@
|
||||
# This file is part of lyx2lyx
|
||||
# -*- coding: iso-8859-1 -*-
|
||||
# Copyright (C) 2003 José Matos <jamatos@fep.up.pt>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
|
||||
import sys
|
||||
from parser_tools import find_token
|
||||
|
||||
|
||||
def convert(header, body):
|
||||
pass
|
||||
|
||||
if __name__ == "__main__":
|
||||
pass
|
29
lib/lyx2lyx/lyxrevert_231.py
Normal file
29
lib/lyx2lyx/lyxrevert_231.py
Normal file
@ -0,0 +1,29 @@
|
||||
# This file is part of lyx2lyx
|
||||
# -*- coding: iso-8859-1 -*-
|
||||
# Copyright (C) 2003 José Matos <jamatos@fep.up.pt>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
|
||||
import sys
|
||||
from parser_tools import find_token
|
||||
|
||||
|
||||
def convert(header, body):
|
||||
pass
|
||||
|
||||
if __name__ == "__main__":
|
||||
pass
|
@ -190,6 +190,8 @@ src/output_plaintext.C
|
||||
src/paragraph.C
|
||||
src/rowpainter.C
|
||||
src/support/globbing.C
|
||||
src/support/path_defines.C
|
||||
src/tex2lyx/lengthcommon.C
|
||||
src/text.C
|
||||
src/text2.C
|
||||
src/text3.C
|
||||
|
@ -1,3 +1,6 @@
|
||||
2004-03-29 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
||||
|
||||
* buffer.C: increment file format to 231.
|
||||
|
||||
2004-03-28 Alfredo Braunstein <abraunst@lyx.org>
|
||||
|
||||
@ -221,6 +224,7 @@
|
||||
* lyxrc.C (setDefaults, getDescription, output, read):
|
||||
* lyxrc.h: remove ps_command
|
||||
|
||||
>>>>>>> 1.1856
|
||||
2004-03-22 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* lyx_main.C (error_handler, init): remove handler for SIGPIPE.
|
||||
|
@ -130,7 +130,7 @@ extern BufferList bufferlist;
|
||||
|
||||
namespace {
|
||||
|
||||
const int LYX_FORMAT = 230;
|
||||
const int LYX_FORMAT = 231;
|
||||
|
||||
} // namespace anon
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
2004-03-29 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
||||
|
||||
* QFloat.C:
|
||||
* QFloatDialog.C:
|
||||
* floatplacement.[Ch]: add support for sidewaysfloats
|
||||
fix enabling of placement values (bug 1016)
|
||||
|
||||
2004-03-28 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* Dialogs.C (build): added print dialog.
|
||||
|
@ -53,5 +53,5 @@ void QFloat::apply()
|
||||
{
|
||||
InsetFloatParams & params = controller().params();
|
||||
|
||||
params.placement = dialog_->floatFP->get(params.wide);
|
||||
params.placement = dialog_->floatFP->get(params.wide, params.sideways);
|
||||
}
|
||||
|
@ -36,6 +36,9 @@ QFloatDialog::QFloatDialog(QFloat * form)
|
||||
|
||||
// enable span columns checkbox
|
||||
floatFP->useWide();
|
||||
|
||||
// enable sideways checkbox
|
||||
floatFP->useSideways();
|
||||
|
||||
connect(floatFP, SIGNAL(changed()),
|
||||
this, SLOT(change_adaptor()));
|
||||
|
@ -27,6 +27,7 @@ using std::string;
|
||||
|
||||
|
||||
// FIXME: set disabled doesn't work properly
|
||||
// should be fixed now (jspitzm)
|
||||
FloatPlacement::FloatPlacement(QWidget * parent, char * name)
|
||||
: QWidget(parent, name)
|
||||
{
|
||||
@ -42,6 +43,7 @@ FloatPlacement::FloatPlacement(QWidget * parent, char * name)
|
||||
heredefinitelyCB = new QCheckBox(qt_("Here definitely"), options);
|
||||
ignoreCB = new QCheckBox(qt_("&Ignore LaTeX rules"), options);
|
||||
spanCB = 0;
|
||||
sidewaysCB = 0;
|
||||
|
||||
layout->addWidget(defaultsCB);
|
||||
|
||||
@ -93,6 +95,16 @@ void FloatPlacement::useWide()
|
||||
}
|
||||
|
||||
|
||||
void FloatPlacement::useSideways()
|
||||
{
|
||||
sidewaysCB = new QCheckBox(qt_("&Rotate sideways"), this);
|
||||
layout->addWidget(sidewaysCB);
|
||||
setTabOrder(spanCB, sidewaysCB);
|
||||
connect(sidewaysCB, SIGNAL(clicked()), this, SLOT(sidewaysClicked()));
|
||||
connect(sidewaysCB, SIGNAL(toggled(bool)), this, SLOT(changedSlot()));
|
||||
}
|
||||
|
||||
|
||||
void FloatPlacement::changedSlot()
|
||||
{
|
||||
emit changed();
|
||||
@ -148,16 +160,21 @@ void FloatPlacement::set(InsetFloatParams const & params)
|
||||
|
||||
if (params.wide) {
|
||||
herepossiblyCB->setChecked(false);
|
||||
heredefinitelyCB->setChecked(false);
|
||||
bottomCB->setChecked(false);
|
||||
}
|
||||
|
||||
spanCB->setChecked(params.wide);
|
||||
sidewaysCB->setChecked(params.sideways);
|
||||
sidewaysCB->setEnabled(params.type == "figure"
|
||||
|| params.type == "table");
|
||||
}
|
||||
|
||||
|
||||
string const FloatPlacement::get(bool & wide) const
|
||||
string const FloatPlacement::get(bool & wide, bool & sideways) const
|
||||
{
|
||||
wide = spanCB->isChecked();
|
||||
sideways = sidewaysCB->isChecked();
|
||||
|
||||
return get();
|
||||
}
|
||||
@ -224,6 +241,7 @@ void FloatPlacement::spanClicked()
|
||||
if (!defaultsCB->isChecked()) {
|
||||
herepossiblyCB->setEnabled(!span);
|
||||
heredefinitelyCB->setEnabled(!span);
|
||||
bottomCB->setEnabled(!span);
|
||||
}
|
||||
|
||||
if (!span)
|
||||
@ -231,4 +249,30 @@ void FloatPlacement::spanClicked()
|
||||
|
||||
herepossiblyCB->setChecked(false);
|
||||
heredefinitelyCB->setChecked(false);
|
||||
bottomCB->setChecked(false);
|
||||
}
|
||||
|
||||
|
||||
void FloatPlacement::sidewaysClicked()
|
||||
{
|
||||
bool const sideways(sidewaysCB->isChecked());
|
||||
bool const span(spanCB->isChecked());
|
||||
bool const defaults(defaultsCB->isChecked());
|
||||
bool ignore(topCB->isChecked());
|
||||
ignore |= bottomCB->isChecked();
|
||||
ignore |= pageCB->isChecked();
|
||||
ignore |= herepossiblyCB->isChecked();
|
||||
|
||||
defaultsCB->setEnabled(!sideways);
|
||||
topCB->setEnabled(!sideways && !defaults);
|
||||
bottomCB->setEnabled(!sideways && !defaults);
|
||||
pageCB->setEnabled(!sideways && !defaults);
|
||||
spanCB->setEnabled(!sideways);
|
||||
ignoreCB->setEnabled(!sideways && !defaults && ignore);
|
||||
herepossiblyCB->setEnabled(!sideways && !defaults);
|
||||
heredefinitelyCB->setEnabled(!sideways && !defaults);
|
||||
if (!sideways && !defaults) {
|
||||
herepossiblyCB->setEnabled(!span);
|
||||
heredefinitelyCB->setEnabled(!span);
|
||||
}
|
||||
}
|
||||
|
@ -24,17 +24,19 @@ public:
|
||||
FloatPlacement(QWidget * parent, char * name);
|
||||
|
||||
void useWide();
|
||||
void useSideways();
|
||||
|
||||
void set(InsetFloatParams const & params);
|
||||
void set(std::string const & placement);
|
||||
|
||||
std::string const get(bool & wide) const;
|
||||
std::string const get(bool & wide, bool & sideways) const;
|
||||
std::string const get() const;
|
||||
|
||||
public slots:
|
||||
void tbhpClicked();
|
||||
void heredefinitelyClicked();
|
||||
void spanClicked();
|
||||
void sidewaysClicked();
|
||||
void changedSlot();
|
||||
|
||||
signals:
|
||||
@ -45,6 +47,7 @@ private:
|
||||
|
||||
QCheckBox * defaultsCB;
|
||||
QCheckBox * spanCB;
|
||||
QCheckBox * sidewaysCB;
|
||||
QCheckBox * ignoreCB;
|
||||
QCheckBox * pageCB;
|
||||
QCheckBox * heredefinitelyCB;
|
||||
|
@ -1,3 +1,10 @@
|
||||
2004-03-29 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
||||
|
||||
* FormFloat.C:
|
||||
* forms/form_float.fd:
|
||||
add support for sidewaysfloats
|
||||
fix enabling of placement values (bug 1016)
|
||||
|
||||
2004-03-28 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* Dialogs.C (build): added print dialog.
|
||||
|
@ -69,6 +69,7 @@ void FormFloat::build()
|
||||
bcview().addReadOnly(dialog_->check_here);
|
||||
bcview().addReadOnly(dialog_->check_force);
|
||||
bcview().addReadOnly(dialog_->check_wide);
|
||||
bcview().addReadOnly(dialog_->check_sideways);
|
||||
|
||||
placement_.init(dialog_->radio_default, DOCUMENT_DEFAULTS);
|
||||
placement_.init(dialog_->radio_here_definitely, HERE_DEFINITELY);
|
||||
@ -93,12 +94,15 @@ void FormFloat::build()
|
||||
tooltips().init(dialog_->check_force, str);
|
||||
str = _("Span float over the columns.");
|
||||
tooltips().init(dialog_->check_wide, str);
|
||||
str = _("Rotate the float sideways by 90 degs.");
|
||||
tooltips().init(dialog_->check_sideways, str);
|
||||
}
|
||||
|
||||
|
||||
void FormFloat::apply()
|
||||
{
|
||||
bool const wide = fl_get_button(dialog_->check_wide);
|
||||
bool const sideways = fl_get_button(dialog_->check_sideways);
|
||||
|
||||
string placement;
|
||||
switch (placement_.get()) {
|
||||
@ -152,6 +156,7 @@ void FormFloat::apply()
|
||||
|
||||
controller().params().placement = placement;
|
||||
controller().params().wide = wide;
|
||||
controller().params().sideways = sideways;
|
||||
}
|
||||
|
||||
|
||||
@ -159,6 +164,9 @@ void FormFloat::update()
|
||||
{
|
||||
string placement(controller().params().placement);
|
||||
bool const wide = controller().params().wide;
|
||||
bool const sideways = controller().params().sideways;
|
||||
bool const sideways_possible = (controller().params().type == "figure"
|
||||
|| controller().params().type == "table");
|
||||
|
||||
bool const here_definitely = contains(placement, 'H');
|
||||
|
||||
@ -182,13 +190,18 @@ void FormFloat::update()
|
||||
fl_set_button(dialog_->check_page, page);
|
||||
fl_set_button(dialog_->check_here, here);
|
||||
fl_set_button(dialog_->check_wide, wide);
|
||||
fl_set_button(dialog_->check_sideways, sideways);
|
||||
|
||||
setEnabled(dialog_->radio_here_definitely, !wide);
|
||||
setEnabled(dialog_->check_force, alternatives);
|
||||
setEnabled(dialog_->check_top, alternatives);
|
||||
setEnabled(dialog_->check_bottom, alternatives);
|
||||
setEnabled(dialog_->check_page, alternatives);
|
||||
setEnabled(dialog_->check_here, alternatives && !wide);
|
||||
setEnabled(dialog_->radio_here_definitely, !wide && !sideways);
|
||||
setEnabled(dialog_->check_force, alternatives && !sideways);
|
||||
setEnabled(dialog_->check_top, alternatives && !sideways);
|
||||
setEnabled(dialog_->check_bottom, alternatives && !sideways);
|
||||
setEnabled(dialog_->check_page, alternatives && !sideways);
|
||||
setEnabled(dialog_->check_here, alternatives && !wide && !sideways);
|
||||
setEnabled(dialog_->check_wide, !sideways);
|
||||
setEnabled(dialog_->radio_default, !sideways);
|
||||
setEnabled(dialog_->radio_alternatives, !sideways);
|
||||
setEnabled(dialog_->check_sideways, sideways_possible);
|
||||
}
|
||||
|
||||
|
||||
@ -196,16 +209,17 @@ ButtonPolicy::SMInput FormFloat::input(FL_OBJECT * ob, long)
|
||||
{
|
||||
bool const alternatives = placement_.get() == ALTERNATIVES;
|
||||
bool const wide = fl_get_button(dialog_->check_wide);
|
||||
bool const sideways = fl_get_button(dialog_->check_sideways);
|
||||
|
||||
if (ob == dialog_->radio_default ||
|
||||
ob == dialog_->radio_here_definitely ||
|
||||
ob == dialog_->radio_alternatives) {
|
||||
// enable check buttons only for Alternatives
|
||||
setEnabled(dialog_->check_top, alternatives);
|
||||
setEnabled(dialog_->check_bottom, alternatives);
|
||||
setEnabled(dialog_->check_page, alternatives);
|
||||
// wide float doesn't allow 'here' placement
|
||||
// wide float doesn't allow 'here' or 'bottom' placement
|
||||
setEnabled(dialog_->check_here, alternatives && !wide);
|
||||
setEnabled(dialog_->check_bottom, alternatives && !wide);
|
||||
|
||||
} else if (ob == dialog_->check_wide) {
|
||||
if (wide && placement_.get() == HERE_DEFINITELY) {
|
||||
@ -215,11 +229,23 @@ ButtonPolicy::SMInput FormFloat::input(FL_OBJECT * ob, long)
|
||||
}
|
||||
setEnabled(dialog_->check_here, alternatives && !wide);
|
||||
setEnabled(dialog_->radio_here_definitely, !wide);
|
||||
setEnabled(dialog_->check_bottom, alternatives && !wide);
|
||||
|
||||
} else if (ob == dialog_->check_sideways) {
|
||||
setEnabled(dialog_->radio_default, !sideways);
|
||||
setEnabled(dialog_->radio_alternatives, !sideways);
|
||||
setEnabled(dialog_->radio_here_definitely, !wide && !sideways);
|
||||
setEnabled(dialog_->check_top, alternatives && !sideways);
|
||||
setEnabled(dialog_->check_bottom,
|
||||
alternatives && !wide && !sideways);
|
||||
setEnabled(dialog_->check_page, alternatives && !sideways);
|
||||
setEnabled(dialog_->check_here, alternatives && !wide && !sideways);
|
||||
setEnabled(dialog_->check_wide, !sideways);
|
||||
}
|
||||
|
||||
// enable force button, if Alternatives is selected and at least
|
||||
// one of its check buttons
|
||||
bool const enable_force = alternatives &&
|
||||
bool const enable_force = alternatives && !sideways &&
|
||||
(fl_get_button(dialog_->check_top) ||
|
||||
fl_get_button(dialog_->check_bottom) ||
|
||||
fl_get_button(dialog_->check_page) ||
|
||||
|
@ -10,13 +10,13 @@ SnapGrid: 5
|
||||
=============== FORM ===============
|
||||
Name: form_float
|
||||
Width: 395
|
||||
Height: 260
|
||||
Number of Objects: 17
|
||||
Height: 290
|
||||
Number of Objects: 18
|
||||
|
||||
--------------------
|
||||
class: FL_BOX
|
||||
type: FLAT_BOX
|
||||
box: 0 0 395 260
|
||||
box: 0 0 395 290
|
||||
boxtype: FL_FLAT_BOX
|
||||
colors: FL_COL1 FL_COL1
|
||||
alignment: FL_ALIGN_CENTER
|
||||
@ -124,7 +124,7 @@ argument: 0
|
||||
--------------------
|
||||
class: FL_BUTTON
|
||||
type: NORMAL_BUTTON
|
||||
box: 5 230 90 25
|
||||
box: 5 260 90 25
|
||||
boxtype: FL_UP_BOX
|
||||
colors: FL_COL1 FL_COL1
|
||||
alignment: FL_ALIGN_CENTER
|
||||
@ -142,7 +142,7 @@ argument: 0
|
||||
--------------------
|
||||
class: FL_BUTTON
|
||||
type: RETURN_BUTTON
|
||||
box: 110 230 90 25
|
||||
box: 110 260 90 25
|
||||
boxtype: FL_UP_BOX
|
||||
colors: FL_COL1 FL_COL1
|
||||
alignment: FL_ALIGN_CENTER
|
||||
@ -160,7 +160,7 @@ argument: 0
|
||||
--------------------
|
||||
class: FL_BUTTON
|
||||
type: NORMAL_BUTTON
|
||||
box: 205 230 90 25
|
||||
box: 205 260 90 25
|
||||
boxtype: FL_UP_BOX
|
||||
colors: FL_COL1 FL_COL1
|
||||
alignment: FL_ALIGN_CENTER
|
||||
@ -178,7 +178,7 @@ argument: 0
|
||||
--------------------
|
||||
class: FL_BUTTON
|
||||
type: NORMAL_BUTTON
|
||||
box: 300 230 90 25
|
||||
box: 300 260 90 25
|
||||
boxtype: FL_UP_BOX
|
||||
colors: FL_COL1 FL_COL1
|
||||
alignment: FL_ALIGN_CENTER
|
||||
@ -232,7 +232,7 @@ argument: 0
|
||||
--------------------
|
||||
class: FL_BEGIN_GROUP
|
||||
type: 0
|
||||
box: 0 10 10 0
|
||||
box: 0 0 0 0
|
||||
boxtype: FL_NO_BOX
|
||||
colors: FL_COL1 FL_MCOL
|
||||
alignment: FL_ALIGN_CENTER
|
||||
@ -320,5 +320,23 @@ name:
|
||||
callback:
|
||||
argument:
|
||||
|
||||
--------------------
|
||||
class: FL_CHECKBUTTON
|
||||
type: PUSH_BUTTON
|
||||
box: 5 225 385 25
|
||||
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: Rotate sideways|#o
|
||||
shortcut:
|
||||
resize: FL_RESIZE_NONE
|
||||
gravity: FL_SouthWest FL_SouthWest
|
||||
name: check_sideways
|
||||
callback: C_FormDialogView_InputCB
|
||||
argument: 0
|
||||
|
||||
==============================
|
||||
create_the_forms
|
||||
|
@ -1,3 +1,7 @@
|
||||
2004-03-29 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
||||
|
||||
* insetfloat.[Ch]: add param \sideways {true|false}
|
||||
(support for sideways floats from rotating.sty).
|
||||
|
||||
2004-03-28 Alfredo Braunstein <abraunst@lyx.org>
|
||||
|
||||
|
@ -162,7 +162,9 @@ void InsetFloat::priv_dispatch(LCursor & cur, FuncRequest & cmd)
|
||||
InsetFloatMailer::string2params(cmd.argument, params);
|
||||
params_.placement = params.placement;
|
||||
params_.wide = params.wide;
|
||||
params_.sideways = params.sideways;
|
||||
wide(params_.wide, cur.bv().buffer()->params());
|
||||
sideways(params_.sideways, cur.bv().buffer()->params());
|
||||
cur.bv().update();
|
||||
break;
|
||||
}
|
||||
@ -191,6 +193,11 @@ void InsetFloatParams::write(ostream & os) const
|
||||
os << "wide true\n";
|
||||
else
|
||||
os << "wide false\n";
|
||||
|
||||
if (sideways)
|
||||
os << "sideways true\n";
|
||||
else
|
||||
os << "sideways false\n";
|
||||
}
|
||||
|
||||
|
||||
@ -218,6 +225,18 @@ void InsetFloatParams::read(LyXLex & lex)
|
||||
// take countermeasures
|
||||
lex.pushToken(token);
|
||||
}
|
||||
lex.next();
|
||||
token = lex.getString();
|
||||
if (token == "sideways") {
|
||||
lex.next();
|
||||
string const tmptoken = lex.getString();
|
||||
sideways = (tmptoken == "true");
|
||||
} else {
|
||||
lyxerr << "InsetFloat::Read:: Missing sideways!"
|
||||
<< endl;
|
||||
// take countermeasures
|
||||
lex.pushToken(token);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -233,6 +252,7 @@ void InsetFloat::read(Buffer const & buf, LyXLex & lex)
|
||||
{
|
||||
params_.read(lex);
|
||||
wide(params_.wide, buf.params());
|
||||
sideways(params_.sideways, buf.params());
|
||||
InsetCollapsable::read(buf, lex);
|
||||
}
|
||||
|
||||
@ -242,6 +262,9 @@ void InsetFloat::validate(LaTeXFeatures & features) const
|
||||
if (contains(params_.placement, 'H')) {
|
||||
features.require("float");
|
||||
}
|
||||
|
||||
if (params_.sideways)
|
||||
features.require("rotating");
|
||||
|
||||
features.useFloat(params_.type);
|
||||
InsetCollapsable::validate(features);
|
||||
@ -264,7 +287,13 @@ int InsetFloat::latex(Buffer const & buf, ostream & os,
|
||||
OutputParams const & runparams) const
|
||||
{
|
||||
FloatList const & floats = buf.params().getLyXTextClass().floats();
|
||||
string const tmptype = (params_.wide ? params_.type + "*" : params_.type);
|
||||
string tmptype = (params_.wide ? params_.type + "*" : params_.type);
|
||||
if (params_.sideways) {
|
||||
if (params_.type == "table")
|
||||
tmptype = "sidewaystable";
|
||||
else if (params_.type == "figure")
|
||||
tmptype = "sidewaysfigure";
|
||||
}
|
||||
// Figure out the float placement to use.
|
||||
// From lowest to highest:
|
||||
// - float default placement
|
||||
@ -287,7 +316,8 @@ int InsetFloat::latex(Buffer const & buf, ostream & os,
|
||||
// when the current output line is empty.
|
||||
os << "%\n\\begin{" << tmptype << '}';
|
||||
// We only output placement if different from the def_placement.
|
||||
if (!placement.empty()) {
|
||||
// sidewaysfloats always use their own page
|
||||
if (!placement.empty() && !params_.sideways) {
|
||||
os << '[' << placement << ']';
|
||||
}
|
||||
os << '\n';
|
||||
@ -377,6 +407,16 @@ void InsetFloat::wide(bool w, BufferParams const & bp)
|
||||
}
|
||||
|
||||
|
||||
void InsetFloat::sideways(bool s, BufferParams const & bp)
|
||||
{
|
||||
params_.sideways = s;
|
||||
string lab = _("float: ") + floatname(params_.type, bp);
|
||||
if (params_.sideways)
|
||||
lab += _(" (sideways)");
|
||||
setLabel(lab);
|
||||
}
|
||||
|
||||
|
||||
void InsetFloat::addToToc(lyx::toc::TocList & toclist, Buffer const & buf) const
|
||||
{
|
||||
ParConstIterator pit(*this, 0);
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
struct InsetFloatParams {
|
||||
///
|
||||
InsetFloatParams() : wide(false) {}
|
||||
InsetFloatParams() : wide(false), sideways(false) {}
|
||||
///
|
||||
void write(std::ostream & os) const;
|
||||
///
|
||||
@ -30,6 +30,8 @@ struct InsetFloatParams {
|
||||
std::string placement;
|
||||
///
|
||||
bool wide;
|
||||
///
|
||||
bool sideways;
|
||||
};
|
||||
|
||||
|
||||
@ -72,6 +74,8 @@ public:
|
||||
///
|
||||
void wide(bool w, BufferParams const &);
|
||||
///
|
||||
void sideways(bool s, BufferParams const &);
|
||||
///
|
||||
void addToToc(lyx::toc::TocList &, Buffer const &) const;
|
||||
///
|
||||
bool showInsetDialog(BufferView *) const;
|
||||
|
Loading…
Reference in New Issue
Block a user