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-05-30 12:43:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qpwgraph (Old) and /work/SRC/openSUSE:Factory/.qpwgraph.new.2254 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qpwgraph" Mon May 30 12:43:47 2022 rev:6 rq:979687 version:0.3.1 Changes: -------- --- /work/SRC/openSUSE:Factory/qpwgraph/qpwgraph.changes 2022-04-30 00:46:11.734985624 +0200 +++ /work/SRC/openSUSE:Factory/.qpwgraph.new.2254/qpwgraph.changes 2022-05-30 12:44:38.056445141 +0200 @@ -1,0 +2,19 @@ +Sun May 29 15:59:49 UTC 2022 - Alexei Sorokin <[email protected]> + +- Update to version 0.3.1: + * 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... + +------------------------------------------------------------------- +Wed May 25 19:28:14 UTC 2022 - Alexei Sorokin <[email protected]> + +- Update to version 0.3.0: + * Fix 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 forner original node name is non-unique. + +------------------------------------------------------------------- Old: ---- qpwgraph-v0.2.6.tar.bz2 New: ---- qpwgraph-v0.3.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qpwgraph.spec ++++++ --- /var/tmp/diff_new_pack.ZiD8Pi/_old 2022-05-30 12:44:38.624445896 +0200 +++ /var/tmp/diff_new_pack.ZiD8Pi/_new 2022-05-30 12:44:38.628445902 +0200 @@ -17,7 +17,7 @@ Name: qpwgraph -Version: 0.2.6 +Version: 0.3.1 Release: 0 Summary: PipeWire Graph Qt GUI Interface License: GPL-2.0-or-later ++++++ qpwgraph-v0.2.6.tar.bz2 -> qpwgraph-v0.3.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.6/CMakeLists.txt new/qpwgraph-v0.3.1/CMakeLists.txt --- old/qpwgraph-v0.2.6/CMakeLists.txt 2022-04-23 09:43:07.000000000 +0200 +++ new/qpwgraph-v0.3.1/CMakeLists.txt 2022-05-29 11:14:34.000000000 +0200 @@ -1,7 +1,7 @@ cmake_minimum_required (VERSION 3.15) project(qpwgraph - VERSION 0.2.6 + VERSION 0.3.1 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.6/ChangeLog new/qpwgraph-v0.3.1/ChangeLog --- old/qpwgraph-v0.2.6/ChangeLog 2022-04-23 09:43:07.000000000 +0200 +++ new/qpwgraph-v0.3.1/ChangeLog 2022-05-29 11:14:34.000000000 +0200 @@ -2,18 +2,35 @@ -------------------------------------------- +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 forner 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. (EXPERIMENTAL) + 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). (EXPERIMENTAL) + some canvas editing business (fixes issue #29). - Possibly fix a random segfault when rendering connection lines - ahead of time (possibly mitigating issue #26). (EXPERIMENTAL) + ahead of time (possibly mitigating issue #26). 0.2.4 2022-03-19 A fifth beta release. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.6/src/appdata/org.rncbc.qpwgraph.metainfo.xml new/qpwgraph-v0.3.1/src/appdata/org.rncbc.qpwgraph.metainfo.xml --- old/qpwgraph-v0.2.6/src/appdata/org.rncbc.qpwgraph.metainfo.xml 2022-04-23 09:43:07.000000000 +0200 +++ new/qpwgraph-v0.3.1/src/appdata/org.rncbc.qpwgraph.metainfo.xml 2022-05-29 11:14:34.000000000 +0200 @@ -37,7 +37,7 @@ <developer_name>rncbc aka. Rui Nuno Capela</developer_name> <update_contact>[email protected]</update_contact> <releases> - <release version="0.2.6" date="2022-04-23" urgency="low" /> + <release version="0.3.1" date="2022-05-29" urgency="low" /> </releases> <content_rating type="oars-1.0"/> </component> Binary files old/qpwgraph-v0.2.6/src/images/qpwgraph.png and new/qpwgraph-v0.3.1/src/images/qpwgraph.png differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.6/src/images/qpwgraph.svg new/qpwgraph-v0.3.1/src/images/qpwgraph.svg --- old/qpwgraph-v0.2.6/src/images/qpwgraph.svg 2022-04-23 09:43:07.000000000 +0200 +++ new/qpwgraph-v0.3.1/src/images/qpwgraph.svg 2022-05-29 11:14:34.000000000 +0200 @@ -26,11 +26,11 @@ inkscape:collect="always" id="LinearGradient1"> <stop - style="stop-color:#000000;stop-opacity:1;" + style="stop-color:#000000;stop-opacity:0.8;" offset="0" id="stop1145" /> <stop - style="stop-color:#000000;stop-opacity:0;" + style="stop-color:#000000;stop-opacity:0.2;" offset="1" id="stop1147" /> </linearGradient> @@ -259,7 +259,7 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="2.453125" - inkscape:cx="160" + inkscape:cx="159.79618" inkscape:cy="160" inkscape:document-units="px" inkscape:current-layer="layer1" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.6/src/qpwgraph.cpp new/qpwgraph-v0.3.1/src/qpwgraph.cpp --- old/qpwgraph-v0.2.6/src/qpwgraph.cpp 2022-04-23 09:43:07.000000000 +0200 +++ new/qpwgraph-v0.3.1/src/qpwgraph.cpp 2022-05-29 11:14:34.000000000 +0200 @@ -187,7 +187,7 @@ } -// Local server conection slot. +// Local server connection slot. void qpwgraph_application::newConnectionSlot (void) { QLocalSocket *socket = m_server->nextPendingConnection(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.6/src/qpwgraph_canvas.cpp new/qpwgraph-v0.3.1/src/qpwgraph_canvas.cpp --- old/qpwgraph-v0.2.6/src/qpwgraph_canvas.cpp 2022-04-23 09:43:07.000000000 +0200 +++ new/qpwgraph-v0.3.1/src/qpwgraph_canvas.cpp 2022-05-29 11:14:34.000000000 +0200 @@ -199,11 +199,17 @@ { qpwgraph_item *item = m_item; + if (item && item->type() == qpwgraph_connect::Type) + item = nullptr; + if (item == nullptr) { - const QList<QGraphicsItem *>& list - = m_scene->selectedItems(); - if (!list.isEmpty()) - item = static_cast<qpwgraph_item *> (list.first()); + foreach (QGraphicsItem *item2, m_scene->selectedItems()) { + if (item2->type() == qpwgraph_connect::Type) + continue; + item = static_cast<qpwgraph_item *> (item2); + if (item2->type() == qpwgraph_node::Type) + break; + } } return item; @@ -990,6 +996,9 @@ } else return; + m_selected_nodes = 0; + m_scene->clearSelection(); + m_editor->show(); m_editor->setEnabled(true); m_editor->selectAll(); @@ -1092,7 +1101,11 @@ if (m_settings == nullptr || node == nullptr) return false; - const QString& node_key = nodeKey(node); + // Assume node name-keys have been added before this... + // + const qpwgraph_node::NodeNameKey name_key(node); + const int n = m_node_keys.values(name_key).count(); + const QString& node_key = nodeKey(node, n); m_settings->beginGroup(NodeAliasesGroup); const QString& node_title @@ -1107,10 +1120,9 @@ = m_settings->value('/' + node_key).toPointF(); m_settings->endGroup(); - if (node_pos.isNull()) - return false; + if (!node_pos.isNull()) + node->setPos(node_pos); - node->setPos(node_pos); return true; } @@ -1120,7 +1132,11 @@ if (m_settings == nullptr || node == nullptr) return false; - const QString& node_key = nodeKey(node); + // Assume node name-keys are to be removed after this... + // + const qpwgraph_node::NodeNameKey name_key(node); + const int n = m_node_keys.values(name_key).count(); + const QString& node_key = nodeKey(node, n); m_settings->beginGroup(NodeAliasesGroup); if (node->nodeName() != node->nodeTitle()) { @@ -1216,21 +1232,29 @@ if (m_settings == nullptr) return false; + QList<qpwgraph_node *> nodes; + const QList<QGraphicsItem *> items(m_scene->items()); foreach (QGraphicsItem *item, items) { if (item->type() == qpwgraph_node::Type) { qpwgraph_node *node = static_cast<qpwgraph_node *> (item); - if (node) { - const QString& node_key = nodeKey(node); - m_settings->beginGroup(NodePosGroup); - m_settings->setValue('/' + node_key, node->pos()); - m_settings->endGroup(); - m_settings->beginGroup(NodeAliasesGroup); - if (node->nodeName() != node->nodeTitle()) - m_settings->setValue('/' + node_key, node->nodeTitle()); - else - m_settings->remove('/' + node_key); - m_settings->endGroup(); + if (node && !nodes.contains(node)) { + int n = 0; + const QList<qpwgraph_node *>& nodes2 + = m_node_keys.values(qpwgraph_node::NodeNameKey(node)); + foreach (qpwgraph_node *node2, nodes2) { + const QString& node2_key = nodeKey(node2, ++n); + m_settings->beginGroup(NodePosGroup); + m_settings->setValue('/' + node2_key, node2->pos()); + m_settings->endGroup(); + m_settings->beginGroup(NodeAliasesGroup); + if (node2->nodeName() != node2->nodeTitle()) + m_settings->setValue('/' + node2_key, node2->nodeTitle()); + else + m_settings->remove('/' + node2_key); + m_settings->endGroup(); + nodes.append(node2); + } } } else @@ -1270,9 +1294,13 @@ // Graph node/port key helpers. -QString qpwgraph_canvas::nodeKey ( qpwgraph_node *node ) const +QString qpwgraph_canvas::nodeKey ( qpwgraph_node *node, int n ) const { QString node_key = node->nodeName(); + if (n > 1) { + node_key += '-'; + node_key += QString::number(n - 1); + } switch (node->nodeMode()) { case qpwgraph_item::Input: @@ -1289,7 +1317,7 @@ } -QString qpwgraph_canvas::portKey ( qpwgraph_port *port ) const +QString qpwgraph_canvas::portKey ( qpwgraph_port *port, int n ) const { QString port_key; @@ -1300,6 +1328,10 @@ port_key += node->nodeName(); port_key += ':'; port_key += port->portName(); + if (n > 1) { + port_key += '-'; + port_key += QString::number(n - 1); + } switch (port->portMode()) { case qpwgraph_item::Input: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.6/src/qpwgraph_canvas.h new/qpwgraph-v0.3.1/src/qpwgraph_canvas.h --- old/qpwgraph-v0.2.6/src/qpwgraph_canvas.h 2022-04-23 09:43:07.000000000 +0200 +++ new/qpwgraph-v0.3.1/src/qpwgraph_canvas.h 2022-05-29 11:14:34.000000000 +0200 @@ -196,8 +196,8 @@ void keyPressEvent(QKeyEvent *event); // Graph node/port key helpers. - QString nodeKey(qpwgraph_node *node) const; - QString portKey(qpwgraph_port *port) const; + QString nodeKey(qpwgraph_node *node, int n = 0) const; + QString portKey(qpwgraph_port *port, int n = 0) const; // Zoom in rectangle range. void zoomFitRange(const QRectF& range_rect); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.6/src/qpwgraph_form.cpp new/qpwgraph-v0.3.1/src/qpwgraph_form.cpp --- old/qpwgraph-v0.2.6/src/qpwgraph_form.cpp 2022-04-23 09:43:07.000000000 +0200 +++ new/qpwgraph-v0.3.1/src/qpwgraph_form.cpp 2022-05-29 11:14:34.000000000 +0200 @@ -95,7 +95,9 @@ { // Setup UI struct... m_ui.setupUi(this); - +#if QT_VERSION < QT_VERSION_CHECK(6, 1, 0) + QMainWindow::setWindowIcon(QIcon(":/images/qpwgraph.png")); +#endif m_config = new qpwgraph_config("rncbc.org", "qpwgraph"); m_ui.graphCanvas->setSettings(m_config->settings()); @@ -1149,16 +1151,15 @@ -// Whether we can close current patchbay. +// Whether we can close/quit current patchbay. bool qpwgraph_form::patchbayQueryClose (void) { bool ret = true; - const QString& title = tr("Warning"); const qpwgraph_patchbay *patchbay = m_ui.graphCanvas->patchbay(); if (patchbay && patchbay->isDirty()) { showNormal(); - switch (QMessageBox::warning(this, title, + 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 | @@ -1174,10 +1175,22 @@ break; } } - else + + return ret; +} + + +bool qpwgraph_form::patchbayQueryQuit (void) +{ + if (!patchbayQueryClose()) + return false; + + bool ret = true; + const qpwgraph_patchbay *patchbay + = m_ui.graphCanvas->patchbay(); if (patchbay && patchbay->isActivated()) { showNormal(); - ret = (QMessageBox::warning(this, title, + ret = (QMessageBox::warning(this, tr("Warning"), 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); @@ -1261,7 +1274,7 @@ } else #endif - if (patchbayQueryClose()) { + if (patchbayQueryQuit()) { hide(); QMainWindow::closeEvent(event); } else { @@ -1482,7 +1495,7 @@ // Forcibly quit application. void qpwgraph_form::closeQuit (void) { - if (!patchbayQueryClose()) + if (!patchbayQueryQuit()) return; if (isVisible()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.6/src/qpwgraph_form.h new/qpwgraph-v0.3.1/src/qpwgraph_form.h --- old/qpwgraph-v0.2.6/src/qpwgraph_form.h 2022-04-23 09:43:07.000000000 +0200 +++ new/qpwgraph-v0.3.1/src/qpwgraph_form.h 2022-05-29 11:14:34.000000000 +0200 @@ -156,8 +156,9 @@ QString patchbayFileExt() const; QString patchbayFileFilter() const; - // Whether we can close current patchbay. + // Whether we can close/quit current patchbay. bool patchbayQueryClose(); + bool patchbayQueryQuit(); // Context-menu event handler. void contextMenuEvent(QContextMenuEvent *event); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.6/src/qpwgraph_form.ui new/qpwgraph-v0.3.1/src/qpwgraph_form.ui --- old/qpwgraph-v0.2.6/src/qpwgraph_form.ui 2022-04-23 09:43:07.000000000 +0200 +++ new/qpwgraph-v0.3.1/src/qpwgraph_form.ui 2022-05-29 11:14:34.000000000 +0200 @@ -246,7 +246,7 @@ <string>Connect selected ports</string> </property> <property name="shortcut"> - <string>Ins</string> + <string>Ctrl+C</string> </property> </action> <action name="graphDisconnectAction"> @@ -266,7 +266,7 @@ <string>Disconnect selected ports</string> </property> <property name="shortcut"> - <string>Del</string> + <string>Ctrl+D</string> </property> </action> <action name="patchbayNewAction"> @@ -488,7 +488,7 @@ <string>Rename Item</string> </property> <property name="shortcut"> - <string/> + <string>F2</string> </property> </action> <action name="viewMenubarAction"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.6/src/qpwgraph_patchbay.cpp new/qpwgraph-v0.3.1/src/qpwgraph_patchbay.cpp --- old/qpwgraph-v0.2.6/src/qpwgraph_patchbay.cpp 2022-04-23 09:43:07.000000000 +0200 +++ new/qpwgraph-v0.3.1/src/qpwgraph_patchbay.cpp 2022-05-29 11:14:34.000000000 +0200 @@ -364,16 +364,14 @@ port2->portName()); Items::ConstIterator iter = m_items.constFind(item); const Items::ConstIterator& iter_end = m_items.constEnd(); - if (iter == iter_end && connect) { + if (iter == iter_end && connect) m_items.insert(item, new Item(item)); - ++m_dirty; - } else if (iter != iter_end && !connect) { delete iter.value(); m_items.erase(iter); - ++m_dirty; } + ++m_dirty; } }
