Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qpwgraph for openSUSE:Factory 
checked in at 2022-03-19 22:20:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qpwgraph (Old)
 and      /work/SRC/openSUSE:Factory/.qpwgraph.new.25692 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qpwgraph"

Sat Mar 19 22:20:52 2022 rev:3 rq:963072 version:0.2.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/qpwgraph/qpwgraph.changes        2022-03-13 
20:25:58.847712770 +0100
+++ /work/SRC/openSUSE:Factory/.qpwgraph.new.25692/qpwgraph.changes     
2022-03-19 22:23:03.388962038 +0100
@@ -1,0 +2,11 @@
+Sat Mar 19 13:12:19 UTC 2022 - Alexei Sorokin <sor.ale...@meowr.ru>
+
+- Update to version 0.2.4:
+  * 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.
+  * Add a barebones man page to the install procedure.
+  * Add amissing file code to desktop exec entry.
+
+-------------------------------------------------------------------

Old:
----
  qpwgraph-v0.2.3.tar.bz2

New:
----
  qpwgraph-v0.2.4.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qpwgraph.spec ++++++
--- /var/tmp/diff_new_pack.9kFdBc/_old  2022-03-19 22:23:03.860962636 +0100
+++ /var/tmp/diff_new_pack.9kFdBc/_new  2022-03-19 22:23:03.864962641 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           qpwgraph
-Version:        0.2.3
+Version:        0.2.4
 Release:        0
 Summary:        PipeWire Graph Qt GUI Interface
 License:        GPL-2.0-or-later
@@ -61,6 +61,7 @@
 %{_datadir}/icons/hicolor/*/apps/org.rncbc.%{name}.*
 %{_datadir}/icons/hicolor/*/mimetypes/org.rncbc.%{name}*.*
 %{_datadir}/metainfo/org.rncbc.%{name}.metainfo.xml
+%{_mandir}/man1/%{name}.1%{?ext_man}
 %{_datadir}/mime/packages/org.rncbc.%{name}.xml
 
 %changelog

++++++ qpwgraph-v0.2.3.tar.bz2 -> qpwgraph-v0.2.4.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qpwgraph-v0.2.3/CMakeLists.txt 
new/qpwgraph-v0.2.4/CMakeLists.txt
--- old/qpwgraph-v0.2.3/CMakeLists.txt  2022-03-12 10:45:23.000000000 +0100
+++ new/qpwgraph-v0.2.4/CMakeLists.txt  2022-03-19 12:48:43.000000000 +0100
@@ -1,7 +1,7 @@
 cmake_minimum_required (VERSION 3.15)
 
 project(qpwgraph
-  VERSION 0.2.3
+  VERSION 0.2.4
   DESCRIPTION "A PipeWire Graph Qt GUI Interface"
   HOMEPAGE_URL "https://gitlab.freedesktop.org/rncbc/qpwgraph";
   LANGUAGES C CXX)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qpwgraph-v0.2.3/ChangeLog 
new/qpwgraph-v0.2.4/ChangeLog
--- old/qpwgraph-v0.2.3/ChangeLog       2022-03-12 10:45:23.000000000 +0100
+++ new/qpwgraph-v0.2.4/ChangeLog       2022-03-19 12:48:43.000000000 +0100
@@ -2,6 +2,16 @@
 --------------------------------------------
 
 
+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.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qpwgraph-v0.2.3/README.md 
new/qpwgraph-v0.2.4/README.md
--- old/qpwgraph-v0.2.3/README.md       2022-03-12 10:45:23.000000000 +0100
+++ new/qpwgraph-v0.2.4/README.md       2022-03-19 12:48:43.000000000 +0100
@@ -1,5 +1,7 @@
 # qpwgraph
 
+![Screenshot](src/images/qpwgraph_screenshot-1.png "Screenshot")
+
 ## A PipeWire Graph Qt GUI Interface
 
   **qpwgraph** is a graph manager dedicated to 
[PipeWire](https://pipewire.org),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qpwgraph-v0.2.3/src/CMakeLists.txt 
new/qpwgraph-v0.2.4/src/CMakeLists.txt
--- old/qpwgraph-v0.2.3/src/CMakeLists.txt      2022-03-12 10:45:23.000000000 
+0100
+++ new/qpwgraph-v0.2.4/src/CMakeLists.txt      2022-03-19 12:48:43.000000000 
+0100
@@ -112,3 +112,7 @@
   DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/32x32/mimetypes)
 install (FILES 
mimetypes/org.rncbc.${PROJECT_NAME}.application-x-${PROJECT_NAME}-patchbay.svg
   DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/mimetypes)
