qpwgraph - A PipeWire Graph Qt GUI Interface
--------------------------------------------

ChangeLog


1.0.0  2026-03-17  An Early-Spring'26 Release.

- Configured ALSA MIDI port colors now reset/restored properly.


0.9.9  2026-02-10  A Mid-Winter'26 Release.

- Most probably the first and last release candidate ever ;)


0.9.8  2025-12-29  An End-of-Year'25 Beta Release.

- Fixed 'mime-info' file to the correct MIME-type icon names.


0.9.7  2025-11-14  An Autumn'25 Beta Release.

- Add topological sort node arrangement (cf. View/Arrange Nodes;
  by Mike Bourgeous)


0.9.6  2025-10-06  An Early-Fall'25 Beta Release.

- Allow the complete node name to get the same treatment in the
  Graph/Options.../Filter as same for Merger.

- Get rid of CONFIG_WAYLAND build config option; add underlying
  platform name (eg. xcb, wayland) to Qt version string.


0.9.5  2025-08-15  A Mid-Summer'25 Beta Release.

- Make all node-names in merger list (Graph/Options.../Merger)
  implicitly exclusive for Patchbay persistence.

- Cope with in-flight node/port count changing.


0.9.4  2025-06-21  An Early-Summer'25 Beta Release.

- Indulged on a new 'Add' (pinned connection) button into the
  Patchbay/Manage... dialog also make dialog size and position
  persistent.
- Introducing Graph/Options.../Merger to unify node-names for
  Patchbay persistence, especially useful to PipeWire clients
  that spawn more than one node, having the very same name (eg.
  web browsers).


0.9.3  2025-06-02  An End-of-Spring'25 Beta Release.

- Corrected (again) salvage of node positions that possible have
  the very same and exact name.


0.9.2  2025-05-17  A Mid-Spring'25 Hot-Fix Beta Release.

- Save node positions as soon as they are taken or moved around,
  avoiding accidental re-positioning to the previous or original
  state.

- Regression to the late uniform and generic patchbay node-names
  which was a terrible mistake: while it sort of fixed some issues
  regarding multimedia players, it sent all other cases bonkers.
  So sorry for all the foul play or inconvenience.


0.9.1  2025-05-15  A Mid-Spring'25 Beta Release.

- Patchbay node-name persistence is now made uniform and generic
  for most if not all multimedia players (eg. web browsers) that
  usually tend to power-cycle their PipeWire client/driver on a
  whim (eg. pause, skip,... whatever)


0.9.0  2025-04-25  A Spring'25 Beta Release.

- Mitigate an alternate re-positioning to some application nodes
  (eg. Discord) on each screen refresh (F5).
- Stepping up next development cycle (Qt >= 6.9)


0.8.3  2025-03-28  An Early Spring'25 Beta Release.

- Loading a patchbay profile (*.qpwgraph) from the command line,
  is now properly shown on the main window title and toolbar.
- Added PipeWire command line version information.


0.8.2  2025-03-07  An End-of-Winter'25 Beta Release.

- Port colors: new PipeWire MIDI 2 (UMP) port type is now aliased
  to the same as (now old) MIDI port type. (pipewire >= 1.3.81)
- Fixed command line parsing (QCommandLineParser/Option) to not
  exiting the application with a segfault when showing help and
  version information.


0.8.1  2024-12-27  An End-of-Year'24 Beta Release.

- Patchbay 'presets' may now be selected from the system-tray icon
  context-menu.


0.8.0  2024-11-14  A Mid-Autumn'24 Beta Release.

- A new Patchbay/Manage... feature dialog is introduced, targeting
  the currently loaded patchbay, allowing the removal and cleanup
  of connection rules that are no longer used, obsolete or simply
  not applicable anymore.
- Force an actual complete graph refresh on main View/Refresh...
- Introducing the new Graph/Options... dialog, to where the most
  general option settings have been (re)moved from the main Help
  menu.
- Introducing Graph/Options.../Filter to hide nodes by node name
  pattern (blacklist).
- Fix default PipeWire node nickname if given empty.


0.7.9  2024-10-28  An Autumn'24 Beta Release.

- Thumb-view: Fixed flicker when dragging widget from top to
  bottom corners (and vice-versa); inner thumb-viewport is
  drag+moved only if the Ctrl keyboard modifier is pressed.
- Node reference positioning changed to the top-left corner,
  improving the base snapping-to-grid perception.
- Prepping up next development cycle (Qt >= 6.8)


0.7.8  2024-09-19  An End-of-Summer'24 Beta Release.

- When visible the thumb-view may now be drag-moved to a different
  corner position anytime.
  

0.7.7  2024-08-21  A Mid-Summer'24 Beta Release.

- Thumb-view repositions and resizes immediately when visible.


