diff --git a/examples/menuExample.js b/examples/menuExample.js index 5d8f8f22f2..c62e4616ec 100644 --- a/examples/menuExample.js +++ b/examples/menuExample.js @@ -15,6 +15,7 @@ function setupMenus() { Menu.addMenuItem("Foo","Foo item 2", "SHIFT+F" ); Menu.addMenuItem("Foo","Foo item 3", "META+F" ); Menu.addCheckableMenuItem("Foo","Foo item 4", "ALT+F", true); + Menu.addSeparator("Foo","Removable Tools"); Menu.addMenuItem("Foo","Remove Foo item 4"); Menu.addMenuItem("Foo","Remove Foo"); Menu.addMenu("Bar"); @@ -23,6 +24,7 @@ function setupMenus() { Menu.addMenu("Bar > Spam"); Menu.addMenuItem("Bar > Spam","Spam item 1"); Menu.addCheckableMenuItem("Bar > Spam","Spam item 2",false); + Menu.addSeparator("Bar > Spam","Other Items"); Menu.addMenuItem("Bar > Spam","Remove Spam item 2"); Menu.addMenuItem("Foo","Remove Spam item 2"); } diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 5f616826f0..c7d12dd80d 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -1393,6 +1393,14 @@ void Menu::removeMenu(const QString& menuName) { } } +void Menu::addSeparator(const QString& menuName, const QString& separatorName) { + QMenu* menuObj = getMenu(menuName); + if (menuObj) { + addDisabledActionAndSeparator(menuObj, separatorName); + } +} + + void Menu::addMenuItem(const QString& menuName, const QString& menuitem, bool checkable, bool checked) { QMenu* menuObj = getMenu(menuName); if (menuObj) { @@ -1480,6 +1488,12 @@ void MenuScriptingInterface::removeMenu(const QString& menu) { QMetaObject::invokeMethod(Menu::getInstance(), "removeMenu", Q_ARG(const QString&, menu)); } +void MenuScriptingInterface::addSeparator(const QString& menuName, const QString& separatorName) { + QMetaObject::invokeMethod(Menu::getInstance(), "addSeparator", + Q_ARG(const QString&, menuName), + Q_ARG(const QString&, separatorName)); +} + void MenuScriptingInterface::addMenuItemWithKeyEvent(const QString& menu, const QString& menuitem, const KeyEvent& shortcutKey) { QMetaObject::invokeMethod(Menu::getInstance(), "addMenuItem", Q_ARG(const QString&, menu), diff --git a/interface/src/Menu.h b/interface/src/Menu.h index 421d61c052..8fe49a3ac2 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -113,13 +113,14 @@ public slots: void goTo(); void pasteToVoxel(); - QMenu* addMenu(const QString& menu); - void removeMenu(const QString& menu); - void addMenuItem(const QString& menu, const QString& menuitem, bool checkable, bool checked); - void addMenuItem(const QString& menu, const QString& menuitem, const KeyEvent& shortcutKey, bool checkable, bool checked); - void addMenuItem(const QString& menu, const QString& menuitem, const QString& shortcutKey, bool checkable, bool checked); - void addMenuItem(const QString& topMenuName, const QString& menuitem, const QKeySequence& shortcutKey, bool checkable, bool checked); - void removeMenuItem(const QString& menu, const QString& menuitem); + QMenu* addMenu(const QString& menuName); + void removeMenu(const QString& menuName); + void addSeparator(const QString& menuName, const QString& separatorName); + void addMenuItem(const QString& menuName, const QString& menuitem, bool checkable, bool checked); + void addMenuItem(const QString& menuName, const QString& menuitem, const KeyEvent& shortcutKey, bool checkable, bool checked); + void addMenuItem(const QString& menuName, const QString& menuitem, const QString& shortcutKey, bool checkable, bool checked); + void addMenuItem(const QString& menuName, const QString& menuitem, const QKeySequence& shortcutKey, bool checkable, bool checked); + void removeMenuItem(const QString& menuName, const QString& menuitem); private slots: @@ -335,6 +336,8 @@ public slots: void addMenu(const QString& menuName); void removeMenu(const QString& menuName); + void addSeparator(const QString& menuName, const QString& separatorName); + void addMenuItemWithKeyEvent(const QString& menu, const QString& menuitem, const KeyEvent& shortcutKey); void addMenuItem(const QString& menuName, const QString& menuitem, const QString& shortcutKey); void addMenuItem(const QString& menuName, const QString& menuitem);