From b9027883a8535abcaf15c51ce3491b8d36734cbb Mon Sep 17 00:00:00 2001 From: Vlad Rakhmanin <91677083+toadkarter@users.noreply.github.com> Date: Thu, 21 Sep 2023 22:02:18 +0100 Subject: [PATCH] Make 'Close All Documents' not confirm if all open documents are already saved (#1423) * Adding blank PortfolioMessage to close docs * Connected new PortfolioMessage to Menu Bar * Adding functionality to new PortfolioMessage * Amending outdated tests in color.rs --- .../portfolio/menu_bar/menu_bar_message_handler.rs | 4 ++-- editor/src/messages/portfolio/portfolio_message.rs | 1 + .../src/messages/portfolio/portfolio_message_handler.rs | 8 ++++++++ node-graph/gcore/src/raster/color.rs | 4 ++-- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/editor/src/messages/portfolio/menu_bar/menu_bar_message_handler.rs b/editor/src/messages/portfolio/menu_bar/menu_bar_message_handler.rs index 844f2190..9fc71574 100644 --- a/editor/src/messages/portfolio/menu_bar/menu_bar_message_handler.rs +++ b/editor/src/messages/portfolio/menu_bar/menu_bar_message_handler.rs @@ -71,8 +71,8 @@ impl LayoutHolder for MenuBarMessageHandler { }, MenuBarEntry { label: "Close All".into(), - shortcut: action_keys!(DialogMessageDiscriminant::CloseAllDocumentsWithConfirmation), - action: MenuBarEntry::create_action(|_| DialogMessage::CloseAllDocumentsWithConfirmation.into()), + shortcut: action_keys!(PortfolioMessageDiscriminant::CloseAllDocumentsWithConfirmation), + action: MenuBarEntry::create_action(|_| PortfolioMessage::CloseAllDocumentsWithConfirmation.into()), disabled: no_active_document, ..MenuBarEntry::default() }, diff --git a/editor/src/messages/portfolio/portfolio_message.rs b/editor/src/messages/portfolio/portfolio_message.rs index a2323553..af377d8e 100644 --- a/editor/src/messages/portfolio/portfolio_message.rs +++ b/editor/src/messages/portfolio/portfolio_message.rs @@ -31,6 +31,7 @@ pub enum PortfolioMessage { }, CloseActiveDocumentWithConfirmation, CloseAllDocuments, + CloseAllDocumentsWithConfirmation, CloseDocument { document_id: u64, }, diff --git a/editor/src/messages/portfolio/portfolio_message_handler.rs b/editor/src/messages/portfolio/portfolio_message_handler.rs index c8090a42..c46fa4ed 100644 --- a/editor/src/messages/portfolio/portfolio_message_handler.rs +++ b/editor/src/messages/portfolio/portfolio_message_handler.rs @@ -105,6 +105,13 @@ impl MessageHandler { + if self.unsaved_document_names().is_empty() { + responses.add(PortfolioMessage::CloseAllDocuments) + } else { + responses.add(DialogMessage::CloseAllDocumentsWithConfirmation) + } + } PortfolioMessage::CloseDocument { document_id } => { // Is this the last document? if self.documents.len() == 1 && self.document_ids[0] == document_id { @@ -549,6 +556,7 @@ impl MessageHandler String { @@ -756,7 +756,7 @@ impl Color { /// ``` /// use graphene_core::raster::color::Color; /// let color = Color::from_rgba8_srgb(0x52, 0x67, 0xFA, 0x61).to_gamma_srgb(); - /// assert_eq!("5267FA", color.rgb_hex()) + /// assert_eq!("3240A2", color.rgb_hex()) /// ``` #[cfg(feature = "std")] pub fn rgb_hex(&self) -> String {