LyX file-format changes
-----------------------
+2006-07-03 Georg Baum <Georg.Baum@post.rwth-aachen.de>
+
+ * format incremented to 248: Basic booktabs support
+
+ The <features> tag has a new switch: booktabs="true|false".
+ An absent switch is equivalent to booktabs="false".
+ Horizontal lines are set with the booktabs package if this switch
+ is on.
+
+ The <row> tag of tabulars has the following new attributes:
+ topspace, bottomspace and interlinespace. All take a LyXLength
+ as value, or the special keyword "default".
+
2006-06-10 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
* format incremented to 247. The Grand Font Interface Rewrite.
* configure.m4: check for more viewers and editors
+2004-11-11 Georg Baum <Georg.Baum@post.rwth-aachen.de>
+
+ * chkconfig.ltx: check package booktabs
+
2004-11-05 Bennett Helm <bennett.helm@fandm.edu>
* bind/mac.bind: use <cmd>-Tab and <cmd>-backtab as shortcuts for
\TestPackage{array}
\TestPackage{babel}
\TestPackage{bibtopic}
+\TestPackage{booktabs}
\TestPackage{color} % this one should be there if graphics.sty is there.
\TestPackage{dvipost}
\TestPackage{fancybox}
* Customization.lyx: document OptionalArgs
+2004-11-11 Georg Baum <Georg.Baum@post.rwth-aachen.de>
+
+ * LaTeXConfig.lyx.in, LyXConfig.lyx.in: add booktabs package
+
2004-11-04 Christian Ridderström <chr@home.se>
* LaTeXConfig.lyx.in: remove "supported" and "other" from CTAN
is needed by LyX to be able to output correctly multipage tables.
\end_layout
+\begin_layout Subsection
+booktabs
+\end_layout
+
+\begin_layout Description
+
+Found: @chk_booktabs@
+\end_layout
+
+\begin_layout Description
+
+CTAN:
+\family typewriter
+macros/latex/contrib/booktabs/
+\end_layout
+
+\begin_layout Description
+
+Notes: The package
+\family sans
+booktabs
+\family default
+ is needed by LyX to be able to output correctly formal tables.
+\end_layout
+
\begin_layout Subsection
varioref
\end_layout
if you want to use non-English quotes.
\layout Subsection
+booktabs
+\layout Description
+
+Found: @chk_booktabs@
+\layout Description
+
+CTAN:
+\family typewriter
+macros/latex/contrib/booktabs/
+\layout Description
+
+Notes: The package
+\family sans
+booktabs
+\family default
+ is needed by LyX to be able to output correctly formal tables.
+\layout Subsection
+
color
\layout Description
+2006-03-14 Georg Baum <Georg.Baum@post.rwth-aachen.de>
+
+ * lyx_1_5.py: new file, handle new format 246
+ * LyX.py: handle new format 246
+ * lyx_1_4.py (revert_booktabs): move to lyx_1_5.py
+
2006-03-06 José Matos <jamatos@lyx.org>
* lyx_1_4.py (remove_paperpackage): Only reset the papersize for
* lyx_1_4.py: unify the call convention of convertion
functions. Now they all accept a file.
+2004-12-06 Georg Baum <Georg.Baum@post.rwth-aachen.de>
+
+ * lyx_1_4.py, LyX.py: handle new format 239
+ * lyx_1_4.py (revert_booktabs): move to 239 -> 238 conversion
+
2004-12-03 José Matos <jamatos@lyx.org>
* LyX.py: format up to 238.
* lyx_1_2.py (convert): rename opt to file, as in all other files.
+2004-12-06 Georg Baum <Georg.Baum@post.rwth-aachen.de>
+
+ * lyx_1_4.py, LyX.py: handle new format 238
+ * lyx_1_4.py (revert_booktabs): new
+
2004-10-28 José Matos <jamatos@lyx.org>
* LyX.pm: add internal documentation.
("1_1_6", [217], ["1.1.6","1.1.6fix1","1.1.6fix2","1.1"]),
("1_1_6fix3", [218], ["1.1.6fix3","1.1.6fix4","1.1"]),
("1_2", [220], ["1.2.0","1.2.1","1.2.3","1.2.4","1.2"]),
- ("1_3", [221], ["1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3"]),
+ ("1_3", [221], ["1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3"]),
("1_4", range(222,246), ["1.4.0", "1.4.1", "1.4.2svn"]),
- ("1_5", range(246,248), ["1.5.0svn"])]
+ ("1_5", range(246,249), ["1.5.0svn","1.5"])]
def formats_list():
# This file is part of lyx2lyx
# -*- coding: iso-8859-1 -*-
# Copyright (C) 2006 José Matos <jamatos@lyx.org>
+# Copyright (C) 2004-2006 Georg Baum <Georg.Baum@post.rwth-aachen.de>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms 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.
-from parser_tools import find_token_exact, find_tokens, get_value
+import re
+from parser_tools import find_token, find_token_exact, find_tokens, find_end_of_inset, get_value
+from string import replace
+
##
# Notes: Framed/Shaded
file.warning("Ignoring `\\font_osf = true'")
+def revert_booktabs(file):
+# we just remove the booktabs flag, everything else will become a mess.
+ re_row = re.compile(r'^<row.*space="[^"]+".*>$')
+ re_tspace = re.compile(r'\s+topspace="[^"]+"')
+ re_bspace = re.compile(r'\s+bottomspace="[^"]+"')
+ re_ispace = re.compile(r'\s+interlinespace="[^"]+"')
+ i = 0
+ while 1:
+ i = find_token(file.body, "\\begin_inset Tabular", i)
+ if i == -1:
+ return
+ j = find_end_of_inset(file.body, i + 1)
+ if j == -1:
+ file.warning("Malformed LyX file: Could not find end of tabular.")
+ continue
+ for k in range(i, j):
+ if re.search('^<features.* booktabs="true".*>$', file.body[k]):
+ file.warning("Converting 'booktabs' table to normal table.")
+ file.body[k] = replace(file.body[k], ' booktabs="true"', '')
+ if re.search(re_row, file.body[k]):
+ file.warning("Removing extra row space.")
+ file.body[k] = re_tspace.sub('', file.body[k])
+ file.body[k] = re_bspace.sub('', file.body[k])
+ file.body[k] = re_ispace.sub('', file.body[k])
+ i = i + 1
+
+
##
# Conversion hub
#
convert = [[246, []],
- [247, [convert_font_settings]]]
+ [247, [convert_font_settings]],
+ [248, []]]
-revert = [[246, [revert_font_settings]],
+revert = [[247, [revert_booktabs]],
+ [246, [revert_font_settings]],
[245, [revert_framed]]]
+
if __name__ == "__main__":
pass
* MenuBackend.h (clear): new method.
+2006-03-14 Georg Baum <Georg.Baum@post.rwth-aachen.de>
+
+ * buffer.C: format up to 246.
+
2006-03-13 Martin Vermeer <martin.vermeer@hut.fi>
* rowpainter.C (paintChangeBar): fix painting of change bar with
* main.C: (main): no longer pass pointers to os::init.
+2004-12-06 Georg Baum <Georg.Baum@post.rwth-aachen.de>
+
+ * buffer.C: format up to 239.
+
2004-12-06 Alfredo Braunstein <abraunst@lyx.org>
* undo.C (textUndoOrRedo): simplify logic, fix a crash
* vspace.C: fix off-by-one-error, related to fix #1682
+2004-11-11 Georg Baum <Georg.Baum@post.rwth-aachen.de>
+
+ * buffer.C: format up to 238.
+
+2004-11-11 Edwin Leuven
+
+ * LaTeXFeatures.C: add booktabs package
+ * tabular.[Ch] (use_booktabs, setBookTabs, useBookTabs): new members,
+ use them in several places
+
2004-11-11 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
* lengthcommon.C: a more general fix for bug 1682
"varioref",
"prettyref",
"float",
+ "booktabs",
"dvipost",
"fancybox",
"calc",
namespace {
-int const LYX_FORMAT = 247;
+int const LYX_FORMAT = 248;
} // namespace anon
* ControlTabular.C (initialiseParams): Compute the active cell
+2004-11-11 Edwin Leuven
+
+ * ControlTabular.[Ch] (booktabs): new
+
2004-11-09 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* ControlInclude.C (browse): Use GetExtension() instead of
}
+void ControlTabular::booktabs(bool yes)
+{
+ if (yes)
+ set(LyXTabular::SET_BOOKTABS);
+ else
+ set(LyXTabular::UNSET_BOOKTABS);
+}
+
+
void ControlTabular::longTabular(bool yes)
{
if (yes)
void valign(VALIGN h);
+ void booktabs(bool yes);
+
void longTabular(bool yes);
private:
using std::vector;
+#ifdef WITH_WARNINGS
+#warning Implement booktabs settings
+#endif
+
namespace lyx {
namespace frontend {
* QPrefsDialog.h: include LColor.h to satisfy concept checks.
* lcolorcache.h: ditto
+2004-11-16 Georg Baum <Georg.Baum@post.rwth-aachen.de>
+
+ * QTabular.C (update_borders): disable vertical rules if using
+ booktabs
+ * QTabularDialog.C (booktabs_clicked): add a missing call to
+ form_->changed() and update the borders
+
2004-11-15 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* QtView.C (hasFocus): new method
* QLPopupMenu.C (populate): remove a Qt/Mac hack to disable some
menu entries when the main window does not have focus
+2004-11-11 Edwin Leuven
+
+ * QTabular.C (build_dialog, update_contents): handle booktabsCB
+ * QTabularDialog.[Ch] (booktabs_clicked): new
+ * ui/QTabularDialogBase.ui (booktabsCB): new checkbox
+
2004-11-08 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* QLToolbar.C (selected): use layoutSelected
#include <qcheckbox.h>
#include <qlineedit.h>
#include <qpushbutton.h>
+#include <qradiobutton.h>
#include "qsetborder.h"
using std::string;
bcview().addReadOnly(dialog_->borderSetPB);
bcview().addReadOnly(dialog_->borderUnsetPB);
bcview().addReadOnly(dialog_->borders);
+ bcview().addReadOnly(dialog_->booktabsRB);
+ bcview().addReadOnly(dialog_->borderDefaultRB);
bcview().addReadOnly(dialog_->longTabularCB);
bcview().addReadOnly(dialog_->headerStatusCB);
bcview().addReadOnly(dialog_->headerBorderAboveCB);
bcview().addReadOnly(dialog_->lastfooterBorderBelowCB);
bcview().addReadOnly(dialog_->lastfooterNoContentsCB);
bcview().addReadOnly(dialog_->newpageCB);
+ bcview().addReadOnly(dialog_->topspaceED);
+ bcview().addReadOnly(dialog_->topspaceUnit);
+ bcview().addReadOnly(dialog_->topspaceCO);
+ bcview().addReadOnly(dialog_->bottomspaceED);
+ bcview().addReadOnly(dialog_->bottomspaceUnit);
+ bcview().addReadOnly(dialog_->bottomspaceCO);
+ bcview().addReadOnly(dialog_->interlinespaceED);
+ bcview().addReadOnly(dialog_->interlinespaceUnit);
+ bcview().addReadOnly(dialog_->interlinespaceCO);
// initialize the length validator
addCheckedLineEdit(bcview(), dialog_->widthED,
dialog_->fixedWidthColLA);
+ addCheckedLineEdit(bcview(), dialog_->topspaceED,
+ dialog_->topspaceLA);
+ addCheckedLineEdit(bcview(), dialog_->bottomspaceED,
+ dialog_->bottomspaceLA);
+ addCheckedLineEdit(bcview(), dialog_->interlinespaceED,
+ dialog_->interlinespaceLA);
}
LyXTabular const & tabular = controller().tabular();
LyXTabular::idx_type const cell = controller().getActiveCell();
bool const isMulticolumnCell = tabular.isMultiColumn(cell);
+ bool const useBookTabs = tabular.useBookTabs();
if (!isMulticolumnCell) {
- dialog_->borders->setLeftEnabled(true);
- dialog_->borders->setRightEnabled(true);
+ dialog_->borders->setLeftEnabled(!useBookTabs);
+ dialog_->borders->setRightEnabled(!useBookTabs);
dialog_->borders->setTop(tabular.topLine(cell, true));
dialog_->borders->setBottom(tabular.bottomLine(cell, true));
dialog_->borders->setLeft(tabular.leftLine(cell, true));
dialog_->borders->setTop(tabular.topLine(cell));
dialog_->borders->setBottom(tabular.bottomLine(cell));
- // pay attention to left/right lines: they are only allowed
- // to set if we are in first/last cell of row or if the left/right
- // cell is also a multicolumn.
+ // pay attention to left/right lines: they are only allowed to set
+ // if we don't use booktabs and if we are in first/last cell of row
+ // or if the left/right cell is also a multicolumn.
if (tabular.isFirstCellInRow(cell) || tabular.isMultiColumn(cell - 1)) {
- dialog_->borders->setLeftEnabled(true);
+ dialog_->borders->setLeftEnabled(!useBookTabs);
dialog_->borders->setLeft(tabular.leftLine(cell));
} else {
dialog_->borders->setLeft(false);
dialog_->borders->setLeftEnabled(false);
}
if (tabular.isLastCellInRow(cell) || tabular.isMultiColumn(cell + 1)) {
- dialog_->borders->setRightEnabled(true);
+ dialog_->borders->setRightEnabled(!useBookTabs);
dialog_->borders->setRight(tabular.rightLine(cell));
} else {
dialog_->borders->setRight(false);
dialog_->longTabularCB->setChecked(tabular.isLongTabular());
+ dialog_->borderDefaultRB->setChecked(!tabular.useBookTabs());
+
+ dialog_->booktabsRB->setChecked(tabular.useBookTabs());
+
update_borders();
LyXLength pwidth;
dialog_->hAlignCB->setEnabled(true);
dialog_->vAlignCB->setEnabled(!pwidth.zero());
+ if (tabular.row_info[row].top_space.empty()
+ && !tabular.row_info[row].top_space_default) {
+ dialog_->topspaceCO->setCurrentItem(0);
+ } else if (tabular.row_info[row].top_space_default) {
+ dialog_->topspaceCO->setCurrentItem(1);
+ } else {
+ dialog_->topspaceCO->setCurrentItem(2);
+ lengthToWidgets(dialog_->topspaceED,
+ dialog_->topspaceUnit,
+ tabular.row_info[row].top_space.asString(),
+ default_unit);
+ }
+ dialog_->topspaceED->setEnabled(!isReadonly
+ && (dialog_->topspaceCO->currentItem() == 2));
+ dialog_->topspaceUnit->setEnabled(!isReadonly
+ && (dialog_->topspaceCO->currentItem() == 2));
+ dialog_->topspaceCO->setEnabled(!isReadonly);
+
+ if (tabular.row_info[row].bottom_space.empty()
+ && !tabular.row_info[row].bottom_space_default) {
+ dialog_->bottomspaceCO->setCurrentItem(0);
+ } else if (tabular.row_info[row].bottom_space_default) {
+ dialog_->bottomspaceCO->setCurrentItem(1);
+ } else {
+ dialog_->bottomspaceCO->setCurrentItem(2);
+ lengthToWidgets(dialog_->bottomspaceED,
+ dialog_->bottomspaceUnit,
+ tabular.row_info[row].bottom_space.asString(),
+ default_unit);
+ }
+ dialog_->bottomspaceED->setEnabled(!isReadonly
+ && (dialog_->bottomspaceCO->currentItem() == 2));
+ dialog_->bottomspaceUnit->setEnabled(!isReadonly
+ && (dialog_->bottomspaceCO->currentItem() == 2));
+ dialog_->bottomspaceCO->setEnabled(!isReadonly);
+
+ if (tabular.row_info[row].interline_space.empty()
+ && !tabular.row_info[row].interline_space_default) {
+ dialog_->interlinespaceCO->setCurrentItem(0);
+ } else if (tabular.row_info[row].interline_space_default) {
+ dialog_->interlinespaceCO->setCurrentItem(1);
+ } else {
+ dialog_->interlinespaceCO->setCurrentItem(2);
+ lengthToWidgets(dialog_->interlinespaceED,
+ dialog_->interlinespaceUnit,
+ tabular.row_info[row].interline_space.asString(),
+ default_unit);
+ }
+ dialog_->interlinespaceED->setEnabled(!isReadonly
+ && (dialog_->interlinespaceCO->currentItem() == 2));
+ dialog_->interlinespaceUnit->setEnabled(!isReadonly
+ && (dialog_->interlinespaceCO->currentItem() == 2));
+ dialog_->interlinespaceCO->setEnabled(!isReadonly);
+
if (!tabular.isLongTabular()) {
dialog_->headerStatusCB->setChecked(false);
dialog_->headerBorderAboveCB->setChecked(false);
else
controller().set(LyXTabular::SET_PWIDTH, width);
}
+
+ switch (dialog_->topspaceCO->currentItem()) {
+ case 0:
+ controller().set(LyXTabular::SET_TOP_SPACE, "");
+ break;
+ case 1:
+ controller().set(LyXTabular::SET_TOP_SPACE, "default");
+ break;
+ case 2:
+ controller().set(LyXTabular::SET_TOP_SPACE,
+ widgetsToLength(dialog_->topspaceED,
+ dialog_->topspaceUnit));
+ break;
+ }
+
+ switch (dialog_->bottomspaceCO->currentItem()) {
+ case 0:
+ controller().set(LyXTabular::SET_BOTTOM_SPACE, "");
+ break;
+ case 1:
+ controller().set(LyXTabular::SET_BOTTOM_SPACE, "default");
+ break;
+ case 2:
+ controller().set(LyXTabular::SET_BOTTOM_SPACE,
+ widgetsToLength(dialog_->bottomspaceED,
+ dialog_->bottomspaceUnit));
+ break;
+ }
+
+ switch (dialog_->interlinespaceCO->currentItem()) {
+ case 0:
+ controller().set(LyXTabular::SET_INTERLINE_SPACE, "");
+ break;
+ case 1:
+ controller().set(LyXTabular::SET_INTERLINE_SPACE, "default");
+ break;
+ case 2:
+ controller().set(LyXTabular::SET_INTERLINE_SPACE,
+ widgetsToLength(dialog_->interlinespaceED,
+ dialog_->interlinespaceUnit));
+ break;
+ }
}
} // namespace frontend
#include "QTabularDialog.h"
#include "QTabular.h"
+#include "lengthcombo.h"
#include "validators.h"
#include "qt_helpers.h"
+#include "controllers/ButtonController.h"
#include "controllers/ControlTabular.h"
#include <qcheckbox.h>
#include <qpushbutton.h>
+#include <qradiobutton.h>
#include <qlineedit.h>
using std::string;
form, SLOT(slotClose()));
widthED->setValidator(unsignedLengthValidator(widthED));
+ topspaceED->setValidator(new LengthValidator(topspaceED));
+ bottomspaceED->setValidator(new LengthValidator(bottomspaceED));
+ interlinespaceED->setValidator(new LengthValidator(interlinespaceED));
}
}
+void QTabularDialog::topspace_changed()
+{
+ switch(topspaceCO->currentItem()) {
+ case 0: {
+ form_->controller().set(LyXTabular::SET_TOP_SPACE, "");
+ topspaceED->setEnabled(false);
+ topspaceUnit->setEnabled(false);
+ break;
+ }
+ case 1: {
+ form_->controller().set(LyXTabular::SET_TOP_SPACE, "default");
+ topspaceED->setEnabled(false);
+ topspaceUnit->setEnabled(false);
+ break;
+ }
+ case 2: {
+ if (!topspaceED->text().isEmpty())
+ form_->controller().set(LyXTabular::SET_TOP_SPACE,
+ widgetsToLength(topspaceED, topspaceUnit));
+ if (!form_->bc().bp().isReadOnly()) {
+ topspaceED->setEnabled(true);
+ topspaceUnit->setEnabled(true);
+ }
+ break;
+ }
+ }
+ form_->changed();
+}
+
+
+void QTabularDialog::bottomspace_changed()
+{
+ switch(bottomspaceCO->currentItem()) {
+ case 0: {
+ form_->controller().set(LyXTabular::SET_BOTTOM_SPACE, "");
+ bottomspaceED->setEnabled(false);
+ bottomspaceUnit->setEnabled(false);
+ break;
+ }
+ case 1: {
+ form_->controller().set(LyXTabular::SET_BOTTOM_SPACE, "default");
+ bottomspaceED->setEnabled(false);
+ bottomspaceUnit->setEnabled(false);
+ break;
+ }
+ case 2: {
+ if (!bottomspaceED->text().isEmpty())
+ form_->controller().set(LyXTabular::SET_BOTTOM_SPACE,
+ widgetsToLength(bottomspaceED, bottomspaceUnit));
+ if (!form_->bc().bp().isReadOnly()) {
+ bottomspaceED->setEnabled(true);
+ bottomspaceUnit->setEnabled(true);
+ }
+ break;
+ }
+ }
+ form_->changed();
+}
+
+
+void QTabularDialog::interlinespace_changed()
+{
+ switch(interlinespaceCO->currentItem()) {
+ case 0: {
+ form_->controller().set(LyXTabular::SET_INTERLINE_SPACE, "");
+ interlinespaceED->setEnabled(false);
+ interlinespaceUnit->setEnabled(false);
+ break;
+ }
+ case 1: {
+ form_->controller().set(LyXTabular::SET_INTERLINE_SPACE, "default");
+ interlinespaceED->setEnabled(false);
+ interlinespaceUnit->setEnabled(false);
+ break;
+ }
+ case 2: {
+ if (!interlinespaceED->text().isEmpty())
+ form_->controller().set(LyXTabular::SET_INTERLINE_SPACE,
+ widgetsToLength(interlinespaceED, interlinespaceUnit));
+ if (!form_->bc().bp().isReadOnly()) {
+ interlinespaceED->setEnabled(true);
+ interlinespaceUnit->setEnabled(true);
+ }
+ break;
+ }
+ }
+ form_->changed();
+}
+
+
void QTabularDialog::multicolumn_clicked()
{
form_->controller().toggleMultiColumn();
form_->changed();
}
+
+void QTabularDialog::booktabs_clicked()
+{
+ if (booktabsRB->isChecked())
+ form_->controller().set(LyXTabular::SET_BOOKTABS);
+ else
+ form_->controller().set(LyXTabular::UNSET_BOOKTABS);
+ form_->update_borders();
+ form_->changed();
+}
+
} // namespace frontend
} // namespace lyx
virtual void vAlign_changed(int align);
virtual void specialAlignment_changed();
virtual void width_changed();
+ virtual void topspace_changed();
+ virtual void bottomspace_changed();
+ virtual void interlinespace_changed();
virtual void longTabular();
virtual void ltNewpage_clicked();
virtual void ltHeaderStatus_clicked();
virtual void ltLastFooterBorderAbove_clicked();
virtual void ltLastFooterBorderBelow_clicked();
virtual void ltLastFooterEmpty_clicked();
+ virtual void booktabs_clicked();
protected:
virtual void closeEvent(QCloseEvent * e);
<property name="sizeGripEnabled">
<bool>true</bool>
</property>
- <vbox>
+ <grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
<property name="spacing">
<number>6</number>
</property>
- <widget class="QTabWidget">
+ <widget class="QLayoutWidget" row="1" column="0">
+ <property name="name">
+ <cstring>Layout2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Current cell:</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>tabularRowED</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>40</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>NoFocus</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Current row position</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>tabularColumnED</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>40</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>NoFocus</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Current column position</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>closePB</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Close</string>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QTabWidget" row="0" column="0">
<property name="name">
<cstring>TabWidget</cstring>
</property>
<string>Horizontal alignment in column</string>
</property>
</widget>
- <widget class="QCheckBox" row="3" column="0" rowspan="1" colspan="4">
+ <widget class="QCheckBox" row="4" column="0" rowspan="1" colspan="4">
<property name="name">
<cstring>rotateTabularCB</cstring>
</property>
<property name="text">
<string>&Rotate table 90 degrees</string>
</property>
+ <property name="accel">
+ <string>Alt+R</string>
+ </property>
<property name="toolTip" stdset="0">
<string>Rotate the table by 90 degrees</string>
</property>
</widget>
- <widget class="QCheckBox" row="4" column="0" rowspan="1" colspan="4">
+ <widget class="QCheckBox" row="5" column="0" rowspan="1" colspan="4">
<property name="name">
<cstring>rotateCellCB</cstring>
</property>
<property name="text">
<string>Rotate &cell 90 degrees</string>
</property>
+ <property name="accel">
+ <string>Alt+C</string>
+ </property>
<property name="toolTip" stdset="0">
<string>Rotate this cell by 90 degrees</string>
</property>
</widget>
- <widget class="QLabel" row="5" column="0" rowspan="1" colspan="2">
+ <widget class="QLabel" row="6" column="0" rowspan="1" colspan="2">
<property name="name">
<cstring>specialAlignmentLA</cstring>
</property>
<cstring>specialAlignmentED</cstring>
</property>
</widget>
- <widget class="QLineEdit" row="5" column="2" rowspan="1" colspan="2">
+ <widget class="QLineEdit" row="6" column="2" rowspan="1" colspan="2">
<property name="name">
<cstring>specialAlignmentED</cstring>
</property>
<string>Custom column format (LaTeX)</string>
</property>
</widget>
- <spacer row="6" column="2">
+ <spacer row="7" column="2">
<property name="name">
<cstring>Spacer5</cstring>
</property>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <property name="margin">
- <number>11</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QGroupBox" row="0" column="0">
+ <spacer row="1" column="0">
<property name="name">
- <cstring>setBordersGB</cstring>
+ <cstring>spacer7</cstring>
</property>
- <property name="title">
- <string>Set Borders</string>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>31</width>
+ <height>50</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLayoutWidget" row="0" column="0">
+ <property name="name">
+ <cstring>layout3</cstring>
</property>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <property name="margin">
- <number>11</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QFrame" row="0" column="0">
+ <widget class="QLayoutWidget" row="0" column="0">
<property name="name">
- <cstring>bordersF</cstring>
+ <cstring>layout2</cstring>
</property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>setBordersGB</cstring>
+ </property>
+ <property name="title">
+ <string>Set Borders</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QFrame" row="0" column="0">
+ <property name="name">
+ <cstring>bordersF</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="palette">
+ <palette>
+ <active>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>230</red>
+ <green>240</green>
+ <blue>249</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>242</red>
+ <green>247</green>
+ <blue>252</blue>
+ </color>
+ <color>
+ <red>115</red>
+ <green>120</green>
+ <blue>124</blue>
+ </color>
+ <color>
+ <red>154</red>
+ <green>160</green>
+ <blue>166</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>16</red>
+ <green>145</green>
+ <blue>210</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </active>
+ <disabled>
+ <color>
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>230</red>
+ <green>240</green>
+ <blue>249</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>115</red>
+ <green>120</green>
+ <blue>124</blue>
+ </color>
+ <color>
+ <red>154</red>
+ <green>160</green>
+ <blue>166</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>16</red>
+ <green>145</green>
+ <blue>210</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </disabled>
+ <inactive>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>230</red>
+ <green>240</green>
+ <blue>249</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>115</red>
+ <green>120</green>
+ <blue>124</blue>
+ </color>
+ <color>
+ <red>154</red>
+ <green>160</green>
+ <blue>166</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>16</red>
+ <green>145</green>
+ <blue>210</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </inactive>
+ </palette>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="layoutMargin" stdset="0">
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>3</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QSetBorder" row="0" column="0">
+ <property name="name">
+ <cstring>borders</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Set borders of the current (selected) cell(s)</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>allBordersGB</cstring>
+ </property>
+ <property name="title">
+ <string>All Borders</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QPushButton" row="0" column="0">
+ <property name="name">
+ <cstring>borderSetPB</cstring>
+ </property>
+ <property name="text">
+ <string>&Set</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Set all borders of the current (selected) cell(s)</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="0">
+ <property name="name">
+ <cstring>borderUnsetPB</cstring>
+ </property>
+ <property name="text">
+ <string>C&lear</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Unset all borders of the current (selected) cell(s)</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QButtonGroup" row="0" column="2">
+ <property name="name">
+ <cstring>borderStyleBG</cstring>
</property>
- <property name="palette">
- <palette>
- <active>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>230</red>
- <green>240</green>
- <blue>249</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>242</red>
- <green>247</green>
- <blue>252</blue>
- </color>
- <color>
- <red>115</red>
- <green>120</green>
- <blue>124</blue>
- </color>
- <color>
- <red>154</red>
- <green>160</green>
- <blue>166</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>16</red>
- <green>145</green>
- <blue>210</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- </active>
- <disabled>
- <color>
- <red>128</red>
- <green>128</green>
- <blue>128</blue>
- </color>
- <color>
- <red>230</red>
- <green>240</green>
- <blue>249</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>115</red>
- <green>120</green>
- <blue>124</blue>
- </color>
- <color>
- <red>154</red>
- <green>160</green>
- <blue>166</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>128</red>
- <green>128</green>
- <blue>128</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>16</red>
- <green>145</green>
- <blue>210</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- </disabled>
- <inactive>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>230</red>
- <green>240</green>
- <blue>249</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>115</red>
- <green>120</green>
- <blue>124</blue>
- </color>
- <color>
- <red>154</red>
- <green>160</green>
- <blue>166</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>16</red>
- <green>145</green>
- <blue>210</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- </inactive>
- </palette>
- </property>
- <property name="frameShape">
- <enum>StyledPanel</enum>
- </property>
- <property name="frameShadow">
- <enum>Sunken</enum>
- </property>
- <property name="layoutMargin" stdset="0">
+ <property name="title">
+ <string>Style</string>
</property>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <property name="margin">
- <number>3</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QSetBorder" row="0" column="0">
+ <widget class="QRadioButton" row="1" column="0">
+ <property name="name">
+ <cstring>booktabsRB</cstring>
+ </property>
+ <property name="text">
+ <string>Fo&rmal</string>
+ </property>
+ <property name="accel">
+ <string>Alt+R</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Use formal (a.k.a. booktabs) border style (no vertical borders)</string>
+ </property>
+ </widget>
+ <widget class="QRadioButton" row="0" column="0">
<property name="name">
- <cstring>borders</cstring>
+ <cstring>borderDefaultRB</cstring>
</property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <property name="text">
+ <string>De&fault</string>
+ </property>
+ <property name="accel">
+ <string>Alt+F</string>
</property>
<property name="toolTip" stdset="0">
- <string>Set borders of the current (selected) cell(s)</string>
+ <string>Use default (grid-like) border style</string>
</property>
</widget>
</grid>
</widget>
- </grid>
- </widget>
- <widget class="QGroupBox" row="0" column="1">
- <property name="name">
- <cstring>allBordersGB</cstring>
- </property>
- <property name="title">
- <string>All Borders</string>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>11</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QPushButton" row="0" column="0">
+ <spacer row="1" column="0">
<property name="name">
- <cstring>borderSetPB</cstring>
+ <cstring>spacer8</cstring>
</property>
- <property name="text">
- <string>&Set</string>
+ <property name="orientation">
+ <enum>Vertical</enum>
</property>
- <property name="toolTip" stdset="0">
- <string>Set all borders of the current (selected) cell(s)</string>
+ <property name="sizeType">
+ <enum>Expanding</enum>
</property>
- </widget>
- <widget class="QPushButton" row="1" column="0">
+ <property name="sizeHint">
+ <size>
+ <width>21</width>
+ <height>30</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QGroupBox" row="2" column="0" rowspan="1" colspan="3">
<property name="name">
- <cstring>borderUnsetPB</cstring>
+ <cstring>spacesGB</cstring>
</property>
- <property name="text">
- <string>C&lear</string>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <property name="toolTip" stdset="0">
- <string>Unset all borders of the current (selected) cell(s)</string>
+ <property name="title">
+ <string>Additional Space</string>
</property>
- </widget>
- </grid>
- </widget>
- <spacer row="0" column="2">
- <property name="name">
- <cstring>Spacer6</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <spacer row="1" column="0">
- <property name="name">
- <cstring>Spacer7</cstring>
- </property>
- <property name="orientation">
- <enum>Vertical</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </grid>
- </widget>
- <widget class="QWidget">
- <property name="name">
- <cstring>tab</cstring>
- </property>
- <attribute name="title">
- <string>&Longtable</string>
- </attribute>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>11</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QCheckBox" row="0" column="0">
- <property name="name">
- <cstring>longTabularCB</cstring>
- </property>
- <property name="text">
- <string>&Use long table</string>
- </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="LengthCombo" row="0" column="3">
+ <property name="name">
+ <cstring>topspaceUnit</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>50</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>StrongFocus</enum>
+ </property>
+ </widget>
+ <widget class="LengthCombo" row="1" column="3">
+ <property name="name">
+ <cstring>bottomspaceUnit</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>50</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>StrongFocus</enum>
+ </property>
+ </widget>
+ <widget class="LengthCombo" row="2" column="3">
+ <property name="name">
+ <cstring>interlinespaceUnit</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>50</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>StrongFocus</enum>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="2" column="2">
+ <property name="name">
+ <cstring>interlinespaceED</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="1" column="2">
+ <property name="name">
+ <cstring>bottomspaceED</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="0" column="2">
+ <property name="name">
+ <cstring>topspaceED</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="" stdset="0">
+ </property>
+ </widget>
+ <widget class="QComboBox" row="0" column="1">
+ <item>
+ <property name="text">
+ <string>None</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Default</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Custom</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>topspaceCO</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="1">
+ <item>
+ <property name="text">
+ <string>None</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Default</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Custom</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>bottomspaceCO</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="2" column="1">
+ <item>
+ <property name="text">
+ <string>None</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Default</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Custom</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>interlinespaceCO</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>topspaceLA</cstring>
+ </property>
+ <property name="text">
+ <string>T&op of row:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>topspaceED</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>bottomspaceLA</cstring>
+ </property>
+ <property name="text">
+ <string>Botto&m of row:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>bottomspaceED</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>interlinespaceLA</cstring>
+ </property>
+ <property name="text">
+ <string>Bet&ween rows:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>interlinespaceED</cstring>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <spacer row="0" column="1">
+ <property name="name">
+ <cstring>spacer9</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>171</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </grid>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>&Longtable</string>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QCheckBox" row="0" column="0">
+ <property name="name">
+ <cstring>longTabularCB</cstring>
+ </property>
+ <property name="text">
+ <string>&Use long table</string>
+ </property>
<property name="toolTip" stdset="0">
<string>Select for tables that span multiple pages</string>
</property>
</grid>
</widget>
</widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>Layout2</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>TextLabel1</cstring>
- </property>
- <property name="text">
- <string>Current cell:</string>
- </property>
- </widget>
- <widget class="QLineEdit">
- <property name="name">
- <cstring>tabularRowED</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>40</width>
- <height>32767</height>
- </size>
- </property>
- <property name="focusPolicy">
- <enum>NoFocus</enum>
- </property>
- <property name="toolTip" stdset="0">
- <string>Current row position</string>
- </property>
- </widget>
- <widget class="QLineEdit">
- <property name="name">
- <cstring>tabularColumnED</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>40</width>
- <height>32767</height>
- </size>
- </property>
- <property name="focusPolicy">
- <enum>NoFocus</enum>
- </property>
- <property name="toolTip" stdset="0">
- <string>Current column position</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>Spacer1</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QPushButton">
- <property name="name">
- <cstring>closePB</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Close</string>
- </property>
- <property name="autoDefault">
- <bool>false</bool>
- </property>
- </widget>
- </hbox>
- </widget>
- </vbox>
+ </grid>
</widget>
<customwidgets>
<customwidget>
</customwidgets>
<images>
<image name="image0">
- <data format="PNG" length="256">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000c749444154388dad55db1184200c4c180bb81a28c73aad811228c356f42b3792db3cc0db2fc724bb7901dc7b270f27ed17fa5fa9b117b7cd90211f4ba0ac906a7f1453b4d30ca917bb590681552af23f69bfc4ffa71519d2c8f62546ea5ea03738b1c18c33a4d156f0d13f43b61952e4af6d6e8fb3a408f080448419a433d6486d85052fdba892a295f5d45785cd8c51a9d6de6a814a8d2131da51f98e7a3b64ec9da04a8db53d43be3c3c0b22cacf17e4cdb5a931649ceddf34b190cf0aa019f03f1fd3e7457f03b5a66c9ed26e86130000000049454e44ae426082</data>
+ <data format="PNG" length="256">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000c749444154388dad55db1184200c4c180bb005eab1cd6b8112b40d4bf1bee2486ef3006fbf1c93ece605f07eece4e1a4ed42ff2b35f6e2961132e46309941952ed8f628a761a21f56217cb20b04a45fe276d97f8ffb422431ad96e62a4ee057a83131bcc38431a6d057f8eb5cb36438afcb5cded719614011e9088308374c61aa9adb0e0651b5552b4b29efaacb099312ad5da5b2d50a93124463b2adf516fbb8cbd1354a9b1b667c8a787674144f9f982bcb93635ba8cb3fd1b2616f251013403fee763fabce8bff0aa6c98500331e50000000049454e44ae426082</data>
</image>
</images>
<connections>
<connection>
- <sender>borderSetPB</sender>
- <signal>clicked()</signal>
- <receiver>QTabularDialogBase</receiver>
- <slot>borderSet_clicked()</slot>
- </connection>
- <connection>
- <sender>borderUnsetPB</sender>
+ <sender>closePB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>borderUnset_clicked()</slot>
- </connection>
- <connection>
- <sender>longTabularCB</sender>
- <signal>toggled(bool)</signal>
- <receiver>longtableGB</receiver>
- <slot>setEnabled(bool)</slot>
+ <slot>close_clicked()</slot>
</connection>
<connection>
<sender>longTabularCB</sender>
<receiver>newpageCB</receiver>
<slot>setEnabled(bool)</slot>
</connection>
- <connection>
- <sender>hAlignCB</sender>
- <signal>activated(int)</signal>
- <receiver>QTabularDialogBase</receiver>
- <slot>hAlign_changed(int)</slot>
- </connection>
- <connection>
- <sender>vAlignCB</sender>
- <signal>activated(int)</signal>
- <receiver>QTabularDialogBase</receiver>
- <slot>vAlign_changed(int)</slot>
- </connection>
- <connection>
- <sender>multicolumnCB</sender>
- <signal>clicked()</signal>
- <receiver>QTabularDialogBase</receiver>
- <slot>multicolumn_clicked()</slot>
- </connection>
<connection>
<sender>newpageCB</sender>
<signal>clicked()</signal>
<slot>ltNewpage_clicked()</slot>
</connection>
<connection>
- <sender>headerStatusCB</sender>
+ <sender>firstheaderNoContentsCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>ltHeaderStatus_clicked()</slot>
+ <slot>ltFirstHeaderEmpty_clicked()</slot>
</connection>
<connection>
- <sender>headerBorderAboveCB</sender>
+ <sender>lastfooterNoContentsCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>ltHeaderBorderAbove_clicked()</slot>
+ <slot>ltLastFooterEmpty_clicked()</slot>
</connection>
<connection>
<sender>headerBorderBelowCB</sender>
<slot>ltHeaderBorderBelow_clicked()</slot>
</connection>
<connection>
- <sender>firstheaderStatusCB</sender>
+ <sender>firstheaderBorderBelowCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>ltFirstHeaderStatus_clicked()</slot>
+ <slot>ltFirstHeaderBorderBelow_clicked()</slot>
</connection>
<connection>
- <sender>firstheaderBorderAboveCB</sender>
+ <sender>footerBorderBelowCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>ltFirstHeaderBorderAbove_clicked()</slot>
+ <slot>ltFooterBorderBelow_clicked()</slot>
</connection>
<connection>
- <sender>firstheaderBorderBelowCB</sender>
+ <sender>lastfooterBorderBelowCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>ltFirstHeaderBorderBelow_clicked()</slot>
+ <slot>ltLastFooterBorderBelow_clicked()</slot>
</connection>
<connection>
- <sender>firstheaderNoContentsCB</sender>
+ <sender>lastfooterBorderAboveCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>ltFirstHeaderEmpty_clicked()</slot>
+ <slot>ltLastFooterBorderAbove_clicked()</slot>
</connection>
<connection>
- <sender>footerStatusCB</sender>
+ <sender>footerBorderAboveCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>ltFooterStatus_clicked()</slot>
+ <slot>ltFooterBorderAbove_clicked()</slot>
</connection>
<connection>
- <sender>footerBorderAboveCB</sender>
+ <sender>firstheaderBorderAboveCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>ltFooterBorderAbove_clicked()</slot>
+ <slot>ltFirstHeaderBorderAbove_clicked()</slot>
</connection>
<connection>
- <sender>footerBorderBelowCB</sender>
+ <sender>headerBorderAboveCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>ltFooterBorderBelow_clicked()</slot>
+ <slot>ltHeaderBorderAbove_clicked()</slot>
</connection>
<connection>
<sender>lastfooterStatusCB</sender>
<slot>ltLastFooterStatus_clicked()</slot>
</connection>
<connection>
- <sender>lastfooterBorderAboveCB</sender>
+ <sender>footerStatusCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>ltLastFooterBorderAbove_clicked()</slot>
+ <slot>ltFooterStatus_clicked()</slot>
</connection>
<connection>
- <sender>lastfooterBorderBelowCB</sender>
+ <sender>firstheaderStatusCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>ltLastFooterBorderBelow_clicked()</slot>
+ <slot>ltFirstHeaderStatus_clicked()</slot>
</connection>
<connection>
- <sender>lastfooterNoContentsCB</sender>
+ <sender>headerStatusCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>ltLastFooterEmpty_clicked()</slot>
+ <slot>ltHeaderStatus_clicked()</slot>
</connection>
<connection>
- <sender>specialAlignmentED</sender>
- <signal>returnPressed()</signal>
- <receiver>QTabularDialogBase</receiver>
- <slot>specialAlignment_changed()</slot>
+ <sender>longTabularCB</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>longtableGB</receiver>
+ <slot>setEnabled(bool)</slot>
</connection>
<connection>
- <sender>widthED</sender>
- <signal>returnPressed()</signal>
+ <sender>longTabularCB</sender>
+ <signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>width_changed()</slot>
+ <slot>longTabular()</slot>
</connection>
<connection>
- <sender>widthUnit</sender>
- <signal>selectionChanged(LyXLength::UNIT)</signal>
+ <sender>borderUnsetPB</sender>
+ <signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>width_changed()</slot>
+ <slot>borderUnset_clicked()</slot>
</connection>
<connection>
- <sender>closePB</sender>
+ <sender>borderSetPB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>close_clicked()</slot>
+ <slot>borderSet_clicked()</slot>
</connection>
<connection>
<sender>borders</sender>
<slot>leftBorder_changed()</slot>
</connection>
<connection>
- <sender>rotateTabularCB</sender>
+ <sender>vAlignCB</sender>
+ <signal>activated(int)</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>vAlign_changed(int)</slot>
+ </connection>
+ <connection>
+ <sender>widthED</sender>
+ <signal>returnPressed()</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>width_changed()</slot>
+ </connection>
+ <connection>
+ <sender>widthUnit</sender>
+ <signal>selectionChanged(LyXLength::UNIT)</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>width_changed()</slot>
+ </connection>
+ <connection>
+ <sender>multicolumnCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>rotateTabular()</slot>
+ <slot>multicolumn_clicked()</slot>
+ </connection>
+ <connection>
+ <sender>specialAlignmentED</sender>
+ <signal>returnPressed()</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>specialAlignment_changed()</slot>
</connection>
<connection>
<sender>rotateCellCB</sender>
<slot>rotateCell()</slot>
</connection>
<connection>
- <sender>longTabularCB</sender>
+ <sender>rotateTabularCB</sender>
<signal>clicked()</signal>
<receiver>QTabularDialogBase</receiver>
- <slot>longTabular()</slot>
+ <slot>rotateTabular()</slot>
+ </connection>
+ <connection>
+ <sender>hAlignCB</sender>
+ <signal>activated(int)</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>hAlign_changed(int)</slot>
+ </connection>
+ <connection>
+ <sender>topspaceCO</sender>
+ <signal>activated(int)</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>topspace_changed()</slot>
+ </connection>
+ <connection>
+ <sender>bottomspaceCO</sender>
+ <signal>activated(int)</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>bottomspace_changed()</slot>
+ </connection>
+ <connection>
+ <sender>interlinespaceCO</sender>
+ <signal>activated(int)</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>interlinespace_changed()</slot>
+ </connection>
+ <connection>
+ <sender>topspaceED</sender>
+ <signal>returnPressed()</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>topspace_changed()</slot>
+ </connection>
+ <connection>
+ <sender>bottomspaceED</sender>
+ <signal>returnPressed()</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>bottomspace_changed()</slot>
+ </connection>
+ <connection>
+ <sender>interlinespaceED</sender>
+ <signal>returnPressed()</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>interlinespace_changed()</slot>
+ </connection>
+ <connection>
+ <sender>topspaceUnit</sender>
+ <signal>selectionChanged(LyXLength::UNIT)</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>topspace_changed()</slot>
+ </connection>
+ <connection>
+ <sender>bottomspaceUnit</sender>
+ <signal>selectionChanged(LyXLength::UNIT)</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>bottomspace_changed()</slot>
+ </connection>
+ <connection>
+ <sender>interlinespaceUnit</sender>
+ <signal>selectionChanged(LyXLength::UNIT)</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>interlinespace_changed()</slot>
+ </connection>
+ <connection>
+ <sender>booktabsRB</sender>
+ <signal>clicked()</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>booktabs_clicked()</slot>
+ </connection>
+ <connection>
+ <sender>borderDefaultRB</sender>
+ <signal>clicked()</signal>
+ <receiver>QTabularDialogBase</receiver>
+ <slot>booktabs_clicked()</slot>
</connection>
</connections>
<tabstops>
<tabstop>rotateTabularCB</tabstop>
<tabstop>rotateCellCB</tabstop>
<tabstop>specialAlignmentED</tabstop>
+ <tabstop>closePB</tabstop>
<tabstop>borderSetPB</tabstop>
<tabstop>borderUnsetPB</tabstop>
+ <tabstop>borderDefaultRB</tabstop>
+ <tabstop>booktabsRB</tabstop>
+ <tabstop>topspaceCO</tabstop>
+ <tabstop>bottomspaceCO</tabstop>
+ <tabstop>interlinespaceCO</tabstop>
+ <tabstop>topspaceED</tabstop>
+ <tabstop>bottomspaceED</tabstop>
+ <tabstop>interlinespaceED</tabstop>
+ <tabstop>topspaceUnit</tabstop>
+ <tabstop>bottomspaceUnit</tabstop>
+ <tabstop>interlinespaceUnit</tabstop>
<tabstop>longTabularCB</tabstop>
<tabstop>headerStatusCB</tabstop>
<tabstop>headerBorderAboveCB</tabstop>
<tabstop>lastfooterBorderBelowCB</tabstop>
<tabstop>lastfooterNoContentsCB</tabstop>
<tabstop>newpageCB</tabstop>
- <tabstop>closePB</tabstop>
</tabstops>
<includes>
<include location="global" impldecl="in implementation">config.h</include>
<include location="local" impldecl="in implementation">qt_helpers.h</include>
</includes>
<slots>
+ <slot access="protected">booktabs_clicked()</slot>
<slot access="protected">borderSet_clicked()</slot>
<slot access="protected">borderUnset_clicked()</slot>
<slot access="protected">bottomBorder_changed()</slot>
<slot access="protected">topBorder_changed()</slot>
<slot access="protected">vAlign_changed(int)</slot>
<slot access="protected">width_changed()</slot>
+ <slot access="protected">topspace_changed()</slot>
+ <slot access="protected">bottomspace_changed()</slot>
+ <slot access="protected">interlinespace_changed()</slot>
</slots>
<layoutdefaults spacing="6" margin="11"/>
<includehints>
<includehint>lengthcombo.h</includehint>
<includehint>qsetborder.h</includehint>
+ <includehint>lengthcombo.h</includehint>
+ <includehint>lengthcombo.h</includehint>
+ <includehint>lengthcombo.h</includehint>
</includehints>
</UI>
#include <qcheckbox.h>
#include <qlineedit.h>
#include <qpushbutton.h>
+#include <qradiobutton.h>
#include "qsetborder.h"
using std::string;
bcview().setCancel(dialog_->closePB);
+ bcview().addReadOnly(dialog_->topspaceED);
+ bcview().addReadOnly(dialog_->topspaceUnit);
+ bcview().addReadOnly(dialog_->topspaceCO);
+ bcview().addReadOnly(dialog_->bottomspaceED);
+ bcview().addReadOnly(dialog_->bottomspaceUnit);
+ bcview().addReadOnly(dialog_->bottomspaceCO);
+ bcview().addReadOnly(dialog_->interlinespaceED);
+ bcview().addReadOnly(dialog_->interlinespaceUnit);
+ bcview().addReadOnly(dialog_->interlinespaceCO);
+ bcview().addReadOnly(dialog_->borderDefaultRB);
+ bcview().addReadOnly(dialog_->booktabsRB);
+
bcview().addReadOnly(dialog_->multicolumnCB);
bcview().addReadOnly(dialog_->rotateCellCB);
bcview().addReadOnly(dialog_->rotateTabularCB);
// initialize the length validator
addCheckedLineEdit(bcview(), dialog_->widthED,
dialog_->fixedWidthColLA);
+ addCheckedLineEdit(bcview(), dialog_->topspaceED,
+ dialog_->topspaceLA);
+ addCheckedLineEdit(bcview(), dialog_->bottomspaceED,
+ dialog_->bottomspaceLA);
+ addCheckedLineEdit(bcview(), dialog_->interlinespaceED,
+ dialog_->interlinespaceLA);
}
LyXLength::UNIT default_unit = controller().useMetricUnits() ? LyXLength::CM : LyXLength::IN;
+ dialog_->borderDefaultRB->setChecked(!tabular.useBookTabs());
+ dialog_->booktabsRB->setChecked(tabular.useBookTabs());
+
+ if (tabular.row_info[row].top_space.empty()
+ && !tabular.row_info[row].top_space_default) {
+ dialog_->topspaceCO->setCurrentItem(0);
+ } else if (tabular.row_info[row].top_space_default) {
+ dialog_->topspaceCO->setCurrentItem(1);
+ } else {
+ dialog_->topspaceCO->setCurrentItem(2);
+ lengthToWidgets(dialog_->topspaceED,
+ dialog_->topspaceUnit,
+ tabular.row_info[row].top_space.asString(),
+ default_unit);
+ }
+ dialog_->topspaceED->setEnabled(!isReadonly
+ && (dialog_->topspaceCO->currentItem() == 2));
+ dialog_->topspaceUnit->setEnabled(!isReadonly
+ && (dialog_->topspaceCO->currentItem() == 2));
+ dialog_->topspaceCO->setEnabled(!isReadonly);
+
+ if (tabular.row_info[row].bottom_space.empty()
+ && !tabular.row_info[row].bottom_space_default) {
+ dialog_->bottomspaceCO->setCurrentItem(0);
+ } else if (tabular.row_info[row].bottom_space_default) {
+ dialog_->bottomspaceCO->setCurrentItem(1);
+ } else {
+ dialog_->bottomspaceCO->setCurrentItem(2);
+ lengthToWidgets(dialog_->bottomspaceED,
+ dialog_->bottomspaceUnit,
+ tabular.row_info[row].bottom_space.asString(),
+ default_unit);
+ }
+ dialog_->bottomspaceED->setEnabled(!isReadonly
+ && (dialog_->bottomspaceCO->currentItem() == 2));
+ dialog_->bottomspaceUnit->setEnabled(!isReadonly
+ && (dialog_->bottomspaceCO->currentItem() == 2));
+ dialog_->bottomspaceCO->setEnabled(!isReadonly);
+
+ if (tabular.row_info[row].interline_space.empty()
+ && !tabular.row_info[row].interline_space_default) {
+ dialog_->interlinespaceCO->setCurrentItem(0);
+ } else if (tabular.row_info[row].interline_space_default) {
+ dialog_->interlinespaceCO->setCurrentItem(1);
+ } else {
+ dialog_->interlinespaceCO->setCurrentItem(2);
+ lengthToWidgets(dialog_->interlinespaceED,
+ dialog_->interlinespaceUnit,
+ tabular.row_info[row].interline_space.asString(),
+ default_unit);
+ }
+ dialog_->interlinespaceED->setEnabled(!isReadonly
+ && (dialog_->interlinespaceCO->currentItem() == 2));
+ dialog_->interlinespaceUnit->setEnabled(!isReadonly
+ && (dialog_->interlinespaceCO->currentItem() == 2));
+ dialog_->interlinespaceCO->setEnabled(!isReadonly);
+
string colwidth;
if (!pwidth.zero())
colwidth = pwidth.asString();
else
controller().set(LyXTabular::SET_PWIDTH, width);
}
+
+ /* DO WE NEED THIS?
+ switch (dialog_->topspaceCO->currentItem()) {
+ case 0:
+ controller().set(LyXTabular::SET_TOP_SPACE, "");
+ break;
+ case 1:
+ controller().set(LyXTabular::SET_TOP_SPACE, "default");
+ break;
+ case 2:
+ controller().set(LyXTabular::SET_TOP_SPACE,
+ widgetsToLength(dialog_->topspaceED,
+ dialog_->topspaceUnit));
+ break;
+ }
+
+ switch (dialog_->bottomspaceCO->currentItem()) {
+ case 0:
+ controller().set(LyXTabular::SET_BOTTOM_SPACE, "");
+ break;
+ case 1:
+ controller().set(LyXTabular::SET_BOTTOM_SPACE, "default");
+ break;
+ case 2:
+ controller().set(LyXTabular::SET_BOTTOM_SPACE,
+ widgetsToLength(dialog_->bottomspaceED,
+ dialog_->bottomspaceUnit));
+ break;
+ }
+
+ switch (dialog_->interlinespaceCO->currentItem()) {
+ case 0:
+ controller().set(LyXTabular::SET_INTERLINE_SPACE, "");
+ break;
+ case 1:
+ controller().set(LyXTabular::SET_INTERLINE_SPACE, "default");
+ break;
+ case 2:
+ controller().set(LyXTabular::SET_INTERLINE_SPACE,
+ widgetsToLength(dialog_->interlinespaceED,
+ dialog_->interlinespaceUnit));
+ break;
+ }
+*/
}
} // namespace frontend
#include "validators.h"
#include "qt_helpers.h"
+#include "controllers/ButtonController.h"
#include "controllers/ControlTabular.h"
#include <QCloseEvent>
#include <QCheckBox>
#include <QPushButton>
+#include <QRadioButton>
#include <QLineEdit>
using std::string;
setupUi(this);
widthED->setValidator(unsignedLengthValidator(widthED));
-
- connect( borderSetPB, SIGNAL( clicked() ), this, SLOT( borderSet_clicked() ) );
- connect( borderUnsetPB, SIGNAL( clicked() ), this, SLOT( borderUnset_clicked() ) );
- connect( longTabularCB, SIGNAL( toggled(bool) ), longtableGB, SLOT( setEnabled(bool) ) );
- connect( longTabularCB, SIGNAL( toggled(bool) ), newpageCB, SLOT( setEnabled(bool) ) );
- connect( hAlignCB, SIGNAL( activated(int) ), this, SLOT( hAlign_changed(int) ) );
- connect( vAlignCB, SIGNAL( activated(int) ), this, SLOT( vAlign_changed(int) ) );
- connect( multicolumnCB, SIGNAL( clicked() ), this, SLOT( multicolumn_clicked() ) );
- connect( newpageCB, SIGNAL( clicked() ), this, SLOT( ltNewpage_clicked() ) );
- connect( headerStatusCB, SIGNAL( clicked() ), this, SLOT( ltHeaderStatus_clicked() ) );
- connect( headerBorderAboveCB, SIGNAL( clicked() ), this, SLOT( ltHeaderBorderAbove_clicked() ) );
- connect( headerBorderBelowCB, SIGNAL( clicked() ), this, SLOT( ltHeaderBorderBelow_clicked() ) );
- connect( firstheaderStatusCB, SIGNAL( clicked() ), this, SLOT( ltFirstHeaderStatus_clicked() ) );
- connect( firstheaderBorderAboveCB, SIGNAL( clicked() ), this, SLOT( ltFirstHeaderBorderAbove_clicked() ) );
- connect( firstheaderBorderBelowCB, SIGNAL( clicked() ), this, SLOT( ltFirstHeaderBorderBelow_clicked() ) );
- connect( firstheaderNoContentsCB, SIGNAL( clicked() ), this, SLOT( ltFirstHeaderEmpty_clicked() ) );
- connect( footerStatusCB, SIGNAL( clicked() ), this, SLOT( ltFooterStatus_clicked() ) );
- connect( footerBorderAboveCB, SIGNAL( clicked() ), this, SLOT( ltFooterBorderAbove_clicked() ) );
- connect( footerBorderBelowCB, SIGNAL( clicked() ), this, SLOT( ltFooterBorderBelow_clicked() ) );
- connect( lastfooterStatusCB, SIGNAL( clicked() ), this, SLOT( ltLastFooterStatus_clicked() ) );
- connect( lastfooterBorderAboveCB, SIGNAL( clicked() ), this, SLOT( ltLastFooterBorderAbove_clicked() ) );
- connect( lastfooterBorderBelowCB, SIGNAL( clicked() ), this, SLOT( ltLastFooterBorderBelow_clicked() ) );
- connect( lastfooterNoContentsCB, SIGNAL( clicked() ), this, SLOT( ltLastFooterEmpty_clicked() ) );
- connect( specialAlignmentED, SIGNAL( returnPressed() ), this, SLOT( specialAlignment_changed() ) );
- connect( widthED, SIGNAL( returnPressed() ), this, SLOT( width_changed() ) );
- connect( widthUnit, SIGNAL( selectionChanged(LyXLength::UNIT) ), this, SLOT( width_changed() ) );
- connect( closePB, SIGNAL( clicked() ), this, SLOT( close_clicked() ) );
- connect( borders, SIGNAL( topSet(bool) ), this, SLOT( topBorder_changed() ) );
- connect( borders, SIGNAL( bottomSet(bool) ), this, SLOT( bottomBorder_changed() ) );
- connect( borders, SIGNAL( rightSet(bool) ), this, SLOT( rightBorder_changed() ) );
- connect( borders, SIGNAL( leftSet(bool) ), this, SLOT( leftBorder_changed() ) );
- connect( rotateTabularCB, SIGNAL( clicked() ), this, SLOT( rotateTabular() ) );
- connect( rotateCellCB, SIGNAL( clicked() ), this, SLOT( rotateCell() ) );
- connect( longTabularCB, SIGNAL( clicked() ), this, SLOT( longTabular() ) );
+ topspaceED->setValidator(new LengthValidator(topspaceED));
+ bottomspaceED->setValidator(new LengthValidator(bottomspaceED));
+ interlinespaceED->setValidator(new LengthValidator(interlinespaceED));
+
+ connect(topspaceED, SIGNAL(returnPressed()),
+ this, SLOT(topspace_changed()));
+ connect(topspaceUnit, SIGNAL(selectionChanged(LyXLength::UNIT)),
+ this, SLOT(topspace_changed()));
+ connect(topspaceCO, SIGNAL(activated(int)), this, SLOT(topspace_changed()));
+ connect(bottomspaceED, SIGNAL(returnPressed()),
+ this, SLOT(bottomspace_changed()));
+ connect(bottomspaceUnit, SIGNAL(selectionChanged(LyXLength::UNIT)),
+ this, SLOT(bottomspace_changed()));
+ connect(bottomspaceCO, SIGNAL(activated(int)), this, SLOT(bottomspace_changed()));
+ connect(interlinespaceED, SIGNAL(returnPressed()),
+ this, SLOT(interlinespace_changed()));
+ connect(interlinespaceUnit, SIGNAL(selectionChanged(LyXLength::UNIT)),
+ this, SLOT(interlinespace_changed()));
+ connect(interlinespaceCO, SIGNAL(activated(int)), this, SLOT(interlinespace_changed()));
+ connect(booktabsRB, SIGNAL(clicked()), this, SLOT(on_booktabsRB_toggled()));
+ connect(borderSetPB, SIGNAL(clicked()), this, SLOT(borderSet_clicked()));
+ connect(borderUnsetPB, SIGNAL(clicked()), this, SLOT(borderUnset_clicked()));
+ connect(longTabularCB, SIGNAL(toggled(bool)), longtableGB, SLOT(setEnabled(bool)));
+ connect(longTabularCB, SIGNAL(toggled(bool)), newpageCB, SLOT(setEnabled(bool)));
+ connect(hAlignCB, SIGNAL(activated(int)), this, SLOT(hAlign_changed(int)));
+ connect(vAlignCB, SIGNAL(activated(int)), this, SLOT(vAlign_changed(int)));
+ connect(multicolumnCB, SIGNAL(clicked()), this, SLOT(multicolumn_clicked()));
+ connect(newpageCB, SIGNAL(clicked()), this, SLOT(ltNewpage_clicked()));
+ connect(headerStatusCB, SIGNAL(clicked()), this, SLOT(ltHeaderStatus_clicked()));
+ connect(headerBorderAboveCB, SIGNAL(clicked()), this, SLOT(ltHeaderBorderAbove_clicked()));
+ connect(headerBorderBelowCB, SIGNAL(clicked()), this, SLOT(ltHeaderBorderBelow_clicked()));
+ connect(firstheaderStatusCB, SIGNAL(clicked()), this, SLOT(ltFirstHeaderStatus_clicked()));
+ connect(firstheaderBorderAboveCB, SIGNAL(clicked()), this, SLOT(ltFirstHeaderBorderAbove_clicked()));
+ connect(firstheaderBorderBelowCB, SIGNAL(clicked()), this, SLOT(ltFirstHeaderBorderBelow_clicked()));
+ connect(firstheaderNoContentsCB, SIGNAL(clicked()), this, SLOT(ltFirstHeaderEmpty_clicked()));
+ connect(footerStatusCB, SIGNAL(clicked()), this, SLOT(ltFooterStatus_clicked()));
+ connect(footerBorderAboveCB, SIGNAL(clicked()), this, SLOT(ltFooterBorderAbove_clicked()));
+ connect(footerBorderBelowCB, SIGNAL(clicked()), this, SLOT(ltFooterBorderBelow_clicked()));
+ connect(lastfooterStatusCB, SIGNAL(clicked()), this, SLOT(ltLastFooterStatus_clicked()));
+ connect(lastfooterBorderAboveCB, SIGNAL(clicked()), this, SLOT(ltLastFooterBorderAbove_clicked()));
+ connect(lastfooterBorderBelowCB, SIGNAL(clicked()), this, SLOT(ltLastFooterBorderBelow_clicked()));
+ connect(lastfooterNoContentsCB, SIGNAL(clicked()), this, SLOT(ltLastFooterEmpty_clicked()));
+ connect(specialAlignmentED, SIGNAL(returnPressed()), this, SLOT(specialAlignment_changed()));
+ connect(widthED, SIGNAL(returnPressed()), this, SLOT(width_changed()));
+ connect(widthUnit, SIGNAL(selectionChanged(LyXLength::UNIT)), this, SLOT(width_changed()));
+ connect(closePB, SIGNAL(clicked()), this, SLOT(close_clicked()));
+ connect(borders, SIGNAL(topSet(bool)), this, SLOT(topBorder_changed()));
+ connect(borders, SIGNAL(bottomSet(bool)), this, SLOT(bottomBorder_changed()));
+ connect(borders, SIGNAL(rightSet(bool)), this, SLOT(rightBorder_changed()));
+ connect(borders, SIGNAL(leftSet(bool)), this, SLOT(leftBorder_changed()));
+ connect(rotateTabularCB, SIGNAL(clicked()), this, SLOT(rotateTabular()));
+ connect(rotateCellCB, SIGNAL(clicked()), this, SLOT(rotateCell()));
+ connect(longTabularCB, SIGNAL(clicked()), this, SLOT(longTabular()));
}
}
+void QTabularDialog::on_booktabsRB_toggled()
+{
+ form_->changed();
+ form_->controller().booktabs(booktabsRB->isChecked());
+ form_->update_borders();
+}
+
+
+void QTabularDialog::topspace_changed()
+{
+ switch(topspaceCO->currentItem()) {
+ case 0: {
+ form_->controller().set(LyXTabular::SET_TOP_SPACE, "");
+ topspaceED->setEnabled(false);
+ topspaceUnit->setEnabled(false);
+ break;
+ }
+ case 1: {
+ form_->controller().set(LyXTabular::SET_TOP_SPACE, "default");
+ topspaceED->setEnabled(false);
+ topspaceUnit->setEnabled(false);
+ break;
+ }
+ case 2: {
+ if (!topspaceED->text().isEmpty())
+ form_->controller().set(LyXTabular::SET_TOP_SPACE,
+ widgetsToLength(topspaceED, topspaceUnit));
+ if (!form_->bc().bp().isReadOnly()) {
+ topspaceED->setEnabled(true);
+ topspaceUnit->setEnabled(true);
+ }
+ break;
+ }
+ }
+ form_->changed();
+}
+
+
+void QTabularDialog::bottomspace_changed()
+{
+ switch(bottomspaceCO->currentItem()) {
+ case 0: {
+ form_->controller().set(LyXTabular::SET_BOTTOM_SPACE, "");
+ bottomspaceED->setEnabled(false);
+ bottomspaceUnit->setEnabled(false);
+ break;
+ }
+ case 1: {
+ form_->controller().set(LyXTabular::SET_BOTTOM_SPACE, "default");
+ bottomspaceED->setEnabled(false);
+ bottomspaceUnit->setEnabled(false);
+ break;
+ }
+ case 2: {
+ if (!bottomspaceED->text().isEmpty())
+ form_->controller().set(LyXTabular::SET_BOTTOM_SPACE,
+ widgetsToLength(bottomspaceED, bottomspaceUnit));
+ if (!form_->bc().bp().isReadOnly()) {
+ bottomspaceED->setEnabled(true);
+ bottomspaceUnit->setEnabled(true);
+ }
+ break;
+ }
+ }
+ form_->changed();
+}
+
+
+void QTabularDialog::interlinespace_changed()
+{
+ switch(interlinespaceCO->currentItem()) {
+ case 0: {
+ form_->controller().set(LyXTabular::SET_INTERLINE_SPACE, "");
+ interlinespaceED->setEnabled(false);
+ interlinespaceUnit->setEnabled(false);
+ break;
+ }
+ case 1: {
+ form_->controller().set(LyXTabular::SET_INTERLINE_SPACE, "default");
+ interlinespaceED->setEnabled(false);
+ interlinespaceUnit->setEnabled(false);
+ break;
+ }
+ case 2: {
+ if (!interlinespaceED->text().isEmpty())
+ form_->controller().set(LyXTabular::SET_INTERLINE_SPACE,
+ widgetsToLength(interlinespaceED, interlinespaceUnit));
+ if (!form_->bc().bp().isReadOnly()) {
+ interlinespaceED->setEnabled(true);
+ interlinespaceUnit->setEnabled(true);
+ }
+ break;
+ }
+ }
+ form_->changed();
+}
+
+
void QTabularDialog::close_clicked()
{
form_->closeGUI();
protected Q_SLOTS:
virtual void change_adaptor();
+ virtual void topspace_changed();
+ virtual void bottomspace_changed();
+ virtual void interlinespace_changed();
+ virtual void on_booktabsRB_toggled();
virtual void close_clicked();
virtual void borderSet_clicked();
virtual void borderUnset_clicked();
<rect>
<x>0</x>
<y>0</y>
- <width>447</width>
- <height>408</height>
+ <width>439</width>
+ <height>360</height>
</rect>
</property>
<property name="windowTitle" >
<property name="sizeGripEnabled" >
<bool>true</bool>
</property>
- <layout class="QVBoxLayout" >
+ <layout class="QGridLayout" >
<property name="margin" >
- <number>11</number>
+ <number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
- <item>
+ <item row="0" column="0" >
<widget class="QTabWidget" name="TabWidget" >
<property name="toolTip" >
<string/>
<property name="tabShape" >
<enum>QTabWidget::Rounded</enum>
</property>
+ <property name="currentIndex" >
+ <number>2</number>
+ </property>
<widget class="QWidget" name="Settings" >
<attribute name="title" >
<string>&Table Settings</string>
</attribute>
<layout class="QGridLayout" >
<property name="margin" >
- <number>11</number>
+ <number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
- <item row="0" column="0" colspan="2" >
+ <item row="1" column="0" colspan="3" >
+ <widget class="QGroupBox" name="GroupBox12" >
+ <property name="title" >
+ <string>Column Width</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="2" >
+ <widget class="LengthCombo" name="widthUnit" />
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLineEdit" name="widthED" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" >
+ <string>Fixed width of the column</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="2" >
+ <widget class="QComboBox" name="vAlignCB" >
+ <property name="toolTip" >
+ <string>Vertical alignment for fixed width columns</string>
+ </property>
+ <item>
+ <property name="text" >
+ <string>Top</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Middle</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Bottom</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="fixedWidthColLA" >
+ <property name="text" >
+ <string>&Width:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>widthED</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="vAlignCO" >
+ <property name="text" >
+ <string>&Vertical alignment:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>vAlignCB</cstring>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="0" >
<widget class="QLabel" name="hAlignCO" >
<property name="text" >
<string>&Horizontal alignment:</string>
</property>
</widget>
</item>
- <item row="0" column="2" >
+ <item row="0" column="1" >
<widget class="QComboBox" name="hAlignCB" >
<property name="toolTip" >
<string>Horizontal alignment in column</string>
</item>
</widget>
</item>
- <item row="3" column="0" colspan="4" >
+ <item row="0" column="2" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="3" column="0" colspan="2" >
<widget class="QCheckBox" name="rotateTabularCB" >
<property name="enabled" >
<bool>true</bool>
</property>
</widget>
</item>
- <item row="4" column="0" colspan="4" >
+ <item row="4" column="0" colspan="2" >
<widget class="QCheckBox" name="rotateCellCB" >
<property name="toolTip" >
<string>Rotate this cell by 90 degrees</string>
</property>
</widget>
</item>
- <item row="5" column="0" colspan="2" >
+ <item row="2" column="0" >
+ <widget class="QCheckBox" name="multicolumnCB" >
+ <property name="toolTip" >
+ <string>Merge cells</string>
+ </property>
+ <property name="text" >
+ <string>&Multicolumn</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" >
<widget class="QLabel" name="specialAlignmentLA" >
<property name="text" >
<string>LaTe&X argument:</string>
</property>
</widget>
</item>
- <item row="5" column="2" colspan="2" >
+ <item row="5" column="1" colspan="2" >
<widget class="QLineEdit" name="specialAlignmentED" >
<property name="toolTip" >
<string>Custom column format (LaTeX)</string>
</property>
</widget>
</item>
- <item row="6" column="2" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeType" >
- <enum>QSizePolicy::Expanding</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="0" column="3" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType" >
- <enum>QSizePolicy::Expanding</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="2" column="0" >
- <widget class="QCheckBox" name="multicolumnCB" >
- <property name="toolTip" >
- <string>Merge cells</string>
- </property>
- <property name="text" >
- <string>&Multicolumn</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0" colspan="4" >
- <widget class="QGroupBox" name="GroupBox12" >
- <property name="title" >
- <string>Column Width</string>
- </property>
- <layout class="QGridLayout" >
- <property name="margin" >
- <number>11</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item row="1" column="0" >
- <widget class="QLabel" name="vAlignCO" >
- <property name="text" >
- <string>&Vertical alignment:</string>
- </property>
- <property name="buddy" >
- <cstring>vAlignCB</cstring>
- </property>
- </widget>
- </item>
- <item row="0" column="2" >
- <widget class="LengthCombo" name="widthUnit" >
- <property name="enabled" >
- <bool>true</bool>
- </property>
- <property name="minimumSize" >
- <size>
- <width>50</width>
- <height>0</height>
- </size>
- </property>
- <property name="focusPolicy" >
- <enum>Qt::StrongFocus</enum>
- </property>
- <property name="toolTip" >
- <string>Width unit</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1" >
- <widget class="QLineEdit" name="widthED" >
- <property name="enabled" >
- <bool>true</bool>
- </property>
- <property name="toolTip" >
- <string>Fixed width of the column</string>
- </property>
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item row="0" column="0" >
- <widget class="QLabel" name="fixedWidthColLA" >
- <property name="text" >
- <string>&Width:</string>
- </property>
- <property name="buddy" >
- <cstring>widthED</cstring>
- </property>
- </widget>
- </item>
- <item row="1" column="1" >
- <widget class="QComboBox" name="vAlignCB" >
- <property name="toolTip" >
- <string>Vertical alignment for fixed width columns</string>
- </property>
- <item>
- <property name="text" >
- <string>Top</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>Middle</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>Bottom</string>
- </property>
- </item>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
</layout>
</widget>
<widget class="QWidget" name="Borders" >
</attribute>
<layout class="QGridLayout" >
<property name="margin" >
- <number>11</number>
+ <number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item row="0" column="0" >
- <widget class="QGroupBox" name="setBordersGB" >
- <property name="title" >
- <string>Set Borders</string>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
</property>
- <layout class="QGridLayout" >
- <property name="margin" >
- <number>11</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item row="0" column="0" >
- <widget class="QFrame" name="bordersF" >
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="1" >
+ <widget class="QGroupBox" name="allBordersGB" >
+ <property name="title" >
+ <string>All Borders</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>11</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QPushButton" name="borderSetPB" >
+ <property name="toolTip" >
+ <string>Set all borders of the current (selected) cell(s)</string>
+ </property>
+ <property name="text" >
+ <string>&Set</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QPushButton" name="borderUnsetPB" >
+ <property name="toolTip" >
+ <string>Unset all borders of the current (selected) cell(s)</string>
+ </property>
+ <property name="text" >
+ <string>C&lear</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QGroupBox" name="borderStyleGB" >
+ <property name="title" >
+ <string>Style</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
</property>
- <property name="palette" >
- <palette>
- <active>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>230</red>
- <green>240</green>
- <blue>249</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>242</red>
- <green>247</green>
- <blue>252</blue>
- </color>
- <color>
- <red>115</red>
- <green>120</green>
- <blue>124</blue>
- </color>
- <color>
- <red>154</red>
- <green>160</green>
- <blue>166</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>16</red>
- <green>145</green>
- <blue>210</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>255</blue>
- </color>
- <color>
- <red>255</red>
- <green>0</green>
- <blue>255</blue>
- </color>
- <color>
- <red>232</red>
- <green>232</green>
- <blue>232</blue>
- </color>
- </active>
- <inactive>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>230</red>
- <green>240</green>
- <blue>249</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>115</red>
- <green>120</green>
- <blue>124</blue>
- </color>
- <color>
- <red>154</red>
- <green>160</green>
- <blue>166</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>16</red>
- <green>145</green>
- <blue>210</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>255</blue>
- </color>
- <color>
- <red>255</red>
- <green>0</green>
- <blue>255</blue>
- </color>
- <color>
- <red>232</red>
- <green>232</green>
- <blue>232</blue>
- </color>
- </inactive>
- <disabled>
- <color>
- <red>128</red>
- <green>128</green>
- <blue>128</blue>
- </color>
- <color>
- <red>230</red>
- <green>240</green>
- <blue>249</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>115</red>
- <green>120</green>
- <blue>124</blue>
- </color>
- <color>
- <red>154</red>
- <green>160</green>
- <blue>166</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>128</red>
- <green>128</green>
- <blue>128</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>0</blue>
- </color>
- <color>
- <red>16</red>
- <green>145</green>
- <blue>210</blue>
- </color>
- <color>
- <red>255</red>
- <green>255</green>
- <blue>255</blue>
- </color>
- <color>
- <red>0</red>
- <green>0</green>
- <blue>255</blue>
- </color>
- <color>
- <red>255</red>
- <green>0</green>
- <blue>255</blue>
- </color>
- <color>
- <red>232</red>
- <green>232</green>
- <blue>232</blue>
- </color>
- </disabled>
- </palette>
+ <property name="spacing" >
+ <number>6</number>
</property>
- <property name="frameShape" >
- <enum>QFrame::StyledPanel</enum>
+ <item row="1" column="0" >
+ <widget class="QRadioButton" name="booktabsRB" >
+ <property name="toolTip" >
+ <string>Use formal (a.k.a. booktabs) border style (no vertical borders)</string>
+ </property>
+ <property name="text" >
+ <string>Fo&rmal</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QRadioButton" name="borderDefaultRB" >
+ <property name="toolTip" >
+ <string>Use default (grid-like) border style</string>
+ </property>
+ <property name="text" >
+ <string>De&fault</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QGroupBox" name="setBordersGB" >
+ <property name="title" >
+ <string>Set Borders</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>11</number>
</property>
- <property name="frameShadow" >
- <enum>QFrame::Sunken</enum>
+ <property name="spacing" >
+ <number>6</number>
</property>
- <layout class="QGridLayout" >
- <property name="margin" >
- <number>3</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item row="0" column="0" >
- <widget class="QSetBorder" name="borders" >
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <item row="0" column="0" >
+ <widget class="QFrame" name="bordersF" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="palette" >
+ <palette>
+ <active>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>230</red>
+ <green>240</green>
+ <blue>249</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>242</red>
+ <green>247</green>
+ <blue>252</blue>
+ </color>
+ <color>
+ <red>115</red>
+ <green>120</green>
+ <blue>124</blue>
+ </color>
+ <color>
+ <red>154</red>
+ <green>160</green>
+ <blue>166</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>16</red>
+ <green>145</green>
+ <blue>210</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>232</red>
+ <green>232</green>
+ <blue>232</blue>
+ </color>
+ </active>
+ <inactive>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>230</red>
+ <green>240</green>
+ <blue>249</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>115</red>
+ <green>120</green>
+ <blue>124</blue>
+ </color>
+ <color>
+ <red>154</red>
+ <green>160</green>
+ <blue>166</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>16</red>
+ <green>145</green>
+ <blue>210</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>232</red>
+ <green>232</green>
+ <blue>232</blue>
+ </color>
+ </inactive>
+ <disabled>
+ <color>
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>230</red>
+ <green>240</green>
+ <blue>249</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>115</red>
+ <green>120</green>
+ <blue>124</blue>
+ </color>
+ <color>
+ <red>154</red>
+ <green>160</green>
+ <blue>166</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>16</red>
+ <green>145</green>
+ <blue>210</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>232</red>
+ <green>232</green>
+ <blue>232</blue>
+ </color>
+ </disabled>
+ </palette>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>3</number>
</property>
- <property name="toolTip" >
- <string>Set borders of the current (selected) cell(s)</string>
+ <property name="spacing" >
+ <number>6</number>
</property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="0" column="1" >
- <widget class="QGroupBox" name="allBordersGB" >
- <property name="title" >
- <string>All Borders</string>
- </property>
- <layout class="QGridLayout" >
- <property name="margin" >
- <number>11</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item row="0" column="0" >
- <widget class="QPushButton" name="borderSetPB" >
- <property name="toolTip" >
- <string>Set all borders of the current (selected) cell(s)</string>
- </property>
- <property name="text" >
- <string>&Set</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <widget class="QPushButton" name="borderUnsetPB" >
- <property name="toolTip" >
- <string>Unset all borders of the current (selected) cell(s)</string>
+ <item row="0" column="0" >
+ <widget class="QSetBorder" name="borders" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" >
+ <string>Set borders of the current (selected) cell(s)</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="4" >
+ <widget class="QGroupBox" name="SpaceGB" >
+ <property name="title" >
+ <string>Additional Space</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
</property>
- <property name="text" >
- <string>C&lear</string>
+ <property name="spacing" >
+ <number>6</number>
</property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="0" column="2" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType" >
- <enum>QSizePolicy::Expanding</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="1" column="0" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeType" >
- <enum>QSizePolicy::Expanding</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="topspaceLA" >
+ <property name="text" >
+ <string>T&op of row:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>topspaceCO</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QLineEdit" name="topspaceED" />
+ </item>
+ <item row="0" column="3" >
+ <widget class="LengthCombo" name="topspaceUnit" />
+ </item>
+ <item row="0" column="1" >
+ <widget class="QComboBox" name="topspaceCO" >
+ <item>
+ <property name="text" >
+ <string>None</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Default</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Custom</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QComboBox" name="bottomspaceCO" >
+ <item>
+ <property name="text" >
+ <string>None</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Default</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Custom</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="LengthCombo" name="bottomspaceUnit" />
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLineEdit" name="bottomspaceED" />
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="bottomspaceLA" >
+ <property name="text" >
+ <string>Botto&m of row:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>bottomspaceCO</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QLineEdit" name="interlinespaceED" />
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="interlinespaceLA" >
+ <property name="text" >
+ <string>Bet&ween rows:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>interlinespaceCO</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QComboBox" name="interlinespaceCO" >
+ <item>
+ <property name="text" >
+ <string>None</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Default</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Custom</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="2" column="3" >
+ <widget class="LengthCombo" name="interlinespaceUnit" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
</item>
</layout>
</widget>
</attribute>
<layout class="QGridLayout" >
<property name="margin" >
- <number>11</number>
+ <number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
- <item row="0" column="0" >
- <widget class="QCheckBox" name="longTabularCB" >
+ <item row="3" column="0" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QCheckBox" name="newpageCB" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
<property name="toolTip" >
- <string>Select for tables that span multiple pages</string>
+ <string>Set a page break on the current row</string>
</property>
<property name="text" >
- <string>&Use long table</string>
+ <string>Page &break on current row</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
- <item row="2" column="0" >
- <widget class="QCheckBox" name="newpageCB" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
+ <item row="0" column="0" >
+ <widget class="QCheckBox" name="longTabularCB" >
<property name="toolTip" >
- <string>Set a page break on the current row</string>
+ <string>Select for tables that span multiple pages</string>
</property>
<property name="text" >
- <string>Page &break on current row</string>
+ <string>&Use long table</string>
</property>
</widget>
</item>
</widget>
</widget>
</item>
- <item>
+ <item row="1" column="0" >
<layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
<pixmapfunction></pixmapfunction>
<customwidgets>
<customwidget>
- <class>QSetBorder</class>
- <extends></extends>
- <header>qsetborder.h</header>
+ <class>LengthCombo</class>
+ <extends>QComboBox</extends>
+ <header>lengthcombo.h</header>
<container>0</container>
<pixmap></pixmap>
</customwidget>
<customwidget>
- <class>LengthCombo</class>
- <extends></extends>
- <header>lengthcombo.h</header>
+ <class>QSetBorder</class>
+ <extends>QWidget</extends>
+ <header>qsetborder.h</header>
<container>0</container>
<pixmap></pixmap>
</customwidget>
<tabstop>rotateTabularCB</tabstop>
<tabstop>rotateCellCB</tabstop>
<tabstop>specialAlignmentED</tabstop>
+ <tabstop>closePB</tabstop>
<tabstop>borderSetPB</tabstop>
<tabstop>borderUnsetPB</tabstop>
+ <tabstop>borderDefaultRB</tabstop>
+ <tabstop>booktabsRB</tabstop>
+ <tabstop>topspaceCO</tabstop>
+ <tabstop>bottomspaceCO</tabstop>
+ <tabstop>interlinespaceCO</tabstop>
+ <tabstop>topspaceED</tabstop>
+ <tabstop>bottomspaceED</tabstop>
+ <tabstop>interlinespaceED</tabstop>
+ <tabstop>topspaceUnit</tabstop>
+ <tabstop>bottomspaceUnit</tabstop>
+ <tabstop>interlinespaceUnit</tabstop>
<tabstop>longTabularCB</tabstop>
<tabstop>headerStatusCB</tabstop>
<tabstop>headerBorderAboveCB</tabstop>
<tabstop>lastfooterBorderBelowCB</tabstop>
<tabstop>lastfooterNoContentsCB</tabstop>
<tabstop>newpageCB</tabstop>
- <tabstop>closePB</tabstop>
</tabstops>
<resources/>
<connections/>
* FormFileDialog.C: add #include "filefilterlist.h"
* FormBibtex.C: remove #include "globbing.h".
+2004-11-16 Georg Baum <Georg.Baum@post.rwth-aachen.de>
+
+ * FormTabular.C (update): disable vertical rules if using
+ booktabs
+
2004-11-16 Lars Gullik Bjonnes <larsbj@gullik.net>
* Layoutengine.[Ch]: Break up circular dependency between Box and
* XFormsView.C (hasFocus): new method, always returns true for now
+2004-11-11 Edwin Leuven
+
+ * FormTabular.C (update, input): handle check_booktabs
+ * forms/form_tabular.fd (check_booktabs): new checkbox
+
2004-11-08 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* XFormsToolbar.C (selected): use layoutSelected
fl_set_input_return(column_options_->input_column_width,
FL_RETURN_END);
+ fl_set_input_return(column_options_->input_topspace,
+ FL_RETURN_END);
+ fl_set_input_return(column_options_->input_bottomspace,
+ FL_RETURN_END);
+ fl_set_input_return(column_options_->input_interlinespace,
+ FL_RETURN_END);
fl_set_input_return(column_options_->input_special_alignment,
FL_RETURN_END);
// trigger an input event for cut&paste with middle mouse button.
setPrehandler(column_options_->input_column_width);
+ setPrehandler(column_options_->input_topspace);
+ setPrehandler(column_options_->input_bottomspace);
+ setPrehandler(column_options_->input_interlinespace);
setPrehandler(column_options_->input_special_alignment);
fl_addto_choice(column_options_->choice_value_column_width,
units.c_str());
+ fl_addto_choice(column_options_->choice_value_topspace,
+ units.c_str());
+ fl_addto_choice(column_options_->choice_value_bottomspace,
+ units.c_str());
+ fl_addto_choice(column_options_->choice_value_interlinespace,
+ units.c_str());
// cell options form
cell_options_.reset(build_tabular_cell(this));
fl_activate_object(cell_options_->input_special_multialign);
fl_activate_object(column_options_->input_column_width);
fl_activate_object(column_options_->choice_value_column_width);
+ fl_activate_object(column_options_->input_topspace);
+ fl_activate_object(column_options_->choice_value_topspace);
+ fl_activate_object(column_options_->input_bottomspace);
+ fl_activate_object(column_options_->choice_value_bottomspace);
+ fl_activate_object(column_options_->input_interlinespace);
+ fl_activate_object(column_options_->choice_value_interlinespace);
fl_set_input(dialog_->input_tabular_column,
convert<string>(column).c_str());
fl_deactivate_object(dialog_->input_tabular_column);
tabular.bottomLine(cell)?1:0);
setEnabled(cell_options_->check_border_bottom, true);
// pay attention to left/right lines they are only allowed
- // to set if we are in first/last cell of row or if the left/right
- // cell is also a multicolumn.
+ // to set if we don't use booktabs and if we are in
+ // first/last cell of row or if the left/right cell is also a
+ // multicolumn.
if (tabular.isFirstCellInRow(cell) ||
tabular.isMultiColumn(cell-1)) {
fl_set_button(cell_options_->check_border_left,
tabular.leftLine(cell)?1:0);
- setEnabled(cell_options_->check_border_left, true);
+ setEnabled(cell_options_->check_border_left,
+ !tabular.useBookTabs());
} else {
fl_set_button(cell_options_->check_border_left, 0);
setEnabled(cell_options_->check_border_left, false);
tabular.isMultiColumn(cell+1)) {
fl_set_button(cell_options_->check_border_right,
tabular.rightLine(cell)?1:0);
- setEnabled(cell_options_->check_border_right, true);
+ setEnabled(cell_options_->check_border_right,
+ !tabular.useBookTabs());
} else {
fl_set_button(cell_options_->check_border_right, 0);
setEnabled(cell_options_->check_border_right, false);
setEnabled(column_options_->input_column_width, !isReadonly);
setEnabled(column_options_->choice_value_column_width, !isReadonly);
+ if (tabular.row_info[row].top_space_default)
+ fl_set_input(column_options_->input_topspace, "default");
+ else {
+ updateWidgetsFromLength(column_options_->input_topspace,
+ column_options_->choice_value_topspace,
+ tabular.row_info[row].top_space,
+ default_unit);
+ }
+ setEnabled(column_options_->input_topspace, !isReadonly);
+ setEnabled(column_options_->choice_value_topspace, !isReadonly);
+
+ if (tabular.row_info[row].bottom_space_default)
+ fl_set_input(column_options_->input_bottomspace, "default");
+ else {
+ updateWidgetsFromLength(column_options_->input_bottomspace,
+ column_options_->choice_value_bottomspace,
+ tabular.row_info[row].bottom_space,
+ default_unit);
+ }
+ setEnabled(column_options_->input_bottomspace, !isReadonly);
+ setEnabled(column_options_->choice_value_bottomspace, !isReadonly);
+
+ if (tabular.row_info[row].interline_space_default)
+ fl_set_input(column_options_->input_interlinespace, "default");
+ else {
+ updateWidgetsFromLength(column_options_->input_interlinespace,
+ column_options_->choice_value_interlinespace,
+ tabular.row_info[row].interline_space,
+ default_unit);
+ }
+ setEnabled(column_options_->input_interlinespace, !isReadonly);
+ setEnabled(column_options_->choice_value_interlinespace, !isReadonly);
+
setEnabled(cell_options_->check_useminipage, !pwidth.zero());
if (!pwidth.zero()) {
if (tabular.getUsebox(cell) == 2)
setEnabled(column_options_->radio_valign_bottom, !pwidth.zero());
setEnabled(column_options_->radio_valign_middle, !pwidth.zero());
+ fl_set_button(tabular_options_->check_booktabs,
+ tabular.useBookTabs());
+
fl_set_button(tabular_options_->check_longtable,
tabular.isLongTabular());
return ButtonPolicy::SMI_VALID;
}
+ if ((ob == column_options_->input_topspace) ||
+ (ob == column_options_->choice_value_topspace)) {
+ string const input = getString(column_options_->input_topspace);
+ if (input == "default")
+ controller().set(LyXTabular::SET_TOP_SPACE, "default");
+ else {
+ string const str = getLengthFromWidgets(
+ column_options_->input_topspace,
+ column_options_->choice_value_topspace);
+ controller().set(LyXTabular::SET_TOP_SPACE, str);
+
+ //check if the input is valid
+ if (!input.empty() && !isValidLength(input) && !isStrDbl(input)) {
+ postWarning(_("Invalid Length (valid example: 10mm)"));
+ return ButtonPolicy::SMI_INVALID;
+ }
+ }
+
+ update(); // update for alignment
+ return ButtonPolicy::SMI_VALID;
+ }
+
+ if ((ob == column_options_->input_bottomspace) ||
+ (ob == column_options_->choice_value_bottomspace)) {
+ string const input = getString(column_options_->input_bottomspace);
+ if (input == "default")
+ controller().set(LyXTabular::SET_BOTTOM_SPACE, "default");
+ else {
+ string const str = getLengthFromWidgets(
+ column_options_->input_bottomspace,
+ column_options_->choice_value_bottomspace);
+ controller().set(LyXTabular::SET_BOTTOM_SPACE, str);
+
+ //check if the input is valid
+ if (!input.empty() && !isValidLength(input) && !isStrDbl(input)) {
+ postWarning(_("Invalid Length (valid example: 10mm)"));
+ return ButtonPolicy::SMI_INVALID;
+ }
+ }
+
+ update(); // update for alignment
+ return ButtonPolicy::SMI_VALID;
+ }
+
+ if ((ob == column_options_->input_interlinespace) ||
+ (ob == column_options_->choice_value_interlinespace)) {
+ string const input = getString(column_options_->input_interlinespace);
+ if (input == "default")
+ controller().set(LyXTabular::SET_INTERLINE_SPACE, "default");
+ else {
+ string const str = getLengthFromWidgets(
+ column_options_->input_interlinespace,
+ column_options_->choice_value_interlinespace);
+ controller().set(LyXTabular::SET_INTERLINE_SPACE, str);
+
+ //check if the input is valid
+ if (!input.empty() && !isValidLength(input) && !isStrDbl(input)) {
+ postWarning(_("Invalid Length (valid example: 10mm)"));
+ return ButtonPolicy::SMI_INVALID;
+ }
+ }
+
+ update(); // update for alignment
+ return ButtonPolicy::SMI_VALID;
+ }
+
if ((ob == cell_options_->input_mcolumn_width) ||
(ob == cell_options_->choice_value_mcolumn_width)) {
string const str =
num = LyXTabular::SET_LONGTABULAR;
else
num = LyXTabular::UNSET_LONGTABULAR;
+ } else if (ob == tabular_options_->check_booktabs) {
+ if (fl_get_button(tabular_options_->check_booktabs))
+ num = LyXTabular::SET_BOOKTABS;
+ else
+ num = LyXTabular::UNSET_BOOKTABS;
} else if (ob == tabular_options_->check_rotate_tabular) {
s = fl_get_button(tabular_options_->check_rotate_tabular);
if (s)
=============== FORM ===============
Name: form_tabular
Width: 510
-Height: 325
+Height: 400
Number of Objects: 6
--------------------
class: FL_BOX
type: FLAT_BOX
-box: 0 0 510 325
+box: 0 0 510 400
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
--------------------
class: FL_TABFOLDER
type: TOP_TABFOLDER
-box: 0 0 505 250
+box: 0 0 505 335
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_TOP_LEFT
--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
-box: 415 290 90 30
+box: 415 365 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
--------------------
class: FL_INPUT
type: NORMAL_INPUT
-box: 65 290 60 30
+box: 65 365 60 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_TOP_LEFT
--------------------
class: FL_INPUT
type: NORMAL_INPUT
-box: 5 290 60 30
+box: 5 365 60 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_TOP_LEFT
Name: form_tabular_options
Width: 505
Height: 225
-Number of Objects: 10
+Number of Objects: 11
--------------------
class: FL_BOX
--------------------
class: FL_LABELFRAME
type: ENGRAVED_FRAME
-box: 280 20 120 75
+box: 280 20 120 90
boxtype: FL_NO_BOX
colors: FL_BLACK FL_COL1
alignment: FL_ALIGN_TOP_LEFT
callback:
argument:
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 280 80 95 25
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_DEFAULT_SIZE
+lcol: FL_BLACK
+label: Formal table|#F
+shortcut:
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: check_booktabs
+callback: C_FormDialogView_InputCB
+argument: 0
+
=============== FORM ===============
Name: form_tabular_column
Width: 505
-Height: 225
-Number of Objects: 24
+Height: 315
+Number of Objects: 31
--------------------
class: FL_BOX
type: FLAT_BOX
-box: 0 0 505 225
+box: 0 0 505 315
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
callback:
argument:
+--------------------
+class: FL_LABELFRAME
+type: ENGRAVED_FRAME
+box: 20 230 475 75
+boxtype: FL_NO_BOX
+colors: FL_BLACK FL_COL1
+alignment: FL_ALIGN_TOP_LEFT
+style: FL_BOLD_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Vertical Space
+shortcut:
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name:
+callback:
+argument:
+
--------------------
class: FL_LABELFRAME
type: ENGRAVED_FRAME
callback: C_FormDialogView_InputCB
argument: 0
+--------------------
+class: FL_INPUT
+type: NORMAL_INPUT
+box: 30 270 75 30
+boxtype: FL_DOWN_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_TOP_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Top|#T
+shortcut:
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: input_topspace
+callback: C_FormDialogView_InputCB
+argument: 0
+
+--------------------
+class: FL_CHOICE
+type: NORMAL_CHOICE
+box: 110 270 60 30
+boxtype: FL_FRAME_BOX
+colors: FL_COL1 FL_BLACK
+alignment: FL_ALIGN_TOP_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: |#L
+shortcut:
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: choice_value_topspace
+callback: C_FormDialogView_InputCB
+argument: 0
+
+--------------------
+class: FL_INPUT
+type: NORMAL_INPUT
+box: 190 270 75 30
+boxtype: FL_DOWN_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_TOP_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Bottom|#B
+shortcut:
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: input_bottomspace
+callback: C_FormDialogView_InputCB
+argument: 0
+
+--------------------
+class: FL_CHOICE
+type: NORMAL_CHOICE
+box: 270 270 60 30
+boxtype: FL_FRAME_BOX
+colors: FL_COL1 FL_BLACK
+alignment: FL_ALIGN_TOP_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: |#L
+shortcut:
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: choice_value_bottomspace
+callback: C_FormDialogView_InputCB
+argument: 0
+
+--------------------
+class: FL_INPUT
+type: NORMAL_INPUT
+box: 350 270 75 30
+boxtype: FL_DOWN_BOX
+colors: FL_COL1 FL_MCOL
+alignment: FL_ALIGN_TOP_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Interline|#I
+shortcut:
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: input_interlinespace
+callback: C_FormDialogView_InputCB
+argument: 0
+
+--------------------
+class: FL_CHOICE
+type: NORMAL_CHOICE
+box: 430 270 60 30
+boxtype: FL_FRAME_BOX
+colors: FL_COL1 FL_BLACK
+alignment: FL_ALIGN_TOP_LEFT
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: |#L
+shortcut:
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: choice_value_interlinespace
+callback: C_FormDialogView_InputCB
+argument: 0
+
=============== FORM ===============
Name: form_tabular_cell
Width: 505
* insettabular.[Ch] (string2params): Don't pretend to return the
active cell anymore and simplify keyword parsing.
+2004-11-11 Edwin Leuven
+
+ * insettabular.C (getStatus, tabularFeatures): handle booktabs feature
+
2004-11-10 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* insetlatexaccent.h (isLetter): implement, so that word selection
int const ADD_TO_HEIGHT = 2;
int const ADD_TO_TABULAR_WIDTH = 2;
+int const default_line_space = 10;
///
boost::scoped_ptr<LyXTabular> paste_tabular;
{ LyXTabular::SET_LTNEWPAGE, "set-ltnewpage" },
{ LyXTabular::SET_SPECIAL_COLUMN, "set-special-column" },
{ LyXTabular::SET_SPECIAL_MULTI, "set-special-multi" },
+ { LyXTabular::SET_BOOKTABS, "set-booktabs" },
+ { LyXTabular::UNSET_BOOKTABS, "unset-booktabs" },
+ { LyXTabular::SET_TOP_SPACE, "set-top-space" },
+ { LyXTabular::SET_BOTTOM_SPACE, "set-bottom-space" },
+ { LyXTabular::SET_INTERLINE_SPACE, "set-interline-space" },
{ LyXTabular::LAST_ACTION, "" }
};
tabular.setWidthOfCell(cell, dim.wid);
++cell;
}
- tabular.setAscentOfRow(i, maxAsc + ADD_TO_HEIGHT);
- tabular.setDescentOfRow(i, maxDesc + ADD_TO_HEIGHT);
+ int const top_space = tabular.row_info[i].top_space_default ?
+ default_line_space :
+ tabular.row_info[i].top_space.inPixels(mi.base.textwidth);
+ tabular.setAscentOfRow(i, maxAsc + ADD_TO_HEIGHT + top_space);
+ int const bottom_space = tabular.row_info[i].bottom_space_default ?
+ default_line_space :
+ tabular.row_info[i].bottom_space.inPixels(mi.base.textwidth);
+ tabular.setDescentOfRow(i, maxDesc + ADD_TO_HEIGHT + bottom_space);
}
dim.asc = tabular.getAscentOfRow(0);
case LyXTabular::DELETE_COLUMN:
case LyXTabular::SET_ALL_LINES:
case LyXTabular::UNSET_ALL_LINES:
+ case LyXTabular::SET_TOP_SPACE:
+ case LyXTabular::SET_BOTTOM_SPACE:
+ case LyXTabular::SET_INTERLINE_SPACE:
status.clear();
return true;
case LyXTabular::SET_LTNEWPAGE:
status.setOnOff(tabular.getLTNewPage(sel_row_start));
break;
+
+ case LyXTabular::SET_BOOKTABS:
+ status.setOnOff(tabular.useBookTabs());
+ break;
+
+ case LyXTabular::UNSET_BOOKTABS:
+ status.setOnOff(!tabular.useBookTabs());
+ break;
default:
status.clear();
Point o = theCoords.getInsets().xy(&inset);
int const xbeg = o.x_ - tabular.getBeginningOfTextInCell(cell);
int const xend = xbeg + tabular.getWidthOfColumn(cell);
- int const ybeg = o.y_ - inset.ascent();
row_type const row = tabular.row_of_cell(cell);
- int const rowheight = tabular.getAscentOfRow(row)
- + tabular.getDescentOfRow(row);
- int const yend = ybeg + rowheight;
+ int const ybeg = o.y_ - tabular.getAscentOfRow(row) -
+ tabular.getAdditionalHeight(row);
+ int const yend = o.y_ + tabular.getDescentOfRow(row);
if (x < xbeg)
xx = xbeg - x;
tabular.setLTNewPage(row, !tabular.getLTNewPage(row));
break;
+ case LyXTabular::SET_BOOKTABS:
+ tabular.setBookTabs(true);
+ break;
+
+ case LyXTabular::UNSET_BOOKTABS:
+ tabular.setBookTabs(false);
+ break;
+
+ case LyXTabular::SET_TOP_SPACE: {
+ LyXLength len;
+ if (value == "default")
+ for (row_type i = sel_row_start; i <= sel_row_end; ++i)
+ tabular.row_info[i].top_space_default = true;
+ else if (isValidLength(value, &len))
+ for (row_type i = sel_row_start; i <= sel_row_end; ++i) {
+ tabular.row_info[i].top_space_default = false;
+ tabular.row_info[i].top_space = len;
+ }
+ else
+ for (row_type i = sel_row_start; i <= sel_row_end; ++i) {
+ tabular.row_info[i].top_space_default = false;
+ tabular.row_info[i].top_space = len;
+ }
+ break;
+ }
+
+ case LyXTabular::SET_BOTTOM_SPACE: {
+ LyXLength len;
+ if (value == "default")
+ for (row_type i = sel_row_start; i <= sel_row_end; ++i)
+ tabular.row_info[i].bottom_space_default = true;
+ else if (isValidLength(value, &len))
+ for (row_type i = sel_row_start; i <= sel_row_end; ++i) {
+ tabular.row_info[i].bottom_space_default = false;
+ tabular.row_info[i].bottom_space = len;
+ }
+ else
+ for (row_type i = sel_row_start; i <= sel_row_end; ++i) {
+ tabular.row_info[i].bottom_space_default = false;
+ tabular.row_info[i].bottom_space = len;
+ }
+ break;
+ }
+
+ case LyXTabular::SET_INTERLINE_SPACE: {
+ LyXLength len;
+ if (value == "default")
+ for (row_type i = sel_row_start; i <= sel_row_end; ++i)
+ tabular.row_info[i].interline_space_default = true;
+ else if (isValidLength(value, &len))
+ for (row_type i = sel_row_start; i <= sel_row_end; ++i) {
+ tabular.row_info[i].interline_space_default = false;
+ tabular.row_info[i].interline_space = len;
+ }
+ else
+ for (row_type i = sel_row_start; i <= sel_row_end; ++i) {
+ tabular.row_info[i].interline_space_default = false;
+ tabular.row_info[i].interline_space = len;
+ }
+ break;
+ }
+
// dummy stuff just to avoid warnings
case LyXTabular::LAST_ACTION:
break;
namespace {
int const WIDTH_OF_LINE = 5;
+int const default_line_space = 10;
+
template <class T>
string const write_attribute(string const & name, T const & t)
}
+bool getTokenValue(string const & str, char const * token, LyXLength & len, bool & flag)
+{
+ len = LyXLength();
+ flag = false;
+ string tmp;
+ if (!getTokenValue(str, token, tmp))
+ return false;
+ if (tmp == "default") {
+ flag = true;
+ return true;
+ }
+ return isValidLength(tmp, &len);
+}
+
+
void l_getline(istream & is, string & str)
{
str.erase();
descent_of_row(0),
top_line(true),
bottom_line(false),
+ top_space_default(false),
+ bottom_space_default(false),
+ interline_space_default(false),
endhead(false),
endfirsthead(false),
endfoot(false),
column_info.back().right_line = true;
is_long_tabular = false;
rotate = false;
+ use_booktabs = false;
}
}
-// returns 1 if there is a topline, returns 0 if not
bool LyXTabular::topLine(idx_type const cell, bool const onlycolumn) const
{
- if (!onlycolumn && isMultiColumn(cell))
+ if (!onlycolumn && isMultiColumn(cell) &&
+ !(use_booktabs && row_of_cell(cell) == 0))
return cellinfo_of_cell(cell).top_line;
return row_info[row_of_cell(cell)].top_line;
}
bool LyXTabular::bottomLine(idx_type const cell, bool onlycolumn) const
{
- if (!onlycolumn && isMultiColumn(cell))
+ if (!onlycolumn && isMultiColumn(cell) &&
+ !(use_booktabs && isLastRow(cell)))
return cellinfo_of_cell(cell).bottom_line;
return row_info[row_of_cell(cell)].bottom_line;
}
bool LyXTabular::leftLine(idx_type cell, bool onlycolumn) const
{
+ if (use_booktabs)
+ return false;
if (!onlycolumn && isMultiColumn(cell) &&
(isFirstCellInRow(cell) || isMultiColumn(cell-1)))
{
bool LyXTabular::rightLine(idx_type cell, bool onlycolumn) const
{
+ if (use_booktabs)
+ return false;
if (!onlycolumn && isMultiColumn(cell) &&
(isLastCellInRow(cell) || isMultiColumn(cell + 1)))
{
top = row_info[row].top_line;
}
}
+ int const interline_space = row_info[row - 1].interline_space_default ?
+ default_line_space :
+ row_info[row - 1].interline_space.inPixels(width_of_tabular);
if (top && bottom)
- return WIDTH_OF_LINE;
- return 0;
+ return interline_space + WIDTH_OF_LINE;
+ return interline_space;
}
// global longtable options
os << "<features"
<< write_attribute("rotate", rotate)
+ << write_attribute("booktabs", use_booktabs)
<< write_attribute("islongtable", is_long_tabular)
<< write_attribute("firstHeadTopDL", endfirsthead.topDL)
<< write_attribute("firstHeadBottomDL", endfirsthead.bottomDL)
for (row_type i = 0; i < rows_; ++i) {
os << "<row"
<< write_attribute("topline", row_info[i].top_line)
- << write_attribute("bottomline", row_info[i].bottom_line)
- << write_attribute("endhead", row_info[i].endhead)
+ << write_attribute("bottomline", row_info[i].bottom_line);
+ static const string def("default");
+ if (row_info[i].top_space_default)
+ os << write_attribute("topspace", def);
+ else
+ os << write_attribute("topspace", row_info[i].top_space);
+ if (row_info[i].bottom_space_default)
+ os << write_attribute("bottomspace", def);
+ else
+ os << write_attribute("bottomspace", row_info[i].bottom_space);
+ if (row_info[i].interline_space_default)
+ os << write_attribute("interlinespace", def);
+ else
+ os << write_attribute("interlinespace", row_info[i].interline_space);
+ os << write_attribute("endhead", row_info[i].endhead)
<< write_attribute("endfirsthead", row_info[i].endfirsthead)
<< write_attribute("endfoot", row_info[i].endfoot)
<< write_attribute("endlastfoot", row_info[i].endlastfoot)
return;
}
getTokenValue(line, "rotate", rotate);
+ getTokenValue(line, "booktabs", use_booktabs);
getTokenValue(line, "islongtable", is_long_tabular);
getTokenValue(line, "firstHeadTopDL", endfirsthead.topDL);
getTokenValue(line, "firstHeadBottomDL", endfirsthead.bottomDL);
}
getTokenValue(line, "topline", row_info[i].top_line);
getTokenValue(line, "bottomline", row_info[i].bottom_line);
+ getTokenValue(line, "topspace", row_info[i].top_space,
+ row_info[i].top_space_default);
+ getTokenValue(line, "bottomspace", row_info[i].bottom_space,
+ row_info[i].bottom_space_default);
+ getTokenValue(line, "interlinespace", row_info[i].interline_space,
+ row_info[i].interline_space_default);
getTokenValue(line, "endfirsthead", row_info[i].endfirsthead);
getTokenValue(line, "endhead", row_info[i].endhead);
getTokenValue(line, "endfoot", row_info[i].endfoot);
}
+void LyXTabular::setBookTabs(bool what)
+{
+ use_booktabs = what;
+}
+
+
+bool LyXTabular::useBookTabs() const
+{
+ return use_booktabs;
+}
+
+
void LyXTabular::setLongTabular(bool what)
{
is_long_tabular = what;
if (topLine(i))
++tmp;
}
- if (tmp == n - fcell) {
- os << "\\hline ";
+ if (use_booktabs && row == 0) {
+ os << "\\toprule ";
+ } else if (tmp == n - fcell) {
+ os << (use_booktabs ? "\\midrule " : "\\hline ");
} else if (tmp) {
for (idx_type i = fcell; i < n; ++i) {
if (topLine(i)) {
- os << "\\cline{"
+ os << (use_booktabs ? "\\cmidrule{" : "\\cline{")
<< column_of_cell(i) + 1
<< '-'
<< right_column_of_cell(i) + 1
if (bottomLine(i))
++tmp;
}
- if (tmp == n - fcell) {
- os << "\\hline";
+ if (use_booktabs && row == rows_ - 1) {
+ os << "\\bottomrule";
+ } else if (tmp == n - fcell) {
+ os << (use_booktabs ? "\\midrule" : "\\hline");
} else if (tmp) {
for (idx_type i = fcell; i < n; ++i) {
if (bottomLine(i)) {
- os << "\\cline{"
+ os << (use_booktabs ? "\\cmidrule{" : "\\cline{")
<< column_of_cell(i) + 1
<< '-'
<< right_column_of_cell(i) + 1
OutputParams const & runparams) const
{
idx_type cell = getCellNumber(i, 0);
-
int ret = TeXTopHLine(os, i);
+ if (row_info[i].top_space_default) {
+ if (use_booktabs)
+ os << "\\addlinespace\n";
+ else
+ os << "\\noalign{\\vskip\\doublerulesep}\n";
+ } else if(!row_info[i].top_space.zero()) {
+ if (use_booktabs)
+ os << "\\addlinespace["
+ << row_info[i].top_space.asLatexString() << "]\n";
+ else {
+ os << "\\noalign{\\vskip"
+ << row_info[i].top_space.asLatexString() << "}\n";
+ }
+ ++ret;
+ }
+
for (col_type j = 0; j < columns_; ++j) {
if (isPartOfMultiColumn(i, j))
continue;
}
++cell;
}
- os << "\\tabularnewline\n";
+ os << "\\tabularnewline";
+ if (row_info[i].bottom_space_default) {
+ if (use_booktabs)
+ os << "\\addlinespace";
+ else
+ os << "[\\doublerulesep]";
+ } else if (!row_info[i].bottom_space.zero()) {
+ if (use_booktabs)
+ os << "\\addlinespace";
+ os << '[' << row_info[i].bottom_space.asLatexString() << ']';
+ }
+ os << '\n';
++ret;
ret += TeXBottomHLine(os, i);
+ if (row_info[i].interline_space_default) {
+ if (use_booktabs)
+ os << "\\addlinespace\n";
+ else
+ os << "\\noalign{\\vskip\\doublerulesep}\n";
+ } else if (!row_info[i].interline_space.zero()) {
+ if (use_booktabs)
+ os << "\\addlinespace["
+ << row_info[i].interline_space.asLatexString()
+ << "]\n";
+ else
+ os << "\\noalign{\\vskip"
+ << row_info[i].interline_space.asLatexString()
+ << "}\n";
+ ++ret;
+ }
return ret;
}
if (!column_info[i].align_special.empty()) {
os << column_info[i].align_special;
} else {
- if (column_info[i].left_line)
+ if (!use_booktabs && column_info[i].left_line)
os << '|';
if (!column_info[i].p_width.zero()) {
switch (column_info[i].alignment) {
break;
}
}
- if (column_info[i].right_line)
+ if (!use_booktabs && column_info[i].right_line)
os << '|';
}
}
void LyXTabular::validate(LaTeXFeatures & features) const
{
features.require("NeedTabularnewline");
+ if (useBookTabs())
+ features.require("booktabs");
if (isLongTabular())
features.require("longtable");
if (needRotating())
///
SET_SPECIAL_MULTI,
///
+ SET_BOOKTABS,
+ ///
+ UNSET_BOOKTABS,
+ ///
+ SET_TOP_SPACE,
+ ///
+ SET_BOTTOM_SPACE,
+ ///
+ SET_INTERLINE_SPACE,
+ ///
LAST_ACTION
};
///
///
bool isLastRow(idx_type cell) const;
- ///
+ /// return space occupied by the second horizontal line and
+ /// interline space above row \p row in pixels
int getAdditionalHeight(row_type row) const;
///
int getAdditionalWidth(idx_type cell) const;
///
col_type right_column_of_cell(idx_type cell) const;
///
+ void setBookTabs(bool);
+ ///
+ bool useBookTabs() const;
+ ///
void setLongTabular(bool);
///
bool isLongTabular() const;
bool top_line;
///
bool bottom_line;
+ /// Extra space between the top line and this row
+ LyXLength top_space;
+ /// Ignore top_space if true and use the default top space
+ bool top_space_default;
+ /// Extra space between this row and the bottom line
+ LyXLength bottom_space;
+ /// Ignore bottom_space if true and use the default bottom space
+ bool bottom_space_default;
+ /// Extra space between the bottom line and the next top line
+ LyXLength interline_space;
+ /// Ignore interline_space if true and use the default interline space
+ bool interline_space_default;
/// This are for longtabulars only
/// a row of endhead
bool endhead;
///
int width_of_tabular;
///
+ bool use_booktabs;
+ ///
bool rotate;
//
// for long tabulars