Commit graph

48 commits

Author SHA1 Message Date
Stéphane Cerveau b1ad0e958b graphmanager: fix typos detected by pre-commit 2024-01-05 11:25:03 +01:00
Stéphane Cerveau 3e15b7cecb graphmanager: remove link export 2024-01-05 11:25:03 +01:00
Stéphane Cerveau 3689d4d57c graphview: change log level for link name 2023-09-15 11:56:16 +02:00
Stéphane Cerveau eda453df53 graphview: use gtk::style_context_add_provider_for_display
gtk::StyleContext::add_provider_for_display is now deprecated
since gtk update to 0.7.2
2023-08-31 17:23:58 +02:00
Stéphane Cerveau aaf47503fe graphmanager: add link name
Allow to set and display a link name
2023-08-26 12:52:30 +02:00
Stéphane Cerveau 46889d86d0 node: provide an API to fetch port by name
Retrieve the port from a node by its name.
2023-02-14 10:18:06 +01:00
Stéphane Cerveau 8c9cb35928 graphview: node by unique name
keep a unique name value in Node structure
and provide an API to modify it.
2023-02-14 10:18:06 +01:00
Stéphane Cerveau 9e6ee57fee graphmanager: update and fix for gtk4-rs 0.6.1 2023-02-13 21:45:54 +01:00
Stéphane Cerveau e2a62ae4d4 graphmanager: Fix various clippy issues
fix uninlined_format_args clippy warning
2023-02-13 16:39:56 +01:00
Stéphane Cerveau cc42cdeaeb graphmanager: add a light mode
Add a light mode to display node with a
dashed style
2023-02-13 16:39:47 +01:00
Stéphane Cerveau a5767b21fe graphmanager: Add node-double-clicked signal 2023-02-09 14:05:17 +01:00
Stéphane Cerveau 726a6f4d41 cargo: update gst/gtk/gst-plugin-gtk4 2022-11-29 08:42:12 +00:00
Stéphane Cerveau 6b657891c6 graphmanager: fix some lint issues with rust 1.63
Fix format and missing derive
2022-09-06 12:48:40 +02:00
Stéphane Cerveau 28a9cfbd50 graphmanager: update link license
Add a license in GraphManager folder
2022-02-16 17:10:34 +01:00
Stéphane Cerveau 6cc908c109 graphview: add a format version to graphview 2022-02-10 14:38:13 +00:00
Stéphane Cerveau 0164d71bf2 graphmanager: cleanup the license
Keep only the SPDX and mention the project
2022-02-09 11:28:27 +01:00
Stéphane Cerveau 72dcde0ad3 graphmanager: update description on property remove
The node must update its description when
a property value has been removed.
2022-02-08 14:53:12 +01:00
Stéphane Cerveau 7db3b333ac graphmanager: add API to change port name. 2022-02-07 12:19:15 +01:00
Stéphane Cerveau a21350b4a0 graphmanager: can remove property
Add public remove_property to PropertyExt
2022-02-07 12:19:10 +01:00
Stéphane Cerveau d19387f039 graphview: implement tests infra
- Implement test for graph creation, save and load.
- Change xml API
- Update public/private api
- Add a graphview clear API
2022-01-27 17:35:47 +01:00
Stéphane Cerveau 9cc40d2b7b grahview: add create_link methods to clarify API 2022-01-27 13:18:46 +01:00
Stéphane Cerveau 2ddd49fa0d tests: implement graphview unit test 2022-01-27 13:18:46 +01:00
Stéphane Cerveau 620f6bf699 graphview: implement link on mouse pointer
Draw a dash line following the mouse pointer
when an available port has been clicked.
2022-01-27 13:18:46 +01:00
Stéphane Cerveau cf8c8ab585 graphview: remove all links when node is deleted
The node can have more links than one, so all the links
must be destroyed when the node is destroyed.

Cleanup the code and panic if a link does not have
the node or port described in it.
2022-01-27 13:18:46 +01:00
Stéphane Cerveau 375d01c0cd port: Rework the way to add a port/node
Allow to tell than a port has been added with its property
2022-01-27 13:18:46 +01:00
Stéphane Cerveau 17ecce9748 port: support properties
Allow port to have a property set
and store it in the xml file

