Stop using .get() for template children

We can drop this completely now that Deref is implemented.
This commit is contained in:
Christopher Davis 2021-01-13 23:16:02 -08:00
parent f1fa94fca7
commit 28bf2b9213
3 changed files with 94 additions and 121 deletions

178
Cargo.lock generated
View file

@ -11,14 +11,14 @@ dependencies = [
[[package]] [[package]]
name = "anyhow" name = "anyhow"
version = "1.0.36" version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68803225a7b13e47191bab76f2687382b60d259e8cf37f6e1893658b84bb9479" checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1"
[[package]] [[package]]
name = "ashpd" name = "ashpd"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/bilelmoussaoui/ashpd#50dadd3782c4193a3956780bb30d56fffdf257ee" source = "git+https://github.com/bilelmoussaoui/ashpd#d7ec2103565301b8476d6706ef34090e197b021c"
dependencies = [ dependencies = [
"enumflags2", "enumflags2",
"serde", "serde",
@ -75,9 +75,9 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
[[package]] [[package]]
name = "byteorder" name = "byteorder"
version = "1.3.4" version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"
[[package]] [[package]]
name = "cache-padded" name = "cache-padded"
@ -88,7 +88,7 @@ checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba"
[[package]] [[package]]
name = "cairo-rs" name = "cairo-rs"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cairo-sys-rs", "cairo-sys-rs",
@ -101,7 +101,7 @@ dependencies = [
[[package]] [[package]]
name = "cairo-sys-rs" name = "cairo-sys-rs"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"glib-sys", "glib-sys",
"libc", "libc",
@ -146,9 +146,9 @@ dependencies = [
[[package]] [[package]]
name = "derivative" name = "derivative"
version = "2.1.1" version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f" checksum = "eaed5874effa6cde088c644ddcdcb4ffd1511391c5be4fdd7a5ccd02c7e4a183"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -237,9 +237,9 @@ dependencies = [
[[package]] [[package]]
name = "futures" name = "futures"
version = "0.3.8" version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0" checksum = "309f13e3f4be6d5917178c84db67c0b9a09177ac16d4f9a7313a767a68adaa77"
dependencies = [ dependencies = [
"futures-channel", "futures-channel",
"futures-core", "futures-core",
@ -252,9 +252,9 @@ dependencies = [
[[package]] [[package]]
name = "futures-channel" name = "futures-channel"
version = "0.3.8" version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64" checksum = "7a3b03bd32f6ec7885edeb99acd1e47e20e34fd4dfd3c6deed6fcac8a9d28f6a"
dependencies = [ dependencies = [
"futures-core", "futures-core",
"futures-sink", "futures-sink",
@ -262,15 +262,15 @@ dependencies = [
[[package]] [[package]]
name = "futures-core" name = "futures-core"
version = "0.3.8" version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748" checksum = "ed8aeae2b6ab243ebabe6f54cd4cf53054d98883d5d326128af7d57a9ca5cd3d"
[[package]] [[package]]
name = "futures-executor" name = "futures-executor"
version = "0.3.8" version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65" checksum = "3f7836b36b7533d16fd5937311d98ba8965ab81030de8b0024c299dd5d51fb9b"
dependencies = [ dependencies = [
"futures-core", "futures-core",
"futures-task", "futures-task",
@ -279,9 +279,9 @@ dependencies = [
[[package]] [[package]]
name = "futures-io" name = "futures-io"
version = "0.3.8" version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb" checksum = "d41234e71d5e8ca73d01563974ef6f50e516d71e18f1a2f1184742e31f5d469f"
[[package]] [[package]]
name = "futures-lite" name = "futures-lite"
@ -300,9 +300,9 @@ dependencies = [
[[package]] [[package]]
name = "futures-macro" name = "futures-macro"
version = "0.3.8" version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556" checksum = "3520e0eb4e704e88d771b92d51273ee212997f0d8282f17f5d8ff1cb39104e42"
dependencies = [ dependencies = [
"proc-macro-hack", "proc-macro-hack",
"proc-macro2", "proc-macro2",
@ -312,24 +312,24 @@ dependencies = [
[[package]] [[package]]
name = "futures-sink" name = "futures-sink"
version = "0.3.8" version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d" checksum = "c72d188479368953c6c8c7140e40d7a4401674ab3b98a41e60e515d6cbdbe5de"
[[package]] [[package]]
name = "futures-task" name = "futures-task"
version = "0.3.8" version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d" checksum = "08944cea9021170d383287169859c0ca8147d9ec285978393109954448f33cc7"
dependencies = [ dependencies = [
"once_cell", "once_cell",
] ]
[[package]] [[package]]
name = "futures-util" name = "futures-util"
version = "0.3.8" version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2" checksum = "d3dd206efbe2ca683b2ce138ccdf61e1b0a63f5816dcedc9d8654c500ba0cea6"
dependencies = [ dependencies = [
"futures-channel", "futures-channel",
"futures-core", "futures-core",
@ -338,7 +338,7 @@ dependencies = [
"futures-sink", "futures-sink",
"futures-task", "futures-task",
"memchr", "memchr",
"pin-project", "pin-project-lite",
"pin-utils", "pin-utils",
"proc-macro-hack", "proc-macro-hack",
"proc-macro-nested", "proc-macro-nested",
@ -348,7 +348,7 @@ dependencies = [
[[package]] [[package]]
name = "gdk-pixbuf" name = "gdk-pixbuf"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"gdk-pixbuf-sys", "gdk-pixbuf-sys",
"gio", "gio",
@ -359,7 +359,7 @@ dependencies = [
[[package]] [[package]]
name = "gdk-pixbuf-sys" name = "gdk-pixbuf-sys"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"gio-sys", "gio-sys",
"glib-sys", "glib-sys",
@ -371,7 +371,7 @@ dependencies = [
[[package]] [[package]]
name = "gdk4" name = "gdk4"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#bfae73fbe0443f6445570115e485b16ca18bf316" source = "git+https://github.com/gtk-rs/gtk4-rs#af461ffc516c957fa0df83a6593773725d061abe"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cairo-rs", "cairo-rs",
@ -386,7 +386,7 @@ dependencies = [
[[package]] [[package]]
name = "gdk4-sys" name = "gdk4-sys"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#bfae73fbe0443f6445570115e485b16ca18bf316" source = "git+https://github.com/gtk-rs/gtk4-rs#af461ffc516c957fa0df83a6593773725d061abe"
dependencies = [ dependencies = [
"cairo-sys-rs", "cairo-sys-rs",
"gdk-pixbuf-sys", "gdk-pixbuf-sys",
@ -420,14 +420,12 @@ dependencies = [
[[package]] [[package]]
name = "gio" name = "gio"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"futures",
"futures-channel", "futures-channel",
"futures-core", "futures-core",
"futures-io", "futures-io",
"futures-util",
"gio-sys", "gio-sys",
"glib", "glib",
"libc", "libc",
@ -438,7 +436,7 @@ dependencies = [
[[package]] [[package]]
name = "gio-sys" name = "gio-sys"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"glib-sys", "glib-sys",
"gobject-sys", "gobject-sys",
@ -450,14 +448,13 @@ dependencies = [
[[package]] [[package]]
name = "glib" name = "glib"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"futures-channel", "futures-channel",
"futures-core", "futures-core",
"futures-executor", "futures-executor",
"futures-task", "futures-task",
"futures-util",
"glib-macros", "glib-macros",
"glib-sys", "glib-sys",
"gobject-sys", "gobject-sys",
@ -469,7 +466,7 @@ dependencies = [
[[package]] [[package]]
name = "glib-macros" name = "glib-macros"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"heck", "heck",
@ -484,7 +481,7 @@ dependencies = [
[[package]] [[package]]
name = "glib-sys" name = "glib-sys"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"libc", "libc",
"system-deps", "system-deps",
@ -514,7 +511,7 @@ dependencies = [
[[package]] [[package]]
name = "gobject-sys" name = "gobject-sys"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"glib-sys", "glib-sys",
"libc", "libc",
@ -524,7 +521,7 @@ dependencies = [
[[package]] [[package]]
name = "graphene-rs" name = "graphene-rs"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"glib", "glib",
"graphene-sys", "graphene-sys",
@ -534,7 +531,7 @@ dependencies = [
[[package]] [[package]]
name = "graphene-sys" name = "graphene-sys"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"glib-sys", "glib-sys",
"libc", "libc",
@ -545,7 +542,7 @@ dependencies = [
[[package]] [[package]]
name = "gsk4" name = "gsk4"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#bfae73fbe0443f6445570115e485b16ca18bf316" source = "git+https://github.com/gtk-rs/gtk4-rs#af461ffc516c957fa0df83a6593773725d061abe"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cairo-rs", "cairo-rs",
@ -560,7 +557,7 @@ dependencies = [
[[package]] [[package]]
name = "gsk4-sys" name = "gsk4-sys"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#bfae73fbe0443f6445570115e485b16ca18bf316" source = "git+https://github.com/gtk-rs/gtk4-rs#af461ffc516c957fa0df83a6593773725d061abe"
dependencies = [ dependencies = [
"cairo-sys-rs", "cairo-sys-rs",
"gdk4-sys", "gdk4-sys",
@ -581,11 +578,12 @@ checksum = "1874c48e670519ce192093ac906c08a6dde7cb2d18b28722ef237726a39c3a63"
[[package]] [[package]]
name = "gtk4" name = "gtk4"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#bfae73fbe0443f6445570115e485b16ca18bf316" source = "git+https://github.com/gtk-rs/gtk4-rs#af461ffc516c957fa0df83a6593773725d061abe"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cairo-rs", "cairo-rs",
"field-offset", "field-offset",
"futures-channel",
"gdk-pixbuf", "gdk-pixbuf",
"gdk4", "gdk4",
"gio", "gio",
@ -602,7 +600,7 @@ dependencies = [
[[package]] [[package]]
name = "gtk4-macros" name = "gtk4-macros"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#bfae73fbe0443f6445570115e485b16ca18bf316" source = "git+https://github.com/gtk-rs/gtk4-rs#af461ffc516c957fa0df83a6593773725d061abe"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"heck", "heck",
@ -617,7 +615,7 @@ dependencies = [
[[package]] [[package]]
name = "gtk4-sys" name = "gtk4-sys"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#bfae73fbe0443f6445570115e485b16ca18bf316" source = "git+https://github.com/gtk-rs/gtk4-rs#af461ffc516c957fa0df83a6593773725d061abe"
dependencies = [ dependencies = [
"cairo-sys-rs", "cairo-sys-rs",
"gdk-pixbuf-sys", "gdk-pixbuf-sys",
@ -685,9 +683,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.81" version = "0.2.82"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb" checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929"
[[package]] [[package]]
name = "libhandy4" name = "libhandy4"
@ -735,9 +733,9 @@ dependencies = [
[[package]] [[package]]
name = "log" name = "log"
version = "0.4.11" version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" checksum = "fcf3805d4480bb5b86070dcfeb9e2cb2ebc148adb753c5cca5f884d1d65a42b2"
dependencies = [ dependencies = [
"cfg-if 0.1.10", "cfg-if 0.1.10",
] ]
@ -789,7 +787,7 @@ checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
[[package]] [[package]]
name = "pango" name = "pango"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"glib", "glib",
@ -801,7 +799,7 @@ dependencies = [
[[package]] [[package]]
name = "pango-sys" name = "pango-sys"
version = "0.13.0" version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#5bef67e514ed653f85e5486b01a1d601b8fc00b0" source = "git+https://github.com/gtk-rs/gtk-rs#e70aacff8ae34a7b5b57f9955490fa81f08e513c"
dependencies = [ dependencies = [
"glib-sys", "glib-sys",
"gobject-sys", "gobject-sys",
@ -815,31 +813,11 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
[[package]]
name = "pin-project"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "pin-project-lite" name = "pin-project-lite"
version = "0.2.0" version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c" checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827"
[[package]] [[package]]
name = "pin-utils" name = "pin-utils"
@ -917,9 +895,9 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
[[package]] [[package]]
name = "proc-macro-nested" name = "proc-macro-nested"
version = "0.1.6" version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
@ -947,9 +925,9 @@ dependencies = [
[[package]] [[package]]
name = "regex" name = "regex"
version = "1.4.2" version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c" checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a"
dependencies = [ dependencies = [
"aho-corasick", "aho-corasick",
"memchr", "memchr",
@ -959,9 +937,9 @@ dependencies = [
[[package]] [[package]]
name = "regex-syntax" name = "regex-syntax"
version = "0.6.21" version = "0.6.22"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189" checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581"
[[package]] [[package]]
name = "rustc_version" name = "rustc_version"
@ -995,18 +973,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.118" version = "1.0.119"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800" checksum = "9bdd36f49e35b61d49efd8aa7fc068fd295961fd2286d0b2ee9a4c7a14e99cc3"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.118" version = "1.0.119"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df" checksum = "552954ce79a059ddd5fd68c271592374bd15cab2274970380c000118aeffe1cd"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -1032,9 +1010,9 @@ checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
[[package]] [[package]]
name = "smallvec" name = "smallvec"
version = "1.5.1" version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae524f056d7d770e174287294f562e95044c68e88dec909a00d2094805db9d75" checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
[[package]] [[package]]
name = "strum" name = "strum"
@ -1056,9 +1034,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "1.0.55" version = "1.0.58"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a571a711dddd09019ccc628e1b17fe87c59b09d513c06c026877aa708334f37a" checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -1091,18 +1069,18 @@ dependencies = [
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "1.0.22" version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e" checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146"
dependencies = [ dependencies = [
"thiserror-impl", "thiserror-impl",
] ]
[[package]] [[package]]
name = "thiserror-impl" name = "thiserror-impl"
version = "1.0.22" version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56" checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -1111,9 +1089,9 @@ dependencies = [
[[package]] [[package]]
name = "thread_local" name = "thread_local"
version = "1.0.1" version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" checksum = "bb9bc092d0d51e76b2b19d9d85534ffc9ec2db959a2523cdae0697e2972cd447"
dependencies = [ dependencies = [
"lazy_static", "lazy_static",
] ]
@ -1211,9 +1189,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]] [[package]]
name = "zbus" name = "zbus"
version = "1.4.0" version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20f40cd23e28d41f01e464213b3c861186491ed6fb2d74e22ce582cc1714aacb" checksum = "40b4d4aa39daed4e32aed75f0c37b969184949a0fdfd5f2e1277abfda61f02a8"
dependencies = [ dependencies = [
"async-io", "async-io",
"byteorder", "byteorder",
@ -1234,9 +1212,9 @@ dependencies = [
[[package]] [[package]]
name = "zbus_macros" name = "zbus_macros"
version = "1.4.0" version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5ae85276b5b33f3121b5a1b8faef6eb18a0ce04876e20599e2d0b2112bf1ede" checksum = "87cc141cda72384bef359badf1808e391d3968f9299e8f3c3cbb78dafa1e0930"
dependencies = [ dependencies = [
"proc-macro-crate", "proc-macro-crate",
"proc-macro2", "proc-macro2",

View file

@ -129,20 +129,18 @@ mod imp {
fn constructed(&self, obj: &Self::Type) { fn constructed(&self, obj: &Self::Type) {
self.parent_constructed(obj); self.parent_constructed(obj);
obj.bind_property("header-visible", &self.headerbar.get(), "visible") obj.bind_property("header-visible", &*self.headerbar, "visible")
.flags(glib::BindingFlags::BIDIRECTIONAL) .flags(glib::BindingFlags::BIDIRECTIONAL)
.flags(glib::BindingFlags::SYNC_CREATE) .flags(glib::BindingFlags::SYNC_CREATE)
.build() .build()
.unwrap(); .unwrap();
self.click_gesture self.click_gesture
.get()
.connect_pressed(clone!(@weak obj => move |_, _, x, y| { .connect_pressed(clone!(@weak obj => move |_, _, x, y| {
obj.show_popover_at(x, y); obj.show_popover_at(x, y);
})); }));
self.press_gesture self.press_gesture
.get()
.connect_pressed(clone!(@weak obj => move |_, x, y| { .connect_pressed(clone!(@weak obj => move |_, x, y| {
obj.show_popover_at(x, y); obj.show_popover_at(x, y);
})); }));
@ -171,12 +169,12 @@ mod imp {
} }
subclass::Property("primary-menu-model", ..) => { subclass::Property("primary-menu-model", ..) => {
let model: Option<gio::MenuModel> = value.get().unwrap(); let model: Option<gio::MenuModel> = value.get().unwrap();
self.menu_button.get().set_menu_model(model.as_ref()); self.menu_button.set_menu_model(model.as_ref());
*self.menu_model.borrow_mut() = model; *self.menu_model.borrow_mut() = model;
} }
subclass::Property("popover-menu-model", ..) => { subclass::Property("popover-menu-model", ..) => {
let model: Option<gio::MenuModel> = value.get().unwrap(); let model: Option<gio::MenuModel> = value.get().unwrap();
self.popover.get().set_menu_model(model.as_ref()); self.popover.set_menu_model(model.as_ref());
*self.popover_menu_model.borrow_mut() = model; *self.popover_menu_model.borrow_mut() = model;
} }
_ => unimplemented!(), _ => unimplemented!(),
@ -197,7 +195,7 @@ mod imp {
impl WidgetImpl for IvImageView { impl WidgetImpl for IvImageView {
fn size_allocate(&self, widget: &Self::Type, width: i32, height: i32, baseline: i32) { fn size_allocate(&self, widget: &Self::Type, width: i32, height: i32, baseline: i32) {
self.parent_size_allocate(widget, width, height, baseline); self.parent_size_allocate(widget, width, height, baseline);
self.popover.get().present(); self.popover.present();
} }
} }
} }
@ -212,7 +210,7 @@ impl IvImageView {
pub fn set_image_from_file(&self, file: &gio::File) { pub fn set_image_from_file(&self, file: &gio::File) {
let imp = imp::IvImageView::from_instance(&self); let imp = imp::IvImageView::from_instance(&self);
imp.picture.get().set_file(Some(file)); imp.picture.set_file(Some(file));
} }
pub fn set_wallpaper(&self) -> anyhow::Result<()> { pub fn set_wallpaper(&self) -> anyhow::Result<()> {
@ -238,7 +236,7 @@ impl IvImageView {
pub fn print(&self) -> anyhow::Result<()> { pub fn print(&self) -> anyhow::Result<()> {
let imp = imp::IvImageView::from_instance(&self); let imp = imp::IvImageView::from_instance(&self);
let file = imp.picture.get().get_file().context("No file to print")?; let file = imp.picture.get_file().context("No file to print")?;
let operation = gtk::PrintOperation::new(); let operation = gtk::PrintOperation::new();
let path = file.get_path().context("No path for current file")?; let path = file.get_path().context("No path for current file")?;
let pb = gdk_pixbuf::Pixbuf::from_file(path)?; let pb = gdk_pixbuf::Pixbuf::from_file(path)?;
@ -273,13 +271,12 @@ impl IvImageView {
pub fn uri(&self) -> Option<String> { pub fn uri(&self) -> Option<String> {
let imp = imp::IvImageView::from_instance(&self); let imp = imp::IvImageView::from_instance(&self);
let file = imp.picture.get().get_file()?; let file = imp.picture.get_file()?;
Some(file.get_uri().to_string()) Some(file.get_uri().to_string())
} }
pub fn show_popover_at(&self, x: f64, y: f64) { pub fn show_popover_at(&self, x: f64, y: f64) {
let imp = imp::IvImageView::from_instance(&self); let imp = imp::IvImageView::from_instance(&self);
let popover = imp.popover.get();
let rect = gdk::Rectangle { let rect = gdk::Rectangle {
x: x as i32, x: x as i32,
@ -288,7 +285,7 @@ impl IvImageView {
height: 0, height: 0,
}; };
popover.set_pointing_to(&rect); imp.popover.set_pointing_to(&rect);
popover.popup(); imp.popover.popup();
} }
} }

View file

@ -99,7 +99,6 @@ mod imp {
obj.setup_actions(); obj.setup_actions();
self.status_page self.status_page
.get() // .get() is needed for now to use template children.
.set_icon_name(Some(&format!("{}-symbolic", config::APP_ID))); .set_icon_name(Some(&format!("{}-symbolic", config::APP_ID)));
// Set help overlay // Set help overlay
@ -112,16 +111,15 @@ mod imp {
// In this case, we need none to react to the gesture, // In this case, we need none to react to the gesture,
// so "_" is used in all 4 spots. // so "_" is used in all 4 spots.
self.open_gesture self.open_gesture
.get()
.connect_released(clone!(@weak obj => move |_, _, _, _| { .connect_released(clone!(@weak obj => move |_, _, _, _| {
obj.pick_file(); obj.pick_file();
})); }));
obj.bind_property("fullscreened", &self.image_view.get(), "header-visible") obj.bind_property("fullscreened", &*self.image_view, "header-visible")
.flags(glib::BindingFlags::SYNC_CREATE | glib::BindingFlags::BIDIRECTIONAL) .flags(glib::BindingFlags::SYNC_CREATE | glib::BindingFlags::BIDIRECTIONAL)
.build() .build()
.unwrap(); .unwrap();
obj.bind_property("fullscreened", &self.headerbar.get(), "visible") obj.bind_property("fullscreened", &*self.headerbar, "visible")
.flags( .flags(
glib::BindingFlags::SYNC_CREATE glib::BindingFlags::SYNC_CREATE
| glib::BindingFlags::BIDIRECTIONAL | glib::BindingFlags::BIDIRECTIONAL
@ -228,7 +226,7 @@ impl IvWindow {
fn open_with(&self) { fn open_with(&self) {
let imp = imp::IvWindow::from_instance(self); let imp = imp::IvWindow::from_instance(self);
if let Some(uri) = imp.image_view.get().uri() { if let Some(uri) = imp.image_view.uri() {
std::process::Command::new("xdg-open") std::process::Command::new("xdg-open")
.arg(uri) .arg(uri)
.output() .output()
@ -241,7 +239,7 @@ impl IvWindow {
fn set_wallpaper(&self) { fn set_wallpaper(&self) {
let imp = imp::IvWindow::from_instance(self); let imp = imp::IvWindow::from_instance(self);
if let Err(e) = imp.image_view.get().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);
} }
} }
@ -249,7 +247,7 @@ impl IvWindow {
fn print(&self) { fn print(&self) {
let imp = imp::IvWindow::from_instance(self); let imp = imp::IvWindow::from_instance(self);
if let Err(e) = imp.image_view.get().print() { if let Err(e) = imp.image_view.print() {
log::error!("Failed to print file: {}", e); log::error!("Failed to print file: {}", e);
} }
} }
@ -257,8 +255,8 @@ impl IvWindow {
pub fn set_image_from_file(&self, file: &gio::File) { pub fn set_image_from_file(&self, file: &gio::File) {
let imp = imp::IvWindow::from_instance(self); let imp = imp::IvWindow::from_instance(self);
imp.image_view.get().set_image_from_file(file); imp.image_view.set_image_from_file(file);
imp.stack.get().set_visible_child(&imp.image_view.get()); imp.stack.set_visible_child(&*imp.image_view);
log::debug!("Loading file: {}", file.get_uri().to_string()); log::debug!("Loading file: {}", file.get_uri().to_string());