]> git.lyx.org Git - lyx.git/blobdiff - src/InsetList.cpp
Account for old versions of Pygments
[lyx.git] / src / InsetList.cpp
index 1f205858794ef899ac7aabeb2d0d214dcaf85cf1..d1b6d43d805b386d48668a532b71f79cc2a1f02d 100644 (file)
@@ -3,7 +3,7 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
  * \author Martin Vermeer
  *
  * Full author contact details are available in file CREDITS.
 
 #include "InsetList.h"
 
-#include "Buffer.h"
-#include "BufferParams.h"
-#include "BranchList.h"
+#include "insets/Inset.h"
+
 #include "support/debug.h"
 
-#include "insets/InsetBranch.h"
+#include <algorithm>
 
 using namespace std;
 
@@ -40,16 +39,54 @@ struct InsetTablePosLess
 } // namespace anon
 
 
+InsetList::InsetList(InsetList const & il) : list_(il.list_)
+{
+       List::iterator it = list_.begin();
+       List::iterator end = list_.end();
+       for (; it != end; ++it)
+               it->inset = it->inset->clone();
+}
+
+
+InsetList::InsetList(InsetList const & il, pos_type beg, pos_type end)
+{
+       InsetList::const_iterator cit = il.begin();
+       InsetList::const_iterator cend = il.end();
+       for (; cit != cend; ++cit) {
+               if (cit->pos < beg)
+                       continue;
+               if (cit->pos >= end)
+                       break;
+               // Add a new entry in the insetlist_.
+               insert(cit->inset->clone(), cit->pos - beg);
+       }
+}
+
 
 InsetList::~InsetList()
 {
-       // If we begin storing a shared_ptr in the List
-       // this code can be removed. (Lgb)
        List::iterator it = list_.begin();
        List::iterator end = list_.end();
-       for (; it != end; ++it) {
+       for (; it != end; ++it)
                delete it->inset;
-       }
+}
+
+
+void InsetList::setBuffer(Buffer & b)
+{
+       List::iterator it = list_.begin();
+       List::iterator end = list_.end();
+       for (; it != end; ++it)
+               it->inset->setBuffer(b);
+}
+
+
+void InsetList::resetBuffer()
+{
+       List::iterator it = list_.begin();
+       List::iterator end = list_.end();
+       for (; it != end; ++it)
+               it->inset->resetBuffer();
 }
 
 
@@ -120,9 +157,8 @@ void InsetList::increasePosAfterPos(pos_type pos)
 {
        List::iterator end = list_.end();
        List::iterator it = insetIterator(pos);
-       for (; it != end; ++it) {
+       for (; it != end; ++it)
                ++it->pos;
-       }
 }
 
 
@@ -130,19 +166,8 @@ void InsetList::decreasePosAfterPos(pos_type pos)
 {
        List::iterator end = list_.end();
        List::iterator it = insetIterator(pos);
-       for (; it != end; ++it) {
-               --it->pos;
-       }
-}
-
-
-InsetList::InsetList(InsetList const & il)
-{
-       list_ = il.list_;
-       List::iterator it = list_.begin();
-       List::iterator end = list_.end();
        for (; it != end; ++it)
-               it->inset = it->inset->clone();
+               --it->pos;
 }