cargo: update gst/gtk/gst-plugin-gtk4

This commit is contained in:
Stéphane Cerveau 2022-11-29 08:42:12 +00:00
parent 6b657891c6
commit 726a6f4d41
7 changed files with 184 additions and 159 deletions

173
Cargo.lock generated
View file

@ -32,6 +32,12 @@ version = "1.0.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1"
[[package]]
name = "atomic_refcell"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73b5e5f48b927f04e952dedc932f31995a65a0bf65ec971c74436e51bf6e970d"
[[package]]
name = "autocfg"
version = "1.0.1"
@ -89,22 +95,23 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "cairo-rs"
version = "0.15.1"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b869e97a87170f96762f9f178eae8c461147e722ba21dd8814105bf5716bf14a"
checksum = "247e1183fa769ac22121f92276dae52f89acaf297f24b1320019f439b6e3b46f"
dependencies = [
"bitflags 1.3.2",
"cairo-sys-rs",
"glib",
"libc",
"once_cell",
"thiserror",
]
[[package]]
name = "cairo-sys-rs"
version = "0.15.1"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8"
checksum = "7c48f4af05fabdcfa9658178e1326efa061853f040ce7d72e33af6885196f421"
dependencies = [
"glib-sys",
"libc",
@ -194,9 +201,9 @@ dependencies = [
[[package]]
name = "fragile"
version = "1.1.0"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8da1b8f89c5b5a5b7e59405cfcf0bb9588e5ed19f0b57a4cd542bbba3f164a6d"
checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
[[package]]
name = "futures-channel"
@ -230,6 +237,19 @@ version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377"
[[package]]
name = "futures-macro"
version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb"
dependencies = [
"autocfg",
"proc-macro-hack",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "futures-task"
version = "0.3.17"
@ -244,17 +264,20 @@ checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481"
dependencies = [
"autocfg",
"futures-core",
"futures-macro",
"futures-task",
"pin-project-lite",
"pin-utils",
"proc-macro-hack",
"proc-macro-nested",
"slab",
]
[[package]]
name = "gdk-pixbuf"
version = "0.15.1"
version = "0.16.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "172dfe1d9dfb62936bf7ad3ede2913a1b21b1e3db56990e46e00789201de9070"
checksum = "d3094f2b8578136d1929cade4e0fff82f573521b579e96cfc24af2458431f176"
dependencies = [
"bitflags 1.3.2",
"gdk-pixbuf-sys",
@ -265,9 +288,9 @@ dependencies = [
[[package]]
name = "gdk-pixbuf-sys"
version = "0.15.1"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "413424d9818621fa3cfc8a3a915cdb89a7c3c507d56761b4ec83a9a98e587171"
checksum = "3092cf797a5f1210479ea38070d9ae8a5b8e9f8f1be9f32f4643c529c7d70016"
dependencies = [
"gio-sys",
"glib-sys",
@ -278,9 +301,9 @@ dependencies = [
[[package]]
name = "gdk4"
version = "0.4.8"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fabb7cf843c26b085a5d68abb95d0c0bf27a9ae2eeff9c4adb503a1eb580876"
checksum = "dc7fc4b05be1159056c57a08102ea494892f75ff8517f5518b0401e466f77c69"
dependencies = [
"bitflags 1.3.2",
"cairo-rs",
@ -294,9 +317,9 @@ dependencies = [
[[package]]
name = "gdk4-sys"
version = "0.4.8"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efe7dcb44f5c00aeabff3f69abfc5673de46559070f89bd3fbb7b66485d9cef2"
checksum = "c057b794185a52862037526fb95aafabce9427fb98a7e9f5fe39a6f832c92822"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
@ -337,26 +360,29 @@ checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4"
[[package]]
name = "gio"
version = "0.15.2"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e14e0166f772d6295cfda361d227a63194497641a42da81b9e531c9f5a4d77f"
checksum = "1d4a17d999e6e4e05d87c2bb05b7140d47769bc53211711a33e2f91536458714"
dependencies = [
"bitflags 1.3.2",
"futures-channel",
"futures-core",
"futures-io",
"futures-util",
"gio-sys",
"glib",
"libc",
"once_cell",
"pin-project-lite",
"smallvec",
"thiserror",
]
[[package]]
name = "gio-sys"
version = "0.15.1"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04b57719ccaacf2a0d9c79f151be629f3a3ef3991658ee2af0bb66287e4ea86c"
checksum = "e9b693b8e39d042a95547fc258a7b07349b1f0b48f4b2fa3108ba3c51c0b5229"
dependencies = [
"glib-sys",
"gobject-sys",
@ -367,15 +393,17 @@ dependencies = [
[[package]]
name = "glib"
version = "0.15.6"
version = "0.16.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa570813c504bdf7539a9400180c2dd4b789a819556fb86da7226d7d1b037b49"
checksum = "d5204a4217749b385cefbfb7bf3a2fcde83e4ce6d0945f64440a1f5bd4010305"
dependencies = [
"bitflags 1.3.2",
"futures-channel",
"futures-core",
"futures-executor",
"futures-task",
"futures-util",
"gio-sys",
"glib-macros",
"glib-sys",
"gobject-sys",
@ -387,9 +415,9 @@ dependencies = [
[[package]]
name = "glib-macros"
version = "0.15.1"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54c0c7194ee4c597b334e3ce84d22d929405e94497828e1c54da762cbe8e3d93"
checksum = "e084807350b01348b6d9dbabb724d1a0bb987f47a2c85de200e98e12e30733bf"
dependencies = [
"anyhow",
"heck 0.4.0",
@ -402,9 +430,9 @@ dependencies = [
[[package]]
name = "glib-sys"
version = "0.15.1"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c668102c6e15e0a7f6b99b59f602c2e806967bb86414f617b77e19b1de5b3fac"
checksum = "c61a4f46316d06bfa33a7ac22df6f0524c8be58e3db2d9ca99ccb1f357b62a65"
dependencies = [
"libc",
"system-deps",
@ -412,9 +440,9 @@ dependencies = [
[[package]]
name = "gobject-sys"
version = "0.15.1"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6edb1f0b3e4c08e2a0a490d1082ba9e902cdff8ff07091e85c6caec60d17e2ab"
checksum = "3520bb9c07ae2a12c7f2fbb24d4efc11231c8146a86956413fb1a79bb760a0f1"
dependencies = [
"glib-sys",
"libc",
@ -423,9 +451,9 @@ dependencies = [
[[package]]
name = "graphene-rs"
version = "0.15.1"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c54f9fbbeefdb62c99f892dfca35f83991e2cb5b46a8dc2a715e58612f85570"
checksum = "95ecb4d347e6d09820df3bdfd89a74a8eec07753a06bb92a3aac3ad31d04447b"
dependencies = [
"glib",
"graphene-sys",
@ -434,9 +462,9 @@ dependencies = [
[[package]]
name = "graphene-sys"
version = "0.15.1"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03f311acb023cf7af5537f35de028e03706136eead7f25a31e8fd26f5011e0b3"
checksum = "b9aa82337d3972b4eafdea71e607c23f47be6f27f749aab613f1ad8ddbe6dcd6"
dependencies = [
"glib-sys",
"libc",
@ -446,9 +474,9 @@ dependencies = [
[[package]]
name = "gsk4"
version = "0.4.8"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05e9020d333280b3aa38d496495bfa9b50712eebf1ad63f0ec5bcddb5eb61be4"
checksum = "5dcd01e485189515263f6d3ac8a624b1c0cd13c1097991e72d0cc0c145a303c0"
dependencies = [
"bitflags 1.3.2",
"cairo-rs",
@ -462,9 +490,9 @@ dependencies = [
[[package]]
name = "gsk4-sys"
version = "0.4.8"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7add39ccf60078508c838643a2dcc91f045c46ed63b5ea6ab701b2e25bda3fea"
checksum = "f47c49111e33020615a6c6b78d755c8b54b8504143cae1bf972bccc03eaa3f59"
dependencies = [
"cairo-sys-rs",
"gdk4-sys",
@ -478,9 +506,9 @@ dependencies = [
[[package]]
name = "gst-plugin-gtk4"
version = "0.1.1"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e62e047edb1932887c20105c681203d138ebeb61b83b9e0b368cdec1d0fbc0cc"
checksum = "52832b7e14e43c82e2139a0dbe704e8404bc6e306684cc417ccfdb876f522daa"
dependencies = [
"fragile",
"gst-plugin-version-helper",
@ -522,9 +550,9 @@ dependencies = [
[[package]]
name = "gstreamer"
version = "0.18.8"
version = "0.19.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d66363bacf5e4f6eb281564adc2902e44c52ae5c45082423e7439e9012b75456"
checksum = "e52247a9e1c5a2edb082fac77a59f8b40ec4c4eb719ccafe37072daabf4b56a9"
dependencies = [
"bitflags 1.3.2",
"cfg-if",
@ -546,10 +574,11 @@ dependencies = [
[[package]]
name = "gstreamer-base"
version = "0.18.0"
version = "0.19.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "224f35f36582407caf58ded74854526beeecc23d0cf64b8d1c3e00584ed6863f"
checksum = "a61a299f9ea2ca892b43e2e428b86c679875e95ba23f8ae06fd730308df630f0"
dependencies = [
"atomic_refcell",
"bitflags 1.3.2",
"cfg-if",
"glib",
@ -560,9 +589,9 @@ dependencies = [
[[package]]
name = "gstreamer-base-sys"
version = "0.18.0"
version = "0.19.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a083493c3c340e71fa7c66eebda016e9fafc03eb1b4804cf9b2bad61994b078e"
checksum = "dbc3c4476e1503ae245c89fbe20060c30ec6ade5f44620bcc402cbc70a3911a1"
dependencies = [
"glib-sys",
"gobject-sys",
@ -573,9 +602,9 @@ dependencies = [
[[package]]
name = "gstreamer-sys"
version = "0.18.0"
version = "0.19.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3517a65d3c2e6f8905b456eba5d53bda158d664863aef960b44f651cb7d33e2"
checksum = "fd119152dff9472ef8fa76afe7fb85a8ec639a5388f5c4b68058ce794a765a2a"
dependencies = [
"glib-sys",
"gobject-sys",
@ -585,13 +614,12 @@ dependencies = [
[[package]]
name = "gstreamer-video"
version = "0.18.1"
version = "0.19.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "410c72d885a67aeb7dbfa49c347e6c85d60f54e1cdaf6aadf8b5364892451261"
checksum = "065f78ce526608441f215182b94b624580a1817fe2982d1b1b439ab8d370af30"
dependencies = [
"bitflags 1.3.2",
"cfg-if",
"fragile",
"futures-channel",
"glib",
"gstreamer",
@ -603,9 +631,9 @@ dependencies = [
[[package]]
name = "gstreamer-video-sys"
version = "0.18.0"
version = "0.19.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "255c487bf6dd145e23558eaf1c92ef0946ee1999d22bdadc1e492b463609c4b6"
checksum = "298b78c5980c7ca790c48bab740ca5ffe70d08997987da103bfbfc566bcfd2a9"
dependencies = [
"glib-sys",
"gobject-sys",
@ -617,9 +645,9 @@ dependencies = [
[[package]]
name = "gtk4"
version = "0.4.8"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c64f0c2a3d80e899dc3febddad5bac193ffcf74a0fd7e31037f30dd34d6f7396"
checksum = "b4c61a704ecdedd1c0ca66ff0184bd19e9c488835bb391655bfe6b60f6e2e43e"
dependencies = [
"bitflags 1.3.2",
"cairo-rs",
@ -640,24 +668,23 @@ dependencies = [
[[package]]
name = "gtk4-macros"
version = "0.4.8"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fafbcc920af4eb677d7d164853e7040b9de5a22379c596f570190c675d45f7a7"
checksum = "42f57e7025a8bae8429e07aeeae9c4c3fef5d7cd14834afdd6d6d23f76984246"
dependencies = [
"anyhow",
"proc-macro-crate",
"proc-macro-error",
"proc-macro2",
"quick-xml",
"quote",
"syn",
]
[[package]]
name = "gtk4-sys"
version = "0.4.8"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5bc8006eea634b7c72da3ff79e24606e45f21b3b832a3c5a1f543f5f97eb0f63"
checksum = "42e1bb57be47aac6ce77b5281ad64389a19db5aba6db75b07f0049571ad6fe0f"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
@ -881,20 +908,21 @@ checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
[[package]]
name = "option-operations"
version = "0.4.0"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95d6113415f41b268f1195907427519769e40ee6f28cbb053795098a2c16f447"
checksum = "7c26d27bb1aeab65138e4bf7666045169d1717febcc9ff870166be8348b223d0"
dependencies = [
"paste",
]
[[package]]
name = "pango"
version = "0.15.2"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79211eff430c29cc38c69e0ab54bc78fa1568121ca9737707eee7f92a8417a94"
checksum = "f6a83cd4015382dbb0f4fcf3ab7b277d4885711a62b2f2c1e6582a120094edad"
dependencies = [
"bitflags 1.3.2",
"gio",
"glib",
"libc",
"once_cell",
@ -903,9 +931,9 @@ dependencies = [
[[package]]
name = "pango-sys"
version = "0.15.1"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7022c2fb88cd2d9d55e1a708a8c53a3ae8678234c4a54bf623400aeb7f31fac2"
checksum = "9e134909a9a293e04d2cc31928aa95679c5e4df954d0b85483159bd20d8f047f"
dependencies = [
"glib-sys",
"gobject-sys",
@ -992,6 +1020,18 @@ dependencies = [
"version_check",
]
[[package]]
name = "proc-macro-hack"
version = "0.5.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
[[package]]
name = "proc-macro-nested"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
[[package]]
name = "proc-macro2"
version = "1.0.30"
@ -1001,15 +1041,6 @@ dependencies = [
"unicode-xid",
]
[[package]]
name = "quick-xml"
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8533f14c8382aaad0d592c812ac3b826162128b65662331e1127b45c3d18536b"
dependencies = [
"memchr",
]
[[package]]
name = "quote"
version = "1.0.10"

View file

@ -7,9 +7,9 @@ rust-version = "1.63"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
gtk = { version = "0.4.8", package = "gtk4" }
gst = { package = "gstreamer", version = "0.18.8" }
gst-plugin-gtk4 = { version = "0.1.1", optional=true }
gtk = { version = "0.5.2", package = "gtk4" }
gst = { package = "gstreamer", version = "0.19.3" }
gst-plugin-gtk4 = { version = "0.9.1", optional=true }
anyhow = "1"
gettext-rs = {version = "0.7", features = ["gettext-system"]}
log = "0.4.11"

View file

@ -138,9 +138,12 @@ impl ElementInfo {
let factory = feature
.downcast::<gst::ElementFactory>()
.expect("Unable to get the factory from the feature");
let element = factory.create(None)?;
let element = factory.create().build()?;
let value = element
.try_property::<String>(property_name)
.property_value(property_name)
.transform::<String>()
.expect("Unable to transform to string")
.get::<String>()
.unwrap_or_default();
Ok(value)
}
@ -154,21 +157,30 @@ impl ElementInfo {
let factory = feature
.downcast::<gst::ElementFactory>()
.expect("Unable to get the factory from the feature");
let element = factory.create(None)?;
let element = factory.create().build()?;
let params = element.class().list_properties();
for param in params.iter() {
let value = element
.try_property::<String>(param.name())
.unwrap_or_default();
GPS_INFO!("Property_name {}", param.name());
if param.flags().contains(glib::ParamFlags::READABLE) {
match element.property_value(param.name()).transform::<String>() {
Ok(value) => {
GPS_INFO!(
"Property_name {}={} type={:?}",
param.name(),
value,
value.get::<String>().unwrap_or_default(),
param.type_()
);
properties_list.insert(String::from(param.name()), param.clone());
}
Err(_e) => {
GPS_ERROR!("Unable to convert the param {} to string ", param.name())
}
}
} else {
GPS_ERROR!("The param {} is not readable", param.name())
}
}
Ok(properties_list)
}
@ -179,7 +191,8 @@ impl ElementInfo {
.downcast::<gst::ElementFactory>()
.expect("Unable to get the factory from the feature");
let element = factory
.create(None)
.create()
.build()
.expect("Unable to create an element from the feature");
match element.dynamic_cast::<gst::URIHandler>() {
Ok(uri_handler) => uri_handler.uri_type() == gst::URIType::Src,

View file

@ -75,8 +75,9 @@ mod imp {
}
impl ObjectImpl for GraphView {
fn constructed(&self, obj: &Self::Type) {
self.parent_constructed(obj);
fn constructed(&self) {
let obj = self.obj();
self.parent_constructed();
let drag_state = Rc::new(RefCell::new(None));
let drag_controller = gtk::GestureDrag::new();
@ -238,7 +239,7 @@ mod imp {
obj.add_controller(&event_motion);
}
fn dispose(&self, _obj: &Self::Type) {
fn dispose(&self) {
self.nodes
.borrow()
.values()
@ -248,55 +249,33 @@ mod imp {
fn signals() -> &'static [Signal] {
static SIGNALS: Lazy<Vec<Signal>> = Lazy::new(|| {
vec![
Signal::builder(
"port-right-clicked",
&[
u32::static_type().into(),
u32::static_type().into(),
graphene::Point::static_type().into(),
],
<()>::static_type().into(),
)
Signal::builder("port-right-clicked")
.param_types([
u32::static_type(),
u32::static_type(),
graphene::Point::static_type(),
])
.build(),
Signal::builder(
"node-right-clicked",
&[
u32::static_type().into(),
graphene::Point::static_type().into(),
],
<()>::static_type().into(),
)
Signal::builder("node-right-clicked")
.param_types([u32::static_type(), graphene::Point::static_type()])
.build(),
Signal::builder(
"graph-right-clicked",
&[graphene::Point::static_type().into()],
<()>::static_type().into(),
)
Signal::builder("graph-right-clicked")
.param_types([graphene::Point::static_type()])
.build(),
Signal::builder(
"graph-updated",
Signal::builder("graph-updated")
.param_types(
// returns graph ID
&[u32::static_type().into()],
<()>::static_type().into(),
[u32::static_type()],
)
.build(),
Signal::builder(
"node-added",
Signal::builder("node-added")
.param_types(
// returns graph ID and Node ID
&[u32::static_type().into(), u32::static_type().into()],
<()>::static_type().into(),
[u32::static_type(), u32::static_type()],
)
.build(),
Signal::builder(
"port-added",
// returns graph ID, Node ID, Port ID
&[
u32::static_type().into(),
u32::static_type().into(),
u32::static_type().into(),
],
<()>::static_type().into(),
)
Signal::builder("port-added")
.param_types([u32::static_type(), u32::static_type(), u32::static_type()])
.build(),
]
});
@ -305,7 +284,7 @@ mod imp {
}
impl WidgetImpl for GraphView {
fn snapshot(&self, _widget: &Self::Type, snapshot: &gtk::Snapshot) {
fn snapshot(&self, snapshot: &gtk::Snapshot) {
/* FIXME: A lot of hardcoded values in here.
Try to use relative units (em) and colours from the theme as much as possible. */
@ -313,7 +292,7 @@ mod imp {
self.nodes
.borrow()
.values()
.for_each(|node| self.instance().snapshot_child(node, snapshot));
.for_each(|node| self.obj().snapshot_child(node, snapshot));
for link in self.links.borrow().values() {
if let Some((from_x, from_y, to_x, to_y)) = self.link_coordinates(link) {
@ -422,7 +401,7 @@ mod imp {
point_from: &graphene::Point,
point_to: &graphene::Point,
) {
let alloc = self.instance().allocation();
let alloc = self.obj().allocation();
let link_cr = snapshot.append_cairo(&graphene::Rect::new(
0.0,
@ -473,7 +452,7 @@ impl GraphView {
&provider,
gtk::STYLE_PROVIDER_PRIORITY_APPLICATION,
);
glib::Object::new(&[]).expect("Failed to create GraphView")
glib::Object::new::<Self>(&[])
}
/// Set graphview id
@ -1159,8 +1138,7 @@ impl GraphView {
let transform = gsk::Transform::new()
// Nodes should not be able to be dragged out of the view, so we use `max(coordinate, 0.0)` to prevent that.
.translate(&graphene::Point::new(f32::max(x, 0.0), f32::max(y, 0.0)))
.unwrap();
.translate(&graphene::Point::new(f32::max(x, 0.0), f32::max(y, 0.0)));
layout_manager
.layout_child(widget)

View file

@ -114,12 +114,13 @@ mod imp {
}
impl ObjectImpl for Node {
fn constructed(&self, obj: &Self::Type) {
self.parent_constructed(obj);
self.layoutgrid.set_parent(obj);
fn constructed(&self) {
let obj = self.obj();
self.parent_constructed();
self.layoutgrid.set_parent(&*obj);
}
fn dispose(&self, _obj: &Self::Type) {
fn dispose(&self) {
self.layoutgrid.unparent();
}
}
@ -136,7 +137,7 @@ impl Node {
/// Create a new node
///
pub fn new(id: u32, name: &str, node_type: NodeType) -> Self {
let res: Self = glib::Object::new(&[]).expect("Failed to create Node");
let res = glib::Object::new::<Self>(&[]);
let private = imp::Node::from_instance(&res);
private.id.set(id).expect("Node id is already set");
res.set_name(name);

View file

@ -76,7 +76,7 @@ mod imp {
use once_cell::unsync::OnceCell;
/// Graphical representation of a port.
#[derive(Default, Clone)]
#[derive(Default)]
pub struct Port {
pub(super) label: gtk::Label,
pub(super) id: OnceCell<u32>,
@ -113,11 +113,12 @@ mod imp {
}
impl ObjectImpl for Port {
fn constructed(&self, obj: &Self::Type) {
self.parent_constructed(obj);
self.label.set_parent(obj);
fn constructed(&self) {
let obj = self.obj();
self.parent_constructed();
self.label.set_parent(&*obj);
}
fn dispose(&self, _obj: &Self::Type) {
fn dispose(&self) {
self.label.unparent()
}
}
@ -134,7 +135,7 @@ impl Port {
///
pub fn new(id: u32, name: &str, direction: PortDirection, presence: PortPresence) -> Self {
// Create the widget and initialize needed fields
let port: Self = glib::Object::new(&[]).expect("Failed to create Port");
let port: Self = glib::Object::new::<Self>(&[]);
port.add_css_class("port");
let private = imp::Port::from_instance(&port);
private.id.set(id).expect("Port id already set");

View file

@ -171,7 +171,8 @@ pub fn property_to_widget<F: Fn(String, String) + 'static>(
pub fn display_plugin_properties(app: &GPSApp, element_name: &str, node_id: u32) {
let update_properties: Rc<RefCell<HashMap<String, String>>> =
Rc::new(RefCell::new(HashMap::new()));
let properties = GPS::ElementInfo::element_properties(element_name).unwrap();
let properties = GPS::ElementInfo::element_properties(element_name)
.expect("Should get the list of the properties properly");
let grid = gtk::Grid::new();
grid.set_column_spacing(4);