Update gtk-rs

This brings us a neat new function, `imp()`,
that lets us drop `from_instance()` everywhere.
This commit is contained in:
Christopher Davis 2021-12-29 14:02:48 -08:00
parent 400672b6b6
commit 56a47fb447
4 changed files with 48 additions and 48 deletions

54
Cargo.lock generated
View file

@ -186,7 +186,7 @@ dependencies = [
[[package]] [[package]]
name = "cairo-rs" name = "cairo-rs"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cairo-sys-rs 0.15.0", "cairo-sys-rs 0.15.0",
@ -209,7 +209,7 @@ dependencies = [
[[package]] [[package]]
name = "cairo-sys-rs" name = "cairo-sys-rs"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"glib-sys 0.15.0", "glib-sys 0.15.0",
"libc", "libc",
@ -444,7 +444,7 @@ dependencies = [
[[package]] [[package]]
name = "gdk-pixbuf" name = "gdk-pixbuf"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"gdk-pixbuf-sys", "gdk-pixbuf-sys",
@ -456,7 +456,7 @@ dependencies = [
[[package]] [[package]]
name = "gdk-pixbuf-sys" name = "gdk-pixbuf-sys"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"gio-sys", "gio-sys",
"glib-sys 0.15.0", "glib-sys 0.15.0",
@ -468,7 +468,7 @@ dependencies = [
[[package]] [[package]]
name = "gdk4" name = "gdk4"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#78bb52b37f3babf67b6ab2857d42536169e5926a" source = "git+https://github.com/gtk-rs/gtk4-rs#465be0bcbf0a3d21be75e52d9a279c2fe2e5d70b"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cairo-rs 0.15.0", "cairo-rs 0.15.0",
@ -483,7 +483,7 @@ dependencies = [
[[package]] [[package]]
name = "gdk4-sys" name = "gdk4-sys"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#78bb52b37f3babf67b6ab2857d42536169e5926a" source = "git+https://github.com/gtk-rs/gtk4-rs#465be0bcbf0a3d21be75e52d9a279c2fe2e5d70b"
dependencies = [ dependencies = [
"cairo-sys-rs 0.15.0", "cairo-sys-rs 0.15.0",
"gdk-pixbuf-sys", "gdk-pixbuf-sys",
@ -498,7 +498,7 @@ dependencies = [
[[package]] [[package]]
name = "gdk4-wayland" name = "gdk4-wayland"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#78bb52b37f3babf67b6ab2857d42536169e5926a" source = "git+https://github.com/gtk-rs/gtk4-rs#465be0bcbf0a3d21be75e52d9a279c2fe2e5d70b"
dependencies = [ dependencies = [
"gdk4", "gdk4",
"gdk4-wayland-sys", "gdk4-wayland-sys",
@ -510,7 +510,7 @@ dependencies = [
[[package]] [[package]]
name = "gdk4-wayland-sys" name = "gdk4-wayland-sys"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#78bb52b37f3babf67b6ab2857d42536169e5926a" source = "git+https://github.com/gtk-rs/gtk4-rs#465be0bcbf0a3d21be75e52d9a279c2fe2e5d70b"
dependencies = [ dependencies = [
"glib-sys 0.15.0", "glib-sys 0.15.0",
"libc", "libc",
@ -520,7 +520,7 @@ dependencies = [
[[package]] [[package]]
name = "gdk4-x11" name = "gdk4-x11"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#78bb52b37f3babf67b6ab2857d42536169e5926a" source = "git+https://github.com/gtk-rs/gtk4-rs#465be0bcbf0a3d21be75e52d9a279c2fe2e5d70b"
dependencies = [ dependencies = [
"gdk4", "gdk4",
"gdk4-x11-sys", "gdk4-x11-sys",
@ -532,7 +532,7 @@ dependencies = [
[[package]] [[package]]
name = "gdk4-x11-sys" name = "gdk4-x11-sys"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#78bb52b37f3babf67b6ab2857d42536169e5926a" source = "git+https://github.com/gtk-rs/gtk4-rs#465be0bcbf0a3d21be75e52d9a279c2fe2e5d70b"
dependencies = [ dependencies = [
"gdk4-sys", "gdk4-sys",
"glib-sys 0.15.0", "glib-sys 0.15.0",
@ -574,7 +574,7 @@ dependencies = [
[[package]] [[package]]
name = "gio" name = "gio"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"futures-channel", "futures-channel",
@ -590,7 +590,7 @@ dependencies = [
[[package]] [[package]]
name = "gio-sys" name = "gio-sys"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"glib-sys 0.15.0", "glib-sys 0.15.0",
"gobject-sys 0.15.0", "gobject-sys 0.15.0",
@ -621,7 +621,7 @@ dependencies = [
[[package]] [[package]]
name = "glib" name = "glib"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"futures-channel", "futures-channel",
@ -655,7 +655,7 @@ dependencies = [
[[package]] [[package]]
name = "glib-macros" name = "glib-macros"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"heck 0.4.0", "heck 0.4.0",
@ -679,7 +679,7 @@ dependencies = [
[[package]] [[package]]
name = "glib-sys" name = "glib-sys"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"libc", "libc",
"system-deps 6.0.0", "system-deps 6.0.0",
@ -699,7 +699,7 @@ dependencies = [
[[package]] [[package]]
name = "gobject-sys" name = "gobject-sys"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"glib-sys 0.15.0", "glib-sys 0.15.0",
"libc", "libc",
@ -709,7 +709,7 @@ dependencies = [
[[package]] [[package]]
name = "graphene-rs" name = "graphene-rs"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"glib 0.15.0", "glib 0.15.0",
"graphene-sys", "graphene-sys",
@ -719,7 +719,7 @@ dependencies = [
[[package]] [[package]]
name = "graphene-sys" name = "graphene-sys"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"glib-sys 0.15.0", "glib-sys 0.15.0",
"libc", "libc",
@ -730,7 +730,7 @@ dependencies = [
[[package]] [[package]]
name = "gsk4" name = "gsk4"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#78bb52b37f3babf67b6ab2857d42536169e5926a" source = "git+https://github.com/gtk-rs/gtk4-rs#465be0bcbf0a3d21be75e52d9a279c2fe2e5d70b"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cairo-rs 0.15.0", "cairo-rs 0.15.0",
@ -745,7 +745,7 @@ dependencies = [
[[package]] [[package]]
name = "gsk4-sys" name = "gsk4-sys"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#78bb52b37f3babf67b6ab2857d42536169e5926a" source = "git+https://github.com/gtk-rs/gtk4-rs#465be0bcbf0a3d21be75e52d9a279c2fe2e5d70b"
dependencies = [ dependencies = [
"cairo-sys-rs 0.15.0", "cairo-sys-rs 0.15.0",
"gdk4-sys", "gdk4-sys",
@ -766,7 +766,7 @@ checksum = "1874c48e670519ce192093ac906c08a6dde7cb2d18b28722ef237726a39c3a63"
[[package]] [[package]]
name = "gtk4" name = "gtk4"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#78bb52b37f3babf67b6ab2857d42536169e5926a" source = "git+https://github.com/gtk-rs/gtk4-rs#465be0bcbf0a3d21be75e52d9a279c2fe2e5d70b"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cairo-rs 0.15.0", "cairo-rs 0.15.0",
@ -788,7 +788,7 @@ dependencies = [
[[package]] [[package]]
name = "gtk4-macros" name = "gtk4-macros"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#78bb52b37f3babf67b6ab2857d42536169e5926a" source = "git+https://github.com/gtk-rs/gtk4-rs#465be0bcbf0a3d21be75e52d9a279c2fe2e5d70b"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"proc-macro-crate", "proc-macro-crate",
@ -801,7 +801,7 @@ dependencies = [
[[package]] [[package]]
name = "gtk4-sys" name = "gtk4-sys"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#78bb52b37f3babf67b6ab2857d42536169e5926a" source = "git+https://github.com/gtk-rs/gtk4-rs#465be0bcbf0a3d21be75e52d9a279c2fe2e5d70b"
dependencies = [ dependencies = [
"cairo-sys-rs 0.15.0", "cairo-sys-rs 0.15.0",
"gdk-pixbuf-sys", "gdk-pixbuf-sys",
@ -882,7 +882,7 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]] [[package]]
name = "libadwaita" name = "libadwaita"
version = "0.1.0-alpha-6" version = "0.1.0-alpha-6"
source = "git+https://gitlab.gnome.org/World/Rust/libadwaita-rs.git#cace3c604ccb97b36df30a96652fe5a1994e41d7" source = "git+https://gitlab.gnome.org/World/Rust/libadwaita-rs.git#a37c4f5644a518dbe0b9f0095e73519f0eb3dec5"
dependencies = [ dependencies = [
"gdk-pixbuf", "gdk-pixbuf",
"gdk4", "gdk4",
@ -898,7 +898,7 @@ dependencies = [
[[package]] [[package]]
name = "libadwaita-sys" name = "libadwaita-sys"
version = "0.1.0-alpha-6" version = "0.1.0-alpha-6"
source = "git+https://gitlab.gnome.org/World/Rust/libadwaita-rs.git#cace3c604ccb97b36df30a96652fe5a1994e41d7" source = "git+https://gitlab.gnome.org/World/Rust/libadwaita-rs.git#a37c4f5644a518dbe0b9f0095e73519f0eb3dec5"
dependencies = [ dependencies = [
"gdk4-sys", "gdk4-sys",
"gio-sys", "gio-sys",
@ -1030,7 +1030,7 @@ checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5"
[[package]] [[package]]
name = "pango" name = "pango"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"glib 0.15.0", "glib 0.15.0",
@ -1042,7 +1042,7 @@ dependencies = [
[[package]] [[package]]
name = "pango-sys" name = "pango-sys"
version = "0.15.0" version = "0.15.0"
source = "git+https://github.com/gtk-rs/gtk-rs-core#0527cfe1cddbec27917661f3980f0eded68e5a3a" source = "git+https://github.com/gtk-rs/gtk-rs-core#c7ca022bc549eb2dc97736f4ff446e8ac6ac099e"
dependencies = [ dependencies = [
"glib-sys 0.15.0", "glib-sys 0.15.0",
"gobject-sys 0.15.0", "gobject-sys 0.15.0",

View file

@ -173,13 +173,13 @@ glib::wrapper! {
impl LpImage { impl LpImage {
pub fn file(&self) -> Option<gio::File> { pub fn file(&self) -> Option<gio::File> {
let imp = imp::LpImage::from_instance(self); let imp = self.imp();
imp.file.borrow().clone() imp.file.borrow().clone()
} }
pub fn set_file(&self, file: &gio::File) { pub fn set_file(&self, file: &gio::File) {
let imp = imp::LpImage::from_instance(self); let imp = self.imp();
match gdk::Texture::from_file(file) { match gdk::Texture::from_file(file) {
Ok(texture) => { Ok(texture) => {
@ -197,12 +197,12 @@ impl LpImage {
} }
pub fn image_width(&self) -> i32 { pub fn image_width(&self) -> i32 {
let imp = imp::LpImage::from_instance(&self); let imp = self.imp();
imp.image_width.get() imp.image_width.get()
} }
pub fn image_height(&self) -> i32 { pub fn image_height(&self) -> i32 {
let imp = imp::LpImage::from_instance(&self); let imp = self.imp();
imp.image_height.get() imp.image_height.get()
} }
} }

View file

@ -146,7 +146,7 @@ glib::wrapper! {
impl LpImageView { impl LpImageView {
pub fn set_image_from_file(&self, file: &gio::File) -> anyhow::Result<(i32, i32)> { pub fn set_image_from_file(&self, file: &gio::File) -> anyhow::Result<(i32, i32)> {
let imp = imp::LpImageView::from_instance(&self); let imp = self.imp();
if let Some(current_file) = imp.picture.file() { if let Some(current_file) = imp.picture.file() {
if current_file.path().as_deref() == file.path().as_deref() { if current_file.path().as_deref() == file.path().as_deref() {
@ -170,7 +170,7 @@ impl LpImageView {
} }
fn set_parent_from_file(&self, file: &gio::File) { fn set_parent_from_file(&self, file: &gio::File) {
let imp = imp::LpImageView::from_instance(&self); let imp = self.imp();
if let Some(parent) = file.parent() { if let Some(parent) = file.parent() {
let parent_path = parent.path().map(|p| p.to_str().unwrap().to_string()); let parent_path = parent.path().map(|p| p.to_str().unwrap().to_string());
@ -231,7 +231,7 @@ impl LpImageView {
} }
fn update_image(&self) { fn update_image(&self) {
let imp = imp::LpImageView::from_instance(&self); let imp = self.imp();
let path = &format!( let path = &format!(
"{}/{}", "{}/{}",
@ -248,21 +248,21 @@ impl LpImageView {
} }
pub fn next(&self) { pub fn next(&self) {
let imp = imp::LpImageView::from_instance(&self); let imp = self.imp();
// TODO: Replace with `Cell::update()` once stabilized // TODO: Replace with `Cell::update()` once stabilized
imp.index.set(imp.index.get() + 1); imp.index.set(imp.index.get() + 1);
self.update_image(); self.update_image();
} }
pub fn previous(&self) { pub fn previous(&self) {
let imp = imp::LpImageView::from_instance(&self); let imp = self.imp();
// TODO: Replace with `Cell::update()` once stabilized // TODO: Replace with `Cell::update()` once stabilized
imp.index.set(imp.index.get() - 1); imp.index.set(imp.index.get() - 1);
self.update_image(); self.update_image();
} }
pub fn update_action_state(&self) { pub fn update_action_state(&self) {
let imp = imp::LpImageView::from_instance(&self); let imp = self.imp();
let index = imp.index.get(); let index = imp.index.get();
self.action_set_enabled("iv.next", index < imp.directory_pictures.borrow().len() - 1); self.action_set_enabled("iv.next", index < imp.directory_pictures.borrow().len() - 1);
self.action_set_enabled("iv.previous", index > 0); self.action_set_enabled("iv.previous", index > 0);
@ -297,7 +297,7 @@ impl LpImageView {
} }
pub fn print(&self) -> anyhow::Result<()> { pub fn print(&self) -> anyhow::Result<()> {
let imp = imp::LpImageView::from_instance(&self); let imp = self.imp();
let operation = gtk::PrintOperation::new(); let operation = gtk::PrintOperation::new();
let path = &format!( let path = &format!(
@ -338,17 +338,17 @@ impl LpImageView {
} }
pub fn uri(&self) -> Option<String> { pub fn uri(&self) -> Option<String> {
let imp = imp::LpImageView::from_instance(&self); let imp = self.imp();
imp.uri.borrow().to_owned() imp.uri.borrow().to_owned()
} }
pub fn filename(&self) -> Option<String> { pub fn filename(&self) -> Option<String> {
let imp = imp::LpImageView::from_instance(&self); let imp = self.imp();
imp.filename.borrow().to_owned() imp.filename.borrow().to_owned()
} }
pub fn show_popover_at(&self, x: f64, y: f64) { pub fn show_popover_at(&self, x: f64, y: f64) {
let imp = imp::LpImageView::from_instance(&self); let imp = self.imp();
let rect = gdk::Rectangle::new(x as i32, y as i32, 0, 0); let rect = gdk::Rectangle::new(x as i32, y as i32, 0, 0);

View file

@ -207,7 +207,7 @@ impl LpWindow {
} }
fn toggle_fullscreen(&self, fullscreen: bool) { fn toggle_fullscreen(&self, fullscreen: bool) {
let imp = imp::LpWindow::from_instance(&self); let imp = self.imp();
if fullscreen { if fullscreen {
imp.flap.set_fold_policy(adw::FlapFoldPolicy::Always); imp.flap.set_fold_policy(adw::FlapFoldPolicy::Always);
@ -262,7 +262,7 @@ impl LpWindow {
} }
fn open_with(&self) { fn open_with(&self) {
let imp = imp::LpWindow::from_instance(self); let imp = self.imp();
if let Some(uri) = imp.image_view.uri() { if let Some(uri) = imp.image_view.uri() {
std::process::Command::new("xdg-open") std::process::Command::new("xdg-open")
@ -275,7 +275,7 @@ impl LpWindow {
} }
fn set_wallpaper(&self) { fn set_wallpaper(&self) {
let imp = imp::LpWindow::from_instance(self); let imp = self.imp();
if let Err(e) = imp.image_view.set_wallpaper() { if let Err(e) = imp.image_view.set_wallpaper() {
log::error!("Failed to set wallpaper: {}", e); log::error!("Failed to set wallpaper: {}", e);
@ -283,7 +283,7 @@ impl LpWindow {
} }
fn print(&self) { fn print(&self) {
let imp = imp::LpWindow::from_instance(self); let imp = self.imp();
if let Err(e) = imp.image_view.print() { if let Err(e) = imp.image_view.print() {
log::error!("Failed to print file: {}", e); log::error!("Failed to print file: {}", e);
@ -291,7 +291,7 @@ impl LpWindow {
} }
fn show_toast(&self, text: &impl AsRef<str>, priority: adw::ToastPriority) { fn show_toast(&self, text: &impl AsRef<str>, priority: adw::ToastPriority) {
let imp = imp::LpWindow::from_instance(self); let imp = self.imp();
let toast = adw::Toast::new(text.as_ref()); let toast = adw::Toast::new(text.as_ref());
toast.set_priority(priority); toast.set_priority(priority);
@ -300,7 +300,7 @@ impl LpWindow {
} }
pub fn set_image_from_file(&self, file: &gio::File, resize: bool) { pub fn set_image_from_file(&self, file: &gio::File, resize: bool) {
let imp = imp::LpWindow::from_instance(self); let imp = self.imp();
log::debug!("Loading file: {}", file.uri().to_string()); log::debug!("Loading file: {}", file.uri().to_string());
match imp.image_view.set_image_from_file(file) { match imp.image_view.set_image_from_file(file) {
@ -326,7 +326,7 @@ impl LpWindow {
// Adapted from https://gitlab.gnome.org/GNOME/eog/-/blob/master/src/eog-window.c:eog_window_obtain_desired_size // Adapted from https://gitlab.gnome.org/GNOME/eog/-/blob/master/src/eog-window.c:eog_window_obtain_desired_size
pub fn resize_from_dimensions(&self, img_width: i32, img_height: i32) { pub fn resize_from_dimensions(&self, img_width: i32, img_height: i32) {
let imp = imp::LpWindow::from_instance(self); let imp = self.imp();
let mut final_width = img_width; let mut final_width = img_width;
let mut final_height = img_height; let mut final_height = img_height;