Commit Graph

17 Commits

Author SHA1 Message Date
Tom A. Wagner
637ce104df view: Node,Port: Store pipewire Id as property on node, and make its name a property too. 2022-07-21 19:14:17 +02:00
Tom A. Wagner
52e48cc0a7 Adjust license headers to reflect gpl-3.0-only license. 2022-04-19 10:14:01 +02:00
Tom A. Wagner
92dcfd61a1 Add gpl snippets to the start of each rust source file. 2021-10-03 11:27:36 +02:00
Tom A. Wagner
58794fe123 Remove unneeded Rc, Port is now a refcounted gobject 2021-06-28 13:29:46 +02:00
Tom A. Wagner
7977481689 Fix some pedantic clippy warnings 2021-06-26 12:10:36 +02:00
Mathias Rav
3cd19f2d1d When dragging a node, don't snap its top-left corner to the cursor
Revamp the node dragging implementation, moving it into the GraphView
widget.

When a drag is initiated, the node widget's current position is stored.
Whenever the drag gesture is updated, the node widget's position is set
by adding the relative drag vector to the position at the start of the
drag.

A drag gesture on the node widget rather than the GraphView widget was
considered, but this seems to lead to a weird flickering effect when the
node is moved while the drag gesture on the node is active.

To avoid interfering with the drag handlers on the ports, check if the
GraphView drag gesture targets a port, in which case the handler does
nothing.
2021-05-10 18:21:00 +00:00
Tom A. Wagner
a5d8c871ee Update dependencies 2021-05-08 18:42:49 +02:00
Tom A. Wagner
076fec7eb4 Modify architecture to run pipewire loop in second thread.
The pipewire loop now runs without interruption in a second thread and communicates with
the GTK thread via a channel in each direction, instead of checking for events once a second and using callbacks.

This allows changes to appear instantly in the view, instead of having to wait.
2021-05-05 21:48:00 +02:00
Tom A. Wagner
75aa0a30d0 Turn view::port::Port into a gtk::Button subclass 2021-04-02 14:53:58 +02:00
Emmanuel Gil Peyrot
279c792345 Update to build with latest glib
glib replaced its glib::object_subclass!() macro with
a #[glib::object_subclass] attribute, to simplify a bunch of things.

See fdc8459b39
2021-03-14 00:25:08 +01:00
Guillaume Desmottes
5784275d32 fix clippy warnings 2021-02-14 17:24:49 +01:00
Tom A. Wagner
a3907a1832 Change Node from a frame subclass to a widget subclass. 2021-01-12 10:44:12 +01:00
Tom A. Wagner
181661a2db Delete items from graph when they are removed by the pipewire server. 2021-01-08 12:34:22 +01:00
Tom A. Wagner
f1b66d9c53 Turn Node into a gtk::Frame subclass. 2021-01-07 17:42:37 +01:00
Tom A. Wagner
d5283c803b Change cursor to grab when node can be dragged 2021-01-06 10:59:28 +01:00
Tom A. Wagner
2897543acf Switch to gtk4 2021-01-05 09:46:34 +01:00
Tom A. Wagner
b129d84fa2 Display Nodes/Ports/Links obtained from pipewire server 2021-01-03 19:01:47 +01:00