Move class definitions inside main class

Prepare for following commits.

This prevent's forward-declaration, but including the TexRow header should be
inexpensive.
This commit is contained in:
Guillaume Munch 2016-10-11 12:09:38 +02:00
parent 2e45bade7a
commit 148b3ae773
10 changed files with 46 additions and 43 deletions

View File

@ -4472,7 +4472,7 @@ Buffer::ReadStatus Buffer::loadThisLyXFile(FileName const & fn)
void Buffer::bufferErrors(TeXErrors const & terr, ErrorList & errorList) const void Buffer::bufferErrors(TeXErrors const & terr, ErrorList & errorList) const
{ {
for (auto const & err : terr) { for (auto const & err : terr) {
TextEntry start, end = TexRow::text_none; TexRow::TextEntry start, end = TexRow::text_none;
int errorRow = err.error_in_line; int errorRow = err.error_in_line;
Buffer const * buf = 0; Buffer const * buf = 0;
Impl const * p = d; Impl const * p = d;

View File

@ -2345,7 +2345,7 @@ int BufferView::scrollUp(int offset)
bool BufferView::setCursorFromRow(int row) bool BufferView::setCursorFromRow(int row)
{ {
TextEntry start, end; TexRow::TextEntry start, end;
tie(start,end) = buffer_.texrow().getEntriesFromRow(row); tie(start,end) = buffer_.texrow().getEntriesFromRow(row);
LYXERR(Debug::LATEX, LYXERR(Debug::LATEX,
"setCursorFromRow: for row " << row << ", TexRow has found " "setCursorFromRow: for row " << row << ", TexRow has found "
@ -2355,7 +2355,8 @@ bool BufferView::setCursorFromRow(int row)
} }
bool BufferView::setCursorFromEntries(TextEntry start, TextEntry end) bool BufferView::setCursorFromEntries(TexRow::TextEntry start,
TexRow::TextEntry end)
{ {
DocIterator dit_start, dit_end; DocIterator dit_start, dit_end;
tie(dit_start,dit_end) = tie(dit_start,dit_end) =

View File

@ -16,6 +16,7 @@
#define BUFFER_VIEW_H #define BUFFER_VIEW_H
#include "DocumentClassPtr.h" #include "DocumentClassPtr.h"
#include "TexRow.h"
#include "update_flags.h" #include "update_flags.h"
#include "support/strfwd.h" #include "support/strfwd.h"
@ -46,7 +47,6 @@ class ParagraphMetrics;
class Point; class Point;
class TexRow; class TexRow;
class Text; class Text;
struct TextEntry;
class TextMetrics; class TextMetrics;
enum CursorStatus { enum CursorStatus {
@ -165,7 +165,7 @@ public:
/// set the cursor based on the given TeX source row. /// set the cursor based on the given TeX source row.
bool setCursorFromRow(int row); bool setCursorFromRow(int row);
/// set the cursor based on the given start and end TextEntries. /// set the cursor based on the given start and end TextEntries.
bool setCursorFromEntries(TextEntry start, TextEntry end); bool setCursorFromEntries(TexRow::TextEntry start, TexRow::TextEntry end);
/// set cursor to the given inset. Return true if found. /// set cursor to the given inset. Return true if found.
bool setCursorFromInset(Inset const *); bool setCursorFromInset(Inset const *);

View File

@ -27,6 +27,7 @@ class Buffer;
/// A class to hold an error item /// A class to hold an error item
class ErrorItem { class ErrorItem {
public: public:
typedef TexRow::TextEntry TextEntry;
docstring error; docstring error;
docstring description; docstring description;
// To generalise into RowEntries // To generalise into RowEntries
@ -35,8 +36,7 @@ public:
Buffer const * buffer; Buffer const * buffer;
// With a start position and an end position // With a start position and an end position
ErrorItem(docstring const & error, docstring const & description, ErrorItem(docstring const & error, docstring const & description,
TextEntry start, TextEntry end, TextEntry start, TextEntry end, Buffer const * buf = 0);
Buffer const * buf = 0);
// Error outside the document body // Error outside the document body
ErrorItem(docstring const & error, docstring const & description, ErrorItem(docstring const & error, docstring const & description,
Buffer const * buf = 0); Buffer const * buf = 0);

View File

@ -84,7 +84,7 @@ void TexRow::RowEntryList::forceAddEntry(RowEntry entry)
} }
TextEntry TexRow::RowEntryList::getTextEntry() const TexRow::TextEntry TexRow::RowEntryList::getTextEntry() const
{ {
if (!isNone(text_entry_)) if (!isNone(text_entry_))
return text_entry_; return text_entry_;
@ -106,8 +106,8 @@ TexRow::TexRow()
} }
TextEntry const TexRow::text_none = { -1, 0 }; TexRow::TextEntry const TexRow::text_none = { -1, 0 };
RowEntry const TexRow::row_none = { false, { TexRow::text_none } }; TexRow::RowEntry const TexRow::row_none = { false, { TexRow::text_none } };
//static //static
@ -138,7 +138,7 @@ TexRow::RowEntryList & TexRow::currentRow()
//static //static
RowEntry TexRow::textEntry(int id, pos_type pos) TexRow::RowEntry TexRow::textEntry(int id, pos_type pos)
{ {
RowEntry entry; RowEntry entry;
entry.is_math = false; entry.is_math = false;
@ -149,7 +149,7 @@ RowEntry TexRow::textEntry(int id, pos_type pos)
//static //static
RowEntry TexRow::mathEntry(uid_type id, idx_type cell) TexRow::RowEntry TexRow::mathEntry(uid_type id, idx_type cell)
{ {
RowEntry entry; RowEntry entry;
entry.is_math = true; entry.is_math = true;
@ -159,7 +159,7 @@ RowEntry TexRow::mathEntry(uid_type id, idx_type cell)
} }
bool operator==(RowEntry entry1, RowEntry entry2) bool operator==(TexRow::RowEntry entry1, TexRow::RowEntry entry2)
{ {
return entry1.is_math == entry2.is_math return entry1.is_math == entry2.is_math
&& (entry1.is_math && (entry1.is_math
@ -217,7 +217,8 @@ void TexRow::append(TexRow other)
} }
pair<TextEntry, TextEntry> TexRow::getEntriesFromRow(int const row) const pair<TexRow::TextEntry, TexRow::TextEntry>
TexRow::getEntriesFromRow(int const row) const
{ {
LYXERR(Debug::LATEX, "getEntriesFromRow: row " << row << " requested"); LYXERR(Debug::LATEX, "getEntriesFromRow: row " << row << " requested");
// check bounds for row - 1, our target index // check bounds for row - 1, our target index
@ -312,7 +313,7 @@ FuncRequest TexRow::goToFuncFromRow(int const row) const
//static //static
RowEntry TexRow::rowEntryFromCursorSlice(CursorSlice const & slice) TexRow::RowEntry TexRow::rowEntryFromCursorSlice(CursorSlice const & slice)
{ {
RowEntry entry; RowEntry entry;
InsetMath * insetMath = slice.asInsetMath(); InsetMath * insetMath = slice.asInsetMath();

View File

@ -47,26 +47,27 @@ typedef void const * uid_type;
typedef size_t idx_type; typedef size_t idx_type;
/// an individual par id/pos <=> row mapping /// Represents the correspondence between paragraphs and the generated
struct TextEntry { int id; pos_type pos; }; /// LaTeX file
/// an individual math id/cell <=> row mapping class TexRow {
struct MathEntry { uid_type id; idx_type cell; }; public:
/// an individual par id/pos <=> row mapping
struct TextEntry { int id; pos_type pos; };
/// a container for passing entries around /// an individual math id/cell <=> row mapping
struct RowEntry { struct MathEntry { uid_type id; idx_type cell; };
/// a container for passing entries around
struct RowEntry {
bool is_math;// true iff the union is a math bool is_math;// true iff the union is a math
union { union {
struct TextEntry text; struct TextEntry text;
struct MathEntry math; struct MathEntry math;
}; };
}; };
private:
/// Represents the correspondence between paragraphs and the generated
/// LaTeX file
class TexRow {
/// id/pos correspondence for a single row /// id/pos correspondence for a single row
class RowEntryList; class RowEntryList;
@ -286,7 +287,7 @@ public:
}; };
bool operator==(RowEntry entry1, RowEntry entry2); bool operator==(TexRow::RowEntry entry1, TexRow::RowEntry entry2);
} // namespace lyx } // namespace lyx

View File

@ -2708,7 +2708,7 @@ void Tabular::TeXRow(otexstream & os, row_type row,
void Tabular::latex(otexstream & os, OutputParams const & runparams) const void Tabular::latex(otexstream & os, OutputParams const & runparams) const
{ {
bool const is_tabular_star = !tabular_width.zero(); bool const is_tabular_star = !tabular_width.zero();
RowEntry pos = TexRow::textEntry(runparams.lastid, runparams.lastpos); TexRow::RowEntry pos = TexRow::textEntry(runparams.lastid, runparams.lastpos);
//+--------------------------------------------------------------------- //+---------------------------------------------------------------------
//+ first the opening preamble + //+ first the opening preamble +

View File

@ -1276,7 +1276,7 @@ void InsetMathGrid::write(WriteStream & os,
for (col_type col = beg_col; col < end_col;) { for (col_type col = beg_col; col < end_col;) {
int nccols = 1; int nccols = 1;
idx_type const idx = index(row, col); idx_type const idx = index(row, col);
RowEntry entry = TexRow::mathEntry(id(),idx); TexRow::RowEntry entry = TexRow::mathEntry(id(),idx);
os.texrow().start(entry); os.texrow().start(entry);
if (col >= lastcol) { if (col >= lastcol) {
++col; ++col;

View File

@ -131,7 +131,7 @@ WriteStream::WriteStream(otexrowstream & os, bool fragile, bool latex,
output_(output), pendingspace_(false), pendingbrace_(false), output_(output), pendingspace_(false), pendingbrace_(false),
textmode_(false), locked_(0), ascii_(0), canbreakline_(true), textmode_(false), locked_(0), ascii_(0), canbreakline_(true),
mathsout_(false), ulemcmd_(NONE), line_(0), encoding_(encoding), mathsout_(false), ulemcmd_(NONE), line_(0), encoding_(encoding),
row_entry_(make_unique<RowEntry>(TexRow::row_none)) row_entry_(TexRow::row_none)
{} {}
@ -180,17 +180,17 @@ void WriteStream::asciiOnly(bool ascii)
} }
Changer WriteStream::changeRowEntry(RowEntry entry) Changer WriteStream::changeRowEntry(TexRow::RowEntry entry)
{ {
return make_change(*row_entry_, entry); return make_change(row_entry_, entry);
} }
bool WriteStream::startOuterRow() bool WriteStream::startOuterRow()
{ {
if (TexRow::isNone(*row_entry_)) if (TexRow::isNone(row_entry_))
return false; return false;
return texrow().start(*row_entry_); return texrow().start(row_entry_);
} }

View File

@ -13,6 +13,8 @@
#define MATH_MATHMLSTREAM_H #define MATH_MATHMLSTREAM_H
#include "InsetMath.h" #include "InsetMath.h"
#include "TexRow.h"
#include "texstream.h" #include "texstream.h"
#include "support/Changer.h" #include "support/Changer.h"
@ -26,7 +28,6 @@ class Encoding;
class InsetMath; class InsetMath;
class MathAtom; class MathAtom;
class MathData; class MathData;
struct RowEntry;
// //
// LaTeX/LyX // LaTeX/LyX
@ -104,7 +105,7 @@ public:
Encoding const * encoding() const { return encoding_; } Encoding const * encoding() const { return encoding_; }
/// Temporarily change the TexRow information about the outer row entry. /// Temporarily change the TexRow information about the outer row entry.
Changer changeRowEntry(RowEntry entry); Changer changeRowEntry(TexRow::RowEntry entry);
/// TexRow::starts the innermost outer math inset /// TexRow::starts the innermost outer math inset
/// returns true if the outer row entry will appear at this line /// returns true if the outer row entry will appear at this line
bool startOuterRow(); bool startOuterRow();
@ -140,8 +141,7 @@ private:
/// ///
Encoding const * encoding_; Encoding const * encoding_;
/// Row entry we are in /// Row entry we are in
/// (it is a pointer to allow forward-declaration) TexRow::RowEntry row_entry_;
unique_ptr<RowEntry> row_entry_;
}; };
/// ///