update totals on loading

This commit is contained in:
yggverse 2024-10-29 19:20:25 +02:00
parent 1d03e98b89
commit 6447b2279f
3 changed files with 34 additions and 23 deletions

View file

@ -34,27 +34,23 @@ impl Content {
// Actions
pub fn set_image(&self, buffer: &Pixbuf) {
self.clean();
let image = Image::new_from_pixbuf(buffer);
self.gobject.append(image.gobject());
}
pub fn set_status_failure(&self, title: Option<&str>, description: Option<&str>) {
pub fn set_status_failure(&self, title: Option<&str>, description: Option<&str>) -> Status {
self.clean();
let status_default = Status::new_failure(title, description);
self.gobject.append(status_default.gobject());
let status = Status::new_failure(title, description);
self.gobject.append(status.gobject());
status
}
/// Loading placeholder
pub fn set_status_loading(&self, title: Option<&str>, description: Option<&str>) {
pub fn set_status_loading(&self, title: Option<&str>, description: Option<&str>) -> Status {
self.clean();
let status_default = Status::new_loading(title, description);
self.gobject.append(status_default.gobject());
let status = Status::new_loading(title, description);
self.gobject.append(status.gobject());
status
}
/// Default reading widget for [Gemtext](https://geminiprotocol.net/docs/gemtext.gmi),

View file

@ -13,22 +13,33 @@ pub struct Status {
impl Status {
// Constructors
/// Create new default failure component
/// Create new failure preset
///
/// Useful as placeholder widget for error handlers
pub fn new_failure(title: Option<&str>, description: Option<&str>) -> Self {
Self {
gobject: Failure::new(title, description).gobject().clone(),
}
}
/// Create new default loading component
/// Create new loading preset
///
/// Useful as the placeholder widget for async operations
/// Useful as placeholder widget for async operations
pub fn new_loading(title: Option<&str>, description: Option<&str>) -> Self {
Self {
gobject: Loading::new(title, description).gobject().clone(),
}
}
// Setters
/// Set new description for status component
///
/// Useful for loading widgets to update byte totals and other dynamically changed information
pub fn set_description(&self, description: Option<&str>) {
self.gobject.set_description(description);
}
// Getters
pub fn gobject(&self) -> &StatusPage {