#include "GuiTabular.h"
-#include "BufferView.h"
-#include "Cursor.h"
-#include "FuncRequest.h"
#include "GuiSetBorder.h"
+#include "GuiView.h"
#include "LengthCombo.h"
-#include "LyXRC.h"
#include "qt_helpers.h"
#include "Validator.h"
+#include "BufferView.h"
+#include "Cursor.h"
+#include "FuncRequest.h"
+#include "LyXRC.h"
+
#include "insets/InsetTabular.h"
#include <QCheckBox>
namespace frontend {
GuiTabular::GuiTabular(GuiView & lv)
- : GuiDialog(lv, "tabular", qt_("Table Settings"))
+ : GuiDialog(lv, "tabular", qt_("Table Settings")),
+ // tabular_ is initialised at dialog construction in initialiseParams()
+ tabular_(*lv.buffer(), 0, 0)
{
active_cell_ = Tabular::npos;
}
+void GuiTabular::on_captionStatusCB_toggled()
+{
+ set(Tabular::TOGGLE_LTCAPTION);
+ changed();
+}
+
+
void GuiTabular::ltHeaderStatus_clicked()
{
bool enable = headerStatusCB->isChecked();
}
+namespace {
+
+Length getColumnPWidth(Tabular const & t, size_t cell)
+{
+ return t.column_info[t.cellColumn(cell)].p_width;
+}
+
+
+Length getMColumnPWidth(Tabular const & t, size_t cell)
+{
+ if (t.isMultiColumn(cell))
+ return t.cellInfo(cell).p_width;
+ return Length();
+}
+
+
+docstring getAlignSpecial(Tabular const & t, size_t cell, int what)
+{
+ if (what == Tabular::SET_SPECIAL_MULTI)
+ return t.cellInfo(cell).align_special;
+ return t.column_info[t.cellColumn(cell)].align_special;
+}
+
+}
+
+
+
void GuiTabular::updateContents()
{
initialiseParams(string());
- Tabular::idx_type const cell = getActiveCell();
+ size_t const cell = getActiveCell();
Tabular::row_type const row = tabular_.cellRow(cell);
Tabular::col_type const col = tabular_.cellColumn(cell);
multicolumnCB->setChecked(multicol);
rotateCellCB->setChecked(tabular_.getRotateCell(cell));
- rotateTabularCB->setChecked(tabular_.getRotateTabular());
+ rotateTabularCB->setChecked(tabular_.rotate);
- longTabularCB->setChecked(tabular_.isLongTabular());
+ longTabularCB->setChecked(tabular_.is_long_tabular);
update_borders();
docstring special;
if (multicol) {
- special = tabular_.getAlignSpecial(cell, Tabular::SET_SPECIAL_MULTI);
- pwidth = tabular_.getMColumnPWidth(cell);
+ special = getAlignSpecial(tabular_, cell, Tabular::SET_SPECIAL_MULTI);
+ pwidth = getMColumnPWidth(tabular_, cell);
} else {
- special = tabular_.getAlignSpecial(cell, Tabular::SET_SPECIAL_COLUMN);
- pwidth = tabular_.getColumnPWidth(cell);
+ special = getAlignSpecial(tabular_, cell, Tabular::SET_SPECIAL_COLUMN);
+ pwidth = getColumnPWidth(tabular_, cell);
}
specialAlignmentED->setText(toqstr(special));
Length::UNIT default_unit =
useMetricUnits() ? Length::CM : Length::IN;
- borderDefaultRB->setChecked(!tabular_.useBookTabs());
- booktabsRB->setChecked(tabular_.useBookTabs());
+ borderDefaultRB->setChecked(!tabular_.use_booktabs);
+ booktabsRB->setChecked(tabular_.use_booktabs);
if (tabular_.row_info[row].top_space.empty()
&& !tabular_.row_info[row].top_space_default) {
hAlignCB->setEnabled(true);
vAlignCB->setEnabled(!pwidth.zero());
- if (!tabular_.isLongTabular()) {
+ if (!tabular_.is_long_tabular) {
headerStatusCB->setChecked(false);
headerBorderAboveCB->setChecked(false);
headerBorderBelowCB->setChecked(false);
lastfooterNoContentsCB->setChecked(false);
newpageCB->setChecked(false);
newpageCB->setEnabled(false);
+ captionStatusCB->blockSignals(true);
+ captionStatusCB->setChecked(false);
+ captionStatusCB->blockSignals(false);
return;
}
+ captionStatusCB->blockSignals(true);
+ captionStatusCB->setChecked(tabular_.ltCaption(row));
+ captionStatusCB->blockSignals(false);
Tabular::ltType ltt;
bool use_empty;
// since the changes update the actual tabular_
//
// apply the fixed width values
- Tabular::idx_type const cell = getActiveCell();
+ size_t const cell = getActiveCell();
bool const multicol = tabular_.isMultiColumn(cell);
string width = widgetsToLength(widthED, widthUnit);
string width2;
- Length llen = tabular_.getColumnPWidth(cell);
- Length llenMulti = tabular_.getMColumnPWidth(cell);
+ Length llen = getColumnPWidth(tabular_, cell);
+ Length llenMulti = getMColumnPWidth(tabular_, cell);
if (multicol && !llenMulti.zero())
width2 = llenMulti.asString();
docstring sa2;
if (multicol)
- sa2 = tabular_.getAlignSpecial(cell, Tabular::SET_SPECIAL_MULTI);
+ sa2 = getAlignSpecial(tabular_, cell, Tabular::SET_SPECIAL_MULTI);
else
- sa2 = tabular_.getAlignSpecial(cell, Tabular::SET_SPECIAL_COLUMN);
+ sa2 = getAlignSpecial(tabular_, cell, Tabular::SET_SPECIAL_COLUMN);
if (sa1 != sa2) {
if (multicol)