Author: rgheck
Date: Wed Jan 12 23:23:27 2011
New Revision: 37192
URL: http://www.lyx.org/trac/changeset/37192

Log:
Inset::addToToc() can and should be const. It wasn't, I take it, because
of things like:
  pit.push_back(CursorSlice(*this));
which I've had to change to:
  pit.push_back(CursorSlice(const_cast<InsetCaption &>(*this)));
and similarly in a few other places.

If anyone thinks we should instead have:
  explicit CursorSlice(Inset const &);
then we can also do that.

Modified:
   lyx-devel/trunk/src/insets/Inset.h
   lyx-devel/trunk/src/insets/InsetBranch.cpp
   lyx-devel/trunk/src/insets/InsetBranch.h
   lyx-devel/trunk/src/insets/InsetCaption.cpp
   lyx-devel/trunk/src/insets/InsetCaption.h
   lyx-devel/trunk/src/insets/InsetCitation.cpp
   lyx-devel/trunk/src/insets/InsetCitation.h
   lyx-devel/trunk/src/insets/InsetFoot.cpp
   lyx-devel/trunk/src/insets/InsetFoot.h
   lyx-devel/trunk/src/insets/InsetGraphics.cpp
   lyx-devel/trunk/src/insets/InsetGraphics.h
   lyx-devel/trunk/src/insets/InsetInclude.cpp
   lyx-devel/trunk/src/insets/InsetInclude.h
   lyx-devel/trunk/src/insets/InsetIndex.cpp
   lyx-devel/trunk/src/insets/InsetIndex.h
   lyx-devel/trunk/src/insets/InsetLabel.cpp
   lyx-devel/trunk/src/insets/InsetLabel.h
   lyx-devel/trunk/src/insets/InsetMarginal.cpp
   lyx-devel/trunk/src/insets/InsetMarginal.h
   lyx-devel/trunk/src/insets/InsetNote.cpp
   lyx-devel/trunk/src/insets/InsetNote.h
   lyx-devel/trunk/src/insets/InsetRef.cpp
   lyx-devel/trunk/src/insets/InsetRef.h
   lyx-devel/trunk/src/insets/InsetTabular.cpp
   lyx-devel/trunk/src/insets/InsetTabular.h
   lyx-devel/trunk/src/insets/InsetText.cpp
   lyx-devel/trunk/src/insets/InsetText.h
   lyx-devel/trunk/src/mathed/InsetMathHull.cpp
   lyx-devel/trunk/src/mathed/InsetMathHull.h

Modified: lyx-devel/trunk/src/insets/Inset.h
==============================================================================
--- lyx-devel/trunk/src/insets/Inset.h  Wed Jan 12 23:03:15 2011        (r37191)
+++ lyx-devel/trunk/src/insets/Inset.h  Wed Jan 12 23:23:27 2011        (r37192)
@@ -492,8 +492,9 @@
        virtual void initUnicodeMath() const {}
 
        /// Add an entry to the TocList
-       /// pit is the ParConstIterator of the paragraph containing the inset
-       virtual void addToToc(DocIterator const &) {}
+       /// Pass a DocIterator that points at the paragraph containing
+       /// the inset
+       virtual void addToToc(DocIterator const &) const {}
        /// Collect BibTeX information
        virtual void collectBibKeys(InsetIterator const &) const {}
        /// Update the counters of this inset and of its contents.

Modified: lyx-devel/trunk/src/insets/InsetBranch.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetBranch.cpp  Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetBranch.cpp  Wed Jan 12 23:23:27 2011        
(r37192)
@@ -294,10 +294,10 @@
 }
 
 
-void InsetBranch::addToToc(DocIterator const & cpit)
+void InsetBranch::addToToc(DocIterator const & cpit) const
 {
        DocIterator pit = cpit;
-       pit.push_back(CursorSlice(*this));
+       pit.push_back(CursorSlice(const_cast<InsetBranch &>(*this)));
 
        Toc & toc = buffer().tocBackend().toc("branch");
        docstring str = params_.branch + ": ";

Modified: lyx-devel/trunk/src/insets/InsetBranch.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetBranch.h    Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetBranch.h    Wed Jan 12 23:23:27 2011        
(r37192)
@@ -81,7 +81,7 @@
        ///
        docstring contextMenuName() const;
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
        ///
        InsetBranchParams const & params() const { return params_; }
        ///

Modified: lyx-devel/trunk/src/insets/InsetCaption.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetCaption.cpp Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetCaption.cpp Wed Jan 12 23:23:27 2011        
(r37192)
@@ -104,13 +104,13 @@
 }
 
 
