#include "insets/Inset.h"
#include "insets/InsetCitation.h"
+#include "insets/InsetGraphics.h"
#include "support/lassert.h"
#include "support/convert.h"
/** Available branches in document */
Branches,
/** Available citation styles for a given citation */
- CiteStyles
+ CiteStyles,
+ /** Available graphics groups */
+ GraphicsGroups
};
explicit MenuItem(Kind kind) : kind_(kind), optional_(false) {}
void expandToolbars();
void expandBranches(Buffer const * buf);
void expandCiteStyles(BufferView const *);
+ void expandGraphicsGroups(Buffer const * buf);
///
ItemList items_;
///
md_floatlistinsert,
md_floatinsert,
md_pasterecent,
- md_toolbars
+ md_toolbars,
+ md_graphicsgroups
};
LexerKeyword menutags[] = {
{ "exportformats", md_exportformats },
{ "floatinsert", md_floatinsert },
{ "floatlistinsert", md_floatlistinsert },
+ { "graphicsgroups", md_graphicsgroups },
{ "importformats", md_importformats },
{ "item", md_item },
{ "lastfiles", md_lastfiles },
add(MenuItem(MenuItem::CiteStyles));
break;
+ case md_graphicsgroups:
+ add(MenuItem(MenuItem::GraphicsGroups));
+ break;
+
case md_optsubmenu:
optional = true;
// fallback to md_submenu
}
+void MenuDefinition::expandGraphicsGroups(Buffer const * buf)
+{
+ set<string> grp;
+ InsetGraphics::getGraphicsGroups(*buf, grp);
+ set<string>::const_iterator it = grp.begin();
+ set<string>::const_iterator end = grp.end();
+ if (grp.empty()) return;
+
+ add(MenuItem(MenuItem::Separator));
+ add(MenuItem(MenuItem::Command, qt_("Clear group"), FuncRequest(LFUN_SET_GRAPHICS_GROUP)));
+ for (; it != end; it++) {
+ add(MenuItem(MenuItem::Command, toqstr(*it), FuncRequest(LFUN_SET_GRAPHICS_GROUP, *it)));
+ }
+}
+
void MenuDefinition::expandLastfiles()
{
LastFilesSection::LastFiles const & lf = LyX::cref().session().lastFiles().lastFiles();
tomenu.expandToc(buf);
break;
+ case MenuItem::GraphicsGroups:
+ tomenu.expandGraphicsGroups(buf);
+ break;
+
case MenuItem::Submenu: {
MenuItem item(*cit);
item.setSubmenu(MenuDefinition(cit->submenuname()));