Introduce PropertyExt

Rewrote the port layout
2022-01-27 13:18:46 +01:00
Stéphane Cerveau b360f4a13a node: update the layout and use GtkGrid
The node uses a GrkGrid to display
ports, name and description.
2022-01-27 13:18:46 +01:00
Stéphane Cerveau 548f4cb3fc graphview: add "node-added" signal
Signal the app that a node has been added
correctly.
2022-01-20 12:04:24 +01:00
Stéphane Cerveau 6c31bc3912 graphview: add documentation and refactor the code
Add documentation to public method.
Publish method which are public
Use SelectionExt trait.
Rename add_node_with_port to create_node_with_port
2022-01-19 11:55:13 +01:00
Stéphane Cerveau ade3f14902 graphview: update css for node and port
Change border style and
port presence entries
2022-01-18 17:43:01 +01:00
Stéphane Cerveau 4bae12c011 graphview: introduce PortPresence
The port presence helps to know
if the port can be deleted or not.

XML Format break.
2022-01-18 16:39:39 +01:00
Stéphane Cerveau e5334b1d5e graphview: Remove the link in remove_port
Remove the link when removing a port from a
node.

Update documentation
2022-01-18 16:39:39 +01:00
Stéphane Cerveau 9ef073d3c3 graphview: update node API
Update doc for `node` and take u32
in argument.
2022-01-18 16:39:39 +01:00
Stéphane Cerveau 2548040463 graphview: port to gtk4 version 0.4.1 2022-01-17 14:40:09 +01:00
Stéphane Cerveau 72d4ddadb7 graphmanager: save the position as an attribute
The position should not be an hidden property
but a regular attribute.
2022-01-17 10:39:11 +01:00
Stéphane Cerveau 34b134107e graphmanager: use logger instead of println 2022-01-14 09:50:45 +01:00
Stéphane Cerveau e9b905230a graphview: save position as a hidden property
- Save/load node position in XML file
- Introduce a graph ID
2022-01-12 18:49:10 +01:00
Stéphane Cerveau 2a7137e6dc graphview: code cleanup
Remove dead code
Rewrite error message
Use simplified anyhow result for xml
methods
2022-01-12 11:15:52 +01:00
Stéphane Cerveau d291c93352 app: add graph pop menu
Add a pop menu to add new plugin to the graph
2022-01-11 20:48:53 +01:00
Stéphane Cerveau 914fc1f077 pipeline: move render_gst to this module
Remove render_gst from graphview and define
it in pipeline.
This will allow to isolate properly the graphmanager
module.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau a0bb503b27 graphview: can now select nodes and links
Nodes and links can be selected and deleted
2022-01-11 20:48:53 +01:00
Stéphane Cerveau 7d08abaca8 GPSApp: Can now request pads on element
Add menu entries to add new pad/port to an element/node.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau 6756b34919 plugindialogs: rename module and support properties in element
rename pluginlist module to plugindialogs
Add display_plugin_properties to modify properties
from an element.
Add a way to modify the location if element is URI_TYPE_SRC
Able to remove a node from the graph
2022-01-11 20:48:53 +01:00
Stéphane Cerveau 6c7dccd450 graphview: display contextual menu on right click
display a contextual menu if user clicks a node or port with a right
click.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau 6397ebff74 GPS: add GST render to parse launch format
The player is able to take the graph description and
build a string which will be passed to the
GStreamer parse launch engine.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau f1149a6b5e pipeline: implement parse launch playback
Can now play/pause/stop a playback from
a parse launch description GST pipeline.

rename getters in pipeline.rs
2022-01-11 20:48:53 +01:00
Stéphane Cerveau 52286ada4a GPS: Add xml save/load in graphview
Can now save and load in XML
graphs/nodes/ports/links
2022-01-11 20:48:53 +01:00
Stéphane Cerveau 5f91fbaef7 GPS: introduce the graphmanager
Introduce the first version of a graph manager
with:
- Graphview
- Node
- Port
2022-01-11 20:48:53 +01:00