]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/controllers/ControlToc.C
fix crash due to invalidated iterator
[lyx.git] / src / frontends / controllers / ControlToc.C
index ff354b19f7ad42639ed5a9dc8dbbfa0d93fe6fd5..f64cb4ad62c98e864f5a62651207f0f1d66f3dec 100644 (file)
@@ -5,38 +5,47 @@
  *
  * \author Angus Leeming
  *
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
  */
 
 #include <config.h>
 
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
 #include "ControlToc.h"
-#include "toc.h"
-
-#include "support/lstrings.h" // tostr
+#include "gettext.h"
 
 using std::vector;
+using std::string;
+
 
 class Buffer;
 
-ControlToc::ControlToc(LyXView & lv, Dialogs & d)
-       : ControlCommand(lv, d, LFUN_TOC_INSERT)
+namespace lyx {
+namespace frontend {
+
+
+ControlToc::ControlToc(Dialog & d)
+       : ControlCommand(d, "toc")
 {}
 
 
-void ControlToc::goTo(toc::TocItem const & item) const
+void ControlToc::goTo(toc::TocItem const & item)
 {
-       item.goTo(lv_);
+       item.goTo(kernel().lyxview());
 }
 
 
 vector<string> const ControlToc::getTypes() const
 {
-       return toc::getTypes(buffer());
+       return toc::getTypes(kernel().buffer());
+}
+
+
+string const ControlToc::getGuiName(string const & type) const
+{
+       if (type == "TOC")
+               return _("Table of Contents");
+       else
+               return _(toc::getGuiName(type, kernel().buffer()));
 }
 
 
@@ -45,11 +54,11 @@ toc::Toc const ControlToc::getContents(string const & type) const
        toc::Toc empty_list;
 
        // This shouldn't be possible...
-       if (!bufferIsAvailable()) {
+       if (!kernel().isBufferAvailable()) {
                return empty_list;
        }
 
-       toc::TocList tmp = toc::getTocList(buffer());
+       toc::TocList tmp = toc::getTocList(kernel().buffer());
        toc::TocList::iterator it = tmp.find(type);
        if (it == tmp.end()) {
                return empty_list;
@@ -57,3 +66,6 @@ toc::Toc const ControlToc::getContents(string const & type) const
 
        return it->second;
 }
+
+} // namespace frontend
+} // namespace lyx