From 8c2af0660c38b52e89b0da6452fdd00a40aa895d Mon Sep 17 00:00:00 2001 From: Angus Leeming Date: Sun, 9 Mar 2003 10:08:22 +0000 Subject: [PATCH] Minimise the ControlTabular interface in preparation for a move to the Dialog-based scheme. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6396 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/controllers/ChangeLog | 7 ++ src/frontends/controllers/ControlTabular.C | 20 ++--- src/frontends/controllers/ControlTabular.h | 15 ++-- src/frontends/qt2/ChangeLog | 10 +++ src/frontends/qt2/QDialogView.h | 1 + src/frontends/qt2/QTabular.C | 84 ++++++++++----------- src/frontends/qt2/QTabularDialog.C | 28 +++++-- src/frontends/qt2/Qt2Base.h | 7 +- src/frontends/xforms/ChangeLog | 5 ++ src/frontends/xforms/FormTabular.C | 88 +++++++++++----------- 10 files changed, 145 insertions(+), 120 deletions(-) diff --git a/src/frontends/controllers/ChangeLog b/src/frontends/controllers/ChangeLog index acc4c90052..326d6c5ec0 100644 --- a/src/frontends/controllers/ChangeLog +++ b/src/frontends/controllers/ChangeLog @@ -1,3 +1,10 @@ +2003-03-09 Angus Leeming + + * ControlTabular.[Ch]: minimise the interface in preparation for + a move to the Dialog-based scheme. + (inset): removed; the views require only getActiveCell(). + (tabular): return as a reference. + 2003-03-07 Angus Leeming * ControlGraphics.[Ch]: rewrite to use the Dialog-based scheme. diff --git a/src/frontends/controllers/ControlTabular.C b/src/frontends/controllers/ControlTabular.C index 4c4c5ea627..126bfa7c3d 100644 --- a/src/frontends/controllers/ControlTabular.C +++ b/src/frontends/controllers/ControlTabular.C @@ -124,17 +124,10 @@ void ControlTabular::connectInset(InsetTabular * inset) } -InsetTabular * ControlTabular::inset() const +LyXTabular const & ControlTabular::tabular() const { lyx::Assert(inset_); - return inset_; -} - - -LyXTabular * ControlTabular::tabular() const -{ - lyx::Assert(inset_); - return inset_->tabular.get(); + return *inset_->tabular.get(); } @@ -145,13 +138,14 @@ void ControlTabular::set(LyXTabular::Feature f, string const & arg) } -bool ControlTabular::metric() const +bool ControlTabular::useMetricUnits() const { return lyxrc.default_papersize > BufferParams::PAPER_EXECUTIVEPAPER; } -bool ControlTabular::isMulticolumnCell() const + +int ControlTabular::getActiveCell() const { - int cell(inset()->getActCell()); - return tabular()->IsMultiColumn(cell); + lyx::Assert(inset_); + return inset_->getActCell(); } diff --git a/src/frontends/controllers/ControlTabular.h b/src/frontends/controllers/ControlTabular.h index 83226833de..962e805c11 100644 --- a/src/frontends/controllers/ControlTabular.h +++ b/src/frontends/controllers/ControlTabular.h @@ -29,11 +29,14 @@ public: ControlTabular(LyXView &, Dialogs &); - /// get the inset - InsetTabular * inset() const; + /// + int getActiveCell() const; /// get the contained tabular - LyXTabular * tabular() const; + LyXTabular const & tabular() const; + + /// return true if units should default to metric + bool useMetricUnits() const; /// set a parameter void set(LyXTabular::Feature, string const & arg = string()); @@ -44,12 +47,6 @@ public: /// update inset void updateInset(InsetTabular *); - /// return true if units should default to metric - bool metric() const; - - /// return true if actual cell is multicolumn - bool isMulticolumnCell() const; - private: /// we can't do this ... diff --git a/src/frontends/qt2/ChangeLog b/src/frontends/qt2/ChangeLog index 16639aeb42..69b5153671 100644 --- a/src/frontends/qt2/ChangeLog +++ b/src/frontends/qt2/ChangeLog @@ -1,3 +1,13 @@ +2003-03-09 Angus Leeming + + * QDialogView.h: make controller methods of QController public to + enable the QXyzDialog classes to access the controller if need be. + * Qt2Base.h: ditto for the controller methods of Qt2CB. + + * QTabular.C: + * QTabularDialog.C: changes due to the changed ControlTabular + interface. + 2003-03-07 Dekel Tsur * QPrefs.C: diff --git a/src/frontends/qt2/QDialogView.h b/src/frontends/qt2/QDialogView.h index 4fe4a816d8..a4ae9b9177 100644 --- a/src/frontends/qt2/QDialogView.h +++ b/src/frontends/qt2/QDialogView.h @@ -155,6 +155,7 @@ class QController: public Base protected: /// QController(Dialog &, QString const &); +public: /// The parent controller Controller & controller(); /// The parent controller diff --git a/src/frontends/qt2/QTabular.C b/src/frontends/qt2/QTabular.C index 25e4c05867..bacfe2439d 100644 --- a/src/frontends/qt2/QTabular.C +++ b/src/frontends/qt2/QTabular.C @@ -85,36 +85,37 @@ bool QTabular::isValid() void QTabular::update_borders() { - LyXTabular * tabular(controller().tabular()); - int cell(controller().inset()->getActCell()); + LyXTabular const & tabular = controller().tabular(); + int const cell = controller().getActiveCell(); + bool const isMulticolumnCell = tabular.IsMultiColumn(cell); - if (!controller().isMulticolumnCell()) { + if (!isMulticolumnCell) { dialog_->borders->setLeftEnabled(true); dialog_->borders->setRightEnabled(true); - dialog_->borders->setTop(tabular->TopLine(cell, true)); - dialog_->borders->setBottom(tabular->BottomLine(cell, true)); - dialog_->borders->setLeft(tabular->LeftLine(cell, true)); - dialog_->borders->setRight(tabular->RightLine(cell, true)); + dialog_->borders->setTop(tabular.TopLine(cell, true)); + dialog_->borders->setBottom(tabular.BottomLine(cell, true)); + dialog_->borders->setLeft(tabular.LeftLine(cell, true)); + dialog_->borders->setRight(tabular.RightLine(cell, true)); // repaint the setborder widget dialog_->borders->repaint(); return; } - dialog_->borders->setTop(tabular->TopLine(cell)); - dialog_->borders->setBottom(tabular->BottomLine(cell)); + 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. - if (tabular->IsFirstCellInRow(cell) || tabular->IsMultiColumn(cell - 1)) { + if (tabular.IsFirstCellInRow(cell) || tabular.IsMultiColumn(cell - 1)) { dialog_->borders->setLeftEnabled(true); - dialog_->borders->setLeft(tabular->LeftLine(cell)); + dialog_->borders->setLeft(tabular.LeftLine(cell)); } else { dialog_->borders->setLeft(false); dialog_->borders->setLeftEnabled(false); } - if (tabular->IsLastCellInRow(cell) || tabular->IsMultiColumn(cell + 1)) { + if (tabular.IsLastCellInRow(cell) || tabular.IsMultiColumn(cell + 1)) { dialog_->borders->setRightEnabled(true); - dialog_->borders->setRight(tabular->RightLine(cell)); + dialog_->borders->setRight(tabular.RightLine(cell)); } else { dialog_->borders->setRight(false); dialog_->borders->setRightEnabled(false); @@ -126,23 +127,23 @@ void QTabular::update_borders() void QTabular::update_contents() { - LyXTabular * tabular(controller().tabular()); - int cell(controller().inset()->getActCell()); + LyXTabular const & tabular(controller().tabular()); + int const cell = controller().getActiveCell(); - int const row(tabular->row_of_cell(cell)); - int const col(tabular->column_of_cell(cell)); + int const row(tabular.row_of_cell(cell)); + int const col(tabular.column_of_cell(cell)); dialog_->tabularRowED->setText(toqstr(tostr(row + 1))); dialog_->tabularColumnED->setText(toqstr(tostr(col + 1))); - bool const multicol(controller().isMulticolumnCell()); + bool const multicol(tabular.IsMultiColumn(cell)); dialog_->multicolumnCB->setChecked(multicol); - dialog_->rotateCellCB->setChecked(tabular->GetRotateCell(cell)); - dialog_->rotateTabularCB->setChecked(tabular->GetRotateTabular()); + dialog_->rotateCellCB->setChecked(tabular.GetRotateCell(cell)); + dialog_->rotateTabularCB->setChecked(tabular.GetRotateTabular()); - dialog_->longTabularCB->setChecked(tabular->IsLongTabular()); + dialog_->longTabularCB->setChecked(tabular.IsLongTabular()); update_borders(); @@ -150,11 +151,11 @@ void QTabular::update_contents() string special; if (multicol) { - special = tabular->GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_MULTI); - pwidth = tabular->GetMColumnPWidth(cell); + special = tabular.GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_MULTI); + pwidth = tabular.GetMColumnPWidth(cell); } else { - special = tabular->GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_COLUMN); - pwidth = tabular->GetColumnPWidth(cell); + special = tabular.GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_COLUMN); + pwidth = tabular.GetColumnPWidth(cell); } dialog_->specialAlignmentED->setText(toqstr(special)); @@ -162,7 +163,7 @@ void QTabular::update_contents() bool const isReadonly = bc().bp().isReadOnly(); dialog_->specialAlignmentED->setEnabled(!isReadonly); - LyXLength::UNIT default_unit = controller().metric() ? LyXLength::CM : LyXLength::IN; + LyXLength::UNIT default_unit = controller().useMetricUnits() ? LyXLength::CM : LyXLength::IN; if (!pwidth.zero()) { dialog_->widthED->setText(toqstr(tostr(pwidth.value()))); dialog_->widthUnit->setCurrentItem(pwidth.unit()); @@ -181,7 +182,7 @@ void QTabular::update_contents() dialog_->hAlignCB->insertItem(qt_("Block")); int align = 0; - switch (tabular->GetAlignment(cell)) { + switch (tabular.GetAlignment(cell)) { case LYX_ALIGN_LEFT: align = 0; break; @@ -204,7 +205,7 @@ void QTabular::update_contents() dialog_->hAlignCB->setCurrentItem(align); int valign = 0; - switch (tabular->GetVAlignment(cell)) { + switch (tabular.GetVAlignment(cell)) { case LyXTabular::LYX_VALIGN_TOP: valign = 0; break; @@ -225,7 +226,7 @@ void QTabular::update_contents() dialog_->hAlignCB->setEnabled(true); dialog_->vAlignCB->setEnabled(!pwidth.zero()); - if (!tabular->IsLongTabular()) { + if (!tabular.IsLongTabular()) { dialog_->headerStatusCB->setChecked(false); dialog_->headerBorderAboveCB->setChecked(false); dialog_->headerBorderBelowCB->setChecked(false); @@ -246,7 +247,7 @@ void QTabular::update_contents() LyXTabular::ltType ltt; bool use_empty; - bool row_set = tabular->GetRowOfLTHead(row, ltt); + bool row_set = tabular.GetRowOfLTHead(row, ltt); dialog_->headerStatusCB->setChecked(row_set); if (ltt.set) { dialog_->headerBorderAboveCB->setChecked(ltt.topDL); @@ -262,7 +263,7 @@ void QTabular::update_contents() use_empty = false; } - row_set = tabular->GetRowOfLTFirstHead(row, ltt); + row_set = tabular.GetRowOfLTFirstHead(row, ltt); dialog_->firstheaderStatusCB->setChecked(row_set); if (ltt.set && (!ltt.empty || !use_empty)) { dialog_->firstheaderBorderAboveCB->setChecked(ltt.topDL); @@ -279,7 +280,7 @@ void QTabular::update_contents() } } - row_set = tabular->GetRowOfLTFoot(row, ltt); + row_set = tabular.GetRowOfLTFoot(row, ltt); dialog_->footerStatusCB->setChecked(row_set); if (ltt.set) { dialog_->footerBorderAboveCB->setChecked(ltt.topDL); @@ -295,7 +296,7 @@ void QTabular::update_contents() use_empty = false; } - row_set = tabular->GetRowOfLTLastFoot(row, ltt); + row_set = tabular.GetRowOfLTLastFoot(row, ltt); dialog_->lastfooterStatusCB->setChecked(row_set); if (ltt.set && (!ltt.empty || !use_empty)) { dialog_->lastfooterBorderAboveCB->setChecked(ltt.topDL); @@ -311,7 +312,7 @@ void QTabular::update_contents() dialog_->lastfooterStatusCB->setEnabled(false); } } - dialog_->newpageCB->setChecked(tabular->GetLTNewPage(row)); + dialog_->newpageCB->setChecked(tabular.GetLTNewPage(row)); } @@ -320,17 +321,16 @@ void QTabular::closeGUI() // ugly hack to auto-apply the stuff that hasn't been // yet. don't let this continue to exist ... - InsetTabular * inset(controller().inset()); - LyXTabular * tabular(controller().tabular()); + LyXTabular const & tabular(controller().tabular()); // apply the fixed width values - int cell = inset->getActCell(); - bool const multicol(controller().isMulticolumnCell()); + int const cell = controller().getActiveCell(); + bool const multicol(tabular.IsMultiColumn(cell)); string str1 = widgetsToLength(dialog_->widthED, dialog_->widthUnit); string str2; - LyXLength llen(tabular->GetColumnPWidth(cell)); - LyXLength llenMulti(tabular->GetMColumnPWidth(cell)); + LyXLength llen(tabular.GetColumnPWidth(cell)); + LyXLength llenMulti(tabular.GetMColumnPWidth(cell)); if (multicol && !llenMulti.zero()) str2 = llenMulti.asString(); @@ -347,9 +347,9 @@ void QTabular::closeGUI() // apply the special alignment str1 = fromqstr(dialog_->specialAlignmentED->text()); if (multicol) - str2 = tabular->GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_MULTI); + str2 = tabular.GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_MULTI); else - str2 = tabular->GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_COLUMN); + str2 = tabular.GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_COLUMN); if (str1 != str2) { if (multicol) diff --git a/src/frontends/qt2/QTabularDialog.C b/src/frontends/qt2/QTabularDialog.C index a1cac3fc8b..88f52b2ec1 100644 --- a/src/frontends/qt2/QTabularDialog.C +++ b/src/frontends/qt2/QTabularDialog.C @@ -92,9 +92,21 @@ void QTabularDialog::borderUnset_clicked() } +namespace { + +bool isMulticolumnCell(QTabular * form) +{ + LyXTabular const & tabular = form->controller().tabular(); + int const cell = form->controller().getActiveCell(); + return tabular.IsMultiColumn(cell); +} + +} + + void QTabularDialog::leftBorder_changed() { - if (form_->controller().isMulticolumnCell()) + if (isMulticolumnCell(form_)) form_->controller().set(LyXTabular::M_TOGGLE_LINE_LEFT); else form_->controller().set(LyXTabular::TOGGLE_LINE_LEFT); @@ -104,7 +116,7 @@ void QTabularDialog::leftBorder_changed() void QTabularDialog::rightBorder_changed() { - if (form_->controller().isMulticolumnCell()) + if (isMulticolumnCell(form_)) form_->controller().set(LyXTabular::M_TOGGLE_LINE_RIGHT); else form_->controller().set(LyXTabular::TOGGLE_LINE_RIGHT); @@ -114,7 +126,7 @@ void QTabularDialog::rightBorder_changed() void QTabularDialog::topBorder_changed() { - if (form_->controller().isMulticolumnCell()) + if (isMulticolumnCell(form_)) form_->controller().set(LyXTabular::M_TOGGLE_LINE_TOP); else form_->controller().set(LyXTabular::TOGGLE_LINE_TOP); @@ -124,7 +136,7 @@ void QTabularDialog::topBorder_changed() void QTabularDialog::bottomBorder_changed() { - if (form_->controller().isMulticolumnCell()) + if (isMulticolumnCell(form_)) form_->controller().set(LyXTabular::M_TOGGLE_LINE_BOTTOM); else form_->controller().set(LyXTabular::TOGGLE_LINE_BOTTOM); @@ -135,7 +147,7 @@ void QTabularDialog::bottomBorder_changed() void QTabularDialog::specialAlignment_changed() { string special = fromqstr(specialAlignmentED->text()); - if (form_->controller().isMulticolumnCell()) + if (isMulticolumnCell(form_)) form_->controller().set(LyXTabular::SET_SPECIAL_MULTI, special); else form_->controller().set(LyXTabular::SET_SPECIAL_COLUMN, special); @@ -147,7 +159,7 @@ void QTabularDialog::width_changed() string const width = LyXLength(widthED->text().toDouble(), widthUnit->currentLengthItem()).asString(); - if (form_->controller().isMulticolumnCell()) + if (isMulticolumnCell(form_)) form_->controller().set(LyXTabular::SET_MPWIDTH, width); else form_->controller().set(LyXTabular::SET_PWIDTH, width); @@ -227,7 +239,7 @@ void QTabularDialog::hAlign_changed(int align) } } } - if (form_->controller().isMulticolumnCell()) + if (isMulticolumnCell(form_)) form_->controller().set(multi_num); else form_->controller().set(num); @@ -259,7 +271,7 @@ void QTabularDialog::vAlign_changed(int align) break; } } - if (form_->controller().isMulticolumnCell()) + if (isMulticolumnCell(form_)) form_->controller().set(multi_num); else form_->controller().set(num); diff --git a/src/frontends/qt2/Qt2Base.h b/src/frontends/qt2/Qt2Base.h index f8d5469c63..ca98ae6c42 100644 --- a/src/frontends/qt2/Qt2Base.h +++ b/src/frontends/qt2/Qt2Base.h @@ -152,13 +152,14 @@ public: return controller().bufferIsReadonly(); } -protected: - /// - Qt2CB(QString const &); /// The parent controller Controller & controller(); /// The parent controller Controller const & controller() const; + +protected: + /// + Qt2CB(QString const &); }; diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index 3cc072a820..2882d5b63c 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,8 @@ +2003-03-09 Angus Leeming + + * FormTabular.C: changes due to the changed ControlTabular + interface. + 2003-03-07 Angus Leeming * Dialogs.C: diff --git a/src/frontends/xforms/FormTabular.C b/src/frontends/xforms/FormTabular.C index 9d219c1877..ade140b4a3 100644 --- a/src/frontends/xforms/FormTabular.C +++ b/src/frontends/xforms/FormTabular.C @@ -131,17 +131,16 @@ void FormTabular::update() if (closing_) return; - LyXTabular * tabular = controller().tabular(); - InsetTabular * inset = controller().inset(); + LyXTabular const & tabular = controller().tabular(); int align; char buf[12]; LyXLength pwidth; string special; - int cell = inset->getActCell(); + int const cell = controller().getActiveCell(); actCell_ = cell; - int column = tabular->column_of_cell(cell) + 1; + int column = tabular.column_of_cell(cell) + 1; clearMessage(); fl_activate_object(column_options_->input_special_alignment); fl_activate_object(cell_options_->input_special_multialign); @@ -150,41 +149,41 @@ void FormTabular::update() sprintf(buf, "%d", column); fl_set_input(dialog_->input_tabular_column, buf); fl_deactivate_object(dialog_->input_tabular_column); - int row = tabular->row_of_cell(cell); + int row = tabular.row_of_cell(cell); sprintf(buf, "%d", row + 1); fl_set_input(dialog_->input_tabular_row, buf); fl_deactivate_object(dialog_->input_tabular_row); - if (tabular->IsMultiColumn(cell)) { + if (tabular.IsMultiColumn(cell)) { fl_set_button(cell_options_->check_multicolumn, 1); fl_set_button(cell_options_->check_border_top, - tabular->TopLine(cell)?1:0); + tabular.TopLine(cell)?1:0); setEnabled(cell_options_->check_border_top, true); fl_set_button(cell_options_->check_border_bottom, - tabular->BottomLine(cell)?1:0); + 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. - if (tabular->IsFirstCellInRow(cell) || - tabular->IsMultiColumn(cell-1)) { + if (tabular.IsFirstCellInRow(cell) || + tabular.IsMultiColumn(cell-1)) { fl_set_button(cell_options_->check_border_left, - tabular->LeftLine(cell)?1:0); + tabular.LeftLine(cell)?1:0); setEnabled(cell_options_->check_border_left, true); } else { fl_set_button(cell_options_->check_border_left, 0); setEnabled(cell_options_->check_border_left, false); } - if (tabular->IsLastCellInRow(cell) || - tabular->IsMultiColumn(cell+1)) { + if (tabular.IsLastCellInRow(cell) || + tabular.IsMultiColumn(cell+1)) { fl_set_button(cell_options_->check_border_right, - tabular->RightLine(cell)?1:0); + tabular.RightLine(cell)?1:0); setEnabled(cell_options_->check_border_right, true); } else { fl_set_button(cell_options_->check_border_right, 0); setEnabled(cell_options_->check_border_right, false); } - pwidth = tabular->GetMColumnPWidth(cell); - align = tabular->GetAlignment(cell); + pwidth = tabular.GetMColumnPWidth(cell); + align = tabular.GetAlignment(cell); // set the horiz. alignment, default is left here fl_set_button(cell_options_->radio_align_left, 0); fl_set_button(cell_options_->radio_align_right, 0); @@ -196,7 +195,7 @@ void FormTabular::update() else fl_set_button(cell_options_->radio_align_left, 1); - align = tabular->GetVAlignment(cell); + align = tabular.GetVAlignment(cell); fl_set_button(cell_options_->radio_valign_top, 0); fl_set_button(cell_options_->radio_valign_bottom, 0); fl_set_button(cell_options_->radio_valign_center, 0); @@ -207,9 +206,9 @@ void FormTabular::update() else fl_set_button(cell_options_->radio_valign_top, 1); - special = tabular->GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_MULTI); + special = tabular.GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_MULTI); fl_set_input(cell_options_->input_special_multialign, special.c_str()); - bool const metric(controller().metric()); + bool const metric(controller().useMetricUnits()); string const default_unit = metric ? "cm" : "in"; updateWidgetsFromLength(cell_options_->input_mcolumn_width, cell_options_->choice_value_mcolumn_width, @@ -268,34 +267,34 @@ void FormTabular::update() setEnabled(cell_options_->input_mcolumn_width, false); setEnabled(cell_options_->choice_value_mcolumn_width, false); } - if (tabular->GetRotateCell(cell)) + if (tabular.GetRotateCell(cell)) fl_set_button(cell_options_->check_rotate_cell, 1); else fl_set_button(cell_options_->check_rotate_cell, 0); - if (tabular->TopLine(cell, true)) + if (tabular.TopLine(cell, true)) fl_set_button(column_options_->check_border_top, 1); else fl_set_button(column_options_->check_border_top, 0); - if (tabular->BottomLine(cell, true)) + if (tabular.BottomLine(cell, true)) fl_set_button(column_options_->check_border_bottom, 1); else fl_set_button(column_options_->check_border_bottom, 0); - if (tabular->LeftLine(cell, true)) + if (tabular.LeftLine(cell, true)) fl_set_button(column_options_->check_border_left, 1); else fl_set_button(column_options_->check_border_left, 0); - if (tabular->RightLine(cell, true)) + if (tabular.RightLine(cell, true)) fl_set_button(column_options_->check_border_right, 1); else fl_set_button(column_options_->check_border_right, 0); - special = tabular->GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_COLUMN); + special = tabular.GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_COLUMN); fl_set_input(column_options_->input_special_alignment, special.c_str()); bool const isReadonly = bc().bp().isReadOnly(); setEnabled(column_options_->input_special_alignment, !isReadonly); - pwidth = tabular->GetColumnPWidth(cell); - bool const metric = lyxrc.default_papersize > BufferParams::PAPER_EXECUTIVEPAPER; + pwidth = tabular.GetColumnPWidth(cell); + bool const metric = controller().useMetricUnits(); string const default_unit = metric ? "cm" : "in"; updateWidgetsFromLength(column_options_->input_column_width, column_options_->choice_value_column_width, @@ -305,14 +304,14 @@ void FormTabular::update() setEnabled(cell_options_->check_useminipage, !pwidth.zero()); if (!pwidth.zero()) { - if (tabular->GetUsebox(cell) == 2) + if (tabular.GetUsebox(cell) == 2) fl_set_button(cell_options_->check_useminipage, 1); else fl_set_button(cell_options_->check_useminipage, 0); } else { fl_set_button(cell_options_->check_useminipage, 0); } - align = tabular->GetAlignment(cell, true); + align = tabular.GetAlignment(cell, true); fl_set_button(column_options_->radio_align_left, 0); fl_set_button(column_options_->radio_align_right, 0); fl_set_button(column_options_->radio_align_center, 0); @@ -325,7 +324,7 @@ void FormTabular::update() fl_set_button(column_options_->radio_align_center, 1); else fl_set_button(column_options_->radio_align_block, 1); - align = tabular->GetVAlignment(cell, true); + align = tabular.GetVAlignment(cell, true); fl_set_button(column_options_->radio_valign_top, 0); fl_set_button(column_options_->radio_valign_bottom, 0); fl_set_button(column_options_->radio_valign_center, 0); @@ -345,9 +344,9 @@ void FormTabular::update() setEnabled(column_options_->radio_valign_center, !pwidth.zero()); fl_set_button(tabular_options_->check_longtable, - tabular->IsLongTabular()); + tabular.IsLongTabular()); - bool const enable = tabular->IsLongTabular(); + bool const enable = tabular.IsLongTabular(); setEnabled(longtable_options_->check_lt_firsthead, enable); setEnabled(longtable_options_->check_1head_2border_above, enable); @@ -368,7 +367,7 @@ void FormTabular::update() if (enable) { LyXTabular::ltType ltt; bool use_empty; - bool row_set = tabular->GetRowOfLTHead(row, ltt); + bool row_set = tabular.GetRowOfLTHead(row, ltt); fl_set_button(longtable_options_->check_lt_head, row_set); if (ltt.set) { fl_set_button(longtable_options_->check_head_2border_above, @@ -386,7 +385,7 @@ void FormTabular::update() use_empty = false; } // - row_set = tabular->GetRowOfLTFirstHead(row, ltt); + row_set = tabular.GetRowOfLTFirstHead(row, ltt); fl_set_button(longtable_options_->check_lt_firsthead, row_set); if (ltt.set && (!ltt.empty || !use_empty)) { fl_set_button(longtable_options_->check_1head_2border_above, @@ -405,7 +404,7 @@ void FormTabular::update() } } // - row_set = tabular->GetRowOfLTFoot(row, ltt); + row_set = tabular.GetRowOfLTFoot(row, ltt); fl_set_button(longtable_options_->check_lt_foot, row_set); if (ltt.set) { fl_set_button(longtable_options_->check_foot_2border_above, @@ -423,7 +422,7 @@ void FormTabular::update() use_empty = false; } // - row_set = tabular->GetRowOfLTLastFoot(row, ltt); + row_set = tabular.GetRowOfLTLastFoot(row, ltt); fl_set_button(longtable_options_->check_lt_lastfoot, row_set); if (ltt.set && (!ltt.empty || !use_empty)) { fl_set_button(longtable_options_->check_lastfoot_2border_above, @@ -443,7 +442,7 @@ void FormTabular::update() } } fl_set_button(longtable_options_->check_lt_newpage, - tabular->GetLTNewPage(row)); + tabular.GetLTNewPage(row)); } else { fl_set_button(longtable_options_->check_lt_firsthead, 0); fl_set_button(longtable_options_->check_1head_2border_above, 0); @@ -462,7 +461,7 @@ void FormTabular::update() fl_set_button(longtable_options_->check_lt_newpage, 0); } fl_set_button(tabular_options_->check_rotate_tabular, - tabular->GetRotateTabular()); + tabular.GetRotateTabular()); } @@ -472,10 +471,9 @@ ButtonPolicy::SMInput FormTabular::input(FL_OBJECT * ob, long) LyXTabular::Feature num = LyXTabular::LAST_ACTION; string special; - InsetTabular * inset(controller().inset()); - LyXTabular * tabular(controller().tabular()); + LyXTabular const & tabular = controller().tabular(); - int cell = inset->getActCell(); + int const cell = controller().getActiveCell(); // ugly hack to auto-apply the stuff that hasn't been // yet. don't let this continue to exist ... @@ -485,14 +483,14 @@ ButtonPolicy::SMInput FormTabular::input(FL_OBJECT * ob, long) getLengthFromWidgets(column_options_->input_column_width, column_options_->choice_value_column_width); string str2; - LyXLength llen = tabular->GetColumnPWidth(cell); + LyXLength llen = tabular.GetColumnPWidth(cell); if (!llen.zero()) str2 = llen.asString(); if (str1 != str2) input(column_options_->input_column_width, 0); str1 = getLengthFromWidgets(cell_options_->input_mcolumn_width, cell_options_->choice_value_mcolumn_width); - llen = tabular->GetMColumnPWidth(cell); + llen = tabular.GetMColumnPWidth(cell); if (llen.zero()) str2 = ""; else @@ -500,11 +498,11 @@ ButtonPolicy::SMInput FormTabular::input(FL_OBJECT * ob, long) if (str1 != str2) input(cell_options_->input_mcolumn_width, 0); str1 = getString(column_options_->input_special_alignment); - str2 = tabular->GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_COLUMN); + str2 = tabular.GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_COLUMN); if (str1 != str2) input(column_options_->input_special_alignment, 0); str1 = getString(cell_options_->input_special_multialign); - str2 = tabular->GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_MULTI); + str2 = tabular.GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_MULTI); if (str1 != str2) input(cell_options_->input_special_multialign, 0);