0.7.5  2024-07-12  A Summer'24 Beta Release.

- Implement patchbay node search functionality: adds a floating
  text-entry field, which appears when typing in the canvas,
  selecting nodes that contains the typed text (maybe regular
  expression).


0.7.4  2024-06-28  An Early-Summer'24 Hot-fix Release.

- Force a default PipeWire node name if given empty.
- Fixed a potential use-after-free issue on canvas nodes refresh
  and recycle.


0.7.3  2024-06-22  An Early-Summer'24 Beta Release.

- Cancel button option added to close to system-tray icon message.
- Introducing thumbview context-menu.


0.7.2  2024-05-12  A Mid-Spring'24 Beta Release.

- Remove margins and spacing from the top-level canvas layout.
- Possible fix to pipewire backend thread loop locking.
- Updated to latest framework level (Qt >= 6.7)


0.7.1  2024-04-25  A Spring'24 Beta Release Hot-Fix.

- Hot-fix: disable thumbview interactivity: prevent dragging nodes
  over to extremely severe off-limits by accident.


0.7.0  2024-04-22  A Spring'24 Beta Release.

- Whether to show the System-tray informational and/or active
  Patchbay warning messages, respectively on Close and/or Quit,
  is now optional (cf. Help > Enable System Tray Message and/or
  Help > Enable Patchbay Message, resp.)
- Introducing the View/Thumbview option as a whole graph thumbnail
  overview helper.


0.6.3  2024-03-29  A Good-Friday'24 Release.

- Node and port title ellipsis shortning trimmed and simplified.
- Fixed system-tray icon to a 32x32 pixmap.
- Fixed renamed ports positioned incorrectly after relaunch.


0.6.2  2024-01-22  A Winter'24 Release.

- Make the main canvas background to mid-gray, when on non-dark
  color themes.
- Updated copyright headers into the New Year (2024).


0.6.1  2023-12-01  An End-of-Autumn'23 Release.

- Introduce Help > Enable ALSA MIDI runtime option, now permitting
  to disable the ALSA MIDI/Sequencer graph conveniency in a whim.
- Disconnect all pinned connections when patchbay is deactivated,
  subject to Patchbay > Auto Disconnect option.
- Fix a potential port duplication when recycled under the same
  node and reusing a previous port id.
- Don't unpin connections that are manually disconnected, when
  patchbay is deactivated and auto-pin is off.


0.6.0  2023-11-08  An Autumn'23 Release.

- Improved Patchbay / Exclusive mode scan enforcement.
- Hopefully fixes the hideous random crashes caused by very short
  lived nodes, recycled by reusing the very same ids.
- Cope with nodes that can possibly remain with the very same name
  but different ids.
- Added deactivated (-d, --deactivated) and non-exclusive patchbay
  (-n, --nonexclusive) command line options.
- Fixed unique/single instance support (Qt >= 6.6).


0.5.3  2023-09-08  An End-of-Summer'23 Release.

- Added user contributed documentation: How To Use The Patchbay.
- Fix condition for saving node name aliases.


0.5.2  2023-08-05  A High-Summer'23 Release.

- Ctrl+left or middle-button click-dragging for panning, is now a
  lot smoother, hopefully.
- Click-dragging with the mouse middle-button is for panning only,
  not to start a selection anymore.
- Add Ctrl+Q to Quit action


0.5.1  2023-07-17  A Summer'23 Hot-fix Release.

- Fixed segfault on initialization that was affecting Qt5 builds.


0.5.0  2023-07-16  Yet another Summer'23 Release.

- Completely refactored the internal PipeWire node registry logic,
  just to have unique node names, as seen fit to purpose to solve
  an old undefined behavior to positioning and Patchbay persistence
  of multiple nodes with the very same and exact name.
- Fixed the main PipeWire registry thread-safety, into a two-level
  critical section, hopefully preventing the race-conditions that
  are the suspected cause to some rare crashes.


0.4.5  2023-07-10  A Summer'23 Release.

- Split non-physical terminal device nodes for monitor and control
  ports, adding the suffix "[Monitor]" and/or "[Control]" resp. to
  the node name.
- Fixed the dimming of new connections when Patchbay/Edit mode is on
  and Patchbay/Auto Pin is off.


0.4.4  2023-06-18  A Late-Spring'23 Regression.

- Split devices for capture/monitor and playback ports. (REGRESSION)


0.4.3  2023-06-17  A Late-Spring'23 Release.

- Split devices for capture/monitor and playback ports.


0.4.2  2023-04-02  An Early-Spring'23 Release.

- Soft incremental bounds constraints now imposed to all new and
  old nodes positioning.
- Attempt to auto-start minimized to system-tray icon, if enabled,
  when restoring a desktop session (eg. after logout, shutdown or
  restart).


0.4.1  2023-03-03  A Late-Winter'23 Release.

