populate(*subMenu, m->submenu());
} else {
// we have a MenuItem::Command
- qMenu.addAction(new Action(*view, QIcon(), label(*m), m->func(),
- QString()));
+ qMenu.addAction(new Action(view, QIcon(), label(*m),
+ m->func(), QString(), &qMenu));
}
}
}
ViewFormats, ExportFormats, UpdateFormats, Branches
*/
void expand(MenuDefinition const & frommenu, MenuDefinition & tomenu,
- Buffer const *) const;
+ Buffer const *) const;
/// Initialize specific MACOS X menubar
- void macxMenuBarInit(GuiView * view);
+ void macxMenuBarInit(GuiView * view, QMenuBar * qmb);
/// Mac special menu.
/** This defines a menu whose entries list the FuncRequests
that this menubar will be used also when one of LyX' dialogs has
focus. (JMarc)
*/
-void Menus::Impl::macxMenuBarInit(GuiView * view)
+void Menus::Impl::macxMenuBarInit(GuiView * view, QMenuBar * qmb)
{
// The Mac menubar initialisation must be done only once!
static bool done = false;
// add the entries to a QMenu that will eventually be empty
// and therefore invisible.
- QMenu * qMenu = view->menuBar()->addMenu("special");
+ QMenu * qMenu = qmb->addMenu("special");
MenuDefinition::const_iterator cit = specialmenu_.begin();
MenuDefinition::const_iterator end = specialmenu_.end();
for (size_t i = 0 ; cit != end ; ++cit, ++i) {
- Action * action = new Action(*view, QIcon(), cit->label(),
- cit->func(), QString());
+ Action * action = new Action(view, QIcon(), cit->label(),
+ cit->func(), QString(), qMenu);
action->setMenuRole(entries[i].role);
qMenu->addAction(action);
}
}
-void Menus::fillMenuBar(GuiView * view)
+void Menus::fillMenuBar(QMenuBar * qmb, GuiView * view)
{
// Clear all menubar contents before filling it.
- view->menuBar()->clear();
+ qmb->clear();
#ifdef Q_WS_MACX
// setup special mac specific menu item
- d->macxMenuBarInit(view);
+ d->macxMenuBarInit(view, qmb);
#endif
LYXERR(Debug::GUI, "populating menu bar" << fromqstr(d->menubar_.name()));
}
MenuDefinition menu;
- d->expand(d->menubar_, menu, view->buffer());
+ Buffer * buf = 0;
+ if (view)
+ buf = view->buffer();
+ d->expand(d->menubar_, menu, buf);
MenuDefinition::const_iterator m = menu.begin();
MenuDefinition::const_iterator end = menu.end();
}
MenuDefinition const & fromLyxMenu = d->getMenu(qmenu->d->name);
- d->expand(fromLyxMenu, *qmenu->d->top_level_menu, qmenu->d->view->buffer());
+ Buffer * buf = 0;
+ if (qmenu->d->view)
+ buf = qmenu->d->view->buffer();
+ d->expand(fromLyxMenu, *qmenu->d->top_level_menu, buf);
qmenu->d->populate(*qmenu, *qmenu->d->top_level_menu);
}