]> git.lyx.org Git - lyx.git/blobdiff - src/MenuBackend.C
the spellcheck cleanup
[lyx.git] / src / MenuBackend.C
index dcd90ba51766c5603a04fe3b3772dd5187fbf129..40c615112104bd4cc12aa87657414cae98b22aca 100644 (file)
@@ -51,6 +51,7 @@ using lyx::support::contains;
 using lyx::support::MakeDisplayPath;
 using lyx::support::token;
 
+using std::auto_ptr;
 using std::endl;
 using std::find_if;
 using std::max;
@@ -536,8 +537,9 @@ void expandToc2(Menu & tomenu,
                        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())));
@@ -553,9 +555,10 @@ void expandToc2(Menu & tomenu,
                        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())));
@@ -596,7 +599,7 @@ void expandToc(Menu & tomenu, LyXView const * view)
                        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) {
@@ -608,7 +611,7 @@ void expandToc(Menu & tomenu, LyXView const * view)
                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);
        }