From f5585605affbcdeec9c36d6bd64ce6c4cade29ea Mon Sep 17 00:00:00 2001 From: armored-dragon Date: Wed, 20 Nov 2024 02:41:27 -0600 Subject: [PATCH] Menu bar item --- interface/src/Menu.cpp | 12 ----------- scripts/system/settings/settings.js | 31 +++++++++++++++++++++------- scripts/system/settings/settings.qml | 23 +++++++++++---------- 3 files changed, 36 insertions(+), 30 deletions(-) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 78ba7dbde8..52ac1c9c49 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -286,18 +286,6 @@ Menu::Menu() { } }); - // Settings > Graphics... - action = addActionToQMenuAndActionHash(settingsMenu, "Graphics..."); - connect(action, &QAction::triggered, [] { - auto tablet = DependencyManager::get()->getTablet("com.highfidelity.interface.tablet.system"); - auto hmd = DependencyManager::get(); - tablet->pushOntoStack("hifi/dialogs/graphics/GraphicsSettings.qml"); - - if (!hmd->getShouldShowTablet()) { - hmd->toggleShouldShowTablet(); - } - }); - // Settings > Security... action = addActionToQMenuAndActionHash(settingsMenu, "Security..."); connect(action, &QAction::triggered, [] { diff --git a/scripts/system/settings/settings.js b/scripts/system/settings/settings.js index 44546bff29..055aad1214 100644 --- a/scripts/system/settings/settings.js +++ b/scripts/system/settings/settings.js @@ -11,7 +11,6 @@ /* global Script Tablet */ -// TODO: Bind Target frame Rate to Graphics Preset // TODO: Fullscreen display? (() => { @@ -31,14 +30,32 @@ // When script ends, remove itself from tablet Script.scriptEnding.connect(function () { - console.log("Shutting Down"); + console.log("Shutting down Settings.js application"); tablet.removeButton(appButton); + Menu.removeMenuItem("Settings", "Graphics..."); }); - // Overlay button toggle + // Event listeners appButton.clicked.connect(toolbarButtonClicked); tablet.fromQml.connect(fromQML); tablet.screenChanged.connect(onTabletScreenChanged); + Menu.menuItemEvent.connect(onMenuItemEvent); + + // Menu button + Menu.addMenuItem({ + menuName: "Settings", + menuItemName: "Graphics...", + afterItem: "Audio...", + }); + + function onMenuItemEvent(menuItem){ + if (menuItem === 'Graphics...'){ + toolbarButtonClicked(); + Script.setTimeout(() => { + toQML({type: 'loadPage', page: 'Graphics'}) + }, 100); + } + } function toolbarButtonClicked() { if (active) tablet.gotoHomeScreen(); @@ -72,9 +89,9 @@ /** * Emit a packet to the HTML front end. Easy communication! * @param {Object} packet - The Object packet to emit to the HTML - * @param {("show_message"|"clear_messages"|"notification"|"initial_settings")} packet.type - The type of packet it is + * @param {("loadPage"|)} packet.type - The type of packet it is */ - // function _emitEvent(packet = { type: "" }) { - // tablet.sendToQml(packet); - // } + function toQML(packet = { type: "" }) { + tablet.sendToQml(packet); + } })(); \ No newline at end of file diff --git a/scripts/system/settings/settings.qml b/scripts/system/settings/settings.qml index 7e54cdde9a..111bf9813e 100644 --- a/scripts/system/settings/settings.qml +++ b/scripts/system/settings/settings.qml @@ -283,18 +283,19 @@ Rectangle { } // Templates + } - // Messages from script - function fromScript(message) { - switch (message.type){ - case "": - break; - } - } - - // Send message to script - function toScript(packet){ - sendToScript(packet) + // Messages from script + function fromScript(message) { + switch (message.type){ + case "loadPage": + current_page = message.page; + break; } } + + // Send message to script + function toScript(packet){ + sendToScript(packet) + } }