-void InsetCaption::addToToc(DocIterator const & cpit)
+void InsetCaption::addToToc(DocIterator const & cpit) const
 {
        if (type_.empty())
                return;
 
        DocIterator pit = cpit;
-       pit.push_back(CursorSlice(*this));
+       pit.push_back(CursorSlice(const_cast<InsetCaption &>(*this)));
 
        Toc & toc = buffer().tocBackend().toc(type_);
        docstring str = full_label_ + ". ";

Modified: lyx-devel/trunk/src/insets/InsetCaption.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetCaption.h   Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetCaption.h   Wed Jan 12 23:23:27 2011        
(r37192)
@@ -77,7 +77,7 @@
        ///
        void setCustomLabel(docstring const & label);
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
        /// 
        virtual bool forcePlainLayout(idx_type = 0) const { return true; }
        /// Captions don't accept alignment, spacing, etc.

Modified: lyx-devel/trunk/src/insets/InsetCitation.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetCitation.cpp        Wed Jan 12 23:03:15 
2011        (r37191)
+++ lyx-devel/trunk/src/insets/InsetCitation.cpp        Wed Jan 12 23:23:27 
2011        (r37192)
@@ -481,7 +481,7 @@
 }
 
 
-void InsetCitation::addToToc(DocIterator const & cpit)
+void InsetCitation::addToToc(DocIterator const & cpit) const
 {
        // NOTE
        // XHTML output uses the TOC to collect the citations

Modified: lyx-devel/trunk/src/insets/InsetCitation.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetCitation.h  Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetCitation.h  Wed Jan 12 23:23:27 2011        
(r37192)
@@ -59,7 +59,7 @@
        ///
        void updateBuffer(ParIterator const & it, UpdateType);
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
        ///
        docstring contextMenuName() const;
        //@}

Modified: lyx-devel/trunk/src/insets/InsetFoot.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetFoot.cpp    Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetFoot.cpp    Wed Jan 12 23:23:27 2011        
(r37192)
@@ -61,10 +61,10 @@
 }
 
 
-void InsetFoot::addToToc(DocIterator const & cpit)
+void InsetFoot::addToToc(DocIterator const & cpit) const
 {
        DocIterator pit = cpit;
-       pit.push_back(CursorSlice(*this));
+       pit.push_back(CursorSlice(const_cast<InsetFoot &>(*this)));
 
        Toc & toc = buffer().tocBackend().toc("footnote");
        docstring str = custom_label_ + ": ";

Modified: lyx-devel/trunk/src/insets/InsetFoot.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetFoot.h      Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetFoot.h      Wed Jan 12 23:23:27 2011        
(r37192)
@@ -40,7 +40,7 @@
        /// Update the counters of this inset and of its contents
        void updateBuffer(ParIterator const &, UpdateType);
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
        ///
        docstring toolTip(BufferView const & bv, int x, int y) const;
        ///

Modified: lyx-devel/trunk/src/insets/InsetGraphics.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetGraphics.cpp        Wed Jan 12 23:03:15 
2011        (r37191)
+++ lyx-devel/trunk/src/insets/InsetGraphics.cpp        Wed Jan 12 23:23:27 
2011        (r37192)
@@ -1031,7 +1031,7 @@
 }
 
 
-void InsetGraphics::addToToc(DocIterator const & cpit)
+void InsetGraphics::addToToc(DocIterator const & cpit) const
 {
        TocBackend & backend = buffer().tocBackend();
 

Modified: lyx-devel/trunk/src/insets/InsetGraphics.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetGraphics.h  Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetGraphics.h  Wed Jan 12 23:23:27 2011        
(r37192)
@@ -96,7 +96,7 @@
        ///
        bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
        ///
        docstring contextMenuName() const;
        /// Force inset into LTR environment if surroundings are RTL

Modified: lyx-devel/trunk/src/insets/InsetInclude.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetInclude.cpp Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetInclude.cpp Wed Jan 12 23:23:27 2011        
(r37192)
@@ -998,7 +998,7 @@
 }
 
 
