Commit graph

248 commits

Author SHA1 Message Date
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
1e13bbdca6 logger: use of simplelog crate
Logs are now visible in 2 different place
the treeview in the bottom and in a log file
with log level.
2022-01-14 09:50:45 +01:00
Stéphane Cerveau
15a785f821 Merge branch 'dab_save_position' into 'main'
graphview: save position as a hidden property

See merge request dabrain34/GstPipelineStudio!3
2022-01-13 08:55:13 +00:00
Stéphane Cerveau
0cd2490cbb pipeline: cleanup the start_pipeline error handling
Cleanup the code to handle GStreamer set_state
failure.
2022-01-12 18:49:13 +01:00
Stéphane Cerveau
1a8e893169 app: load/save node position
Able to load and save the node position
in the XML file.
Autosave/autoload the current graph
in the settings folder.
2022-01-12 18:49:13 +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
1ac03c16ae TODO: update todo layout 2022-01-12 11:15:52 +01:00
Stéphane Cerveau
198847cb54 app: code cleanup
Use simplified anyhow result
Rewrite the expect/error messages.
Refactor the start pipeline API
Rename the treeview ids
2022-01-12 11:15:52 +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
27eeab7b40 logger: add column for log level
Add a column to separate the message
from the log level.
2022-01-12 11:15:52 +01:00
Stéphane Cerveau
a6a5d796ca gps.ui: Use a stock icon for clear
Clear graph on button clicked.
2022-01-12 11:15:52 +01:00
Stéphane Cerveau
e8259f3773 pipeline: fix multiple input pads
Can now generate a pipeline with multiple input
pads such as a compositor.
2022-01-12 11:15:52 +01:00
Stéphane Cerveau
81ca9ca3a3 about: display about dialog
display a custom and clean about dialog
with the infrastructure based on meson to
genetate the config.rs
2022-01-12 11:15:52 +01:00
Stéphane Cerveau
c1ba09814b app: rework menu and actions
Use one popover menu parent with the mainwindow
Centralize the actions definition
Cleanup the code for more readabilty.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
9884a776b3 app: rework the UI dimension
Add GtkPaned between the logs and the graph
Load/save app dimensions.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
3731a92d51 logger: implement a logger with treeview
Any log should be now visible in the logger
tree view according to the level.
2022-01-11 20:48:53 +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
158f9eb899 favorites: implement a favorite list
The right panel can now store a favorite list which is
saved into a settings file in the user config directory.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
c16102928b pluginlist: avoid mulitple init
Allow only one initialization of the plugin
list.
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
1263366e56 icon: add icon pipeline
Icônes conçues par https://www.freepik.com
https://www.flaticon.com/fr/
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
71576eae4e ci: add gitlab ci definition 2022-01-11 20:48:53 +01:00
Stéphane Cerveau
a15c9c7353 GPSApp: Able to clear the graph with new
Able to clear with new file and load
a preconfigured graph with clear button
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
bc7f4424ca main: add a common init method
Rename the application to gst-pipeline-studio and
add an init method to initialize
gstreamer and x11
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
Stéphane Cerveau
25b2d1f8bf GPS: port to GTK4 2022-01-11 20:48:53 +01:00
Stéphane Cerveau
b36fd0aebe pluginlist: can now select and double click element
Treeview row actions:
 - A selection will display element information.
 - A double click add a new element in the app.graph structure.

The plugin list dialog is an item from gps.ui
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
0851f0545b GPS: introduce the graph object
The graph object stores information about the graphical
representation of a gst pipeline including
the element box, the pads and the connections.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
05749a7009 GPS: introduce an app structure 2022-01-11 20:48:53 +01:00
Stéphane Cerveau
6351f1f43f GPS: Add a dialog to select the elements
This dialog allows to select and see element
and its details.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
859f936796 GPS: add GStreamer support
Can now get the GStreamer element's list
from the registry.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
6fc8a1c3da README: add first step to build and run GPS 2022-01-11 20:48:53 +01:00
Stéphane Cerveau
98e0199e01 GPS: add a TODO list 2021-12-02 10:28:41 +01:00
Stéphane Cerveau
20c537f61b GPS: change license to GPLv3 2021-12-02 10:28:24 +01:00
Stéphane Cerveau
bdd183075e mainwindow: connect button to actions
Connect:

- add plugin dialog
- open file dialog
- about dialog
2021-11-18 12:35:56 +01:00
Stéphane Cerveau
12e7958886 mainwindow: can now draw a vector of rectangles. 2021-11-17 12:43:02 +01:00
Stéphane Cerveau
52718e0388 mainwindow: can draw a rectangle at mouse position 2021-11-04 14:25:25 +01:00
Stéphane Cerveau
465ac78c08 gps: Add first UI design with glade 2021-10-22 13:00:05 +02:00
Stéphane Cerveau
56f62f172c rust: init the project 2021-10-12 10:33:51 +02:00
Stéphane Cerveau
39a5b15cca Initial commit 2021-10-12 10:19:45 +02:00