]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/Menus.cpp
* fix spelling in comments to please John.
[lyx.git] / src / frontends / qt4 / Menus.cpp
index 097f838fa3bc4a9eeaa9957a9882fae0332ee0ba..8de4f83257d98e75c7508b816216b44b04262085 100644 (file)
@@ -741,6 +741,16 @@ void MenuDefinition::expandSpellingSuggestions(BufferView const * bv)
        }
        if (i >= 10)
                add(item);
+       if (i > 0)
+               add(MenuItem(MenuItem::Separator));
+       docstring arg = wl.word() + " " + from_ascii(wl.lang_code());
+       if (!wl.lang_variety().empty())
+               arg += from_ascii("-") + from_ascii(wl.lang_variety());
+       add(MenuItem(MenuItem::Command, qt_("Add to personal dictionary|c"),
+                       FuncRequest(LFUN_SPELLING_ADD, arg)));
+       add(MenuItem(MenuItem::Command, qt_("Ignore all|I"),
+                       FuncRequest(LFUN_SPELLING_IGNORE, arg)));
+       
 }
 
 
@@ -781,7 +791,8 @@ void MenuDefinition::expandDocuments()
                        QString label = toqstr(b->fileName().displayName(20));
                        if (!b->isClean())
                                label += "*";
-                       bool const shown = guiApp->currentView()->workArea(*b);
+                       bool const shown = guiApp->currentView()
+                                          ? guiApp->currentView()->workArea(*b) : false;
                        int ii = shown ? vis : invis;
                        if (ii < 10)
                                label = QString::number(ii) + ". " + label + '|' + QString::number(ii);
@@ -851,6 +862,17 @@ void MenuDefinition::expandFormats(MenuItem::Kind kind, Buffer const * buf)
        }
        sort(formats.begin(), formats.end(), &compareFormat);
 
+       bool const view_update = (kind == MenuItem::ViewFormats
+                       || kind == MenuItem::UpdateFormats);
+
+       QString smenue;
+       if (view_update)
+               smenue = (kind == MenuItem::ViewFormats ?
+                       qt_("View (Other Formats)|F")
+                       : qt_("Update (Other Formats)|p"));
+       MenuItem item(MenuItem::Submenu, smenue);
+       item.setSubmenu(MenuDefinition(smenue));
+
        Formats::const_iterator fit = formats.begin();
        Formats::const_iterator end = formats.end();
        for (; fit != end ; ++fit) {
@@ -878,8 +900,15 @@ void MenuDefinition::expandFormats(MenuItem::Kind kind, Buffer const * buf)
                        break;
                case MenuItem::ViewFormats:
                case MenuItem::UpdateFormats:
-                       if ((*fit)->name() == buf->getDefaultOutputFormat())
+                       if ((*fit)->name() == buf->getDefaultOutputFormat()) {
+                               docstring lbl = (kind == MenuItem::ViewFormats ?
+                                       bformat(_("View [%1$s]|V"), qstring_to_ucs4(label))
+                                       : bformat(_("Update [%1$s]|U"), qstring_to_ucs4(label)));
+                               MenuItem w(MenuItem::Command, toqstr(lbl),
+                                               FuncRequest(action, (*fit)->name()));
+                               add(w);
                                continue;
+                       }
                case MenuItem::ExportFormats:
                        if (!(*fit)->documentFormat())
                                continue;
@@ -891,13 +920,24 @@ void MenuDefinition::expandFormats(MenuItem::Kind kind, Buffer const * buf)
                if (!shortcut.isEmpty())
                        label += '|' + shortcut;
 
-               if (buf)
-                       addWithStatusCheck(MenuItem(MenuItem::Command, label,
-                               FuncRequest(action, (*fit)->name())));
-               else
-                       add(MenuItem(MenuItem::Command, label,
-                               FuncRequest(action, (*fit)->name())));
+               if (view_update) {
+                       if (buf)
+                               item.submenu().addWithStatusCheck(MenuItem(MenuItem::Command, label,
+                                       FuncRequest(action, (*fit)->name())));
+                       else
+                               item.submenu().add(MenuItem(MenuItem::Command, label,
+                                       FuncRequest(action, (*fit)->name())));
+               } else {
+                       if (buf)
+                               addWithStatusCheck(MenuItem(MenuItem::Command, label,
+                                       FuncRequest(action, (*fit)->name())));
+                       else
+                               add(MenuItem(MenuItem::Command, label,
+                                       FuncRequest(action, (*fit)->name())));
+               }
        }
+       if (view_update)
+               add(item);
 }
 
 
@@ -1241,12 +1281,12 @@ void MenuDefinition::expandIndicesContext(Buffer const * buf, bool listof)
                        p["type"] = cit->shortcut();
                        string const data = InsetCommand::params2string("index_print", p);
                        addWithStatusCheck(MenuItem(MenuItem::Command, toqstr(cit->index()),
-                                          FuncRequest(LFUN_NEXT_INSET_MODIFY, data)));
+                                          FuncRequest(LFUN_INSET_MODIFY, data)));
                } else {
                        docstring label = _("Index Entry");
                        label += " (" + cit->index() + ")";
                        addWithStatusCheck(MenuItem(MenuItem::Command, toqstr(label),
-                                          FuncRequest(LFUN_NEXT_INSET_MODIFY,
+                                          FuncRequest(LFUN_INSET_MODIFY,
                                                  from_ascii("changetype ") + cit->shortcut())));
                }
        }
@@ -1287,7 +1327,7 @@ void MenuDefinition::expandCiteStyles(BufferView const * bv)
                CiteStyle cst = citeStyleList[ii - 1];
                cs.style = cst;
                addWithStatusCheck(MenuItem(MenuItem::Command, toqstr(label),
-                                   FuncRequest(LFUN_NEXT_INSET_MODIFY,
+                                   FuncRequest(LFUN_INSET_MODIFY,
                                                "changetype " + from_utf8(citationStyleToString(cs)))));
        }
 }
@@ -1781,7 +1821,7 @@ void Menus::fillMenuBar(QMenuBar * qmb, GuiView * view, bool initial)
        MenuDefinition menu;
        BufferView * bv = 0;
        if (view)
-               bv = view->view();
+               bv = view->currentBufferView();
        d->expand(d->menubar_, menu, bv);
 
        MenuDefinition::const_iterator m = menu.begin();
@@ -1821,9 +1861,6 @@ void Menus::updateMenu(Menu * qmenu)
        if (qmenu->d->name.isEmpty())
                return;
 
-       // Here, We make sure that theLyXFunc points to the correct LyXView.
-       theLyXFunc().setLyXView(qmenu->d->view);
-
        if (!d->hasMenu(qmenu->d->name)) {
                qmenu->addAction(qt_("No Action Defined!"));
                LYXERR(Debug::GUI, "\tWARNING: non existing menu: "
@@ -1834,7 +1871,7 @@ void Menus::updateMenu(Menu * qmenu)
        MenuDefinition const & fromLyxMenu = d->getMenu(qmenu->d->name);
        BufferView * bv = 0;
        if (qmenu->d->view)
-               bv = qmenu->d->view->view();
+               bv = qmenu->d->view->currentBufferView();
        d->expand(fromLyxMenu, *qmenu->d->top_level_menu, bv);
        qmenu->d->populate(*qmenu, *qmenu->d->top_level_menu);
 }