#include "Format.h"
#include "gettext.h"
#include "Importer.h"
-#include "kb_keymap.h"
+#include "KeyMap.h"
#include "Session.h"
#include "LyXAction.h"
#include "LyX.h" // for lastfiles
#include "LyXFunc.h"
-#include "LyXLex.h"
+#include "Lexer.h"
#include "Paragraph.h"
#include "TocBackend.h"
#include "ToolbarBackend.h"
// Get the keys bound to this action, but keep only the
// first one later
- kb_keymap::Bindings bindings = theTopLevelKeymap().findbindings(func_);
+ KeyMap::Bindings bindings = theTopLevelKeymap().findbindings(func_);
if (bindings.size()) {
return bindings.begin()->print(forgui);
}
-Menu & Menu::read(LyXLex & lex)
+Menu & Menu::read(Lexer & lex)
{
enum Menutags {
md_item = 1,
void expandDocuments(Menu & tomenu)
{
- typedef vector<string> Strings;
- Strings const names = theBufferList().getFileNames();
-
- if (names.empty()) {
+ Buffer * first = theBufferList().first();
+ if (first) {
+ Buffer * b = first;
+ int ii = 1;
+
+ // We cannot use a for loop as the buffer list cycles.
+ do {
+ docstring label = makeDisplayPath(b->fileName(), 20);
+ if (!b->isClean()) label = label + "*";
+ if (ii < 10)
+ label = convert<docstring>(ii) + ". " + label + '|' + convert<docstring>(ii);
+ tomenu.add(MenuItem(MenuItem::Command, label, FuncRequest(LFUN_BUFFER_SWITCH, b->fileName())));
+
+ b = theBufferList().next(b);
+ ++ii;
+ } while (b != first);
+ } else {
tomenu.add(MenuItem(MenuItem::Command, _("No Documents Open!"),
- FuncRequest(LFUN_NOACTION)));
+ FuncRequest(LFUN_NOACTION)));
return;
}
-
- int ii = 1;
- Strings::const_iterator docit = names.begin();
- Strings::const_iterator end = names.end();
- for (; docit != end; ++docit, ++ii) {
- docstring label = makeDisplayPath(*docit, 20);
- if (ii < 10)
- label = convert<docstring>(ii) + ". " + label + char_type('|') + convert<docstring>(ii);
- tomenu.add(MenuItem(MenuItem::Command, label, FuncRequest(LFUN_BUFFER_SWITCH, *docit)));
- }
}
docstring const label = convert<docstring>(i) + ". "
+ makeDisplayPath(bm.bookmark(i).filename.absFilename(), 20)
+ char_type('|') + convert<docstring>(i);
- tomenu.add(MenuItem(MenuItem::Command, label, FuncRequest(LFUN_BOOKMARK_GOTO,
+ tomenu.add(MenuItem(MenuItem::Command, label, FuncRequest(LFUN_BOOKMARK_GOTO,
convert<docstring>(i))));
}
}
{
if (!buf && kind != MenuItem::ImportFormats) {
tomenu.add(MenuItem(MenuItem::Command,
- _("No Documents Open!"),
+ _("No Document Open!"),
FuncRequest(LFUN_NOACTION)));
return;
}
{
if (!buf) {
tomenu.add(MenuItem(MenuItem::Command,
- _("No Documents Open!"),
+ _("No Document Open!"),
FuncRequest(LFUN_NOACTION)));
return;
}
FloatList const & floats =
- buf->params().getLyXTextClass().floats();
+ buf->params().getTextClass().floats();
FloatList::const_iterator cit = floats.begin();
FloatList::const_iterator end = floats.end();
for (; cit != end; ++cit) {
{
if (!buf) {
tomenu.add(MenuItem(MenuItem::Command,
- _("No Documents Open!"),
+ _("No Document Open!"),
FuncRequest(LFUN_NOACTION)));
return;
}
FloatList const & floats =
- buf->params().getLyXTextClass().floats();
+ buf->params().getTextClass().floats();
FloatList::const_iterator cit = floats.begin();
FloatList::const_iterator end = floats.end();
for (; cit != end; ++cit) {
{
if (!buf) {
tomenu.add(MenuItem(MenuItem::Command,
- _("No Documents Open!"),
+ _("No Document Open!"),
FuncRequest(LFUN_NOACTION)));
return;
}
CharStyles & charstyles =
- buf->params().getLyXTextClass().charstyles();
+ buf->params().getTextClass().charstyles();
CharStyles::iterator cit = charstyles.begin();
CharStyles::iterator end = charstyles.end();
for (; cit != end; ++cit) {
if (!buf) {
tomenu.add(MenuItem(MenuItem::Command,
- _("No Documents Open!"),
+ _("No Document Open!"),
FuncRequest(LFUN_NOACTION)));
return;
}
+ Buffer* cbuf = const_cast<Buffer*>(buf);
+ cbuf->tocBackend().update();
+ cbuf->structureChanged();
+
// Add an entry for the master doc if this is a child doc
Buffer const * const master = buf->getMasterBuffer();
if (buf != master) {
tomenu.add(MenuItem(MenuItem::Command, _("Master Document"), f));
}
- FloatList const & floatlist = buf->params().getLyXTextClass().floats();
+ FloatList const & floatlist = buf->params().getTextClass().floats();
TocList const & toc_list = buf->tocBackend().tocs();
TocList::const_iterator cit = toc_list.begin();
TocList::const_iterator end = toc_list.end();
FuncRequest(ccit->action())));
}
string const & floatName = floatlist.getType(cit->first).listName();
- MenuItem item(MenuItem::Submenu, _(floatName));
+ docstring label;
+ if (!floatName.empty())
+ label = _(floatName);
+ // BUG3633: listings is not a proper float so its name
+ // is not shown in floatlist.
+ else if (cit->first == "listing")
+ label = _("List of listings");
+ // this should not happen now, but if something else like
+ // listings is added later, this can avoid an empty menu name.
+ else
+ label = _("Other floats");
+ MenuItem item(MenuItem::Submenu, label);
item.submenu(menu.release());
tomenu.add(item);
}
for (; cit != end; ++cit) {
docstring label = _(cit->gui_name);
- // frontends are not supposed to turn on/off toolbars, if they cannot
- // update ToolbarBackend::flags. That is to say, ToolbarsBackend::flags
- // should reflect the true state of toolbars.
- //
- // menu is displayed as
+ // frontends are not supposed to turn on/off toolbars,
+ // if they cannot update ToolbarBackend::flags. That
+ // is to say, ToolbarsBackend::flags should reflect
+ // the true state of toolbars.
+ //
+ // menu is displayed as
// on/off review
- // and
+ // and
// review (auto)
// in the case of auto.
if (cit->flags & ToolbarInfo::AUTO)
label += _(" (auto)");
tomenu.add(MenuItem(MenuItem::Command, label,
- FuncRequest(LFUN_TOOLBAR_TOGGLE_STATE, cit->name)));
+ FuncRequest(LFUN_TOOLBAR_TOGGLE, cit->name + " allowauto")));
}
}
void expandBranches(Menu & tomenu, Buffer const * buf)
{
- if (!buf)
+ if (!buf) {
+ tomenu.add(MenuItem(MenuItem::Command,
+ _("No Document Open!"),
+ FuncRequest(LFUN_NOACTION)));
return;
+ }
BufferParams const & params = buf->getMasterBuffer()->params();
+ if (params.branchlist().empty()) {
+ tomenu.add(MenuItem(MenuItem::Command,
+ _("No Branch in Document!"),
+ FuncRequest(LFUN_NOACTION)));
+ return;
+ }
BranchList::const_iterator cit = params.branchlist().begin();
BranchList::const_iterator end = params.branchlist().end();
}
-void MenuBackend::read(LyXLex & lex)
+void MenuBackend::read(Lexer & lex)
{
enum Menutags {
md_menu = 1,