From 682e3ba42b3008f85e160a3f475db9852db6c9aa Mon Sep 17 00:00:00 2001 From: Marcus Behrendt Date: Sun, 4 Feb 2024 17:21:40 +0100 Subject: [PATCH] build(cargo): Update dependencies --- Cargo.lock | 522 ++++++++++++---------- Cargo.toml | 10 +- src/application.rs | 9 +- src/main.rs | 10 +- src/model/abstract_container_list.rs | 15 +- src/model/action.rs | 2 +- src/model/container.rs | 7 +- src/model/device.rs | 7 +- src/model/image.rs | 7 +- src/model/image_list.rs | 7 +- src/model/key_val.rs | 7 +- src/model/mount.rs | 7 +- src/model/pod.rs | 7 +- src/model/pod_list.rs | 7 +- src/model/port_mapping.rs | 7 +- src/model/port_mapping_list.rs | 8 +- src/model/process_list.rs | 7 +- src/model/selectable.rs | 11 +- src/model/selectable_list.rs | 11 +- src/model/simple_container_list.rs | 8 +- src/model/value.rs | 7 +- src/model/volume.rs | 7 +- src/model/volume_list.rs | 7 +- src/utils.rs | 7 +- src/view/action_row.rs | 5 +- src/view/actions_sidebar.rs | 8 +- src/view/client_view.rs | 5 +- src/view/connection_custom_info_dialog.rs | 14 +- src/view/container_details_page.rs | 16 +- src/view/container_log_page.rs | 8 - src/view/container_terminal.rs | 8 +- src/view/container_terminal_page.rs | 6 - src/view/containers_panel.rs | 1 - src/view/image.rs | 1 - src/view/image_details_page.rs | 1 - src/view/image_search_page.rs | 15 +- src/view/image_selection_page.rs | 30 +- src/view/images_panel.rs | 1 - src/view/pod.rs | 1 - src/view/pod_details_page.rs | 1 - src/view/pod_selection_page.rs | 30 +- src/view/pods_panel.rs | 1 - src/view/repo_tag_push_page.rs | 5 +- src/view/repo_tag_selection_page.rs | 30 +- src/view/scalable_text_view_page.rs | 8 - src/view/top_page.rs | 7 +- src/view/volume.rs | 1 - src/view/volume_details_page.rs | 1 - src/view/volume_selection_page.rs | 30 +- src/view/volumes_panel.rs | 1 - src/view/window.rs | 30 +- src/widget/circular_progress_bar.rs | 8 +- src/widget/efficient_spinner.rs | 2 +- src/widget/property_row.rs | 9 +- src/widget/property_widget_row.rs | 9 +- src/widget/source_view_search_widget.rs | 2 - src/widget/spinner.rs | 8 +- src/widget/text_search_entry.rs | 9 +- 58 files changed, 468 insertions(+), 548 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ebd6254e..886ef20b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -55,14 +55,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" [[package]] name = "ashpd" -version = "0.6.0" -source = "git+https://github.com/bilelmoussaoui/ashpd.git?rev=30216eccd3f4ecb50c4d34a493a33e6eef4e375c#30216eccd3f4ecb50c4d34a493a33e6eef4e375c" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01992ad7774250d5b7fe214e2676cb99bf92564436d8135ab44fe815e71769a9" dependencies = [ "enumflags2", "futures-channel", @@ -70,7 +71,6 @@ dependencies = [ "gdk4-wayland", "gdk4-x11", "gtk4", - "once_cell", "rand", "serde", "serde_repr", @@ -96,7 +96,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" dependencies = [ "concurrent-queue", - "event-listener 4.0.0", + "event-listener 4.0.3", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -124,18 +124,18 @@ dependencies = [ [[package]] name = "async-io" -version = "2.2.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" +checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65" dependencies = [ - "async-lock 3.2.0", + "async-lock 3.3.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.1.0", + "futures-lite 2.2.0", "parking", - "polling 3.3.1", - "rustix 0.38.28", + "polling 3.3.2", + "rustix 0.38.31", "slab", "tracing", "windows-sys 0.52.0", @@ -152,11 +152,11 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" +checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ - "event-listener 4.0.0", + "event-listener 4.0.3", "event-listener-strategy", "pin-project-lite", ] @@ -174,7 +174,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.28", + "rustix 0.38.31", "windows-sys 0.48.0", ] @@ -186,7 +186,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.48", ] [[package]] @@ -195,13 +195,13 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" dependencies = [ - "async-io 2.2.2", + "async-io 2.3.1", "async-lock 2.8.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.28", + "rustix 0.38.31", "signal-hook-registry", "slab", "windows-sys 0.48.0", @@ -209,19 +209,19 @@ dependencies = [ [[package]] name = "async-task" -version = "4.6.0" +version = "4.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46" +checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.48", ] [[package]] @@ -265,9 +265,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" [[package]] name = "block" @@ -300,11 +300,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ "async-channel", - "async-lock 3.2.0", + "async-lock 3.3.0", "async-task", "fastrand 2.0.1", "futures-io", - "futures-lite 2.1.0", + "futures-lite 2.2.0", "piper", "tracing", ] @@ -335,21 +335,22 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cairo-rs" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc1c415b7088381c53c575420899c34c9e6312df5ac5defd05614210e9fd6e1b" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "cairo-sys-rs", "glib", "libc", - "once_cell", "thiserror", ] [[package]] name = "cairo-sys-rs" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b6a5fefce2eadb8333e3c604ac964ba6573ec4f28bdd17f67032c4a2831831" dependencies = [ "glib-sys", "libc", @@ -376,9 +377,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.5" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" +checksum = "6100bc57b6209840798d95cb2775684849d332f7bd788db2a8c8caf7ef82a41a" dependencies = [ "smallvec", "target-lexicon", @@ -392,9 +393,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" dependencies = [ "android-tzdata", "iana-time-zone", @@ -402,7 +403,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.48.5", + "windows-targets 0.52.0", ] [[package]] @@ -440,7 +441,7 @@ dependencies = [ "log", "mime", "paste", - "pin-project 1.1.3", + "pin-project 1.1.4", "serde", "serde_json", "tar", @@ -457,9 +458,9 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] @@ -475,12 +476,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.17" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" -dependencies = [ - "cfg-if", -] +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" [[package]] name = "crypto-common" @@ -495,9 +493,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", ] @@ -542,7 +540,7 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.48", ] [[package]] @@ -589,9 +587,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "4.0.0" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ "concurrent-queue", "parking", @@ -604,7 +602,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 4.0.0", + "event-listener 4.0.3", "pin-project-lite", ] @@ -672,9 +670,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -687,9 +685,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -697,15 +695,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -714,9 +712,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" @@ -735,9 +733,9 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" +checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" dependencies = [ "futures-core", "pin-project-lite", @@ -745,32 +743,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.48", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", @@ -799,19 +797,20 @@ dependencies = [ [[package]] name = "gdk-pixbuf" version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c311c47800051b87de1335e8792774d7cec551c91a0a3d109ab21d76b36f208f" dependencies = [ "gdk-pixbuf-sys", "gio", "glib", "libc", - "once_cell", ] [[package]] name = "gdk-pixbuf-sys" version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96" dependencies = [ "gio-sys", "glib-sys", @@ -823,7 +822,8 @@ dependencies = [ [[package]] name = "gdk4" version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#42772bc0af288e88d4b273a0c4abd8178d4bb2d8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6771942f85a2beaa220c64739395e4401b9fab4a52aba9b503fa1e6ed4d4d806" dependencies = [ "cairo-rs", "gdk-pixbuf", @@ -837,7 +837,8 @@ dependencies = [ [[package]] name = "gdk4-sys" version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#42772bc0af288e88d4b273a0c4abd8178d4bb2d8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1eb95854fab65072023a7814434f003db571d6e45c287c0b0c540c1c78bdf6ae" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -853,7 +854,8 @@ dependencies = [ [[package]] name = "gdk4-wayland" version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#42772bc0af288e88d4b273a0c4abd8178d4bb2d8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "075cdd6b1c8aee8aefd4216b5483024f29d4102ec180f770ae28fe54f53019cf" dependencies = [ "gdk4", "gdk4-wayland-sys", @@ -865,7 +867,8 @@ dependencies = [ [[package]] name = "gdk4-wayland-sys" version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#42772bc0af288e88d4b273a0c4abd8178d4bb2d8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e02d324a9bf7136bc4b610423537c5f5852d71f53dee8fe63d7ac658333e762" dependencies = [ "glib-sys", "libc", @@ -875,7 +878,8 @@ dependencies = [ [[package]] name = "gdk4-x11" version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#42772bc0af288e88d4b273a0c4abd8178d4bb2d8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2f2c2b41c444f5661fd6b4e42eff18e79df627863d3e0d3db8eef984b714c41" dependencies = [ "gdk4", "gdk4-x11-sys", @@ -887,7 +891,8 @@ dependencies = [ [[package]] name = "gdk4-x11-sys" version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#42772bc0af288e88d4b273a0c4abd8178d4bb2d8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a90e4b5371704921d6f7704282502a47020acb456dc66129a81889b652af4dfd" dependencies = [ "gdk4-sys", "glib-sys", @@ -907,9 +912,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if", "libc", @@ -945,7 +950,8 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "gio" version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1aaa2d926710a27f3b35822806b1513b393b71174dd2601c9d02fdab0cb82" dependencies = [ "futures-channel", "futures-core", @@ -954,7 +960,6 @@ dependencies = [ "gio-sys", "glib", "libc", - "once_cell", "pin-project-lite", "smallvec", "thiserror", @@ -963,7 +968,8 @@ dependencies = [ [[package]] name = "gio-sys" version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4" dependencies = [ "glib-sys", "gobject-sys", @@ -975,9 +981,10 @@ dependencies = [ [[package]] name = "glib" version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170ee82b9b44b3b5fd1cf4971d6cf0eadec38303bb84c7bcc4e6b95a18934e71" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "futures-channel", "futures-core", "futures-executor", @@ -989,7 +996,6 @@ dependencies = [ "gobject-sys", "libc", "memchr", - "once_cell", "smallvec", "thiserror", ] @@ -997,20 +1003,21 @@ dependencies = [ [[package]] name = "glib-macros" version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ff52fff7e4d1bb8598ae744e9bb90c8c76271712483c3f0ce931bee9814de85" dependencies = [ "heck", - "proc-macro-crate 2.0.1", - "proc-macro-error", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.48", ] [[package]] name = "glib-sys" version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4" dependencies = [ "libc", "system-deps", @@ -1019,7 +1026,8 @@ dependencies = [ [[package]] name = "gobject-sys" version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979" dependencies = [ "glib-sys", "libc", @@ -1029,7 +1037,8 @@ dependencies = [ [[package]] name = "graphene-rs" version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147827e4f506f8073ac3ec5b28cc2255bdf3abc30f5b4e101a80506eebe11d2c" dependencies = [ "glib", "graphene-sys", @@ -1039,7 +1048,8 @@ dependencies = [ [[package]] name = "graphene-sys" version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0" dependencies = [ "glib-sys", "libc", @@ -1050,7 +1060,8 @@ dependencies = [ [[package]] name = "gsk4" version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#42772bc0af288e88d4b273a0c4abd8178d4bb2d8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e8ce8dee0fd87a11002214b1204ff18c9272fbd530408f0884a0f9b25dc31de" dependencies = [ "cairo-rs", "gdk4", @@ -1064,7 +1075,8 @@ dependencies = [ [[package]] name = "gsk4-sys" version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#42772bc0af288e88d4b273a0c4abd8178d4bb2d8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2660a652da5b662d43924df19ba40d73f015ed427329ef51d2b1360a4e0dc0e4" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -1079,7 +1091,8 @@ dependencies = [ [[package]] name = "gtk4" version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#42772bc0af288e88d4b273a0c4abd8178d4bb2d8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d26ffa3ec6316ccaa1df62d3e7f5bae1637c0acbb43f250fabef38319f73c64" dependencies = [ "cairo-rs", "field-offset", @@ -1099,10 +1112,11 @@ dependencies = [ [[package]] name = "gtk4-macros" version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#42772bc0af288e88d4b273a0c4abd8178d4bb2d8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8b86439e9896f6f3f47c3d8077c5c8205174078760afdabd9098a8e9e937d97" dependencies = [ "anyhow", - "proc-macro-crate 2.0.1", + "proc-macro-crate 3.1.0", "proc-macro-error", "proc-macro2", "quote", @@ -1112,7 +1126,8 @@ dependencies = [ [[package]] name = "gtk4-sys" version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#42772bc0af288e88d4b273a0c4abd8178d4bb2d8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2abc0a6d356d59a3806021829ce6ed3e70bba3509b41a535fedcb09fae13fbc0" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -1141,9 +1156,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" [[package]] name = "hex" @@ -1246,15 +1261,15 @@ dependencies = [ "futures-util", "hex", "hyper", - "pin-project 1.1.3", + "pin-project 1.1.4", "tokio", ] [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1285,9 +1300,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" dependencies = [ "equivalent", "hashbrown", @@ -1324,6 +1339,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "io-lifetimes" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a611371471e98973dbcab4e0ec66c31a10bc356eeb4d54a0e05eac8158fe38c" + [[package]] name = "itoa" version = "1.0.10" @@ -1332,9 +1353,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" dependencies = [ "wasm-bindgen", ] @@ -1351,7 +1372,8 @@ dependencies = [ [[package]] name = "libadwaita" version = "0.6.0" -source = "git+https://gitlab.gnome.org/World/Rust/libadwaita-rs#24608c684b8fa59357d0d586fde75c04a464cbf6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9" dependencies = [ "gdk-pixbuf", "gdk4", @@ -1366,7 +1388,8 @@ dependencies = [ [[package]] name = "libadwaita-sys" version = "0.6.0" -source = "git+https://gitlab.gnome.org/World/Rust/libadwaita-rs#24608c684b8fa59357d0d586fde75c04a464cbf6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8" dependencies = [ "gdk4-sys", "gio-sys", @@ -1380,9 +1403,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.151" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libm" @@ -1398,9 +1421,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "locale_config" @@ -1438,9 +1461,9 @@ checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memoffset" @@ -1468,9 +1491,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[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", ] @@ -1568,6 +1591,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-integer" version = "0.1.45" @@ -1660,9 +1689,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] @@ -1675,9 +1704,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "oo7" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "220729ba847d98e1a9902c05e41dae79ce4a0b913dad68bc540dd3120a8c2b6b" +checksum = "aceca83a983f36dd8ee90230636fbf92897cb2dc2701d2ae66f885e20e56978d" dependencies = [ "aes", "byteorder", @@ -1712,19 +1741,20 @@ dependencies = [ [[package]] name = "pango" version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78d7f779b957728c74fd1a060dfa6d89a0bea792ebc50cc2da80e4e87282d69e" dependencies = [ "gio", "glib", "libc", - "once_cell", "pango-sys", ] [[package]] name = "pango-sys" version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#68da79cb6126f79b74d3f6a22171867cc2aa6b4c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea" dependencies = [ "glib-sys", "gobject-sys", @@ -1777,11 +1807,11 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" dependencies = [ - "pin-project-internal 1.1.3", + "pin-project-internal 1.1.4", ] [[package]] @@ -1797,13 +1827,13 @@ dependencies = [ [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.48", ] [[package]] @@ -1831,9 +1861,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" [[package]] name = "podman-api" @@ -1915,14 +1945,14 @@ dependencies = [ [[package]] name = "polling" -version = "3.3.1" +version = "3.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" +checksum = "545c980a3880efd47b2e262f6a4bb6daad6555cf3367aa9c4e52895f69537a41" dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite", - "rustix 0.38.28", + "rustix 0.38.31", "tracing", "windows-sys 0.52.0", ] @@ -1951,12 +1981,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "2.0.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.21.1", ] [[package]] @@ -1985,18 +2014,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -2051,9 +2080,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.2" +version = "1.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", @@ -2063,9 +2092,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" dependencies = [ "aho-corasick", "memchr", @@ -2101,7 +2130,7 @@ checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" dependencies = [ "bitflags 1.3.2", "errno", - "io-lifetimes", + "io-lifetimes 1.0.11", "libc", "linux-raw-sys 0.3.8", "windows-sys 0.48.0", @@ -2109,14 +2138,14 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.28" +version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "errno", "libc", - "linux-raw-sys 0.4.12", + "linux-raw-sys 0.4.13", "windows-sys 0.52.0", ] @@ -2128,35 +2157,35 @@ checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "semver" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" [[package]] name = "serde" -version = "1.0.193" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.48", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" dependencies = [ "itoa", "ryu", @@ -2165,20 +2194,20 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.48", ] [[package]] name = "serde_spanned" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" dependencies = [ "serde", ] @@ -2237,9 +2266,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] name = "socket2" @@ -2264,7 +2293,8 @@ dependencies = [ [[package]] name = "sourceview5" version = "0.8.0" -source = "git+https://gitlab.gnome.org/World/Rust/sourceview5-rs.git#5baec2e87544136de6c3e1a3614624d60986d530" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f0bf70f2f1ac4624af22056f9c4cf58dccff73dafc7207b46fbd3df7b57410f" dependencies = [ "futures-channel", "futures-core", @@ -2281,7 +2311,8 @@ dependencies = [ [[package]] name = "sourceview5-sys" version = "0.8.0" -source = "git+https://gitlab.gnome.org/World/Rust/sourceview5-rs.git#5baec2e87544136de6c3e1a3614624d60986d530" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac236ad7ce6dad2b819ced8b68b5a1cf4d968aa301cb9a7692470eb21f657be" dependencies = [ "gdk-pixbuf-sys", "gdk4-sys", @@ -2325,9 +2356,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.41" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ "proc-macro2", "quote", @@ -2373,27 +2404,27 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.12" +version = "0.12.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" +checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" [[package]] name = "temp-dir" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab" +checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6" [[package]] name = "tempfile" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" dependencies = [ "cfg-if", "fastrand 2.0.1", "redox_syscall 0.4.1", - "rustix 0.38.28", - "windows-sys 0.48.0", + "rustix 0.38.31", + "windows-sys 0.52.0", ] [[package]] @@ -2407,33 +2438,34 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.48", ] [[package]] name = "time" -version = "0.3.30" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" dependencies = [ "deranged", "itoa", "libc", + "num-conv", "num_threads", "powerfmt", "serde", @@ -2449,10 +2481,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" dependencies = [ + "num-conv", "time-core", ] @@ -2473,9 +2506,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.0" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" dependencies = [ "backtrace", "bytes 1.5.0", @@ -2516,21 +2549,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.2" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +checksum = "c6a4b9e8023eb94392d3dca65d717c53abc5dad49c07cb65bb8fcd87115fa325" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.21.1", ] [[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", ] @@ -2548,9 +2581,9 @@ 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", "serde", @@ -2584,7 +2617,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.48", ] [[package]] @@ -2621,9 +2654,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -2682,15 +2715,16 @@ dependencies = [ [[package]] name = "vte4" -version = "0.8.0" -source = "git+https://gitlab.gnome.org/World/Rust/vte4-rs.git#aa466f43ead6190c6c4b8792f78ed766df1c289e" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "666a15c7ac6316a3c1bf8c5bc30d687e7405a8cba120c50569a7adeeabbbd1c6" dependencies = [ - "bitflags 1.3.2", + "cairo-rs", "gdk4", "gio", "glib", "gtk4", - "io-lifetimes", + "io-lifetimes 2.0.3", "libc", "pango", "vte4-sys", @@ -2698,9 +2732,11 @@ dependencies = [ [[package]] name = "vte4-sys" -version = "0.8.0" -source = "git+https://gitlab.gnome.org/World/Rust/vte4-rs.git#aa466f43ead6190c6c4b8792f78ed766df1c289e" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d893a06a0907d5b843f34400ff0a7990332011e53faa7435635f0b12aacc3f88" dependencies = [ + "cairo-sys-rs", "gdk4-sys", "gio-sys", "glib-sys", @@ -2743,9 +2779,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2753,24 +2789,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.48", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2778,22 +2814,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.48", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" [[package]] name = "winapi" @@ -2828,11 +2864,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.52.0", ] [[package]] @@ -2969,39 +3005,39 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.28" +version = "0.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2" +checksum = "a7cad8365489051ae9f054164e459304af2e7e9bb407c958076c8bf4aef52da5" dependencies = [ "memchr", ] [[package]] name = "xattr" -version = "1.1.3" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7dae5072fe1f8db8f8d29059189ac175196e410e40ba42d5d4684ae2f750995" +checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" dependencies = [ "libc", - "linux-raw-sys 0.4.12", - "rustix 0.38.28", + "linux-raw-sys 0.4.13", + "rustix 0.38.31", ] [[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", + "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-process", @@ -3035,9 +3071,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", @@ -3075,7 +3111,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.48", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 9e6a830f..6bc71194 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,12 +5,12 @@ authors = ["Marcus Behrendt "] edition = "2021" [dependencies] -adw = { git = "https://gitlab.gnome.org/World/Rust/libadwaita-rs", version = "0.6", package = "libadwaita", features = ["v1_4"] } +adw = { version = "0.6", package = "libadwaita", features = ["v1_4"] } anyhow = "1" -ashpd = { git = "https://github.com/bilelmoussaoui/ashpd.git", version = "0.6", rev = "30216eccd3f4ecb50c4d34a493a33e6eef4e375c", default-features = false, features = ["gtk4", "tokio"] } +ashpd = { version = "0.7", default-features = false, features = ["gtk4", "tokio"] } futures = { version = "0.3", default-features = false } gettext-rs = { version = "0.7", features = ["gettext-system"] } -gtk = { git = "https://github.com/gtk-rs/gtk4-rs.git", version = "0.8", package = "gtk4", features = ["gnome_45"] } +gtk = { version = "0.8", package = "gtk4", features = ["gnome_45"] } indexmap = { version = "2", features = ["serde"] } log = "0.4" multi_log = "0.1" @@ -21,12 +21,12 @@ podman-api = { git = "https://github.com/vv9k/podman-api-rs.git", commit = "363d serde = "1" serde_json = "1" simplelog = { version = "0.12", features = ["paris"] } -sourceview5 = { git = "https://gitlab.gnome.org/World/Rust/sourceview5-rs.git", version = "0.8", features = ["gtk_v4_12"] } +sourceview5 = { version = "0.8", features = ["gtk_v4_12"] } syslog = "6" tokio = "1" tokio-tar = { version = "0.3", default-features = false } vte = { version = "0.13", default-features = false } -vte4 = { git = "https://gitlab.gnome.org/World/Rust/vte4-rs.git", version = "0.8" } +vte4 = "0.7" [profile.release] lto = true diff --git a/src/application.rs b/src/application.rs index 0c333d51..1591c0c9 100644 --- a/src/application.rs +++ b/src/application.rs @@ -1,11 +1,11 @@ use std::cell::Cell; use std::cell::OnceCell; +use std::sync::OnceLock; use adw::prelude::*; use adw::subclass::prelude::*; use gettextrs::gettext; use glib::clone; -use glib::once_cell::sync::Lazy; use gtk::gdk; use gtk::gio; use gtk::glib; @@ -33,10 +33,9 @@ mod imp { impl ObjectImpl for Application { fn properties() -> &'static [glib::ParamSpec] { - static PROPERTIES: Lazy> = - Lazy::new(|| vec![glib::ParamSpecUInt64::builder("ticks").read_only().build()]); - - PROPERTIES.as_ref() + static PROPERTIES: OnceLock> = OnceLock::new(); + PROPERTIES + .get_or_init(|| vec![glib::ParamSpecUInt64::builder("ticks").read_only().build()]) } fn property(&self, _id: usize, pspec: &glib::ParamSpec) -> glib::Value { diff --git a/src/main.rs b/src/main.rs index 29c00665..0c8b0d44 100644 --- a/src/main.rs +++ b/src/main.rs @@ -18,17 +18,19 @@ use adw::prelude::*; use gettextrs::gettext; use gettextrs::LocaleCategory; use glib::clone; -use glib::once_cell::sync::Lazy; use gtk::gio; use gtk::glib; use self::application::Application; pub(crate) static APPLICATION_OPTS: OnceLock = OnceLock::new(); -pub(crate) static RUNTIME: Lazy = - Lazy::new(|| tokio::runtime::Runtime::new().unwrap()); pub(crate) static KEYRING: OnceLock = OnceLock::new(); +fn runtime() -> &'static tokio::runtime::Runtime { + static RUNTIME: OnceLock = OnceLock::new(); + RUNTIME.get_or_init(|| tokio::runtime::Runtime::new().unwrap()) +} + fn main() { let app = setup_cli(Application::default()); @@ -128,7 +130,7 @@ fn main() { } }); - RUNTIME.block_on(async { + crate::runtime().block_on(async { match oo7::Keyring::new().await { Ok(keyring) => KEYRING.set(keyring).unwrap(), Err(e) => log::error!("Failed to start Secret Service: {e}"), diff --git a/src/model/abstract_container_list.rs b/src/model/abstract_container_list.rs index 2a8d25e2..1b45bc92 100644 --- a/src/model/abstract_container_list.rs +++ b/src/model/abstract_container_list.rs @@ -1,6 +1,7 @@ +use std::sync::OnceLock; + use gio::prelude::*; use glib::clone; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::subclass::prelude::*; use glib::subclass::Signal; use gtk::gio; @@ -20,7 +21,8 @@ mod imp { type Prerequisites = (gio::ListModel,); fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = SyncLazy::new(|| { + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| { vec![ Signal::builder("container-added") .param_types([model::Container::static_type()]) @@ -32,12 +34,12 @@ mod imp { .param_types([model::Container::static_type()]) .build(), ] - }); - SIGNALS.as_ref() + }) } fn properties() -> &'static [glib::ParamSpec] { - static PROPERTIES: SyncLazy> = SyncLazy::new(|| { + static PROPERTIES: OnceLock> = OnceLock::new(); + PROPERTIES.get_or_init(|| { vec![ glib::ParamSpecUInt::builder("len").read_only().build(), glib::ParamSpecUInt::builder("created").read_only().build(), @@ -52,8 +54,7 @@ mod imp { glib::ParamSpecUInt::builder("stopped").read_only().build(), glib::ParamSpecUInt::builder("stopping").read_only().build(), ] - }); - PROPERTIES.as_ref() + }) } } } diff --git a/src/model/action.rs b/src/model/action.rs index 9e709a13..e8d7916c 100644 --- a/src/model/action.rs +++ b/src/model/action.rs @@ -765,7 +765,7 @@ impl Action { } if run { - crate::RUNTIME.spawn({ + crate::runtime().spawn({ let podman = client.podman(); async move { podman diff --git a/src/model/container.rs b/src/model/container.rs index 97591743..b0604e37 100644 --- a/src/model/container.rs +++ b/src/model/container.rs @@ -5,11 +5,11 @@ use std::collections::HashSet; use std::fmt; use std::ops::Deref; use std::str::FromStr; +use std::sync::OnceLock; use futures::Future; use gettextrs::gettext; use glib::clone; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::prelude::*; use glib::subclass::prelude::*; use glib::subclass::Signal; @@ -191,9 +191,8 @@ mod imp { impl ObjectImpl for Container { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = - SyncLazy::new(|| vec![Signal::builder("deleted").build()]); - SIGNALS.as_ref() + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| vec![Signal::builder("deleted").build()]) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/model/device.rs b/src/model/device.rs index 8dc22727..9812ac9f 100644 --- a/src/model/device.rs +++ b/src/model/device.rs @@ -1,7 +1,7 @@ use std::cell::Cell; use std::cell::RefCell; +use std::sync::OnceLock; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::prelude::*; use glib::subclass::prelude::*; use glib::subclass::Signal; @@ -34,9 +34,8 @@ mod imp { impl ObjectImpl for Device { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = - SyncLazy::new(|| vec![Signal::builder("remove-request").build()]); - SIGNALS.as_ref() + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| vec![Signal::builder("remove-request").build()]) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/model/image.rs b/src/model/image.rs index b0eb52e3..7c3930fa 100644 --- a/src/model/image.rs +++ b/src/model/image.rs @@ -3,9 +3,9 @@ use std::cell::OnceCell; use std::cell::RefCell; use std::collections::HashSet; use std::ops::Deref; +use std::sync::OnceLock; use glib::clone; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::prelude::*; use glib::subclass::prelude::*; use glib::subclass::Signal; @@ -64,9 +64,8 @@ mod imp { impl ObjectImpl for Image { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = - SyncLazy::new(|| vec![Signal::builder("deleted").build()]); - SIGNALS.as_ref() + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| vec![Signal::builder("deleted").build()]) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/model/image_list.rs b/src/model/image_list.rs index dee2f500..158714b2 100644 --- a/src/model/image_list.rs +++ b/src/model/image_list.rs @@ -7,7 +7,6 @@ use std::sync::OnceLock; use gio::prelude::*; use gio::subclass::prelude::*; use glib::clone; -use glib::once_cell::sync::Lazy; use glib::subclass::Signal; use glib::Properties; use gtk::gio; @@ -46,7 +45,8 @@ mod imp { impl ObjectImpl for ImageList { fn signals() -> &'static [Signal] { - static SIGNALS: Lazy> = Lazy::new(|| { + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| { vec![ Signal::builder("image-added") .param_types([model::Image::static_type()]) @@ -55,8 +55,7 @@ mod imp { .param_types([model::Image::static_type()]) .build(), ] - }); - SIGNALS.as_ref() + }) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/model/key_val.rs b/src/model/key_val.rs index ac7fa187..d65fa873 100644 --- a/src/model/key_val.rs +++ b/src/model/key_val.rs @@ -1,6 +1,6 @@ use std::cell::RefCell; +use std::sync::OnceLock; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::prelude::*; use glib::subclass::prelude::*; use glib::subclass::Signal; @@ -28,9 +28,8 @@ mod imp { impl ObjectImpl for KeyVal { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = - SyncLazy::new(|| vec![Signal::builder("remove-request").build()]); - SIGNALS.as_ref() + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| vec![Signal::builder("remove-request").build()]) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/model/mount.rs b/src/model/mount.rs index b75cfbc6..2450f606 100644 --- a/src/model/mount.rs +++ b/src/model/mount.rs @@ -1,8 +1,8 @@ use std::cell::Cell; use std::cell::RefCell; use std::fmt; +use std::sync::OnceLock; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::prelude::*; use glib::subclass::prelude::*; use glib::subclass::Signal; @@ -76,9 +76,8 @@ mod imp { impl ObjectImpl for Mount { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = - SyncLazy::new(|| vec![Signal::builder("remove-request").build()]); - SIGNALS.as_ref() + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| vec![Signal::builder("remove-request").build()]) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/model/pod.rs b/src/model/pod.rs index 2f42b66c..0595d67d 100644 --- a/src/model/pod.rs +++ b/src/model/pod.rs @@ -5,12 +5,12 @@ use std::fmt; use std::ops::Deref; use std::rc::Rc; use std::str::FromStr; +use std::sync::OnceLock; use futures::prelude::*; use futures::Future; use gettextrs::gettext; use glib::clone; -use glib::once_cell::sync::Lazy; use glib::prelude::*; use glib::subclass::prelude::*; use glib::subclass::Signal; @@ -121,9 +121,8 @@ mod imp { impl ObjectImpl for Pod { fn signals() -> &'static [Signal] { - static SIGNALS: Lazy> = - Lazy::new(|| vec![Signal::builder("deleted").build()]); - SIGNALS.as_ref() + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| vec![Signal::builder("deleted").build()]) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/model/pod_list.rs b/src/model/pod_list.rs index 22ce49c0..bbbdb87b 100644 --- a/src/model/pod_list.rs +++ b/src/model/pod_list.rs @@ -6,7 +6,6 @@ use std::sync::OnceLock; use gio::prelude::*; use gio::subclass::prelude::*; use glib::clone; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::subclass::Signal; use glib::Properties; use gtk::gio; @@ -45,12 +44,12 @@ mod imp { impl ObjectImpl for PodList { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = SyncLazy::new(|| { + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| { vec![Signal::builder("pod-added") .param_types([model::Pod::static_type()]) .build()] - }); - SIGNALS.as_ref() + }) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/model/port_mapping.rs b/src/model/port_mapping.rs index 6b96b164..77ec3166 100644 --- a/src/model/port_mapping.rs +++ b/src/model/port_mapping.rs @@ -2,8 +2,8 @@ use std::cell::Cell; use std::cell::RefCell; use std::fmt; use std::str::FromStr; +use std::sync::OnceLock; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::prelude::*; use glib::subclass::prelude::*; use glib::subclass::Signal; @@ -72,9 +72,8 @@ mod imp { impl ObjectImpl for PortMapping { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = - SyncLazy::new(|| vec![Signal::builder("remove-request").build()]); - SIGNALS.as_ref() + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| vec![Signal::builder("remove-request").build()]) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/model/port_mapping_list.rs b/src/model/port_mapping_list.rs index c10d7077..ec0b580d 100644 --- a/src/model/port_mapping_list.rs +++ b/src/model/port_mapping_list.rs @@ -1,8 +1,8 @@ use std::cell::OnceCell; +use std::sync::OnceLock; use gio::prelude::*; use gio::subclass::prelude::*; -use glib::once_cell::sync::Lazy as SyncLazy; use gtk::gio; use gtk::glib; @@ -26,12 +26,12 @@ mod imp { impl ObjectImpl for PortMappingList { fn properties() -> &'static [glib::ParamSpec] { - static PROPERTIES: SyncLazy> = SyncLazy::new(|| { + static PROPERTIES: OnceLock> = OnceLock::new(); + PROPERTIES.get_or_init(|| { vec![glib::ParamSpecUInt::builder("len") .explicit_notify() .build()] - }); - PROPERTIES.as_ref() + }) } fn property(&self, _id: usize, pspec: &glib::ParamSpec) -> glib::Value { diff --git a/src/model/process_list.rs b/src/model/process_list.rs index 11fced85..c3bcfc58 100644 --- a/src/model/process_list.rs +++ b/src/model/process_list.rs @@ -1,4 +1,5 @@ use std::cell::RefCell; +use std::sync::OnceLock; use futures::stream; use futures::StreamExt; @@ -6,7 +7,6 @@ use futures::TryStreamExt; use gio::prelude::*; use gio::subclass::prelude::*; use glib::clone; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::subclass::Signal; use glib::Properties; use gtk::gio; @@ -38,9 +38,8 @@ mod imp { impl ObjectImpl for ProcessList { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = - SyncLazy::new(|| vec![Signal::builder("updated").build()]); - SIGNALS.as_ref() + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| vec![Signal::builder("updated").build()]) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/model/selectable.rs b/src/model/selectable.rs index 35878fb6..29f0dd4c 100644 --- a/src/model/selectable.rs +++ b/src/model/selectable.rs @@ -1,4 +1,5 @@ -use glib::once_cell::sync::Lazy as SyncLazy; +use std::sync::OnceLock; + use glib::prelude::*; use glib::subclass::prelude::*; use gtk::glib; @@ -14,19 +15,19 @@ mod imp { const NAME: &'static str = "Selectable"; fn properties() -> &'static [glib::ParamSpec] { - static PROPERTIES: SyncLazy> = SyncLazy::new(|| { + static PROPERTIES: OnceLock> = OnceLock::new(); + PROPERTIES.get_or_init(|| { vec![glib::ParamSpecBoolean::builder("selected") .explicit_notify() .build()] - }); - PROPERTIES.as_ref() + }) } } } glib::wrapper! { pub(crate) struct Selectable(ObjectInterface); } -pub(crate) trait SelectableExt: glib::IsA { +pub(crate) trait SelectableExt: IsA { fn is_selected(&self) -> bool; fn set_selected(&self, value: bool); diff --git a/src/model/selectable_list.rs b/src/model/selectable_list.rs index 4eba6384..8c791058 100644 --- a/src/model/selectable_list.rs +++ b/src/model/selectable_list.rs @@ -1,7 +1,8 @@ +use std::sync::OnceLock; + use gio::prelude::*; use gio::subclass::prelude::*; use glib::clone; -use glib::once_cell::sync::Lazy as SyncLazy; use gtk::gio; use gtk::glib; @@ -20,15 +21,15 @@ mod imp { type Prerequisites = (gio::ListModel,); fn properties() -> &'static [glib::ParamSpec] { - static PROPERTIES: SyncLazy> = SyncLazy::new(|| { + static PROPERTIES: OnceLock> = OnceLock::new(); + PROPERTIES.get_or_init(|| { vec![ glib::ParamSpecBoolean::builder("selection-mode").build(), glib::ParamSpecUInt::builder("num-selected") .read_only() .build(), ] - }); - PROPERTIES.as_ref() + }) } } } @@ -53,7 +54,7 @@ impl SelectableList { } } -pub(crate) trait SelectableListExt: glib::IsA { +pub(crate) trait SelectableListExt: IsA { fn is_selection_mode(&self) -> bool; fn set_selection_mode(&self, value: bool); diff --git a/src/model/simple_container_list.rs b/src/model/simple_container_list.rs index 70618eeb..252929a6 100644 --- a/src/model/simple_container_list.rs +++ b/src/model/simple_container_list.rs @@ -1,9 +1,9 @@ use std::borrow::Borrow; use std::cell::RefCell; +use std::sync::OnceLock; use gio::prelude::*; use gio::subclass::prelude::*; -use glib::once_cell::sync::Lazy as SyncLazy; use gtk::gio; use gtk::glib; use indexmap::map::IndexMap; @@ -28,7 +28,8 @@ mod imp { impl ObjectImpl for SimpleContainerList { fn properties() -> &'static [glib::ParamSpec] { - static PROPERTIES: SyncLazy> = SyncLazy::new(|| { + static PROPERTIES: OnceLock> = OnceLock::new(); + PROPERTIES.get_or_init(|| { vec![ glib::ParamSpecUInt::builder("len").read_only().build(), glib::ParamSpecUInt::builder("created").read_only().build(), @@ -43,8 +44,7 @@ mod imp { glib::ParamSpecUInt::builder("stopped").read_only().build(), glib::ParamSpecUInt::builder("stopping").read_only().build(), ] - }); - PROPERTIES.as_ref() + }) } fn property(&self, _id: usize, pspec: &glib::ParamSpec) -> glib::Value { diff --git a/src/model/value.rs b/src/model/value.rs index e4f59d91..4ba3760d 100644 --- a/src/model/value.rs +++ b/src/model/value.rs @@ -1,6 +1,6 @@ use std::cell::RefCell; +use std::sync::OnceLock; -use glib::once_cell::sync::Lazy as SyncLazy; // use gtk::glib::subclass::Signal; use glib::prelude::*; use glib::subclass::prelude::*; @@ -26,9 +26,8 @@ mod imp { impl ObjectImpl for Value { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = - SyncLazy::new(|| vec![Signal::builder("remove-request").build()]); - SIGNALS.as_ref() + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| vec![Signal::builder("remove-request").build()]) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/model/volume.rs b/src/model/volume.rs index b6879480..0009ece4 100644 --- a/src/model/volume.rs +++ b/src/model/volume.rs @@ -1,10 +1,10 @@ use std::cell::Cell; use std::cell::OnceCell; use std::ops::Deref; +use std::sync::OnceLock; use gio::prelude::*; use glib::clone; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::subclass::prelude::*; use glib::subclass::Signal; use glib::Properties; @@ -49,9 +49,8 @@ mod imp { impl ObjectImpl for Volume { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = - SyncLazy::new(|| vec![Signal::builder("deleted").build()]); - SIGNALS.as_ref() + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| vec![Signal::builder("deleted").build()]) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/model/volume_list.rs b/src/model/volume_list.rs index b035c237..7cbe0a33 100644 --- a/src/model/volume_list.rs +++ b/src/model/volume_list.rs @@ -7,7 +7,6 @@ use std::sync::OnceLock; use gio::prelude::*; use gio::subclass::prelude::*; use glib::clone; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::subclass::Signal; use glib::Properties; use gtk::gio; @@ -48,7 +47,8 @@ mod imp { impl ObjectImpl for VolumeList { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = SyncLazy::new(|| { + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| { vec![ Signal::builder("volume-added") .param_types([model::Volume::static_type()]) @@ -57,8 +57,7 @@ mod imp { .param_types([model::Volume::static_type()]) .build(), ] - }); - SIGNALS.as_ref() + }) } fn properties() -> &'static [glib::ParamSpec] { static PROPERTIES: OnceLock> = OnceLock::new(); diff --git a/src/utils.rs b/src/utils.rs index 3b48a309..7b2dc3cd 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -20,7 +20,6 @@ use gtk::glib; use crate::config; use crate::APPLICATION_OPTS; -use crate::RUNTIME; #[macro_export] macro_rules! monad_boxed_type { @@ -288,7 +287,7 @@ where Fut: Future + Send + 'static, F: FnOnce(R) + 'static, { - let handle = RUNTIME.spawn(tokio_fut); + let handle = crate::runtime().spawn(tokio_fut); glib::MainContext::default().spawn_local_with_priority(Default::default(), async move { glib_closure(handle.await.unwrap()); @@ -319,7 +318,7 @@ where { let observers = AsyncObservers::new(glib_closure); - let handle = RUNTIME.spawn(tokio_fut); + let handle = crate::runtime().spawn(tokio_fut); let (tx, rx) = tokio::sync::oneshot::channel::(); glib::spawn_future_local({ @@ -374,7 +373,7 @@ pub(crate) fn run_stream_with_finish_handler( finish_handler(); }); - RUNTIME.spawn(async move { + crate::runtime().spawn(async move { let mut stream = stream_producer(&api_entity); while let Some(item) = stream.next().await { if tx_payload.send(item).await.is_err() { diff --git a/src/view/action_row.rs b/src/view/action_row.rs index e40a9e90..d322b3b5 100644 --- a/src/view/action_row.rs +++ b/src/view/action_row.rs @@ -13,7 +13,6 @@ use gtk::CompositeTemplate; use crate::model; use crate::utils; -use crate::RUNTIME; mod imp { use super::*; @@ -162,7 +161,7 @@ mod imp { let id = self.notification_id.get().unwrap().to_owned(); - RUNTIME.spawn(async move { + crate::runtime().spawn(async move { let _ = ashpd::notification::NotificationProxy::new() .await .unwrap() @@ -212,7 +211,7 @@ mod imp { .body(action.description().as_ref()) .default_action(""); - RUNTIME.spawn(async move { + crate::runtime().spawn(async move { let _ = ashpd::notification::NotificationProxy::new().await.unwrap() .add_notification(&id, notification) .await; diff --git a/src/view/actions_sidebar.rs b/src/view/actions_sidebar.rs index 0b4bedf7..0e25accd 100644 --- a/src/view/actions_sidebar.rs +++ b/src/view/actions_sidebar.rs @@ -1,8 +1,9 @@ +use std::sync::OnceLock; + use adw::prelude::*; use adw::subclass::prelude::*; use glib::clone; use glib::closure; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::subclass::InitializingObject; use glib::subclass::Signal; use glib::Properties; @@ -58,9 +59,8 @@ mod imp { impl ObjectImpl for ActionsSidebar { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = - SyncLazy::new(|| vec![Signal::builder("cleared").build()]); - SIGNALS.as_ref() + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| vec![Signal::builder("cleared").build()]) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/view/client_view.rs b/src/view/client_view.rs index 9452fb01..a6525f07 100644 --- a/src/view/client_view.rs +++ b/src/view/client_view.rs @@ -66,7 +66,6 @@ mod imp { gdk::Key::F, gdk::ModifierType::CONTROL_MASK | gdk::ModifierType::SHIFT_MASK, ACTION_GLOBAL_SEARCH, - None, ); klass.install_action(ACTION_GLOBAL_SEARCH, None, |widget, _, _| { widget.global_search(); @@ -76,7 +75,6 @@ mod imp { gdk::Key::F, gdk::ModifierType::CONTROL_MASK, ACTION_PANEL_SEARCH, - None, ); klass.install_action(ACTION_PANEL_SEARCH, None, |widget, _, _| { widget.toggle_panel_search(); @@ -92,7 +90,7 @@ mod imp { klass.install_action( ACTION_CANCEL_OR_DELETE_ACTION, - Some("u"), + Some(glib::VariantTy::UINT32), |widget, _, data| { widget.cancel_or_delete_action(data); }, @@ -102,7 +100,6 @@ mod imp { gdk::Key::N, gdk::ModifierType::CONTROL_MASK, ACTION_CREATE_ENTITY, - None, ); klass.install_action(ACTION_CREATE_ENTITY, None, |widget, _, _| { widget.create_entity(); diff --git a/src/view/connection_custom_info_dialog.rs b/src/view/connection_custom_info_dialog.rs index d38a8734..4e9c03f8 100644 --- a/src/view/connection_custom_info_dialog.rs +++ b/src/view/connection_custom_info_dialog.rs @@ -45,18 +45,8 @@ mod imp { klass.install_action("win.close", None, |widget, _, _| { widget.close(); }); - klass.add_binding_action( - gdk::Key::W, - gdk::ModifierType::CONTROL_MASK, - "win.close", - None, - ); - klass.add_binding_action( - gdk::Key::Escape, - gdk::ModifierType::empty(), - "win.close", - None, - ); + klass.add_binding_action(gdk::Key::W, gdk::ModifierType::CONTROL_MASK, "win.close"); + klass.add_binding_action(gdk::Key::Escape, gdk::ModifierType::empty(), "win.close"); klass.install_action( ACTION_COPY_ROOT_SYSTEMD_UNIT_PATH, diff --git a/src/view/container_details_page.rs b/src/view/container_details_page.rs index 90055118..39e866af 100644 --- a/src/view/container_details_page.rs +++ b/src/view/container_details_page.rs @@ -132,29 +132,17 @@ mod imp { widget.show_processes(); }); - klass.add_binding_action( - gdk::Key::F2, - gdk::ModifierType::empty(), - ACTION_RENAME, - None, - ); - klass.add_binding_action( - gdk::Key::K, - gdk::ModifierType::CONTROL_MASK, - ACTION_COMMIT, - None, - ); + klass.add_binding_action(gdk::Key::F2, gdk::ModifierType::empty(), ACTION_RENAME); + klass.add_binding_action(gdk::Key::K, gdk::ModifierType::CONTROL_MASK, ACTION_COMMIT); klass.add_binding_action( gdk::Key::D, gdk::ModifierType::CONTROL_MASK, ACTION_GET_FILES, - None, ); klass.add_binding_action( gdk::Key::U, gdk::ModifierType::CONTROL_MASK, ACTION_PUT_FILES, - None, ); } diff --git a/src/view/container_log_page.rs b/src/view/container_log_page.rs index 16672fcb..57da93f4 100644 --- a/src/view/container_log_page.rs +++ b/src/view/container_log_page.rs @@ -107,7 +107,6 @@ mod imp { gdk::Key::F, gdk::ModifierType::CONTROL_MASK, ACTION_TOGGLE_SEARCH, - None, ); klass.install_action(ACTION_TOGGLE_SEARCH, None, |widget, _, _| { widget.toggle_search_mode(); @@ -117,7 +116,6 @@ mod imp { gdk::Key::Escape, gdk::ModifierType::empty(), ACTION_EXIT_SEARCH, - None, ); klass.install_action(ACTION_EXIT_SEARCH, None, |widget, _, _| { widget.set_search_mode(false); @@ -149,39 +147,33 @@ mod imp { gdk::Key::minus, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_OUT, - None, ); klass.add_binding_action( gdk::Key::KP_Subtract, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_OUT, - None, ); klass.add_binding_action( gdk::Key::plus, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_IN, - None, ); klass.add_binding_action( gdk::Key::KP_Add, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_IN, - None, ); klass.add_binding_action( gdk::Key::equal, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_IN, - None, ); klass.add_binding_action( gdk::Key::_0, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_NORMAL, - None, ); } diff --git a/src/view/container_terminal.rs b/src/view/container_terminal.rs index dcba8ba3..884a71f6 100644 --- a/src/view/container_terminal.rs +++ b/src/view/container_terminal.rs @@ -10,7 +10,6 @@ use futures::StreamExt; use gettextrs::gettext; use glib::clone; use glib::closure; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::subclass::Signal; use glib::Properties; use gtk::gdk; @@ -87,13 +86,11 @@ mod imp { gdk::Key::C, gdk::ModifierType::CONTROL_MASK | gdk::ModifierType::SHIFT_MASK, ACTION_COPY, - None, ); klass.add_binding_action( gdk::Key::V, gdk::ModifierType::CONTROL_MASK | gdk::ModifierType::SHIFT_MASK, ACTION_PASTE, - None, ); } @@ -104,9 +101,8 @@ mod imp { impl ObjectImpl for ContainerTerminal { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = - SyncLazy::new(|| vec![Signal::builder("terminated").build()]); - SIGNALS.as_ref() + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| vec![Signal::builder("terminated").build()]) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/view/container_terminal_page.rs b/src/view/container_terminal_page.rs index 742d9482..8c5a8531 100644 --- a/src/view/container_terminal_page.rs +++ b/src/view/container_terminal_page.rs @@ -62,39 +62,33 @@ mod imp { gdk::Key::minus, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_OUT, - None, ); klass.add_binding_action( gdk::Key::KP_Subtract, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_OUT, - None, ); klass.add_binding_action( gdk::Key::plus, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_IN, - None, ); klass.add_binding_action( gdk::Key::KP_Add, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_IN, - None, ); klass.add_binding_action( gdk::Key::equal, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_IN, - None, ); klass.add_binding_action( gdk::Key::_0, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_NORMAL, - None, ); } diff --git a/src/view/containers_panel.rs b/src/view/containers_panel.rs index 33e24b28..1c80770f 100644 --- a/src/view/containers_panel.rs +++ b/src/view/containers_panel.rs @@ -92,7 +92,6 @@ mod imp { gdk::Key::N, gdk::ModifierType::CONTROL_MASK, ACTION_CREATE_CONTAINER, - None, ); klass.install_action(ACTION_CREATE_CONTAINER, None, move |widget, _, _| { widget.create_container(); diff --git a/src/view/image.rs b/src/view/image.rs index 8d3768e5..8b69fbba 100644 --- a/src/view/image.rs +++ b/src/view/image.rs @@ -1,7 +1,6 @@ use adw::prelude::*; use gettextrs::gettext; use glib::clone; -use glib::Cast; use gtk::gio; use gtk::glib; diff --git a/src/view/image_details_page.rs b/src/view/image_details_page.rs index 393579fa..7cad2be6 100644 --- a/src/view/image_details_page.rs +++ b/src/view/image_details_page.rs @@ -82,7 +82,6 @@ mod imp { gdk::Key::N, gdk::ModifierType::CONTROL_MASK, view::ContainersGroup::action_create_container(), - None, ); klass.install_action( view::ContainersGroup::action_create_container(), diff --git a/src/view/image_search_page.rs b/src/view/image_search_page.rs index 68bedd51..841459d4 100644 --- a/src/view/image_search_page.rs +++ b/src/view/image_search_page.rs @@ -1,13 +1,13 @@ use std::cell::Cell; use std::cell::OnceCell; use std::cell::RefCell; +use std::sync::OnceLock; use adw::prelude::*; use adw::subclass::prelude::*; use futures::future; use gettextrs::gettext; use glib::clone; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::Properties; use gtk::gdk; use gtk::gio; @@ -72,12 +72,7 @@ mod imp { klass.bind_template(); klass.bind_template_callbacks(); - klass.add_binding_action( - gdk::Key::F, - gdk::ModifierType::CONTROL_MASK, - ACTION_SEARCH, - None, - ); + klass.add_binding_action(gdk::Key::F, gdk::ModifierType::CONTROL_MASK, ACTION_SEARCH); klass.install_action(ACTION_SEARCH, None, |widget, _, _| { widget.grab_search_entry_focus(); }); @@ -94,12 +89,12 @@ mod imp { impl ObjectImpl for ImageSearchPage { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = SyncLazy::new(|| { + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| { vec![Signal::builder("image-selected") .param_types([String::static_type()]) .build()] - }); - SIGNALS.as_ref() + }) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/view/image_selection_page.rs b/src/view/image_selection_page.rs index 1a21e35b..74f45124 100644 --- a/src/view/image_selection_page.rs +++ b/src/view/image_selection_page.rs @@ -1,11 +1,11 @@ use std::cell::OnceCell; use std::cmp::Ordering; +use std::sync::OnceLock; use adw::prelude::*; use adw::subclass::prelude::*; use glib::clone; use glib::closure; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::Properties; use gtk::gdk; use gtk::glib; @@ -16,7 +16,6 @@ use gtk::CompositeTemplate; use crate::model; use crate::utils; -const ACTION_FILTER: &str = "image-selection-page.filter"; const ACTION_SELECT: &str = "image-selection-page.select"; const ACTION_CLEAR_FILTER: &str = "image-selection-page.clear-filter"; @@ -58,21 +57,14 @@ mod imp { klass.bind_template(); klass.bind_template_callbacks(); - klass.install_action(ACTION_FILTER, Some("b"), |widget, _, data| { - widget.enable_search_mode(data.unwrap().get().unwrap()); + klass.add_binding(gdk::Key::F, gdk::ModifierType::CONTROL_MASK, |widget| { + widget.enable_search_mode(true); + glib::Propagation::Proceed + }); + klass.add_binding(gdk::Key::Escape, gdk::ModifierType::empty(), |widget| { + widget.enable_search_mode(false); + glib::Propagation::Proceed }); - klass.add_binding_action( - gdk::Key::F, - gdk::ModifierType::CONTROL_MASK, - ACTION_FILTER, - Some(&true.to_variant()), - ); - klass.add_binding_action( - gdk::Key::Escape, - gdk::ModifierType::empty(), - ACTION_FILTER, - Some(&false.to_variant()), - ); klass.install_action(ACTION_CLEAR_FILTER, None, |widget, _, _| { widget.clear_filter(); @@ -90,12 +82,12 @@ mod imp { impl ObjectImpl for ImageSelectionPage { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = SyncLazy::new(|| { + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| { vec![Signal::builder("image-selected") .param_types([model::Image::static_type()]) .build()] - }); - SIGNALS.as_ref() + }) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/view/images_panel.rs b/src/view/images_panel.rs index e5a478b2..7a9ce47e 100644 --- a/src/view/images_panel.rs +++ b/src/view/images_panel.rs @@ -79,7 +79,6 @@ mod imp { gdk::Key::N, gdk::ModifierType::CONTROL_MASK, ACTION_PULL_IMAGE, - None, ); klass.install_action(ACTION_PULL_IMAGE, None, |widget, _, _| { widget.show_download_page(); diff --git a/src/view/pod.rs b/src/view/pod.rs index 9b136a6a..23fef1d8 100644 --- a/src/view/pod.rs +++ b/src/view/pod.rs @@ -1,7 +1,6 @@ use adw::prelude::*; use gettextrs::gettext; use glib::clone; -use glib::Cast; use gtk::gio; use gtk::glib; diff --git a/src/view/pod_details_page.rs b/src/view/pod_details_page.rs index a7bce3b3..5c24c5d9 100644 --- a/src/view/pod_details_page.rs +++ b/src/view/pod_details_page.rs @@ -108,7 +108,6 @@ mod imp { gdk::Key::N, gdk::ModifierType::CONTROL_MASK, view::ContainersGroup::action_create_container(), - None, ); klass.install_action( view::ContainersGroup::action_create_container(), diff --git a/src/view/pod_selection_page.rs b/src/view/pod_selection_page.rs index 1c980204..569cbd1d 100644 --- a/src/view/pod_selection_page.rs +++ b/src/view/pod_selection_page.rs @@ -1,10 +1,10 @@ use std::cell::OnceCell; +use std::sync::OnceLock; use adw::prelude::*; use adw::subclass::prelude::*; use glib::clone; use glib::closure; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::Properties; use gtk::gdk; use gtk::glib; @@ -17,7 +17,6 @@ use crate::utils; use crate::view; const ACTION_CREATE_POD: &str = "pod-selection-page.create-pod"; -const ACTION_FILTER: &str = "pod-selection-page.filter"; const ACTION_SELECT: &str = "pod-selection-page.select"; const ACTION_CLEAR_FILTER: &str = "pod-selection-page.clear-filter"; @@ -63,21 +62,14 @@ mod imp { widget.create_pod(); }); - klass.install_action(ACTION_FILTER, Some("b"), |widget, _, data| { - widget.enable_search_mode(data.unwrap().get().unwrap()); + klass.add_binding(gdk::Key::F, gdk::ModifierType::CONTROL_MASK, |widget| { + widget.enable_search_mode(true); + glib::Propagation::Proceed + }); + klass.add_binding(gdk::Key::Escape, gdk::ModifierType::empty(), |widget| { + widget.enable_search_mode(false); + glib::Propagation::Proceed }); - klass.add_binding_action( - gdk::Key::F, - gdk::ModifierType::CONTROL_MASK, - ACTION_FILTER, - Some(&true.to_variant()), - ); - klass.add_binding_action( - gdk::Key::Escape, - gdk::ModifierType::empty(), - ACTION_FILTER, - Some(&false.to_variant()), - ); klass.install_action(ACTION_CLEAR_FILTER, None, |widget, _, _| { widget.clear_filter(); @@ -95,12 +87,12 @@ mod imp { impl ObjectImpl for PodSelectionPage { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = SyncLazy::new(|| { + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| { vec![Signal::builder("pod-selected") .param_types([model::Pod::static_type()]) .build()] - }); - SIGNALS.as_ref() + }) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/view/pods_panel.rs b/src/view/pods_panel.rs index 983e8f49..53339038 100644 --- a/src/view/pods_panel.rs +++ b/src/view/pods_panel.rs @@ -91,7 +91,6 @@ mod imp { gdk::Key::N, gdk::ModifierType::CONTROL_MASK, ACTION_CREATE_POD, - None, ); klass.install_action(ACTION_CREATE_POD, None, |widget, _, _| { widget.create_pod(); diff --git a/src/view/repo_tag_push_page.rs b/src/view/repo_tag_push_page.rs index eefe3ccd..23d18fd0 100644 --- a/src/view/repo_tag_push_page.rs +++ b/src/view/repo_tag_push_page.rs @@ -14,7 +14,6 @@ use crate::model; use crate::podman; use crate::utils; use crate::view; -use crate::RUNTIME; const ACTION_PUSH: &str = "repo-tag-push-page.push"; @@ -243,7 +242,7 @@ impl RepoTagPushPage { RegistryAuth::Token(imp.token_entry_row.text().into()) }; - RUNTIME.spawn({ + crate::runtime().spawn({ async move { keyring .create_item( @@ -267,7 +266,7 @@ impl RepoTagPushPage { } } } else if let Some(keyring) = crate::KEYRING.get() { - RUNTIME.spawn({ + crate::runtime().spawn({ async move { keyring.delete(attributes(&host, &namespace)).await.unwrap(); } diff --git a/src/view/repo_tag_selection_page.rs b/src/view/repo_tag_selection_page.rs index 1c7d623d..f4aaf934 100644 --- a/src/view/repo_tag_selection_page.rs +++ b/src/view/repo_tag_selection_page.rs @@ -1,12 +1,12 @@ use std::cell::OnceCell; use std::cell::RefCell; +use std::sync::OnceLock; use adw::prelude::*; use adw::subclass::prelude::*; use futures::future; use gettextrs::gettext; use glib::clone; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::Properties; use gtk::gdk; use gtk::gio; @@ -19,7 +19,6 @@ use crate::podman; use crate::utils; use crate::view; -const ACTION_FILTER: &str = "repo-tag-selection-page.filter"; const ACTION_SELECT: &str = "repo-tag-selection-page.select"; mod imp { @@ -68,21 +67,14 @@ mod imp { klass.bind_template(); klass.bind_template_callbacks(); - klass.install_action(ACTION_FILTER, Some("b"), |widget, _, data| { - widget.enable_search_mode(data.unwrap().get().unwrap()); + klass.add_binding(gdk::Key::F, gdk::ModifierType::CONTROL_MASK, |widget| { + widget.enable_search_mode(true); + glib::Propagation::Proceed + }); + klass.add_binding(gdk::Key::Escape, gdk::ModifierType::empty(), |widget| { + widget.enable_search_mode(false); + glib::Propagation::Proceed }); - klass.add_binding_action( - gdk::Key::F, - gdk::ModifierType::CONTROL_MASK, - ACTION_FILTER, - Some(&true.to_variant()), - ); - klass.add_binding_action( - gdk::Key::Escape, - gdk::ModifierType::empty(), - ACTION_FILTER, - Some(&false.to_variant()), - ); klass.install_action(ACTION_SELECT, None, |widget, _, _| { widget.select(); @@ -96,12 +88,12 @@ mod imp { impl ObjectImpl for RepoTagSelectionPage { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = SyncLazy::new(|| { + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| { vec![Signal::builder("image-selected") .param_types([String::static_type()]) .build()] - }); - SIGNALS.as_ref() + }) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/view/scalable_text_view_page.rs b/src/view/scalable_text_view_page.rs index c34d421c..f0b40c25 100644 --- a/src/view/scalable_text_view_page.rs +++ b/src/view/scalable_text_view_page.rs @@ -112,7 +112,6 @@ mod imp { gdk::Key::F, gdk::ModifierType::CONTROL_MASK, ACTION_TOGGLE_SEARCH, - None, ); klass.install_action(ACTION_TOGGLE_SEARCH, None, |widget, _, _| { widget.toggle_search_mode(); @@ -122,7 +121,6 @@ mod imp { gdk::Key::Escape, gdk::ModifierType::empty(), ACTION_EXIT_SEARCH, - None, ); klass.install_action(ACTION_EXIT_SEARCH, None, |widget, _, _| { widget.set_search_mode(false); @@ -146,39 +144,33 @@ mod imp { gdk::Key::minus, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_OUT, - None, ); klass.add_binding_action( gdk::Key::KP_Subtract, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_OUT, - None, ); klass.add_binding_action( gdk::Key::plus, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_IN, - None, ); klass.add_binding_action( gdk::Key::KP_Add, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_IN, - None, ); klass.add_binding_action( gdk::Key::equal, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_IN, - None, ); klass.add_binding_action( gdk::Key::_0, gdk::ModifierType::CONTROL_MASK, ACTION_ZOOM_NORMAL, - None, ); } diff --git a/src/view/top_page.rs b/src/view/top_page.rs index ab47af39..04442131 100644 --- a/src/view/top_page.rs +++ b/src/view/top_page.rs @@ -59,12 +59,7 @@ mod imp { klass.bind_template(); klass.bind_template_callbacks(); - klass.add_binding_action( - gdk::Key::F, - gdk::ModifierType::CONTROL_MASK, - ACTION_SEARCH, - None, - ); + klass.add_binding_action(gdk::Key::F, gdk::ModifierType::CONTROL_MASK, ACTION_SEARCH); klass.install_action(ACTION_SEARCH, None, |widget, _, _| { widget.toggle_search_mode(); diff --git a/src/view/volume.rs b/src/view/volume.rs index b67c553d..1d4828af 100644 --- a/src/view/volume.rs +++ b/src/view/volume.rs @@ -1,7 +1,6 @@ use adw::prelude::*; use gettextrs::gettext; use glib::clone; -use glib::Cast; use gtk::gio; use gtk::glib; diff --git a/src/view/volume_details_page.rs b/src/view/volume_details_page.rs index b48736bf..528df0bc 100644 --- a/src/view/volume_details_page.rs +++ b/src/view/volume_details_page.rs @@ -61,7 +61,6 @@ mod imp { gdk::Key::N, gdk::ModifierType::CONTROL_MASK, view::ContainersGroup::action_create_container(), - None, ); klass.install_action( view::ContainersGroup::action_create_container(), diff --git a/src/view/volume_selection_page.rs b/src/view/volume_selection_page.rs index 7e2a31c9..1d96aa58 100644 --- a/src/view/volume_selection_page.rs +++ b/src/view/volume_selection_page.rs @@ -1,10 +1,10 @@ use std::cell::OnceCell; +use std::sync::OnceLock; use adw::prelude::*; use adw::subclass::prelude::*; use glib::clone; use glib::closure; -use glib::once_cell::sync::Lazy as SyncLazy; use glib::Properties; use gtk::gdk; use gtk::glib; @@ -17,7 +17,6 @@ use crate::utils; use crate::view; const ACTION_CREATE_VOLUME: &str = "volume-selection-page.create-volume"; -const ACTION_FILTER: &str = "volume-selection-page.filter"; const ACTION_SELECT: &str = "volume-selection-page.select"; const ACTION_CLEAR_FILTER: &str = "volume-selection-page.clear-filter"; @@ -63,21 +62,14 @@ mod imp { widget.create_volume(); }); - klass.install_action(ACTION_FILTER, Some("b"), |widget, _, data| { - widget.enable_search_mode(data.unwrap().get().unwrap()); + klass.add_binding(gdk::Key::F, gdk::ModifierType::CONTROL_MASK, |widget| { + widget.enable_search_mode(true); + glib::Propagation::Proceed + }); + klass.add_binding(gdk::Key::Escape, gdk::ModifierType::empty(), |widget| { + widget.enable_search_mode(false); + glib::Propagation::Proceed }); - klass.add_binding_action( - gdk::Key::F, - gdk::ModifierType::CONTROL_MASK, - ACTION_FILTER, - Some(&true.to_variant()), - ); - klass.add_binding_action( - gdk::Key::Escape, - gdk::ModifierType::empty(), - ACTION_FILTER, - Some(&false.to_variant()), - ); klass.install_action(ACTION_CLEAR_FILTER, None, |widget, _, _| { widget.clear_filter(); @@ -95,12 +87,12 @@ mod imp { impl ObjectImpl for VolumeSelectionPage { fn signals() -> &'static [Signal] { - static SIGNALS: SyncLazy> = SyncLazy::new(|| { + static SIGNALS: OnceLock> = OnceLock::new(); + SIGNALS.get_or_init(|| { vec![Signal::builder("volume-selected") .param_types([model::Volume::static_type()]) .build()] - }); - SIGNALS.as_ref() + }) } fn properties() -> &'static [glib::ParamSpec] { diff --git a/src/view/volumes_panel.rs b/src/view/volumes_panel.rs index 23370da1..45c33312 100644 --- a/src/view/volumes_panel.rs +++ b/src/view/volumes_panel.rs @@ -76,7 +76,6 @@ mod imp { gdk::Key::N, gdk::ModifierType::CONTROL_MASK, ACTION_CREATE_VOLUME, - None, ); klass.install_action(ACTION_CREATE_VOLUME, None, move |widget, _, _| { widget.create_volume(); diff --git a/src/view/window.rs b/src/view/window.rs index 6f459a14..e26cf956 100644 --- a/src/view/window.rs +++ b/src/view/window.rs @@ -1,8 +1,9 @@ +use std::sync::OnceLock; + use adw::prelude::*; use adw::subclass::prelude::AdwApplicationWindowImpl; use adw::subclass::prelude::*; use gettextrs::gettext; -use glib::once_cell::sync::Lazy; use gtk::gdk; use gtk::gio; use gtk::glib; @@ -48,23 +49,21 @@ mod imp { gdk::Key::N, gdk::ModifierType::CONTROL_MASK | gdk::ModifierType::SHIFT_MASK, ACTION_CREATE_CONNECTION, - None, ); klass.install_action(ACTION_CREATE_CONNECTION, None, |widget, _, _| { widget.add_connection(); }); - klass.install_action(ACTION_REMOVE_CONNECTION, Some("s"), |widget, _, data| { - let uuid: String = data.unwrap().get().unwrap(); - widget.remove_connection(&uuid); - }); - - klass.add_binding_action( - gdk::Key::W, - gdk::ModifierType::CONTROL_MASK, - ACTION_CLOSE, - None, + klass.install_action( + ACTION_REMOVE_CONNECTION, + Some(glib::VariantTy::STRING), + |widget, _, data| { + let uuid: String = data.unwrap().get().unwrap(); + widget.remove_connection(&uuid); + }, ); + + klass.add_binding_action(gdk::Key::W, gdk::ModifierType::CONTROL_MASK, ACTION_CLOSE); klass.install_action(ACTION_CLOSE, None, |widget, _, _| { widget.close(); }); @@ -77,15 +76,14 @@ mod imp { impl ObjectImpl for Window { fn properties() -> &'static [glib::ParamSpec] { - static PROPERTIES: Lazy> = Lazy::new(|| { + static PROPERTIES: OnceLock> = OnceLock::new(); + PROPERTIES.get_or_init(|| { vec![glib::ParamSpecObject::builder::( "connection-manager", ) .read_only() .build()] - }); - - PROPERTIES.as_ref() + }) } fn property(&self, _id: usize, pspec: &glib::ParamSpec) -> glib::Value { diff --git a/src/widget/circular_progress_bar.rs b/src/widget/circular_progress_bar.rs index e573882b..43e0d623 100644 --- a/src/widget/circular_progress_bar.rs +++ b/src/widget/circular_progress_bar.rs @@ -1,9 +1,9 @@ use std::cell::Cell; use std::f64; +use std::sync::OnceLock; use adw::prelude::*; use adw::subclass::prelude::*; -use glib::once_cell::sync::Lazy; use gtk::gdk; use gtk::glib; use gtk::glib::clone; @@ -46,7 +46,8 @@ mod imp { impl ObjectImpl for CircularProgressBar { fn properties() -> &'static [glib::ParamSpec] { - static PROPERTIES: Lazy> = Lazy::new(|| { + static PROPERTIES: OnceLock> = OnceLock::new(); + PROPERTIES.get_or_init(|| { vec![ glib::ParamSpecDouble::builder("percentage") .maximum(1.0) @@ -56,8 +57,7 @@ mod imp { .explicit_notify() .build(), ] - }); - PROPERTIES.as_ref() + }) } fn set_property(&self, _id: usize, value: &glib::Value, pspec: &glib::ParamSpec) { diff --git a/src/widget/efficient_spinner.rs b/src/widget/efficient_spinner.rs index 90e3265e..5f029b5a 100644 --- a/src/widget/efficient_spinner.rs +++ b/src/widget/efficient_spinner.rs @@ -1,5 +1,5 @@ use adw::subclass::prelude::*; -use glib::Cast; +use glib::prelude::*; use gtk::glib; use gtk::CompositeTemplate; diff --git a/src/widget/property_row.rs b/src/widget/property_row.rs index 0895501b..3bd74087 100644 --- a/src/widget/property_row.rs +++ b/src/widget/property_row.rs @@ -1,6 +1,7 @@ +use std::sync::OnceLock; + use adw::prelude::*; use adw::subclass::prelude::*; -use glib::once_cell::sync::Lazy; use gtk::glib; use gtk::pango; use gtk::CompositeTemplate; @@ -33,7 +34,8 @@ mod imp { impl ObjectImpl for PropertyRow { fn properties() -> &'static [glib::ParamSpec] { - static PROPERTIES: Lazy> = Lazy::new(|| { + static PROPERTIES: OnceLock> = OnceLock::new(); + PROPERTIES.get_or_init(|| { vec![ glib::ParamSpecString::builder("key") .explicit_notify() @@ -48,8 +50,7 @@ mod imp { .explicit_notify() .build(), ] - }); - PROPERTIES.as_ref() + }) } fn set_property(&self, _id: usize, value: &glib::Value, pspec: &glib::ParamSpec) { diff --git a/src/widget/property_widget_row.rs b/src/widget/property_widget_row.rs index 4925c972..84339d6f 100644 --- a/src/widget/property_widget_row.rs +++ b/src/widget/property_widget_row.rs @@ -1,6 +1,7 @@ +use std::sync::OnceLock; + use adw::prelude::*; use adw::subclass::prelude::*; -use glib::once_cell::sync::Lazy; use gtk::glib; use gtk::CompositeTemplate; @@ -32,7 +33,8 @@ mod imp { impl ObjectImpl for PropertyWidgetRow { fn properties() -> &'static [glib::ParamSpec] { - static PROPERTIES: Lazy> = Lazy::new(|| { + static PROPERTIES: OnceLock> = OnceLock::new(); + PROPERTIES.get_or_init(|| { vec![ glib::ParamSpecString::builder("key") .explicit_notify() @@ -41,8 +43,7 @@ mod imp { .explicit_notify() .build(), ] - }); - PROPERTIES.as_ref() + }) } fn set_property(&self, _id: usize, value: &glib::Value, pspec: &glib::ParamSpec) { diff --git a/src/widget/source_view_search_widget.rs b/src/widget/source_view_search_widget.rs index cf55ad8d..957a3b0c 100644 --- a/src/widget/source_view_search_widget.rs +++ b/src/widget/source_view_search_widget.rs @@ -46,7 +46,6 @@ mod imp { gdk::Key::G, gdk::ModifierType::CONTROL_MASK | gdk::ModifierType::SHIFT_MASK, ACTION_SEARCH_BACKWARDS, - None, ); klass.install_action(ACTION_SEARCH_BACKWARDS, None, |widget, _, _| { widget.search_backward(); @@ -56,7 +55,6 @@ mod imp { gdk::Key::G, gdk::ModifierType::CONTROL_MASK, ACTION_SEARCH_FORWARD, - None, ); klass.install_action(ACTION_SEARCH_FORWARD, None, |widget, _, _| { widget.search_forward(); diff --git a/src/widget/spinner.rs b/src/widget/spinner.rs index 223f2614..d0903b02 100644 --- a/src/widget/spinner.rs +++ b/src/widget/spinner.rs @@ -1,9 +1,9 @@ use std::cell::Cell; use std::cell::OnceCell; +use std::sync::OnceLock; use adw::prelude::*; use adw::subclass::prelude::*; -use glib::once_cell::sync::Lazy; use gtk::gdk; use gtk::glib; use gtk::glib::clone; @@ -47,7 +47,8 @@ mod imp { impl ObjectImpl for Spinner { fn properties() -> &'static [glib::ParamSpec] { - static PROPERTIES: Lazy> = Lazy::new(|| { + static PROPERTIES: OnceLock> = OnceLock::new(); + PROPERTIES.get_or_init(|| { vec![ glib::ParamSpecString::builder("icon-name") .explicit_notify() @@ -56,8 +57,7 @@ mod imp { .explicit_notify() .build(), ] - }); - PROPERTIES.as_ref() + }) } fn set_property(&self, _id: usize, value: &glib::Value, pspec: &glib::ParamSpec) { diff --git a/src/widget/text_search_entry.rs b/src/widget/text_search_entry.rs index 13d1005b..09145a72 100644 --- a/src/widget/text_search_entry.rs +++ b/src/widget/text_search_entry.rs @@ -1,6 +1,7 @@ +use std::sync::OnceLock; + use adw::prelude::*; use adw::subclass::prelude::*; -use glib::once_cell::sync::Lazy; use gtk::glib; use gtk::CompositeTemplate; @@ -52,7 +53,8 @@ mod imp { impl ObjectImpl for TextSearchEntry { fn properties() -> &'static [glib::ParamSpec] { - static PROPERTIES: Lazy> = Lazy::new(|| { + static PROPERTIES: OnceLock> = OnceLock::new(); + PROPERTIES.get_or_init(|| { vec![ glib::ParamSpecString::builder("info") .explicit_notify() @@ -67,8 +69,7 @@ mod imp { .explicit_notify() .build(), ] - }); - PROPERTIES.as_ref() + }) } fn set_property(&self, _id: usize, value: &glib::Value, pspec: &glib::ParamSpec) {