From ad8ebe87e51495488dc222258a15d40b0d3dfefa Mon Sep 17 00:00:00 2001 From: yggverse Date: Fri, 27 Sep 2024 16:23:59 +0300 Subject: [PATCH] make results optional --- src/browser/header/mod.rs | 2 +- src/browser/header/subject/description/mod.rs | 10 +++++++--- src/browser/header/subject/mod.rs | 6 +++--- src/browser/header/subject/title/mod.rs | 16 ++++++++-------- src/browser/main/mod.rs | 4 ++-- src/browser/main/tab/mod.rs | 12 ++++++------ 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/browser/header/mod.rs b/src/browser/header/mod.rs index 4f0bfbe0..c5365fe6 100644 --- a/src/browser/header/mod.rs +++ b/src/browser/header/mod.rs @@ -25,7 +25,7 @@ impl Header { } // Actions - pub fn update(&self, title: GString, description: GString) { + pub fn update(&self, title: Option, description: Option) { self.subject.update(title, description); } diff --git a/src/browser/header/subject/description/mod.rs b/src/browser/header/subject/description/mod.rs index 5b48e6eb..b90a05ec 100644 --- a/src/browser/header/subject/description/mod.rs +++ b/src/browser/header/subject/description/mod.rs @@ -1,3 +1,4 @@ +use gtk::glib::GString; use gtk::prelude::WidgetExt; use gtk::{pango::EllipsizeMode, Label}; @@ -19,9 +20,12 @@ impl Description { } // Actions - pub fn update(&self, text: &str) { - self.widget.set_text(text); - self.widget.set_visible(!text.is_empty()); + pub fn update(&self, text: Option) { + match text { + Some(value) => self.widget.set_text(&value), + None => self.widget.set_text(""), // @TODO + }; + self.widget.set_visible(!self.widget.text().is_empty()); } // Getters diff --git a/src/browser/header/subject/mod.rs b/src/browser/header/subject/mod.rs index 164b70cb..494ae4fd 100644 --- a/src/browser/header/subject/mod.rs +++ b/src/browser/header/subject/mod.rs @@ -34,9 +34,9 @@ impl Subject { } // Actions - pub fn update(&self, title: GString, description: GString) { - self.title.update(&title); - self.description.update(&description); + pub fn update(&self, title: Option, description: Option) { + self.title.update(title); + self.description.update(description); } // Getters diff --git a/src/browser/header/subject/title/mod.rs b/src/browser/header/subject/title/mod.rs index fece2e0d..228e7bb5 100644 --- a/src/browser/header/subject/title/mod.rs +++ b/src/browser/header/subject/title/mod.rs @@ -1,4 +1,4 @@ -use gtk::{pango::EllipsizeMode, Label}; +use gtk::{glib::GString, pango::EllipsizeMode, Label}; const DEFAULT_TEXT: &str = "Yoda"; // @TODO @@ -20,13 +20,13 @@ impl Title { } // Actions - pub fn update(&self, text: &str) { - if text.is_empty() { - self.widget.set_text(DEFAULT_TEXT); - } else { - self.widget - .set_text(&format!("{} - {}", text, DEFAULT_TEXT)); - } + pub fn update(&self, text: Option) { + match text { + Some(value) => self + .widget + .set_text(&format!("{} - {}", value, DEFAULT_TEXT)), + None => self.widget.set_text(DEFAULT_TEXT), + }; } // Getters diff --git a/src/browser/main/mod.rs b/src/browser/main/mod.rs index 9f53983b..41300599 100644 --- a/src/browser/main/mod.rs +++ b/src/browser/main/mod.rs @@ -57,11 +57,11 @@ impl Main { } // Getters - pub fn tab_page_title(&self) -> GString { + pub fn tab_page_title(&self) -> Option { self.tab.page_title() } - pub fn tab_page_description(&self) -> GString { + pub fn tab_page_description(&self) -> Option { self.tab.page_description() } diff --git a/src/browser/main/tab/mod.rs b/src/browser/main/tab/mod.rs index acb43d6c..013c537c 100644 --- a/src/browser/main/tab/mod.rs +++ b/src/browser/main/tab/mod.rs @@ -150,7 +150,7 @@ impl Tab { } // Getters - pub fn page_title(&self) -> GString { + pub fn page_title(&self) -> Option { // Get current page if let Some(page_number) = self.widget.current_page() { // Get default widget to extract it name as the ID for childs @@ -159,15 +159,15 @@ impl Tab { let id = &widget.widget_name(); // Get page by widget ID if let Some(page) = self.pages.borrow().get(id) { - return page.title(); + return Some(page.title()); } } } - GString::new() // @TODO + None } - pub fn page_description(&self) -> GString { + pub fn page_description(&self) -> Option { // Get current page if let Some(page_number) = self.widget.current_page() { // Get default widget to extract it name as the ID for childs @@ -176,12 +176,12 @@ impl Tab { let id = &widget.widget_name(); // Get page by widget ID if let Some(page) = self.pages.borrow().get(id) { - return page.description(); + return Some(page.description()); } } } - GString::new() // @TODO + None } pub fn widget(&self) -> &Notebook {