Showing the changes to interface/src/Menu.cpp (1 of 5 files). Show all
Unified · Split
| @@ -30,6 +30,7 @@ · 29 unmodified lines | |||
| 30 | 30 | ||
| 31 | #include "Application.h" | 31 | #include "Application.h" |
| 32 | #include "Menu.h" | 32 | #include "Menu.h" |
| 33 | #include "MenuScriptingInterface.h" | ||
| 33 | #include "Util.h" | 34 | #include "Util.h" |
| 34 | #include "InfoView.h" | 35 | #include "InfoView.h" |
| 35 | #include "ui/MetavoxelEditor.h" | 36 | #include "ui/MetavoxelEditor.h" |
| @@ -1508,74 +1509,3 @@ void Menu::removeMenuItem(const QString& menu, const QString& menuitem) { · 1472 unmodified lines | |||
| 1508 | QMenuBar::repaint(); | 1509 | QMenuBar::repaint(); |
| 1509 | }; | 1510 | }; |
| 1510 | 1511 | ||
| 1511 | MenuScriptingInterface* MenuScriptingInterface::_instance = NULL; | ||
| 1512 | QMutex MenuScriptingInterface::_instanceMutex; | ||
| 1513 | |||
| 1514 | MenuScriptingInterface* MenuScriptingInterface::getInstance() { | ||
| 1515 | // lock the menu instance mutex to make sure we don't race and create two menus and crash | ||
| 1516 | _instanceMutex.lock(); | ||
| 1517 | if (!_instance) { | ||
| 1518 | _instance = new MenuScriptingInterface(); | ||
| 1519 | } | ||
| 1520 | _instanceMutex.unlock(); | ||
| 1521 | return _instance; | ||
| 1522 | } | ||
| 1523 | |||
| 1524 | void MenuScriptingInterface::deleteLaterIfExists() { | ||
| 1525 | _instanceMutex.lock(); | ||
| 1526 | if (_instance) { | ||
| 1527 | _instance->deleteLater(); | ||
| 1528 | _instance = NULL; | ||
| 1529 | } | ||
| 1530 | _instanceMutex.unlock(); | ||
| 1531 | } | ||
| 1532 | |||
| 1533 | void MenuScriptingInterface::menuItemTriggered() { | ||
| 1534 | QAction* menuItemAction = dynamic_cast<QAction*>(sender()); | ||
| 1535 | if (menuItemAction) { | ||
| 1536 | // emit the event | ||
| 1537 | emit menuItemEvent(menuItemAction->text()); | ||
| 1538 | } | ||
| 1539 | } | ||
| 1540 | |||
| 1541 | void MenuScriptingInterface::addMenu(const QString& menu) { | ||
| 1542 | QMetaObject::invokeMethod(Menu::getInstance(), "addMenu", Q_ARG(const QString&, menu)); | ||
| 1543 | } | ||
| 1544 | |||
| 1545 | void MenuScriptingInterface::removeMenu(const QString& menu) { | ||
| 1546 | QMetaObject::invokeMethod(Menu::getInstance(), "removeMenu", Q_ARG(const QString&, menu)); | ||
| 1547 | } | ||
| 1548 | |||
| 1549 | void MenuScriptingInterface::addSeparator(const QString& menuName, const QString& separatorName) { | ||
| 1550 | QMetaObject::invokeMethod(Menu::getInstance(), "addSeparator", | ||
| 1551 | Q_ARG(const QString&, menuName), | ||
| 1552 | Q_ARG(const QString&, separatorName)); | ||
| 1553 | } | ||
| 1554 | |||
| 1555 | void MenuScriptingInterface::addMenuItem(const MenuItemProperties& properties) { | ||
| 1556 | QMetaObject::invokeMethod(Menu::getInstance(), "addMenuItem", Q_ARG(const MenuItemProperties&, properties)); | ||
| 1557 | } | ||
| 1558 | |||
| 1559 | void MenuScriptingInterface::addMenuItem(const QString& menu, const QString& menuitem, const QString& shortcutKey) { | ||
| 1560 | MenuItemProperties properties(menu, menuitem, shortcutKey); | ||
| 1561 | QMetaObject::invokeMethod(Menu::getInstance(), "addMenuItem", Q_ARG(const MenuItemProperties&, properties)); | ||
| 1562 | } | ||
| 1563 | |||
| 1564 | void MenuScriptingInterface::addMenuItem(const QString& menu, const QString& menuitem) { | ||
| 1565 | MenuItemProperties properties(menu, menuitem); | ||
| 1566 | QMetaObject::invokeMethod(Menu::getInstance(), "addMenuItem", Q_ARG(const MenuItemProperties&, properties)); | ||
| 1567 | } | ||
| 1568 | |||
| 1569 | void MenuScriptingInterface::removeMenuItem(const QString& menu, const QString& menuitem) { | ||
| 1570 | QMetaObject::invokeMethod(Menu::getInstance(), "removeMenuItem", | ||
| 1571 | Q_ARG(const QString&, menu), | ||
| 1572 | Q_ARG(const QString&, menuitem)); | ||
| 1573 | }; | ||
| 1574 | |||
| 1575 | bool MenuScriptingInterface::isOptionChecked(const QString& menuOption) { | ||
| 1576 | return Menu::getInstance()->isOptionChecked(menuOption); | ||
| 1577 | } | ||
| 1578 | |||
| 1579 | void MenuScriptingInterface::setIsOptionChecked(const QString& menuOption, bool isChecked) { | ||
| 1580 | return Menu::getInstance()->setIsOptionChecked(menuOption, isChecked); | ||
| 1581 | } | ||