mirror of
https://gitlab.freedesktop.org/dabrain34/GstPipelineStudio.git
synced 2024-11-22 09:00:59 +00:00
graphmanager: add a light mode
Add a light mode to display node with a dashed style
This commit is contained in:
parent
3f75581d60
commit
cc42cdeaeb
3 changed files with 29 additions and 2 deletions
|
@ -14,6 +14,10 @@ button.node-selected {
|
||||||
background: rgb(170, 255, 170);
|
background: rgb(170, 255, 170);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
button.node-light {
|
||||||
|
border-style: dashed;
|
||||||
|
}
|
||||||
|
|
||||||
button.port {
|
button.port {
|
||||||
color: rgb(0, 0, 255);
|
color: rgb(0, 0, 255);
|
||||||
border-width: 2px;
|
border-width: 2px;
|
||||||
|
|
|
@ -837,7 +837,8 @@ impl GraphView {
|
||||||
.attr("id", &node.id().to_string())
|
.attr("id", &node.id().to_string())
|
||||||
.attr("type", &node.node_type().unwrap().to_string())
|
.attr("type", &node.node_type().unwrap().to_string())
|
||||||
.attr("pos_x", &node.position().0.to_string())
|
.attr("pos_x", &node.position().0.to_string())
|
||||||
.attr("pos_y", &node.position().1.to_string()),
|
.attr("pos_y", &node.position().1.to_string())
|
||||||
|
.attr("light", &node.light().to_string()),
|
||||||
)?;
|
)?;
|
||||||
for port in node.ports().values() {
|
for port in node.ports().values() {
|
||||||
writer.write(
|
writer.write(
|
||||||
|
@ -938,6 +939,10 @@ impl GraphView {
|
||||||
let pos_y: &String = attrs
|
let pos_y: &String = attrs
|
||||||
.get::<String>(&String::from("pos_y"))
|
.get::<String>(&String::from("pos_y"))
|
||||||
.unwrap_or(&default_value);
|
.unwrap_or(&default_value);
|
||||||
|
let default_value = String::from("false");
|
||||||
|
let light: &String = attrs
|
||||||
|
.get::<String>(&String::from("light"))
|
||||||
|
.unwrap_or(&default_value);
|
||||||
let node = self.create_node_with_id(
|
let node = self.create_node_with_id(
|
||||||
id.parse::<u32>().unwrap(),
|
id.parse::<u32>().unwrap(),
|
||||||
name,
|
name,
|
||||||
|
@ -947,6 +952,7 @@ impl GraphView {
|
||||||
pos_x.parse::<f32>().unwrap(),
|
pos_x.parse::<f32>().unwrap(),
|
||||||
pos_y.parse::<f32>().unwrap(),
|
pos_y.parse::<f32>().unwrap(),
|
||||||
);
|
);
|
||||||
|
node.set_light(light.parse::<bool>().unwrap());
|
||||||
current_node = Some(node);
|
current_node = Some(node);
|
||||||
}
|
}
|
||||||
"Property" => {
|
"Property" => {
|
||||||
|
|
|
@ -62,6 +62,7 @@ mod imp {
|
||||||
// Properties are different from GObject properties
|
// Properties are different from GObject properties
|
||||||
pub(super) properties: RefCell<HashMap<String, String>>,
|
pub(super) properties: RefCell<HashMap<String, String>>,
|
||||||
pub(super) selected: Cell<bool>,
|
pub(super) selected: Cell<bool>,
|
||||||
|
pub(super) light: Cell<bool>,
|
||||||
pub(super) position: Cell<(f32, f32)>,
|
pub(super) position: Cell<(f32, f32)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,6 +109,7 @@ mod imp {
|
||||||
num_ports_out: Cell::new(0),
|
num_ports_out: Cell::new(0),
|
||||||
properties: RefCell::new(HashMap::new()),
|
properties: RefCell::new(HashMap::new()),
|
||||||
selected: Cell::new(false),
|
selected: Cell::new(false),
|
||||||
|
light: Cell::new(false),
|
||||||
position: Cell::new((0.0, 0.0)),
|
position: Cell::new((0.0, 0.0)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -276,6 +278,21 @@ impl Node {
|
||||||
imp::Node::from_instance(self).position.get()
|
imp::Node::from_instance(self).position.get()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn set_light(&self, light: bool) {
|
||||||
|
let self_ = imp::Node::from_instance(self);
|
||||||
|
self_.light.set(light);
|
||||||
|
if light {
|
||||||
|
self.add_css_class("node-light");
|
||||||
|
} else {
|
||||||
|
self.remove_css_class("node-light");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn light(&self) -> bool {
|
||||||
|
let self_ = imp::Node::from_instance(self);
|
||||||
|
self_.light.get()
|
||||||
|
}
|
||||||
|
|
||||||
//Private
|
//Private
|
||||||
|
|
||||||
fn set_name(&self, name: &str) {
|
fn set_name(&self, name: &str) {
|
||||||
|
|
Loading…
Reference in a new issue