]> git.lyx.org Git - features.git/blobdiff - src/MenuBackend.C
New bookmarks implementation:
[features.git] / src / MenuBackend.C
index 362f02d50922fdb8d993c8178e4205a3619d0d37..27ed4c21630a2eabbdf668911b99725819adb172 100644 (file)
@@ -215,6 +215,7 @@ Menu & Menu::read(LyXLex & lex)
                md_item = 1,
                md_branches,
                md_documents,
+               md_bookmarks,
                md_charstyles,
                md_endmenu,
                md_exportformats,
@@ -237,6 +238,7 @@ Menu & Menu::read(LyXLex & lex)
                { "branches", md_branches },
                { "charstyles", md_charstyles },
                { "documents", md_documents },
+               { "bookmarks", md_bookmarks },
                { "end", md_endmenu },
                { "exportformats", md_exportformats },
                { "floatinsert", md_floatinsert },
@@ -293,6 +295,10 @@ Menu & Menu::read(LyXLex & lex)
                        add(MenuItem(MenuItem::Documents));
                        break;
 
+               case md_bookmarks:
+                       add(MenuItem(MenuItem::Bookmarks));
+                       break;
+
                case md_toc:
                        add(MenuItem(MenuItem::Toc));
                        break;
@@ -464,6 +470,22 @@ void expandDocuments(Menu & tomenu)
 }
 
 
+void expandBookmarks(Menu & tomenu)
+{
+       lyx::BookmarksSection const & bm = LyX::cref().session().bookmarks();
+
+       for (size_t i = 1; i <= bm.size(); ++i) {
+               if (bm.isValid(i)) {
+                       docstring const label = convert<docstring>(i) + ". "
+                               + makeDisplayPath(bm.bookmark(i).filename, 20)
+                               + char_type('|') + convert<docstring>(i);
+                       tomenu.add(MenuItem(MenuItem::Command, label, FuncRequest(LFUN_BOOKMARK_GOTO, 
+                               convert<docstring>(i))));
+               }
+       }
+}
+
+
 void expandFormats(MenuItem::Kind kind, Menu & tomenu, Buffer const * buf)
 {
        if (!buf && kind != MenuItem::ImportFormats) {
@@ -770,6 +792,10 @@ void MenuBackend::expand(Menu const & frommenu, Menu & tomenu,
                        expandDocuments(tomenu);
                        break;
 
+               case MenuItem::Bookmarks:
+                       expandBookmarks(tomenu);
+                       break;
+
                case MenuItem::ImportFormats:
                case MenuItem::ViewFormats:
                case MenuItem::UpdateFormats: