History

merge with hifi/plugins

Sam Gondelman committed 11 years ago

Commit 81efd992 parents 0333adb 5abf08824 files · +276 −280Browse files

Showing the changes to interface/src/Application.cpp (1 of 24 files). Show all

Unified · Split

interface/src/Application.cpp+18−2
@@ -4844,6 +4844,8 @@ const DisplayPlugin * Application::getActiveDisplayPlugin() const { · 4843 unmodified lines
48444844 return ((Application*)this)->getActiveDisplayPlugin();
48454845 }
48464846
4847+static QVector<QPair<QString, QString>> _currentDisplayPluginActions;
4848+
48474849 void Application::updateDisplayMode() {
48484850 auto menu = Menu::getInstance();
48494851 auto displayPlugins = getDisplayPlugins();
@@ -4867,6 +4869,14 @@ void Application::updateDisplayMode() { · 17 unmodified lines
48674869 oldDisplayPlugin->removeEventFilter(qApp);
48684870 }
48694871
4872+ if (!_currentDisplayPluginActions.isEmpty()) {
4873+ auto menu = Menu::getInstance();
4874+ foreach(auto itemInfo, _currentDisplayPluginActions) {
4875+ menu->removeMenuItem(itemInfo.first, itemInfo.second);
4876+ }
4877+ _currentDisplayPluginActions.clear();
4878+ }
4879+
48704880 if (newDisplayPlugin) {
48714881 _offscreenContext->makeCurrent();
48724882 newDisplayPlugin->activate(this);
@@ -4895,8 +4905,14 @@ void Application::updateDisplayMode() { · 22 unmodified lines
48954905 Q_ASSERT_X(_displayPlugin, "Application::updateDisplayMode", "could not find an activated display plugin");
48964906 }
48974907
4898−void Application::addMenuItem(const QString& path, std::function<void()> onClicked, bool checkable, bool checked, const QString& groupName) {
4899−
4908+void Application::addMenuItem(const QString& path, const QString& name, std::function<void()> onClicked, bool checkable, bool checked, const QString& groupName) {
4909+ auto menu = Menu::getInstance();
4910+ MenuWrapper* parentItem = menu->getMenu(path);
4911+ QAction* action = parentItem->addAction(name);
4912+ connect(action, &QAction::triggered, [=] {
4913+ onClicked();
4914+ });
4915+ _currentDisplayPluginActions.push_back({ path, name });
49004916 }
49014917
49024918 GlWindow* Application::getVisibleWindow() {