using lyx::support::MakeDisplayPath;
using lyx::support::token;
+using std::auto_ptr;
using std::endl;
using std::find_if;
using std::max;
using std::sort;
-
+using std::string;
using std::vector;
// Get the keys bound to this action, but keep only the
// first one later
- string bindings = toplevel_keymap->findbinding(func_.action);
+ string bindings = toplevel_keymap->findbinding(func_);
if (!bindings.empty()) {
return bindings.substr(1, bindings.find(']') - 1);
- } else
+ } else {
+ lyxerr[Debug::KBMAP]
+ << "No bindings for "
+ << lyxaction.getActionName(func_.action)
+ << '(' << func_.argument << ')' << endl;
return string();
+ }
+
}
string const name = _(lex.getString());
lex.next(true);
string const command = lex.getString();
- string::size_type sp = command.find(' ');
- if (sp != string::npos) {
- string const cmd = command.substr(0, sp);
- string const arg =command.substr(sp + 1,
- string::npos);
- kb_action act = lyxaction.LookupFunc(cmd);
- add(MenuItem(MenuItem::Command, name,
- FuncRequest(act, arg), optional));
- } else {
- kb_action act = lyxaction.LookupFunc(command);
- add(MenuItem(MenuItem::Command, name,
- FuncRequest(act), optional));
- }
-
+ FuncRequest func = lyxaction.lookupFunc(command);
+ add(MenuItem(MenuItem::Command, name, func, optional));
optional = false;
break;
}
void expandLastfiles(Menu & tomenu, LyXView const * view)
{
+ LastFiles const & lastfiles = LyX::cref().lastfiles();
+
int ii = 1;
- LastFiles::const_iterator lfit = lastfiles->begin();
- LastFiles::const_iterator end = lastfiles->end();
+ LastFiles::const_iterator lfit = lastfiles.begin();
+ LastFiles::const_iterator end = lastfiles.end();
for (; lfit != end && ii < 10; ++lfit, ++ii) {
string const label = tostr(ii) + ". "
string label(4 * max(0, toc_list[i].depth - depth),' ');
label += limit_string_length(toc_list[i].str);
if (toc_list[i].depth == depth
- && ++shortcut_count <= 9) {
- label += '|' + tostr(shortcut_count);
+ && shortcut_count < 9) {
+ if (label.find(tostr(shortcut_count + 1)) != string::npos)
+ label += '|' + tostr(++shortcut_count);
}
tomenu.add(MenuItem(MenuItem::Command, label,
FuncRequest(toc_list[i].action())));
string label(4 * max(0, toc_list[pos].depth - depth), ' ');
label += limit_string_length(toc_list[pos].str);
if (toc_list[pos].depth == depth &&
- ++shortcut_count <= 9)
- label += '|' + tostr(shortcut_count);
-
+ shortcut_count < 9) {
+ if (label.find(tostr(shortcut_count + 1)) != string::npos)
+ label += '|' + tostr(++shortcut_count);
+ }
if (new_pos == pos + 1) {
tomenu.add(MenuItem(MenuItem::Command,
label, FuncRequest(toc_list[pos].action())));
continue;
// All the rest is for floats
- Menu * menu = new Menu;
+ auto_ptr<Menu> menu(new Menu);
lyx::toc::Toc::const_iterator ccit = cit->second.begin();
lyx::toc::Toc::const_iterator eend = cit->second.end();
for (; ccit != eend; ++ccit) {
string const & floatName = cit->first;
// Is the _(...) really needed here? (Lgb)
MenuItem item(MenuItem::Submenu, _(floatName));
- item.submenu(menu);
+ item.submenu(menu.release());
tomenu.add(item);
}
cit = toc_list.find("TOC");
if (cit == end) {
tomenu.add(MenuItem(MenuItem::Command,
- _("No Table of contents")),
+ _("No Table of contents"),
+ FuncRequest()),
view);
} else {
expandToc2(tomenu, cit->second, 0, cit->second.size(), 0);