-void InsetInclude::addToToc(DocIterator const & cpit)
+void InsetInclude::addToToc(DocIterator const & cpit) const
 {
        TocBackend & backend = buffer().tocBackend();
 

Modified: lyx-devel/trunk/src/insets/InsetInclude.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetInclude.h   Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetInclude.h   Wed Jan 12 23:23:27 2011        
(r37192)
@@ -99,7 +99,7 @@
        ///
        void addPreview(DocIterator const &, graphics::PreviewLoader &) const;
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
        ///
        void updateBuffer(ParIterator const &, UpdateType);
        ///

Modified: lyx-devel/trunk/src/insets/InsetIndex.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetIndex.cpp   Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetIndex.cpp   Wed Jan 12 23:23:27 2011        
(r37192)
@@ -356,10 +356,10 @@
 }
 
 
-void InsetIndex::addToToc(DocIterator const & cpit)
+void InsetIndex::addToToc(DocIterator const & cpit) const
 {
        DocIterator pit = cpit;
-       pit.push_back(CursorSlice(*this));
+       pit.push_back(CursorSlice(const_cast<InsetIndex &>(*this)));
        docstring str;
        text().forToc(str, TOC_ENTRY_LENGTH);
        buffer().tocBackend().toc("index").push_back(TocItem(pit, 0, str));

Modified: lyx-devel/trunk/src/insets/InsetIndex.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetIndex.h     Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetIndex.h     Wed Jan 12 23:23:27 2011        
(r37192)
@@ -71,7 +71,7 @@
        /// should paragraph indendation be omitted in any case?
        bool neverIndent() const { return true; }
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
        ///
        docstring toolTip(BufferView const & bv, int x, int y) const;
        ///

Modified: lyx-devel/trunk/src/insets/InsetLabel.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetLabel.cpp   Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetLabel.cpp   Wed Jan 12 23:23:27 2011        
(r37192)
@@ -142,7 +142,7 @@
 }
 
 
-void InsetLabel::addToToc(DocIterator const & cpit)
+void InsetLabel::addToToc(DocIterator const & cpit) const
 {
        docstring const & label = getParam("name");
        Toc & toc = buffer().tocBackend().toc("label");

Modified: lyx-devel/trunk/src/insets/InsetLabel.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetLabel.h     Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetLabel.h     Wed Jan 12 23:23:27 2011        
(r37192)
@@ -53,7 +53,7 @@
        ///
        void updateBuffer(ParIterator const & it, UpdateType);
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
        //@}
 
        /// \name Static public methods obligated for InsetCommand derived 
classes

Modified: lyx-devel/trunk/src/insets/InsetMarginal.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetMarginal.cpp        Wed Jan 12 23:03:15 
2011        (r37191)
+++ lyx-devel/trunk/src/insets/InsetMarginal.cpp        Wed Jan 12 23:23:27 
2011        (r37192)
@@ -51,10 +51,10 @@
 }
 
 
-void InsetMarginal::addToToc(DocIterator const & cpit)
+void InsetMarginal::addToToc(DocIterator const & cpit) const
 {
        DocIterator pit = cpit;
-       pit.push_back(CursorSlice(*this));
+       pit.push_back(CursorSlice(const_cast<InsetMarginal &>(*this)));
 
        Toc & toc = buffer().tocBackend().toc("marginalnote");
        docstring str;

Modified: lyx-devel/trunk/src/insets/InsetMarginal.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetMarginal.h  Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetMarginal.h  Wed Jan 12 23:23:27 2011        
(r37192)
@@ -35,7 +35,7 @@
        ///
        int docbook(odocstream &, OutputParams const & runparams) const;
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
 private:
        ///
        Inset * clone() const { return new InsetMarginal(*this); }

Modified: lyx-devel/trunk/src/insets/InsetNote.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetNote.cpp    Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetNote.cpp    Wed Jan 12 23:23:27 2011        
(r37192)
@@ -195,10 +195,10 @@
 }
 
 
-void InsetNote::addToToc(DocIterator const & cpit)
+void InsetNote::addToToc(DocIterator const & cpit) const
 {
        DocIterator pit = cpit;
-       pit.push_back(CursorSlice(*this));
+       pit.push_back(CursorSlice(const_cast<InsetNote &>(*this)));
 
        Toc & toc = buffer().tocBackend().toc("note");
        InsetLayout const & il = getLayout();

Modified: lyx-devel/trunk/src/insets/InsetNote.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetNote.h      Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetNote.h      Wed Jan 12 23:23:27 2011        
(r37192)
@@ -91,7 +91,7 @@
        ///
        bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
        ///
        void doDispatch(Cursor & cur, FuncRequest & cmd);
        ///

Modified: lyx-devel/trunk/src/insets/InsetRef.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetRef.cpp     Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetRef.cpp     Wed Jan 12 23:23:27 2011        
(r37192)
@@ -280,7 +280,7 @@
 }
 
 
