diff --git a/Cargo.lock b/Cargo.lock index b8e5444..b82370c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -42,9 +42,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2faccea4cc4ab4a667ce676a30e8ec13922a692c99bb8f5b11f1502c72e04220" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" @@ -91,11 +91,11 @@ checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" [[package]] name = "ashpd" -version = "0.6.8" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac22eda5891cc086690cb6fa10121c0390de0e3b04eb269f2d766b00d3f2d81" +checksum = "01992ad7774250d5b7fe214e2676cb99bf92564436d8135ab44fe815e71769a9" dependencies = [ - "async-fs 2.1.0", + "async-fs 2.1.1", "async-net", "enumflags2", "futures-channel", @@ -103,7 +103,6 @@ dependencies = [ "gdk4-wayland", "gdk4-x11", "gtk4", - "once_cell", "rand", "serde", "serde_repr", @@ -123,13 +122,13 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" dependencies = [ "concurrent-queue", - "event-listener 4.0.3", - "event-listener-strategy", + "event-listener 5.0.0", + "event-listener-strategy 0.5.0", "futures-core", "pin-project-lite", ] @@ -162,9 +161,9 @@ dependencies = [ [[package]] name = "async-fs" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd1f344136bad34df1f83a47f3fd7f2ab85d75cb8a940af4ccf6d482a84ea01b" +checksum = "bc19683171f287921f2405677dd2ed2549c3b3bda697a563ebc3a121ace2aba1" dependencies = [ "async-lock 3.3.0", "blocking", @@ -218,8 +217,8 @@ dependencies = [ "futures-io", "futures-lite 2.2.0", "parking", - "polling 3.3.2", - "rustix 0.38.30", + "polling 3.4.0", + "rustix 0.38.31", "slab", "tracing", "windows-sys 0.52.0", @@ -241,7 +240,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ "event-listener 4.0.3", - "event-listener-strategy", + "event-listener-strategy 0.4.0", "pin-project-lite", ] @@ -269,7 +268,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.30", + "rustix 0.38.31", "windows-sys 0.48.0", ] @@ -287,7 +286,7 @@ dependencies = [ "cfg-if", "event-listener 4.0.3", "futures-lite 2.2.0", - "rustix 0.38.30", + "rustix 0.38.31", "windows-sys 0.52.0", ] @@ -314,7 +313,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.30", + "rustix 0.38.31", "signal-hook-registry", "slab", "windows-sys 0.48.0", @@ -409,9 +408,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.14.1" +version = "1.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2490600f404f2b94c167e31d3ed1d5f3c225a0f3b80230053b3e0b7b962bd9" +checksum = "ea31d69bda4949c1c1562c1e6f042a1caefac98cdc8a298260a2ff41c1e2d42b" [[package]] name = "byteorder" @@ -421,23 +420,22 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "cairo-rs" -version = "0.18.5" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +checksum = "bc1c415b7088381c53c575420899c34c9e6312df5ac5defd05614210e9fd6e1b" dependencies = [ "bitflags 2.4.2", "cairo-sys-rs", "glib", "libc", - "once_cell", "thiserror", ] [[package]] name = "cairo-sys-rs" -version = "0.18.2" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +checksum = "75b6a5fefce2eadb8333e3c604ac964ba6573ec4f28bdd17f67032c4a2831831" dependencies = [ "glib-sys", "libc", @@ -634,6 +632,17 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "event-listener" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b72557800024fabbaa2449dd4bf24e37b93702d457a4d4f2b0dd1f0f039f20c1" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + [[package]] name = "event-listener-strategy" version = "0.4.0" @@ -644,6 +653,16 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "event-listener-strategy" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" +dependencies = [ + "event-listener 5.0.0", + "pin-project-lite", +] + [[package]] name = "fastrand" version = "1.9.0" @@ -817,22 +836,21 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.18.5" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +checksum = "c311c47800051b87de1335e8792774d7cec551c91a0a3d109ab21d76b36f208f" dependencies = [ "gdk-pixbuf-sys", "gio", "glib", "libc", - "once_cell", ] [[package]] name = "gdk-pixbuf-sys" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96" dependencies = [ "gio-sys", "glib-sys", @@ -843,9 +861,9 @@ dependencies = [ [[package]] name = "gdk4" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edb019ad581f8ecf8ea8e4baa6df7c483a95b5a59be3140be6a9c3b0c632af6" +checksum = "6771942f85a2beaa220c64739395e4401b9fab4a52aba9b503fa1e6ed4d4d806" dependencies = [ "cairo-rs", "gdk-pixbuf", @@ -858,9 +876,9 @@ dependencies = [ [[package]] name = "gdk4-sys" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0" +checksum = "1eb95854fab65072023a7814434f003db571d6e45c287c0b0c540c1c78bdf6ae" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -875,9 +893,9 @@ dependencies = [ [[package]] name = "gdk4-wayland" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0db9102ff11e55bd65e153c1192abc21ddfa45ede90622e423d4e4a0e5d5f313" +checksum = "075cdd6b1c8aee8aefd4216b5483024f29d4102ec180f770ae28fe54f53019cf" dependencies = [ "gdk4", "gdk4-wayland-sys", @@ -888,9 +906,9 @@ dependencies = [ [[package]] name = "gdk4-wayland-sys" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d48159be256ae0212d5a2b9884627197d08082c7168b28775b53a0f9885d5624" +checksum = "6e02d324a9bf7136bc4b610423537c5f5852d71f53dee8fe63d7ac658333e762" dependencies = [ "glib-sys", "libc", @@ -899,9 +917,9 @@ dependencies = [ [[package]] name = "gdk4-x11" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c9bbf8ea1ea8469e74c3fdfafc142c9e14810a27f89ddb01b5e9076a60a450" +checksum = "b2f2c2b41c444f5661fd6b4e42eff18e79df627863d3e0d3db8eef984b714c41" dependencies = [ "gdk4", "gdk4-x11-sys", @@ -912,9 +930,9 @@ dependencies = [ [[package]] name = "gdk4-x11-sys" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3de1709370758192369f5329aa593847797f1c693c95e8a261e9b2e06a5f125" +checksum = "a90e4b5371704921d6f7704282502a47020acb456dc66129a81889b652af4dfd" dependencies = [ "gdk4-sys", "glib-sys", @@ -971,9 +989,9 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "gio" -version = "0.18.4" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +checksum = "b3d1aaa2d926710a27f3b35822806b1513b393b71174dd2601c9d02fdab0cb82" dependencies = [ "futures-channel", "futures-core", @@ -982,7 +1000,6 @@ dependencies = [ "gio-sys", "glib", "libc", - "once_cell", "pin-project-lite", "smallvec", "thiserror", @@ -990,22 +1007,22 @@ dependencies = [ [[package]] name = "gio-sys" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4" dependencies = [ "glib-sys", "gobject-sys", "libc", "system-deps", - "winapi", + "windows-sys 0.52.0", ] [[package]] name = "glib" -version = "0.18.5" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +checksum = "170ee82b9b44b3b5fd1cf4971d6cf0eadec38303bb84c7bcc4e6b95a18934e71" dependencies = [ "bitflags 2.4.2", "futures-channel", @@ -1019,20 +1036,18 @@ dependencies = [ "gobject-sys", "libc", "memchr", - "once_cell", "smallvec", "thiserror", ] [[package]] name = "glib-macros" -version = "0.18.5" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +checksum = "2ff52fff7e4d1bb8598ae744e9bb90c8c76271712483c3f0ce931bee9814de85" dependencies = [ "heck", - "proc-macro-crate 2.0.2", - "proc-macro-error", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 2.0.48", @@ -1040,9 +1055,9 @@ dependencies = [ [[package]] name = "glib-sys" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4" dependencies = [ "libc", "system-deps", @@ -1050,12 +1065,12 @@ dependencies = [ [[package]] name = "glycin" -version = "1.0.0-alpha.5" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f68f9727c0e9bfe4bb7f5926ba77c22f26ca4bf846387950038c4239bcfa7e66" +checksum = "40888ee0ac51bbc6d64f65bb06646e475c5ad5dfeb37c46333792caa8fa1b364" dependencies = [ "anyhow", - "async-fs 2.1.0", + "async-fs 2.1.1", "async-global-executor", "async-lock 3.3.0", "async-process 2.0.1", @@ -1067,6 +1082,7 @@ dependencies = [ "lcms2", "lcms2-sys", "libc", + "libseccomp", "memfd", "memmap2", "nix 0.27.1", @@ -1076,12 +1092,13 @@ dependencies = [ [[package]] name = "glycin-utils" -version = "1.0.0-alpha.5" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5864db08b8a22a40cfb2d3cca0fa83a2344e6dd37a0a8fbd80bc314ac43ad4ec" +checksum = "573253c8a3e758ba70a62d9ff447185305dc9b4b19d9eec5e455593dc5845de1" dependencies = [ "anyhow", "gettext-rs", + "libseccomp", "rustix 0.37.27", "serde", "zbus", @@ -1089,9 +1106,9 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979" dependencies = [ "glib-sys", "libc", @@ -1100,9 +1117,9 @@ dependencies = [ [[package]] name = "graphene-rs" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401" +checksum = "147827e4f506f8073ac3ec5b28cc2255bdf3abc30f5b4e101a80506eebe11d2c" dependencies = [ "glib", "graphene-sys", @@ -1111,9 +1128,9 @@ dependencies = [ [[package]] name = "graphene-sys" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59" +checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0" dependencies = [ "glib-sys", "libc", @@ -1123,9 +1140,9 @@ dependencies = [ [[package]] name = "gsk4" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d958e351d2f210309b32d081c832d7de0aca0b077aa10d88336c6379bd01f7e" +checksum = "0e8ce8dee0fd87a11002214b1204ff18c9272fbd530408f0884a0f9b25dc31de" dependencies = [ "cairo-rs", "gdk4", @@ -1138,9 +1155,9 @@ dependencies = [ [[package]] name = "gsk4-sys" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bd9e3effea989f020e8f1ff3fa3b8c63ba93d43b899c11a118868853a56d55" +checksum = "2660a652da5b662d43924df19ba40d73f015ed427329ef51d2b1360a4e0dc0e4" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -1154,9 +1171,9 @@ dependencies = [ [[package]] name = "gtk4" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeb51aa3e9728575a053e1f43543cd9992ac2477e1b186ad824fd4adfb70842" +checksum = "7d26ffa3ec6316ccaa1df62d3e7f5bae1637c0acbb43f250fabef38319f73c64" dependencies = [ "cairo-rs", "field-offset", @@ -1175,24 +1192,24 @@ dependencies = [ [[package]] name = "gtk4-macros" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f" +checksum = "c8b86439e9896f6f3f47c3d8077c5c8205174078760afdabd9098a8e9e937d97" dependencies = [ "anyhow", - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro-error", "proc-macro2", - "quick-xml 0.30.0", + "quick-xml", "quote", "syn 1.0.109", ] [[package]] name = "gtk4-sys" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54d8c4aa23638ce9faa2caf7e2a27d4a1295af2155c8e8d28c4d4eeca7a65eb8" +checksum = "2abc0a6d356d59a3806021829ce6ed3e70bba3509b41a535fedcb09fae13fbc0" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -1215,7 +1232,7 @@ checksum = "0bb9136c388a1e7b3017d18fe7c2f263b0a2b13f215c48e8eb44935d413ce0f9" dependencies = [ "byteorder", "flate2", - "quick-xml 0.31.0", + "quick-xml", "safe-transmute", "serde", "serde_json", @@ -1237,9 +1254,9 @@ dependencies = [ [[package]] name = "gweather-sys" -version = "4.3.1" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fda9a22818e9c023aa5fb09d7df984c046532bf0136e7ee52f11febb4824a6" +checksum = "dde1d5eedb5b83ca0a2345c29655b72ea4ea8922ea54e52a75fe60366fd8428b" dependencies = [ "gio-sys", "glib-sys", @@ -1262,9 +1279,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" +checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3" [[package]] name = "hex" @@ -1290,9 +1307,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433de089bd45971eecf4668ee0ee8f4cec17db4f8bd8f7bc3197a6ce37aa7d9b" +checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" dependencies = [ "equivalent", "hashbrown", @@ -1326,9 +1343,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" dependencies = [ "libc", ] @@ -1373,9 +1390,9 @@ dependencies = [ [[package]] name = "libadwaita" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fe7e70c06507ed10a16cda707f358fbe60fe0dc237498f78c686ade92fd979c" +checksum = "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9" dependencies = [ "gdk-pixbuf", "gdk4", @@ -1389,9 +1406,9 @@ dependencies = [ [[package]] name = "libadwaita-sys" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e10aaa38de1d53374f90deeb4535209adc40cc5dba37f9704724169bceec69a" +checksum = "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8" dependencies = [ "gdk4-sys", "gio-sys", @@ -1405,15 +1422,15 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.152" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libgweather" -version = "4.3.1" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b77923d651d79939ebbd6bcbb7086d2cba1db93c325e93e0b1d3fe56f66ea5c" +checksum = "2cb8f774df868ceca45c30e19945b5895d599ed1ed33b28092eec9f38d4e3ba3" dependencies = [ "gio", "glib", @@ -1421,6 +1438,24 @@ dependencies = [ "libc", ] +[[package]] +name = "libseccomp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21c57fd8981a80019807b7b68118618d29a87177c63d704fc96e6ecd003ae5b3" +dependencies = [ + "bitflags 1.3.2", + "libc", + "libseccomp-sys", + "pkg-config", +] + +[[package]] +name = "libseccomp-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7cbbd4ad467251987c6e5b47d53b11a5a05add08f2447a9e2d70aef1e0d138" + [[package]] name = "linux-raw-sys" version = "0.3.8" @@ -1508,7 +1543,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.30", + "rustix 0.38.31", ] [[package]] @@ -1540,9 +1575,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] @@ -1632,22 +1667,21 @@ dependencies = [ [[package]] name = "pango" -version = "0.18.3" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +checksum = "78d7f779b957728c74fd1a060dfa6d89a0bea792ebc50cc2da80e4e87282d69e" dependencies = [ "gio", "glib", "libc", - "once_cell", "pango-sys", ] [[package]] name = "pango-sys" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea" dependencies = [ "glib-sys", "gobject-sys", @@ -1714,14 +1748,14 @@ dependencies = [ [[package]] name = "polling" -version = "3.3.2" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545c980a3880efd47b2e262f6a4bb6daad6555cf3367aa9c4e52895f69537a41" +checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14" dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite", - "rustix 0.38.30", + "rustix 0.38.31", "tracing", "windows-sys 0.52.0", ] @@ -1744,12 +1778,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "2.0.2" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.21.1", ] [[package]] @@ -1785,15 +1818,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "quick-xml" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" -dependencies = [ - "memchr", -] - [[package]] name = "quick-xml" version = "0.31.0" @@ -1843,15 +1867,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "regex" version = "1.10.3" @@ -1921,9 +1936,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.30" +version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ "bitflags 2.4.2", "errno", @@ -2110,14 +2125,13 @@ checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6" [[package]] name = "tempfile" -version = "3.9.0" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" dependencies = [ "cfg-if", "fastrand 2.0.1", - "redox_syscall", - "rustix 0.38.30", + "rustix 0.38.31", "windows-sys 0.52.0", ] @@ -2158,21 +2172,21 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "toml" -version = "0.8.2" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.22.4", ] [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" dependencies = [ "serde", ] @@ -2190,9 +2204,20 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.20.2" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951" dependencies = [ "indexmap", "serde", @@ -2487,28 +2512,28 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.35" +version = "0.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1931d78a9c73861da0134f453bb1f790ce49b2e30eba8410b4b79bac72b46a2d" +checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29" dependencies = [ "memchr", ] [[package]] name = "xdg-home" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" +checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e" dependencies = [ - "nix 0.26.4", + "libc", "winapi", ] [[package]] name = "zbus" -version = "3.14.1" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948" +checksum = "c45d06ae3b0f9ba1fb2671268b975557d8f5a84bb5ec6e43964f87e763d8bca8" dependencies = [ "async-broadcast", "async-executor", @@ -2547,9 +2572,9 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "3.14.1" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d" +checksum = "b4a1ba45ed0ad344b85a2bb5a1fe9830aed23d67812ea39a586e7d0136439c7d" dependencies = [ "proc-macro-crate 1.3.1", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index 6f05719..f78a39a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,32 +19,32 @@ async-channel = "2.1.0" env_logger = "0.11.0" futures-channel = "0.3.25" futures-lite = "2.1.0" -glycin = "1.0.0-alpha.5" +glycin = "1.0.0-alpha.6" gvdb-macros = "0.1.6" indexmap = "2.0.0" kamadak-exif = "0.5.5" -libgweather = "4.3.0" +libgweather = "4.4.0" log = "0.4.17" once_cell = "1.16.0" url = "2.3.1" [dependencies.ashpd] -version = "0.6.0" +version = "0.7.0" features = ["gtk4"] [dependencies.gtk] package = "gtk4" -version = "0.7.1" +version = "0.8.0" features = ["v4_12", "xml_validation"] [dependencies.gio] package = "gio" -version = "0.18.1" +version = "0.19.0" features = ["v2_74"] [dependencies.adw] package = "libadwaita" -version = "0.5.2" +version = "0.6.0" features = ["v1_4"] [dependencies.gettext-rs] diff --git a/src/widgets/drag_overlay.rs b/src/widgets/drag_overlay.rs index a5e1030..f17e4d3 100644 --- a/src/widgets/drag_overlay.rs +++ b/src/widgets/drag_overlay.rs @@ -27,7 +27,7 @@ use crate::deps::*; mod imp { use adw::subclass::prelude::*; use glib::{ParamSpec, Properties, Value}; - use once_cell::sync::OnceCell; + use std::cell::OnceCell; use super::*; diff --git a/src/widgets/image.rs b/src/widgets/image.rs index 0b5c25d..6d0a449 100644 --- a/src/widgets/image.rs +++ b/src/widgets/image.rs @@ -296,7 +296,7 @@ mod imp { ); obj.connect_realize(glib::clone!(@weak surface_signals => move |obj| { - surface_signals.set_target(obj.native().map(|x| x.surface()).as_ref()); + surface_signals.set_target(obj.native().and_then(|x| x.surface()).as_ref()); })); obj.connect_unrealize(glib::clone!(@weak surface_signals => move |_| { diff --git a/src/widgets/image/background_color.rs b/src/widgets/image/background_color.rs index 18e6e3b..dbf0b95 100644 --- a/src/widgets/image/background_color.rs +++ b/src/widgets/image/background_color.rs @@ -85,10 +85,7 @@ impl imp::LpImage { let node = snapshot.to_node()?; - let renderer = obj.root()?.renderer(); - if !renderer.is_realized() { - return None; - } + let renderer = obj.root()?.renderer()?; // Render the small version of the image and download to RAM let texture = renderer.render_texture(node, None); diff --git a/src/widgets/image/input_handling.rs b/src/widgets/image/input_handling.rs index 6a75023..75d8e8f 100644 --- a/src/widgets/image/input_handling.rs +++ b/src/widgets/image/input_handling.rs @@ -82,7 +82,7 @@ impl imp::LpImage { (f64::exp(-y * f64::ln(ZOOM_FACTOR_SCROLL_SURFACE)), false) } unknown_unit => { - log::warn!("Ignoring unknown scroll unit: {unknown_unit}"); + log::warn!("Ignoring unknown scroll unit: {unknown_unit:?}"); (1., false) } }; diff --git a/src/widgets/image/printing.rs b/src/widgets/image/printing.rs index d1bb81c..10a9520 100644 --- a/src/widgets/image/printing.rs +++ b/src/widgets/image/printing.rs @@ -42,7 +42,7 @@ impl LpImage { .add_to_snapshot(&snapshot, scale, &render_options); let node = snapshot.to_node()?; - let renderer = self.root()?.renderer(); + let renderer = self.root()?.renderer()?; Some(renderer.render_texture(&node, None)) } diff --git a/src/widgets/image/rendering.rs b/src/widgets/image/rendering.rs index 3da1b10..d4b0b9d 100644 --- a/src/widgets/image/rendering.rs +++ b/src/widgets/image/rendering.rs @@ -299,13 +299,10 @@ impl imp::LpImage { let obj = self.obj(); // TODO: This avoids panics and should be fixed upstream - if obj.is_realized() { - obj.native() - .map(|x| x.surface().scale()) - .unwrap_or_else(|| obj.scale_factor() as f64) - } else { - 1. - } + obj.native() + .and_then(|x| x.surface()) + .map(|x| x.scale()) + .unwrap_or_else(|| obj.scale_factor() as f64) } /// Monitor size in physical pixels @@ -313,8 +310,8 @@ impl imp::LpImage { let obj = self.obj(); if let Some(display) = gdk::Display::default() { - if let Some(native) = obj.native() { - if let Some(monitor) = display.monitor_at_surface(&native.surface()) { + if let Some(surface) = obj.native().and_then(|x| x.surface()) { + if let Some(monitor) = display.monitor_at_surface(&surface) { let hidpi_scale = self.scaling(); let monitor_geometry = monitor.geometry(); let monitor_size = ( diff --git a/src/widgets/image/scrollable.rs b/src/widgets/image/scrollable.rs index 6829b6b..2244b3f 100644 --- a/src/widgets/image/scrollable.rs +++ b/src/widgets/image/scrollable.rs @@ -140,4 +140,12 @@ impl LpImage { pub fn is_vscrollable(&self) -> bool { self.imp().max_vadjustment_value() != 0. } + + pub fn hadjustment(&self) -> gtk::Adjustment { + todo!() + } + + pub fn vadjustment(&self) -> gtk::Adjustment { + todo!() + } } diff --git a/src/widgets/print.rs b/src/widgets/print.rs index 67ee7b7..089d4ac 100644 --- a/src/widgets/print.rs +++ b/src/widgets/print.rs @@ -18,14 +18,13 @@ //! The print layout widget that also coordinates the print process -use std::cell::{Cell, RefCell}; +use std::cell::{Cell, OnceCell, RefCell}; use std::rc::Rc; use adw::prelude::*; use adw::subclass::prelude::*; use glib::Properties; use gtk::CompositeTemplate; -use once_cell::sync::OnceCell; use crate::decoder::{self}; use crate::deps::*; diff --git a/src/window.rs b/src/window.rs index ce87740..ae93de2 100644 --- a/src/window.rs +++ b/src/window.rs @@ -52,6 +52,8 @@ const HIDE_CONTROLS_ANIMATION_DURATION: u32 = 1000; const HIDE_CONTROLS_IDLE_TIMEOUT: u64 = 3000; mod imp { + use gio::glib::VariantTy; + use super::*; // To use composite templates, you need @@ -125,20 +127,15 @@ mod imp { // CompositeTemplate macro to bind all children at once. Self::bind_template(klass); - klass.add_binding( - gdk::Key::c, - gdk::ModifierType::CONTROL_MASK, - |window, _| { - if window.has_metadata_selected() { - // Pass on to normal copy handler to copy selected metadata - false - } else { - window.copy_image(); - true - } - }, - None, - ); + klass.add_binding(gdk::Key::c, gdk::ModifierType::CONTROL_MASK, |window| { + if window.has_metadata_selected() { + // Pass on to normal copy handler to copy selected metadata + glib::Propagation::Proceed + } else { + window.copy_image(); + glib::Propagation::Stop + } + }); // Set up actions klass.install_action("win.toggle-fullscreen", None, move |win, _, _| { @@ -209,9 +206,13 @@ mod imp { win.zoom_in_center(); }); - klass.install_action("win.zoom-to-exact", Some("d"), move |win, _, level| { - win.zoom_to_exact(level.unwrap().get().unwrap()); - }); + klass.install_action( + "win.zoom-to-exact", + Some(&VariantTy::new("d").unwrap()), + move |win, _, level| { + win.zoom_to_exact(level.unwrap().get().unwrap()); + }, + ); klass.install_action("win.zoom-best-fit", None, move |win, _, _| { win.zoom_best_fit(); @@ -275,11 +276,15 @@ mod imp { win.trash().await; }); - klass.install_action("win.show-toast", Some("(si)"), move |win, _, var| { - if let Some((ref toast, i)) = var.and_then(|v| v.get::<(String, i32)>()) { - win.show_toast(toast, adw::ToastPriority::__Unknown(i)); - } - }); + klass.install_action( + "win.show-toast", + Some(VariantTy::new("(si)").unwrap()), + move |win, _, var| { + if let Some((ref toast, i)) = var.and_then(|v| v.get::<(String, i32)>()) { + win.show_toast(toast, adw::ToastPriority::__Unknown(i)); + } + }, + ); } fn instance_init(obj: &glib::subclass::InitializingObject) {