update per latest gtk-rs changes

This commit is contained in:
Bilal Elmoussaoui 2021-01-10 00:57:38 +01:00
parent 9d82a33c80
commit c7b5ca9718
23 changed files with 264 additions and 271 deletions

273
Cargo.lock generated
View file

@ -77,14 +77,14 @@ dependencies = [
[[package]]
name = "anyhow"
version = "1.0.35"
version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c0df63cb2955042487fad3aefd2c6e3ae7389ac5dc1beb28921de0b69f779d4"
checksum = "ee67c11feeac938fae061b232e38e0b6d94f97a9df10e6271319325ac4c56a86"
[[package]]
name = "ashpd"
version = "0.1.0"
source = "git+https://github.com/bilelmoussaoui/ashpd#50dadd3782c4193a3956780bb30d56fffdf257ee"
source = "git+https://github.com/bilelmoussaoui/ashpd#d7ec2103565301b8476d6706ef34090e197b021c"
dependencies = [
"enumflags2",
"gdk4",
@ -189,7 +189,7 @@ dependencies = [
"memchr",
"num_cpus",
"once_cell",
"pin-project-lite 0.2.0",
"pin-project-lite 0.2.3",
"pin-utils",
"slab",
"wasm-bindgen-futures",
@ -352,9 +352,9 @@ checksum = "41aa2ec95ca3b5c54cf73c91acf06d24f4495d5f1b1c12506ae3483d646177ac"
[[package]]
name = "byteorder"
version = "1.3.4"
version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"
[[package]]
name = "bytes"
@ -362,6 +362,12 @@ version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
[[package]]
name = "bytes"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad1f8e949d755f9d79112b5bb46938e0ef9d3804a0b16dfab13aafcaa5f0fa72"
[[package]]
name = "cache-padded"
version = "1.1.1"
@ -371,7 +377,7 @@ checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba"
[[package]]
name = "cairo-rs"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"bitflags",
"cairo-sys-rs",
@ -384,7 +390,7 @@ dependencies = [
[[package]]
name = "cairo-sys-rs"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"glib-sys",
"libc",
@ -450,9 +456,9 @@ dependencies = [
[[package]]
name = "const_fn"
version = "0.4.4"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd51eab21ab4fd6a3bf889e2d0958c0a6e3a61ad04260325e919e652a2a62826"
checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6"
[[package]]
name = "cookie"
@ -615,9 +621,9 @@ dependencies = [
[[package]]
name = "derivative"
version = "2.1.1"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f"
checksum = "eaed5874effa6cde088c644ddcdcb4ffd1511391c5be4fdd7a5ccd02c7e4a183"
dependencies = [
"proc-macro2",
"quote",
@ -824,9 +830,9 @@ dependencies = [
[[package]]
name = "futures"
version = "0.3.8"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0"
checksum = "c70be434c505aee38639abccb918163b63158a4b4bb791b45b7023044bdc3c9c"
dependencies = [
"futures-channel",
"futures-core",
@ -839,9 +845,9 @@ dependencies = [
[[package]]
name = "futures-channel"
version = "0.3.8"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64"
checksum = "f01c61843314e95f96cc9245702248733a3a3d744e43e2e755e3c7af8348a0a9"
dependencies = [
"futures-core",
"futures-sink",
@ -849,15 +855,15 @@ dependencies = [
[[package]]
name = "futures-core"
version = "0.3.8"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748"
checksum = "db8d3b0917ff63a2a96173133c02818fac4a746b0a57569d3baca9ec0e945e08"
[[package]]
name = "futures-executor"
version = "0.3.8"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65"
checksum = "9ee9ca2f7eb4475772cf39dd1cd06208dce2670ad38f4d9c7262b3e15f127068"
dependencies = [
"futures-core",
"futures-task",
@ -866,9 +872,9 @@ dependencies = [
[[package]]
name = "futures-io"
version = "0.3.8"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb"
checksum = "e37c1a51b037b80922864b8eed90692c5cd8abd4c71ce49b77146caa47f3253b"
[[package]]
name = "futures-lite"
@ -881,15 +887,15 @@ dependencies = [
"futures-io",
"memchr",
"parking",
"pin-project-lite 0.2.0",
"pin-project-lite 0.2.3",
"waker-fn",
]
[[package]]
name = "futures-macro"
version = "0.3.8"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556"
checksum = "0f8719ca0e1f3c5e34f3efe4570ef2c0610ca6da85ae7990d472e9cbfba13664"
dependencies = [
"proc-macro-hack",
"proc-macro2",
@ -899,24 +905,24 @@ dependencies = [
[[package]]
name = "futures-sink"
version = "0.3.8"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d"
checksum = "f6adabac1290109cfa089f79192fb6244ad2c3f1cc2281f3e1dd987592b71feb"
[[package]]
name = "futures-task"
version = "0.3.8"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d"
checksum = "a92a0843a2ff66823a8f7c77bffe9a09be2b64e533562c412d63075643ec0038"
dependencies = [
"once_cell",
]
[[package]]
name = "futures-util"
version = "0.3.8"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2"
checksum = "036a2107cdeb57f6d7322f1b6c363dad67cd63ca3b7d1b925bdf75bd5d96cda9"
dependencies = [
"futures-channel",
"futures-core",
@ -925,7 +931,7 @@ dependencies = [
"futures-sink",
"futures-task",
"memchr",
"pin-project 1.0.2",
"pin-project-lite 0.2.3",
"pin-utils",
"proc-macro-hack",
"proc-macro-nested",
@ -935,7 +941,7 @@ dependencies = [
[[package]]
name = "gdk-pixbuf"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"gdk-pixbuf-sys",
"gio",
@ -946,7 +952,7 @@ dependencies = [
[[package]]
name = "gdk-pixbuf-sys"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"gio-sys",
"glib-sys",
@ -958,7 +964,7 @@ dependencies = [
[[package]]
name = "gdk4"
version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#d393f59dbf97518add962d250de9e3b69339f251"
source = "git+https://github.com/gtk-rs/gtk4-rs#397e7f9d6ea62b325e9e707dc76cd602a00e006e"
dependencies = [
"bitflags",
"cairo-rs",
@ -973,7 +979,7 @@ dependencies = [
[[package]]
name = "gdk4-sys"
version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#d393f59dbf97518add962d250de9e3b69339f251"
source = "git+https://github.com/gtk-rs/gtk4-rs#397e7f9d6ea62b325e9e707dc76cd602a00e006e"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
@ -988,7 +994,7 @@ dependencies = [
[[package]]
name = "gdk4-wayland"
version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#d393f59dbf97518add962d250de9e3b69339f251"
source = "git+https://github.com/gtk-rs/gtk4-rs#397e7f9d6ea62b325e9e707dc76cd602a00e006e"
dependencies = [
"gdk4",
"gdk4-wayland-sys",
@ -1001,7 +1007,7 @@ dependencies = [
[[package]]
name = "gdk4-wayland-sys"
version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#d393f59dbf97518add962d250de9e3b69339f251"
source = "git+https://github.com/gtk-rs/gtk4-rs#397e7f9d6ea62b325e9e707dc76cd602a00e006e"
dependencies = [
"glib-sys",
"libc",
@ -1011,7 +1017,7 @@ dependencies = [
[[package]]
name = "gdk4-x11"
version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#d393f59dbf97518add962d250de9e3b69339f251"
source = "git+https://github.com/gtk-rs/gtk4-rs#397e7f9d6ea62b325e9e707dc76cd602a00e006e"
dependencies = [
"gdk4",
"gdk4-x11-sys",
@ -1024,7 +1030,7 @@ dependencies = [
[[package]]
name = "gdk4-x11-sys"
version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#d393f59dbf97518add962d250de9e3b69339f251"
source = "git+https://github.com/gtk-rs/gtk4-rs#397e7f9d6ea62b325e9e707dc76cd602a00e006e"
dependencies = [
"gdk4-sys",
"glib-sys",
@ -1045,11 +1051,11 @@ dependencies = [
[[package]]
name = "getrandom"
version = "0.1.15"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
dependencies = [
"cfg-if 0.1.10",
"cfg-if 1.0.0",
"libc",
"wasi",
]
@ -1075,10 +1081,11 @@ dependencies = [
[[package]]
name = "ghash"
version = "0.3.0"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6e27f0689a6e15944bdce7e45425efb87eaa8ab0c6e87f11d0987a9133e2531"
checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375"
dependencies = [
"opaque-debug",
"polyval",
]
@ -1095,14 +1102,12 @@ dependencies = [
[[package]]
name = "gio"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"bitflags",
"futures",
"futures-channel",
"futures-core",
"futures-io",
"futures-util",
"gio-sys",
"glib",
"libc",
@ -1113,7 +1118,7 @@ dependencies = [
[[package]]
name = "gio-sys"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"glib-sys",
"gobject-sys",
@ -1125,14 +1130,13 @@ dependencies = [
[[package]]
name = "glib"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"bitflags",
"futures-channel",
"futures-core",
"futures-executor",
"futures-task",
"futures-util",
"glib-macros",
"glib-sys",
"gobject-sys",
@ -1144,7 +1148,7 @@ dependencies = [
[[package]]
name = "glib-macros"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"anyhow",
"heck",
@ -1159,7 +1163,7 @@ dependencies = [
[[package]]
name = "glib-sys"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"libc",
"system-deps",
@ -1181,7 +1185,7 @@ dependencies = [
[[package]]
name = "gobject-sys"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"glib-sys",
"libc",
@ -1191,7 +1195,7 @@ dependencies = [
[[package]]
name = "graphene-rs"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"glib",
"graphene-sys",
@ -1201,7 +1205,7 @@ dependencies = [
[[package]]
name = "graphene-sys"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"glib-sys",
"libc",
@ -1212,7 +1216,7 @@ dependencies = [
[[package]]
name = "gsk4"
version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#d393f59dbf97518add962d250de9e3b69339f251"
source = "git+https://github.com/gtk-rs/gtk4-rs#397e7f9d6ea62b325e9e707dc76cd602a00e006e"
dependencies = [
"bitflags",
"cairo-rs",
@ -1227,7 +1231,7 @@ dependencies = [
[[package]]
name = "gsk4-sys"
version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#d393f59dbf97518add962d250de9e3b69339f251"
source = "git+https://github.com/gtk-rs/gtk4-rs#397e7f9d6ea62b325e9e707dc76cd602a00e006e"
dependencies = [
"cairo-sys-rs",
"gdk4-sys",
@ -1248,7 +1252,7 @@ checksum = "1874c48e670519ce192093ac906c08a6dde7cb2d18b28722ef237726a39c3a63"
[[package]]
name = "gtk4"
version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#d393f59dbf97518add962d250de9e3b69339f251"
source = "git+https://github.com/gtk-rs/gtk4-rs#397e7f9d6ea62b325e9e707dc76cd602a00e006e"
dependencies = [
"bitflags",
"cairo-rs",
@ -1269,7 +1273,7 @@ dependencies = [
[[package]]
name = "gtk4-macros"
version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#d393f59dbf97518add962d250de9e3b69339f251"
source = "git+https://github.com/gtk-rs/gtk4-rs#397e7f9d6ea62b325e9e707dc76cd602a00e006e"
dependencies = [
"anyhow",
"heck",
@ -1284,7 +1288,7 @@ dependencies = [
[[package]]
name = "gtk4-sys"
version = "0.1.0"
source = "git+https://github.com/gtk-rs/gtk4-rs#d393f59dbf97518add962d250de9e3b69339f251"
source = "git+https://github.com/gtk-rs/gtk4-rs#397e7f9d6ea62b325e9e707dc76cd602a00e006e"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
@ -1301,9 +1305,9 @@ dependencies = [
[[package]]
name = "heck"
version = "0.3.1"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac"
dependencies = [
"unicode-segmentation",
]
@ -1345,11 +1349,11 @@ dependencies = [
[[package]]
name = "http"
version = "0.2.2"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84129d298a6d57d246960ff8eb831ca4af3f96d29e2e28848dae275408658e26"
checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747"
dependencies = [
"bytes",
"bytes 1.0.0",
"fnv",
"itoa",
]
@ -1449,7 +1453,7 @@ version = "0.9.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2948a0ce43e2c2ef11d7edf6816508998d99e13badd1150be0914205df9388a"
dependencies = [
"bytes",
"bytes 0.5.6",
"crossbeam-utils",
"curl",
"curl-sys",
@ -1477,9 +1481,9 @@ dependencies = [
[[package]]
name = "itoa"
version = "0.4.6"
version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
[[package]]
name = "jpeg-decoder"
@ -1517,14 +1521,14 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.81"
version = "0.2.82"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb"
checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929"
[[package]]
name = "libhandy4"
version = "0.1.0"
source = "git+https://gitlab.gnome.org/bilelmoussaoui/libhandy4-rs#511b3e4a398aacb9ffa30ccff9926955e135b7bc"
source = "git+https://gitlab.gnome.org/bilelmoussaoui/libhandy4-rs#ea059551d1e0c2f77a483f37ad83eb5b358d4c5d"
dependencies = [
"bitflags",
"gdk-pixbuf",
@ -1541,7 +1545,7 @@ dependencies = [
[[package]]
name = "libhandy4-sys"
version = "0.1.0"
source = "git+https://gitlab.gnome.org/bilelmoussaoui/libhandy4-rs#511b3e4a398aacb9ffa30ccff9926955e135b7bc"
source = "git+https://gitlab.gnome.org/bilelmoussaoui/libhandy4-rs#ea059551d1e0c2f77a483f37ad83eb5b358d4c5d"
dependencies = [
"gdk-pixbuf-sys",
"gdk4-sys",
@ -1892,9 +1896,9 @@ checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
[[package]]
name = "openssl-sys"
version = "0.9.59"
version = "0.9.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de52d8eabd217311538a39bba130d7dea1f1e118010fee7a033d966845e7d5fe"
checksum = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6"
dependencies = [
"autocfg",
"cc",
@ -1906,7 +1910,7 @@ dependencies = [
[[package]]
name = "pango"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"bitflags",
"glib",
@ -1918,7 +1922,7 @@ dependencies = [
[[package]]
name = "pango-sys"
version = "0.13.0"
source = "git+https://github.com/gtk-rs/gtk-rs#f9714995940f334a712f5bfcccd558f600007e9f"
source = "git+https://github.com/gtk-rs/gtk-rs#0fc0f84f0e237689b8c051249539a0214c6f3d53"
dependencies = [
"glib-sys",
"gobject-sys",
@ -1945,9 +1949,9 @@ dependencies = [
[[package]]
name = "parking_lot_core"
version = "0.8.1"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7c6d9b8427445284a09c55be860a15855ab580a417ccad9da88f5a06787ced0"
checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272"
dependencies = [
"cfg-if 1.0.0",
"instant",
@ -1969,16 +1973,7 @@ version = "0.4.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15"
dependencies = [
"pin-project-internal 0.4.27",
]
[[package]]
name = "pin-project"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7"
dependencies = [
"pin-project-internal 1.0.2",
"pin-project-internal",
]
[[package]]
@ -1992,17 +1987,6 @@ dependencies = [
"syn",
]
[[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]]
name = "pin-project-lite"
version = "0.1.11"
@ -2011,9 +1995,9 @@ checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b"
[[package]]
name = "pin-project-lite"
version = "0.2.0"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c"
checksum = "ba36e0a6cc5a4c645073f4984f1ed55d09f5857d4de7c14550baa81a39ef5a17"
[[package]]
name = "pin-utils"
@ -2054,11 +2038,12 @@ dependencies = [
[[package]]
name = "polyval"
version = "0.4.3"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4fd92d8e0c06d08525d2e2643cc2b5c80c69ae8eb12c18272d501cd7079ccc0"
checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd"
dependencies = [
"cpuid-bool 0.2.0",
"opaque-debug",
"universal-hash",
]
@ -2159,9 +2144,9 @@ dependencies = [
[[package]]
name = "quote"
version = "1.0.7"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df"
dependencies = [
"proc-macro2",
]
@ -2251,9 +2236,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
[[package]]
name = "regex"
version = "1.4.2"
version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a"
dependencies = [
"aho-corasick",
"memchr",
@ -2263,9 +2248,9 @@ dependencies = [
[[package]]
name = "regex-syntax"
version = "0.6.21"
version = "0.6.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581"
[[package]]
name = "ring"
@ -2387,9 +2372,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.60"
version = "1.0.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1500e84d27fe482ed1dc791a56eddc2f230046a040fa908c08bda1d9fb615779"
checksum = "4fceb2595057b6891a4ee808f70054bd2d12f0e97f1cbb78689b59f676df325a"
dependencies = [
"itoa",
"ryu",
@ -2469,15 +2454,15 @@ dependencies = [
[[package]]
name = "smallvec"
version = "1.5.1"
version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae524f056d7d770e174287294f562e95044c68e88dec909a00d2094805db9d75"
checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
[[package]]
name = "socket2"
version = "0.3.18"
version = "0.3.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97e0e9fd577458a4f61fb91fcb559ea2afecc54c934119421f9f5d3d5b1a1057"
checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
dependencies = [
"cfg-if 1.0.0",
"libc",
@ -2501,9 +2486,9 @@ dependencies = [
[[package]]
name = "standback"
version = "0.2.13"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf906c8b8fc3f6ecd1046e01da1d8ddec83e48c8b08b84dcc02b585a6bedf5a8"
checksum = "c66a8cff4fa24853fdf6b51f75c6d7f8206d7c75cab4e467bcd7f25c2b1febe0"
dependencies = [
"version_check",
]
@ -2605,9 +2590,9 @@ dependencies = [
[[package]]
name = "syn"
version = "1.0.54"
version = "1.0.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a2af957a63d6bd42255c359c93d9bfdb97076bd3b820897ce55ffbfbf107f44"
checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5"
dependencies = [
"proc-macro2",
"quote",
@ -2640,18 +2625,18 @@ dependencies = [
[[package]]
name = "thiserror"
version = "1.0.22"
version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e"
checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.22"
version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56"
checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1"
dependencies = [
"proc-macro2",
"quote",
@ -2660,9 +2645,9 @@ dependencies = [
[[package]]
name = "thread_local"
version = "1.0.1"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
checksum = "bb9bc092d0d51e76b2b19d9d85534ffc9ec2db959a2523cdae0697e2972cd447"
dependencies = [
"lazy_static",
]
@ -2680,9 +2665,9 @@ dependencies = [
[[package]]
name = "time"
version = "0.2.23"
version = "0.2.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bcdaeea317915d59b2b4cd3b5efcd156c309108664277793f5351700c02ce98b"
checksum = "273d3ed44dca264b0d6b3665e8d48fb515042d42466fad93d2a45b90ec4058f7"
dependencies = [
"const_fn",
"libc",
@ -2748,7 +2733,7 @@ checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3"
dependencies = [
"cfg-if 1.0.0",
"log",
"pin-project-lite 0.2.0",
"pin-project-lite 0.2.3",
"tracing-attributes",
"tracing-core",
]
@ -2779,7 +2764,7 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"
dependencies = [
"pin-project 0.4.27",
"pin-project",
"tracing",
]
@ -2967,9 +2952,9 @@ checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158"
[[package]]
name = "wayland-client"
version = "0.28.2"
version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "222b227f47871e47d657c1c5e5360b4af9a877aa9c892716787be1c192c78c42"
checksum = "bdbdbe01d03b2267809f3ed99495b37395387fde789e0f2ebb78e8b43f75b6d7"
dependencies = [
"bitflags",
"downcast-rs",
@ -2983,9 +2968,9 @@ dependencies = [
[[package]]
name = "wayland-commons"
version = "0.28.2"
version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "230b3ffeda101f877ff8ecb8573f5d26e7beb345b197807c4df34ec06879a3e6"
checksum = "480450f76717edd64ad04a4426280d737fc3d10a236b982df7b1aee19f0e2d56"
dependencies = [
"nix 0.18.0",
"once_cell",
@ -2995,9 +2980,9 @@ dependencies = [
[[package]]
name = "wayland-scanner"
version = "0.28.2"
version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ee5bd43a1d746efc486515fec561e47205f328b74802b959f10f5500f7e56cc"
checksum = "7010ba5767b3fcd350decc59055390b4ebe6bd1b9279a9feb1f1888987f1133d"
dependencies = [
"proc-macro2",
"quote",
@ -3006,9 +2991,9 @@ dependencies = [
[[package]]
name = "wayland-sys"
version = "0.28.2"
version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0814adbecc7ea97869971e1d1c1b657e31863dda6fd768f119ad3dc408a01e58"
checksum = "6793834e0c35d11fd96a97297abe03d37be627e1847da52e17d7e0e3b51cc099"
dependencies = [
"dlib",
"pkg-config",
@ -3099,16 +3084,20 @@ dependencies = [
[[package]]
name = "zbus"
version = "1.3.0"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2f1803d7af14e3cddc5c1511b05af4bda27f89d8387e5e1aa3a7b918639cb18"
checksum = "40b4d4aa39daed4e32aed75f0c37b969184949a0fdfd5f2e1277abfda61f02a8"
dependencies = [
"async-io",
"byteorder",
"derivative",
"enumflags2",
"fastrand",
"futures",
"nb-connect",
"nix 0.17.0",
"once_cell",
"polling",
"scoped-tls",
"serde",
"serde_repr",
@ -3118,9 +3107,9 @@ dependencies = [
[[package]]
name = "zbus_macros"
version = "1.3.0"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03273fa8aec65ed1be7026f58f92b90ecea09e622103718e9300591e21e24711"
checksum = "87cc141cda72384bef359badf1808e391d3968f9299e8f3c3cbb78dafa1e0930"
dependencies = [
"proc-macro-crate",
"proc-macro2",

View file

@ -5,16 +5,15 @@ use crate::{
widgets::{PreferencesWindow, ProvidersDialog, Window},
};
use gettextrs::gettext;
use gio::subclass::ObjectSubclass;
use glib::clone;
use gtk::subclass::prelude::*;
use gtk::{gio, glib, prelude::*};
use gtk_macros::{action, get_action};
use std::env;
mod imp {
use super::*;
use glib::{subclass, subclass::prelude::*, WeakRef};
use gtk::subclass::prelude::{ApplicationImpl, ApplicationImplExt, GtkApplicationImpl};
use glib::{subclass, WeakRef};
use std::cell::{Cell, RefCell};
pub struct Application {

View file

@ -35,7 +35,7 @@ impl Backupable for AndOTP {
gettext("Into a plain-text JSON file")
}
fn backup(model: ProvidersModel, into: gtk::gio::File) -> Result<()> {
fn backup(model: &ProvidersModel, into: &gtk::gio::File) -> Result<()> {
let mut items = Vec::new();
for i in 0..model.get_n_items() {
@ -82,6 +82,8 @@ impl Backupable for AndOTP {
}
impl Restorable for AndOTP {
type Item = Self;
fn identifier() -> String {
"andotp".to_string()
}
@ -94,30 +96,31 @@ impl Restorable for AndOTP {
gettext("From a plain-text JSON file")
}
fn restore(model: ProvidersModel, from: gtk::gio::File) -> Result<()> {
fn restore(from: &gtk::gio::File) -> Result<Vec<Self::Item>> {
let (data, _) = from.load_contents(gtk::gio::NONE_CANCELLABLE)?;
let items: Vec<AndOTP> = serde_json::de::from_slice(&data)?;
items.iter().try_for_each(|item| -> anyhow::Result<()> {
info!(
"Restoring account: {} - {} from AndOTP",
item.issuer, item.label
);
Ok(items)
}
let provider = model.find_or_create(
&item.issuer,
item.period.unwrap_or(30),
item.method,
None,
item.algorithm,
item.digits,
item.counter.unwrap_or(1),
)?;
fn restore_item(item: &Self::Item, model: &ProvidersModel) -> Result<()> {
info!(
"Restoring account: {} - {} from AndOTP",
item.issuer, item.label
);
let account = Account::create(&item.label, &item.secret, &provider)?;
provider.add_account(&account);
Ok(())
});
let provider = model.find_or_create(
&item.issuer,
item.period.unwrap_or(30),
item.method,
None,
item.algorithm,
item.digits,
item.counter.unwrap_or(1),
)?;
let account = Account::create(&item.label, &item.secret, &provider)?;
provider.add_account(&account);
Ok(())
}
}

View file

@ -8,6 +8,8 @@ use serde::{Deserialize, Serialize};
pub struct Bitwarden;
impl Restorable for Bitwarden {
type Item = Self;
fn identifier() -> String {
"bitwarden".to_string()
}
@ -20,7 +22,11 @@ impl Restorable for Bitwarden {
gettext("From a plain-text JSON file")
}
fn restore(model: ProvidersModel, from: gtk::gio::File) -> Result<()> {
fn restore(from: &gtk::gio::File) -> Result<Vec<Self::Item>> {
Ok(Vec::new())
}
fn restore_item(item: &Self::Item, model: &ProvidersModel) -> Result<()> {
Ok(())
}
}

View file

@ -22,7 +22,7 @@ impl Backupable for FreeOTP {
gettext("Into a plain-text file, compatible with FreeOTP+")
}
fn backup(model: ProvidersModel, into: gtk::gio::File) -> Result<()> {
fn backup(model: &ProvidersModel, into: &gtk::gio::File) -> Result<()> {
let mut items: Vec<String> = Vec::new();
for i in 0..model.get_n_items() {
@ -55,6 +55,7 @@ impl Backupable for FreeOTP {
}
impl Restorable for FreeOTP {
type Item = OTPUri;
fn identifier() -> String {
"authenticator".to_string()
}
@ -67,30 +68,33 @@ impl Restorable for FreeOTP {
gettext("From a plain-text file, compatible with FreeOTP+")
}
fn restore(model: ProvidersModel, from: gtk::gio::File) -> Result<()> {
fn restore(from: &gtk::gio::File) -> Result<Vec<Self::Item>> {
let (data, _) = from.load_contents(gtk::gio::NONE_CANCELLABLE)?;
let uris = String::from_utf8(data)?;
uris.split('\n')
let items = uris
.split('\n')
.into_iter()
.try_for_each(|uri| -> Result<()> {
println!("{:#?}", uri);
let otp_uri = OTPUri::from_str(uri)?;
let provider = model.find_or_create(
&otp_uri.issuer,
otp_uri.period.unwrap_or(30),
otp_uri.method,
None,
otp_uri.algorithm,
otp_uri.digits.unwrap_or(6),
otp_uri.counter.unwrap_or(1),
)?;
.map(|uri| OTPUri::from_str(uri))
.filter(|uri| uri.is_ok())
.map(|uri| uri.unwrap())
.collect::<Vec<OTPUri>>();
Ok(items)
}
let account = Account::create(&otp_uri.label, &otp_uri.secret, &provider)?;
provider.add_account(&account);
fn restore_item(item: &Self::Item, model: &ProvidersModel) -> Result<()> {
let provider = model.find_or_create(
&item.issuer,
item.period.unwrap_or(30),
item.method,
None,
item.algorithm,
item.digits.unwrap_or(6),
item.counter.unwrap_or(1),
)?;
Ok(())
});
let account = Account::create(&item.label, &item.secret, &provider)?;
provider.add_account(&account);
Ok(())
}
}

View file

@ -21,6 +21,8 @@ pub struct LegacyAuthenticator {
}
impl Restorable for LegacyAuthenticator {
type Item = Self;
fn identifier() -> String {
"authenticator_legacy".to_string()
}
@ -33,31 +35,30 @@ impl Restorable for LegacyAuthenticator {
gettext("From a plain-text JSON file")
}
fn restore(model: ProvidersModel, from: gtk::gio::File) -> Result<()> {
fn restore(from: &gtk::gio::File) -> Result<Vec<Self::Item>> {
let (data, _) = from.load_contents(gtk::gio::NONE_CANCELLABLE)?;
let items: Vec<LegacyAuthenticator> = serde_json::de::from_slice(&data)?;
Ok(items)
}
items.iter().try_for_each(|item| -> anyhow::Result<()> {
let issuer = item.tags.get(0).unwrap();
info!(
"Restoring account: {} - {} from LegacyAuthenticator",
issuer, item.label
);
fn restore_item(item: &Self::Item, model: &ProvidersModel) -> Result<()> {
let issuer = item.tags.get(0).unwrap();
info!(
"Restoring account: {} - {} from LegacyAuthenticator",
issuer, item.label
);
let provider = model.find_or_create(
&issuer,
item.period,
item.method,
None,
item.algorithm,
item.digits,
1,
)?;
let account = Account::create(&item.label, &item.secret, &provider)?;
provider.add_account(&account);
Ok(())
})?;
let provider = model.find_or_create(
&issuer,
item.period,
item.method,
None,
item.algorithm,
item.digits,
1,
)?;
let account = Account::create(&item.label, &item.secret, &provider)?;
provider.add_account(&account);
Ok(())
}
}

View file

@ -1,3 +1,5 @@
use std::fmt::Debug;
use crate::models::ProvidersModel;
use anyhow::Result;
@ -7,20 +9,23 @@ pub enum Operation {
Restore,
}
pub trait Restorable {
pub trait Restorable: Sized {
type Item: Debug;
fn title() -> String;
fn subtitle() -> String;
// Used to define the `restore.$identifier` action
fn identifier() -> String;
fn restore(model: ProvidersModel, from: gtk::gio::File) -> Result<()>;
fn restore(from: &gtk::gio::File) -> Result<Vec<Self::Item>>;
fn restore_item(item: &Self::Item, model: &ProvidersModel) -> Result<()>;
}
pub trait Backupable {
pub trait Backupable: Sized {
fn title() -> String;
fn subtitle() -> String;
// Used to define the `backup.$identifier` action
fn identifier() -> String;
fn backup(model: ProvidersModel, into: gtk::gio::File) -> Result<()>;
fn backup(model: &ProvidersModel, into: &gtk::gio::File) -> Result<()>;
}
mod andotp;

View file

@ -7,8 +7,9 @@ use anyhow::Result;
use byteorder::{BigEndian, ReadBytesExt};
use core::cmp::Ordering;
use diesel::{BelongingToDsl, ExpressionMethods, QueryDsl, RunQueryDsl};
use gio::{subclass::ObjectSubclass, FileExt};
use glib::{clone, Cast, ObjectExt, StaticType, ToValue};
use gtk::prelude::*;
use gtk::subclass::prelude::*;
use gtk::{gio, glib};
use once_cell::sync::OnceCell;
use qrcode::QrCode;
@ -42,7 +43,7 @@ pub struct DiAccount {
#[doc(hidden)]
mod imp {
use super::*;
use glib::subclass::{self, prelude::*};
use glib::subclass;
static PROPERTIES: [subclass::Property; 6] = [
subclass::Property("id", |name| {

View file

@ -1,12 +1,11 @@
use super::account::Account;
use gio::subclass::ObjectSubclass;
use glib::StaticType;
use gtk::subclass::prelude::*;
use gtk::{gio, glib, prelude::*};
mod imp {
use super::*;
use gio::subclass::ListModelImpl;
use glib::{subclass, subclass::prelude::*};
use glib::subclass;
use std::cell::RefCell;
#[derive(Debug)]

View file

@ -8,8 +8,8 @@ use anyhow::Result;
use async_std::prelude::*;
use core::cmp::Ordering;
use diesel::{ExpressionMethods, QueryDsl, RunQueryDsl};
use gio::subclass::ObjectSubclass;
use glib::{Cast, StaticType, ToValue};
use gtk::subclass::prelude::*;
use gtk::{gio, glib, prelude::*};
use std::{
cell::{Cell, RefCell},
@ -49,7 +49,7 @@ pub struct DiProvider {
}
mod imp {
use super::*;
use glib::subclass::{self, prelude::*};
use glib::subclass;
static PROPERTIES: [subclass::Property; 11] = [
subclass::Property("id", |name| {
@ -480,13 +480,13 @@ impl Provider {
pub fn filter(&self, text: String) {
let self_ = imp::Provider::from_instance(self);
let filter = gtk::CustomFilter::new(Some(Box::new(move |obj| {
let filter = gtk::CustomFilter::new(move |obj| {
let account = obj.downcast_ref::<Account>().unwrap();
account
.name()
.to_ascii_lowercase()
.contains(&text.to_ascii_lowercase())
})));
});
self_.filter_model.set_filter(Some(&filter));
}

View file

@ -1,13 +1,12 @@
use super::{Account, Algorithm, OTPMethod, Provider};
use anyhow::Result;
use gio::subclass::ObjectSubclass;
use glib::StaticType;
use gtk::subclass::prelude::*;
use gtk::{gio, glib, prelude::*};
mod imp {
use super::*;
use gio::subclass::ListModelImpl;
use glib::{subclass, subclass::prelude::*};
use glib::subclass;
use std::cell::RefCell;
#[derive(Debug)]

View file

@ -4,8 +4,8 @@ use crate::{
widgets::{ProviderImage, UrlRow},
};
use anyhow::Result;
use gio::{subclass::ObjectSubclass, ActionMapExt};
use glib::{clone, signal::Inhibit};
use gtk::subclass::prelude::*;
use gtk::{gio, glib, prelude::*, CompositeTemplate};
use gtk_macros::{action, get_action};
use once_cell::sync::OnceCell;
@ -13,7 +13,6 @@ use once_cell::sync::OnceCell;
mod imp {
use super::*;
use glib::subclass;
use gtk::subclass::prelude::*;
use std::cell::RefCell;
#[derive(CompositeTemplate)]

View file

@ -1,11 +1,10 @@
use crate::{models::Account, widgets::UrlRow};
use gio::{subclass::ObjectSubclass, FileExt};
use gtk::{gio, glib, prelude::*, CompositeTemplate};
use gtk::subclass::prelude::*;
use gtk::{glib, prelude::*, CompositeTemplate};
mod imp {
use super::*;
use glib::subclass;
use gtk::subclass::prelude::*;
#[derive(Debug, CompositeTemplate)]
pub struct AccountDetailsPage {

View file

@ -1,6 +1,6 @@
use crate::models::Account;
use gio::{subclass::ObjectSubclass, ActionMapExt};
use glib::clone;
use gtk::subclass::prelude::*;
use gtk::{gio, glib, prelude::*, CompositeTemplate};
use gtk_macros::{action, get_action};
use std::cell::RefCell;
@ -8,7 +8,6 @@ use std::cell::RefCell;
mod imp {
use super::*;
use glib::subclass;
use gtk::subclass::prelude::*;
static PROPERTIES: [subclass::Property; 1] = [subclass::Property("account", |name| {
glib::ParamSpec::object(

View file

@ -1,6 +1,6 @@
use crate::{config, helpers::Keyring};
use gio::subclass::ObjectSubclass;
use glib::clone;
use gtk::subclass::prelude::*;
use gtk::{gio, glib, prelude::*, CompositeTemplate};
use gtk_macros::{action, get_action};
use once_cell::sync::OnceCell;
@ -10,7 +10,6 @@ mod imp {
use super::*;
use glib::subclass;
use gtk::subclass::prelude::*;
#[derive(CompositeTemplate)]
pub struct PasswordPage {
pub actions: OnceCell<gio::SimpleActionGroup>,

View file

@ -4,9 +4,10 @@ use crate::{
config,
models::ProvidersModel,
};
use anyhow::Result;
use gettextrs::gettext;
use gio::{subclass::ObjectSubclass, ActionMapExt};
use glib::clone;
use gtk::subclass::prelude::*;
use gtk::{gio, glib, prelude::*, CompositeTemplate};
use libhandy::prelude::*;
use once_cell::sync::OnceCell;
@ -14,7 +15,6 @@ use once_cell::sync::OnceCell;
mod imp {
use super::*;
use glib::subclass;
use gtk::subclass::prelude::*;
use libhandy::subclass::{
preferences_window::PreferencesWindowImpl, window::WindowImpl as HdyWindowImpl,
};
@ -156,7 +156,7 @@ impl PreferencesWindow {
let dialog = win.select_file(filters, Operation::Backup);
dialog.connect_response(clone!(@weak model, @weak win => move |d, response| {
if response == gtk::ResponseType::Accept {
T::backup(model, d.get_file().unwrap());
T::backup(&model, &d.get_file().unwrap());
}
d.destroy();
}));
@ -177,16 +177,15 @@ impl PreferencesWindow {
.action_name(&format!("restore.{}", T::identifier()))
.build();
let model = self_.model.get().unwrap();
gtk_macros::action!(
self_.restore_actions,
&T::identifier(),
clone!(@weak self as win, @weak model => move |_, _| {
clone!(@weak self as win => move |_, _| {
let dialog = win.select_file(filters, Operation::Restore);
dialog.connect_response(clone!(@weak model, @weak win => move |d, response| {
dialog.connect_response(clone!(@weak win => move |d, response| {
if response == gtk::ResponseType::Accept {
T::restore(model, d.get_file().unwrap()).unwrap();
win.emit("restore-completed", &[]).unwrap();
let items: Vec<T::Item> = T::restore(&d.get_file().unwrap()).unwrap();
//win.restore_items(items);
}
d.destroy();
}));
@ -196,6 +195,11 @@ impl PreferencesWindow {
self_.restore_group.get().add(&row);
}
fn restore_items<T: Restorable>(&self, items: Vec<T::Item>) -> Result<()> {
println!("{:#?}", items);
Ok(())
}
fn select_file(
&self,
filters: &'static [&str],

View file

@ -1,14 +1,13 @@
use super::{ProviderPage, ProviderPageMode};
use crate::models::{Provider, ProviderSorter, ProvidersModel};
use gio::{subclass::ObjectSubclass, ListModelExt};
use glib::{clone, signal::Inhibit};
use gtk::subclass::prelude::*;
use gtk::{gio, glib, prelude::*, CompositeTemplate};
use row::ProviderActionRow;
mod imp {
use super::*;
use glib::subclass;
use gtk::subclass::prelude::*;
use libhandy::subclass::window::WindowImpl as HdyWindowImpl;
#[derive(CompositeTemplate)]
@ -190,13 +189,13 @@ impl ProvidersDialog {
fn search(&self, text: String) {
let self_ = imp::ProvidersDialog::from_instance(self);
let providers_filter = gtk::CustomFilter::new(Some(Box::new(move |object| {
let providers_filter = gtk::CustomFilter::new(move |object| {
let provider = object.downcast_ref::<Provider>().unwrap();
provider
.name()
.to_ascii_lowercase()
.contains(&text.to_ascii_lowercase())
})));
});
self_.filter_model.set_filter(Some(&providers_filter));
}
@ -219,7 +218,6 @@ mod row {
mod imp {
use super::*;
use glib::subclass;
use gtk::subclass::prelude::*;
use std::cell::RefCell;
static PROPERTIES: [subclass::Property; 1] = [subclass::Property("provider", |name| {

View file

@ -1,6 +1,6 @@
use crate::models::Provider;
use gio::{subclass::ObjectSubclass, FileExt};
use glib::{clone, Receiver, Sender};
use gtk::subclass::prelude::*;
use gtk::{gio, glib, prelude::*, CompositeTemplate};
pub enum ImageAction {
@ -11,7 +11,6 @@ pub enum ImageAction {
mod imp {
use super::*;
use glib::subclass;
use gtk::subclass::prelude::*;
use std::cell::{Cell, RefCell};
static PROPERTIES: [subclass::Property; 2] = [

View file

@ -3,14 +3,13 @@ use crate::{
models::{Account, Provider, ProviderSorter, ProvidersModel},
widgets::providers::ProviderRow,
};
use gio::{subclass::ObjectSubclass, ListModelExt};
use glib::clone;
use gtk::subclass::prelude::*;
use gtk::{gio, glib, prelude::*, CompositeTemplate};
mod imp {
use super::*;
use glib::subclass;
use gtk::subclass::prelude::*;
#[derive(Debug, CompositeTemplate)]
pub struct ProvidersList {
@ -75,10 +74,10 @@ impl ProvidersList {
pub fn set_model(&self, model: ProvidersModel) {
let self_ = imp::ProvidersList::from_instance(self);
let accounts_filter = gtk::CustomFilter::new(Some(Box::new(|object| {
let accounts_filter = gtk::CustomFilter::new(move |object| {
let provider = object.downcast_ref::<Provider>().unwrap();
provider.has_accounts()
})));
});
self_.filter_model.set_filter(Some(&accounts_filter));
self_.filter_model.set_model(Some(&model));
}
@ -95,11 +94,11 @@ impl ProvidersList {
pub fn search(&self, text: String) {
let self_ = imp::ProvidersList::from_instance(self);
let accounts_filter = gtk::CustomFilter::new(Some(Box::new(move |object| {
let accounts_filter = gtk::CustomFilter::new(move |object| {
let provider = object.downcast_ref::<Provider>().unwrap();
provider.filter(text.clone());
provider.accounts().get_n_items() != 0
})));
});
self_.filter_model.set_filter(Some(&accounts_filter));
}
@ -115,7 +114,7 @@ impl ProvidersList {
self_.providers_list.get().bind_model(
Some(&sort_model),
Some(Box::new(clone!(@weak self as list => move |obj| {
clone!(@weak self as list => move |obj| {
let provider = obj.clone().downcast::<Provider>().unwrap();
let row = ProviderRow::new(provider);
row.connect_local("changed", false, clone!(@weak list => move |_| {
@ -130,7 +129,7 @@ impl ProvidersList {
})).unwrap();
row.upcast::<gtk::Widget>()
}))),
}),
);
}
}

View file

@ -2,9 +2,9 @@ use crate::{
models::{Algorithm, OTPMethod, Provider},
widgets::ProviderImage,
};
use gio::subclass::ObjectSubclass;
use glib::{clone, translate::ToGlib};
use gtk::{gio, glib, prelude::*, CompositeTemplate};
use gtk::subclass::prelude::*;
use gtk::{glib, prelude::*, CompositeTemplate};
use libhandy::ComboRowExt;
pub enum ProviderPageMode {
@ -17,7 +17,6 @@ mod imp {
use super::*;
use glib::subclass;
use gtk::subclass::prelude::*;
#[derive(Debug, CompositeTemplate)]
pub struct ProviderPage {

View file

@ -2,19 +2,13 @@ use crate::{
models::{Account, AccountSorter, OTPMethod, Provider},
widgets::{accounts::AccountRow, ProviderImage},
};
use gio::subclass::ObjectSubclass;
use gtk::{
gio, glib,
glib::{clone, subclass::prelude::*},
prelude::*,
CompositeTemplate,
};
use gtk::subclass::prelude::*;
use gtk::{glib, glib::clone, prelude::*, CompositeTemplate};
use std::time::{Duration, Instant};
mod imp {
use super::*;
use glib::subclass;
use gtk::subclass::prelude::*;
use std::cell::{Cell, RefCell};
static PROPERTIES: [subclass::Property; 2] = [
@ -262,6 +256,6 @@ impl ProviderRow {
self_
.accounts_list
.get()
.bind_model(Some(&sort_model), Some(Box::new(create_callback)));
.bind_model(Some(&sort_model), create_callback);
}
}

View file

@ -1,12 +1,11 @@
use gio::subclass::ObjectSubclass;
use glib::{clone, ObjectExt, ToValue};
use gtk::{gio, glib, WidgetExt};
use gtk::subclass::prelude::*;
use gtk::{glib, WidgetExt};
use libhandy::ActionRowExt;
mod imp {
use super::*;
use glib::subclass;
use gtk::subclass::prelude::*;
use libhandy::subclass::action_row::ActionRowImpl;
use std::cell::RefCell;

View file

@ -6,8 +6,8 @@ use crate::{
widgets::{accounts::AccountDetailsPage, providers::ProvidersList, AccountAddDialog},
window_state,
};
use gio::subclass::ObjectSubclass;
use glib::{clone, signal::Inhibit};
use gtk::subclass::prelude::*;
use gtk::{gio, glib, prelude::*, CompositeTemplate};
use gtk_macros::{action, get_action};
use once_cell::sync::OnceCell;
@ -22,7 +22,6 @@ pub enum View {
mod imp {
use super::*;
use glib::subclass;
use gtk::subclass::prelude::*;
use libhandy::subclass::application_window::ApplicationWindowImpl as HdyApplicationWindowImpl;
#[derive(Debug, CompositeTemplate)]