mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-14 18:13:17 +02:00
moved MenuScriptingInterface to own files
This commit is contained in:
parent
73b0a5b359
commit
e03c7be5ef
5 changed files with 141 additions and 105 deletions
|
@ -65,6 +65,7 @@
|
|||
#include "ClipboardScriptingInterface.h"
|
||||
#include "InterfaceVersion.h"
|
||||
#include "Menu.h"
|
||||
#include "MenuScriptingInterface.h"
|
||||
#include "Swatch.h"
|
||||
#include "Util.h"
|
||||
#include "devices/OculusManager.h"
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "Application.h"
|
||||
#include "Menu.h"
|
||||
#include "MenuScriptingInterface.h"
|
||||
#include "Util.h"
|
||||
#include "InfoView.h"
|
||||
#include "ui/MetavoxelEditor.h"
|
||||
|
@ -1508,74 +1509,3 @@ void Menu::removeMenuItem(const QString& menu, const QString& menuitem) {
|
|||
QMenuBar::repaint();
|
||||
};
|
||||
|
||||
MenuScriptingInterface* MenuScriptingInterface::_instance = NULL;
|
||||
QMutex MenuScriptingInterface::_instanceMutex;
|
||||
|
||||
MenuScriptingInterface* MenuScriptingInterface::getInstance() {
|
||||
// lock the menu instance mutex to make sure we don't race and create two menus and crash
|
||||
_instanceMutex.lock();
|
||||
if (!_instance) {
|
||||
_instance = new MenuScriptingInterface();
|
||||
}
|
||||
_instanceMutex.unlock();
|
||||
return _instance;
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::deleteLaterIfExists() {
|
||||
_instanceMutex.lock();
|
||||
if (_instance) {
|
||||
_instance->deleteLater();
|
||||
_instance = NULL;
|
||||
}
|
||||
_instanceMutex.unlock();
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::menuItemTriggered() {
|
||||
QAction* menuItemAction = dynamic_cast<QAction*>(sender());
|
||||
if (menuItemAction) {
|
||||
// emit the event
|
||||
emit menuItemEvent(menuItemAction->text());
|
||||
}
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::addMenu(const QString& menu) {
|
||||
QMetaObject::invokeMethod(Menu::getInstance(), "addMenu", Q_ARG(const QString&, menu));
|
||||
}
|
||||
|
||||
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::addMenuItem(const MenuItemProperties& properties) {
|
||||
QMetaObject::invokeMethod(Menu::getInstance(), "addMenuItem", Q_ARG(const MenuItemProperties&, properties));
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::addMenuItem(const QString& menu, const QString& menuitem, const QString& shortcutKey) {
|
||||
MenuItemProperties properties(menu, menuitem, shortcutKey);
|
||||
QMetaObject::invokeMethod(Menu::getInstance(), "addMenuItem", Q_ARG(const MenuItemProperties&, properties));
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::addMenuItem(const QString& menu, const QString& menuitem) {
|
||||
MenuItemProperties properties(menu, menuitem);
|
||||
QMetaObject::invokeMethod(Menu::getInstance(), "addMenuItem", Q_ARG(const MenuItemProperties&, properties));
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::removeMenuItem(const QString& menu, const QString& menuitem) {
|
||||
QMetaObject::invokeMethod(Menu::getInstance(), "removeMenuItem",
|
||||
Q_ARG(const QString&, menu),
|
||||
Q_ARG(const QString&, menuitem));
|
||||
};
|
||||
|
||||
bool MenuScriptingInterface::isOptionChecked(const QString& menuOption) {
|
||||
return Menu::getInstance()->isOptionChecked(menuOption);
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::setIsOptionChecked(const QString& menuOption, bool isChecked) {
|
||||
return Menu::getInstance()->setIsOptionChecked(menuOption, isChecked);
|
||||
}
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
#include <AbstractMenuInterface.h>
|
||||
#include <EventTypes.h>
|
||||
#include <MenuTypes.h>
|
||||
#include <OctreeConstants.h>
|
||||
//#include <VoxelConstants.h>
|
||||
|
||||
const float ADJUST_LOD_DOWN_FPS = 40.0;
|
||||
const float ADJUST_LOD_UP_FPS = 55.0;
|
||||
|
@ -326,38 +328,4 @@ namespace MenuOption {
|
|||
const QString VoxelTextures = "Voxel Textures";
|
||||
}
|
||||
|
||||
class MenuScriptingInterface : public QObject {
|
||||
Q_OBJECT
|
||||
MenuScriptingInterface() { };
|
||||
public:
|
||||
static MenuScriptingInterface* getInstance();
|
||||
static void deleteLaterIfExists();
|
||||
|
||||
private slots:
|
||||
friend class Menu;
|
||||
void menuItemTriggered();
|
||||
|
||||
public slots:
|
||||
void addMenu(const QString& menuName);
|
||||
void removeMenu(const QString& menuName);
|
||||
|
||||
void addSeparator(const QString& menuName, const QString& separatorName);
|
||||
|
||||
void addMenuItem(const MenuItemProperties& properties);
|
||||
void addMenuItem(const QString& menuName, const QString& menuitem, const QString& shortcutKey);
|
||||
void addMenuItem(const QString& menuName, const QString& menuitem);
|
||||
|
||||
void removeMenuItem(const QString& menuName, const QString& menuitem);
|
||||
|
||||
bool isOptionChecked(const QString& menuOption);
|
||||
void setIsOptionChecked(const QString& menuOption, bool isChecked);
|
||||
|
||||
signals:
|
||||
void menuItemEvent(const QString& menuItem);
|
||||
|
||||
private:
|
||||
static QMutex _instanceMutex;
|
||||
static MenuScriptingInterface* _instance;
|
||||
};
|
||||
|
||||
#endif /* defined(__hifi__Menu__) */
|
||||
|
|
84
interface/src/MenuScriptingInterface.cpp
Normal file
84
interface/src/MenuScriptingInterface.cpp
Normal file
|
@ -0,0 +1,84 @@
|
|||
//
|
||||
// MenuScriptingInterface.cpp
|
||||
// hifi
|
||||
//
|
||||
// Created by Brad Hefta-Gaub on 2/25/14
|
||||
// Copyright (c) 2014 HighFidelity, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#include "Application.h"
|
||||
|
||||
#include "MenuScriptingInterface.h"
|
||||
|
||||
|
||||
MenuScriptingInterface* MenuScriptingInterface::_instance = NULL;
|
||||
QMutex MenuScriptingInterface::_instanceMutex;
|
||||
|
||||
MenuScriptingInterface* MenuScriptingInterface::getInstance() {
|
||||
// lock the menu instance mutex to make sure we don't race and create two menus and crash
|
||||
_instanceMutex.lock();
|
||||
if (!_instance) {
|
||||
_instance = new MenuScriptingInterface();
|
||||
}
|
||||
_instanceMutex.unlock();
|
||||
return _instance;
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::deleteLaterIfExists() {
|
||||
_instanceMutex.lock();
|
||||
if (_instance) {
|
||||
_instance->deleteLater();
|
||||
_instance = NULL;
|
||||
}
|
||||
_instanceMutex.unlock();
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::menuItemTriggered() {
|
||||
QAction* menuItemAction = dynamic_cast<QAction*>(sender());
|
||||
if (menuItemAction) {
|
||||
// emit the event
|
||||
emit menuItemEvent(menuItemAction->text());
|
||||
}
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::addMenu(const QString& menu) {
|
||||
QMetaObject::invokeMethod(Menu::getInstance(), "addMenu", Q_ARG(const QString&, menu));
|
||||
}
|
||||
|
||||
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::addMenuItem(const MenuItemProperties& properties) {
|
||||
QMetaObject::invokeMethod(Menu::getInstance(), "addMenuItem", Q_ARG(const MenuItemProperties&, properties));
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::addMenuItem(const QString& menu, const QString& menuitem, const QString& shortcutKey) {
|
||||
MenuItemProperties properties(menu, menuitem, shortcutKey);
|
||||
QMetaObject::invokeMethod(Menu::getInstance(), "addMenuItem", Q_ARG(const MenuItemProperties&, properties));
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::addMenuItem(const QString& menu, const QString& menuitem) {
|
||||
MenuItemProperties properties(menu, menuitem);
|
||||
QMetaObject::invokeMethod(Menu::getInstance(), "addMenuItem", Q_ARG(const MenuItemProperties&, properties));
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::removeMenuItem(const QString& menu, const QString& menuitem) {
|
||||
QMetaObject::invokeMethod(Menu::getInstance(), "removeMenuItem",
|
||||
Q_ARG(const QString&, menu),
|
||||
Q_ARG(const QString&, menuitem));
|
||||
};
|
||||
|
||||
bool MenuScriptingInterface::isOptionChecked(const QString& menuOption) {
|
||||
return Menu::getInstance()->isOptionChecked(menuOption);
|
||||
}
|
||||
|
||||
void MenuScriptingInterface::setIsOptionChecked(const QString& menuOption, bool isChecked) {
|
||||
return Menu::getInstance()->setIsOptionChecked(menuOption, isChecked);
|
||||
}
|
53
interface/src/MenuScriptingInterface.h
Normal file
53
interface/src/MenuScriptingInterface.h
Normal file
|
@ -0,0 +1,53 @@
|
|||
//
|
||||
// MenuScriptingInterface.h
|
||||
// hifi
|
||||
//
|
||||
// Created by Brad Hefta-Gaub on 2/25/14
|
||||
// Copyright (c) 2014 HighFidelity, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef __hifi__MenuScriptingInterface__
|
||||
#define __hifi__MenuScriptingInterface__
|
||||
|
||||
#include <QMutex>
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
|
||||
#include "Menu.h"
|
||||
#include <MenuTypes.h>
|
||||
|
||||
class MenuScriptingInterface : public QObject {
|
||||
Q_OBJECT
|
||||
MenuScriptingInterface() { };
|
||||
public:
|
||||
static MenuScriptingInterface* getInstance();
|
||||
static void deleteLaterIfExists();
|
||||
|
||||
private slots:
|
||||
friend class Menu;
|
||||
void menuItemTriggered();
|
||||
|
||||
public slots:
|
||||
void addMenu(const QString& menuName);
|
||||
void removeMenu(const QString& menuName);
|
||||
|
||||
void addSeparator(const QString& menuName, const QString& separatorName);
|
||||
|
||||
void addMenuItem(const MenuItemProperties& properties);
|
||||
void addMenuItem(const QString& menuName, const QString& menuitem, const QString& shortcutKey);
|
||||
void addMenuItem(const QString& menuName, const QString& menuitem);
|
||||
|
||||
void removeMenuItem(const QString& menuName, const QString& menuitem);
|
||||
|
||||
bool isOptionChecked(const QString& menuOption);
|
||||
void setIsOptionChecked(const QString& menuOption, bool isChecked);
|
||||
|
||||
signals:
|
||||
void menuItemEvent(const QString& menuItem);
|
||||
|
||||
private:
|
||||
static QMutex _instanceMutex;
|
||||
static MenuScriptingInterface* _instance;
|
||||
};
|
||||
|
||||
#endif /* defined(__hifi__MenuScriptingInterface__) */
|
Loading…
Reference in a new issue