mirror of
https://github.com/johrpan/musicus.git
synced 2025-10-26 11:47:25 +01:00
Update gtk-rs crates
This commit is contained in:
parent
3a27113bda
commit
ff17549b8b
39 changed files with 324 additions and 313 deletions
397
Cargo.lock
generated
397
Cargo.lock
generated
|
|
@ -69,26 +69,26 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cairo-rs"
|
name = "cairo-rs"
|
||||||
version = "0.14.9"
|
version = "0.15.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "33b5725979db0c586d98abad2193cdb612dd40ef95cd26bd99851bf93b3cb482"
|
checksum = "129e928d3eda625f53ce257589efbe5143416875fd01bddd08c8c6feb8b9962b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"cairo-sys-rs",
|
"cairo-sys-rs",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cairo-sys-rs"
|
name = "cairo-sys-rs"
|
||||||
version = "0.14.9"
|
version = "0.15.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b448b876970834fda82ba3aeaccadbd760206b75388fc5c1b02f1e343b697570"
|
checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -99,18 +99,9 @@ checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cfg-expr"
|
name = "cfg-expr"
|
||||||
version = "0.8.1"
|
version = "0.10.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b412e83326147c2bb881f8b40edfbf9905b9b8abaebd0e47ca190ba62fda8f0e"
|
checksum = "5e068cb2806bbc15b439846dc16c5f89f8599f2c3e4d73d4449d38f9b2f0b6c5"
|
||||||
dependencies = [
|
|
||||||
"smallvec",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cfg-expr"
|
|
||||||
version = "0.9.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"smallvec",
|
"smallvec",
|
||||||
]
|
]
|
||||||
|
|
@ -281,60 +272,61 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gdk-pixbuf"
|
name = "gdk-pixbuf"
|
||||||
version = "0.14.0"
|
version = "0.15.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "534192cb8f01daeb8fab2c8d4baa8f9aae5b7a39130525779f5c2608e235b10f"
|
checksum = "678516f1baef591d270ca10587c01a12542a731a7879cc62391a18191a470831"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
"gdk-pixbuf-sys",
|
"gdk-pixbuf-sys",
|
||||||
"gio",
|
"gio",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gdk-pixbuf-sys"
|
name = "gdk-pixbuf-sys"
|
||||||
version = "0.14.0"
|
version = "0.15.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f097c0704201fbc8f69c1762dc58c6947c8bb188b8ed0bc7e65259f1894fe590"
|
checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"gio-sys",
|
"gio-sys",
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gdk4"
|
name = "gdk4"
|
||||||
version = "0.3.1"
|
version = "0.4.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f97a162c17214d1bf981af3f683156a0b1667dd1927057c4f0a68513251ecf0f"
|
checksum = "d4a2fc0bd03d59383fc10b71a8cb731a1fac2998732a36a0c03e9b1de1513218"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"cairo-rs",
|
"cairo-rs",
|
||||||
"gdk-pixbuf",
|
"gdk-pixbuf",
|
||||||
"gdk4-sys",
|
"gdk4-sys",
|
||||||
"gio",
|
"gio",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"pango",
|
"pango",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gdk4-sys"
|
name = "gdk4-sys"
|
||||||
version = "0.3.1"
|
version = "0.4.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9498f4e06969fb96a4e4234dfe1d308a3ac6b120b3c6d93e3ec5c77fe88bc6d5"
|
checksum = "48a39e34abe35ee2cf54a1e29dd983accecd113ad30bdead5050418fa92f2a1b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cairo-sys-rs",
|
"cairo-sys-rs",
|
||||||
"gdk-pixbuf-sys",
|
"gdk-pixbuf-sys",
|
||||||
"gio-sys",
|
"gio-sys",
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"graphene-sys",
|
|
||||||
"libc",
|
"libc",
|
||||||
"pango-sys",
|
"pango-sys",
|
||||||
"system-deps 5.0.0",
|
"pkg-config",
|
||||||
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -371,9 +363,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gettext-rs"
|
name = "gettext-rs"
|
||||||
version = "0.5.0"
|
version = "0.7.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1b95fa19cca70adf9888150e979839ae9bd58f85a1a42e4753699112875189e1"
|
checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"gettext-sys",
|
"gettext-sys",
|
||||||
"locale_config",
|
"locale_config",
|
||||||
|
|
@ -381,25 +373,26 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gettext-sys"
|
name = "gettext-sys"
|
||||||
version = "0.19.9"
|
version = "0.21.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e034c4ba5bb796730a6cc5eb0d654c16885006a7c3d6c6603581ed809434f153"
|
checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
|
"temp-dir",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gio"
|
name = "gio"
|
||||||
version = "0.14.8"
|
version = "0.15.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "711c3632b3ebd095578a9c091418d10fed492da9443f58ebc8f45efbeb215cb0"
|
checksum = "76cd21a7a674ea811749661012512b0ba5237ba404ccbcab2850db5537549b64"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-io",
|
"futures-io",
|
||||||
"gio-sys",
|
"gio-sys",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
|
|
@ -407,14 +400,14 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gio-sys"
|
name = "gio-sys"
|
||||||
version = "0.14.0"
|
version = "0.15.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c0a41df66e57fcc287c4bcf74fc26b884f31901ea9792ec75607289b456f48fa"
|
checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -439,21 +432,22 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glib"
|
name = "glib"
|
||||||
version = "0.14.8"
|
version = "0.15.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7c515f1e62bf151ef6635f528d05b02c11506de986e43b34a5c920ef0b3796a4"
|
checksum = "a826fad715b57834920839d7a594c3b5e416358c7d790bdaba847a40d7c1d96d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-executor",
|
"futures-executor",
|
||||||
"futures-task",
|
"futures-task",
|
||||||
"glib-macros 0.14.1",
|
"glib-macros 0.15.10",
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
|
"thiserror",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -463,8 +457,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "41486a26d1366a8032b160b59065a59fb528530a46a49f627e7048fb8c064039"
|
checksum = "41486a26d1366a8032b160b59065a59fb528530a46a49f627e7048fb8c064039"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"heck",
|
"heck 0.3.3",
|
||||||
"itertools 0.9.0",
|
"itertools",
|
||||||
"proc-macro-crate 0.1.5",
|
"proc-macro-crate 0.1.5",
|
||||||
"proc-macro-error",
|
"proc-macro-error",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
|
|
@ -474,12 +468,12 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glib-macros"
|
name = "glib-macros"
|
||||||
version = "0.14.1"
|
version = "0.15.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2aad66361f66796bfc73f530c51ef123970eb895ffba991a234fcf7bea89e518"
|
checksum = "dac4d47c544af67747652ab1865ace0ffa1155709723ac4f32e97587dd4735b2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"heck",
|
"heck 0.4.0",
|
||||||
"proc-macro-crate 1.1.3",
|
"proc-macro-crate 1.1.3",
|
||||||
"proc-macro-error",
|
"proc-macro-error",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
|
|
@ -499,12 +493,12 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glib-sys"
|
name = "glib-sys"
|
||||||
version = "0.14.0"
|
version = "0.15.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1c1d60554a212445e2a858e42a0e48cece1bd57b311a19a9468f70376cf554ae"
|
checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -520,48 +514,48 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gobject-sys"
|
name = "gobject-sys"
|
||||||
version = "0.14.0"
|
version = "0.15.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "aa92cae29759dae34ab5921d73fff5ad54b3d794ab842c117e36cafc7994c3f5"
|
checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "graphene-rs"
|
name = "graphene-rs"
|
||||||
version = "0.14.8"
|
version = "0.15.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e3380f132530ef9eb9e0a2bac180e30390aa5e49892d20294f822a974117a563"
|
checksum = "7c54f9fbbeefdb62c99f892dfca35f83991e2cb5b46a8dc2a715e58612f85570"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"graphene-sys",
|
"graphene-sys",
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "graphene-sys"
|
name = "graphene-sys"
|
||||||
version = "0.14.8"
|
version = "0.15.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9a9ac7450b3aa80792513a3c029920a2ede419de13fb5169a4e51b07a5685332"
|
checksum = "fa691fc7337ba1df599afb55c3bcb85c04f1b3f17362570e9bb0ff0d1bc3028a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"pkg-config",
|
"pkg-config",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gsk4"
|
name = "gsk4"
|
||||||
version = "0.3.1"
|
version = "0.4.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "eff59ca46c4fc5087fd7a0c3770a71ea4b6e94f8c24c12e2c2e8538f9f6fd764"
|
checksum = "14d5a47a78c682bb67496b562495ed84972c0512ba0654888c4dc92b80a85bd3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"cairo-rs",
|
"cairo-rs",
|
||||||
"gdk4",
|
"gdk4",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"graphene-rs",
|
"graphene-rs",
|
||||||
"gsk4-sys",
|
"gsk4-sys",
|
||||||
"libc",
|
"libc",
|
||||||
|
|
@ -570,38 +564,39 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gsk4-sys"
|
name = "gsk4-sys"
|
||||||
version = "0.3.1"
|
version = "0.4.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "13aa53ce70234da02f9954339d988d5ab853d746a8f47a4ae17735ff873545b5"
|
checksum = "e31d21d7ce02ba261bb24c50c4ab238a10b41a2c97c32afffae29471b7cca69b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cairo-sys-rs",
|
"cairo-sys-rs",
|
||||||
"gdk4-sys",
|
"gdk4-sys",
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"graphene-sys",
|
"graphene-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"pango-sys",
|
"pango-sys",
|
||||||
"system-deps 5.0.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer"
|
name = "gstreamer"
|
||||||
version = "0.17.4"
|
version = "0.18.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c6a255f142048ba2c4a4dce39106db1965abe355d23f4b5335edea43a553faa4"
|
checksum = "cd58af6f8b268fc335122a3ccc66efa0cd56584948f49a37e5feef0b89dfc29b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"gstreamer-sys",
|
"gstreamer-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"muldiv",
|
"muldiv",
|
||||||
"num-integer",
|
"num-integer",
|
||||||
"num-rational",
|
"num-rational",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
|
"option-operations",
|
||||||
"paste",
|
"paste",
|
||||||
"pretty-hex",
|
"pretty-hex",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
|
|
@ -609,27 +604,27 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-audio-sys"
|
name = "gstreamer-audio-sys"
|
||||||
version = "0.17.0"
|
version = "0.18.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d066ddfd05f63836f35ac4a5830d5bb2f7f3d6c33c870e9b15c667d20f65d7f6"
|
checksum = "a34258fb53c558c0f41dad194037cbeaabf49d347570df11b8bd1c4897cf7d7c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"gstreamer-base-sys",
|
"gstreamer-base-sys",
|
||||||
"gstreamer-sys",
|
"gstreamer-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-base"
|
name = "gstreamer-base"
|
||||||
version = "0.17.2"
|
version = "0.18.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2c0c1d8c62eb5d08fb80173609f2eea71d385393363146e4e78107facbd67715"
|
checksum = "224f35f36582407caf58ded74854526beeecc23d0cf64b8d1c3e00584ed6863f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"gstreamer",
|
"gstreamer",
|
||||||
"gstreamer-base-sys",
|
"gstreamer-base-sys",
|
||||||
"libc",
|
"libc",
|
||||||
|
|
@ -637,25 +632,25 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-base-sys"
|
name = "gstreamer-base-sys"
|
||||||
version = "0.17.0"
|
version = "0.18.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "28169a7b58edb93ad8ac766f0fa12dcd36a2af4257a97ee10194c7103baf3e27"
|
checksum = "a083493c3c340e71fa7c66eebda016e9fafc03eb1b4804cf9b2bad61994b078e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"gstreamer-sys",
|
"gstreamer-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-pbutils"
|
name = "gstreamer-pbutils"
|
||||||
version = "0.17.2"
|
version = "0.18.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "04cce8a8d8fb28bd5ea00433e8ea2e45a09a68e8b8b9ebe3d6552b33cb49c1b0"
|
checksum = "330684c49f79775d7acce8bef5a7a7475f02374c9c6cead39ced3ad423fc8ea9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"gstreamer",
|
"gstreamer",
|
||||||
"gstreamer-pbutils-sys",
|
"gstreamer-pbutils-sys",
|
||||||
"libc",
|
"libc",
|
||||||
|
|
@ -664,27 +659,27 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-pbutils-sys"
|
name = "gstreamer-pbutils-sys"
|
||||||
version = "0.17.0"
|
version = "0.18.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b6b7507a2c0294755b530e41a402884f326b9dbdc322039aeabac9759c149d65"
|
checksum = "36f79839066fbcc6d1a8690b2f85d5cc5cdc0984f36d4054f5cc67a7ad3ab72d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"gstreamer-audio-sys",
|
"gstreamer-audio-sys",
|
||||||
"gstreamer-sys",
|
"gstreamer-sys",
|
||||||
"gstreamer-video-sys",
|
"gstreamer-video-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-player"
|
name = "gstreamer-player"
|
||||||
version = "0.17.0"
|
version = "0.18.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c503dba6f79b5cd8a4be5329119892c196db013ce66fce16079a7df8ce819a3a"
|
checksum = "5f14ee02352ba73cadebe640bfb33f12fe8d03cbcad816a102d55a0251fb99bb"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"gstreamer",
|
"gstreamer",
|
||||||
"gstreamer-player-sys",
|
"gstreamer-player-sys",
|
||||||
"gstreamer-video",
|
"gstreamer-video",
|
||||||
|
|
@ -694,40 +689,40 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-player-sys"
|
name = "gstreamer-player-sys"
|
||||||
version = "0.17.0"
|
version = "0.18.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3e50bed2a120574750ea1370163df21b50762d0b4967f569fdc58232f4c930d5"
|
checksum = "1f9b674b39a4d0e18710f6e3d2b109f1793d8028ee4e39da3909b55b4529d399"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"gstreamer-sys",
|
"gstreamer-sys",
|
||||||
"gstreamer-video-sys",
|
"gstreamer-video-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-sys"
|
name = "gstreamer-sys"
|
||||||
version = "0.17.3"
|
version = "0.18.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a81704feeb3e8599913bdd1e738455c2991a01ff4a1780cb62200993e454cc3e"
|
checksum = "e3517a65d3c2e6f8905b456eba5d53bda158d664863aef960b44f651cb7d33e2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-video"
|
name = "gstreamer-video"
|
||||||
version = "0.17.2"
|
version = "0.18.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e3447ee95c8e79daec0b163260cf6a3de9bc19ff47a01b533787f900074a3476"
|
checksum = "9418adfc72dafa1ad9eb106527ce4804887d101027c4528ec28c7d29cc899519"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"gstreamer",
|
"gstreamer",
|
||||||
"gstreamer-base",
|
"gstreamer-base",
|
||||||
"gstreamer-video-sys",
|
"gstreamer-video-sys",
|
||||||
|
|
@ -737,16 +732,16 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-video-sys"
|
name = "gstreamer-video-sys"
|
||||||
version = "0.17.0"
|
version = "0.18.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b81608f4182bdddd5bd33aaaa341d5544eda12b067a3dab75b1b7d2de01a3ba7"
|
checksum = "33331b1675e73b5b000c796354278eca7fdde9327015971d9f41afe28b96e0dc"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"gstreamer-base-sys",
|
"gstreamer-base-sys",
|
||||||
"gstreamer-sys",
|
"gstreamer-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -757,9 +752,9 @@ checksum = "da5bf7748fd4cd0b2490df8debcc911809dbcbee4ece9531b96c29a9c729de5a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gtk4"
|
name = "gtk4"
|
||||||
version = "0.3.1"
|
version = "0.4.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "58a04f421d1485ba4739e723199f5828bca05ab4e622ed39a96a342b6b1a6a3d"
|
checksum = "eb5d40303dabe4608fc260de2bd7563da6f85bc90af956323f0cd8ae0abcfe03"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"cairo-rs",
|
"cairo-rs",
|
||||||
|
|
@ -768,7 +763,7 @@ dependencies = [
|
||||||
"gdk-pixbuf",
|
"gdk-pixbuf",
|
||||||
"gdk4",
|
"gdk4",
|
||||||
"gio",
|
"gio",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"graphene-rs",
|
"graphene-rs",
|
||||||
"gsk4",
|
"gsk4",
|
||||||
"gtk4-macros",
|
"gtk4-macros",
|
||||||
|
|
@ -780,37 +775,36 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gtk4-macros"
|
name = "gtk4-macros"
|
||||||
version = "0.3.1"
|
version = "0.4.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5068d4354af02454f44687adc613100aa98ae11e273cdcac84f89dc08be2b4a1"
|
checksum = "7f3c4aa605fb3d78205c7aef0eeaa6db61d8cc4dd05a465dc6ffdfdaee84f825"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"heck",
|
|
||||||
"itertools 0.10.3",
|
|
||||||
"proc-macro-crate 1.1.3",
|
"proc-macro-crate 1.1.3",
|
||||||
"proc-macro-error",
|
"proc-macro-error",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
|
"quick-xml",
|
||||||
"quote",
|
"quote",
|
||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gtk4-sys"
|
name = "gtk4-sys"
|
||||||
version = "0.3.1"
|
version = "0.4.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e20a64c8f0ddcff8902ff04c130747f2fb7834a43530f75d03d6c71335733b49"
|
checksum = "c47c075e8f795c38f6e9a47b51a73eab77b325f83c0154979ed4d4245c36490d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cairo-sys-rs",
|
"cairo-sys-rs",
|
||||||
"gdk-pixbuf-sys",
|
"gdk-pixbuf-sys",
|
||||||
"gdk4-sys",
|
"gdk4-sys",
|
||||||
"gio-sys",
|
"gio-sys",
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"graphene-sys",
|
"graphene-sys",
|
||||||
"gsk4-sys",
|
"gsk4-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"pango-sys",
|
"pango-sys",
|
||||||
"system-deps 5.0.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -822,6 +816,12 @@ dependencies = [
|
||||||
"unicode-segmentation",
|
"unicode-segmentation",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "heck"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "itertools"
|
name = "itertools"
|
||||||
version = "0.9.0"
|
version = "0.9.0"
|
||||||
|
|
@ -831,15 +831,6 @@ dependencies = [
|
||||||
"either",
|
"either",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "itertools"
|
|
||||||
version = "0.10.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
|
|
||||||
dependencies = [
|
|
||||||
"either",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lazy_static"
|
name = "lazy_static"
|
||||||
version = "1.4.0"
|
version = "1.4.0"
|
||||||
|
|
@ -848,14 +839,14 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libadwaita"
|
name = "libadwaita"
|
||||||
version = "0.1.0-beta-1"
|
version = "0.1.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cef1e2d4b5490caff8a1d44648f68721ab917f765a7fa1d0226fcdac42d86552"
|
checksum = "f2ae453d28e3b91f03749f02b1531e8cfe315a1d0762b77a61797d2ab80bb87d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"gdk-pixbuf",
|
"gdk-pixbuf",
|
||||||
"gdk4",
|
"gdk4",
|
||||||
"gio",
|
"gio",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"gtk4",
|
"gtk4",
|
||||||
"libadwaita-sys",
|
"libadwaita-sys",
|
||||||
"libc",
|
"libc",
|
||||||
|
|
@ -865,17 +856,17 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libadwaita-sys"
|
name = "libadwaita-sys"
|
||||||
version = "0.1.0-beta-1"
|
version = "0.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7a165d8c96824753ec072b70a9149790efa3d5abb07e130cda7eb04ef2006d4c"
|
checksum = "f18b6ac4cadd252a89f5cba0a5a4e99836131795d6fad37b859ac79e8cb7d2c8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"gdk4-sys",
|
"gdk4-sys",
|
||||||
"gio-sys",
|
"gio-sys",
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"gtk4-sys",
|
"gtk4-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -996,7 +987,7 @@ dependencies = [
|
||||||
"gdk4",
|
"gdk4",
|
||||||
"gettext-rs",
|
"gettext-rs",
|
||||||
"gio",
|
"gio",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"gstreamer",
|
"gstreamer",
|
||||||
"gtk-macros",
|
"gtk-macros",
|
||||||
"gtk4",
|
"gtk4",
|
||||||
|
|
@ -1014,7 +1005,7 @@ version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"fragile",
|
"fragile",
|
||||||
"gio",
|
"gio",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"gstreamer",
|
"gstreamer",
|
||||||
"gstreamer-player",
|
"gstreamer-player",
|
||||||
"log",
|
"log",
|
||||||
|
|
@ -1043,7 +1034,7 @@ name = "musicus_import"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64",
|
"base64",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"gstreamer",
|
"gstreamer",
|
||||||
"gstreamer-pbutils",
|
"gstreamer-pbutils",
|
||||||
"log",
|
"log",
|
||||||
|
|
@ -1126,13 +1117,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
|
checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pango"
|
name = "option-operations"
|
||||||
version = "0.14.8"
|
version = "0.4.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
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 = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"glib 0.14.8",
|
"glib 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"pango-sys",
|
"pango-sys",
|
||||||
|
|
@ -1140,14 +1140,14 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pango-sys"
|
name = "pango-sys"
|
||||||
version = "0.14.0"
|
version = "0.15.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2367099ca5e761546ba1d501955079f097caa186bb53ce0f718dca99ac1942fe"
|
checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.14.0",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.14.0",
|
"gobject-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps 3.2.0",
|
"system-deps 6.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -1247,6 +1247,15 @@ dependencies = [
|
||||||
"unicode-xid",
|
"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]]
|
[[package]]
|
||||||
name = "quote"
|
name = "quote"
|
||||||
version = "1.0.17"
|
version = "1.0.17"
|
||||||
|
|
@ -1388,31 +1397,13 @@ version = "0.18.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
|
checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "strum"
|
|
||||||
version = "0.21.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "strum_macros"
|
name = "strum_macros"
|
||||||
version = "0.18.0"
|
version = "0.18.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
|
checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"heck",
|
"heck 0.3.3",
|
||||||
"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",
|
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn",
|
"syn",
|
||||||
|
|
@ -1435,10 +1426,10 @@ version = "1.3.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
|
checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"heck",
|
"heck 0.3.3",
|
||||||
"pkg-config",
|
"pkg-config",
|
||||||
"strum 0.18.0",
|
"strum",
|
||||||
"strum_macros 0.18.0",
|
"strum_macros",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"toml",
|
"toml",
|
||||||
"version-compare 0.0.10",
|
"version-compare 0.0.10",
|
||||||
|
|
@ -1446,34 +1437,22 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "system-deps"
|
name = "system-deps"
|
||||||
version = "3.2.0"
|
version = "6.0.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6"
|
checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"cfg-expr",
|
||||||
"cfg-expr 0.8.1",
|
"heck 0.4.0",
|
||||||
"heck",
|
|
||||||
"itertools 0.10.3",
|
|
||||||
"pkg-config",
|
"pkg-config",
|
||||||
"strum 0.21.0",
|
|
||||||
"strum_macros 0.21.1",
|
|
||||||
"thiserror",
|
|
||||||
"toml",
|
"toml",
|
||||||
"version-compare 0.0.11",
|
"version-compare 0.1.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "system-deps"
|
name = "temp-dir"
|
||||||
version = "5.0.0"
|
version = "0.1.11"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e"
|
checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
|
||||||
dependencies = [
|
|
||||||
"cfg-expr 0.9.1",
|
|
||||||
"heck",
|
|
||||||
"pkg-config",
|
|
||||||
"toml",
|
|
||||||
"version-compare 0.0.11",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "thiserror"
|
name = "thiserror"
|
||||||
|
|
@ -1571,9 +1550,9 @@ checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "version-compare"
|
name = "version-compare"
|
||||||
version = "0.0.11"
|
version = "0.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b"
|
checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "version_check"
|
name = "version_check"
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,10 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
fragile = "1.0.0"
|
fragile = "1.0.0"
|
||||||
gio = "0.14.0"
|
gio = "0.15.10"
|
||||||
glib = "0.14.0"
|
glib = "0.15.10"
|
||||||
gstreamer = "0.17.0"
|
gstreamer = "0.18.7"
|
||||||
gstreamer-player = "0.17.0"
|
gstreamer-player = "0.18.0"
|
||||||
log = { version = "0.4.14", features = ["std"] }
|
log = { version = "0.4.14", features = ["std"] }
|
||||||
musicus_database = { version = "0.1.0", path = "../database" }
|
musicus_database = { version = "0.1.0", path = "../database" }
|
||||||
musicus_import = { version = "0.1.0", path = "../import" }
|
musicus_import = { version = "0.1.0", path = "../import" }
|
||||||
|
|
@ -16,4 +16,4 @@ thiserror = "1.0.23"
|
||||||
tokio = { version = "1.4.0", features = ["sync"] }
|
tokio = { version = "1.4.0", features = ["sync"] }
|
||||||
|
|
||||||
[target.'cfg(target_os = "linux")'.dependencies]
|
[target.'cfg(target_os = "linux")'.dependencies]
|
||||||
mpris-player = "0.6.0"
|
mpris-player = "0.6.1"
|
||||||
|
|
|
||||||
|
|
@ -352,7 +352,7 @@ impl Player {
|
||||||
let uri = glib::filename_to_uri(&path, None)
|
let uri = glib::filename_to_uri(&path, None)
|
||||||
.map_err(|_| Error::Other(format!("Failed to create URI from path: {}", path)))?;
|
.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() {
|
if self.is_playing() {
|
||||||
self.player.play();
|
self.player.play();
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
base64 = "0.13.0"
|
base64 = "0.13.0"
|
||||||
glib = "0.14.0"
|
glib = "0.15.10"
|
||||||
gstreamer = "0.17.0"
|
gstreamer = "0.18.7"
|
||||||
gstreamer-pbutils = "0.17.0"
|
gstreamer-pbutils = "0.18.7"
|
||||||
log = "0.4.14"
|
log = "0.4.14"
|
||||||
once_cell = "1.5.2"
|
once_cell = "1.5.2"
|
||||||
rand = "0.7.3"
|
rand = "0.7.3"
|
||||||
|
|
|
||||||
|
|
@ -118,13 +118,13 @@ pub(super) fn new() -> Result<ImportSession> {
|
||||||
for track in &tracks_clone {
|
for track in &tracks_clone {
|
||||||
info!("Starting to rip track {}.", track.number);
|
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.
|
// The filesink needs to be reset to be able to change the file location.
|
||||||
filesink.set_state(gstreamer::State::Null)?;
|
filesink.set_state(gstreamer::State::Null)?;
|
||||||
|
|
||||||
let path = track.path.to_str().unwrap();
|
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.
|
// This will also affect the filesink as expected.
|
||||||
pipeline.set_state(gstreamer::State::Playing)?;
|
pipeline.set_state(gstreamer::State::Playing)?;
|
||||||
|
|
|
||||||
|
|
@ -5,15 +5,15 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0.33"
|
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"
|
async-trait = "0.1.42"
|
||||||
futures-channel = "0.3.5"
|
futures-channel = "0.3.5"
|
||||||
gdk = { package = "gdk4", version = "0.3.0" }
|
gdk = { package = "gdk4", version = "0.4.7" }
|
||||||
gettext-rs = { version = "0.5.0", features = ["gettext-system"] }
|
gettext-rs = { version = "0.7.0", features = ["gettext-system"] }
|
||||||
gio = "0.14.0"
|
gio = "0.15.10"
|
||||||
glib = "0.14.0"
|
glib = "0.15.10"
|
||||||
gstreamer = "0.17.0"
|
gstreamer = "0.18.7"
|
||||||
gtk = { package = "gtk4", version = "0.3.0" }
|
gtk = { package = "gtk4", version = "0.4.7" }
|
||||||
gtk-macros = "0.3.0"
|
gtk-macros = "0.3.0"
|
||||||
log = "0.4.14"
|
log = "0.4.14"
|
||||||
musicus_backend = { version = "0.1.0", path = "../backend" }
|
musicus_backend = { version = "0.1.0", path = "../backend" }
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,7 @@ use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets::{Editor, EntryRow, Section, Widget};
|
use crate::widgets::{Editor, EntryRow, Section, Widget};
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use gtk::{builders::ListBoxBuilder, glib::clone, prelude::*};
|
||||||
use gtk::prelude::*;
|
|
||||||
use musicus_backend::db::{generate_id, Ensemble};
|
use musicus_backend::db::{generate_id, Ensemble};
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
|
|
@ -24,7 +23,7 @@ impl Screen<Option<Ensemble>, Ensemble> for EnsembleEditor {
|
||||||
let editor = Editor::new();
|
let editor = Editor::new();
|
||||||
editor.set_title("Ensemble");
|
editor.set_title("Ensemble");
|
||||||
|
|
||||||
let list = gtk::ListBoxBuilder::new()
|
let list = ListBoxBuilder::new()
|
||||||
.selection_mode(gtk::SelectionMode::None)
|
.selection_mode(gtk::SelectionMode::None)
|
||||||
.css_classes(vec![String::from("boxed-list")])
|
.css_classes(vec![String::from("boxed-list")])
|
||||||
.build();
|
.build();
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,7 @@ use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets::{Editor, EntryRow, Section, Widget};
|
use crate::widgets::{Editor, EntryRow, Section, Widget};
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use gtk::{glib::clone, prelude::*, builders::ListBoxBuilder};
|
||||||
use gtk::prelude::*;
|
|
||||||
use musicus_backend::db::{generate_id, Instrument};
|
use musicus_backend::db::{generate_id, Instrument};
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
|
|
@ -24,7 +23,7 @@ impl Screen<Option<Instrument>, Instrument> for InstrumentEditor {
|
||||||
let editor = Editor::new();
|
let editor = Editor::new();
|
||||||
editor.set_title("Instrument/Role");
|
editor.set_title("Instrument/Role");
|
||||||
|
|
||||||
let list = gtk::ListBoxBuilder::new()
|
let list = ListBoxBuilder::new()
|
||||||
.selection_mode(gtk::SelectionMode::None)
|
.selection_mode(gtk::SelectionMode::None)
|
||||||
.css_classes(vec![String::from("boxed-list")])
|
.css_classes(vec![String::from("boxed-list")])
|
||||||
.build();
|
.build();
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ use crate::selectors::{EnsembleSelector, InstrumentSelector, PersonSelector};
|
||||||
use crate::widgets::{ButtonRow, Editor, Section, Widget};
|
use crate::widgets::{ButtonRow, Editor, Section, Widget};
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use gtk::builders::ButtonBuilder;
|
||||||
|
use gtk::{builders::ListBoxBuilder, glib::clone};
|
||||||
use log::error;
|
use log::error;
|
||||||
use musicus_backend::db::{Ensemble, Instrument, Performance, Person, PersonOrEnsemble};
|
use musicus_backend::db::{Ensemble, Instrument, Performance, Person, PersonOrEnsemble};
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
|
|
@ -29,7 +30,7 @@ impl Screen<Option<Performance>, Performance> for PerformanceEditor {
|
||||||
editor.set_title("Performance");
|
editor.set_title("Performance");
|
||||||
editor.set_may_save(false);
|
editor.set_may_save(false);
|
||||||
|
|
||||||
let performer_list = gtk::ListBoxBuilder::new()
|
let performer_list = ListBoxBuilder::new()
|
||||||
.selection_mode(gtk::SelectionMode::None)
|
.selection_mode(gtk::SelectionMode::None)
|
||||||
.css_classes(vec![String::from("boxed-list")])
|
.css_classes(vec![String::from("boxed-list")])
|
||||||
.build();
|
.build();
|
||||||
|
|
@ -45,12 +46,12 @@ impl Screen<Option<Performance>, Performance> for PerformanceEditor {
|
||||||
"Select either a person or an ensemble as a performer.",
|
"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)
|
.selection_mode(gtk::SelectionMode::None)
|
||||||
.css_classes(vec![String::from("boxed-list")])
|
.css_classes(vec![String::from("boxed-list")])
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
let reset_role_button = gtk::ButtonBuilder::new()
|
let reset_role_button = ButtonBuilder::new()
|
||||||
.icon_name("user-trash-symbolic")
|
.icon_name("user-trash-symbolic")
|
||||||
.valign(gtk::Align::Center)
|
.valign(gtk::Align::Center)
|
||||||
.visible(false)
|
.visible(false)
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ use crate::widgets::{Editor, EntryRow, Section, Widget};
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
use gtk::prelude::*;
|
use gtk::{builders::ListBoxBuilder, prelude::*};
|
||||||
use musicus_backend::db::{generate_id, Person};
|
use musicus_backend::db::{generate_id, Person};
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
|
|
@ -25,7 +25,7 @@ impl Screen<Option<Person>, Person> for PersonEditor {
|
||||||
let editor = Editor::new();
|
let editor = Editor::new();
|
||||||
editor.set_title("Person");
|
editor.set_title("Person");
|
||||||
|
|
||||||
let list = gtk::ListBoxBuilder::new()
|
let list = ListBoxBuilder::new()
|
||||||
.selection_mode(gtk::SelectionMode::None)
|
.selection_mode(gtk::SelectionMode::None)
|
||||||
.css_classes(vec![String::from("boxed-list")])
|
.css_classes(vec![String::from("boxed-list")])
|
||||||
.build();
|
.build();
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ use super::performance::PerformanceEditor;
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::selectors::WorkSelector;
|
use crate::selectors::WorkSelector;
|
||||||
use crate::widgets::{List, Widget};
|
use crate::widgets::{List, Widget};
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use gettextrs::gettext;
|
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| {
|
this.performance_list.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
|
||||||
let performance = &this.performances.borrow()[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.set_valign(gtk::Align::Center);
|
||||||
|
|
||||||
delete_button.connect_clicked(clone!(@weak this => move |_| {
|
delete_button.connect_clicked(clone!(@weak this => move |_| {
|
||||||
|
|
@ -110,7 +111,7 @@ impl Screen<Option<Recording>, Recording> for RecordingEditor {
|
||||||
this.performance_list.update(length);
|
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.set_valign(gtk::Align::Center);
|
||||||
|
|
||||||
edit_button.connect_clicked(clone!(@weak this => move |_| {
|
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)
|
.focusable(false)
|
||||||
.activatable_widget(&edit_button)
|
.activatable_widget(&edit_button)
|
||||||
.title(&performance.get_title())
|
.title(&performance.get_title())
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ use super::work_part::WorkPartEditor;
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::selectors::{InstrumentSelector, PersonSelector};
|
use crate::selectors::{InstrumentSelector, PersonSelector};
|
||||||
use crate::widgets::{List, Widget};
|
use crate::widgets::{List, Widget};
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
|
|
@ -111,7 +112,7 @@ impl Screen<Option<Work>, Work> for WorkEditor {
|
||||||
clone!(@weak this => @default-panic, move |index| {
|
clone!(@weak this => @default-panic, move |index| {
|
||||||
let instrument = &this.instruments.borrow()[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.set_valign(gtk::Align::Center);
|
||||||
|
|
||||||
delete_button.connect_clicked(clone!(@strong this => move |_| {
|
delete_button.connect_clicked(clone!(@strong this => move |_| {
|
||||||
|
|
@ -124,7 +125,7 @@ impl Screen<Option<Work>, Work> for WorkEditor {
|
||||||
this.instrument_list.update(length);
|
this.instrument_list.update(length);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.title(&instrument.name)
|
.title(&instrument.name)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|
@ -152,7 +153,7 @@ impl Screen<Option<Work>, Work> for WorkEditor {
|
||||||
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
|
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
|
||||||
let part = &this.parts.borrow()[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.set_valign(gtk::Align::Center);
|
||||||
|
|
||||||
delete_button.connect_clicked(clone!(@weak this => move |_| {
|
delete_button.connect_clicked(clone!(@weak this => move |_| {
|
||||||
|
|
@ -165,7 +166,7 @@ impl Screen<Option<Work>, Work> for WorkEditor {
|
||||||
this.part_list.update(length);
|
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.set_valign(gtk::Align::Center);
|
||||||
|
|
||||||
edit_button.connect_clicked(clone!(@weak this => move |_| {
|
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)
|
.focusable(false)
|
||||||
.title(&part.title)
|
.title(&part.title)
|
||||||
.activatable_widget(&edit_button)
|
.activatable_widget(&edit_button)
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ use super::medium_preview::MediumPreview;
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::selectors::MediumSelector;
|
use crate::selectors::MediumSelector;
|
||||||
use crate::widgets::Widget;
|
use crate::widgets::Widget;
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
use gtk_macros::get_widget;
|
use gtk_macros::get_widget;
|
||||||
|
|
@ -64,7 +65,7 @@ impl ImportScreen {
|
||||||
let this = self;
|
let this = self;
|
||||||
|
|
||||||
for medium in mediums {
|
for medium in mediums {
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&medium.name)
|
.title(&medium.name)
|
||||||
.subtitle(&format!("{} Tracks", medium.tracks.len()))
|
.subtitle(&format!("{} Tracks", medium.tracks.len()))
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
use super::track_set_editor::{TrackData, TrackSetData, TrackSetEditor};
|
use super::track_set_editor::{TrackData, TrackSetData, TrackSetEditor};
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets::{List, Widget};
|
use crate::widgets::{List, Widget};
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use glib::clone;
|
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 title = track_set.recording.work.get_title();
|
||||||
let subtitle = track_set.recording.get_performers();
|
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();
|
let edit_button = gtk::Button::new();
|
||||||
edit_button.set_has_frame(false);
|
edit_button.set_has_frame(false);
|
||||||
edit_button.set_valign(gtk::Align::Center);
|
edit_button.set_valign(gtk::Align::Center);
|
||||||
edit_button.set_child(Some(&edit_image));
|
edit_button.set_child(Some(&edit_image));
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.focusable(false)
|
.focusable(false)
|
||||||
.title(&title)
|
.title(&title)
|
||||||
.subtitle(&subtitle)
|
.subtitle(&subtitle)
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
use super::medium_editor::MediumEditor;
|
use super::medium_editor::MediumEditor;
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets::Widget;
|
use crate::widgets::Widget;
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use anyhow::{anyhow, Result};
|
use anyhow::{anyhow, Result};
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
use gtk::builders::{ListBoxBuilder, FrameBuilder};
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use gtk_macros::get_widget;
|
use gtk_macros::get_widget;
|
||||||
use musicus_backend::db::Medium;
|
use musicus_backend::db::Medium;
|
||||||
|
|
@ -139,13 +141,13 @@ impl MediumPreview {
|
||||||
if track.recording.id != last_recording_id {
|
if track.recording.id != last_recording_id {
|
||||||
last_recording_id = &track.recording.id;
|
last_recording_id = &track.recording.id;
|
||||||
|
|
||||||
let list = gtk::ListBoxBuilder::new()
|
let list = ListBoxBuilder::new()
|
||||||
.selection_mode(gtk::SelectionMode::None)
|
.selection_mode(gtk::SelectionMode::None)
|
||||||
.margin_bottom(12)
|
.margin_bottom(12)
|
||||||
.css_classes(vec![String::from("boxed-list")])
|
.css_classes(vec![String::from("boxed-list")])
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
let header = adw::ActionRowBuilder::new()
|
let header = ActionRowBuilder::new()
|
||||||
.activatable(false)
|
.activatable(false)
|
||||||
.title(&track.recording.work.get_title())
|
.title(&track.recording.work.get_title())
|
||||||
.subtitle(&track.recording.get_performers())
|
.subtitle(&track.recording.get_performers())
|
||||||
|
|
@ -172,7 +174,7 @@ impl MediumPreview {
|
||||||
parts.join(", ")
|
parts.join(", ")
|
||||||
};
|
};
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(false)
|
.activatable(false)
|
||||||
.title(&title)
|
.title(&title)
|
||||||
.subtitle(&import_tracks[track.source_index].name)
|
.subtitle(&import_tracks[track.source_index].name)
|
||||||
|
|
@ -184,7 +186,7 @@ impl MediumPreview {
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(list) = &last_list {
|
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));
|
frame.set_child(Some(list));
|
||||||
self.medium_box.append(&frame);
|
self.medium_box.append(&frame);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets::Widget;
|
use crate::widgets::Widget;
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
use gtk::builders::ListBoxBuilder;
|
||||||
use gtk_macros::get_widget;
|
use gtk_macros::get_widget;
|
||||||
use musicus_backend::db::Recording;
|
use musicus_backend::db::Recording;
|
||||||
use std::cell::RefCell;
|
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, gtk::Button, select_button);
|
||||||
get_widget!(builder, adw::Clamp, clamp);
|
get_widget!(builder, adw::Clamp, clamp);
|
||||||
|
|
||||||
let parts_list = gtk::ListBoxBuilder::new()
|
let parts_list = ListBoxBuilder::new()
|
||||||
.selection_mode(gtk::SelectionMode::None)
|
.selection_mode(gtk::SelectionMode::None)
|
||||||
.css_classes(vec![String::from("boxed-list")])
|
.css_classes(vec![String::from("boxed-list")])
|
||||||
.build();
|
.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)
|
.focusable(false)
|
||||||
.title(&part.title)
|
.title(&part.title)
|
||||||
.activatable_widget(&check)
|
.activatable_widget(&check)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets::Widget;
|
use crate::widgets::Widget;
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
use gtk::builders::ListBoxBuilder;
|
||||||
use gtk_macros::get_widget;
|
use gtk_macros::get_widget;
|
||||||
use musicus_backend::import::ImportSession;
|
use musicus_backend::import::ImportSession;
|
||||||
use std::cell::RefCell;
|
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, gtk::Button, select_button);
|
||||||
get_widget!(builder, adw::Clamp, clamp);
|
get_widget!(builder, adw::Clamp, clamp);
|
||||||
|
|
||||||
let track_list = gtk::ListBoxBuilder::new()
|
let track_list = ListBoxBuilder::new()
|
||||||
.selection_mode(gtk::SelectionMode::None)
|
.selection_mode(gtk::SelectionMode::None)
|
||||||
.css_classes(vec![String::from("boxed-list")])
|
.css_classes(vec![String::from("boxed-list")])
|
||||||
.build();
|
.build();
|
||||||
|
|
@ -76,7 +78,7 @@ impl Screen<Arc<ImportSession>, Vec<usize>> for TrackSelector {
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.focusable(false)
|
.focusable(false)
|
||||||
.title(&track.name)
|
.title(&track.name)
|
||||||
.activatable_widget(&check)
|
.activatable_widget(&check)
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ use super::track_selector::TrackSelector;
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::selectors::RecordingSelector;
|
use crate::selectors::RecordingSelector;
|
||||||
use crate::widgets::{List, Widget};
|
use crate::widgets::{List, Widget};
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
|
@ -138,13 +139,13 @@ impl Screen<Arc<ImportSession>, TrackSetData> for TrackSetEditor {
|
||||||
let tracks = this.session.tracks();
|
let tracks = this.session.tracks();
|
||||||
let track_name = &tracks[track.track_source].name;
|
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();
|
let edit_button = gtk::Button::new();
|
||||||
edit_button.set_has_frame(false);
|
edit_button.set_has_frame(false);
|
||||||
edit_button.set_valign(gtk::Align::Center);
|
edit_button.set_valign(gtk::Align::Center);
|
||||||
edit_button.set_child(Some(&edit_image));
|
edit_button.set_child(Some(&edit_image));
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.focusable(false)
|
.focusable(false)
|
||||||
.title(&title)
|
.title(&title)
|
||||||
.subtitle(track_name)
|
.subtitle(track_name)
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ mod resources;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
gettextrs::setlocale(gettextrs::LocaleCategory::LcAll, "");
|
gettextrs::setlocale(gettextrs::LocaleCategory::LcAll, "");
|
||||||
gettextrs::bindtextdomain("musicus", config::LOCALEDIR);
|
gettextrs::bindtextdomain("musicus", config::LOCALEDIR).unwrap();
|
||||||
gettextrs::textdomain("musicus");
|
gettextrs::textdomain("musicus").unwrap();
|
||||||
|
|
||||||
gstreamer::init().expect("Failed to initialize GStreamer!");
|
gstreamer::init().expect("Failed to initialize GStreamer!");
|
||||||
gtk::init().expect("Failed to initialize GTK!");
|
gtk::init().expect("Failed to initialize GTK!");
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ use crate::widgets::Widget;
|
||||||
use futures_channel::oneshot;
|
use futures_channel::oneshot;
|
||||||
use futures_channel::oneshot::{Receiver, Sender};
|
use futures_channel::oneshot::{Receiver, Sender};
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
use gtk::builders::StackBuilder;
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use musicus_backend::Backend;
|
use musicus_backend::Backend;
|
||||||
use std::cell::{Cell, RefCell};
|
use std::cell::{Cell, RefCell};
|
||||||
|
|
@ -96,7 +97,7 @@ impl Navigator {
|
||||||
W: IsA<gtk::Window>,
|
W: IsA<gtk::Window>,
|
||||||
E: IsA<gtk::Widget>,
|
E: IsA<gtk::Widget>,
|
||||||
{
|
{
|
||||||
let widget = gtk::StackBuilder::new()
|
let widget = StackBuilder::new()
|
||||||
.hhomogeneous(false)
|
.hhomogeneous(false)
|
||||||
.vhomogeneous(false)
|
.vhomogeneous(false)
|
||||||
.interpolate_size(true)
|
.interpolate_size(true)
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ use crate::editors::EnsembleEditor;
|
||||||
use crate::navigator::{NavigationHandle, NavigatorWindow, Screen};
|
use crate::navigator::{NavigationHandle, NavigatorWindow, Screen};
|
||||||
use crate::widgets;
|
use crate::widgets;
|
||||||
use crate::widgets::{List, Section, Widget};
|
use crate::widgets::{List, Section, Widget};
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
|
@ -74,7 +75,7 @@ impl Screen<Ensemble, ()> for EnsembleScreen {
|
||||||
clone!(@weak this => @default-panic, move |index| {
|
clone!(@weak this => @default-panic, move |index| {
|
||||||
let recording = &this.recordings.borrow()[index];
|
let recording = &this.recordings.borrow()[index];
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&recording.work.get_title())
|
.title(&recording.work.get_title())
|
||||||
.subtitle(&recording.get_performers())
|
.subtitle(&recording.get_performers())
|
||||||
|
|
@ -104,7 +105,7 @@ impl Screen<Ensemble, ()> for EnsembleScreen {
|
||||||
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
|
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
|
||||||
let medium = &this.mediums.borrow()[index];
|
let medium = &this.mediums.borrow()[index];
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&medium.name)
|
.title(&medium.name)
|
||||||
.build();
|
.build();
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,11 @@ use crate::import::SourceSelector;
|
||||||
use crate::navigator::{NavigationHandle, Navigator, NavigatorWindow, Screen};
|
use crate::navigator::{NavigationHandle, Navigator, NavigatorWindow, Screen};
|
||||||
use crate::preferences::Preferences;
|
use crate::preferences::Preferences;
|
||||||
use crate::widgets::{List, PlayerBar, Widget};
|
use crate::widgets::{List, PlayerBar, Widget};
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
use gtk::builders::AboutDialogBuilder;
|
||||||
use gtk_macros::get_widget;
|
use gtk_macros::get_widget;
|
||||||
use musicus_backend::db::PersonOrEnsemble;
|
use musicus_backend::db::PersonOrEnsemble;
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
|
|
@ -95,7 +97,7 @@ impl Screen<(), ()> for MainScreen {
|
||||||
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
|
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
|
||||||
let poe = &this.poes.borrow()[index];
|
let poe = &this.poes.borrow()[index];
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&poe.get_title())
|
.title(&poe.get_title())
|
||||||
.build();
|
.build();
|
||||||
|
|
@ -193,7 +195,7 @@ impl Widget for MainScreen {
|
||||||
impl MainScreen {
|
impl MainScreen {
|
||||||
/// Show a dialog with information on this application.
|
/// Show a dialog with information on this application.
|
||||||
fn show_about_dialog(&self) {
|
fn show_about_dialog(&self) {
|
||||||
let dialog = gtk::AboutDialogBuilder::new()
|
let dialog = AboutDialogBuilder::new()
|
||||||
.transient_for(&self.handle.window)
|
.transient_for(&self.handle.window)
|
||||||
.modal(true)
|
.modal(true)
|
||||||
.logo_icon_name("de.johrpan.musicus")
|
.logo_icon_name("de.johrpan.musicus")
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets;
|
use crate::widgets;
|
||||||
use crate::widgets::{List, Section, Widget};
|
use crate::widgets::{List, Section, Widget};
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
|
@ -74,7 +75,7 @@ impl Screen<Medium, ()> for MediumScreen {
|
||||||
parts.join(", ")
|
parts.join(", ")
|
||||||
};
|
};
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.margin_start(12)
|
.margin_start(12)
|
||||||
.selectable(false)
|
.selectable(false)
|
||||||
.title(&title)
|
.title(&title)
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ use crate::editors::PersonEditor;
|
||||||
use crate::navigator::{NavigationHandle, NavigatorWindow, Screen};
|
use crate::navigator::{NavigationHandle, NavigatorWindow, Screen};
|
||||||
use crate::widgets;
|
use crate::widgets;
|
||||||
use crate::widgets::{List, Section, Widget};
|
use crate::widgets::{List, Section, Widget};
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
|
@ -80,7 +81,7 @@ impl Screen<Person, ()> for PersonScreen {
|
||||||
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
|
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
|
||||||
let work = &this.works.borrow()[index];
|
let work = &this.works.borrow()[index];
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&work.title)
|
.title(&work.title)
|
||||||
.build();
|
.build();
|
||||||
|
|
@ -108,7 +109,7 @@ impl Screen<Person, ()> for PersonScreen {
|
||||||
clone!(@weak this => @default-panic, move |index| {
|
clone!(@weak this => @default-panic, move |index| {
|
||||||
let recording = &this.recordings.borrow()[index];
|
let recording = &this.recordings.borrow()[index];
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&recording.work.get_title())
|
.title(&recording.work.get_title())
|
||||||
.subtitle(&recording.get_performers())
|
.subtitle(&recording.get_performers())
|
||||||
|
|
@ -138,7 +139,7 @@ impl Screen<Person, ()> for PersonScreen {
|
||||||
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
|
.set_make_widget_cb(clone!(@weak this => @default-panic, move |index| {
|
||||||
let medium = &this.mediums.borrow()[index];
|
let medium = &this.mediums.borrow()[index];
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&medium.name)
|
.title(&medium.name)
|
||||||
.build();
|
.build();
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ use crate::editors::RecordingEditor;
|
||||||
use crate::navigator::{NavigationHandle, NavigatorWindow, Screen};
|
use crate::navigator::{NavigationHandle, NavigatorWindow, Screen};
|
||||||
use crate::widgets;
|
use crate::widgets;
|
||||||
use crate::widgets::{List, Section, Widget};
|
use crate::widgets::{List, Section, Widget};
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
|
@ -84,7 +85,7 @@ impl Screen<Recording, ()> for RecordingScreen {
|
||||||
title_parts.join(", ")
|
title_parts.join(", ")
|
||||||
};
|
};
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.title(&title)
|
.title(&title)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets::Widget;
|
use crate::widgets::Widget;
|
||||||
|
use adw::builders::{HeaderBarBuilder, StatusPageBuilder};
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
use gtk::builders::{BoxBuilder, ButtonBuilder};
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
|
|
@ -15,20 +17,20 @@ pub struct WelcomeScreen {
|
||||||
|
|
||||||
impl Screen<(), ()> for WelcomeScreen {
|
impl Screen<(), ()> for WelcomeScreen {
|
||||||
fn new(_: (), handle: NavigationHandle<()>) -> Rc<Self> {
|
fn new(_: (), handle: NavigationHandle<()>) -> Rc<Self> {
|
||||||
let widget = gtk::BoxBuilder::new()
|
let widget = BoxBuilder::new()
|
||||||
.orientation(gtk::Orientation::Vertical)
|
.orientation(gtk::Orientation::Vertical)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
let header = adw::HeaderBarBuilder::new()
|
let header = HeaderBarBuilder::new()
|
||||||
.title_widget(&adw::WindowTitle::new("Musicus", ""))
|
.title_widget(&adw::WindowTitle::new("Musicus", ""))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
let button = gtk::ButtonBuilder::new()
|
let button = ButtonBuilder::new()
|
||||||
.halign(gtk::Align::Center)
|
.halign(gtk::Align::Center)
|
||||||
.label(&gettext("Select folder"))
|
.label(&gettext("Select folder"))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
let welcome = adw::StatusPageBuilder::new()
|
let welcome = StatusPageBuilder::new()
|
||||||
.icon_name("folder-music-symbolic")
|
.icon_name("folder-music-symbolic")
|
||||||
.title(&gettext("Welcome to Musicus!"))
|
.title(&gettext("Welcome to Musicus!"))
|
||||||
.description(&gettext(
|
.description(&gettext(
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ use crate::editors::WorkEditor;
|
||||||
use crate::navigator::{NavigationHandle, NavigatorWindow, Screen};
|
use crate::navigator::{NavigationHandle, NavigatorWindow, Screen};
|
||||||
use crate::widgets;
|
use crate::widgets;
|
||||||
use crate::widgets::{List, Section, Widget};
|
use crate::widgets::{List, Section, Widget};
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
|
@ -69,7 +70,7 @@ impl Screen<Work, ()> for WorkScreen {
|
||||||
clone!(@weak this => @default-panic, move |index| {
|
clone!(@weak this => @default-panic, move |index| {
|
||||||
let recording = &this.recordings.borrow()[index];
|
let recording = &this.recordings.borrow()[index];
|
||||||
|
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&recording.work.get_title())
|
.title(&recording.work.get_title())
|
||||||
.subtitle(&recording.get_performers())
|
.subtitle(&recording.get_performers())
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ use super::selector::Selector;
|
||||||
use crate::editors::EnsembleEditor;
|
use crate::editors::EnsembleEditor;
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets::Widget;
|
use crate::widgets::Widget;
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
|
@ -41,7 +42,7 @@ impl Screen<(), Ensemble> for EnsembleSelector {
|
||||||
|
|
||||||
this.selector
|
this.selector
|
||||||
.set_make_widget(clone!(@weak this => @default-panic, move |ensemble| {
|
.set_make_widget(clone!(@weak this => @default-panic, move |ensemble| {
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&ensemble.name)
|
.title(&ensemble.name)
|
||||||
.build();
|
.build();
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ use super::selector::Selector;
|
||||||
use crate::editors::InstrumentEditor;
|
use crate::editors::InstrumentEditor;
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets::Widget;
|
use crate::widgets::Widget;
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
|
@ -41,7 +42,7 @@ impl Screen<(), Instrument> for InstrumentSelector {
|
||||||
|
|
||||||
this.selector
|
this.selector
|
||||||
.set_make_widget(clone!(@weak this => @default-panic, move |instrument| {
|
.set_make_widget(clone!(@weak this => @default-panic, move |instrument| {
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&instrument.name)
|
.title(&instrument.name)
|
||||||
.build();
|
.build();
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
use super::selector::Selector;
|
use super::selector::Selector;
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets::Widget;
|
use crate::widgets::Widget;
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
|
@ -30,7 +31,7 @@ impl Screen<(), Medium> for MediumSelector {
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this.selector.set_make_widget(clone!(@weak this => @default-panic, move |poe| {
|
this.selector.set_make_widget(clone!(@weak this => @default-panic, move |poe| {
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&poe.get_title())
|
.title(&poe.get_title())
|
||||||
.build();
|
.build();
|
||||||
|
|
@ -103,7 +104,7 @@ impl Screen<PersonOrEnsemble, Medium> for MediumSelectorMediumScreen {
|
||||||
|
|
||||||
this.selector
|
this.selector
|
||||||
.set_make_widget(clone!(@weak this => @default-panic, move |medium| {
|
.set_make_widget(clone!(@weak this => @default-panic, move |medium| {
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&medium.name)
|
.title(&medium.name)
|
||||||
.build();
|
.build();
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ use super::selector::Selector;
|
||||||
use crate::editors::PersonEditor;
|
use crate::editors::PersonEditor;
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets::Widget;
|
use crate::widgets::Widget;
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
|
@ -41,7 +42,7 @@ impl Screen<(), Person> for PersonSelector {
|
||||||
|
|
||||||
this.selector
|
this.selector
|
||||||
.set_make_widget(clone!(@weak this => @default-panic, move |person| {
|
.set_make_widget(clone!(@weak this => @default-panic, move |person| {
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&person.name_lf())
|
.title(&person.name_lf())
|
||||||
.build();
|
.build();
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ use super::selector::Selector;
|
||||||
use crate::editors::{PersonEditor, RecordingEditor, WorkEditor};
|
use crate::editors::{PersonEditor, RecordingEditor, WorkEditor};
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets::Widget;
|
use crate::widgets::Widget;
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
|
@ -52,7 +53,7 @@ impl Screen<(), Recording> for RecordingSelector {
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this.selector.set_make_widget(clone!(@weak this => @default-panic, move |person| {
|
this.selector.set_make_widget(clone!(@weak this => @default-panic, move |person| {
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&person.name_lf())
|
.title(&person.name_lf())
|
||||||
.build();
|
.build();
|
||||||
|
|
@ -127,7 +128,7 @@ impl Screen<Person, Work> for RecordingSelectorWorkScreen {
|
||||||
|
|
||||||
this.selector
|
this.selector
|
||||||
.set_make_widget(clone!(@weak this => @default-panic, move |work| {
|
.set_make_widget(clone!(@weak this => @default-panic, move |work| {
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&work.title)
|
.title(&work.title)
|
||||||
.build();
|
.build();
|
||||||
|
|
@ -190,7 +191,7 @@ impl Screen<Work, Recording> for RecordingSelectorRecordingScreen {
|
||||||
|
|
||||||
this.selector
|
this.selector
|
||||||
.set_make_widget(clone!(@weak this => @default-panic, move |recording| {
|
.set_make_widget(clone!(@weak this => @default-panic, move |recording| {
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&recording.get_performers())
|
.title(&recording.get_performers())
|
||||||
.build();
|
.build();
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ use super::selector::Selector;
|
||||||
use crate::editors::{PersonEditor, WorkEditor};
|
use crate::editors::{PersonEditor, WorkEditor};
|
||||||
use crate::navigator::{NavigationHandle, Screen};
|
use crate::navigator::{NavigationHandle, Screen};
|
||||||
use crate::widgets::Widget;
|
use crate::widgets::Widget;
|
||||||
|
use adw::builders::ActionRowBuilder;
|
||||||
use adw::prelude::*;
|
use adw::prelude::*;
|
||||||
use gettextrs::gettext;
|
use gettextrs::gettext;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
|
@ -46,7 +47,7 @@ impl Screen<(), Work> for WorkSelector {
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this.selector.set_make_widget(clone!(@weak this => @default-panic, move |person| {
|
this.selector.set_make_widget(clone!(@weak this => @default-panic, move |person| {
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&person.name_lf())
|
.title(&person.name_lf())
|
||||||
.build();
|
.build();
|
||||||
|
|
@ -117,7 +118,7 @@ impl Screen<Person, Work> for WorkSelectorWorkScreen {
|
||||||
|
|
||||||
this.selector
|
this.selector
|
||||||
.set_make_widget(clone!(@weak this => @default-panic, move |work| {
|
.set_make_widget(clone!(@weak this => @default-panic, move |work| {
|
||||||
let row = adw::ActionRowBuilder::new()
|
let row = ActionRowBuilder::new()
|
||||||
.activatable(true)
|
.activatable(true)
|
||||||
.title(&work.title)
|
.title(&work.title)
|
||||||
.build();
|
.build();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
use super::Widget;
|
use super::Widget;
|
||||||
use adw::prelude::*;
|
use adw::{prelude::*, builders::ActionRowBuilder};
|
||||||
|
use gtk::builders::ButtonBuilder;
|
||||||
|
|
||||||
/// A list box row with a single button.
|
/// A list box row with a single button.
|
||||||
pub struct ButtonRow {
|
pub struct ButtonRow {
|
||||||
|
|
@ -13,12 +14,12 @@ pub struct ButtonRow {
|
||||||
impl ButtonRow {
|
impl ButtonRow {
|
||||||
/// Create a new button row.
|
/// Create a new button row.
|
||||||
pub fn new(title: &str, label: &str) -> Self {
|
pub fn new(title: &str, label: &str) -> Self {
|
||||||
let button = gtk::ButtonBuilder::new()
|
let button = ButtonBuilder::new()
|
||||||
.valign(gtk::Align::Center)
|
.valign(gtk::Align::Center)
|
||||||
.label(label)
|
.label(label)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
let widget = adw::ActionRowBuilder::new()
|
let widget = ActionRowBuilder::new()
|
||||||
.focusable(false)
|
.focusable(false)
|
||||||
.activatable_widget(&button)
|
.activatable_widget(&button)
|
||||||
.title(title)
|
.title(title)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
use adw::prelude::*;
|
use adw::{prelude::*, builders::ActionRowBuilder};
|
||||||
|
use gtk::builders::EntryBuilder;
|
||||||
|
|
||||||
/// A list box row with an entry.
|
/// A list box row with an entry.
|
||||||
pub struct EntryRow {
|
pub struct EntryRow {
|
||||||
|
|
@ -12,12 +13,12 @@ pub struct EntryRow {
|
||||||
impl EntryRow {
|
impl EntryRow {
|
||||||
/// Create a new entry row.
|
/// Create a new entry row.
|
||||||
pub fn new(title: &str) -> Self {
|
pub fn new(title: &str) -> Self {
|
||||||
let entry = gtk::EntryBuilder::new()
|
let entry = EntryBuilder::new()
|
||||||
.hexpand(true)
|
.hexpand(true)
|
||||||
.valign(gtk::Align::Center)
|
.valign(gtk::Align::Center)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
let widget = adw::ActionRowBuilder::new()
|
let widget = ActionRowBuilder::new()
|
||||||
.focusable(false)
|
.focusable(false)
|
||||||
.activatable_widget(&entry)
|
.activatable_widget(&entry)
|
||||||
.title(title)
|
.title(title)
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,8 @@ glib::wrapper! {
|
||||||
impl IndexedListModel {
|
impl IndexedListModel {
|
||||||
/// Set the length of the list model.
|
/// Set the length of the list model.
|
||||||
pub fn set_length(&self, length: u32) {
|
pub fn set_length(&self, length: u32) {
|
||||||
let old_length = self.property("length").unwrap().get::<u32>().unwrap();
|
let old_length = self.property("length");
|
||||||
self.set_property("length", &length).unwrap();
|
self.set_property("length", &length);
|
||||||
self.items_changed(0, old_length, length);
|
self.items_changed(0, old_length, length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -43,7 +43,7 @@ mod indexed_list_model_imp {
|
||||||
impl ObjectImpl for IndexedListModel {
|
impl ObjectImpl for IndexedListModel {
|
||||||
fn properties() -> &'static [glib::ParamSpec] {
|
fn properties() -> &'static [glib::ParamSpec] {
|
||||||
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
|
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
|
||||||
vec![glib::ParamSpec::new_uint(
|
vec![glib::ParamSpecUInt::new(
|
||||||
"length",
|
"length",
|
||||||
"Length",
|
"Length",
|
||||||
"Length",
|
"Length",
|
||||||
|
|
@ -109,7 +109,7 @@ impl ItemIndex {
|
||||||
|
|
||||||
/// Get the value of the item index..
|
/// Get the value of the item index..
|
||||||
pub fn get(&self) -> u32 {
|
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 {
|
impl ObjectImpl for ItemIndex {
|
||||||
fn properties() -> &'static [glib::ParamSpec] {
|
fn properties() -> &'static [glib::ParamSpec] {
|
||||||
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
|
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
|
||||||
vec![glib::ParamSpec::new_uint(
|
vec![glib::ParamSpecUInt::new(
|
||||||
"value",
|
"value",
|
||||||
"Value",
|
"Value",
|
||||||
"Value",
|
"Value",
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
use super::indexed_list_model::{IndexedListModel, ItemIndex};
|
use super::indexed_list_model::{IndexedListModel, ItemIndex};
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
|
use gtk::builders::ListBoxBuilder;
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use std::cell::{Cell, RefCell};
|
use std::cell::{Cell, RefCell};
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
@ -27,7 +28,7 @@ impl List {
|
||||||
// let factory = gtk::SignalListItemFactory::new();
|
// let factory = gtk::SignalListItemFactory::new();
|
||||||
// let widget = gtk::ListView::new(Some(&selection), Some(&factory));
|
// let widget = gtk::ListView::new(Some(&selection), Some(&factory));
|
||||||
|
|
||||||
let widget = gtk::ListBoxBuilder::new()
|
let widget = ListBoxBuilder::new()
|
||||||
.selection_mode(gtk::SelectionMode::None)
|
.selection_mode(gtk::SelectionMode::None)
|
||||||
.css_classes(vec![String::from("boxed-list")])
|
.css_classes(vec![String::from("boxed-list")])
|
||||||
.build();
|
.build();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
use super::Widget;
|
use super::Widget;
|
||||||
use gtk::prelude::*;
|
use gtk::{prelude::*, builders::ButtonBuilder};
|
||||||
use gtk_macros::get_widget;
|
use gtk_macros::get_widget;
|
||||||
|
|
||||||
/// A widget displaying a title, a framed child widget and, if needed, some
|
/// 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
|
/// situations where the widget is visible. The new button will be packed
|
||||||
/// to the end of the title box.
|
/// to the end of the title box.
|
||||||
pub fn add_action<F: Fn() + 'static>(&self, icon_name: &str, cb: F) {
|
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)
|
.has_frame(false)
|
||||||
.valign(gtk::Align::Center)
|
.valign(gtk::Align::Center)
|
||||||
.margin_top(12)
|
.margin_top(12)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
use crate::navigator::Navigator;
|
use crate::navigator::Navigator;
|
||||||
use crate::screens::{MainScreen, WelcomeScreen};
|
use crate::screens::{MainScreen, WelcomeScreen};
|
||||||
|
use adw::builders::HeaderBarBuilder;
|
||||||
|
use adw::prelude::*;
|
||||||
use glib::clone;
|
use glib::clone;
|
||||||
use gtk::prelude::*;
|
use gtk::builders::{BoxBuilder, SpinnerBuilder};
|
||||||
use musicus_backend::{Backend, BackendState};
|
use musicus_backend::{Backend, BackendState};
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
|
|
@ -21,15 +23,15 @@ impl Window {
|
||||||
window.set_title(Some("Musicus"));
|
window.set_title(Some("Musicus"));
|
||||||
window.set_default_size(1000, 707);
|
window.set_default_size(1000, 707);
|
||||||
|
|
||||||
let loading_screen = gtk::BoxBuilder::new()
|
let loading_screen = BoxBuilder::new()
|
||||||
.orientation(gtk::Orientation::Vertical)
|
.orientation(gtk::Orientation::Vertical)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
let header = adw::HeaderBarBuilder::new()
|
let header = HeaderBarBuilder::new()
|
||||||
.title_widget(&adw::WindowTitle::new("Musicus", ""))
|
.title_widget(&adw::WindowTitle::new("Musicus", ""))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
let spinner = gtk::SpinnerBuilder::new()
|
let spinner = SpinnerBuilder::new()
|
||||||
.hexpand(true)
|
.hexpand(true)
|
||||||
.vexpand(true)
|
.vexpand(true)
|
||||||
.halign(gtk::Align::Center)
|
.halign(gtk::Align::Center)
|
||||||
|
|
@ -43,7 +45,7 @@ impl Window {
|
||||||
loading_screen.append(&spinner);
|
loading_screen.append(&spinner);
|
||||||
|
|
||||||
let navigator = Navigator::new(Rc::clone(&backend), &window, &loading_screen);
|
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 {
|
let this = Rc::new(Self {
|
||||||
backend,
|
backend,
|
||||||
|
|
@ -52,13 +54,14 @@ impl Window {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Listen for backend state changes.
|
// Listen for backend state changes.
|
||||||
this.backend.set_state_cb(clone!(@weak this => move |state| {
|
this.backend
|
||||||
match state {
|
.set_state_cb(clone!(@weak this => move |state| {
|
||||||
BackendState::Loading => this.navigator.reset(),
|
match state {
|
||||||
BackendState::NoMusicLibrary => this.show_welcome_screen(),
|
BackendState::Loading => this.navigator.reset(),
|
||||||
BackendState::Ready => this.show_main_screen(),
|
BackendState::NoMusicLibrary => this.show_welcome_screen(),
|
||||||
}
|
BackendState::Ready => this.show_main_screen(),
|
||||||
}));
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
// Initialize the backend.
|
// Initialize the backend.
|
||||||
Rc::clone(&this.backend).init().unwrap();
|
Rc::clone(&this.backend).init().unwrap();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue