]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetNote.cpp
This should be the last of the commits refactoring the InsetLayout code.
[lyx.git] / src / insets / InsetNote.cpp
index e69bd6ee90ae2710ad872e0bf2851a47618af586..ab90288c6beb5530ad33f553567693c5c5bbf29d 100644 (file)
@@ -20,7 +20,6 @@
 #include "BufferParams.h"
 #include "Counters.h"
 #include "Cursor.h"
-#include "support/debug.h"
 #include "DispatchResult.h"
 #include "Exporter.h"
 #include "FuncRequest.h"
 #include "Lexer.h"
 #include "MetricsInfo.h"
 #include "OutputParams.h"
+#include "ParIterator.h"
 #include "TextClass.h"
+#include "TocBackend.h"
 
+#include "support/debug.h"
 #include "support/docstream.h"
 #include "support/Translator.h"
 
 #include <algorithm>
 #include <sstream>
 
+using namespace std;
 
 namespace lyx {
 
-using std::string;
-using std::istringstream;
-using std::ostream;
-using std::ostringstream;
-
-
 namespace {
 
-typedef Translator<std::string, InsetNoteParams::Type> NoteTranslator;
+typedef Translator<string, InsetNoteParams::Type> NoteTranslator;
 typedef Translator<docstring, InsetNoteParams::Type> NoteTranslatorLoc;
 
 NoteTranslator const init_notetranslator()
@@ -141,7 +138,7 @@ docstring const InsetNote::editMessage() const
 
 docstring InsetNote::name() const 
 {
-       return from_ascii(string("Note") + string(":") + string(notetranslator().find(params_.type)));
+       return from_ascii("Note:" + notetranslator().find(params_.type));
 }
 
 
@@ -223,6 +220,30 @@ void InsetNote::updateLabels(Buffer const & buf, ParIterator const & it)
 }
 
 
+void InsetNote::addToToc(Buffer const & buf,
+       ParConstIterator const & cpit) const
+{
+       ParConstIterator pit = cpit;
+       pit.push_back(*this);
+
+       Toc & toc = buf.tocBackend().toc("note");
+       docstring str;
+       str = notetranslator_loc().find(params_.type) + from_ascii(": ")
+               + getNewLabel(str);
+       toc.push_back(TocItem(pit, 0, str));
+}
+
+
+bool InsetNote::isMacroScope(Buffer const & buf) const
+{
+       // LyX note has no latex output
+       if (params_.type == InsetNoteParams::Note)
+               return true;
+
+       return InsetCollapsable::isMacroScope(buf);
+}
+
+
 int InsetNote::latex(Buffer const & buf, odocstream & os,
                     OutputParams const & runparams_in) const
 {
@@ -256,7 +277,7 @@ int InsetNote::latex(Buffer const & buf, odocstream & os,
        os << str;
        runparams_in.encoding = runparams.encoding;
        // Return how many newlines we issued.
-       return int(std::count(str.begin(), str.end(), '\n'));
+       return int(count(str.begin(), str.end(), '\n'));
 }