make results optional

This commit is contained in:
yggverse 2024-09-27 16:23:59 +03:00
parent 89aed28056
commit ad8ebe87e5
6 changed files with 27 additions and 23 deletions

View File

@ -25,7 +25,7 @@ impl Header {
} }
// Actions // Actions
pub fn update(&self, title: GString, description: GString) { pub fn update(&self, title: Option<GString>, description: Option<GString>) {
self.subject.update(title, description); self.subject.update(title, description);
} }

View File

@ -1,3 +1,4 @@
use gtk::glib::GString;
use gtk::prelude::WidgetExt; use gtk::prelude::WidgetExt;
use gtk::{pango::EllipsizeMode, Label}; use gtk::{pango::EllipsizeMode, Label};
@ -19,9 +20,12 @@ impl Description {
} }
// Actions // Actions
pub fn update(&self, text: &str) { pub fn update(&self, text: Option<GString>) {
self.widget.set_text(text); match text {
self.widget.set_visible(!text.is_empty()); Some(value) => self.widget.set_text(&value),
None => self.widget.set_text(""), // @TODO
};
self.widget.set_visible(!self.widget.text().is_empty());
} }
// Getters // Getters

View File

@ -34,9 +34,9 @@ impl Subject {
} }
// Actions // Actions
pub fn update(&self, title: GString, description: GString) { pub fn update(&self, title: Option<GString>, description: Option<GString>) {
self.title.update(&title); self.title.update(title);
self.description.update(&description); self.description.update(description);
} }
// Getters // Getters

View File

@ -1,4 +1,4 @@
use gtk::{pango::EllipsizeMode, Label}; use gtk::{glib::GString, pango::EllipsizeMode, Label};
const DEFAULT_TEXT: &str = "Yoda"; // @TODO const DEFAULT_TEXT: &str = "Yoda"; // @TODO
@ -20,13 +20,13 @@ impl Title {
} }
// Actions // Actions
pub fn update(&self, text: &str) { pub fn update(&self, text: Option<GString>) {
if text.is_empty() { match text {
self.widget.set_text(DEFAULT_TEXT); Some(value) => self
} else { .widget
self.widget .set_text(&format!("{} - {}", value, DEFAULT_TEXT)),
.set_text(&format!("{} - {}", text, DEFAULT_TEXT)); None => self.widget.set_text(DEFAULT_TEXT),
} };
} }
// Getters // Getters

View File

@ -57,11 +57,11 @@ impl Main {
} }
// Getters // Getters
pub fn tab_page_title(&self) -> GString { pub fn tab_page_title(&self) -> Option<GString> {
self.tab.page_title() self.tab.page_title()
} }
pub fn tab_page_description(&self) -> GString { pub fn tab_page_description(&self) -> Option<GString> {
self.tab.page_description() self.tab.page_description()
} }

View File

@ -150,7 +150,7 @@ impl Tab {
} }
// Getters // Getters
pub fn page_title(&self) -> GString { pub fn page_title(&self) -> Option<GString> {
// Get current page // Get current page
if let Some(page_number) = self.widget.current_page() { if let Some(page_number) = self.widget.current_page() {
// Get default widget to extract it name as the ID for childs // Get default widget to extract it name as the ID for childs
@ -159,15 +159,15 @@ impl Tab {
let id = &widget.widget_name(); let id = &widget.widget_name();
// Get page by widget ID // Get page by widget ID
if let Some(page) = self.pages.borrow().get(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<GString> {
// Get current page // Get current page
if let Some(page_number) = self.widget.current_page() { if let Some(page_number) = self.widget.current_page() {
// Get default widget to extract it name as the ID for childs // Get default widget to extract it name as the ID for childs
@ -176,12 +176,12 @@ impl Tab {
let id = &widget.widget_name(); let id = &widget.widget_name();
// Get page by widget ID // Get page by widget ID
if let Some(page) = self.pages.borrow().get(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 { pub fn widget(&self) -> &Notebook {