mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
fix bug 913 (toc crash)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6233 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
662eb0b82a
commit
f413754ef5
@ -1,3 +1,9 @@
|
|||||||
|
2003-02-22 John Levon <levon@movementarian.org>
|
||||||
|
|
||||||
|
* toc.h:
|
||||||
|
* toc.C: make TocItem store an id not a Paragraph *
|
||||||
|
(bug #913)
|
||||||
|
|
||||||
2003-02-21 Angus Leeming <leeming@lyx.org>
|
2003-02-21 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
* BufferView_pimpl.C (MenuInsertLyXFile):
|
* BufferView_pimpl.C (MenuInsertLyXFile):
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2003-02-22 John Levon <levon@movementarian.org>
|
||||||
|
|
||||||
|
* insetfloat.C:
|
||||||
|
* insetwrap.C: TocItem changed API (bug 913)
|
||||||
|
|
||||||
2003-02-21 Angus Leeming <leeming@lyx.org>
|
2003-02-21 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
* updatableinset.h (setView, view): remove.
|
* updatableinset.h (setView, view): remove.
|
||||||
|
@ -349,7 +349,7 @@ void InsetFloat::addToToc(toc::TocList & toclist, Buffer const * buf) const
|
|||||||
string const str =
|
string const str =
|
||||||
tostr(toclist[name].size() + 1)
|
tostr(toclist[name].size() + 1)
|
||||||
+ ". " + tmp->asString(buf, false);
|
+ ". " + tmp->asString(buf, false);
|
||||||
toc::TocItem const item(tmp, 0 , str);
|
toc::TocItem const item(tmp->id(), 0 , str);
|
||||||
toclist[name].push_back(item);
|
toclist[name].push_back(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -261,7 +261,7 @@ void InsetWrap::addToToc(toc::TocList & toclist, Buffer const * buf) const
|
|||||||
string const str =
|
string const str =
|
||||||
tostr(toclist[name].size() + 1)
|
tostr(toclist[name].size() + 1)
|
||||||
+ ". " + tmp->asString(buf, false);
|
+ ". " + tmp->asString(buf, false);
|
||||||
toc::TocItem const item(tmp, 0 , str);
|
toc::TocItem const item(tmp->id(), 0 , str);
|
||||||
toclist[name].push_back(item);
|
toclist[name].push_back(item);
|
||||||
}
|
}
|
||||||
tmp = tmp->next();
|
tmp = tmp->next();
|
||||||
|
@ -42,7 +42,7 @@ string const TocItem::asString() const
|
|||||||
|
|
||||||
void TocItem::goTo(LyXView & lv_) const
|
void TocItem::goTo(LyXView & lv_) const
|
||||||
{
|
{
|
||||||
string const tmp = tostr(par->id());
|
string const tmp = tostr(id_);
|
||||||
lv_.dispatch(FuncRequest(LFUN_GOTO_PARAGRAPH, tmp));
|
lv_.dispatch(FuncRequest(LFUN_GOTO_PARAGRAPH, tmp));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ void TocItem::goTo(LyXView & lv_) const
|
|||||||
int TocItem::action() const
|
int TocItem::action() const
|
||||||
{
|
{
|
||||||
return lyxaction.getPseudoAction(LFUN_GOTO_PARAGRAPH,
|
return lyxaction.getPseudoAction(LFUN_GOTO_PARAGRAPH,
|
||||||
tostr(par->id()));
|
tostr(id_));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ TocList const getTocList(Buffer const * buf)
|
|||||||
&& labeltype <= LABEL_COUNTER_CHAPTER + buf->params.tocdepth) {
|
&& labeltype <= LABEL_COUNTER_CHAPTER + buf->params.tocdepth) {
|
||||||
// insert this into the table of contents
|
// insert this into the table of contents
|
||||||
const int depth = max(0, labeltype - textclass.maxcounter());
|
const int depth = max(0, labeltype - textclass.maxcounter());
|
||||||
TocItem const item(par, depth,
|
TocItem const item(par->id(), depth,
|
||||||
par->asString(buf, true));
|
par->asString(buf, true));
|
||||||
toclist["TOC"].push_back(item);
|
toclist["TOC"].push_back(item);
|
||||||
}
|
}
|
||||||
|
15
src/toc.h
15
src/toc.h
@ -35,17 +35,17 @@ namespace toc
|
|||||||
|
|
||||||
///
|
///
|
||||||
struct TocItem {
|
struct TocItem {
|
||||||
TocItem(Paragraph const * p, int d, string const & s)
|
TocItem(int par_id, int d, string const & s)
|
||||||
: par(p), depth(d), str(s) {}
|
: id_(par_id), depth(d), str(s) {}
|
||||||
///
|
///
|
||||||
string const asString() const;
|
string const asString() const;
|
||||||
/// set cursor in LyXView to this TocItem
|
/// set cursor in LyXView to this TocItem
|
||||||
void goTo(LyXView & lv_) const;
|
void goTo(LyXView & lv_) const;
|
||||||
/// the action corresponding to the goTo above
|
/// the action corresponding to the goTo above
|
||||||
int action() const;
|
int action() const;
|
||||||
///
|
/// Paragraph ID containing this item
|
||||||
Paragraph const * par;
|
int id_;
|
||||||
///
|
/// nesting depth
|
||||||
int depth;
|
int depth;
|
||||||
///
|
///
|
||||||
string str;
|
string str;
|
||||||
@ -69,21 +69,18 @@ void asciiTocList(string const &, Buffer const *, std::ostream &);
|
|||||||
by ControlToc::getContents() */
|
by ControlToc::getContents() */
|
||||||
string const getType(string const & cmdName);
|
string const getType(string const & cmdName);
|
||||||
|
|
||||||
///
|
|
||||||
inline
|
inline
|
||||||
bool operator==(TocItem const & a, TocItem const & b)
|
bool operator==(TocItem const & a, TocItem const & b)
|
||||||
{
|
{
|
||||||
return a.par == b.par && a.str == b.str;
|
return a.id_ == b.id_ && a.str == b.str;
|
||||||
// No need to compare depth.
|
// No need to compare depth.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
inline
|
inline
|
||||||
bool operator!=(TocItem const & a, TocItem const & b)
|
bool operator!=(TocItem const & a, TocItem const & b)
|
||||||
{
|
{
|
||||||
return !(a == b);
|
return !(a == b);
|
||||||
// No need to compare depth.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user