#include "lyxvc.h"
#include "bufferparams.h"
#include "texrow.h"
+#include "ParagraphList.h"
#include "paragraph.h"
+#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
class BufferView;
+class Counters;
class LyXRC;
class TeXErrors;
class LaTeXFeatures;
class Language;
class ParIterator;
-// When lyx 1.3.x starts we should enable this
-// btw. we should also test this with 1.2 so that we
-// do not get any surprises. (Lgb)
#define NO_COMPABILITY 1
///
Language const * getLanguage() const;
///
int runChktex();
- ///
- bool isLyxClean() const;
+ /// return true if the main lyx file does not need saving
+ bool isClean() const;
///
bool isBakClean() const;
///
bool isDepClean(string const & name) const;
- ///
- void markLyxClean() const;
+ /// mark the main lyx file as not needing saving
+ void markClean() const;
///
void markBakClean();
///
std::vector<std::pair<string, string> > const getBibkeyList() const;
///
- std::vector<string> const getLabelList();
+ std::vector<string> const getLabelList() const;
/** This will clearly have to change later. Later we can have more
than one user per buffer. */
This is a linked list of paragraph, this list holds the
whole contents of the document.
*/
- Paragraph * paragraph;
+ ParagraphList paragraphs;
/// LyX version control object.
LyXVC lyxvc;
/// Used when typesetting to place errorboxes.
TexRow texrow;
+ /// Buffer-wide counter array
+ Counters & counters() const;
+
private:
/// is save needed
mutable bool lyx_clean;
*/
BufferView * users;
+ /// The pointer is const although its contents may not be
+ boost::scoped_ptr<Counters> const ctrs;
+
public:
///
class inset_iterator {
inset_iterator & operator++() { // prefix ++
if (par) {
++it;
- if (it == par->inset_iterator_end()) {
+ if (it == par->insetlist.end()) {
par = par->next();
setParagraph();
}
inset_iterator tmp(par, it.getPos());
if (par) {
++it;
- if (it == par->inset_iterator_end()) {
+ if (it == par->insetlist.end()) {
par = par->next();
setParagraph();
}
}
return tmp;
}
+
///
- Inset * operator*() { return *it; }
+ Inset * operator*() { return it.getInset(); }
///
Paragraph * getPar() { return par; }
///
Paragraph * par;
///
- Paragraph::inset_iterator it;
+ InsetList::iterator it;
};
///
inset_iterator inset_iterator_begin() {
- return inset_iterator(paragraph);
+ return inset_iterator(&*paragraphs.begin());
}
///
inset_iterator inset_iterator_end() {
}
///
inset_iterator inset_const_iterator_begin() const {
- return inset_iterator(paragraph);
+ return inset_iterator(&*paragraphs.begin());
}
///
inset_iterator inset_const_iterator_end() const {
inline
-bool Buffer::isLyxClean() const
+bool Buffer::isClean() const
{
return lyx_clean;
}
inline
-void Buffer::markLyxClean() const
+void Buffer::markClean() const
{
if (!lyx_clean) {
lyx_clean = true;