]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetTabular.cpp
* src/insets/InsetSpace.cpp:
[lyx.git] / src / insets / InsetTabular.cpp
index e49c2a7a6d420999ddfcb0a69b42b1f97a4c51dd..11d0fe6f2e5f64ea6383ccdb180366af77cd041c 100644 (file)
 #include "frontends/Painter.h"
 #include "frontends/Selection.h"
 
-#include "support/lassert.h"
 #include "support/convert.h"
 #include "support/debug.h"
 #include "support/docstream.h"
 #include "support/FileName.h"
 #include "support/gettext.h"
+#include "support/lassert.h"
 #include "support/lstrings.h"
 
 #include <boost/scoped_ptr.hpp>
@@ -1096,7 +1096,7 @@ bool Tabular::columnLeftLine(col_type c) const
                                ++nrows_left;
                }
        }
-       return nrows_left >= total / 2;
+       return 2 * nrows_left >= total;
 }
 
 
@@ -1119,7 +1119,7 @@ bool Tabular::columnRightLine(col_type c) const
                                ++nrows_right;
                }
        }
-       return nrows_right >= total / 2;
+       return 2 * nrows_right >= total;
 }
 
 
@@ -1865,7 +1865,6 @@ int Tabular::TeXCellPreamble(odocstream & os, idx_type cell, bool & ismulticol)
                && leftLine(cellIndex(r, nextcol));
        bool coldouble = colright && nextcolleft;
        bool celldouble = rightLine(cell) && nextcellleft;
-       bool prevcellright = c > 0 && rightLine(cellIndex(r, c - 1));
        ismulticol = isMultiColumn(cell) 
                || (c == 0 && colleft != leftLine(cell))
                || ((colright || nextcolleft) && !rightLine(cell) && !nextcellleft)
