From 788cdea5cf03e604d4d780c15b5d35e5fc42dbe8 Mon Sep 17 00:00:00 2001 From: Sriyansh Shivam Date: Sun, 20 Aug 2023 16:57:23 +0530 Subject: [PATCH 1/7] Update dialog entry to use choose() method --- src/Library/demos/Dialogs/main.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Library/demos/Dialogs/main.js b/src/Library/demos/Dialogs/main.js index c0733afd6..77d1beb03 100644 --- a/src/Library/demos/Dialogs/main.js +++ b/src/Library/demos/Dialogs/main.js @@ -1,5 +1,8 @@ import Adw from "gi://Adw"; import Gtk from "gi://Gtk"; +import Gio from "gi://Gio"; + +Gio._promisify(Adw.MessageDialog.prototype, "choose", "choose_finish"); const button_confirmation = workbench.builder.get_object("button_confirmation"); const button_error = workbench.builder.get_object("button_error"); @@ -25,7 +28,7 @@ function createConfirmationDialog() { console.log(`Selected "${response}" response.`); }); - dialog.present(); + dialog.choose(null); } function createErrorDialog() { @@ -43,7 +46,7 @@ function createErrorDialog() { console.log(`Selected "${response}" response.`); }); - dialog.present(); + dialog.choose(null); } //Creates a message dialog with an extra child @@ -78,7 +81,7 @@ function createAdvancedDialog() { } }); - dialog.present(); + dialog.choose(null); } button_confirmation.connect("clicked", createConfirmationDialog); From ad08fc5575bf4e1407a39600d9d81cdb94502f0c Mon Sep 17 00:00:00 2001 From: Sriyansh Shivam Date: Sun, 20 Aug 2023 17:24:18 +0530 Subject: [PATCH 2/7] Update Welcome entry --- src/Library/demos/Welcome/main.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Library/demos/Welcome/main.js b/src/Library/demos/Welcome/main.js index c09ef7c82..d84aea7e2 100644 --- a/src/Library/demos/Welcome/main.js +++ b/src/Library/demos/Welcome/main.js @@ -1,5 +1,8 @@ import Gtk from "gi://Gtk"; import Adw from "gi://Adw"; +import Gio from "gi://Gio"; + +Gio._promisify(Adw.MessageDialog.prototype, "choose", "choose_finish"); const box = workbench.builder.get_object("subtitle"); @@ -26,5 +29,5 @@ function greet() { console.log(response); }); - dialog.present(); + dialog.choose(null); } From e5463db3429c3dbe46cf54aad712e6965cd7763d Mon Sep 17 00:00:00 2001 From: Sriyansh Shivam Date: Sun, 20 Aug 2023 18:27:31 +0530 Subject: [PATCH 3/7] Update welcome entry --- src/Library/demos/Welcome/main.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Library/demos/Welcome/main.js b/src/Library/demos/Welcome/main.js index d84aea7e2..dd4a27dbd 100644 --- a/src/Library/demos/Welcome/main.js +++ b/src/Library/demos/Welcome/main.js @@ -12,12 +12,14 @@ const button = new Gtk.Button({ margin_top: 6, css_classes: ["suggested-action"], }); -button.connect("clicked", greet); +button.connect("clicked", () => { + greet().catch(logError); +}); box.append(button); console.log("Welcome to Workbench!"); -function greet() { +async function greet() { // https://gjs-docs.gnome.org/adw1~1/adw.messagedialog const dialog = new Adw.MessageDialog({ body: "Hello World!", @@ -25,9 +27,7 @@ function greet() { }); dialog.add_response("ok", "OK"); - dialog.connect("response", (self, response) => { - console.log(response); - }); - dialog.choose(null); + const response = await dialog.choose(null); + console.log(response); } From 72ed02bfdb2fbcb674639b8987daab7a42aec93e Mon Sep 17 00:00:00 2001 From: Sriyansh Shivam Date: Sun, 20 Aug 2023 18:53:29 +0530 Subject: [PATCH 4/7] Update Dialogs Entry --- src/Library/demos/Dialogs/main.js | 39 ++++++++++++------------------- 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/src/Library/demos/Dialogs/main.js b/src/Library/demos/Dialogs/main.js index 77d1beb03..c2f59d4c9 100644 --- a/src/Library/demos/Dialogs/main.js +++ b/src/Library/demos/Dialogs/main.js @@ -9,7 +9,7 @@ const button_error = workbench.builder.get_object("button_error"); const button_advanced = workbench.builder.get_object("button_advanced"); const window = workbench.window; -function createConfirmationDialog() { +async function createConfirmationDialog() { const dialog = new Adw.MessageDialog({ heading: "Replace File?", body: "A file named `example.png` already exists. Do you want to replace it?", @@ -24,14 +24,11 @@ function createConfirmationDialog() { // Use DESTRUCTIVE appearance to draw attention to the potentially damaging consequences of this action dialog.set_response_appearance("replace", Adw.ResponseAppearance.DESTRUCTIVE); - dialog.connect("response", (_self, response) => { - console.log(`Selected "${response}" response.`); - }); - - dialog.choose(null); + const response = await dialog.choose(null); + console.log(`Selected "${response}" response.`); } -function createErrorDialog() { +async function createErrorDialog() { const dialog = new Adw.MessageDialog({ heading: "Critical Error", body: "You did something you should not have", @@ -42,15 +39,12 @@ function createErrorDialog() { dialog.add_response("okay", "Okay"); - dialog.connect("response", (_self, response) => { - console.log(`Selected "${response}" response.`); - }); - - dialog.choose(null); + const response = await dialog.choose(null); + console.log(`Selected "${response}" response.`); } //Creates a message dialog with an extra child -function createAdvancedDialog() { +async function createAdvancedDialog() { const dialog = new Adw.MessageDialog({ heading: "Login", body: "A valid password is needed to continue", @@ -71,17 +65,14 @@ function createAdvancedDialog() { dialog.set_extra_child(entry); - dialog.connect("response", (dialog, response) => { - if (dialog.get_response_label(response) === "Login") { - console.log( - `Selected "${response}" response with password "${entry.get_text()}"`, - ); - } else { - console.log(`Selected "${response}" response.`); - } - }); - - dialog.choose(null); + const response = await dialog.choose(null); + if (response === "login") { + console.log( + `Selected "${response}" response with password "${entry.get_text()}"`, + ); + } else { + console.log(`Selected "${response}" response.`); + } } button_confirmation.connect("clicked", createConfirmationDialog); From 340ea9f9c87507c751ca1e3d6cb79ddb5e14e81d Mon Sep 17 00:00:00 2001 From: Sriyansh Shivam Date: Sun, 20 Aug 2023 18:55:32 +0530 Subject: [PATCH 5/7] Minor fix --- src/Library/demos/Dialogs/main.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Library/demos/Dialogs/main.js b/src/Library/demos/Dialogs/main.js index c2f59d4c9..2cab5bd69 100644 --- a/src/Library/demos/Dialogs/main.js +++ b/src/Library/demos/Dialogs/main.js @@ -75,6 +75,12 @@ async function createAdvancedDialog() { } } -button_confirmation.connect("clicked", createConfirmationDialog); -button_error.connect("clicked", createErrorDialog); -button_advanced.connect("clicked", createAdvancedDialog); +button_confirmation.connect("clicked", () => { + createConfirmationDialog().catch(logError); +}); +button_error.connect("clicked", () => { + createErrorDialog().catch(logError); +}); +button_advanced.connect("clicked", () => { + createAdvancedDialog().catch(logError); +}); From 393bf355f2c2fb4abe846cf45a61730682ed9137 Mon Sep 17 00:00:00 2001 From: Sriyansh Shivam Date: Sun, 20 Aug 2023 19:02:58 +0530 Subject: [PATCH 6/7] Update window.js --- src/window.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/window.js b/src/window.js index 71a36b122..93688af2b 100644 --- a/src/window.js +++ b/src/window.js @@ -38,6 +38,8 @@ import "./widgets/Modal.js"; import "./widgets/CodeView.js"; import { deleteSession, saveSessionAsProject } from "./sessions.js"; +Gio._promisify(Adw.MessageDialog.prototype, "choose", "choose_finish"); + const style_manager = Adw.StyleManager.get_default(); export default function Window({ application, session }) { @@ -445,10 +447,7 @@ async function onCloseSession({ session, window }) { updateSaveButton(); } - const response = await new Promise((resolve) => { - dialog.connect("response", (self, response) => resolve(response)); - }); - + const response = await dialog.choose(null); if (response === "cancel") return; if (response === "discard") { From 78a5f254b458ede788623c07c4f62c2dddaec5b9 Mon Sep 17 00:00:00 2001 From: Sriyansh Shivam Date: Sun, 20 Aug 2023 19:07:36 +0530 Subject: [PATCH 7/7] Updated Init.js --- src/init.js | 2 ++ src/window.js | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/init.js b/src/init.js index 59ad3a71a..d433c97e7 100644 --- a/src/init.js +++ b/src/init.js @@ -8,10 +8,12 @@ import "gi://Pango?version=1.0"; import Gtk from "gi://Gtk"; import Gio from "gi://Gio"; +import Adw from "gi://Adw"; import Xdp from "gi://Xdp"; import Source from "gi://GtkSource"; import WebKit from "gi://WebKit"; +Gio._promisify(Adw.MessageDialog.prototype, "choose", "choose_finish"); Gio._promisify(Xdp.Portal.prototype, "trash_file", "trash_file_finish"); Gio._promisify(Xdp.Portal.prototype, "open_uri", "open_uri_finish"); Gio._promisify(Xdp.Portal.prototype, "open_file", "open_file_finish"); diff --git a/src/window.js b/src/window.js index 93688af2b..eaea0a7ba 100644 --- a/src/window.js +++ b/src/window.js @@ -38,8 +38,6 @@ import "./widgets/Modal.js"; import "./widgets/CodeView.js"; import { deleteSession, saveSessionAsProject } from "./sessions.js"; -Gio._promisify(Adw.MessageDialog.prototype, "choose", "choose_finish"); - const style_manager = Adw.StyleManager.get_default(); export default function Window({ application, session }) {