-void InsetRef::addToToc(DocIterator const & cpit)
+void InsetRef::addToToc(DocIterator const & cpit) const
 {
        docstring const & label = getParam("reference");
        if (buffer().insetLabel(label))

Modified: lyx-devel/trunk/src/insets/InsetRef.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetRef.h       Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetRef.h       Wed Jan 12 23:23:27 2011        
(r37192)
@@ -67,7 +67,7 @@
        ///
        void updateBuffer(ParIterator const & it, UpdateType);
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
        ///
        bool forceLTR() const { return true; }
        //@}

Modified: lyx-devel/trunk/src/insets/InsetTabular.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetTabular.cpp Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetTabular.cpp Wed Jan 12 23:23:27 2011        
(r37192)
@@ -3736,7 +3736,7 @@
 }
 
 
-void InsetTabular::addToToc(DocIterator const & cpit)
+void InsetTabular::addToToc(DocIterator const & cpit) const
 {
        DocIterator dit = cpit;
        dit.forwardPos();

Modified: lyx-devel/trunk/src/insets/InsetTabular.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetTabular.h   Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetTabular.h   Wed Jan 12 23:23:27 2011        
(r37192)
@@ -863,7 +863,7 @@
        /// Update the counters of this inset and of its contents
        void updateBuffer(ParIterator const &, UpdateType);
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
 
        ///
        bool completionSupported(Cursor const &) const;

Modified: lyx-devel/trunk/src/insets/InsetText.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetText.cpp    Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetText.cpp    Wed Jan 12 23:23:27 2011        
(r37192)
@@ -682,10 +682,10 @@
 }
 
 
-void InsetText::addToToc(DocIterator const & cdit)
+void InsetText::addToToc(DocIterator const & cdit) const
 {
        DocIterator dit = cdit;
-       dit.push_back(CursorSlice(*this));
+       dit.push_back(CursorSlice(const_cast<InsetText &>(*this)));
        Toc & toc = buffer().tocBackend().toc("tableofcontents");
 
        BufferParams const & bufparams = buffer_->params();
@@ -693,13 +693,13 @@
 
        // For each paragraph, traverse its insets and let them add
        // their toc items
-       ParagraphList & pars = paragraphs();
+       ParagraphList const & pars = paragraphs();
        pit_type pend = paragraphs().size();
        for (pit_type pit = 0; pit != pend; ++pit) {
                Paragraph const & par = pars[pit];
                dit.pit() = pit;
                // if we find an optarg, we'll save it for use later.
-               InsetText * arginset = 0;
+               InsetText const * arginset = 0;
                InsetList::const_iterator it  = par.insetList().begin();
                InsetList::const_iterator end = par.insetList().end();
                for (; it != end; ++it) {

Modified: lyx-devel/trunk/src/insets/InsetText.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetText.h      Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/insets/InsetText.h      Wed Jan 12 23:23:27 2011        
(r37192)
@@ -168,7 +168,7 @@
        ///
        void forToc(docstring &, size_t) const;
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
        ///
        Inset * clone() const { return new InsetText(*this); }
        ///

Modified: lyx-devel/trunk/src/mathed/InsetMathHull.cpp
==============================================================================
--- lyx-devel/trunk/src/mathed/InsetMathHull.cpp        Wed Jan 12 23:03:15 
2011        (r37191)
+++ lyx-devel/trunk/src/mathed/InsetMathHull.cpp        Wed Jan 12 23:23:27 
2011        (r37192)
@@ -281,7 +281,7 @@
 }
 
 
-void InsetMathHull::addToToc(DocIterator const & pit)
+void InsetMathHull::addToToc(DocIterator const & pit) const
 {
        if (!buffer_) {
                //FIXME: buffer_ should be set at creation for this inset! 
Problem is

Modified: lyx-devel/trunk/src/mathed/InsetMathHull.h
==============================================================================
--- lyx-devel/trunk/src/mathed/InsetMathHull.h  Wed Jan 12 23:03:15 2011        
(r37191)
+++ lyx-devel/trunk/src/mathed/InsetMathHull.h  Wed Jan 12 23:23:27 2011        
(r37192)
@@ -42,7 +42,7 @@
        ///
        void updateBuffer(ParIterator const &, UpdateType);
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const &) const;
        ///
        InsetMathHull & operator=(InsetMathHull const &);
        ///

Reply via email to