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 + + ## 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>&Zoom Range</string> + <string>Zoom Rang&e</string> </property> <property name="iconText"> <string>Zoom Range</string> @@ -794,7 +792,7 @@ </action> <action name="viewColorsAlsaMidiAction"> <property name="text"> - <string>&ALSA MIDI...</string> + <string>ALSA M&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>&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">