mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
- support for longtable alignment, fileformat change
- GUI support for table alignment (all comments to the polished layout of the table dialog welcome) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30477 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
fa76010250
commit
424943af89
@ -1,6 +1,10 @@
|
|||||||
LyX file-format changes
|
LyX file-format changes
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
2009-07-11 Uwe Stöhr <uwestoehr@web.de>
|
||||||
|
* Format incremented to 363: support for horizontal longtable
|
||||||
|
alignment.
|
||||||
|
|
||||||
2009-06-11 Jürgen Spitzmüller <spitz@lyx.org>
|
2009-06-11 Jürgen Spitzmüller <spitz@lyx.org>
|
||||||
* Format incremented to 362: support for the applemac encoding.
|
* Format incremented to 362: support for the applemac encoding.
|
||||||
|
|
||||||
|
@ -727,6 +727,23 @@ def revert_applemac(document):
|
|||||||
document.header[i] = "\\encoding auto"
|
document.header[i] = "\\encoding auto"
|
||||||
|
|
||||||
|
|
||||||
|
def revert_longtable_align(document):
|
||||||
|
" Remove longtable alignment setting "
|
||||||
|
i = 0
|
||||||
|
j = 0
|
||||||
|
while True:
|
||||||
|
i = find_token(document.body, "\\begin_inset Tabular", i)
|
||||||
|
if i == -1:
|
||||||
|
break
|
||||||
|
# the alignment is 2 lines below \\begin_inset Tabular
|
||||||
|
j = document.body[i+2].find("longtabularalignment")
|
||||||
|
if j == -1:
|
||||||
|
break
|
||||||
|
document.body[i+2] = document.body[i+2][:j-1]
|
||||||
|
document.body[i+2] = document.body[i+2] + '>'
|
||||||
|
i = i + 1
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Conversion hub
|
# Conversion hub
|
||||||
#
|
#
|
||||||
@ -748,10 +765,12 @@ convert = [[346, []],
|
|||||||
[359, [convert_nomencl_width]],
|
[359, [convert_nomencl_width]],
|
||||||
[360, []],
|
[360, []],
|
||||||
[361, []],
|
[361, []],
|
||||||
[362, []]
|
[362, []],
|
||||||
|
[363, []]
|
||||||
]
|
]
|
||||||
|
|
||||||
revert = [[361, [revert_applemac]],
|
revert = [[362, [revert_longtable_align]],
|
||||||
|
[361, [revert_applemac]],
|
||||||
[360, []],
|
[360, []],
|
||||||
[359, [revert_nomencl_cwidth]],
|
[359, [revert_nomencl_cwidth]],
|
||||||
[358, [revert_nomencl_width]],
|
[358, [revert_nomencl_width]],
|
||||||
|
@ -127,7 +127,7 @@ namespace {
|
|||||||
|
|
||||||
// Do not remove the comment below, so we get merge conflict in
|
// Do not remove the comment below, so we get merge conflict in
|
||||||
// independent branches. Instead add your own.
|
// independent branches. Instead add your own.
|
||||||
int const LYX_FORMAT = 362; // jspitzm: support applemac encoding
|
int const LYX_FORMAT = 363; // uwestoehr: support for longtable alignment
|
||||||
|
|
||||||
typedef map<string, bool> DepClean;
|
typedef map<string, bool> DepClean;
|
||||||
typedef map<docstring, pair<InsetLabel const *, Buffer::References> > RefCache;
|
typedef map<docstring, pair<InsetLabel const *, Buffer::References> > RefCache;
|
||||||
|
@ -2045,9 +2045,10 @@ void LyXAction::init()
|
|||||||
* \li Params: <FEATURE>: append-row|append-column|delete-row|delete-column|copy-row|copy-column|
|
* \li Params: <FEATURE>: append-row|append-column|delete-row|delete-column|copy-row|copy-column|
|
||||||
toggle-line-top|toggle-line-bottom|toggle-line-left|toggle-line-right|
|
toggle-line-top|toggle-line-bottom|toggle-line-left|toggle-line-right|
|
||||||
align-left|align-right|align-center|align-block|valign-top|valign-bottom|
|
align-left|align-right|align-center|align-block|valign-top|valign-bottom|
|
||||||
valign-middle|m-align-left|m-align-right|m-align-center|m-valign-top|
|
valign-middle|longtabular-align-left|longtabular-align-center|
|
||||||
m-valign-bottom|m-valign-middle|multicolumn|set-all-lines|unset-all-lines|
|
longtabular-align-right|m-align-left|m-align-right|m-align-center|
|
||||||
set-longtabular|unset-longtabular|set-pwidth|set-mpwidth|
|
m-valign-top|m-valign-bottom|m-valign-middle|multicolumn|set-all-lines|
|
||||||
|
unset-all-lines|set-longtabular|unset-longtabular|set-pwidth|set-mpwidth|
|
||||||
set-rotate-tabular|unset-rotate-tabular|toggle-rotate-tabular|
|
set-rotate-tabular|unset-rotate-tabular|toggle-rotate-tabular|
|
||||||
set-rotate-cell|unset-rotate-cell|toggle-rotate-cell|set-usebox|set-lthead|
|
set-rotate-cell|unset-rotate-cell|toggle-rotate-cell|set-usebox|set-lthead|
|
||||||
unset-lthead|set-ltfirsthead|unset-ltfirsthead|set-ltfoot|unset-ltfoot|
|
unset-lthead|set-ltfirsthead|unset-ltfirsthead|set-ltfoot|unset-ltfoot|
|
||||||
|
@ -82,6 +82,8 @@ GuiTabular::GuiTabular(GuiView & lv)
|
|||||||
longtableGB, SLOT(setEnabled(bool)));
|
longtableGB, SLOT(setEnabled(bool)));
|
||||||
connect(longTabularCB, SIGNAL(toggled(bool)),
|
connect(longTabularCB, SIGNAL(toggled(bool)),
|
||||||
newpageCB, SLOT(setEnabled(bool)));
|
newpageCB, SLOT(setEnabled(bool)));
|
||||||
|
connect(longTabularCB, SIGNAL(toggled(bool)),
|
||||||
|
alignmentGB, SLOT(setEnabled(bool)));
|
||||||
connect(hAlignCB, SIGNAL(activated(int)),
|
connect(hAlignCB, SIGNAL(activated(int)),
|
||||||
this, SLOT(hAlign_changed(int)));
|
this, SLOT(hAlign_changed(int)));
|
||||||
connect(vAlignCB, SIGNAL(activated(int)),
|
connect(vAlignCB, SIGNAL(activated(int)),
|
||||||
@ -138,9 +140,17 @@ GuiTabular::GuiTabular(GuiView & lv)
|
|||||||
this, SLOT(rotateTabular()));
|
this, SLOT(rotateTabular()));
|
||||||
connect(rotateCellCB, SIGNAL(clicked()),
|
connect(rotateCellCB, SIGNAL(clicked()),
|
||||||
this, SLOT(rotateCell()));
|
this, SLOT(rotateCell()));
|
||||||
|
connect(TableAlignCB, SIGNAL(activated(int)),
|
||||||
|
this, SLOT(tableAlignment_changed(int)));
|
||||||
connect(longTabularCB, SIGNAL(clicked()),
|
connect(longTabularCB, SIGNAL(clicked()),
|
||||||
this, SLOT(longTabular()));
|
this, SLOT(longTabular()));
|
||||||
|
connect(leftRB, SIGNAL(clicked()),
|
||||||
|
this, SLOT(ltAlignment_clicked()));
|
||||||
|
connect(centerRB, SIGNAL(clicked()),
|
||||||
|
this, SLOT(ltAlignment_clicked()));
|
||||||
|
connect(rightRB, SIGNAL(clicked()),
|
||||||
|
this, SLOT(ltAlignment_clicked()));
|
||||||
|
|
||||||
bc().setPolicy(ButtonPolicy::IgnorantPolicy);
|
bc().setPolicy(ButtonPolicy::IgnorantPolicy);
|
||||||
|
|
||||||
bc().addReadOnly(topspaceED);
|
bc().addReadOnly(topspaceED);
|
||||||
@ -163,6 +173,7 @@ GuiTabular::GuiTabular(GuiView & lv)
|
|||||||
bc().addReadOnly(widthUnit);
|
bc().addReadOnly(widthUnit);
|
||||||
bc().addReadOnly(hAlignCB);
|
bc().addReadOnly(hAlignCB);
|
||||||
bc().addReadOnly(vAlignCB);
|
bc().addReadOnly(vAlignCB);
|
||||||
|
bc().addReadOnly(TableAlignCB);
|
||||||
bc().addReadOnly(borderSetPB);
|
bc().addReadOnly(borderSetPB);
|
||||||
bc().addReadOnly(borderUnsetPB);
|
bc().addReadOnly(borderUnsetPB);
|
||||||
bc().addReadOnly(borders);
|
bc().addReadOnly(borders);
|
||||||
@ -182,7 +193,10 @@ GuiTabular::GuiTabular(GuiView & lv)
|
|||||||
bc().addReadOnly(lastfooterBorderBelowCB);
|
bc().addReadOnly(lastfooterBorderBelowCB);
|
||||||
bc().addReadOnly(lastfooterNoContentsCB);
|
bc().addReadOnly(lastfooterNoContentsCB);
|
||||||
bc().addReadOnly(newpageCB);
|
bc().addReadOnly(newpageCB);
|
||||||
|
bc().addReadOnly(leftRB);
|
||||||
|
bc().addReadOnly(centerRB);
|
||||||
|
bc().addReadOnly(rightRB);
|
||||||
|
|
||||||
// initialize the length validator
|
// initialize the length validator
|
||||||
bc().addCheckedLineEdit(widthED, fixedWidthColLA);
|
bc().addCheckedLineEdit(widthED, fixedWidthColLA);
|
||||||
bc().addCheckedLineEdit(topspaceED, topspaceLA);
|
bc().addCheckedLineEdit(topspaceED, topspaceLA);
|
||||||
@ -420,6 +434,19 @@ void GuiTabular::vAlign_changed(int align)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GuiTabular::tableAlignment_changed(int align)
|
||||||
|
{
|
||||||
|
switch (align) {
|
||||||
|
case 0: set(Tabular::TABULAR_VALIGN_TOP);
|
||||||
|
break;
|
||||||
|
case 1: set(Tabular::TABULAR_VALIGN_MIDDLE);
|
||||||
|
break;
|
||||||
|
case 2: set(Tabular::TABULAR_VALIGN_BOTTOM);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void GuiTabular::longTabular()
|
void GuiTabular::longTabular()
|
||||||
{
|
{
|
||||||
longTabular(longTabularCB->isChecked());
|
longTabular(longTabularCB->isChecked());
|
||||||
@ -587,6 +614,18 @@ void GuiTabular::ltLastFooterEmpty_clicked()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GuiTabular::ltAlignment_clicked()
|
||||||
|
{
|
||||||
|
if (leftRB->isChecked())
|
||||||
|
set(Tabular::LONGTABULAR_ALIGN_LEFT);
|
||||||
|
else if (centerRB->isChecked())
|
||||||
|
set(Tabular::LONGTABULAR_ALIGN_CENTER);
|
||||||
|
else if (rightRB->isChecked())
|
||||||
|
set(Tabular::LONGTABULAR_ALIGN_RIGHT);
|
||||||
|
changed();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void GuiTabular::update_borders()
|
void GuiTabular::update_borders()
|
||||||
{
|
{
|
||||||
Tabular::idx_type const cell = getActiveCell();
|
Tabular::idx_type const cell = getActiveCell();
|
||||||
@ -787,6 +826,23 @@ void GuiTabular::updateContents()
|
|||||||
hAlignCB->setEnabled(true);
|
hAlignCB->setEnabled(true);
|
||||||
vAlignCB->setEnabled(!pwidth.zero());
|
vAlignCB->setEnabled(!pwidth.zero());
|
||||||
|
|
||||||
|
int tableValign = 0;
|
||||||
|
switch (tabular_.tabular_valignment) {
|
||||||
|
case Tabular::LYX_VALIGN_TOP:
|
||||||
|
tableValign = 0;
|
||||||
|
break;
|
||||||
|
case Tabular::LYX_VALIGN_MIDDLE:
|
||||||
|
tableValign = 1;
|
||||||
|
break;
|
||||||
|
case Tabular::LYX_VALIGN_BOTTOM:
|
||||||
|
tableValign = 2;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
tableValign = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
TableAlignCB->setCurrentIndex(tableValign);
|
||||||
|
|
||||||
if (!tabular_.is_long_tabular) {
|
if (!tabular_.is_long_tabular) {
|
||||||
headerStatusCB->setChecked(false);
|
headerStatusCB->setChecked(false);
|
||||||
headerBorderAboveCB->setChecked(false);
|
headerBorderAboveCB->setChecked(false);
|
||||||
@ -809,6 +865,21 @@ void GuiTabular::updateContents()
|
|||||||
captionStatusCB->blockSignals(false);
|
captionStatusCB->blockSignals(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (tabular_.longtabular_alignment) {
|
||||||
|
case Tabular::LYX_LONGTABULAR_ALIGN_LEFT:
|
||||||
|
leftRB->setChecked(true);
|
||||||
|
break;
|
||||||
|
case Tabular::LYX_LONGTABULAR_ALIGN_CENTER:
|
||||||
|
centerRB->setChecked(true);
|
||||||
|
break;
|
||||||
|
case Tabular::LYX_LONGTABULAR_ALIGN_RIGHT:
|
||||||
|
rightRB->setChecked(true);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
centerRB->setChecked(true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
captionStatusCB->blockSignals(true);
|
captionStatusCB->blockSignals(true);
|
||||||
captionStatusCB->setChecked(tabular_.ltCaption(row));
|
captionStatusCB->setChecked(tabular_.ltCaption(row));
|
||||||
captionStatusCB->blockSignals(false);
|
captionStatusCB->blockSignals(false);
|
||||||
|
@ -49,6 +49,7 @@ private Q_SLOTS:
|
|||||||
void rotateCell();
|
void rotateCell();
|
||||||
void hAlign_changed(int align);
|
void hAlign_changed(int align);
|
||||||
void vAlign_changed(int align);
|
void vAlign_changed(int align);
|
||||||
|
void tableAlignment_changed(int align);
|
||||||
void specialAlignment_changed();
|
void specialAlignment_changed();
|
||||||
void width_changed();
|
void width_changed();
|
||||||
void longTabular();
|
void longTabular();
|
||||||
@ -67,6 +68,7 @@ private Q_SLOTS:
|
|||||||
void ltLastFooterBorderAbove_clicked();
|
void ltLastFooterBorderAbove_clicked();
|
||||||
void ltLastFooterBorderBelow_clicked();
|
void ltLastFooterBorderBelow_clicked();
|
||||||
void ltLastFooterEmpty_clicked();
|
void ltLastFooterEmpty_clicked();
|
||||||
|
void ltAlignment_clicked();
|
||||||
void on_captionStatusCB_toggled();
|
void on_captionStatusCB_toggled();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -163,6 +163,9 @@ TabularFeature tabularFeature[] =
|
|||||||
{ Tabular::TABULAR_VALIGN_TOP, "tabular-valign-top"},
|
{ Tabular::TABULAR_VALIGN_TOP, "tabular-valign-top"},
|
||||||
{ Tabular::TABULAR_VALIGN_MIDDLE, "tabular-valign-middle"},
|
{ Tabular::TABULAR_VALIGN_MIDDLE, "tabular-valign-middle"},
|
||||||
{ Tabular::TABULAR_VALIGN_BOTTOM, "tabular-valign-bottom"},
|
{ Tabular::TABULAR_VALIGN_BOTTOM, "tabular-valign-bottom"},
|
||||||
|
{ Tabular::LONGTABULAR_ALIGN_LEFT, "longtabular-align-left" },
|
||||||
|
{ Tabular::LONGTABULAR_ALIGN_CENTER, "longtabular-align-center" },
|
||||||
|
{ Tabular::LONGTABULAR_ALIGN_RIGHT, "longtabular-align-right" },
|
||||||
{ Tabular::LAST_ACTION, "" }
|
{ Tabular::LAST_ACTION, "" }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -257,6 +260,20 @@ string const tostr(LyXAlignment const & num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string const tostr(Tabular::HAlignment const & num)
|
||||||
|
{
|
||||||
|
switch (num) {
|
||||||
|
case Tabular::LYX_LONGTABULAR_ALIGN_LEFT:
|
||||||
|
return "left";
|
||||||
|
case Tabular::LYX_LONGTABULAR_ALIGN_CENTER:
|
||||||
|
return "center";
|
||||||
|
case Tabular::LYX_LONGTABULAR_ALIGN_RIGHT:
|
||||||
|
return "right";
|
||||||
|
}
|
||||||
|
return string();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
string const tostr(Tabular::VAlignment const & num)
|
string const tostr(Tabular::VAlignment const & num)
|
||||||
{
|
{
|
||||||
switch (num) {
|
switch (num) {
|
||||||
@ -304,6 +321,20 @@ bool string2type(string const str, LyXAlignment & num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool string2type(string const str, Tabular::HAlignment & num)
|
||||||
|
{
|
||||||
|
if (str == "left")
|
||||||
|
num = Tabular::LYX_LONGTABULAR_ALIGN_LEFT;
|
||||||
|
else if (str == "center" )
|
||||||
|
num = Tabular::LYX_LONGTABULAR_ALIGN_CENTER;
|
||||||
|
else if (str == "right")
|
||||||
|
num = Tabular::LYX_LONGTABULAR_ALIGN_RIGHT;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool string2type(string const str, Tabular::VAlignment & num)
|
bool string2type(string const str, Tabular::VAlignment & num)
|
||||||
{
|
{
|
||||||
if (str == "top")
|
if (str == "top")
|
||||||
@ -393,6 +424,14 @@ bool getTokenValue(string const & str, char const * token, LyXAlignment & num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool getTokenValue(string const & str, char const * token,
|
||||||
|
Tabular::HAlignment & num)
|
||||||
|
{
|
||||||
|
string tmp;
|
||||||
|
return getTokenValue(str, token, tmp) && string2type(tmp, num);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool getTokenValue(string const & str, char const * token,
|
bool getTokenValue(string const & str, char const * token,
|
||||||
Tabular::VAlignment & num)
|
Tabular::VAlignment & num)
|
||||||
{
|
{
|
||||||
@ -598,6 +637,7 @@ void Tabular::init(Buffer & buf, row_type rows_arg,
|
|||||||
updateIndexes();
|
updateIndexes();
|
||||||
is_long_tabular = false;
|
is_long_tabular = false;
|
||||||
tabular_valignment = LYX_VALIGN_MIDDLE;
|
tabular_valignment = LYX_VALIGN_MIDDLE;
|
||||||
|
longtabular_alignment = LYX_LONGTABULAR_ALIGN_CENTER;
|
||||||
rotate = false;
|
rotate = false;
|
||||||
use_booktabs = false;
|
use_booktabs = false;
|
||||||
size_t row_count = row_info.size();
|
size_t row_count = row_info.size();
|
||||||
@ -1288,6 +1328,7 @@ void Tabular::write(ostream & os) const
|
|||||||
<< write_attribute("booktabs", use_booktabs)
|
<< write_attribute("booktabs", use_booktabs)
|
||||||
<< write_attribute("islongtable", is_long_tabular)
|
<< write_attribute("islongtable", is_long_tabular)
|
||||||
<< write_attribute("tabularvalignment", tabular_valignment)
|
<< write_attribute("tabularvalignment", tabular_valignment)
|
||||||
|
<< write_attribute("longtabularalignment", longtabular_alignment)
|
||||||
<< write_attribute("firstHeadTopDL", endfirsthead.topDL)
|
<< write_attribute("firstHeadTopDL", endfirsthead.topDL)
|
||||||
<< write_attribute("firstHeadBottomDL", endfirsthead.bottomDL)
|
<< write_attribute("firstHeadBottomDL", endfirsthead.bottomDL)
|
||||||
<< write_attribute("firstHeadEmpty", endfirsthead.empty)
|
<< write_attribute("firstHeadEmpty", endfirsthead.empty)
|
||||||
@ -1387,6 +1428,7 @@ void Tabular::read(Lexer & lex)
|
|||||||
getTokenValue(line, "booktabs", use_booktabs);
|
getTokenValue(line, "booktabs", use_booktabs);
|
||||||
getTokenValue(line, "islongtable", is_long_tabular);
|
getTokenValue(line, "islongtable", is_long_tabular);
|
||||||
getTokenValue(line, "tabularvalignment", tabular_valignment);
|
getTokenValue(line, "tabularvalignment", tabular_valignment);
|
||||||
|
getTokenValue(line, "longtabularalignment", longtabular_alignment);
|
||||||
getTokenValue(line, "firstHeadTopDL", endfirsthead.topDL);
|
getTokenValue(line, "firstHeadTopDL", endfirsthead.topDL);
|
||||||
getTokenValue(line, "firstHeadBottomDL", endfirsthead.bottomDL);
|
getTokenValue(line, "firstHeadBottomDL", endfirsthead.bottomDL);
|
||||||
getTokenValue(line, "firstHeadEmpty", endfirsthead.empty);
|
getTokenValue(line, "firstHeadEmpty", endfirsthead.empty);
|
||||||
@ -2313,20 +2355,30 @@ int Tabular::latex(odocstream & os, OutputParams const & runparams) const
|
|||||||
os << "\\begin{sideways}\n";
|
os << "\\begin{sideways}\n";
|
||||||
++ret;
|
++ret;
|
||||||
}
|
}
|
||||||
if (is_long_tabular)
|
if (is_long_tabular) {
|
||||||
os << "\\begin{longtable}";
|
os << "\\begin{longtable}";
|
||||||
else
|
switch (longtabular_alignment) {
|
||||||
|
case LYX_LONGTABULAR_ALIGN_LEFT:
|
||||||
|
os << "[l]";
|
||||||
|
break;
|
||||||
|
case LYX_LONGTABULAR_ALIGN_CENTER:
|
||||||
|
break;
|
||||||
|
case LYX_LONGTABULAR_ALIGN_RIGHT:
|
||||||
|
os << "[r]";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
os << "\\begin{tabular}";
|
os << "\\begin{tabular}";
|
||||||
|
switch (tabular_valignment) {
|
||||||
switch (tabular_valignment) {
|
|
||||||
case LYX_VALIGN_TOP:
|
case LYX_VALIGN_TOP:
|
||||||
os << "[t]";
|
os << "[t]";
|
||||||
break;
|
break;
|
||||||
|
case LYX_VALIGN_MIDDLE:
|
||||||
|
break;
|
||||||
case LYX_VALIGN_BOTTOM:
|
case LYX_VALIGN_BOTTOM:
|
||||||
os << "[b]";
|
os << "[b]";
|
||||||
break;
|
break;
|
||||||
case LYX_VALIGN_MIDDLE:
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
os << "{";
|
os << "{";
|
||||||
@ -3083,7 +3135,7 @@ void InsetTabular::draw(PainterInfo & pi, int x, int y) const
|
|||||||
BufferView * bv = pi.base.bv;
|
BufferView * bv = pi.base.bv;
|
||||||
Cursor & cur = pi.base.bv->cursor();
|
Cursor & cur = pi.base.bv->cursor();
|
||||||
|
|
||||||
// FIXME: As the full backrgound is painted in drawSelection(),
|
// FIXME: As the full background is painted in drawSelection(),
|
||||||
// we have no choice but to do a full repaint for the Text cells.
|
// we have no choice but to do a full repaint for the Text cells.
|
||||||
pi.full_repaint = true;
|
pi.full_repaint = true;
|
||||||
|
|
||||||
@ -3915,6 +3967,19 @@ bool InsetTabular::getStatus(Cursor & cur, FuncRequest const & cmd,
|
|||||||
== Tabular::LYX_VALIGN_BOTTOM);
|
== Tabular::LYX_VALIGN_BOTTOM);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case Tabular::LONGTABULAR_ALIGN_LEFT:
|
||||||
|
status.setOnOff(tabular.longtabular_alignment
|
||||||
|
== Tabular::LYX_LONGTABULAR_ALIGN_LEFT);
|
||||||
|
break;
|
||||||
|
case Tabular::LONGTABULAR_ALIGN_CENTER:
|
||||||
|
status.setOnOff(tabular.longtabular_alignment
|
||||||
|
== Tabular::LYX_LONGTABULAR_ALIGN_CENTER);
|
||||||
|
break;
|
||||||
|
case Tabular::LONGTABULAR_ALIGN_RIGHT:
|
||||||
|
status.setOnOff(tabular.longtabular_alignment
|
||||||
|
== Tabular::LYX_LONGTABULAR_ALIGN_RIGHT);
|
||||||
|
break;
|
||||||
|
|
||||||
case Tabular::UNSET_ROTATE_TABULAR:
|
case Tabular::UNSET_ROTATE_TABULAR:
|
||||||
status.setOnOff(!tabular.rotate);
|
status.setOnOff(!tabular.rotate);
|
||||||
break;
|
break;
|
||||||
@ -4091,6 +4156,22 @@ bool InsetTabular::getStatus(Cursor & cur, FuncRequest const & cmd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Inset::DisplayType InsetTabular::display() const
|
||||||
|
{
|
||||||
|
if (tabular.is_long_tabular) {
|
||||||
|
switch (tabular.longtabular_alignment) {
|
||||||
|
case Tabular::LYX_LONGTABULAR_ALIGN_LEFT:
|
||||||
|
return AlignLeft;
|
||||||
|
case Tabular::LYX_LONGTABULAR_ALIGN_CENTER:
|
||||||
|
return AlignCenter;
|
||||||
|
case Tabular::LYX_LONGTABULAR_ALIGN_RIGHT:
|
||||||
|
return AlignRight;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
return Inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int InsetTabular::latex(odocstream & os, OutputParams const & runparams) const
|
int InsetTabular::latex(odocstream & os, OutputParams const & runparams) const
|
||||||
{
|
{
|
||||||
return tabular.latex(os, runparams);
|
return tabular.latex(os, runparams);
|
||||||
@ -4703,6 +4784,20 @@ void InsetTabular::tabularFeatures(Cursor & cur,
|
|||||||
tabular.tabular_valignment = Tabular::LYX_VALIGN_BOTTOM;
|
tabular.tabular_valignment = Tabular::LYX_VALIGN_BOTTOM;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case Tabular::LONGTABULAR_ALIGN_LEFT:
|
||||||
|
tabular.longtabular_alignment = Tabular::LYX_LONGTABULAR_ALIGN_LEFT;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Tabular::LONGTABULAR_ALIGN_CENTER:
|
||||||
|
tabular.longtabular_alignment = Tabular::LYX_LONGTABULAR_ALIGN_CENTER;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Tabular::LONGTABULAR_ALIGN_RIGHT:
|
||||||
|
tabular.longtabular_alignment = Tabular::LYX_LONGTABULAR_ALIGN_RIGHT;
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
case Tabular::SET_ROTATE_CELL:
|
case Tabular::SET_ROTATE_CELL:
|
||||||
for (row_type i = sel_row_start; i <= sel_row_end; ++i)
|
for (row_type i = sel_row_start; i <= sel_row_end; ++i)
|
||||||
for (col_type j = sel_col_start; j <= sel_col_end; ++j)
|
for (col_type j = sel_col_start; j <= sel_col_end; ++j)
|
||||||
|
@ -184,6 +184,12 @@ public:
|
|||||||
///
|
///
|
||||||
TABULAR_VALIGN_BOTTOM,
|
TABULAR_VALIGN_BOTTOM,
|
||||||
///
|
///
|
||||||
|
LONGTABULAR_ALIGN_LEFT,
|
||||||
|
///
|
||||||
|
LONGTABULAR_ALIGN_CENTER,
|
||||||
|
///
|
||||||
|
LONGTABULAR_ALIGN_RIGHT,
|
||||||
|
///
|
||||||
LAST_ACTION
|
LAST_ACTION
|
||||||
};
|
};
|
||||||
///
|
///
|
||||||
@ -205,6 +211,15 @@ public:
|
|||||||
///
|
///
|
||||||
LYX_VALIGN_MIDDLE = 2
|
LYX_VALIGN_MIDDLE = 2
|
||||||
};
|
};
|
||||||
|
///
|
||||||
|
enum HAlignment {
|
||||||
|
///
|
||||||
|
LYX_LONGTABULAR_ALIGN_LEFT = 0,
|
||||||
|
///
|
||||||
|
LYX_LONGTABULAR_ALIGN_CENTER = 1,
|
||||||
|
///
|
||||||
|
LYX_LONGTABULAR_ALIGN_RIGHT = 2
|
||||||
|
};
|
||||||
|
|
||||||
enum BoxType {
|
enum BoxType {
|
||||||
///
|
///
|
||||||
@ -569,6 +584,8 @@ public:
|
|||||||
VAlignment tabular_valignment;
|
VAlignment tabular_valignment;
|
||||||
//
|
//
|
||||||
// for long tabulars
|
// for long tabulars
|
||||||
|
///
|
||||||
|
HAlignment longtabular_alignment;
|
||||||
//
|
//
|
||||||
bool is_long_tabular;
|
bool is_long_tabular;
|
||||||
/// endhead data
|
/// endhead data
|
||||||
@ -750,7 +767,7 @@ public:
|
|||||||
insets that may contain several paragraphs */
|
insets that may contain several paragraphs */
|
||||||
bool noFontChange() const { return true; }
|
bool noFontChange() const { return true; }
|
||||||
///
|
///
|
||||||
DisplayType display() const { return tabular.is_long_tabular ? AlignCenter : Inline; }
|
DisplayType display() const;
|
||||||
///
|
///
|
||||||
int latex(odocstream &, OutputParams const &) const;
|
int latex(odocstream &, OutputParams const &) const;
|
||||||
///
|
///
|
||||||
|
Loading…
Reference in New Issue
Block a user