History

Merge pull request #8980 from huffman/feat/default-to-hmd

Update interface to default to HMD display plugin

Seth Alves committed 10 years ago

Commit 24556fc2 parents c8a654a 0cec62b1 file · +25 −7Browse files

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

Unified · Split

interface/src/Application.cpp+25−7
@@ -3379,13 +3379,31 @@ void Application::loadSettings() { · 3378 unmodified lines
33793379 // If there is a preferred plugin, we probably messed it up with the menu settings, so fix it.
33803380 auto pluginManager = PluginManager::getInstance();
33813381 auto plugins = pluginManager->getPreferredDisplayPlugins();
3382− for (auto plugin : plugins) {
3383− auto menu = Menu::getInstance();
3384− if (auto action = menu->getActionForOption(plugin->getName())) {
3385− action->setChecked(true);
3386− action->trigger();
3387− // Find and activated highest priority plugin, bail for the rest
3388− break;
3382+ auto menu = Menu::getInstance();
3383+ if (plugins.size() > 0) {
3384+ for (auto plugin : plugins) {
3385+ if (auto action = menu->getActionForOption(plugin->getName())) {
3386+ action->setChecked(true);
3387+ action->trigger();
3388+ // Find and activated highest priority plugin, bail for the rest
3389+ break;
3390+ }
3391+ }
3392+ } else {
3393+ // If this is our first run, and no preferred devices were set, default to
3394+ // an HMD device if available.
3395+ Setting::Handle<bool> firstRun { Settings::firstRun, true };
3396+ if (firstRun.get()) {
3397+ auto displayPlugins = pluginManager->getDisplayPlugins();
3398+ for (auto& plugin : displayPlugins) {
3399+ if (plugin->isHmd()) {
3400+ if (auto action = menu->getActionForOption(plugin->getName())) {
3401+ action->setChecked(true);
3402+ action->trigger();
3403+ break;
3404+ }
3405+ }
3406+ }
33893407 }
33903408 }
33913409