some reindentation, revert workarea xpos++, constify, remove all traces of LyXParagraph::Clone

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1989 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Lars Gullik Bjønnes 2001-05-08 13:28:44 +00:00
parent 352479f603
commit 76ca534828
10 changed files with 147 additions and 226 deletions

View File

@ -902,7 +902,8 @@ Inset * BufferView::Pimpl::checkInsetHit(LyXText * text, int & x, int & y,
#if 0 #if 0
if (move_cursor && (tmpinset != bv_->theLockingInset())) if (move_cursor && (tmpinset != bv_->theLockingInset()))
#endif #endif
text->SetCursor(bv_, cursor.par(),cursor.pos()-1,true); text->SetCursor(bv_, cursor.par(),
cursor.pos() - 1, true);
x = x - start_x; x = x - start_x;
// The origin of an inset is on the baseline // The origin of an inset is on the baseline
y = y_tmp - (text->cursor.y()); y = y_tmp - (text->cursor.y());

View File

@ -1,5 +1,12 @@
2001-05-08 Lars Gullik Bjønnes <larsbj@birdstep.com> 2001-05-08 Lars Gullik Bjønnes <larsbj@birdstep.com>
* paragraph.C (writeFile): reindent
(Erase): reindent
* WorkArea.h: revert the xpos + etc changes.
* CutAndPaste.C (SwitchLayoutsBetweenClasses): constify name and s
* lyxparagraph.[Ch]: add copy constructor, remove Clone * lyxparagraph.[Ch]: add copy constructor, remove Clone
* CutAndPaste.C (copySelection): use LyXParagraph copy constructor * CutAndPaste.C (copySelection): use LyXParagraph copy constructor

View File

@ -159,21 +159,13 @@ bool CutAndPaste::copySelection(LyXParagraph * startpar, LyXParagraph * endpar,
// copy more than one paragraph // copy more than one paragraph
// clone the paragraphs within the selection // clone the paragraphs within the selection
LyXParagraph * tmppar = startpar; LyXParagraph * tmppar = startpar;
#if 0
buf = tmppar->Clone();
#else
buf = new LyXParagraph(*tmppar); buf = new LyXParagraph(*tmppar);
#endif
LyXParagraph * tmppar2 = buf; LyXParagraph * tmppar2 = buf;
while (tmppar != endpar while (tmppar != endpar
&& tmppar->next()) { && tmppar->next()) {
tmppar = tmppar->next(); tmppar = tmppar->next();
#if 0
tmppar2->next(tmppar->Clone());
#else
tmppar2->next(new LyXParagraph(*tmppar)); tmppar2->next(new LyXParagraph(*tmppar));
#endif
tmppar2->next()->previous(tmppar2); tmppar2->next()->previous(tmppar2);
tmppar2 = tmppar2->next(); tmppar2 = tmppar2->next();
} }
@ -210,11 +202,8 @@ bool CutAndPaste::pasteSelection(LyXParagraph ** par, LyXParagraph ** endpar,
// There are two cases: cutbuffer only one paragraph or many // There are two cases: cutbuffer only one paragraph or many
if (!buf->next()) { if (!buf->next()) {
// only within a paragraph // only within a paragraph
#if 0
LyXParagraph * tmpbuf = buf->Clone();
#else
LyXParagraph * tmpbuf = new LyXParagraph(*buf); LyXParagraph * tmpbuf = new LyXParagraph(*buf);
#endif
// Some provisions should be done here for checking // Some provisions should be done here for checking
// if we are inserting at the beginning of a // if we are inserting at the beginning of a
// paragraph. If there are a space at the beginning // paragraph. If there are a space at the beginning
@ -243,19 +232,12 @@ bool CutAndPaste::pasteSelection(LyXParagraph ** par, LyXParagraph ** endpar,
// make a copy of the simple cut_buffer // make a copy of the simple cut_buffer
LyXParagraph * tmpbuf = buf; LyXParagraph * tmpbuf = buf;
#if 0
LyXParagraph * simple_cut_clone = tmpbuf->Clone();
#else
LyXParagraph * simple_cut_clone = new LyXParagraph(*tmpbuf); LyXParagraph * simple_cut_clone = new LyXParagraph(*tmpbuf);
#endif
LyXParagraph * tmpbuf2 = simple_cut_clone; LyXParagraph * tmpbuf2 = simple_cut_clone;
while (tmpbuf->next()) { while (tmpbuf->next()) {
tmpbuf = tmpbuf->next(); tmpbuf = tmpbuf->next();
#if 0
tmpbuf2->next(tmpbuf->Clone());
#else
tmpbuf2->next(new LyXParagraph(*tmpbuf)); tmpbuf2->next(new LyXParagraph(*tmpbuf));
#endif
tmpbuf2->next()->previous(tmpbuf2); tmpbuf2->next()->previous(tmpbuf2);
tmpbuf2 = tmpbuf2->next(); tmpbuf2 = tmpbuf2->next();
} }
@ -343,7 +325,8 @@ int CutAndPaste::SwitchLayoutsBetweenClasses(LyXTextClassList::size_type c1,
return ret; return ret;
while (par) { while (par) {
string name = textclasslist.NameOfLayout(c1, par->layout); string const name = textclasslist.NameOfLayout(c1,
par->layout);
int lay = 0; int lay = 0;
pair<bool, LyXTextClass::LayoutList::size_type> pp = pair<bool, LyXTextClass::LayoutList::size_type> pp =
textclasslist.NumberOfLayout(c2, name); textclasslist.NumberOfLayout(c2, name);
@ -357,7 +340,7 @@ int CutAndPaste::SwitchLayoutsBetweenClasses(LyXTextClassList::size_type c1,
if (name != textclasslist.NameOfLayout(c2, par->layout)) { if (name != textclasslist.NameOfLayout(c2, par->layout)) {
++ret; ++ret;
string s = _("Layout had to be changed from\n") string const s = _("Layout had to be changed from\n")
+ name + _(" to ") + name + _(" to ")
+ textclasslist.NameOfLayout(c2, par->layout) + textclasslist.NameOfLayout(c2, par->layout)
+ _("\nbecause of class conversion from\n") + _("\nbecause of class conversion from\n")

View File

@ -35,17 +35,17 @@ public:
/// ///
int workWidth() const { return work_area->w; } int workWidth() const { return work_area->w; }
/// ///
//unsigned int width() const { return work_area->w + scrollbar->w; } unsigned int width() const { return work_area->w + scrollbar->w; }
unsigned int width() const { return backgroundbox->w + 15; } //unsigned int width() const { return backgroundbox->w + 15; }
/// ///
//unsigned int height() const { return work_area->h; } unsigned int height() const { return work_area->h; }
unsigned int height() const { return backgroundbox->h; } //unsigned int height() const { return backgroundbox->h; }
/// ///
//int xpos() const { return work_area->x; } int xpos() const { return work_area->x; }
int xpos() const { return backgroundbox->x; } //int xpos() const { return backgroundbox->x; }
/// ///
//int ypos() const { return work_area->y; } int ypos() const { return work_area->y; }
int ypos() const { return backgroundbox->y; } //int ypos() const { return backgroundbox->y; }
/// ///
void resize(int xpos, int ypos, int width, int height); void resize(int xpos, int ypos, int width, int height);
/// ///

View File

@ -177,24 +177,7 @@ void InsetText::Read(Buffer const * buf, LyXLex & lex)
char depth = 0; // signed or unsigned? char depth = 0; // signed or unsigned?
LyXFont font(LyXFont::ALL_INHERIT); LyXFont font(LyXFont::ALL_INHERIT);
#if 0
// delete all instances of LyXText before deleting the paragraps used
// by it.
for (Cache::iterator cit = cache.begin(); cit != cache.end(); ++cit) {
delete (*cit).second;
(*cit).second = 0;
}
while (par) {
LyXParagraph * tmp = par->next();
delete par;
par = tmp;
}
par = new LyXParagraph;
#else
clear(); clear();
#endif
while (lex.IsOK()) { while (lex.IsOK()) {
lex.nextToken(); lex.nextToken();
@ -1487,20 +1470,12 @@ void InsetText::SetParagraphData(LyXParagraph * p)
par = tmp; par = tmp;
} }
#if 0
par = p->Clone();
#else
par = new LyXParagraph(*p); par = new LyXParagraph(*p);
#endif
par->SetInsetOwner(this); par->SetInsetOwner(this);
LyXParagraph * np = par; LyXParagraph * np = par;
while (p->next()) { while (p->next()) {
p = p->next(); p = p->next();
#if 0
np->next(p->Clone());
#else
np->next(new LyXParagraph(*p)); np->next(new LyXParagraph(*p));
#endif
np->next()->previous(np); np->next()->previous(np);
np = np->next(); np = np->next();
np->SetInsetOwner(this); np->SetInsetOwner(this);

View File

@ -132,10 +132,6 @@ public:
/// ///
LyXParagraph * TeXEnvironment(Buffer const *, BufferParams const &, LyXParagraph * TeXEnvironment(Buffer const *, BufferParams const &,
std::ostream &, TexRow & texrow); std::ostream &, TexRow & texrow);
#if 0
///
LyXParagraph * Clone() const;
#endif
/// ///
bool HasSameLayout(LyXParagraph const * par) const; bool HasSameLayout(LyXParagraph const * par) const;

View File

@ -180,73 +180,73 @@ void LyXParagraph::writeFile(Buffer const * buf, ostream & os,
BufferParams const & bparams, BufferParams const & bparams,
char footflag, char dth) const char footflag, char dth) const
{ {
// The beginning or end of a deeper (i.e. nested) area? // The beginning or end of a deeper (i.e. nested) area?
if (dth != params.depth()) { if (dth != params.depth()) {
if (params.depth() > dth) { if (params.depth() > dth) {
while (params.depth() > dth) { while (params.depth() > dth) {
os << "\n\\begin_deeper "; os << "\n\\begin_deeper ";
++dth; ++dth;
} }
} else { } else {
while (params.depth() < dth) { while (params.depth() < dth) {
os << "\n\\end_deeper "; os << "\n\\end_deeper ";
--dth; --dth;
}
} }
} }
}
// First write the layout // First write the layout
os << "\n\\layout " os << "\n\\layout "
<< textclasslist.NameOfLayout(bparams.textclass, layout) << textclasslist.NameOfLayout(bparams.textclass, layout)
<< "\n"; << "\n";
// Maybe some vertical spaces. // Maybe some vertical spaces.
if (params.spaceTop().kind() != VSpace::NONE) if (params.spaceTop().kind() != VSpace::NONE)
os << "\\added_space_top " os << "\\added_space_top "
<< params.spaceTop().asLyXCommand() << " "; << params.spaceTop().asLyXCommand() << " ";
if (params.spaceBottom().kind() != VSpace::NONE) if (params.spaceBottom().kind() != VSpace::NONE)
os << "\\added_space_bottom " os << "\\added_space_bottom "
<< params.spaceBottom().asLyXCommand() << " "; << params.spaceBottom().asLyXCommand() << " ";
// Maybe the paragraph has special spacing // Maybe the paragraph has special spacing
params.spacing().writeFile(os, true); params.spacing().writeFile(os, true);
// The labelwidth string used in lists. // The labelwidth string used in lists.
if (!params.labelWidthString().empty()) if (!params.labelWidthString().empty())
os << "\\labelwidthstring " os << "\\labelwidthstring "
<< params.labelWidthString() << '\n'; << params.labelWidthString() << '\n';
// Lines above or below? // Lines above or below?
if (params.lineTop()) if (params.lineTop())
os << "\\line_top "; os << "\\line_top ";
if (params.lineBottom()) if (params.lineBottom())
os << "\\line_bottom "; os << "\\line_bottom ";
// Pagebreaks above or below? // Pagebreaks above or below?
if (params.pagebreakTop()) if (params.pagebreakTop())
os << "\\pagebreak_top "; os << "\\pagebreak_top ";
if (params.pagebreakBottom()) if (params.pagebreakBottom())
os << "\\pagebreak_bottom "; os << "\\pagebreak_bottom ";
// Start of appendix? // Start of appendix?
if (params.startOfAppendix()) if (params.startOfAppendix())
os << "\\start_of_appendix "; os << "\\start_of_appendix ";
// Noindent? // Noindent?
if (params.noindent()) if (params.noindent())
os << "\\noindent "; os << "\\noindent ";
// Alignment? // Alignment?
if (params.align() != LYX_ALIGN_LAYOUT) { if (params.align() != LYX_ALIGN_LAYOUT) {
int h = 0; int h = 0;
switch (params.align()) { switch (params.align()) {
case LYX_ALIGN_LEFT: h = 1; break; case LYX_ALIGN_LEFT: h = 1; break;
case LYX_ALIGN_RIGHT: h = 2; break; case LYX_ALIGN_RIGHT: h = 2; break;
case LYX_ALIGN_CENTER: h = 3; break; case LYX_ALIGN_CENTER: h = 3; break;
default: h = 0; break; default: h = 0; break;
}
os << "\\align " << string_align[h] << " ";
} }
os << "\\align " << string_align[h] << " ";
}
// bibitem ale970302 // bibitem ale970302
if (bibkey) if (bibkey)
@ -468,60 +468,60 @@ void LyXParagraph::Clear()
void LyXParagraph::Erase(LyXParagraph::size_type pos) void LyXParagraph::Erase(LyXParagraph::size_type pos)
{ {
lyx::Assert(pos < size()); lyx::Assert(pos < size());
// if it is an inset, delete the inset entry // if it is an inset, delete the inset entry
if (text[pos] == LyXParagraph::META_INSET) { if (text[pos] == LyXParagraph::META_INSET) {
// find the entry // find the entry
InsetTable search_inset(pos, 0);
InsetList::iterator it =
lower_bound(insetlist.begin(),
insetlist.end(),
search_inset, matchIT());
if (it != insetlist.end() && (*it).pos == pos) {
delete (*it).inset;
insetlist.erase(it);
}
}
text.erase(text.begin() + pos);
// Erase entries in the tables.
FontTable search_font(pos, LyXFont());
FontList::iterator it =
lower_bound(fontlist.begin(),
fontlist.end(),
search_font, matchFT());
if (it != fontlist.end() && (*it).pos() == pos &&
(pos == 0 ||
(it != fontlist.begin() && (*(it - 1)).pos() == pos - 1))) {
// If it is a multi-character font
// entry, we just make it smaller
// (see update below), otherwise we
// should delete it.
unsigned int const i = it - fontlist.begin();
fontlist.erase(fontlist.begin() + i);
it = fontlist.begin() + i;
if (i > 0 && i < fontlist.size() &&
fontlist[i - 1].font() == fontlist[i].font()) {
fontlist.erase(fontlist.begin() + i - 1);
it = fontlist.begin() + i - 1;
}
}
// Update all other entries.
FontList::iterator fend = fontlist.end();
for (; it != fend; ++it)
(*it).pos((*it).pos() - 1);
// Update the inset table.
InsetTable search_inset(pos, 0); InsetTable search_inset(pos, 0);
InsetList::iterator lend = insetlist.end(); InsetList::iterator it =
for (InsetList::iterator it = lower_bound(insetlist.begin(),
upper_bound(insetlist.begin(), insetlist.end(),
lend, search_inset, matchIT());
search_inset, matchIT()); if (it != insetlist.end() && (*it).pos == pos) {
it != lend; ++it) delete (*it).inset;
--(*it).pos; insetlist.erase(it);
}
}
text.erase(text.begin() + pos);
// Erase entries in the tables.
FontTable search_font(pos, LyXFont());
FontList::iterator it =
lower_bound(fontlist.begin(),
fontlist.end(),
search_font, matchFT());
if (it != fontlist.end() && (*it).pos() == pos &&
(pos == 0 ||
(it != fontlist.begin() && (*(it - 1)).pos() == pos - 1))) {
// If it is a multi-character font
// entry, we just make it smaller
// (see update below), otherwise we
// should delete it.
unsigned int const i = it - fontlist.begin();
fontlist.erase(fontlist.begin() + i);
it = fontlist.begin() + i;
if (i > 0 && i < fontlist.size() &&
fontlist[i - 1].font() == fontlist[i].font()) {
fontlist.erase(fontlist.begin() + i - 1);
it = fontlist.begin() + i - 1;
}
}
// Update all other entries.
FontList::iterator fend = fontlist.end();
for (; it != fend; ++it)
(*it).pos((*it).pos() - 1);
// Update the inset table.
InsetTable search_inset(pos, 0);
InsetList::iterator lend = insetlist.end();
for (InsetList::iterator it =
upper_bound(insetlist.begin(),
lend,
search_inset, matchIT());
it != lend; ++it)
--(*it).pos;
} }
@ -1049,40 +1049,6 @@ int LyXParagraph::StripLeadingSpaces(LyXTextClassList::size_type tclass)
} }
#if 0
LyXParagraph * LyXParagraph::Clone() const
{
// create a new paragraph
LyXParagraph * result = new LyXParagraph;
result->MakeSameLayout(this);
// this is because of the dummy layout of the paragraphs that
// follow footnotes
result->layout = layout;
result->inset_owner = inset_owner;
// ale970302
if (bibkey)
result->bibkey = static_cast<InsetBibKey *>
(bibkey->Clone(*current_view->buffer()));
else
result->bibkey = 0;
// copy everything behind the break-position to the new paragraph
result->text = text;
result->fontlist = fontlist;
result->insetlist = insetlist;
for (InsetList::iterator it = result->insetlist.begin();
it != result->insetlist.end(); ++it)
(*it).inset = (*it).inset->Clone(*current_view->buffer());
return result;
}
#endif
bool LyXParagraph::HasSameLayout(LyXParagraph const * par) const bool LyXParagraph::HasSameLayout(LyXParagraph const * par) const
{ {
return return

View File

@ -2690,11 +2690,7 @@ Undo * LyXText::CreateUndo(Buffer * buf, Undo::undo_kind kind,
if (start && end && (start != end->next()) && if (start && end && (start != end->next()) &&
((before != behind) || (!before && !behind))) { ((before != behind) || (!before && !behind))) {
LyXParagraph * tmppar = start; LyXParagraph * tmppar = start;
#if 0
LyXParagraph * tmppar2 = tmppar->Clone();
#else
LyXParagraph * tmppar2 = new LyXParagraph(*tmppar); LyXParagraph * tmppar2 = new LyXParagraph(*tmppar);
#endif
tmppar2->id(tmppar->id()); tmppar2->id(tmppar->id());
// a memory optimization: Just store the layout information // a memory optimization: Just store the layout information
@ -2708,11 +2704,7 @@ Undo * LyXText::CreateUndo(Buffer * buf, Undo::undo_kind kind,
while (tmppar != end && tmppar->next()) { while (tmppar != end && tmppar->next()) {
tmppar = tmppar->next(); tmppar = tmppar->next();
#if 0
tmppar2->next(tmppar->Clone());
#else
tmppar2->next(new LyXParagraph(*tmppar)); tmppar2->next(new LyXParagraph(*tmppar));
#endif
tmppar2->next()->id(tmppar->id()); tmppar2->next()->id(tmppar->id());
// a memory optimization: Just store the layout // a memory optimization: Just store the layout
// information when only edit // information when only edit

View File

@ -10,12 +10,12 @@
#include <config.h> #include <config.h>
#include "undo.h"
#ifdef __GNUG__ #ifdef __GNUG__
#pragma implementation #pragma implementation
#endif #endif
#include "undo.h"
Undo::Undo(undo_kind kind_arg, Undo::Undo(undo_kind kind_arg,
int number_before_arg, int number_behind_arg, int number_before_arg, int number_behind_arg,

View File

@ -16,9 +16,10 @@
#pragma interface #pragma interface
#endif #endif
#include <list>
#include "lyxparagraph.h" #include "lyxparagraph.h"
#include <list>
/// ///
class Undo { class Undo {