diff --git a/Cargo.lock b/Cargo.lock index 3af7850..978fa16 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -33,20 +33,20 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "awesome-glib" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27350dee67ab62047647c02da82601b70492406734a183391a64b55381031c1c" +checksum = "b58ebe0a455f59bd6956c3361a1a1f4b51b368446248bef09adeca35807a6312" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] name = "awesome-gtk" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f58c0d91463141ad40ac149e66a3088f70882d7c25fba5f56c24f55747b54df" +checksum = "e6cc35c025d550e19e05c194babf7596c2f3950ec3a7b6f49059dc98a3ce49f0" dependencies = [ "gtk4", ] @@ -68,23 +68,22 @@ dependencies = [ [[package]] name = "cairo-rs" -version = "0.18.5" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +checksum = "2650f66005301bd33cc486dec076e1293c4cecf768bc7ba9bf5d2b1be339b99c" dependencies = [ "bitflags", "cairo-sys-rs", "glib", "libc", - "once_cell", "thiserror", ] [[package]] name = "cairo-sys-rs" -version = "0.18.2" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +checksum = "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64" dependencies = [ "glib-sys", "libc", @@ -102,9 +101,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9fa1897e4325be0d68d48df6aa1a71ac2ed4d27723887e7754192705350730" +checksum = "a0ba8f7aaa012f30d5b2861462f6708eccd49c3c39863fe083a308035f63d723" [[package]] name = "cfg-expr" @@ -246,7 +245,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -281,22 +280,21 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.18.5" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +checksum = "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92" 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", @@ -307,9 +305,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", @@ -322,9 +320,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", @@ -360,9 +358,9 @@ dependencies = [ [[package]] name = "gio" -version = "0.18.4" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +checksum = "2eae10b27b6dd27e22ed0d812c6387deba295e6fc004a8b379e459b663b05a02" dependencies = [ "futures-channel", "futures-core", @@ -371,7 +369,6 @@ dependencies = [ "gio-sys", "glib", "libc", - "once_cell", "pin-project-lite", "smallvec", "thiserror", @@ -379,22 +376,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.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +checksum = "ab9e86540b5d8402e905ad4ce7d6aa544092131ab564f3102175af176b90a053" dependencies = [ "bitflags", "futures-channel", @@ -408,36 +405,37 @@ dependencies = [ "gobject-sys", "libc", "memchr", - "once_cell", "smallvec", "thiserror", ] [[package]] name = "glib-build-tools" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3431c56f463443cba9bc3600248bc6d680cb614c2ee1cdd39dab5415bd12ac5c" +checksum = "108f374fff60efd14b0d70d8916e7213aed18d7dd071ba3e9334ed2dac1dc86a" +dependencies = [ + "gio", +] [[package]] name = "glib-macros" -version = "0.18.5" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +checksum = "0f5897ca27a83e4cdc7b4666850bade0a2e73e17689aabafcc9acddad9d823b8" dependencies = [ "heck", - "proc-macro-crate 2.0.2", - "proc-macro-error", + "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[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", @@ -445,9 +443,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", @@ -456,9 +454,9 @@ dependencies = [ [[package]] name = "graphene-rs" -version = "0.18.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401" +checksum = "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91" dependencies = [ "glib", "graphene-sys", @@ -467,9 +465,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", @@ -479,9 +477,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", @@ -494,9 +492,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", @@ -510,9 +508,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", @@ -531,12 +529,12 @@ 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", "proc-macro-error", "proc-macro2", "quote", @@ -545,9 +543,9 @@ dependencies = [ [[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", @@ -576,9 +574,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "indexmap" -version = "2.2.3" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" dependencies = [ "equivalent", "hashbrown", @@ -624,39 +622,32 @@ dependencies = [ "autocfg", ] -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - [[package]] name = "os_str_bytes" -version = "6.6.1" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" +checksum = "7ac44c994af577c799b1b4bd80dc214701e349873ad894d6cdf96f4f7526e0b9" dependencies = [ "memchr", ] [[package]] name = "pango" -version = "0.18.3" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +checksum = "7809e8af4df8d024a066106b72ca6bc7253a484ae3867041a96103ef8a13188d" 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", @@ -711,22 +702,11 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "once_cell", - "toml_edit 0.19.15", -] - -[[package]] -name = "proc-macro-crate" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" -dependencies = [ - "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.21.1", ] [[package]] @@ -842,7 +822,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -882,9 +862,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.50" +version = "2.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" +checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" dependencies = [ "proc-macro2", "quote", @@ -927,52 +907,52 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[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.6", ] [[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", ] [[package]] name = "toml_edit" -version = "0.19.15" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ "indexmap", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.20.2" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.5", ] [[package]] @@ -1026,34 +1006,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "winapi" -version = "0.3.9" +name = "windows-sys" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", + "windows-targets 0.48.5", ] -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - [[package]] name = "windows-sys" -version = "0.48.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets", + "windows-targets 0.52.4", ] [[package]] @@ -1062,13 +1029,28 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +dependencies = [ + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -1077,42 +1059,84 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" + [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" + [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" + [[package]] name = "winnow" version = "0.5.40" @@ -1122,6 +1146,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.51.0" @@ -1129,5 +1162,5 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc" dependencies = [ "cfg-if", - "windows-sys", + "windows-sys 0.48.0", ] diff --git a/Cargo.toml b/Cargo.toml index cad623f..338eb4b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ readme = "README.md" [dependencies] futures = "0.3" -os_str_bytes = { version = "6", features = ["conversions"] } +os_str_bytes = { version = "7", features = ["conversions"] } rand = "0.8" aes = "0.8" @@ -22,12 +22,12 @@ quick-xml = "0.31" toml = "0.8" serde = { version = "1", features = ["derive"] } -gtk = { package = "gtk4", version = "0.7", features = ["v4_12"] } -awesome-glib = "0.3" -awesome-gtk = "0.3" +gtk = { package = "gtk4", version = "0.8", features = ["v4_12"] } +awesome-glib = "0.4" +awesome-gtk = "0.4" [build-dependencies] -glib-build-tools = "0.18" +glib-build-tools = "0.19" [target.'cfg(target_os = "windows")'.build-dependencies] embed-resource = "2" diff --git a/src/ui/accel_label/mod.rs b/src/ui/accel_label/mod.rs index 3f83dce..629801b 100644 --- a/src/ui/accel_label/mod.rs +++ b/src/ui/accel_label/mod.rs @@ -3,6 +3,7 @@ use gtk::{glib, prelude::*, subclass::prelude::*}; mod imp { use super::*; + use crate::utils::ui::orphan_all_children; #[derive(Default)] pub struct AccelLabel; @@ -32,9 +33,7 @@ mod imp { } fn dispose(&self) { - while let Some(child) = self.obj().first_child() { - child.unparent(); - } + orphan_all_children(&*self.obj()); } } diff --git a/src/ui/dialogs/shortcuts.rs b/src/ui/dialogs/shortcuts.rs index afe97f9..4b90892 100644 --- a/src/ui/dialogs/shortcuts.rs +++ b/src/ui/dialogs/shortcuts.rs @@ -4,7 +4,7 @@ use crate::ui::accel_label::AccelLabel; use gtk::{gdk, glib, prelude::*}; pub fn shortcuts_window( - parent: Option<&impl glib::IsA>, + parent: Option<&impl IsA>, shortcuts: &[ShortcutGroup<'static>], ) -> gtk::Window { let window = gtk::Window::builder() diff --git a/src/ui/edit_record/record_form.rs b/src/ui/edit_record/record_form.rs index 8c9afd0..4db544d 100644 --- a/src/ui/edit_record/record_form.rs +++ b/src/ui/edit_record/record_form.rs @@ -7,6 +7,7 @@ mod imp { use crate::ui::forms::entry::*; use crate::ui::forms::multiline::*; use crate::ui::password_editor::PasswordEditor; + use crate::utils::ui::orphan_all_children; use std::cell::OnceCell; use std::sync::OnceLock; @@ -55,9 +56,7 @@ mod imp { } fn dispose(&self) { - while let Some(child) = self.obj().first_child() { - child.unparent(); - } + orphan_all_children(&*self.obj()); } } diff --git a/src/ui/edit_record/record_widget.rs b/src/ui/edit_record/record_widget.rs index 6f02c48..e6aeeef 100644 --- a/src/ui/edit_record/record_widget.rs +++ b/src/ui/edit_record/record_widget.rs @@ -5,9 +5,9 @@ use gtk::{glib, prelude::*, subclass::prelude::*}; use std::cell::RefCell; mod imp { - use crate::ui::dialogs::show_uri::show_uri; - use super::*; + use crate::ui::dialogs::show_uri::show_uri; + use crate::utils::ui::orphan_all_children; use std::sync::OnceLock; pub struct RecordWidget { @@ -93,9 +93,7 @@ mod imp { } fn dispose(&self) { - while let Some(child) = self.obj().first_child() { - child.unparent(); - } + orphan_all_children(&*self.obj()); } } diff --git a/src/ui/file_pane.rs b/src/ui/file_pane.rs index f83e3c2..6a9e12b 100644 --- a/src/ui/file_pane.rs +++ b/src/ui/file_pane.rs @@ -27,7 +27,7 @@ mod imp { use crate::ui::record_type_popover::RecordTypePopoverBuilder; use crate::ui::record_view::item::DropOption; use crate::utils::typed_list_store::TypedListStore; - use crate::utils::ui::{action_button, action_popover_button}; + use crate::utils::ui::{action_button, action_popover_button, orphan_all_children}; use std::cell::RefCell; use std::sync::OnceLock; @@ -195,9 +195,7 @@ mod imp { } fn dispose(&self) { - while let Some(child) = self.obj().first_child() { - child.unparent(); - } + orphan_all_children(&*self.obj()); } } diff --git a/src/ui/group_selector.rs b/src/ui/group_selector.rs index 446d40a..9f9d643 100644 --- a/src/ui/group_selector.rs +++ b/src/ui/group_selector.rs @@ -8,7 +8,7 @@ use gtk::{gio, glib, prelude::*}; use super::list_item_factory::PSListItemFactory; -pub fn singleton_list(item: &impl glib::IsA) -> gio::ListStore { +pub fn singleton_list(item: &impl IsA) -> gio::ListStore { let list = gio::ListStore::with_type(item.type_()); list.append(item); list diff --git a/src/ui/nav_bar.rs b/src/ui/nav_bar.rs index d359997..223e40c 100644 --- a/src/ui/nav_bar.rs +++ b/src/ui/nav_bar.rs @@ -5,6 +5,7 @@ mod imp { use crate::model::tree::RecordNode; use crate::ui::list_item_factory::PSListItemFactory; use crate::utils::grid_layout::PSGridLayoutExt; + use crate::utils::ui::orphan_all_children; use std::cell::Cell; use std::sync::OnceLock; @@ -147,9 +148,7 @@ mod imp { } fn dispose(&self) { - while let Some(child) = self.obj().first_child() { - child.unparent(); - } + orphan_all_children(&*self.obj()); self.disconnect_model_change_handler(); } } diff --git a/src/ui/open_file.rs b/src/ui/open_file.rs index 31f38d1..2e31026 100644 --- a/src/ui/open_file.rs +++ b/src/ui/open_file.rs @@ -7,8 +7,7 @@ use std::error::Error; mod imp { use super::*; - use crate::utils::ui::{hexpander, vexpander}; - use awesome_gtk::widget::AwesomeWidgetTraverseExt; + use crate::utils::ui::{hexpander, orphan_all_children, vexpander}; pub struct OpenFile { pub entry: gtk::Entry, @@ -146,9 +145,7 @@ mod imp { } fn dispose(&self) { - for child in self.obj().children() { - child.unparent(); - } + orphan_all_children(&*self.obj()); } } diff --git a/src/ui/password_strength_bar/mod.rs b/src/ui/password_strength_bar/mod.rs index 60d3c31..ec146af 100644 --- a/src/ui/password_strength_bar/mod.rs +++ b/src/ui/password_strength_bar/mod.rs @@ -4,6 +4,7 @@ use gtk::{glib, prelude::*, subclass::prelude::*}; mod imp { use super::*; + use crate::utils::ui::orphan_all_children; #[derive(Default)] pub struct PasswordStrengthBar { @@ -43,9 +44,7 @@ mod imp { } fn dispose(&self) { - while let Some(child) = self.obj().first_child() { - child.unparent(); - } + orphan_all_children(&*self.obj()); } } diff --git a/src/ui/record_view/compose_paintable.rs b/src/ui/record_view/compose_paintable.rs index b10cb34..ec8a853 100644 --- a/src/ui/record_view/compose_paintable.rs +++ b/src/ui/record_view/compose_paintable.rs @@ -52,7 +52,7 @@ glib::wrapper! { } impl PSBackgroundPaintable { - pub fn new(next: impl glib::IsA) -> Self { + pub fn new(next: impl IsA) -> Self { let obj: Self = glib::Object::builder().build(); obj.imp().next.set(next.upcast()).unwrap(); obj diff --git a/src/ui/record_view/item.rs b/src/ui/record_view/item.rs index 13f2514..1642b5d 100644 --- a/src/ui/record_view/item.rs +++ b/src/ui/record_view/item.rs @@ -39,7 +39,7 @@ mod imp { use crate::ui::dialogs::show_uri::show_uri; use crate::ui::record_view::compose_paintable::PSBackgroundPaintable; use crate::utils::style::StaticCssExt; - use awesome_gtk::widget::AwesomeWidgetTraverseExt; + use crate::utils::ui::orphan_all_children; use std::cell::{Cell, RefCell}; use std::sync::OnceLock; @@ -159,9 +159,7 @@ mod imp { } fn dispose(&self) { - for child in self.obj().children() { - child.unparent(); - } + orphan_all_children(&*self.obj()); } } diff --git a/src/ui/record_view/view.rs b/src/ui/record_view/view.rs index 556b331..bee3799 100644 --- a/src/ui/record_view/view.rs +++ b/src/ui/record_view/view.rs @@ -6,7 +6,7 @@ use gtk::{gdk, gio, glib, prelude::*, subclass::prelude::*}; mod imp { use super::*; use crate::ui::record_view::item::PSRecordViewItem; - use crate::utils::ui::scrolled; + use crate::utils::ui::{orphan_all_children, scrolled}; use crate::weak_map::WeakMap; use std::cell::RefCell; use std::rc::Rc; @@ -112,9 +112,7 @@ mod imp { } fn dispose(&self) { - while let Some(child) = self.obj().first_child() { - child.unparent(); - } + orphan_all_children(&*self.obj()); } } diff --git a/src/ui/search.rs b/src/ui/search.rs index 6195209..60be399 100644 --- a/src/ui/search.rs +++ b/src/ui/search.rs @@ -29,6 +29,7 @@ pub struct SearchConfig { mod imp { use super::*; + use crate::utils::ui::orphan_all_children; use std::sync::OnceLock; #[derive(Default)] @@ -133,9 +134,7 @@ mod imp { } fn dispose(&self) { - while let Some(child) = self.obj().first_child() { - child.unparent(); - } + orphan_all_children(&*self.obj()); } } diff --git a/src/utils/grid_layout.rs b/src/utils/grid_layout.rs index 649bcc0..4055bdd 100644 --- a/src/utils/grid_layout.rs +++ b/src/utils/grid_layout.rs @@ -1,11 +1,11 @@ -use gtk::{glib, prelude::*}; +use gtk::prelude::*; pub trait PSGridLayoutExt { - fn grid_attach(&self, child: &impl glib::IsA) -> gtk::GridLayoutChild; + fn grid_attach(&self, child: &impl IsA) -> gtk::GridLayoutChild; } -impl> PSGridLayoutExt for T { - fn grid_attach(&self, child: &impl glib::IsA) -> gtk::GridLayoutChild { +impl> PSGridLayoutExt for T { + fn grid_attach(&self, child: &impl IsA) -> gtk::GridLayoutChild { child.set_parent(self); self.layout_manager() .and_downcast::() diff --git a/src/utils/list_model.rs b/src/utils/list_model.rs index 1e95812..6a9b5a1 100644 --- a/src/utils/list_model.rs +++ b/src/utils/list_model.rs @@ -6,14 +6,14 @@ pub trait ListModelImmutableExt { fn last(&self) -> Option; fn sliced(&self, range: impl RangeBounds) -> gio::ListStore; - fn appended>(&self, new_item: &T) -> gio::ListStore { + fn appended>(&self, new_item: &T) -> gio::ListStore { let result = self.sliced(..); result.append(new_item); result } } -impl> ListModelImmutableExt for T { +impl> ListModelImmutableExt for T { fn first(&self) -> Option { let size = self.n_items(); if size > 0 { diff --git a/src/utils/style.rs b/src/utils/style.rs index 095bc9e..e914be4 100644 --- a/src/utils/style.rs +++ b/src/utils/style.rs @@ -19,7 +19,7 @@ pub trait StaticCssExt { fn add_static_css(&self, css: &'static str, priority: u32); } -impl> StaticCssExt for W { +impl> StaticCssExt for W { fn add_static_css(&self, css: &'static str, priority: u32) { self.connect_realize(move |this| { add_static_css(&this.display(), css, priority); @@ -31,7 +31,7 @@ pub trait PSStyleContextExt { fn set_css_class(&self, class_name: &str, set: bool); } -impl> PSStyleContextExt for O { +impl> PSStyleContextExt for O { fn set_css_class(&self, class_name: &str, set: bool) { if set { self.add_css_class(class_name); diff --git a/src/utils/typed_list_store.rs b/src/utils/typed_list_store.rs index 8e6b0a6..64ad320 100644 --- a/src/utils/typed_list_store.rs +++ b/src/utils/typed_list_store.rs @@ -7,7 +7,7 @@ pub struct TypedListStore(gio::ListStore, PhantomData); impl TypedListStore where - T: glib::IsA, + T: IsA, { pub fn from_untyped(list: gio::ListStore) -> Self { Self(list, PhantomData) @@ -165,7 +165,7 @@ where impl std::default::Default for TypedListStore where - T: glib::IsA, + T: IsA, { fn default() -> Self { Self::new() @@ -179,7 +179,7 @@ pub struct ListStoreIterator { impl std::iter::Iterator for ListStoreIterator where - T: glib::IsA, + T: IsA, { type Item = T; @@ -194,7 +194,7 @@ where impl std::iter::IntoIterator for &TypedListStore where - T: glib::IsA, + T: IsA, { type Item = T; type IntoIter = ListStoreIterator; @@ -206,7 +206,7 @@ where impl std::iter::FromIterator for TypedListStore where - T: glib::IsA, + T: IsA, { fn from_iter>(iter: I) -> Self { let list = TypedListStore::new(); @@ -219,7 +219,7 @@ where impl std::cmp::PartialEq for TypedListStore where - T: glib::IsA + PartialEq, + T: IsA + PartialEq, { fn eq(&self, other: &TypedListStore) -> bool { let len = self.len(); diff --git a/src/utils/ui.rs b/src/utils/ui.rs index 63b53bb..6b9acf3 100644 --- a/src/utils/ui.rs +++ b/src/utils/ui.rs @@ -33,6 +33,12 @@ impl PSWidgetLookupExt for Option { } } +pub fn orphan_all_children(widget: &impl IsA) { + while let Some(child) = widget.first_child() { + child.unparent(); + } +} + pub fn centered>(widget: &W) -> gtk::Widget { widget.set_hexpand(true); widget.set_halign(gtk::Align::Center); diff --git a/src/weak_map.rs b/src/weak_map.rs index 49ec12b..e19243d 100644 --- a/src/weak_map.rs +++ b/src/weak_map.rs @@ -1,11 +1,11 @@ use gtk::{glib, glib::prelude::*}; use std::cell::RefCell; -pub struct WeakMap { +pub struct WeakMap { mappings: RefCell)>>, } -impl Default for WeakMap { +impl Default for WeakMap { fn default() -> Self { Self { mappings: Default::default(), @@ -13,7 +13,7 @@ impl Default for WeakMap { } } -impl WeakMap { +impl WeakMap { pub fn add(&self, key: K, value: &V) { self.clean_expired(); let position = self