mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-27 11:52:25 +00:00
Changes to the within-inset row rendering caching code.
* insets/insetenv.h: * insets/insetcollapsable.h: remove method * insets/insettabular.h: * insets/insetbase.h: rename, add methods * insets/insettext.[Ch]: rename method; add Tall() * paragraph_pimpl.C (Paragraph::Pimpl::simpleTeXSpecialC): rename call * mathed/math_hullinset.h: rename method * rowpainter.C (RowPainter::paintInset): (paintPar): remove isTrueTextInset, move to insets git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13415 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
3626d1ce04
commit
3d0c878966
@ -21,6 +21,7 @@ class BufferView;
|
|||||||
class CursorSlice;
|
class CursorSlice;
|
||||||
class FuncRequest;
|
class FuncRequest;
|
||||||
class FuncStatus;
|
class FuncStatus;
|
||||||
|
class InsetText;
|
||||||
class LaTeXFeatures;
|
class LaTeXFeatures;
|
||||||
class LCursor;
|
class LCursor;
|
||||||
class LyXLex;
|
class LyXLex;
|
||||||
@ -216,8 +217,10 @@ public:
|
|||||||
virtual EDITABLE editable() const;
|
virtual EDITABLE editable() const;
|
||||||
/// can we go further down on mouse click?
|
/// can we go further down on mouse click?
|
||||||
virtual bool descendable() const { return false; }
|
virtual bool descendable() const { return false; }
|
||||||
///
|
/// does this contain text that can be change track marked in DVI?
|
||||||
virtual bool isTextInset() const { return false; }
|
virtual bool canTrackChanges() const { return false; }
|
||||||
|
/// is this inset based on the TextInset class?
|
||||||
|
virtual InsetText * asTextInset() const { return 0; }
|
||||||
/// return true if the inset should be removed automatically
|
/// return true if the inset should be removed automatically
|
||||||
virtual bool autoDelete() const;
|
virtual bool autoDelete() const;
|
||||||
|
|
||||||
|
@ -57,8 +57,6 @@ public:
|
|||||||
/// can we go further down on mouse click?
|
/// can we go further down on mouse click?
|
||||||
bool descendable() const;
|
bool descendable() const;
|
||||||
///
|
///
|
||||||
bool isTextInset() const { return true; }
|
|
||||||
///
|
|
||||||
void setLabel(std::string const & l);
|
void setLabel(std::string const & l);
|
||||||
///
|
///
|
||||||
virtual void setButtonLabel() {}
|
virtual void setButtonLabel() {}
|
||||||
|
@ -34,8 +34,6 @@ public:
|
|||||||
///
|
///
|
||||||
InsetBase::EDITABLE editable() const { return HIGHLY_EDITABLE; }
|
InsetBase::EDITABLE editable() const { return HIGHLY_EDITABLE; }
|
||||||
///
|
///
|
||||||
bool isTextInset() const { return true; }
|
|
||||||
///
|
|
||||||
LyXLayout_ptr const & layout() const;
|
LyXLayout_ptr const & layout() const;
|
||||||
/** returns true if, when outputing LaTeX, font changes should
|
/** returns true if, when outputing LaTeX, font changes should
|
||||||
be closed before generating this inset. This is needed for
|
be closed before generating this inset. This is needed for
|
||||||
|
@ -69,7 +69,7 @@ public:
|
|||||||
///
|
///
|
||||||
bool insetAllowed(InsetBase::Code) const { return true; }
|
bool insetAllowed(InsetBase::Code) const { return true; }
|
||||||
///
|
///
|
||||||
bool isTextInset() const { return true; }
|
bool canTrackChanges() const { return true; }
|
||||||
/** returns true if, when outputing LaTeX, font changes should
|
/** returns true if, when outputing LaTeX, font changes should
|
||||||
be closed before generating this inset. This is needed for
|
be closed before generating this inset. This is needed for
|
||||||
insets that may contain several paragraphs */
|
insets that may contain several paragraphs */
|
||||||
|
@ -258,6 +258,12 @@ InsetBase * InsetText::editXY(LCursor & cur, int x, int y)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool const InsetText::Tall() const
|
||||||
|
{
|
||||||
|
return text_.ascent() + text_.descent() > 2 * defaultRowHeight();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetText::doDispatch(LCursor & cur, FuncRequest & cmd)
|
void InsetText::doDispatch(LCursor & cur, FuncRequest & cmd)
|
||||||
{
|
{
|
||||||
lyxerr[Debug::DEBUG] << BOOST_CURRENT_FUNCTION
|
lyxerr[Debug::DEBUG] << BOOST_CURRENT_FUNCTION
|
||||||
|
@ -57,7 +57,9 @@ public:
|
|||||||
///
|
///
|
||||||
EDITABLE editable() const { return HIGHLY_EDITABLE; }
|
EDITABLE editable() const { return HIGHLY_EDITABLE; }
|
||||||
///
|
///
|
||||||
bool isTextInset() const { return true; }
|
bool canTrackChanges() const { return true; }
|
||||||
|
///
|
||||||
|
InsetText * asTextInset() const { return const_cast<InsetText *>(this); }
|
||||||
///
|
///
|
||||||
int latex(Buffer const &, std::ostream &,
|
int latex(Buffer const &, std::ostream &,
|
||||||
OutputParams const &) const;
|
OutputParams const &) const;
|
||||||
@ -139,6 +141,8 @@ public:
|
|||||||
InsetText(InsetText const &);
|
InsetText(InsetText const &);
|
||||||
///
|
///
|
||||||
bool & Wide() const { return wide_inset_; }
|
bool & Wide() const { return wide_inset_; }
|
||||||
|
///
|
||||||
|
bool const Tall() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
///
|
///
|
||||||
|
@ -189,7 +189,7 @@ public:
|
|||||||
/// what appears in the minibuffer when opening
|
/// what appears in the minibuffer when opening
|
||||||
virtual std::string const editMessage() const;
|
virtual std::string const editMessage() const;
|
||||||
///
|
///
|
||||||
virtual bool isTextInset() const { return true; }
|
virtual bool canTrackChanges() const { return true; }
|
||||||
///
|
///
|
||||||
virtual void mutateToText();
|
virtual void mutateToText();
|
||||||
///
|
///
|
||||||
|
@ -536,7 +536,7 @@ void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const & buf,
|
|||||||
&& runparams.flavor == OutputParams::LATEX
|
&& runparams.flavor == OutputParams::LATEX
|
||||||
&& features.isAvailable("dvipost");
|
&& features.isAvailable("dvipost");
|
||||||
|
|
||||||
if (inset->isTextInset()) {
|
if (inset->canTrackChanges()) {
|
||||||
column += Changes::latexMarkChange(os, running_change,
|
column += Changes::latexMarkChange(os, running_change,
|
||||||
Change::UNCHANGED, output);
|
Change::UNCHANGED, output);
|
||||||
running_change = Change::UNCHANGED;
|
running_change = Change::UNCHANGED;
|
||||||
|
@ -151,15 +151,6 @@ int RowPainter::leftMargin() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool isTrueTextInset(InsetBase * in)
|
|
||||||
{
|
|
||||||
// Math and tabular insets have isTextInset = true, though they are
|
|
||||||
// not derived from InsetText. Paint them fully
|
|
||||||
return (in && in->isTextInset() && in->asMathInset() == 0
|
|
||||||
&& in->lyxCode() != InsetBase::TABULAR_CODE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void RowPainter::paintInset(pos_type const pos, LyXFont const & font)
|
void RowPainter::paintInset(pos_type const pos, LyXFont const & font)
|
||||||
{
|
{
|
||||||
InsetBase const * inset = par_.getInset(pos);
|
InsetBase const * inset = par_.getInset(pos);
|
||||||
@ -176,8 +167,10 @@ void RowPainter::paintInset(pos_type const pos, LyXFont const & font)
|
|||||||
InsetBase * in = const_cast<InsetBase *>(inset);
|
InsetBase * in = const_cast<InsetBase *>(inset);
|
||||||
// non-wide insets are painted completely. Recursive
|
// non-wide insets are painted completely. Recursive
|
||||||
bool tmp = bv_.repaintAll();
|
bool tmp = bv_.repaintAll();
|
||||||
if (!isTrueTextInset(in) || !static_cast<InsetText*>(in)->Wide())
|
if (!in->asTextInset() || !static_cast<InsetText*>(in)->Wide()) {
|
||||||
bv_.repaintAll(true);
|
bv_.repaintAll(true);
|
||||||
|
lyxerr[Debug::PAINTING] << endl << "Paint inset fully" << endl;
|
||||||
|
}
|
||||||
if (bv_.repaintAll())
|
if (bv_.repaintAll())
|
||||||
inset->drawSelection(pi, int(x_), yo_);
|
inset->drawSelection(pi, int(x_), yo_);
|
||||||
inset->draw(pi, int(x_), yo_);
|
inset->draw(pi, int(x_), yo_);
|
||||||
@ -821,9 +814,11 @@ void paintPar
|
|||||||
for (pos_type i = rit->pos() ; i != rit->endpos(); ++i) {
|
for (pos_type i = rit->pos() ; i != rit->endpos(); ++i) {
|
||||||
InsetBase* in
|
InsetBase* in
|
||||||
= const_cast<InsetBase*>(par.getInset(i));
|
= const_cast<InsetBase*>(par.getInset(i));
|
||||||
if (isTrueTextInset(in))
|
if (in && in->asTextInset()) {
|
||||||
static_cast<InsetText*>(in)->Wide()
|
static_cast<InsetText*>(in)->Wide()
|
||||||
= in_inset_alone_on_row;
|
= in_inset_alone_on_row &&
|
||||||
|
static_cast<InsetText*>(in)->Tall();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If selection is on, the current row signature differs
|
// If selection is on, the current row signature differs
|
||||||
|
Loading…
Reference in New Issue
Block a user