mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-02-11 02:44:15 +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));
|
action_update.activate(Some(&id));
|
||||||
todo!()
|
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
|
// Define common data
|
||||||
let status = Status::Failure;
|
let status = Status::Failure;
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
// @TODO mod image;
|
mod image;
|
||||||
mod status;
|
mod status;
|
||||||
mod text;
|
mod text;
|
||||||
|
|
||||||
|
use image::Image;
|
||||||
use status::Status;
|
use status::Status;
|
||||||
use text::Text;
|
use text::Text;
|
||||||
|
|
||||||
@ -33,6 +34,14 @@ impl Content {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Actions
|
// 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) {
|
pub fn set_status_failure(&self, title: &str, description: &str) {
|
||||||
self.clean();
|
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 {
|
pub enum Mime {
|
||||||
TextGemini,
|
TextGemini,
|
||||||
TextPlain,
|
TextPlain,
|
||||||
|
ImagePng,
|
||||||
|
ImageGif,
|
||||||
|
ImageJpeg,
|
||||||
|
ImageWebp,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Internal page status (not related with gemini status code)
|
// Internal page status (not related with gemini status code)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user