Update gtk-rs crates

This commit is contained in:
Elias Projahn 2022-04-16 12:24:30 +02:00
parent 3a27113bda
commit ff17549b8b
39 changed files with 324 additions and 313 deletions

397
Cargo.lock generated
View file

@ -69,26 +69,26 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "cairo-rs"
version = "0.14.9"
version = "0.15.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33b5725979db0c586d98abad2193cdb612dd40ef95cd26bd99851bf93b3cb482"
checksum = "129e928d3eda625f53ce257589efbe5143416875fd01bddd08c8c6feb8b9962b"
dependencies = [
"bitflags",
"cairo-sys-rs",
"glib 0.14.8",
"glib 0.15.10",
"libc",
"thiserror",
]
[[package]]
name = "cairo-sys-rs"
version = "0.14.9"
version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b448b876970834fda82ba3aeaccadbd760206b75388fc5c1b02f1e343b697570"
checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8"
dependencies = [
"glib-sys 0.14.0",
"glib-sys 0.15.10",
"libc",
"system-deps 3.2.0",
"system-deps 6.0.2",
]
[[package]]
@ -99,18 +99,9 @@ checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
[[package]]
name = "cfg-expr"
version = "0.8.1"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b412e83326147c2bb881f8b40edfbf9905b9b8abaebd0e47ca190ba62fda8f0e"
dependencies = [
"smallvec",
]
[[package]]
name = "cfg-expr"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7"
checksum = "5e068cb2806bbc15b439846dc16c5f89f8599f2c3e4d73d4449d38f9b2f0b6c5"
dependencies = [
"smallvec",
]
@ -281,60 +272,61 @@ dependencies = [
[[package]]
name = "gdk-pixbuf"
version = "0.14.0"
version = "0.15.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "534192cb8f01daeb8fab2c8d4baa8f9aae5b7a39130525779f5c2608e235b10f"
checksum = "678516f1baef591d270ca10587c01a12542a731a7879cc62391a18191a470831"
dependencies = [
"bitflags",
"gdk-pixbuf-sys",
"gio",
"glib 0.14.8",
"glib 0.15.10",
"libc",
]
[[package]]
name = "gdk-pixbuf-sys"
version = "0.14.0"
version = "0.15.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f097c0704201fbc8f69c1762dc58c6947c8bb188b8ed0bc7e65259f1894fe590"
checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7"
dependencies = [
"gio-sys",
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"libc",
"system-deps 3.2.0",
"system-deps 6.0.2",
]
[[package]]
name = "gdk4"
version = "0.3.1"
version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f97a162c17214d1bf981af3f683156a0b1667dd1927057c4f0a68513251ecf0f"
checksum = "d4a2fc0bd03d59383fc10b71a8cb731a1fac2998732a36a0c03e9b1de1513218"
dependencies = [
"bitflags",
"cairo-rs",
"gdk-pixbuf",
"gdk4-sys",
"gio",
"glib 0.14.8",
"glib 0.15.10",
"libc",
"pango",
]
[[package]]
name = "gdk4-sys"
version = "0.3.1"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9498f4e06969fb96a4e4234dfe1d308a3ac6b120b3c6d93e3ec5c77fe88bc6d5"
checksum = "48a39e34abe35ee2cf54a1e29dd983accecd113ad30bdead5050418fa92f2a1b"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
"gio-sys",
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"graphene-sys",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"libc",
"pango-sys",
"system-deps 5.0.0",
"pkg-config",
"system-deps 6.0.2",
]
[[package]]
@ -371,9 +363,9 @@ dependencies = [
[[package]]
name = "gettext-rs"
version = "0.5.0"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b95fa19cca70adf9888150e979839ae9bd58f85a1a42e4753699112875189e1"
checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364"
dependencies = [
"gettext-sys",
"locale_config",
@ -381,25 +373,26 @@ dependencies = [
[[package]]
name = "gettext-sys"
version = "0.19.9"
version = "0.21.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e034c4ba5bb796730a6cc5eb0d654c16885006a7c3d6c6603581ed809434f153"
checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d"
dependencies = [
"cc",
"temp-dir",
]
[[package]]
name = "gio"
version = "0.14.8"
version = "0.15.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "711c3632b3ebd095578a9c091418d10fed492da9443f58ebc8f45efbeb215cb0"
checksum = "76cd21a7a674ea811749661012512b0ba5237ba404ccbcab2850db5537549b64"
dependencies = [
"bitflags",
"futures-channel",
"futures-core",
"futures-io",
"gio-sys",
"glib 0.14.8",
"glib 0.15.10",
"libc",
"once_cell",
"thiserror",
@ -407,14 +400,14 @@ dependencies = [
[[package]]
name = "gio-sys"
version = "0.14.0"
version = "0.15.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0a41df66e57fcc287c4bcf74fc26b884f31901ea9792ec75607289b456f48fa"
checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d"
dependencies = [
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"libc",
"system-deps 3.2.0",
"system-deps 6.0.2",
"winapi",
]
@ -439,21 +432,22 @@ dependencies = [
[[package]]
name = "glib"
version = "0.14.8"
version = "0.15.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c515f1e62bf151ef6635f528d05b02c11506de986e43b34a5c920ef0b3796a4"
checksum = "a826fad715b57834920839d7a594c3b5e416358c7d790bdaba847a40d7c1d96d"
dependencies = [
"bitflags",
"futures-channel",
"futures-core",
"futures-executor",
"futures-task",
"glib-macros 0.14.1",
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"glib-macros 0.15.10",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"libc",
"once_cell",
"smallvec",
"thiserror",
]
[[package]]
@ -463,8 +457,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41486a26d1366a8032b160b59065a59fb528530a46a49f627e7048fb8c064039"
dependencies = [
"anyhow",
"heck",
"itertools 0.9.0",
"heck 0.3.3",
"itertools",
"proc-macro-crate 0.1.5",
"proc-macro-error",
"proc-macro2",
@ -474,12 +468,12 @@ dependencies = [
[[package]]
name = "glib-macros"
version = "0.14.1"
version = "0.15.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2aad66361f66796bfc73f530c51ef123970eb895ffba991a234fcf7bea89e518"
checksum = "dac4d47c544af67747652ab1865ace0ffa1155709723ac4f32e97587dd4735b2"
dependencies = [
"anyhow",
"heck",
"heck 0.4.0",
"proc-macro-crate 1.1.3",
"proc-macro-error",
"proc-macro2",
@ -499,12 +493,12 @@ dependencies = [
[[package]]
name = "glib-sys"
version = "0.14.0"
version = "0.15.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c1d60554a212445e2a858e42a0e48cece1bd57b311a19a9468f70376cf554ae"
checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4"
dependencies = [
"libc",
"system-deps 3.2.0",
"system-deps 6.0.2",
]
[[package]]
@ -520,48 +514,48 @@ dependencies = [
[[package]]
name = "gobject-sys"
version = "0.14.0"
version = "0.15.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa92cae29759dae34ab5921d73fff5ad54b3d794ab842c117e36cafc7994c3f5"
checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a"
dependencies = [
"glib-sys 0.14.0",
"glib-sys 0.15.10",
"libc",
"system-deps 3.2.0",
"system-deps 6.0.2",
]
[[package]]
name = "graphene-rs"
version = "0.14.8"
version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3380f132530ef9eb9e0a2bac180e30390aa5e49892d20294f822a974117a563"
checksum = "7c54f9fbbeefdb62c99f892dfca35f83991e2cb5b46a8dc2a715e58612f85570"
dependencies = [
"glib 0.14.8",
"glib 0.15.10",
"graphene-sys",
"libc",
]
[[package]]
name = "graphene-sys"
version = "0.14.8"
version = "0.15.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a9ac7450b3aa80792513a3c029920a2ede419de13fb5169a4e51b07a5685332"
checksum = "fa691fc7337ba1df599afb55c3bcb85c04f1b3f17362570e9bb0ff0d1bc3028a"
dependencies = [
"glib-sys 0.14.0",
"glib-sys 0.15.10",
"libc",
"pkg-config",
"system-deps 3.2.0",
"system-deps 6.0.2",
]
[[package]]
name = "gsk4"
version = "0.3.1"
version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eff59ca46c4fc5087fd7a0c3770a71ea4b6e94f8c24c12e2c2e8538f9f6fd764"
checksum = "14d5a47a78c682bb67496b562495ed84972c0512ba0654888c4dc92b80a85bd3"
dependencies = [
"bitflags",
"cairo-rs",
"gdk4",
"glib 0.14.8",
"glib 0.15.10",
"graphene-rs",
"gsk4-sys",
"libc",
@ -570,38 +564,39 @@ dependencies = [
[[package]]
name = "gsk4-sys"
version = "0.3.1"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13aa53ce70234da02f9954339d988d5ab853d746a8f47a4ae17735ff873545b5"
checksum = "e31d21d7ce02ba261bb24c50c4ab238a10b41a2c97c32afffae29471b7cca69b"
dependencies = [
"cairo-sys-rs",
"gdk4-sys",
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"graphene-sys",
"libc",
"pango-sys",
"system-deps 5.0.0",
"system-deps 6.0.2",
]
[[package]]
name = "gstreamer"
version = "0.17.4"
version = "0.18.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6a255f142048ba2c4a4dce39106db1965abe355d23f4b5335edea43a553faa4"
checksum = "cd58af6f8b268fc335122a3ccc66efa0cd56584948f49a37e5feef0b89dfc29b"
dependencies = [
"bitflags",
"cfg-if",
"futures-channel",
"futures-core",
"futures-util",
"glib 0.14.8",
"glib 0.15.10",
"gstreamer-sys",
"libc",
"muldiv",
"num-integer",
"num-rational",
"once_cell",
"option-operations",
"paste",
"pretty-hex",
"thiserror",
@ -609,27 +604,27 @@ dependencies = [
[[package]]
name = "gstreamer-audio-sys"
version = "0.17.0"
version = "0.18.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d066ddfd05f63836f35ac4a5830d5bb2f7f3d6c33c870e9b15c667d20f65d7f6"
checksum = "a34258fb53c558c0f41dad194037cbeaabf49d347570df11b8bd1c4897cf7d7c"
dependencies = [
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"gstreamer-base-sys",
"gstreamer-sys",
"libc",
"system-deps 3.2.0",
"system-deps 6.0.2",
]
[[package]]
name = "gstreamer-base"
version = "0.17.2"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c0c1d8c62eb5d08fb80173609f2eea71d385393363146e4e78107facbd67715"
checksum = "224f35f36582407caf58ded74854526beeecc23d0cf64b8d1c3e00584ed6863f"
dependencies = [
"bitflags",
"cfg-if",
"glib 0.14.8",
"glib 0.15.10",
"gstreamer",
"gstreamer-base-sys",
"libc",
@ -637,25 +632,25 @@ dependencies = [
[[package]]
name = "gstreamer-base-sys"
version = "0.17.0"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28169a7b58edb93ad8ac766f0fa12dcd36a2af4257a97ee10194c7103baf3e27"
checksum = "a083493c3c340e71fa7c66eebda016e9fafc03eb1b4804cf9b2bad61994b078e"
dependencies = [
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"gstreamer-sys",
"libc",
"system-deps 3.2.0",
"system-deps 6.0.2",
]
[[package]]
name = "gstreamer-pbutils"
version = "0.17.2"
version = "0.18.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04cce8a8d8fb28bd5ea00433e8ea2e45a09a68e8b8b9ebe3d6552b33cb49c1b0"
checksum = "330684c49f79775d7acce8bef5a7a7475f02374c9c6cead39ced3ad423fc8ea9"
dependencies = [
"bitflags",
"glib 0.14.8",
"glib 0.15.10",
"gstreamer",
"gstreamer-pbutils-sys",
"libc",
@ -664,27 +659,27 @@ dependencies = [
[[package]]
name = "gstreamer-pbutils-sys"
version = "0.17.0"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6b7507a2c0294755b530e41a402884f326b9dbdc322039aeabac9759c149d65"
checksum = "36f79839066fbcc6d1a8690b2f85d5cc5cdc0984f36d4054f5cc67a7ad3ab72d"
dependencies = [
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"gstreamer-audio-sys",
"gstreamer-sys",
"gstreamer-video-sys",
"libc",
"system-deps 3.2.0",
"system-deps 6.0.2",
]
[[package]]
name = "gstreamer-player"
version = "0.17.0"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c503dba6f79b5cd8a4be5329119892c196db013ce66fce16079a7df8ce819a3a"
checksum = "5f14ee02352ba73cadebe640bfb33f12fe8d03cbcad816a102d55a0251fb99bb"
dependencies = [
"bitflags",
"glib 0.14.8",
"glib 0.15.10",
"gstreamer",
"gstreamer-player-sys",
"gstreamer-video",
@ -694,40 +689,40 @@ dependencies = [
[[package]]
name = "gstreamer-player-sys"
version = "0.17.0"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e50bed2a120574750ea1370163df21b50762d0b4967f569fdc58232f4c930d5"
checksum = "1f9b674b39a4d0e18710f6e3d2b109f1793d8028ee4e39da3909b55b4529d399"
dependencies = [
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"gstreamer-sys",
"gstreamer-video-sys",
"libc",
"system-deps 3.2.0",
"system-deps 6.0.2",
]
[[package]]
name = "gstreamer-sys"
version = "0.17.3"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a81704feeb3e8599913bdd1e738455c2991a01ff4a1780cb62200993e454cc3e"
checksum = "e3517a65d3c2e6f8905b456eba5d53bda158d664863aef960b44f651cb7d33e2"
dependencies = [
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"libc",
"system-deps 3.2.0",
"system-deps 6.0.2",
]
[[package]]
name = "gstreamer-video"
version = "0.17.2"
version = "0.18.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3447ee95c8e79daec0b163260cf6a3de9bc19ff47a01b533787f900074a3476"
checksum = "9418adfc72dafa1ad9eb106527ce4804887d101027c4528ec28c7d29cc899519"
dependencies = [
"bitflags",
"cfg-if",
"futures-channel",
"glib 0.14.8",
"glib 0.15.10",
"gstreamer",
"gstreamer-base",
"gstreamer-video-sys",
@ -737,16 +732,16 @@ dependencies = [
[[package]]
name = "gstreamer-video-sys"
version = "0.17.0"
version = "0.18.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b81608f4182bdddd5bd33aaaa341d5544eda12b067a3dab75b1b7d2de01a3ba7"
checksum = "33331b1675e73b5b000c796354278eca7fdde9327015971d9f41afe28b96e0dc"
dependencies = [
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"gstreamer-base-sys",
"gstreamer-sys",
"libc",
"system-deps 3.2.0",
"system-deps 6.0.2",
]
[[package]]
@ -757,9 +752,9 @@ checksum = "da5bf7748fd4cd0b2490df8debcc911809dbcbee4ece9531b96c29a9c729de5a"
[[package]]
name = "gtk4"
version = "0.3.1"
version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58a04f421d1485ba4739e723199f5828bca05ab4e622ed39a96a342b6b1a6a3d"
checksum = "eb5d40303dabe4608fc260de2bd7563da6f85bc90af956323f0cd8ae0abcfe03"
dependencies = [
"bitflags",
"cairo-rs",
@ -768,7 +763,7 @@ dependencies = [
"gdk-pixbuf",
"gdk4",
"gio",
"glib 0.14.8",
"glib 0.15.10",
"graphene-rs",
"gsk4",
"gtk4-macros",
@ -780,37 +775,36 @@ dependencies = [
[[package]]
name = "gtk4-macros"
version = "0.3.1"
version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5068d4354af02454f44687adc613100aa98ae11e273cdcac84f89dc08be2b4a1"
checksum = "7f3c4aa605fb3d78205c7aef0eeaa6db61d8cc4dd05a465dc6ffdfdaee84f825"
dependencies = [
"anyhow",
"heck",
"itertools 0.10.3",
"proc-macro-crate 1.1.3",
"proc-macro-error",
"proc-macro2",
"quick-xml",
"quote",
"syn",
]
[[package]]
name = "gtk4-sys"
version = "0.3.1"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e20a64c8f0ddcff8902ff04c130747f2fb7834a43530f75d03d6c71335733b49"
checksum = "c47c075e8f795c38f6e9a47b51a73eab77b325f83c0154979ed4d4245c36490d"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
"gdk4-sys",
"gio-sys",
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"graphene-sys",
"gsk4-sys",
"libc",
"pango-sys",
"system-deps 5.0.0",
"system-deps 6.0.2",
]
[[package]]
@ -822,6 +816,12 @@ dependencies = [
"unicode-segmentation",
]
[[package]]
name = "heck"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
[[package]]
name = "itertools"
version = "0.9.0"
@ -831,15 +831,6 @@ dependencies = [
"either",
]
[[package]]
name = "itertools"
version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
dependencies = [
"either",
]
[[package]]
name = "lazy_static"
version = "1.4.0"
@ -848,14 +839,14 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libadwaita"
version = "0.1.0-beta-1"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cef1e2d4b5490caff8a1d44648f68721ab917f765a7fa1d0226fcdac42d86552"
checksum = "f2ae453d28e3b91f03749f02b1531e8cfe315a1d0762b77a61797d2ab80bb87d"
dependencies = [
"gdk-pixbuf",
"gdk4",
"gio",
"glib 0.14.8",
"glib 0.15.10",
"gtk4",
"libadwaita-sys",
"libc",
@ -865,17 +856,17 @@ dependencies = [
[[package]]
name = "libadwaita-sys"
version = "0.1.0-beta-1"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a165d8c96824753ec072b70a9149790efa3d5abb07e130cda7eb04ef2006d4c"
checksum = "f18b6ac4cadd252a89f5cba0a5a4e99836131795d6fad37b859ac79e8cb7d2c8"
dependencies = [
"gdk4-sys",
"gio-sys",
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"gtk4-sys",
"libc",
"system-deps 3.2.0",
"system-deps 6.0.2",
]
[[package]]
@ -996,7 +987,7 @@ dependencies = [
"gdk4",
"gettext-rs",
"gio",
"glib 0.14.8",
"glib 0.15.10",
"gstreamer",
"gtk-macros",
"gtk4",
@ -1014,7 +1005,7 @@ version = "0.1.0"
dependencies = [
"fragile",
"gio",
"glib 0.14.8",
"glib 0.15.10",
"gstreamer",
"gstreamer-player",
"log",
@ -1043,7 +1034,7 @@ name = "musicus_import"
version = "0.1.0"
dependencies = [
"base64",
"glib 0.14.8",
"glib 0.15.10",
"gstreamer",
"gstreamer-pbutils",
"log",
@ -1126,13 +1117,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]]
name = "pango"
version = "0.14.8"
name = "option-operations"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "546fd59801e5ca735af82839007edd226fe7d3bb06433ec48072be4439c28581"
checksum = "95d6113415f41b268f1195907427519769e40ee6f28cbb053795098a2c16f447"
dependencies = [
"paste",
]
[[package]]
name = "pango"
version = "0.15.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f"
dependencies = [
"bitflags",
"glib 0.14.8",
"glib 0.15.10",
"libc",
"once_cell",
"pango-sys",
@ -1140,14 +1140,14 @@ dependencies = [
[[package]]
name = "pango-sys"
version = "0.14.0"
version = "0.15.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2367099ca5e761546ba1d501955079f097caa186bb53ce0f718dca99ac1942fe"
checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa"
dependencies = [
"glib-sys 0.14.0",
"gobject-sys 0.14.0",
"glib-sys 0.15.10",
"gobject-sys 0.15.10",
"libc",
"system-deps 3.2.0",
"system-deps 6.0.2",
]
[[package]]
@ -1247,6 +1247,15 @@ dependencies = [
"unicode-xid",
]
[[package]]
name = "quick-xml"
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8533f14c8382aaad0d592c812ac3b826162128b65662331e1127b45c3d18536b"
dependencies = [
"memchr",
]
[[package]]
name = "quote"
version = "1.0.17"
@ -1388,31 +1397,13 @@ version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
[[package]]
name = "strum"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2"
[[package]]
name = "strum_macros"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
dependencies = [
"heck",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "strum_macros"
version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec"
dependencies = [
"heck",
"heck 0.3.3",
"proc-macro2",
"quote",
"syn",
@ -1435,10 +1426,10 @@ version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
dependencies = [
"heck",
"heck 0.3.3",
"pkg-config",
"strum 0.18.0",
"strum_macros 0.18.0",
"strum",
"strum_macros",
"thiserror",
"toml",
"version-compare 0.0.10",
@ -1446,34 +1437,22 @@ dependencies = [
[[package]]
name = "system-deps"
version = "3.2.0"
version = "6.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6"
checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709"
dependencies = [
"anyhow",
"cfg-expr 0.8.1",
"heck",
"itertools 0.10.3",
"cfg-expr",
"heck 0.4.0",
"pkg-config",
"strum 0.21.0",
"strum_macros 0.21.1",
"thiserror",
"toml",
"version-compare 0.0.11",
"version-compare 0.1.0",
]
[[package]]
name = "system-deps"
version = "5.0.0"
name = "temp-dir"
version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e"
dependencies = [
"cfg-expr 0.9.1",
"heck",
"pkg-config",
"toml",
"version-compare 0.0.11",
]
checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
[[package]]
name = "thiserror"
@ -1571,9 +1550,9 @@ checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
[[package]]
name = "version-compare"
version = "0.0.11"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b"
checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73"
[[package]]
name = "version_check"

View file

@ -5,10 +5,10 @@ edition = "2021"
[dependencies]
fragile = "1.0.0"
gio = "0.14.0"
glib = "0.14.0"
gstreamer = "0.17.0"
gstreamer-player = "0.17.0"
gio = "0.15.10"
glib = "0.15.10"
gstreamer = "0.18.7"
gstreamer-player = "0.18.0"
log = { version = "0.4.14", features = ["std"] }
musicus_database = { version = "0.1.0", path = "../database" }
musicus_import = { version = "0.1.0", path = "../import" }
@ -16,4 +16,4 @@ thiserror = "1.0.23"
tokio = { version = "1.4.0", features = ["sync"] }
[target.'cfg(target_os = "linux")'.dependencies]
mpris-player = "0.6.0"
mpris-player = "0.6.1"

View file

@ -352,7 +352,7 @@ impl Player {
let uri = glib::filename_to_uri(&path, None)
.map_err(|_| Error::Other(format!("Failed to create URI from path: {}", path)))?;
self.player.set_uri(&uri);
self.player.set_uri(Some(&uri));
if self.is_playing() {
self.player.play();

View file

@ -5,9 +5,9 @@ edition = "2021"
[dependencies]
base64 = "0.13.0"
glib = "0.14.0"
gstreamer = "0.17.0"
gstreamer-pbutils = "0.17.0"
glib = "0.15.10"
gstreamer = "0.18.7"
gstreamer-pbutils = "0.18.7"
log = "0.4.14"
once_cell = "1.5.2"
rand = "0.7.3"

View file

@ -118,13 +118,13 @@ pub(super) fn new() -> Result<ImportSession> {
for track in &tracks_clone {
info!("Starting to rip track {}.", track.number);
cdparanoiasrc.set_property("track", &track.number)?;
cdparanoiasrc.set_property("track", &track.number);
// The filesink needs to be reset to be able to change the file location.
filesink.set_state(gstreamer::State::Null)?;
let path = track.path.to_str().unwrap();
filesink.set_property("location", &path)?;
filesink.set_property("location", &path);
// This will also affect the filesink as expected.
pipeline.set_state(gstreamer::State::Playing)?;

View file

@ -5,15 +5,15 @@ edition = "2021"
[dependencies]
anyhow = "1.0.33"
adw = { package = "libadwaita", version = "0.1.0-alpha-6" }
adw = { package = "libadwaita", version = "0.1.1" }
async-trait = "0.1.42"
futures-channel = "0.3.5"
gdk = { package = "gdk4", version = "0.3.0" }
gettext-rs = { version = "0.5.0", features = ["gettext-system"] }
gio = "0.14.0"
glib = "0.14.0"
gstreamer = "0.17.0"
gtk = { package = "gtk4", version = "0.3.0" }
gdk = { package = "gdk4", version = "0.4.7" }
gettext-rs = { version = "0.7.0", features = ["gettext-system"] }
gio = "0.15.10"
glib = "0.15.10"
gstreamer = "0.18.7"
gtk = { package = "gtk4", version = "0.4.7" }
gtk-macros = "0.3.0"
log = "0.4.14"
musicus_backend = { version = "0.1.0", path = "../backend" }

View file

@ -2,8 +2,7 @@ use crate::navigator::{NavigationHandle, Screen};
use crate::widgets::{Editor, EntryRow, Section, Widget};
use anyhow::Result;
use gettextrs::gettext;
use glib::clone;
use gtk::prelude::*;
use gtk::{builders::ListBoxBuilder, glib::clone, prelude::*};
use musicus_backend::db::{generate_id, Ensemble};
use std::rc::Rc;
@ -24,7 +23,7 @@ impl Screen<Option<Ensemble>, Ensemble> for EnsembleEditor {
let editor = Editor::new();
editor.set_title("Ensemble");
let list = gtk::ListBoxBuilder::new()
let list = ListBoxBuilder::new()
.selection_mode(gtk::SelectionMode::None)
.css_classes(vec![String::from("boxed-list")])
.build();

View file

@ -2,8 +2,7 @@ use crate::navigator::{NavigationHandle, Screen};
use crate::widgets::{Editor, EntryRow, Section, Widget};
use anyhow::Result;
use gettextrs::gettext;
use glib::clone;
use gtk::prelude::*;
use gtk::{glib::clone, prelude::*, builders::ListBoxBuilder};
use musicus_backend::db::{generate_id, Instrument};
use std::rc::Rc;
@ -24,7 +23,7 @@ impl Screen<Option<Instrument>, Instrument> for InstrumentEditor {
let editor = Editor::new();
editor.set_title("Instrument/Role");
let list = gtk::ListBoxBuilder::new()
let list = ListBoxBuilder::new()
.selection_mode(gtk::SelectionMode::None)
.css_classes(vec![String::from("boxed-list")])
.build();

View file

@ -3,7 +3,8 @@ use crate::selectors::{EnsembleSelector, InstrumentSelector, PersonSelector};
use crate::widgets::{ButtonRow, Editor, Section, Widget};
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
use gtk::builders::ButtonBuilder;
use gtk::{builders::ListBoxBuilder, glib::clone};
use log::error;
use musicus_backend::db::{Ensemble, Instrument, Performance, Person, PersonOrEnsemble};
use std::cell::RefCell;
@ -29,7 +30,7 @@ impl Screen<Option<Performance>, Performance> for PerformanceEditor {
editor.set_title("Performance");
editor.set_may_save(false);
let performer_list = gtk::ListBoxBuilder::new()
let performer_list = ListBoxBuilder::new()
.selection_mode(gtk::SelectionMode::None)
.css_classes(vec![String::from("boxed-list")])
.build();
@ -45,12 +46,12 @@ impl Screen<Option<Performance>, Performance> for PerformanceEditor {
"Select either a person or an ensemble as a performer.",
));
let role_list = gtk::ListBoxBuilder::new()
let role_list = ListBoxBuilder::new()
.selection_mode(gtk::SelectionMode::None)
.css_classes(vec![String::from("boxed-list")])
.build();
let reset_role_button = gtk::ButtonBuilder::new()
let reset_role_button = ButtonBuilder::new()
.icon_name("user-trash-symbolic")
.valign(gtk::Align::Center)
.visible(false)

View file

@ -3,7 +3,7 @@ use crate::widgets::{Editor, EntryRow, Section, Widget};
use anyhow::Result;
use gettextrs::gettext;
use glib::clone;
use gtk::prelude::*;
use gtk::{builders::ListBoxBuilder, prelude::*};
use musicus_backend::db::{generate_id, Person};
use std::rc::Rc;
@ -25,7 +25,7 @@ impl Screen<Option<Person>, Person> for PersonEditor {
let editor = Editor::new();
editor.set_title("Person");
let list = gtk::ListBoxBuilder::new()
let list = ListBoxBuilder::new()
.selection_mode(gtk::SelectionMode::None)
.css_classes(vec![String::from("boxed-list")])
.build();

View file

@ -2,6 +2,7 @@ use super::performance::PerformanceEditor;
use crate::navigator::{NavigationHandle, Screen};
use crate::selectors::WorkSelector;
use crate::widgets::{List, Widget};
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use anyhow::Result;
use gettextrs::gettext;
@ -97,7 +98,7 @@ impl Screen<Option<Recording>, Recording> for RecordingEditor {
this.performance_list.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
let performance = &this.performances.borrow()[index];
let delete_button = gtk::Button::from_icon_name(Some("user-trash-symbolic"));
let delete_button = gtk::Button::from_icon_name("user-trash-symbolic");
delete_button.set_valign(gtk::Align::Center);
delete_button.connect_clicked(clone!(@weak this => move |_| {
@ -110,7 +111,7 @@ impl Screen<Option<Recording>, Recording> for RecordingEditor {
this.performance_list.update(length);
}));
let edit_button = gtk::Button::from_icon_name(Some("document-edit-symbolic"));
let edit_button = gtk::Button::from_icon_name("document-edit-symbolic");
edit_button.set_valign(gtk::Align::Center);
edit_button.connect_clicked(clone!(@weak this => move |_| {
@ -128,7 +129,7 @@ impl Screen<Option<Recording>, Recording> for RecordingEditor {
});
}));
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.focusable(false)
.activatable_widget(&edit_button)
.title(&performance.get_title())

View file

@ -2,6 +2,7 @@ use super::work_part::WorkPartEditor;
use crate::navigator::{NavigationHandle, Screen};
use crate::selectors::{InstrumentSelector, PersonSelector};
use crate::widgets::{List, Widget};
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use anyhow::Result;
use gettextrs::gettext;
@ -111,7 +112,7 @@ impl Screen<Option<Work>, Work> for WorkEditor {
clone!(@weak this => @default-panic, move |index| {
let instrument = &this.instruments.borrow()[index];
let delete_button = gtk::Button::from_icon_name(Some("user-trash-symbolic"));
let delete_button = gtk::Button::from_icon_name("user-trash-symbolic");
delete_button.set_valign(gtk::Align::Center);
delete_button.connect_clicked(clone!(@strong this => move |_| {
@ -124,7 +125,7 @@ impl Screen<Option<Work>, Work> for WorkEditor {
this.instrument_list.update(length);
}));
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.title(&instrument.name)
.build();
@ -152,7 +153,7 @@ impl Screen<Option<Work>, Work> for WorkEditor {
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
let part = &this.parts.borrow()[index];
let delete_button = gtk::Button::from_icon_name(Some("user-trash-symbolic"));
let delete_button = gtk::Button::from_icon_name("user-trash-symbolic");
delete_button.set_valign(gtk::Align::Center);
delete_button.connect_clicked(clone!(@weak this => move |_| {
@ -165,7 +166,7 @@ impl Screen<Option<Work>, Work> for WorkEditor {
this.part_list.update(length);
}));
let edit_button = gtk::Button::from_icon_name(Some("document-edit-symbolic"));
let edit_button = gtk::Button::from_icon_name("document-edit-symbolic");
edit_button.set_valign(gtk::Align::Center);
edit_button.connect_clicked(clone!(@weak this => move |_| {
@ -183,7 +184,7 @@ impl Screen<Option<Work>, Work> for WorkEditor {
});
}));
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.focusable(false)
.title(&part.title)
.activatable_widget(&edit_button)

View file

@ -3,6 +3,7 @@ use super::medium_preview::MediumPreview;
use crate::navigator::{NavigationHandle, Screen};
use crate::selectors::MediumSelector;
use crate::widgets::Widget;
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use glib::clone;
use gtk_macros::get_widget;
@ -64,7 +65,7 @@ impl ImportScreen {
let this = self;
for medium in mediums {
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&medium.name)
.subtitle(&format!("{} Tracks", medium.tracks.len()))

View file

@ -1,6 +1,7 @@
use super::track_set_editor::{TrackData, TrackSetData, TrackSetEditor};
use crate::navigator::{NavigationHandle, Screen};
use crate::widgets::{List, Widget};
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use anyhow::Result;
use glib::clone;
@ -102,13 +103,13 @@ impl Screen<(Arc<ImportSession>, Option<Medium>), Medium> for MediumEditor {
let title = track_set.recording.work.get_title();
let subtitle = track_set.recording.get_performers();
let edit_image = gtk::Image::from_icon_name(Some("document-edit-symbolic"));
let edit_image = gtk::Image::from_icon_name("document-edit-symbolic");
let edit_button = gtk::Button::new();
edit_button.set_has_frame(false);
edit_button.set_valign(gtk::Align::Center);
edit_button.set_child(Some(&edit_image));
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.focusable(false)
.title(&title)
.subtitle(&subtitle)

View file

@ -1,9 +1,11 @@
use super::medium_editor::MediumEditor;
use crate::navigator::{NavigationHandle, Screen};
use crate::widgets::Widget;
use adw::builders::ActionRowBuilder;
use anyhow::{anyhow, Result};
use gettextrs::gettext;
use glib::clone;
use gtk::builders::{ListBoxBuilder, FrameBuilder};
use gtk::prelude::*;
use gtk_macros::get_widget;
use musicus_backend::db::Medium;
@ -139,13 +141,13 @@ impl MediumPreview {
if track.recording.id != last_recording_id {
last_recording_id = &track.recording.id;
let list = gtk::ListBoxBuilder::new()
let list = ListBoxBuilder::new()
.selection_mode(gtk::SelectionMode::None)
.margin_bottom(12)
.css_classes(vec![String::from("boxed-list")])
.build();
let header = adw::ActionRowBuilder::new()
let header = ActionRowBuilder::new()
.activatable(false)
.title(&track.recording.work.get_title())
.subtitle(&track.recording.get_performers())
@ -172,7 +174,7 @@ impl MediumPreview {
parts.join(", ")
};
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(false)
.title(&title)
.subtitle(&import_tracks[track.source_index].name)
@ -184,7 +186,7 @@ impl MediumPreview {
}
if let Some(list) = &last_list {
let frame = gtk::FrameBuilder::new().margin_bottom(12).build();
let frame = FrameBuilder::new().margin_bottom(12).build();
frame.set_child(Some(list));
self.medium_box.append(&frame);

View file

@ -1,7 +1,9 @@
use crate::navigator::{NavigationHandle, Screen};
use crate::widgets::Widget;
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use glib::clone;
use gtk::builders::ListBoxBuilder;
use gtk_macros::get_widget;
use musicus_backend::db::Recording;
use std::cell::RefCell;
@ -29,7 +31,7 @@ impl Screen<(Recording, Vec<usize>), Vec<usize>> for TrackEditor {
get_widget!(builder, gtk::Button, select_button);
get_widget!(builder, adw::Clamp, clamp);
let parts_list = gtk::ListBoxBuilder::new()
let parts_list = ListBoxBuilder::new()
.selection_mode(gtk::SelectionMode::None)
.css_classes(vec![String::from("boxed-list")])
.build();
@ -66,7 +68,7 @@ impl Screen<(Recording, Vec<usize>), Vec<usize>> for TrackEditor {
}
}));
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.focusable(false)
.title(&part.title)
.activatable_widget(&check)

View file

@ -1,7 +1,9 @@
use crate::navigator::{NavigationHandle, Screen};
use crate::widgets::Widget;
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use glib::clone;
use gtk::builders::ListBoxBuilder;
use gtk_macros::get_widget;
use musicus_backend::import::ImportSession;
use std::cell::RefCell;
@ -29,7 +31,7 @@ impl Screen<Arc<ImportSession>, Vec<usize>> for TrackSelector {
get_widget!(builder, gtk::Button, select_button);
get_widget!(builder, adw::Clamp, clamp);
let track_list = gtk::ListBoxBuilder::new()
let track_list = ListBoxBuilder::new()
.selection_mode(gtk::SelectionMode::None)
.css_classes(vec![String::from("boxed-list")])
.build();
@ -76,7 +78,7 @@ impl Screen<Arc<ImportSession>, Vec<usize>> for TrackSelector {
}
}));
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.focusable(false)
.title(&track.name)
.activatable_widget(&check)

View file

@ -3,6 +3,7 @@ use super::track_selector::TrackSelector;
use crate::navigator::{NavigationHandle, Screen};
use crate::selectors::RecordingSelector;
use crate::widgets::{List, Widget};
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
@ -138,13 +139,13 @@ impl Screen<Arc<ImportSession>, TrackSetData> for TrackSetEditor {
let tracks = this.session.tracks();
let track_name = &tracks[track.track_source].name;
let edit_image = gtk::Image::from_icon_name(Some("document-edit-symbolic"));
let edit_image = gtk::Image::from_icon_name("document-edit-symbolic");
let edit_button = gtk::Button::new();
edit_button.set_has_frame(false);
edit_button.set_valign(gtk::Align::Center);
edit_button.set_child(Some(&edit_image));
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.focusable(false)
.title(&title)
.subtitle(track_name)

View file

@ -22,8 +22,8 @@ mod resources;
fn main() {
gettextrs::setlocale(gettextrs::LocaleCategory::LcAll, "");
gettextrs::bindtextdomain("musicus", config::LOCALEDIR);
gettextrs::textdomain("musicus");
gettextrs::bindtextdomain("musicus", config::LOCALEDIR).unwrap();
gettextrs::textdomain("musicus").unwrap();
gstreamer::init().expect("Failed to initialize GStreamer!");
gtk::init().expect("Failed to initialize GTK!");

View file

@ -2,6 +2,7 @@ use crate::widgets::Widget;
use futures_channel::oneshot;
use futures_channel::oneshot::{Receiver, Sender};
use glib::clone;
use gtk::builders::StackBuilder;
use gtk::prelude::*;
use musicus_backend::Backend;
use std::cell::{Cell, RefCell};
@ -96,7 +97,7 @@ impl Navigator {
W: IsA<gtk::Window>,
E: IsA<gtk::Widget>,
{
let widget = gtk::StackBuilder::new()
let widget = StackBuilder::new()
.hhomogeneous(false)
.vhomogeneous(false)
.interpolate_size(true)

View file

@ -3,6 +3,7 @@ use crate::editors::EnsembleEditor;
use crate::navigator::{NavigationHandle, NavigatorWindow, Screen};
use crate::widgets;
use crate::widgets::{List, Section, Widget};
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
@ -74,7 +75,7 @@ impl Screen<Ensemble, ()> for EnsembleScreen {
clone!(@weak this => @default-panic, move |index| {
let recording = &this.recordings.borrow()[index];
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&recording.work.get_title())
.subtitle(&recording.get_performers())
@ -104,7 +105,7 @@ impl Screen<Ensemble, ()> for EnsembleScreen {
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
let medium = &this.mediums.borrow()[index];
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&medium.name)
.build();

View file

@ -4,9 +4,11 @@ use crate::import::SourceSelector;
use crate::navigator::{NavigationHandle, Navigator, NavigatorWindow, Screen};
use crate::preferences::Preferences;
use crate::widgets::{List, PlayerBar, Widget};
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
use gtk::builders::AboutDialogBuilder;
use gtk_macros::get_widget;
use musicus_backend::db::PersonOrEnsemble;
use std::cell::RefCell;
@ -95,7 +97,7 @@ impl Screen<(), ()> for MainScreen {
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
let poe = &this.poes.borrow()[index];
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&poe.get_title())
.build();
@ -193,7 +195,7 @@ impl Widget for MainScreen {
impl MainScreen {
/// Show a dialog with information on this application.
fn show_about_dialog(&self) {
let dialog = gtk::AboutDialogBuilder::new()
let dialog = AboutDialogBuilder::new()
.transient_for(&self.handle.window)
.modal(true)
.logo_icon_name("de.johrpan.musicus")

View file

@ -1,6 +1,7 @@
use crate::navigator::{NavigationHandle, Screen};
use crate::widgets;
use crate::widgets::{List, Section, Widget};
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
@ -74,7 +75,7 @@ impl Screen<Medium, ()> for MediumScreen {
parts.join(", ")
};
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.margin_start(12)
.selectable(false)
.title(&title)

View file

@ -3,6 +3,7 @@ use crate::editors::PersonEditor;
use crate::navigator::{NavigationHandle, NavigatorWindow, Screen};
use crate::widgets;
use crate::widgets::{List, Section, Widget};
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
@ -80,7 +81,7 @@ impl Screen<Person, ()> for PersonScreen {
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
let work = &this.works.borrow()[index];
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&work.title)
.build();
@ -108,7 +109,7 @@ impl Screen<Person, ()> for PersonScreen {
clone!(@weak this => @default-panic, move |index| {
let recording = &this.recordings.borrow()[index];
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&recording.work.get_title())
.subtitle(&recording.get_performers())
@ -138,7 +139,7 @@ impl Screen<Person, ()> for PersonScreen {
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
let medium = &this.mediums.borrow()[index];
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&medium.name)
.build();

View file

@ -2,6 +2,7 @@ use crate::editors::RecordingEditor;
use crate::navigator::{NavigationHandle, NavigatorWindow, Screen};
use crate::widgets;
use crate::widgets::{List, Section, Widget};
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
@ -84,7 +85,7 @@ impl Screen<Recording, ()> for RecordingScreen {
title_parts.join(", ")
};
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.title(&title)
.build();

View file

@ -1,7 +1,9 @@
use crate::navigator::{NavigationHandle, Screen};
use crate::widgets::Widget;
use adw::builders::{HeaderBarBuilder, StatusPageBuilder};
use gettextrs::gettext;
use glib::clone;
use gtk::builders::{BoxBuilder, ButtonBuilder};
use gtk::prelude::*;
use std::rc::Rc;
@ -15,20 +17,20 @@ pub struct WelcomeScreen {
impl Screen<(), ()> for WelcomeScreen {
fn new(_: (), handle: NavigationHandle<()>) -> Rc<Self> {
let widget = gtk::BoxBuilder::new()
let widget = BoxBuilder::new()
.orientation(gtk::Orientation::Vertical)
.build();
let header = adw::HeaderBarBuilder::new()
let header = HeaderBarBuilder::new()
.title_widget(&adw::WindowTitle::new("Musicus", ""))
.build();
let button = gtk::ButtonBuilder::new()
let button = ButtonBuilder::new()
.halign(gtk::Align::Center)
.label(&gettext("Select folder"))
.build();
let welcome = adw::StatusPageBuilder::new()
let welcome = StatusPageBuilder::new()
.icon_name("folder-music-symbolic")
.title(&gettext("Welcome to Musicus!"))
.description(&gettext(

View file

@ -3,6 +3,7 @@ use crate::editors::WorkEditor;
use crate::navigator::{NavigationHandle, NavigatorWindow, Screen};
use crate::widgets;
use crate::widgets::{List, Section, Widget};
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
@ -69,7 +70,7 @@ impl Screen<Work, ()> for WorkScreen {
clone!(@weak this => @default-panic, move |index| {
let recording = &this.recordings.borrow()[index];
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&recording.work.get_title())
.subtitle(&recording.get_performers())

View file

@ -2,6 +2,7 @@ use super::selector::Selector;
use crate::editors::EnsembleEditor;
use crate::navigator::{NavigationHandle, Screen};
use crate::widgets::Widget;
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
@ -41,7 +42,7 @@ impl Screen<(), Ensemble> for EnsembleSelector {
this.selector
.set_make_widget(clone!(@weak this => @default-panic, move |ensemble| {
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&ensemble.name)
.build();

View file

@ -2,6 +2,7 @@ use super::selector::Selector;
use crate::editors::InstrumentEditor;
use crate::navigator::{NavigationHandle, Screen};
use crate::widgets::Widget;
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
@ -41,7 +42,7 @@ impl Screen<(), Instrument> for InstrumentSelector {
this.selector
.set_make_widget(clone!(@weak this => @default-panic, move |instrument| {
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&instrument.name)
.build();

View file

@ -1,6 +1,7 @@
use super::selector::Selector;
use crate::navigator::{NavigationHandle, Screen};
use crate::widgets::Widget;
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
@ -30,7 +31,7 @@ impl Screen<(), Medium> for MediumSelector {
}));
this.selector.set_make_widget(clone!(@weak this => @default-panic, move |poe| {
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&poe.get_title())
.build();
@ -103,7 +104,7 @@ impl Screen<PersonOrEnsemble, Medium> for MediumSelectorMediumScreen {
this.selector
.set_make_widget(clone!(@weak this => @default-panic, move |medium| {
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&medium.name)
.build();

View file

@ -2,6 +2,7 @@ use super::selector::Selector;
use crate::editors::PersonEditor;
use crate::navigator::{NavigationHandle, Screen};
use crate::widgets::Widget;
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
@ -41,7 +42,7 @@ impl Screen<(), Person> for PersonSelector {
this.selector
.set_make_widget(clone!(@weak this => @default-panic, move |person| {
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&person.name_lf())
.build();

View file

@ -2,6 +2,7 @@ use super::selector::Selector;
use crate::editors::{PersonEditor, RecordingEditor, WorkEditor};
use crate::navigator::{NavigationHandle, Screen};
use crate::widgets::Widget;
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
@ -52,7 +53,7 @@ impl Screen<(), Recording> for RecordingSelector {
}));
this.selector.set_make_widget(clone!(@weak this => @default-panic, move |person| {
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&person.name_lf())
.build();
@ -127,7 +128,7 @@ impl Screen<Person, Work> for RecordingSelectorWorkScreen {
this.selector
.set_make_widget(clone!(@weak this => @default-panic, move |work| {
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&work.title)
.build();
@ -190,7 +191,7 @@ impl Screen<Work, Recording> for RecordingSelectorRecordingScreen {
this.selector
.set_make_widget(clone!(@weak this => @default-panic, move |recording| {
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&recording.get_performers())
.build();

View file

@ -2,6 +2,7 @@ use super::selector::Selector;
use crate::editors::{PersonEditor, WorkEditor};
use crate::navigator::{NavigationHandle, Screen};
use crate::widgets::Widget;
use adw::builders::ActionRowBuilder;
use adw::prelude::*;
use gettextrs::gettext;
use glib::clone;
@ -46,7 +47,7 @@ impl Screen<(), Work> for WorkSelector {
}));
this.selector.set_make_widget(clone!(@weak this => @default-panic, move |person| {
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&person.name_lf())
.build();
@ -117,7 +118,7 @@ impl Screen<Person, Work> for WorkSelectorWorkScreen {
this.selector
.set_make_widget(clone!(@weak this => @default-panic, move |work| {
let row = adw::ActionRowBuilder::new()
let row = ActionRowBuilder::new()
.activatable(true)
.title(&work.title)
.build();

View file

@ -1,5 +1,6 @@
use super::Widget;
use adw::prelude::*;
use adw::{prelude::*, builders::ActionRowBuilder};
use gtk::builders::ButtonBuilder;
/// A list box row with a single button.
pub struct ButtonRow {
@ -13,12 +14,12 @@ pub struct ButtonRow {
impl ButtonRow {
/// Create a new button row.
pub fn new(title: &str, label: &str) -> Self {
let button = gtk::ButtonBuilder::new()
let button = ButtonBuilder::new()
.valign(gtk::Align::Center)
.label(label)
.build();
let widget = adw::ActionRowBuilder::new()
let widget = ActionRowBuilder::new()
.focusable(false)
.activatable_widget(&button)
.title(title)

View file

@ -1,4 +1,5 @@
use adw::prelude::*;
use adw::{prelude::*, builders::ActionRowBuilder};
use gtk::builders::EntryBuilder;
/// A list box row with an entry.
pub struct EntryRow {
@ -12,12 +13,12 @@ pub struct EntryRow {
impl EntryRow {
/// Create a new entry row.
pub fn new(title: &str) -> Self {
let entry = gtk::EntryBuilder::new()
let entry = EntryBuilder::new()
.hexpand(true)
.valign(gtk::Align::Center)
.build();
let widget = adw::ActionRowBuilder::new()
let widget = ActionRowBuilder::new()
.focusable(false)
.activatable_widget(&entry)
.title(title)

View file

@ -12,8 +12,8 @@ glib::wrapper! {
impl IndexedListModel {
/// Set the length of the list model.
pub fn set_length(&self, length: u32) {
let old_length = self.property("length").unwrap().get::<u32>().unwrap();
self.set_property("length", &length).unwrap();
let old_length = self.property("length");
self.set_property("length", &length);
self.items_changed(0, old_length, length);
}
}
@ -43,7 +43,7 @@ mod indexed_list_model_imp {
impl ObjectImpl for IndexedListModel {
fn properties() -> &'static [glib::ParamSpec] {
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
vec![glib::ParamSpec::new_uint(
vec![glib::ParamSpecUInt::new(
"length",
"Length",
"Length",
@ -109,7 +109,7 @@ impl ItemIndex {
/// Get the value of the item index..
pub fn get(&self) -> u32 {
self.property("value").unwrap().get::<u32>().unwrap()
self.property("value")
}
}
@ -132,7 +132,7 @@ mod item_index_imp {
impl ObjectImpl for ItemIndex {
fn properties() -> &'static [glib::ParamSpec] {
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
vec![glib::ParamSpec::new_uint(
vec![glib::ParamSpecUInt::new(
"value",
"Value",
"Value",

View file

@ -1,5 +1,6 @@
use super::indexed_list_model::{IndexedListModel, ItemIndex};
use glib::clone;
use gtk::builders::ListBoxBuilder;
use gtk::prelude::*;
use std::cell::{Cell, RefCell};
use std::rc::Rc;
@ -27,7 +28,7 @@ impl List {
// let factory = gtk::SignalListItemFactory::new();
// let widget = gtk::ListView::new(Some(&selection), Some(&factory));
let widget = gtk::ListBoxBuilder::new()
let widget = ListBoxBuilder::new()
.selection_mode(gtk::SelectionMode::None)
.css_classes(vec![String::from("boxed-list")])
.build();

View file

@ -1,5 +1,5 @@
use super::Widget;
use gtk::prelude::*;
use gtk::{prelude::*, builders::ButtonBuilder};
use gtk_macros::get_widget;
/// A widget displaying a title, a framed child widget and, if needed, some
@ -46,7 +46,7 @@ impl Section {
/// situations where the widget is visible. The new button will be packed
/// to the end of the title box.
pub fn add_action<F: Fn() + 'static>(&self, icon_name: &str, cb: F) {
let button = gtk::ButtonBuilder::new()
let button = ButtonBuilder::new()
.has_frame(false)
.valign(gtk::Align::Center)
.margin_top(12)

View file

@ -1,7 +1,9 @@
use crate::navigator::Navigator;
use crate::screens::{MainScreen, WelcomeScreen};
use adw::builders::HeaderBarBuilder;
use adw::prelude::*;
use glib::clone;
use gtk::prelude::*;
use gtk::builders::{BoxBuilder, SpinnerBuilder};
use musicus_backend::{Backend, BackendState};
use std::rc::Rc;
@ -21,15 +23,15 @@ impl Window {
window.set_title(Some("Musicus"));
window.set_default_size(1000, 707);
let loading_screen = gtk::BoxBuilder::new()
let loading_screen = BoxBuilder::new()
.orientation(gtk::Orientation::Vertical)
.build();
let header = adw::HeaderBarBuilder::new()
let header = HeaderBarBuilder::new()
.title_widget(&adw::WindowTitle::new("Musicus", ""))
.build();
let spinner = gtk::SpinnerBuilder::new()
let spinner = SpinnerBuilder::new()
.hexpand(true)
.vexpand(true)
.halign(gtk::Align::Center)
@ -43,7 +45,7 @@ impl Window {
loading_screen.append(&spinner);
let navigator = Navigator::new(Rc::clone(&backend), &window, &loading_screen);
adw::traits::ApplicationWindowExt::set_content(&window, Some(&navigator.widget));
window.set_content(Some(&navigator.widget));
let this = Rc::new(Self {
backend,
@ -52,13 +54,14 @@ impl Window {
});
// Listen for backend state changes.
this.backend.set_state_cb(clone!(@weak this => move |state| {
match state {
BackendState::Loading => this.navigator.reset(),
BackendState::NoMusicLibrary => this.show_welcome_screen(),
BackendState::Ready => this.show_main_screen(),
}
}));
this.backend
.set_state_cb(clone!(@weak this => move |state| {
match state {
BackendState::Loading => this.navigator.reset(),
BackendState::NoMusicLibrary => this.show_welcome_screen(),
BackendState::Ready => this.show_main_screen(),
}
}));
// Initialize the backend.
Rc::clone(&this.backend).init().unwrap();