History

Working on plugin menu items

Brad Davis committed 11 years ago

Commit 040f7c81 parent ab1ae4a3 files · +20 −4Browse files

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

Unified · Split

interface/src/Application.cpp+18−2
@@ -4799,6 +4799,8 @@ const DisplayPlugin * Application::getActiveDisplayPlugin() const { · 4798 unmodified lines
4799 return ((Application*)this)->getActiveDisplayPlugin();4799 return ((Application*)this)->getActiveDisplayPlugin();
4800}4800}
4801 4801
4802static QVector<QPair<QString, QString>> _currentDisplayPluginActions;
4803
4802void Application::updateDisplayMode() {4804void Application::updateDisplayMode() {
4803 auto menu = Menu::getInstance();4805 auto menu = Menu::getInstance();
4804 auto displayPlugins = getDisplayPlugins();4806 auto displayPlugins = getDisplayPlugins();
@@ -4822,6 +4824,14 @@ void Application::updateDisplayMode() { · 17 unmodified lines
4822 oldDisplayPlugin->removeEventFilter(qApp);4824 oldDisplayPlugin->removeEventFilter(qApp);
4823 }4825 }
4824 4826
4827 if (!_currentDisplayPluginActions.isEmpty()) {
4828 auto menu = Menu::getInstance();
4829 foreach(auto itemInfo, _currentDisplayPluginActions) {
4830 menu->removeMenuItem(itemInfo.first, itemInfo.second);
4831 }
4832 _currentDisplayPluginActions.clear();
4833 }
4834
4825 if (newDisplayPlugin) {4835 if (newDisplayPlugin) {
4826 _offscreenContext->makeCurrent();4836 _offscreenContext->makeCurrent();
4827 newDisplayPlugin->activate(this);4837 newDisplayPlugin->activate(this);
@@ -4850,8 +4860,14 @@ void Application::updateDisplayMode() { · 22 unmodified lines
4850 Q_ASSERT_X(_displayPlugin, "Application::updateDisplayMode", "could not find an activated display plugin");4860 Q_ASSERT_X(_displayPlugin, "Application::updateDisplayMode", "could not find an activated display plugin");
4851}4861}
4852 4862
4853void Application::addMenuItem(const QString& path, std::function<void()> onClicked, bool checkable, bool checked, const QString& groupName) {4863void Application::addMenuItem(const QString& path, const QString& name, std::function<void()> onClicked, bool checkable, bool checked, const QString& groupName) {
4854 4864 auto menu = Menu::getInstance();
4865 MenuWrapper* parentItem = menu->getMenu(path);
4866 QAction* action = parentItem->addAction(name);
4867 connect(action, &QAction::triggered, [=] {
4868 onClicked();
4869 });
4870 _currentDisplayPluginActions.push_back({ path, name });
4855}4871}
4856 4872
4857GlWindow* Application::getVisibleWindow() {4873GlWindow* Application::getVisibleWindow() {