]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insettabular.C
ws changes only
[lyx.git] / src / insets / insettabular.C
index fb03637610cea7ea100805de13730580636e6bba..232ada36a41988e15a875d0d91b44ac17de5a06c 100644 (file)
@@ -36,6 +36,7 @@
 #include "frontends/Painter.h"
 
 #include "support/std_sstream.h"
+#include <iostream>
 
 using lyx::graphics::PreviewLoader;
 
@@ -45,7 +46,7 @@ using lyx::support::strToInt;
 using std::endl;
 using std::max;
 using std::swap;
-
+using std::string;
 using std::auto_ptr;
 using std::istringstream;
 using std::ostream;
@@ -146,9 +147,10 @@ bool InsetTabular::hasPasteBuffer() const
 
 
 InsetTabular::InsetTabular(Buffer const & buf, int rows, int columns)
-       : tabular(buf.params(), this, max(rows, 1), max(columns, 1)),
+       : tabular(buf.params(), max(rows, 1), max(columns, 1)),
          buffer_(&buf), cursorx_(0), cursory_(0)
 {
+       tabular.setOwner(this);
        // for now make it always display as display() inset
        // just for test!!!
        the_locking_inset = 0;
@@ -164,10 +166,10 @@ InsetTabular::InsetTabular(Buffer const & buf, int rows, int columns)
 
 
 InsetTabular::InsetTabular(InsetTabular const & tab)
-       : UpdatableInset(tab),
-               tabular(tab.buffer_->params(), this, tab.tabular),
+       : UpdatableInset(tab), tabular(tab.tabular),
                buffer_(tab.buffer_), cursorx_(0), cursory_(0)
 {
+       tabular.setOwner(this);
        the_locking_inset = 0;
        old_locking_inset = 0;
        locked = false;
@@ -623,12 +625,12 @@ void InsetTabular::lfunMouseMotion(FuncRequest const & cmd)
 }
 
 
-InsetOld::RESULT InsetTabular::localDispatch(FuncRequest const & cmd)
+dispatch_result InsetTabular::localDispatch(FuncRequest const & cmd)
 {
        // We need to save the value of the_locking_inset as the call to
        // the_locking_inset->localDispatch might unlock it.
        old_locking_inset = the_locking_inset;
-       RESULT result = UpdatableInset::localDispatch(cmd);
+       dispatch_result result = UpdatableInset::localDispatch(cmd);
        BufferView * bv = cmd.view();
 
        if (cmd.action == LFUN_INSET_EDIT) {
@@ -1298,7 +1300,7 @@ void InsetTabular::resetPos(BufferView * bv) const
        }
        // we need this only from here on!!!
        ++in_reset_pos;
-       static int const offset = ADD_TO_TABULAR_WIDTH + 2;
+       int const offset = ADD_TO_TABULAR_WIDTH + 2;
        int new_x = getCellXPos(actcell);
        int old_x = cursorx_;
        new_x += offset;
@@ -1351,7 +1353,7 @@ void InsetTabular::resetPos(BufferView * bv) const
 }
 
 
-InsetOld::RESULT InsetTabular::moveRight(BufferView * bv, bool lock)
+dispatch_result InsetTabular::moveRight(BufferView * bv, bool lock)
 {
        if (lock && !old_locking_inset) {
                if (activateCellInset(bv))
@@ -1369,7 +1371,7 @@ InsetOld::RESULT InsetTabular::moveRight(BufferView * bv, bool lock)
 }
 
 
-InsetOld::RESULT InsetTabular::moveLeft(BufferView * bv, bool lock)
+dispatch_result InsetTabular::moveLeft(BufferView * bv, bool lock)
 {
        bool moved = isRightToLeft(bv) ? moveNextCell(bv) : movePrevCell(bv);
        if (!moved)
@@ -1383,7 +1385,7 @@ InsetOld::RESULT InsetTabular::moveLeft(BufferView * bv, bool lock)
 }
 
 
-InsetOld::RESULT InsetTabular::moveUp(BufferView * bv, bool lock)
+dispatch_result InsetTabular::moveUp(BufferView * bv, bool lock)
 {
        int const ocell = actcell;
        actcell = tabular.getCellAbove(actcell);
@@ -1404,7 +1406,7 @@ InsetOld::RESULT InsetTabular::moveUp(BufferView * bv, bool lock)
 }
 
 
-InsetOld::RESULT InsetTabular::moveDown(BufferView * bv, bool lock)
+dispatch_result InsetTabular::moveDown(BufferView * bv, bool lock)
 {
        int const ocell = actcell;
        actcell = tabular.getCellBelow(actcell);
@@ -1631,12 +1633,11 @@ void InsetTabular::tabularFeatures(BufferView * bv,
 
        case LyXTabular::SET_PWIDTH:
        {
-               LyXLength const vallen(value);
-               LyXLength const & tmplen = tabular.getColumnPWidth(actcell);
+               LyXLength const len(value);
+               LyXLength const & oldlen = tabular.getColumnPWidth(actcell);
 
-               bool const update = (tmplen != vallen);
-               tabular.setColumnPWidth(actcell, vallen);
-               if (update) {
+               tabular.setColumnPWidth(actcell, len);
+               if (oldlen != len) {
                        // We need this otherwise we won't resize
                        // the insettext of the active cell (if any)
                        // until later (see InsetText::do_resize)
@@ -1644,10 +1645,10 @@ void InsetTabular::tabularFeatures(BufferView * bv,
                        bv->update();
                }
 
-               if (vallen.zero()
+               if (len.zero()
                    && tabular.getAlignment(actcell, true) == LYX_ALIGN_BLOCK)
                        tabularFeatures(bv, LyXTabular::ALIGN_CENTER, string());
-               else if (!vallen.zero()
+               else if (!len.zero()
                         && tabular.getAlignment(actcell, true) != LYX_ALIGN_BLOCK)
                        tabularFeatures(bv, LyXTabular::ALIGN_BLOCK, string());
                break;
@@ -1655,12 +1656,10 @@ void InsetTabular::tabularFeatures(BufferView * bv,
 
        case LyXTabular::SET_MPWIDTH:
        {
-               LyXLength const vallen(value);
-               LyXLength const & tmplen = tabular.getPWidth(actcell);
-
-               bool const update = (tmplen != vallen);
-               tabular.setMColumnPWidth(actcell, vallen);
-               if (update) {
+               LyXLength const len(value);
+               LyXLength const & oldlen = tabular.getPWidth(actcell);
+               tabular.setMColumnPWidth(actcell, len);
+               if (oldlen != len) {
                        // We need this otherwise we won't resize
                        // the insettext of the active cell (if any)
                        // until later (see InsetText::do_resize)
@@ -1678,12 +1677,14 @@ void InsetTabular::tabularFeatures(BufferView * bv,
                // append the row into the tabular
                unlockInsetInInset(bv, the_locking_inset);
                tabular.appendRow(bv->buffer()->params(), actcell);
+               tabular.setOwner(this);
                updateLocal(bv);
                break;
        case LyXTabular::APPEND_COLUMN:
                // append the column into the tabular
                unlockInsetInInset(bv, the_locking_inset);
                tabular.appendColumn(bv->buffer()->params(), actcell);
+               tabular.setOwner(this);
                actcell = tabular.getCellNumber(row, column);
                updateLocal(bv);
                break;
@@ -2185,9 +2186,10 @@ FuncStatus InsetTabular::getStatus(string const & what) const
 }
 
 
-void InsetTabular::getLabelList(std::vector<string> & list) const
+void InsetTabular::getLabelList(Buffer const & buffer,
+                               std::vector<string> & list) const
 {
-       tabular.getLabelList(list);
+       tabular.getLabelList(buffer, list);
 }
 
 
@@ -2211,7 +2213,8 @@ bool InsetTabular::copySelection(BufferView * bv)
                swap(sel_row_start, sel_row_end);
 
        delete paste_tabular;
-       paste_tabular = new LyXTabular(bv->buffer()->params(), this, tabular);
+       paste_tabular = new LyXTabular(tabular);
+       paste_tabular->setOwner(this);
 
        for (int i = 0; i < sel_row_start; ++i)
                paste_tabular->deleteRow(0);
@@ -2301,7 +2304,8 @@ bool InsetTabular::cutSelection(BufferParams const & bp)
 
        for (int i = sel_row_start; i <= sel_row_end; ++i)
                for (int j = sel_col_start; j <= sel_col_end; ++j)
-                       tabular.getCellInset(tabular.getCellNumber(i, j)).clear(bp.tracking_changes);
+                       tabular.getCellInset(tabular.getCellNumber(i, j))
+                               .clear(bp.tracking_changes);
        return true;
 }
 
@@ -2529,18 +2533,14 @@ bool InsetTabular::insetAllowed(InsetOld::Code code) const
 
 bool InsetTabular::forceDefaultParagraphs(InsetOld const * in) const
 {
-       const int cell = tabular.getCellFromInset(in, actcell);
+       const int cell = tabular.getCellFromInset(in);
 
        if (cell != -1)
                return tabular.getPWidth(cell).zero();
 
        // well we didn't obviously find it so maybe our owner knows more
-       if (owner())
-               return owner()->forceDefaultParagraphs(in);
-
-       lyxerr << "If we're here there is really something strange going on!"
-              << endl;
-       return false;
+       BOOST_ASSERT(owner());
+       return owner()->forceDefaultParagraphs(in);
 }
 
 
@@ -2578,7 +2578,8 @@ bool InsetTabular::insertAsciiString(BufferView * bv, string const & buf,
        if (usePaste) {
                delete paste_tabular;
                paste_tabular = new LyXTabular(bv->buffer()->params(),
-                                              this, rows, maxCols);
+                                              rows, maxCols);
+               paste_tabular->setOwner(this);
                loctab = paste_tabular;
                cols = 0;
        } else {