mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-02-10 10:24:13 +00:00
draft image controller
This commit is contained in:
parent
52e7e0359f
commit
deafe0845d
@ -350,6 +350,36 @@ impl Page {
|
||||
action_update.activate(Some(&id));
|
||||
todo!()
|
||||
},
|
||||
"image/png" | "image/gif" | "image/jpeg" | "image/webp" => {
|
||||
// Update meta
|
||||
meta.borrow_mut().status = Some(Status::Success);
|
||||
meta.borrow_mut().title = Some(gformat!("Picture")); // @TODO
|
||||
meta.borrow_mut().mime = match mime.as_str() {
|
||||
"image/png" => Some(Mime::ImagePng),
|
||||
"image/gif" => Some(Mime::ImageGif),
|
||||
"image/jpeg" => Some(Mime::ImageJpeg),
|
||||
"image/webp" => Some(Mime::ImageWebp),
|
||||
_ => panic!()
|
||||
};
|
||||
|
||||
// Update content
|
||||
content.set_image(); // @TODO
|
||||
|
||||
// Add new history record
|
||||
let request = uri.to_str();
|
||||
|
||||
match navigation.history_current() {
|
||||
Some(current) => {
|
||||
if current != request {
|
||||
navigation.history_add(request);
|
||||
}
|
||||
}
|
||||
None => navigation.history_add(request),
|
||||
}
|
||||
|
||||
// Update window components
|
||||
action_update.activate(Some(&id));
|
||||
},
|
||||
_ => {
|
||||
// Define common data
|
||||
let status = Status::Failure;
|
||||
|
@ -1,7 +1,8 @@
|
||||
// @TODO mod image;
|
||||
mod image;
|
||||
mod status;
|
||||
mod text;
|
||||
|
||||
use image::Image;
|
||||
use status::Status;
|
||||
use text::Text;
|
||||
|
||||
@ -33,6 +34,14 @@ impl Content {
|
||||
}
|
||||
|
||||
// Actions
|
||||
pub fn set_image(&self) {
|
||||
self.clean();
|
||||
|
||||
let image = Image::new();
|
||||
|
||||
self.gobject.append(image.gobject());
|
||||
}
|
||||
|
||||
pub fn set_status_failure(&self, title: &str, description: &str) {
|
||||
self.clean();
|
||||
|
||||
|
19
src/app/browser/window/tab/item/page/content/image.rs
Normal file
19
src/app/browser/window/tab/item/page/content/image.rs
Normal file
@ -0,0 +1,19 @@
|
||||
use gtk::Picture;
|
||||
|
||||
pub struct Image {
|
||||
gobject: Picture,
|
||||
}
|
||||
|
||||
impl Image {
|
||||
// Construct
|
||||
pub fn new() -> Self {
|
||||
Self {
|
||||
gobject: Picture::new(),
|
||||
}
|
||||
}
|
||||
|
||||
// Getters
|
||||
pub fn gobject(&self) -> &Picture {
|
||||
&self.gobject
|
||||
}
|
||||
}
|
@ -5,6 +5,10 @@ use gtk::glib::GString;
|
||||
pub enum Mime {
|
||||
TextGemini,
|
||||
TextPlain,
|
||||
ImagePng,
|
||||
ImageGif,
|
||||
ImageJpeg,
|
||||
ImageWebp,
|
||||
}
|
||||
|
||||
// Internal page status (not related with gemini status code)
|
||||
|
Loading…
x
Reference in New Issue
Block a user