- Attempt to make port labels as short as possible.
- Fixed a possible crash when several PW objects (nodes and ports)
  are created and destroyed in fast succession.


0.4.0  2023-02-25  A Mid-Winter'23 Release.

- Node names now have the "media.name" property as a bracketed
  suffix; when given and applicable.
- Node icons now reflecting their proper application/theme icons
  or else, a bland and generic default taken from the "client.api"
  property (eg. "pw", "jack" or "pulse").
- Introducing touch pinch-gesture for zooming.
- Bumping copyright headers to the brand new year.


0.3.9  2022-12-27  An End-of-Year'22 Release

- Whether to draw connectors through or around nodes is now an
  user preference option (cf. View > Connect Through Nodes).


0.3.8  2022-11-19  A Mid-Autumn'22 Release.

- Allow middle mouse button for grabbing and dragging the canvas.


0.3.7  2022-10-22  An Autumn'22 release.

- Fixed the system-tray icon tooltip to always reflect current
  main window title, usually the current patchbay name.
- Make up visual immediate feedback connectlons.


0.3.6  2022-09-24  An Early-Autumn'22 Release.

- View / Repel Overlapping Nodes option added.


0.3.5  2022-08-20  A thirteenth beta release.

- Patchbay/Scan menu command removed as redundand.
- Added Patchbay/Auto Pin connections option (issue #56).
- Add current system user-name to the singleton/unique application
  instance identifier.


0.3.4  2022-07-08  A twelfth beta release.

- Fixed repainting of pinned/unpinned connections when switching
  patchbay profiles and Patchbay/Edit mode is on.


0.3.3  2022-07-06  An eleventh beta release.

- Patchbay/Edit mode introduced: pinning and unpinning connections
  to and from current patchbay is now implemented.
- Original Graph/Connect and Disconnect keyboard shortcuts, [Ins]
  and [Del], are now added to the existing ones, respectively.


0.3.2  2022-06-13  A tenth beta release.

- Fixed initial nodes layout positioning, now back to the former
  spiraled away from the center.


0.3.1  2022-05-29  A ninth beta release.

- Only ask to quit an activated patchbay when actually quitting
  the application (not just closing a patchbay).
- Graph/Connect and Disconnect keyboard shortcuts changed from
  [Ins] and [Del], to [Ctrl+C] and [Ctrl+D] respectively; also
  added [F2] as brand new keyboard shortcut for Edit/Rename...


0.3.0  2022-05-21  An eighth beta release.

- Fixed document dirtiness (modified state) when making connections
  and/or disconnections on a clear and new patchbay.
- Attempt to save and possibly restore different node positions and
  aliases when former original node name is non-unique.


0.2.6  2022-04-23  A seventh beta release.

- Patchbay now treats multiple nodes and respective ports with
  the same name as one, applying the same rule.


0.2.5  2022-04-06  A sixth beta release.

- Prevent an graph refresh or update as much as possible while in
  some canvas editing business (fixes issue #29).
- Possibly fix a random segfault when rendering connection lines
  ahead of time (possibly mitigating issue #26).


0.2.4  2022-03-19  A fifth beta release.

- Whether to enable the system-tray icon option has been added to
  main menu (cf. Help > System Tray Icon).
- Allow the Patchbay toolbar to also have a vertical orientation,
  on the left and right areas of the main window.
- Added a barebones man page to install procedure.
- Added missing file code to desktop exec entry.


0.2.3  2022-03-12  A fourth beta release.

- Added start minimized (-m, --minimized) command line option.
- Main application icon is now presented in scalable format (SVG).


0.2.2  2022-03-02  A thrice beta than before.

- Application ID changed from org.freedesktop.rncbc.qpwgraph to
  org.rncbc.qpwgraph (affecting appdata/metainfo and mime/types).
- Fixed system-tray to show the main window up when minimized.


0.2.1  2022-02-26  Just a second beta.

- Patchbay feature introduced: save connections to file; restore
  connections from file and maintain when activated; disconnect
  all others when activated in exclusive mode.
- Migrated command line parsing to QCommandLineParser/Option
  (Qt >= 5.2).


0.2.0  2022-01-16  Enter first beta.

- Retry/recover from PipeWire service errors/outages automatically.
- Nodes and port renames (titles aka aliases) are now persistent.
- Corrected appdata file suffix to .metainfo.xml


0.1.3  2022-01-13  A Winter'22 Release.

- Updated and renamed appdata and desktop files.


0.1.2  2021-12-31  One third alpha.

- ALSA MIDI (Sequencer) support is now opted in by default.


0.1.1  2021-12-18  One second alpha.

- Added libpipewire (and headers) version information to about box.
- Added icons, desktop and appstream data to installation.


0.1.0  2021-12-06  One first alpha.
