X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FMenuBackend.C;h=2488f26df2faf54190cd61341318c8f9db8bb000;hb=dcdbeb3b3475d803c0c66e463dca64db0103c10d;hp=817977948aba3b16f1c4820c8bbbfd73f607f07d;hpb=ecdec6522399dbb643e5ca45f1fbfe0b11c3a1fe;p=features.git diff --git a/src/MenuBackend.C b/src/MenuBackend.C index 817977948a..2488f26df2 100644 --- a/src/MenuBackend.C +++ b/src/MenuBackend.C @@ -24,6 +24,7 @@ #include "lastfiles.h" #include "lyx_main.h" // for lastfiles #include "bufferlist.h" +#include "buffer.h" #include "converter.h" #include "exporter.h" #include "importer.h" @@ -314,7 +315,7 @@ void expandDocuments(Menu & tomenu) LFUN_NOACTION)); return; } - + int ii = 1; Strings::const_iterator docit = names.begin(); Strings::const_iterator end = names.end(); @@ -335,12 +336,12 @@ void expandFormats(MenuItem::Kind kind, Menu & tomenu, Buffer const * buf) tomenu.add(MenuItem(MenuItem::Command, _("No Documents Open!"), LFUN_NOACTION)); return; - } - + } + typedef vector Formats; Formats formats; kb_action action; - + switch (kind) { case MenuItem::ImportFormats: formats = Importer::GetImportableFormats(); @@ -372,13 +373,15 @@ void expandFormats(MenuItem::Kind kind, Menu & tomenu, Buffer const * buf) if (label == "EPS" || label == "XPM" || label == "PNG") continue; - if (kind == MenuItem::ImportFormats) + if (kind == MenuItem::ImportFormats) { if ((*fit)->name() == "text") - label = _("Ascii text as lines"); + label = _("ASCII text as lines"); else if ((*fit)->name() == "textparagraph") - label = _("Ascii text as paragraphs"); + label = _("ASCII text as paragraphs"); + label += "..."; + } if (!(*fit)->shortcut().empty()) - label += "|" + (*fit)->shortcut(); + label += '|' + (*fit)->shortcut(); int const action2 = lyxaction. getPseudoAction(action, (*fit)->name()); tomenu.add(MenuItem(MenuItem::Command, label, action2)); @@ -386,10 +389,17 @@ void expandFormats(MenuItem::Kind kind, Menu & tomenu, Buffer const * buf) } -void expandFloatListInsert(Menu & tomenu) +void expandFloatListInsert(Menu & tomenu, Buffer const * buf) { - FloatList::const_iterator cit = floatList.begin(); - FloatList::const_iterator end = floatList.end(); + if (!buf) { + tomenu.add(MenuItem(MenuItem::Command, + _("No Documents Open!"), LFUN_NOACTION)); + return; + } + + FloatList const & floats = buf->params.getLyXTextClass().floats(); + FloatList::const_iterator cit = floats.begin(); + FloatList::const_iterator end = floats.end(); for (; cit != end; ++cit) { int const action = lyxaction .getPseudoAction(LFUN_FLOAT_LIST, cit->second.type()); @@ -400,10 +410,17 @@ void expandFloatListInsert(Menu & tomenu) } -void expandFloatInsert(Menu & tomenu) +void expandFloatInsert(Menu & tomenu, Buffer const * buf) { - FloatList::const_iterator cit = floatList.begin(); - FloatList::const_iterator end = floatList.end(); + if (!buf) { + tomenu.add(MenuItem(MenuItem::Command, + _("No Documents Open!"), LFUN_NOACTION)); + return; + } + + FloatList const & floats = buf->params.getLyXTextClass().floats(); + FloatList::const_iterator cit = floats.begin(); + FloatList::const_iterator end = floats.end(); for (; cit != end; ++cit) { // normal float int const action = @@ -428,7 +445,7 @@ void expandToc2(Menu & tomenu, toc::Toc const & toc_list, label += limit_string_length(toc_list[i].str); if (toc_list[i].depth == depth && ++shortcut_count <= 9) { - label += "|" + tostr(shortcut_count); + label += '|' + tostr(shortcut_count); } tomenu.add(MenuItem(MenuItem::Command, label, action)); } @@ -465,12 +482,19 @@ void expandToc2(Menu & tomenu, toc::Toc const & toc_list, void expandToc(Menu & tomenu, Buffer const * buf) { + if (!buf) { + tomenu.add(MenuItem(MenuItem::Command, + _("No Documents Open!"), LFUN_NOACTION)); + return; + } + toc::TocList toc_list = toc::getTocList(buf); toc::TocList::const_iterator cit = toc_list.begin(); toc::TocList::const_iterator end = toc_list.end(); for (; cit != end; ++cit) { // Handle this later - if (cit->first == "TOC") continue; + if (cit->first == "TOC") + continue; // All the rest is for floats Menu * menu = new Menu; @@ -481,8 +505,9 @@ void expandToc(Menu & tomenu, Buffer const * buf) menu->add(MenuItem(MenuItem::Command, label, ccit->action())); } - MenuItem item(MenuItem::Submenu, - floatList[cit->first]->second.name()); + string const & floatName = cit->first; + // Is the _(...) really needed here? (Lgb) + MenuItem item(MenuItem::Submenu, _(floatName)); item.submenu(menu); tomenu.add(item); } @@ -507,7 +532,7 @@ void MenuBackend::expand(Menu const & frommenu, Menu & tomenu, for (Menu::const_iterator cit = frommenu.begin(); cit != frommenu.end() ; ++cit) { switch (cit->kind()) { - case MenuItem::Lastfiles: + case MenuItem::Lastfiles: expandLastfiles(tomenu); break; @@ -523,11 +548,11 @@ void MenuBackend::expand(Menu const & frommenu, Menu & tomenu, break; case MenuItem::FloatListInsert: - expandFloatListInsert(tomenu); + expandFloatListInsert(tomenu, buf); break; case MenuItem::FloatInsert: - expandFloatInsert(tomenu); + expandFloatInsert(tomenu, buf); break; case MenuItem::Toc: @@ -542,7 +567,7 @@ void MenuBackend::expand(Menu const & frommenu, Menu & tomenu, tomenu.add(item); } break; - + default: tomenu.add(*cit); } @@ -681,6 +706,8 @@ Menu const & MenuBackend::getMenu(string const & name) const { const_iterator cit = find_if(begin(), end(), lyx::compare_memfun(&Menu::name, name)); + if (cit == end()) + lyxerr << "No submenu named " << name << endl; lyx::Assert(cit != end()); return (*cit); }