+
+install (FILES man1/qpwgraph.1
+  DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qpwgraph-v0.2.3/src/appdata/org.rncbc.qpwgraph.desktop 
new/qpwgraph-v0.2.4/src/appdata/org.rncbc.qpwgraph.desktop
--- old/qpwgraph-v0.2.3/src/appdata/org.rncbc.qpwgraph.desktop  2022-03-12 
10:45:23.000000000 +0100
+++ new/qpwgraph-v0.2.4/src/appdata/org.rncbc.qpwgraph.desktop  2022-03-19 
12:48:43.000000000 +0100
@@ -3,7 +3,7 @@
 Version=1.0
 GenericName=PipeWire Graph/Patchbay
 Comment=qpwgraph is a PipeWire graph Qt GUI interface
-Exec=qpwgraph
+Exec=qpwgraph %f
 Icon=org.rncbc.qpwgraph
 Categories=AudioVideo;Audio;Video;Midi;X-Alsa;X-PipeWire;Qt;
 MimeType=application/x-qpwgraph-patchbay;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qpwgraph-v0.2.3/src/appdata/org.rncbc.qpwgraph.metainfo.xml 
new/qpwgraph-v0.2.4/src/appdata/org.rncbc.qpwgraph.metainfo.xml
--- old/qpwgraph-v0.2.3/src/appdata/org.rncbc.qpwgraph.metainfo.xml     
2022-03-12 10:45:23.000000000 +0100
+++ new/qpwgraph-v0.2.4/src/appdata/org.rncbc.qpwgraph.metainfo.xml     
2022-03-19 12:48:43.000000000 +0100
@@ -17,6 +17,10 @@
  </provides>
  <screenshots>
   <screenshot type="default">
+   
<image>https://gitlab.freedesktop.org/rncbc/qpwgraph/-/raw/main/src/images/qpwgraph_screenshot-1.png</image>
+   <caption>The main screenshot showing the application in action</caption>
+  </screenshot>
+  <screenshot>
    
<image>https://gitlab.freedesktop.org/rncbc/qpwgraph/-/raw/main/src/images/qpwgraph.svg</image>
    <caption>The official system tray icon showing the application in 
action</caption>
   </screenshot>
@@ -33,7 +37,7 @@
  <developer_name>rncbc aka. Rui Nuno Capela</developer_name>
  <update_contact>rn...@rncbc.org</update_contact>
  <releases>
-  <release version="0.2.3" date="2022-03-12" urgency="low" />
+  <release version="0.2.4" date="2022-03-19" urgency="low" />
  </releases>
  <content_rating type="oars-1.0"/>
 </component>
Binary files old/qpwgraph-v0.2.3/src/images/qpwgraph.png and 
new/qpwgraph-v0.2.4/src/images/qpwgraph.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qpwgraph-v0.2.3/src/images/qpwgraph.svg 
new/qpwgraph-v0.2.4/src/images/qpwgraph.svg
--- old/qpwgraph-v0.2.3/src/images/qpwgraph.svg 2022-03-12 10:45:23.000000000 
+0100
+++ new/qpwgraph-v0.2.4/src/images/qpwgraph.svg 2022-03-19 12:48:43.000000000 
+0100
@@ -2,16 +2,16 @@
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
 
 <svg
-   width="32"
-   height="32"
-   viewBox="0 0 32 32"
+   width="320"
+   height="320"
+   viewBox="0 0 320 320"
    version="1.1"
    id="svg5094"
-   inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
+   inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
    sodipodi:docname="qpwgraph.svg"
    inkscape:export-filename="qpwgraph.png"
-   inkscape:export-xdpi="96"
-   inkscape:export-ydpi="96"
+   inkscape:export-xdpi="9.6000004"
+   inkscape:export-ydpi="9.6000004"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
    xmlns:xlink="http://www.w3.org/1999/xlink";
@@ -258,11 +258,11 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="24.53125"
-     inkscape:cx="14.30828"
-     inkscape:cy="16"
+     inkscape:zoom="2.453125"
+     inkscape:cx="160"
+     inkscape:cy="160"
      inkscape:document-units="px"
-     inkscape:current-layer="g1059"
+     inkscape:current-layer="layer1"
      showgrid="true"
      units="px"
      inkscape:pagecheckerboard="true"
@@ -275,8 +275,8 @@
        type="xygrid"
        id="grid5641"
        empspacing="4"
-       spacingx="0.5"
-       spacingy="0.5" />
+       spacingx="5"
+       spacingy="5" />
   </sodipodi:namedview>
   <metadata
      id="metadata5091">
@@ -298,7 +298,7 @@
        id="g1584"
        inkscape:label="Group 1.2S"
        style="display:inline"
-       transform="translate(0.2,0.2)">
+       transform="matrix(10,0,0,10,0.2,-2596.6)">
       <path
          
style="display:inline;fill:none;fill-opacity:0.2;fill-rule:evenodd;stroke:url(#linearGradient1151);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.2;paint-order:stroke
 fill markers"
          d="M 5.5,5 C 5.5,5 4,5 4,6.5 4,8 5.5,8 5.5,8 h 4 C 14,14 13,14.5 
13,14.5 H 5.5 c 0,0 -1.5,0 -1.5,1.5 0,2 1.5,1.5 1.5,1.5 H 13 c 0,0 1,0.5 
-3.5,6.5 h -4 C 5.5,24 4,24 4,25.5 4,27 5.5,27 5.5,27 h 5 C 20,16 12,16 21.5,27 
h 5 c 0,0 1.5,0 1.5,-1.5 C 28,24 26.5,24 26.5,24 h -4 C 18,18 19,17.5 19,17.5 h 
7.5 c 0,0 1.5,0 1.5,-1.5 0,-1.5 -1.5,-1.5 -1.5,-1.5 H 19 c 0,0 -1,-0.5 3.5,-6.5 
h 4 C 26.5,8 28,8 28,6.5 28,5 26.5,5 26.5,5 h -5 C 12,16 20,16 10.5,5 Z"
@@ -312,7 +312,7 @@
        id="g1484"
        inkscape:label="Group 1.1S"
        style="display:inline"
-       transform="translate(0.2,0.2)">
+       transform="matrix(10,0,0,10,0.2,-2596.6)">
       <path
          
style="display:inline;fill:none;fill-opacity:0.2;fill-rule:evenodd;stroke:url(#linearGradient1509);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.2;paint-order:stroke
 fill markers"
          d="M 5.5,5 C 5.5,5 4,5 4,6.5 4,8 5.5,8 5.5,8 h 4 C 14,14 13,14.5 
13,14.5 H 5.5 c 0,0 -1.5,0 -1.5,1.5 0,2 1.5,1.5 1.5,1.5 H 13 c 0,0 1,0.5 
-3.5,6.5 h -4 C 5.5,24 4,24 4,25.5 4,27 5.5,27 5.5,27 h 5 C 20,16 12,16 21.5,27 
h 5 c 0,0 1.5,0 1.5,-1.5 C 28,24 26.5,24 26.5,24 h -4 C 18,18 19,17.5 19,17.5 h 
7.5 c 0,0 1.5,0 1.5,-1.5 0,-1.5 -1.5,-1.5 -1.5,-1.5 H 19 c 0,0 -1,-0.5 3.5,-6.5 
h 4 C 26.5,8 28,8 28,6.5 28,5 26.5,5 26.5,5 h -5 C 12,16 20,16 10.5,5 Z"
@@ -325,7 +325,8 @@
     <g
        id="g1865"
        inkscape:label="Group 1"
-       style="display:inline">
+       style="display:inline"
+       transform="matrix(10,0,0,10,0,-2596.8)">
       <path
          
style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.2;paint-order:stroke
 fill markers"
          d="M 5.5,5 C 5.5,5 4,5 4,6.5 4,8 5.5,8 5.5,8 h 4 C 14,14 13,14.5 
13,14.5 H 5.5 c 0,0 -1.5,0 -1.5,1.5 0,2 1.5,1.5 1.5,1.5 H 13 c 0,0 1,0.5 
-3.5,6.5 h -4 C 5.5,24 4,24 4,25.5 4,27 5.5,27 5.5,27 h 5 C 20,16 12,16 21.5,27 
h 5 c 0,0 1.5,0 1.5,-1.5 C 28,24 26.5,24 26.5,24 h -4 C 18,18 19,17.5 19,17.5 h 
7.5 c 0,0 1.5,0 1.5,-1.5 0,-1.5 -1.5,-1.5 -1.5,-1.5 H 19 c 0,0 -1,-0.5 3.5,-6.5 
h 4 C 26.5,8 28,8 28,6.5 28,5 26.5,5 26.5,5 h -5 C 12,16 20,16 10.5,5 Z"
@@ -338,7 +339,8 @@
     <g
        id="g941"
        inkscape:label="Group 1.1B"
-       style="display:inline">
+       style="display:inline"
+       transform="matrix(10,0,0,10,0,-2596.8)">
       <path
          
style="display:inline;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2059);stroke-width:0.6;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.2;paint-order:stroke
 fill markers"
          d="M 5.5,5 C 5.5,5 4,5 4,6.5 4,8 5.5,8 5.5,8 h 4 C 14,14 13,14.5 
13,14.5 H 5.5 c 0,0 -1.5,0 -1.5,1.5 0,2 1.5,1.5 1.5,1.5 H 13 c 0,0 1,0.5 
-3.5,6.5 h -4 C 5.5,24 4,24 4,25.5 4,27 5.5,27 5.5,27 h 5 C 20,16 12,16 21.5,27 
h 5 c 0,0 1.5,0 1.5,-1.5 C 28,24 26.5,24 26.5,24 h -4 C 18,18 19,17.5 19,17.5 h 
7.5 c 0,0 1.5,0 1.5,-1.5 0,-1.5 -1.5,-1.5 -1.5,-1.5 H 19 c 0,0 -1,-0.5 3.5,-6.5 
h 4 C 26.5,8 28,8 28,6.5 28,5 26.5,5 26.5,5 h -5 C 12,16 20,16 10.5,5 Z"
@@ -351,7 +353,8 @@
     <g
        id="g1005"
        inkscape:label="Group 1.2B"
-       style="display:inline">
+       style="display:inline"
+       transform="matrix(10,0,0,10,0,-2596.8)">
       <path
          
style="display:inline;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2481);stroke-width:1;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.2;paint-order:stroke
 fill markers"
          d="M 5.5,5 C 5.5,5 4,5 4,6.5 4,8 5.5,8 5.5,8 h 4 C 14,14 13,14.5 
13,14.5 H 5.5 c 0,0 -1.5,0 -1.5,1.5 0,2 1.5,1.5 1.5,1.5 H 13 c 0,0 1,0.5 
-3.5,6.5 h -4 C 5.5,24 4,24 4,25.5 4,27 5.5,27 5.5,27 h 5 C 20,16 12,16 21.5,27 
h 5 c 0,0 1.5,0 1.5,-1.5 C 28,24 26.5,24 26.5,24 h -4 C 18,18 19,17.5 19,17.5 h 
7.5 c 0,0 1.5,0 1.5,-1.5 0,-1.5 -1.5,-1.5 -1.5,-1.5 H 19 c 0,0 -1,-0.5 3.5,-6.5 
h 4 C 26.5,8 28,8 28,6.5 28,5 26.5,5 26.5,5 h -5 C 12,16 20,16 10.5,5 Z"
@@ -364,7 +367,8 @@
     <g
        id="g1009"
        inkscape:label="Group 1.3B"
-       style="display:inline">
+       style="display:inline"
+       transform="matrix(10,0,0,10,0,-2596.8)">
       <path
          
style="display:inline;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2775);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.2;paint-order:stroke
 fill markers"
          d="M 5.5,5 C 5.5,5 4,5 4,6.5 4,8 5.5,8 5.5,8 h 4 C 14,14 13,14.5 
13,14.5 H 5.5 c 0,0 -1.5,0 -1.5,1.5 0,2 1.5,1.5 1.5,1.5 H 13 c 0,0 1,0.5 
-3.5,6.5 h -4 C 5.5,24 4,24 4,25.5 4,27 5.5,27 5.5,27 h 5 C 20,16 12,16 21.5,27 
h 5 c 0,0 1.5,0 1.5,-1.5 C 28,24 26.5,24 26.5,24 h -4 C 18,18 19,17.5 19,17.5 h 
7.5 c 0,0 1.5,0 1.5,-1.5 0,-1.5 -1.5,-1.5 -1.5,-1.5 H 19 c 0,0 -1,-0.5 3.5,-6.5 
h 4 C 26.5,8 28,8 28,6.5 28,5 26.5,5 26.5,5 h -5 C 12,16 20,16 10.5,5 Z"
@@ -377,21 +381,22 @@
     <g
        id="g1059"
        inkscape:label="Group 1.4B"
-       style="display:inline">
+       style="display:inline"
+       transform="matrix(10,0,0,10,0,-2596.8)">
       <path
          
style="display:inline;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3261);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.2;paint-order:stroke
 fill markers"
          d="M 5.5,5 C 5.5,5 4,5 4,6.5 4,8 5.5,8 5.5,8 h 4 C 14,14 13,14.5 
13,14.5 H 5.5 c 0,0 -1.5,0 -1.5,1.5 0,2 1.5,1.5 1.5,1.5 H 13 c 0,0 1,0.5 
-3.5,6.5 h -4 C 5.5,24 4,24 4,25.5 4,27 5.5,27 5.5,27 h 5 C 20,16 12,16 21.5,27 
h 5 c 0,0 1.5,0 1.5,-1.5 C 28,24 26.5,24 26.5,24 h -4 C 18,18 19,17.5 19,17.5 h 
7.5 c 0,0 1.5,0 1.5,-1.5 0,-1.5 -1.5,-1.5 -1.5,-1.5 H 19 c 0,0 -1,-0.5 3.5,-6.5 
h 4 C 26.5,8 28,8 28,6.5 28,5 26.5,5 26.5,5 h -5 C 12,16 20,16 10.5,5 Z"
-         transform="translate(0,288.53333)"
          id="path1057"
          inkscape:connector-curvature="0"
          inkscape:label="Connect 33"
-         sodipodi:nodetypes="csccccsccccsccccccccccccccscccc" />
+         sodipodi:nodetypes="csccccsccccsccccccccccccccscccc"
+         transform="translate(0,288.53333)" />
     </g>
     <g
        id="g1671"
        inkscape:label="Group 2.3S"
        style="display:inline"
-       transform="translate(0.1,0.1)">
+       transform="matrix(10,0,0,10,0.1,-2596.6999)">
       <ellipse
          
style="fill:url(#linearGradient4877);fill-opacity:1;stroke:#000000;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.2;paint-order:stroke
 fill markers"
          id="ellipse1659"
@@ -445,7 +450,7 @@
        id="g1624"
        inkscape:label="Group 2.2S"
        style="display:inline"
-       transform="translate(0.1,0.1)">
+       transform="matrix(10,0,0,10,0.1,-2596.6999)">
       <ellipse
          
style="fill:url(#linearGradient3229);fill-opacity:1;stroke:#000000;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.2;paint-order:stroke
 fill markers"
          id="ellipse1612"
@@ -498,7 +503,8 @@
     <g
        id="g1368"
        inkscape:label="Group 2.1S"
-       style="display:inline;fill:none;stroke:none">
+       style="display:inline;fill:none;stroke:none"
+       transform="matrix(10,0,0,10,0,-2596.7999)">
       <ellipse
          
style="fill:none;fill-opacity:0.2;stroke:url(#linearGradient1547);stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.195238;paint-order:stroke
 fill markers"
          id="ellipse1356"
@@ -551,7 +557,8 @@
     <g
        id="g1253"
        inkscape:label="Group 2"
-       style="display:inline">
+       style="display:inline"
+       transform="matrix(10,0,0,10,0,-2596.7999)">
       <ellipse
          
style="fill:none;stroke:#ffffff;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke
 fill markers"
          id="ellipse1241"
Binary files old/qpwgraph-v0.2.3/src/images/qpwgraph_screenshot-1.png and 
new/qpwgraph-v0.2.4/src/images/qpwgraph_screenshot-1.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qpwgraph-v0.2.3/src/man1/qpwgraph.1 
new/qpwgraph-v0.2.4/src/man1/qpwgraph.1
--- old/qpwgraph-v0.2.3/src/man1/qpwgraph.1     1970-01-01 01:00:00.000000000 
+0100
+++ new/qpwgraph-v0.2.4/src/man1/qpwgraph.1     2022-03-19 12:48:43.000000000 
+0100
@@ -0,0 +1,41 @@
+.TH QPWGRAPH "1" "March 15, 2022"
+.SH NAME
+qpwgraph \- A PipeWire Graph Qt GUI Interface
+.SH SYNOPSIS
+.B qpwgraph
+[\fIoptions\fR] [\fIpatchbay-file\fR]
+.SH DESCRIPTION
+This manual page documents briefly the
+.B qpwgraph
+command.
+.PP
+\fBqpwgraph\fP is a graph manager dedicated to PipeWire (https://pipewire.org),
+using the Qt C++ framework (https://qt.io), based and pretty much like the 
same of
+QjackCtl (https://qjackctl.sourceforge.io).
+.PP
+Source code repository: https://gitlab.freedesktop.org/rncbc/qpwgraph
+.SH OPTIONS
+.HP
+\fB\-a\fR, \fB\-\-activated\fR
+.IP
+Activated patchbay.
+.HP
+\fB\-x\fR, \fB\-\-exclusive\fR
+.IP
+Exclusive patchbay.
+.HP
+\fB\-m\fR, \fB\-\-minimized\fR
+.IP
+Start minimized.
+.HP
+\fB\-h\fR, \fB\-\-help\fR
+.IP
+Show help about command line options
+.HP
+\fB\-v\fR, \fB\-\-version\fR
+.IP
+Show version information
+.SH FILES
+Configuration settings are stored in ~/.config/rncbc.org/qpwgraph.conf
+.SH AUTHOR
+qpwgraph was written by Rui Nuno Capela.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qpwgraph-v0.2.3/src/qpwgraph_config.cpp 
new/qpwgraph-v0.2.4/src/qpwgraph_config.cpp
--- old/qpwgraph-v0.2.3/src/qpwgraph_config.cpp 2022-03-12 10:45:23.000000000 
+0100
+++ new/qpwgraph-v0.2.4/src/qpwgraph_config.cpp 2022-03-19 12:48:43.000000000 
+0100
@@ -19,11 +19,14 @@
 
 *****************************************************************************/
 
+#include "config.h"
+
 #include "qpwgraph_config.h"
 
 #include <QSettings>
 
 #include <QMainWindow>
+#include <QFileInfo>
 
 
 // Local constants.
@@ -47,6 +50,11 @@
 static const char *PatchbayRecentFilesKey = "/RecentFiles";
 static const char *PatchbayToolbarKey = "/Toolbar";
 
+#ifdef CONFIG_SYSTEM_TRAY
+static const char *SystemTrayGroup  = "/SystemTray";
+static const char *SystemTrayEnabledKey = "/Enabled";
+#endif
+
 
 //----------------------------------------------------------------------------
 // qpwgraph_config --  Canvas state memento.
@@ -59,7 +67,8 @@
                m_sorttype(0), m_sortorder(0),
                m_patchbay_toolbar(false),
                m_patchbay_activated(false),
-               m_patchbay_exclusive(false)
+               m_patchbay_exclusive(false),
+               m_systray_enabled(false)
 {
 }
 
@@ -249,12 +258,29 @@
 }
 
 
+void qpwgraph_config::setSystemTrayEnabled ( bool enabled )
+{
+       m_systray_enabled = enabled;
+}
+
+bool qpwgraph_config::isSystemTrayEnabled (void) const
+{
+       return m_systray_enabled;
+}
+
+
 // Graph main-widget state methods.
 bool qpwgraph_config::restoreState ( QMainWindow *widget )
 {
        if (m_settings == nullptr || widget == nullptr)
                return false;
 
+#ifdef CONFIG_SYSTEM_TRAY
+       m_settings->beginGroup(SystemTrayGroup);
+       m_systray_enabled = m_settings->value(SystemTrayEnabledKey, 
true).toBool();
+       m_settings->endGroup();
+#endif
+
        m_settings->beginGroup(PatchbayGroup);
        m_patchbay_toolbar = m_settings->value(PatchbayToolbarKey).toBool();
        m_patchbay_dir = m_settings->value(PatchbayDirKey).toString();
@@ -264,6 +290,12 @@
        m_patchbay_recentfiles = 
m_settings->value(PatchbayRecentFilesKey).toStringList();
        m_settings->endGroup();
 
+       QMutableStringListIterator iter(m_patchbay_recentfiles);
+       while (iter.hasNext()) {
+               if (!QFileInfo(iter.next()).exists())
+                       iter.remove();
+       }
+
        m_settings->beginGroup(ViewGroup);
        m_menubar = m_settings->value(ViewMenubarKey, true).toBool();
        m_toolbar = m_settings->value(ViewToolbarKey, true).toBool();
@@ -303,6 +335,12 @@
        if (m_settings == nullptr || widget == nullptr)
                return false;
 
+#ifdef CONFIG_SYSTEM_TRAY
+       m_settings->beginGroup(SystemTrayGroup);
+       m_settings->setValue(SystemTrayEnabledKey, m_systray_enabled);
+       m_settings->endGroup();
+#endif
+
        m_settings->beginGroup(PatchbayGroup);
        m_settings->setValue(PatchbayToolbarKey, m_patchbay_toolbar);
        m_settings->setValue(PatchbayDirKey, m_patchbay_dir);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qpwgraph-v0.2.3/src/qpwgraph_config.h 
new/qpwgraph-v0.2.4/src/qpwgraph_config.h
--- old/qpwgraph-v0.2.3/src/qpwgraph_config.h   2022-03-12 10:45:23.000000000 
+0100
+++ new/qpwgraph-v0.2.4/src/qpwgraph_config.h   2022-03-19 12:48:43.000000000 
+0100
@@ -89,6 +89,9 @@
        void patchbayRecentFiles(const QString& path);
        const QStringList& patchbayRecentFiles() const;
 
+       void setSystemTrayEnabled(bool enabled);
+       bool isSystemTrayEnabled() const;
+
        // Graph main-widget state methods.
        bool restoreState(QMainWindow *widget);
        bool saveState(QMainWindow *widget) const;
@@ -113,6 +116,8 @@
        bool        m_patchbay_activated;
        bool        m_patchbay_exclusive;
        QStringList m_patchbay_recentfiles;
+
+       bool        m_systray_enabled;
 };
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qpwgraph-v0.2.3/src/qpwgraph_form.cpp 
new/qpwgraph-v0.2.4/src/qpwgraph_form.cpp
--- old/qpwgraph-v0.2.3/src/qpwgraph_form.cpp   2022-03-12 10:45:23.000000000 
+0100
+++ new/qpwgraph-v0.2.4/src/qpwgraph_form.cpp   2022-03-19 12:48:43.000000000 
+0100
@@ -116,7 +116,11 @@
        m_patchbay_names->setEditable(false);
        m_patchbay_names->setMinimumWidth(120);
        m_patchbay_names->setMaximumWidth(240);
-       m_ui.patchbayToolbar->insertWidget(m_ui.patchbaySaveAction, 
m_patchbay_names);
+       m_patchbay_names_tool = m_ui.patchbayToolbar->insertWidget(
+               m_ui.patchbaySaveAction, m_patchbay_names);
+
+       m_systray = nullptr;
+       m_systray_closed = false;
 
        QUndoStack *commands = m_ui.graphCanvas->commands();
 
@@ -323,8 +327,10 @@
        
m_ui.viewColorsPipewireOtherAction->setData(qpwgraph_pipewire::otherPortType());
 #ifdef CONFIG_ALSA_MIDI
        
m_ui.viewColorsAlsaMidiAction->setData(qpwgraph_alsamidi::midiPortType());
-#else
-       m_ui.viewColorsMenu->removeAction(m_ui.viewColorsAlsaMidiAction);
+       m_ui.viewColorsMenu->insertAction(
+               m_ui.viewColorsResetAction, m_ui.viewColorsAlsaMidiAction);
+       m_ui.viewColorsMenu->insertSeparator(
+               m_ui.viewColorsResetAction);
 #endif
 
        QObject::connect(m_ui.viewColorsPipewireAudioAction,
@@ -383,6 +389,16 @@
                SIGNAL(triggered(bool)),
                SLOT(viewSortOrderAction()));
 
+#ifdef CONFIG_SYSTEM_TRAY
+       m_ui.helpMenu->insertAction(
+               m_ui.helpAboutAction, m_ui.helpSystemTrayAction);
+       m_ui.helpMenu->insertSeparator(
+               m_ui.helpAboutAction);
+       QObject::connect(m_ui.helpSystemTrayAction,
+               SIGNAL(triggered(bool)),
+               SLOT(helpSystemTray(bool)));
+#endif
+
        QObject::connect(m_ui.helpAboutAction,
                SIGNAL(triggered(bool)),
                SLOT(helpAbout()));
@@ -397,13 +413,6 @@
                SIGNAL(orientationChanged(Qt::Orientation)),
                SLOT(orientationChanged(Qt::Orientation)));
 
-#ifdef CONFIG_SYSTEM_TRAY
-       m_systray = new qpwgraph_systray(this);
-       m_systray->show();
-#else
-       m_systray = nullptr;
-#endif
-
        restoreState();
 
        updatePatchbayMenu();
@@ -438,7 +447,8 @@
 qpwgraph_form::~qpwgraph_form (void)
 {
 #ifdef CONFIG_SYSTEM_TRAY
-       delete m_systray;
+       if (m_systray)
+               delete m_systray;
 #endif
 
 //     delete m_patchbay_names;
@@ -727,6 +737,27 @@
 }
 
 
+void qpwgraph_form::helpSystemTray ( bool on )
+{
+#ifdef CONFIG_SYSTEM_TRAY
+       if (on && m_systray == nullptr) {
+               m_systray = new qpwgraph_systray(this);
+               m_systray->show();
+       }
+       else
+       if (!on && m_systray) {
+               m_systray->hide();
+               delete m_systray;
+               m_systray = nullptr;
+       }
+#else
+       (void) on;
+#endif
+
+       m_systray_closed = false;
+}
+
+
 void qpwgraph_form::helpAbout (void)
 {
        static const QString title = PROJECT_NAME;
@@ -1017,6 +1048,9 @@
        if (toolbar == nullptr)
                return;
 
+       if (toolbar == m_ui.patchbayToolbar && m_patchbay_names_tool)
+               m_patchbay_names_tool->setVisible(orientation == 
Qt::Horizontal);
+
        if (m_config->isTextBesideIcons() && orientation == Qt::Horizontal) {
                toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
        } else {
@@ -1113,27 +1147,35 @@
 // Whether we can close current patchbay.
 bool qpwgraph_form::patchbayQueryClose (void)
 {
+       bool ret = true;
+       const QString& title = tr("Warning");
        const qpwgraph_patchbay *patchbay
                = m_ui.graphCanvas->patchbay();
-       bool ret = (patchbay && patchbay->isDirty());
-       if (!ret)
-               return true;
-
-       switch (QMessageBox::warning(this,
-               tr("Warning"),
-               tr("The current patchbay has been changed:\n\n\"%1\"\n\n"
-               "Do you want to save the changes?").arg(patchbayFileName()),
-               QMessageBox::Save |
-               QMessageBox::Discard |
-               QMessageBox::Cancel)) {
-       case QMessageBox::Save:
-               patchbaySave();
+       if (patchbay && patchbay->isDirty()) {
+               showNormal();
+               switch (QMessageBox::warning(this, title,
+                       tr("The current patchbay has been 
changed:\n\n\"%1\"\n\n"
+                       "Do you want to save the 
changes?").arg(patchbayFileName()),
+                       QMessageBox::Save |
+                       QMessageBox::Discard |
+                       QMessageBox::Cancel)) {
+               case QMessageBox::Save:
+                       patchbaySave();
                // Fall thru....
-       case QMessageBox::Discard:
-               break;
-       default: // Cancel.
-               ret = false;
-               break;
+               case QMessageBox::Discard:
+                       break;
+               default: // Cancel.
+                       ret = false;
+                       break;
+               }
+       }
+       else
+       if (patchbay && patchbay->isActivated()) {
+               showNormal();
+               ret = (QMessageBox::warning(this, title,
+                       tr("A patchbay is currently activated:\n\n\"%1\"\n\n"
+                       "Are you sure you want to 
quit?").arg(patchbayFileName()),
+                       QMessageBox::Ok | QMessageBox::Cancel) == 
QMessageBox::Ok);
        }
 
        return ret;
@@ -1175,7 +1217,8 @@
 {
        QMainWindow::showEvent(event);
 #ifdef CONFIG_SYSTEM_TRAY
-       m_systray->updateContextMenu();
+       if (m_systray)
+               m_systray->updateContextMenu();
 #endif
 }
 
@@ -1184,7 +1227,8 @@
 {
        QMainWindow::hideEvent(event);
 #ifdef CONFIG_SYSTEM_TRAY
-       m_systray->updateContextMenu();
+       if (m_systray)
+               m_systray->updateContextMenu();
 #endif
        saveState();
 }
@@ -1193,17 +1237,31 @@
 void qpwgraph_form::closeEvent ( QCloseEvent *event )
 {
 #ifdef CONFIG_SYSTEM_TRAY
-       hide();
-       m_systray->updateContextMenu();
-       event->ignore();
-#else
+       if (m_systray) {
+               if (!m_systray_closed) {
+                       const QString& title
+                               = tr("Information");
+                       const QString& text
+                               = tr("The program will keep running in the 
system tray.\n\n"
+                                       "To terminate the program, please 
choose \"Quit\"\n"
+                                       "in the main menu or the context menu 
of the system tray icon.");
+                       if (QSystemTrayIcon::supportsMessages())
+                               m_systray->showMessage(title, text, 
QSystemTrayIcon::Information);
+                       else
+                               QMessageBox::information(this, title, text);
+               }
+               m_systray_closed = true;
+               hide();
+               event->ignore();
+       }
+       else
+#endif
        if (patchbayQueryClose()) {
                hide();
                QMainWindow::closeEvent(event);
        } else {
                event->ignore();
        }
-#endif
 }
 
 
@@ -1378,6 +1436,13 @@
        // Restore last open patchbay directory and file-path...
        m_patchbay_dir = m_config->patchbayDir();
        m_patchbay_path = m_config->patchbayPath();
+
+#ifdef CONFIG_SYSTEM_TRAY
+       const bool is_systray_enabled
+               = m_config->isSystemTrayEnabled();
+       m_ui.helpSystemTrayAction->setChecked(is_systray_enabled);
+       helpSystemTray(is_systray_enabled);
+#endif
 }
 
 
@@ -1401,6 +1466,10 @@
        m_config->setPatchbayPath(m_patchbay_path);
        m_config->setPatchbayDir(m_patchbay_dir);
 
+#ifdef CONFIG_SYSTEM_TRAY
+       m_config->setSystemTrayEnabled(m_ui.helpSystemTrayAction->isChecked());
+#endif
+
        m_config->saveState(this);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qpwgraph-v0.2.3/src/qpwgraph_form.h 
new/qpwgraph-v0.2.4/src/qpwgraph_form.h
--- old/qpwgraph-v0.2.3/src/qpwgraph_form.h     2022-03-12 10:45:23.000000000 
+0100
+++ new/qpwgraph-v0.2.4/src/qpwgraph_form.h     2022-03-19 12:48:43.000000000 
+0100
@@ -124,6 +124,8 @@
        void viewColorsAction();
        void viewColorsReset();
 
+       void helpSystemTray(bool on);
+
        void helpAbout();
        void helpAboutQt();
 
@@ -209,8 +211,10 @@
        int     m_patchbay_untitled;
 
        QComboBox *m_patchbay_names;
+       QAction   *m_patchbay_names_tool;
 
        qpwgraph_systray *m_systray;
+       bool m_systray_closed;
 };
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qpwgraph-v0.2.3/src/qpwgraph_form.ui 
new/qpwgraph-v0.2.4/src/qpwgraph_form.ui
--- old/qpwgraph-v0.2.3/src/qpwgraph_form.ui    2022-03-12 10:45:23.000000000 
+0100
+++ new/qpwgraph-v0.2.4/src/qpwgraph_form.ui    2022-03-19 12:48:43.000000000 
+0100
@@ -130,8 +130,6 @@
      <addaction name="viewColorsPipewireVideoAction"/>
      <addaction name="viewColorsPipewireOtherAction"/>
      <addaction name="separator"/>
-     <addaction name="viewColorsAlsaMidiAction"/>
-     <addaction name="separator"/>
      <addaction name="viewColorsResetAction"/>
     </widget>
     <widget class="QMenu" name="viewSortMenu">
@@ -207,7 +205,7 @@
   </widget>
   <widget class="QToolBar" name="patchbayToolbar">
    <property name="allowedAreas">
-    <set>Qt::TopToolBarArea|Qt::BottomToolBarArea</set>
+    <set>Qt::AllToolBarAreas</set>
    </property>
    <property name="orientation">
     <enum>Qt::Horizontal</enum>
@@ -709,7 +707,7 @@
     <iconset resource="qpwgraph.qrc">:/images/viewZoomRange.png</iconset>
    </property>
    <property name="text">
-    <string>&amp;Zoom Range</string>
+    <string>Zoom Rang&amp;e</string>
    </property>
    <property name="iconText">
     <string>Zoom Range</string>
@@ -794,7 +792,7 @@
   </action>
   <action name="viewColorsAlsaMidiAction">
    <property name="text">
-    <string>&amp;ALSA MIDI...</string>
+    <string>ALSA M&amp;IDI...</string>
    </property>
    <property name="iconText">
     <string>ALSA MIDI</string>
@@ -909,6 +907,26 @@
    </property>
    <property name="shortcut">
     <string/>
+   </property>
+  </action>
+  <action name="helpSystemTrayAction">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="text">
+    <string>&amp;Enable System Tray Icon</string>
+   </property>
+   <property name="iconText">
+    <string>System tray</string>
+   </property>
+   <property name="toolTip">
+    <string>System tray icon</string>
+   </property>
+   <property name="statusTip">
+    <string>Enable system tray icon</string>
+   </property>
+   <property name="shortcut">
+    <string/>
    </property>
   </action>
   <action name="helpAboutAction">

Reply via email to