// // graphicsSettings.js // // Created by Kalila L. on August 5th, 2020 // Copyright 2020 Vircadia contributors. // Copyright 2024 Overte e.V. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // (function() { // BEGIN LOCAL_SCOPE var channelComm = "Overte-ShowGraphicsIconChanged"; var appStatus = false; var GRAPHICS_HIDE_AND_SHOW_SETTING_KEY = "showGraphicsIcon"; var GRAPHICS_HIDE_AND_SHOW_DEFAULT_VALUE = true; var AppUi = Script.require('appUi'); // cellphone-cog MDI // var customIcon = 'data:image/svg+xml;utf8,' // application-cog MDI var customIcon = 'data:image/svg+xml;utf8,' var lqIcon = 'data:image/svg+xml;utf8,'; var mqIcon = 'data:image/svg+xml;utf8,'; var hqIcon = 'data:image/svg+xml;utf8,'; var BUTTON_NAME = "GRAPHICS"; var GRAPHICS_QML_SOURCE = "hifi/dialogs/graphics/GraphicsSettings.qml"; var ui; function getIcon() { // TODO: Implement only once AppUi can be told to constantly retrieve / reset icons... // var performanceProfile = Performance.getPerformancePreset(); // // switch (performanceProfile) { // case 0: // return customIcon; // break; // case 1: // return lqIcon; // break; // case 2: // return mqIcon; // break; // case 3: // return hqIcon; // break; // default: // return customIcon; // } return customIcon; } function startup() { if (!appStatus) { ui = new AppUi({ buttonName: BUTTON_NAME, sortOrder: 8, normalButton: getIcon(), activeButton: getIcon().replace('white', 'black'), home: GRAPHICS_QML_SOURCE }); } appStatus = true; } function shutdown() { if (appStatus) { ui.onScriptEnding(); appStatus = false; } } function cleanup() { Messages.messageReceived.disconnect(onMessageReceived); Messages.unsubscribe(channelComm); } function onMessageReceived(channel, message, sender, localOnly) { if (channel === channelComm && localOnly) { if (Settings.getValue(GRAPHICS_HIDE_AND_SHOW_SETTING_KEY, GRAPHICS_HIDE_AND_SHOW_DEFAULT_VALUE)) { startup(); } else { shutdown(); } } } // // Run the functions. // if (Settings.getValue(GRAPHICS_HIDE_AND_SHOW_SETTING_KEY, GRAPHICS_HIDE_AND_SHOW_DEFAULT_VALUE)) { startup(); } Messages.subscribe(channelComm); Messages.messageReceived.connect(onMessageReceived); Script.scriptEnding.connect(cleanup); }()); // END LOCAL_SCOPE