mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
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:
parent
2e45bade7a
commit
148b3ae773
@ -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;
|
||||||
|
@ -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) =
|
||||||
|
@ -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 *);
|
||||||
|
@ -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);
|
||||||
|
@ -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();
|
||||||
|
35
src/TexRow.h
35
src/TexRow.h
@ -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
|
|
||||||
struct TextEntry { int id; pos_type pos; };
|
|
||||||
|
|
||||||
/// an individual math id/cell <=> row mapping
|
|
||||||
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
|
|
||||||
union {
|
|
||||||
struct TextEntry text;
|
|
||||||
struct MathEntry math;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/// Represents the correspondence between paragraphs and the generated
|
/// Represents the correspondence between paragraphs and the generated
|
||||||
/// LaTeX file
|
/// LaTeX file
|
||||||
|
|
||||||
class TexRow {
|
class TexRow {
|
||||||
|
public:
|
||||||
|
/// an individual par id/pos <=> row mapping
|
||||||
|
struct TextEntry { int id; pos_type pos; };
|
||||||
|
|
||||||
|
/// an individual math id/cell <=> row mapping
|
||||||
|
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
|
||||||
|
union {
|
||||||
|
struct TextEntry text;
|
||||||
|
struct MathEntry math;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
private:
|
||||||
/// 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
|
||||||
|
@ -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 +
|
||||||
|
@ -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;
|
||||||
|
@ -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_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -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_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
///
|
///
|
||||||
|
Loading…
Reference in New Issue
Block a user