]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetTabular.cpp
Restore XHTML output for InsetListings.
[lyx.git] / src / insets / InsetTabular.cpp
index 99551f75a6addff17948062d394258be60286e1f..2678cd9d76d50040c2e1a1652790a99a3f122c16 100644 (file)
@@ -3320,7 +3320,7 @@ void InsetTabular::edit(Cursor & cur, bool front, EntryDirection)
 }
 
 
-void InsetTabular::updateLabels(ParIterator const & it)
+void InsetTabular::updateLabels(ParIterator const & it, bool out)
 {
        // In a longtable, tell captions what the current float is
        Counters & cnts = buffer().masterBuffer()->params().documentClass().counters();
@@ -3332,7 +3332,7 @@ void InsetTabular::updateLabels(ParIterator const & it)
        it2.forwardPos();
        size_t const end = it2.nargs();
        for ( ; it2.idx() < end; it2.top().forwardIdx())
-               buffer().updateLabels(it2);
+               buffer().updateLabels(it2, out);
 
        //reset afterwards
        if (tabular.is_long_tabular)
@@ -4888,11 +4888,12 @@ void InsetTabular::tabularFeatures(Cursor & cur,
                cur.pos() = 0;
                cur.setSelection(false);
 
-               if (set)
+               if (set) {
                        // When a row is set as caption, then also insert
                        // a caption. Otherwise the LaTeX output is broken.
+                       lyx::dispatch(FuncRequest(LFUN_INSET_SELECT_ALL));
                        lyx::dispatch(FuncRequest(LFUN_CAPTION_INSERT));
-               else {
+               else {
                        FuncRequest fr(LFUN_INSET_DISSOLVE, "caption");
                        if (lyx::getStatus(fr).enabled())
                                lyx::dispatch(fr);
@@ -5288,13 +5289,19 @@ bool InsetTabular::insertPlaintextString(BufferView & bv, docstring const & buf,
 }
 
 
-void InsetTabular::addPreview(PreviewLoader & loader) const
+void InsetTabular::addPreview(DocIterator const & inset_pos,
+       PreviewLoader & loader) const
 {
        row_type const rows = tabular.row_info.size();
        col_type const columns = tabular.column_info.size();
+       DocIterator cell_pos = inset_pos;
+
+       cell_pos.push_back(CursorSlice(*const_cast<InsetTabular *>(this)));
        for (row_type i = 0; i < rows; ++i) {
-               for (col_type j = 0; j < columns; ++j)
-                       tabular.cellInset(i, j)->addPreview(loader);
+               for (col_type j = 0; j < columns; ++j) {
+                       cell_pos.top().idx() = tabular.cellIndex(i, j);
+                       tabular.cellInset(i, j)->addPreview(cell_pos, loader);
+               }
        }
 }