@@ -1873,7 +1872,7 @@ int Tabular::TeXCellPreamble(odocstream & os, idx_type cell, bool & ismulticol)
                || (coldouble != celldouble);
        if (ismulticol) {
                os << "\\multicolumn{" << columnSpan(cell) << "}{";
-               if (leftLine(cell) || prevcellright)
+               if (c ==0 && leftLine(cell))
                        os << '|';
                if (!cellInfo(cell).align_special.empty()) {
                        os << cellInfo(cell).align_special;
@@ -2745,7 +2744,7 @@ bool InsetTableCell::getStatus(Cursor & cur, FuncRequest const & cmd,
        default:
                return InsetText::getStatus(cur, cmd, status);
        }
-       status.enabled(enabled);
+       status.setEnabled(enabled);
        return true;
 }
 
@@ -3456,8 +3455,8 @@ void InsetTabular::doDispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_FONT_FRAK:
        case LFUN_FONT_TYPEWRITER:
        case LFUN_FONT_SANS:
-       case LFUN_FONT_FREE_APPLY:
-       case LFUN_FONT_FREE_UPDATE:
+       case LFUN_TEXTSTYLE_APPLY:
+       case LFUN_TEXTSTYLE_UPDATE:
        case LFUN_FONT_SIZE:
        case LFUN_FONT_UNDERLINE:
        case LFUN_LANGUAGE:
@@ -3550,33 +3549,33 @@ bool InsetTabular::getStatus(Cursor & cur, FuncRequest const & cmd,
                        return true;
 
                case Tabular::MULTICOLUMN:
-                       status.enabled(sel_row_start == sel_row_end);
+                       status.setEnabled(sel_row_start == sel_row_end);
                        status.setOnOff(tabular.isMultiColumn(cur.idx()));
                        break;
 
                case Tabular::SET_ALL_LINES:
                case Tabular::UNSET_ALL_LINES:
                case Tabular::SET_BORDER_LINES:
-                       status.enabled(!tabular.ltCaption(tabular.cellRow(cur.idx())));
+                       status.setEnabled(!tabular.ltCaption(tabular.cellRow(cur.idx())));
                        break;
 
                case Tabular::TOGGLE_LINE_TOP:
-                       status.enabled(!tabular.ltCaption(tabular.cellRow(cur.idx())));
+                       status.setEnabled(!tabular.ltCaption(tabular.cellRow(cur.idx())));
                        status.setOnOff(tabular.topLine(cur.idx()));
                        break;
 
                case Tabular::TOGGLE_LINE_BOTTOM:
-                       status.enabled(!tabular.ltCaption(tabular.cellRow(cur.idx())));
+                       status.setEnabled(!tabular.ltCaption(tabular.cellRow(cur.idx())));
                        status.setOnOff(tabular.bottomLine(cur.idx()));
                        break;
 
                case Tabular::TOGGLE_LINE_LEFT:
-                       status.enabled(!tabular.ltCaption(tabular.cellRow(cur.idx())));
+                       status.setEnabled(!tabular.ltCaption(tabular.cellRow(cur.idx())));
                        status.setOnOff(tabular.leftLine(cur.idx()));
                        break;
 
                case Tabular::TOGGLE_LINE_RIGHT:
-                       status.enabled(!tabular.ltCaption(tabular.cellRow(cur.idx())));
+                       status.setEnabled(!tabular.ltCaption(tabular.cellRow(cur.idx())));
                        status.setOnOff(tabular.rightLine(cur.idx()));
                        break;
 
@@ -3599,7 +3598,7 @@ bool InsetTabular::getStatus(Cursor & cur, FuncRequest const & cmd,
                        break;
 
                case Tabular::ALIGN_BLOCK:
-                       status.enabled(!tabular.getPWidth(cur.idx()).zero());
+                       status.setEnabled(!tabular.getPWidth(cur.idx()).zero());
                        status.setOnOff(tabular.getAlignment(cur.idx(), flag) == LYX_ALIGN_BLOCK);
                        break;
 
@@ -3693,7 +3692,7 @@ bool InsetTabular::getStatus(Cursor & cur, FuncRequest const & cmd,
                        break;
 
                case Tabular::TOGGLE_LTCAPTION:
-                       status.enabled(sel_row_start == sel_row_end);
+                       status.setEnabled(sel_row_start == sel_row_end);
                        status.setOnOff(tabular.ltCaption(sel_row_start));
                        break;
 
@@ -3707,7 +3706,7 @@ bool InsetTabular::getStatus(Cursor & cur, FuncRequest const & cmd,
 
                default:
                        status.clear();
-                       status.enabled(false);
+                       status.setEnabled(false);
                        break;
                }
                return true;
@@ -3716,7 +3715,7 @@ bool InsetTabular::getStatus(Cursor & cur, FuncRequest const & cmd,
        // These are only enabled inside tabular
        case LFUN_CELL_BACKWARD:
        case LFUN_CELL_FORWARD:
-               status.enabled(true);
+               status.setEnabled(true);
                return true;
 
        // disable these with multiple cells selected
@@ -3738,7 +3737,7 @@ bool InsetTabular::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_WRAP_INSERT:
        case LFUN_ERT_INSERT: {
                if (tablemode(cur)) {
-                       status.enabled(false);
+                       status.setEnabled(false);
                        return true;
                } else
                        return cell(cur.idx())->getStatus(cur, cmd, status);
@@ -3746,10 +3745,9 @@ bool InsetTabular::getStatus(Cursor & cur, FuncRequest const & cmd,
 
        // disable in non-fixed-width cells
        case LFUN_NEWLINE_INSERT:
-       case LFUN_BREAK_PARAGRAPH:
-       case LFUN_BREAK_PARAGRAPH_SKIP: {
+       case LFUN_BREAK_PARAGRAPH: {
                if (tabular.getPWidth(cur.idx()).zero()) {
-                       status.enabled(false);
+                       status.setEnabled(false);
                        return true;
                } else
                        return cell(cur.idx())->getStatus(cur, cmd, status);
@@ -3757,14 +3755,14 @@ bool InsetTabular::getStatus(Cursor & cur, FuncRequest const & cmd,
 
        case LFUN_PASTE:
                if (tabularStackDirty() && theClipboard().isInternal()) {
-                       status.enabled(true);
+                       status.setEnabled(true);
                        return true;
                } else
                        return cell(cur.idx())->getStatus(cur, cmd, status);
 
        case LFUN_INSET_MODIFY:
                if (insetCode(cmd.getArg(0)) == TABULAR_CODE) {
-                       status.enabled(true);
+                       status.setEnabled(true);
                        return true;
                }
                // Fall through