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-04-30 00:45:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qpwgraph (Old) and /work/SRC/openSUSE:Factory/.qpwgraph.new.1538 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qpwgraph" Sat Apr 30 00:45:27 2022 rev:5 rq:973919 version:0.2.6 Changes: -------- --- /work/SRC/openSUSE:Factory/qpwgraph/qpwgraph.changes 2022-04-14 17:25:58.751299415 +0200 +++ /work/SRC/openSUSE:Factory/.qpwgraph.new.1538/qpwgraph.changes 2022-04-30 00:46:11.734985624 +0200 @@ -1,0 +2,7 @@ +Thu Apr 28 23:13:59 UTC 2022 - Alexei Sorokin <sor.ale...@meowr.ru> + +- Update to version 0.2.6: + * Patchbay now treats multiple nodes and respective ports with + the same name as one, applying the same rule. + +------------------------------------------------------------------- Old: ---- qpwgraph-v0.2.5.tar.bz2 New: ---- qpwgraph-v0.2.6.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qpwgraph.spec ++++++ --- /var/tmp/diff_new_pack.bCwRdt/_old 2022-04-30 00:46:12.242986064 +0200 +++ /var/tmp/diff_new_pack.bCwRdt/_new 2022-04-30 00:46:12.246986068 +0200 @@ -17,7 +17,7 @@ Name: qpwgraph -Version: 0.2.5 +Version: 0.2.6 Release: 0 Summary: PipeWire Graph Qt GUI Interface License: GPL-2.0-or-later @@ -33,6 +33,7 @@ BuildRequires: cmake(Qt6Gui) BuildRequires: cmake(Qt6Linguist) BuildRequires: cmake(Qt6Network) +BuildRequires: cmake(Qt6Svg) BuildRequires: cmake(Qt6Widgets) BuildRequires: cmake(Qt6Xml) BuildRequires: pkgconfig(alsa) ++++++ qpwgraph-v0.2.5.tar.bz2 -> qpwgraph-v0.2.6.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.5/.gitlab-ci.yml new/qpwgraph-v0.2.6/.gitlab-ci.yml --- old/qpwgraph-v0.2.5/.gitlab-ci.yml 2022-04-06 15:53:16.000000000 +0200 +++ new/qpwgraph-v0.2.6/.gitlab-ci.yml 2022-04-23 09:43:07.000000000 +0200 @@ -37,7 +37,7 @@ .fedora: variables: # Update this tag when you want to trigger a rebuild - FDO_DISTRIBUTION_TAG: '2021-11-21.0' + FDO_DISTRIBUTION_TAG: '2022-04-12.0' FDO_DISTRIBUTION_VERSION: '35' FDO_DISTRIBUTION_PACKAGES: >- gcc @@ -47,13 +47,14 @@ cmake qt5-qtbase-devel qt5-qttools-devel + qt5-qtsvg-devel alsa-lib-devel pipewire-devel .ubuntu: variables: # Update this tag when you want to trigger a rebuild - FDO_DISTRIBUTION_TAG: '2021-11-21.0' + FDO_DISTRIBUTION_TAG: '2022-04-12.0' FDO_DISTRIBUTION_VERSION: '21.10' FDO_DISTRIBUTION_PACKAGES: >- debhelper-compat @@ -64,6 +65,7 @@ cmake qtbase5-dev qttools5-dev + libqt5svg5-dev libasound2-dev libpipewire-0.3-dev diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.5/CMakeLists.txt new/qpwgraph-v0.2.6/CMakeLists.txt --- old/qpwgraph-v0.2.5/CMakeLists.txt 2022-04-06 15:53:16.000000000 +0200 +++ new/qpwgraph-v0.2.6/CMakeLists.txt 2022-04-23 09:43:07.000000000 +0200 @@ -1,7 +1,7 @@ cmake_minimum_required (VERSION 3.15) project(qpwgraph - VERSION 0.2.5 + VERSION 0.2.6 DESCRIPTION "A PipeWire Graph Qt GUI Interface" HOMEPAGE_URL "https://gitlab.freedesktop.org/rncbc/qpwgraph" LANGUAGES C CXX) @@ -70,7 +70,7 @@ find_package (QT QUIET NAMES Qt5) endif () -find_package (Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Widgets Xml) +find_package (Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Widgets Xml Svg) if (CONFIG_SYSTEM_TRAY) find_package (Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Network) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.5/ChangeLog new/qpwgraph-v0.2.6/ChangeLog --- old/qpwgraph-v0.2.5/ChangeLog 2022-04-06 15:53:16.000000000 +0200 +++ new/qpwgraph-v0.2.6/ChangeLog 2022-04-23 09:43:07.000000000 +0200 @@ -2,6 +2,12 @@ -------------------------------------------- +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) + + 0.2.5 2022-04-06 A sixth beta release. - Prevent an graph refresh or update as much as possible while in diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.5/src/CMakeLists.txt new/qpwgraph-v0.2.6/src/CMakeLists.txt --- old/qpwgraph-v0.2.5/src/CMakeLists.txt 2022-04-06 15:53:16.000000000 +0200 +++ new/qpwgraph-v0.2.6/src/CMakeLists.txt 2022-04-23 09:43:07.000000000 +0200 @@ -89,6 +89,7 @@ target_link_libraries (${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) target_link_libraries (${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Xml) +target_link_libraries (${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Svg) if (CONFIG_SYSTEM_TRAY) target_link_libraries (${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Network) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.5/src/appdata/org.rncbc.qpwgraph.metainfo.xml new/qpwgraph-v0.2.6/src/appdata/org.rncbc.qpwgraph.metainfo.xml --- old/qpwgraph-v0.2.5/src/appdata/org.rncbc.qpwgraph.metainfo.xml 2022-04-06 15:53:16.000000000 +0200 +++ new/qpwgraph-v0.2.6/src/appdata/org.rncbc.qpwgraph.metainfo.xml 2022-04-23 09:43:07.000000000 +0200 @@ -37,7 +37,7 @@ <developer_name>rncbc aka. Rui Nuno Capela</developer_name> <update_contact>rn...@rncbc.org</update_contact> <releases> - <release version="0.2.5" date="2022-04-06" urgency="low" /> + <release version="0.2.6" date="2022-04-23" urgency="low" /> </releases> <content_rating type="oars-1.0"/> </component> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.5/src/qpwgraph_canvas.cpp new/qpwgraph-v0.2.6/src/qpwgraph_canvas.cpp --- old/qpwgraph-v0.2.5/src/qpwgraph_canvas.cpp 2022-04-06 15:53:16.000000000 +0200 +++ new/qpwgraph-v0.2.6/src/qpwgraph_canvas.cpp 2022-04-23 09:43:07.000000000 +0200 @@ -154,7 +154,7 @@ if (node) { m_nodes.append(node); m_node_ids.insert(qpwgraph_node::NodeIdKey(node), node); - m_node_names.insert(qpwgraph_node::NodeNameKey(node), node); + m_node_keys.insert(qpwgraph_node::NodeNameKey(node), node); if (!restoreNode(node)) emit added(node); } @@ -175,7 +175,7 @@ if (node && saveNode(node)) { emit removed(node); node->removePorts(); - m_node_names.remove(qpwgraph_node::NodeNameKey(node)); + m_node_keys.remove(qpwgraph_node::NodeNameKey(node)); m_node_ids.remove(qpwgraph_node::NodeIdKey(node)); m_nodes.removeAll(node); } @@ -348,7 +348,7 @@ foreach (qpwgraph_node *node, m_nodes) { if (node->nodeType() == node_type) { - m_node_names.remove(qpwgraph_node::NodeNameKey(node)); + m_node_keys.remove(qpwgraph_node::NodeNameKey(node)); m_node_ids.remove(qpwgraph_node::NodeIdKey(node)); m_nodes.removeAll(node); nodes.append(node); @@ -376,11 +376,10 @@ } -qpwgraph_node *qpwgraph_canvas::findNode ( +QList<qpwgraph_node *> qpwgraph_canvas::findNodes ( const QString& name, qpwgraph_item::Mode mode, uint type ) const { - return static_cast<qpwgraph_node *> ( - m_node_names.value(qpwgraph_node::NameKey(name, mode, type), nullptr)); + return m_node_keys.values(qpwgraph_node::NodeNameKey(name, mode, type)); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.5/src/qpwgraph_canvas.h new/qpwgraph-v0.2.6/src/qpwgraph_canvas.h --- old/qpwgraph-v0.2.5/src/qpwgraph_canvas.h 2022-04-06 15:53:16.000000000 +0200 +++ new/qpwgraph-v0.2.6/src/qpwgraph_canvas.h 2022-04-23 09:43:07.000000000 +0200 @@ -98,7 +98,7 @@ // Special node finders. qpwgraph_node *findNode( uint id, qpwgraph_item::Mode mode, uint type = 0) const; - qpwgraph_node *findNode( + QList<qpwgraph_node *> findNodes( const QString& name, qpwgraph_item::Mode mode, uint type = 0) const; // Whether it's in the middle of something... @@ -228,7 +228,7 @@ bool m_zoomrange; qpwgraph_node::IdKeys m_node_ids; - qpwgraph_node::NameKeys m_node_names; + qpwgraph_node::NodeKeys m_node_keys; QList<qpwgraph_node *> m_nodes; QUndoStack *m_commands; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.5/src/qpwgraph_item.h new/qpwgraph-v0.2.6/src/qpwgraph_item.h --- old/qpwgraph-v0.2.5/src/qpwgraph_item.h 2022-04-06 15:53:16.000000000 +0200 +++ new/qpwgraph-v0.2.6/src/qpwgraph_item.h 2022-04-23 09:43:07.000000000 +0200 @@ -133,8 +133,6 @@ uint m_type; }; - typedef QHash<NameKey, qpwgraph_item *> NameKeys; - // Item-type hash (static) static uint itemType(const QByteArray& type_name); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.5/src/qpwgraph_node.cpp new/qpwgraph-v0.2.6/src/qpwgraph_node.cpp --- old/qpwgraph-v0.2.5/src/qpwgraph_node.cpp 2022-04-06 15:53:16.000000000 +0200 +++ new/qpwgraph-v0.2.6/src/qpwgraph_node.cpp 2022-04-23 09:43:07.000000000 +0200 @@ -189,7 +189,7 @@ m_ports.append(port); m_port_ids.insert(qpwgraph_port::PortIdKey(port), port); - m_port_names.insert(qpwgraph_port::PortNameKey(port), port); + m_port_keys.insert(qpwgraph_port::PortNameKey(port), port); updatePath(); @@ -213,7 +213,7 @@ void qpwgraph_node::removePort ( qpwgraph_port *port ) { - m_port_names.remove(qpwgraph_port::PortNameKey(port)); + m_port_keys.remove(qpwgraph_port::PortNameKey(port)); m_port_ids.remove(qpwgraph_port::PortIdKey(port)); m_ports.removeAll(port); @@ -231,7 +231,7 @@ //qDeleteAll(m_ports); m_ports.clear(); m_port_ids.clear(); - m_port_names.clear(); + m_port_keys.clear(); } @@ -244,11 +244,10 @@ } -qpwgraph_port *qpwgraph_node::findPort ( +QList<qpwgraph_port *> qpwgraph_node::findPorts ( const QString& name, qpwgraph_item::Mode mode, uint type ) { - return static_cast<qpwgraph_port *> ( - m_port_names.value(qpwgraph_port::NameKey(name, mode, type), nullptr)); + return m_port_keys.values(qpwgraph_port::PortNameKey(name, mode, type)); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.5/src/qpwgraph_node.h new/qpwgraph-v0.2.6/src/qpwgraph_node.h --- old/qpwgraph-v0.2.5/src/qpwgraph_node.h 2022-04-06 15:53:16.000000000 +0200 +++ new/qpwgraph-v0.2.6/src/qpwgraph_node.h 2022-04-23 09:43:07.000000000 +0200 @@ -79,7 +79,7 @@ // Port finder (by id/name, mode and type) qpwgraph_port *findPort(uint id, Mode mode, uint type = 0); - qpwgraph_port *findPort(const QString& name, Mode mode, uint type = 0); + QList<qpwgraph_port *> findPorts(const QString& name, Mode mode, uint type = 0); // Port-list accessor. const QList<qpwgraph_port *>& ports() const; @@ -104,10 +104,14 @@ { public: // Constructors. + NodeNameKey (const QString& name, Mode mode, uint type = 0) + : NameKey(name, mode, type) {} NodeNameKey(qpwgraph_node *node) : NameKey(node->nodeName(), node->nodeMode(), node->nodeType()) {} }; + typedef QMultiHash<NodeNameKey, qpwgraph_node *> NodeKeys; + // Rectangular editor extents. QRectF editorRect() const; @@ -134,7 +138,7 @@ QGraphicsTextItem *m_text; qpwgraph_port::IdKeys m_port_ids; - qpwgraph_port::NameKeys m_port_names; + qpwgraph_port::PortKeys m_port_keys; QList<qpwgraph_port *> m_ports; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.5/src/qpwgraph_patchbay.cpp new/qpwgraph-v0.2.6/src/qpwgraph_patchbay.cpp --- old/qpwgraph-v0.2.5/src/qpwgraph_patchbay.cpp 2022-04-06 15:53:16.000000000 +0200 +++ new/qpwgraph-v0.2.6/src/qpwgraph_patchbay.cpp 2022-04-23 09:43:07.000000000 +0200 @@ -263,67 +263,75 @@ const Items::ConstIterator& iter_end = m_items.constEnd(); for ( ; iter != iter_end; ++iter) { Item *item = iter.value(); - qpwgraph_node *node1 - = m_canvas->findNode( + QList<qpwgraph_node *> nodes1 + = m_canvas->findNodes( item->node1, qpwgraph_item::Output, item->node_type); - if (node1 == nullptr) - node1 = m_canvas->findNode( + if (nodes1.isEmpty()) + nodes1 = m_canvas->findNodes( item->node1, qpwgraph_item::Duplex, item->node_type); - if (node1 == nullptr) + if (nodes1.isEmpty()) continue; - qpwgraph_port *port1 - = node1->findPort( - item->port1, - qpwgraph_item::Output, - item->port_type); - if (port1 == nullptr) - continue; - qpwgraph_node *node2 - = m_canvas->findNode( - item->node2, - qpwgraph_item::Input, - item->node_type); - if (node2 == nullptr) - node2 = m_canvas->findNode( - item->node2, - qpwgraph_item::Duplex, - item->node_type); - if (node2 == nullptr) - continue; - qpwgraph_port *port2 - = node2->findPort( - item->port2, - qpwgraph_item::Input, - item->port_type); - if (port2 == nullptr) - continue; - if (m_exclusive) { - foreach (qpwgraph_connect *connect, port1->connects()) { - qpwgraph_port *port3 = connect->port2(); - if (port3 == nullptr) + foreach (qpwgraph_node *node1, nodes1) { + QList<qpwgraph_port *> ports1 + = node1->findPorts( + item->port1, + qpwgraph_item::Output, + item->port_type); + if (ports1.isEmpty()) + continue; + foreach (qpwgraph_port *port1, ports1) { + QList<qpwgraph_node *> nodes2 + = m_canvas->findNodes( + item->node2, + qpwgraph_item::Input, + item->node_type); + if (nodes2.isEmpty()) + nodes2 = m_canvas->findNodes( + item->node2, + qpwgraph_item::Duplex, + item->node_type); + if (nodes2.isEmpty()) continue; - if (port3 != port2) { - qpwgraph_node *node3 = port3->portNode(); - if (node3 == nullptr) + foreach (qpwgraph_node *node2, nodes2) { + QList<qpwgraph_port *> ports2 + = node2->findPorts( + item->port2, + qpwgraph_item::Input, + item->port_type); + if (ports2.isEmpty()) continue; - const Item item2( - node1->nodeType(), - port1->portType(), - node1->nodeName(), - port1->portName(), - node3->nodeName(), - port3->portName()); - if (m_items.constFind(item2) == iter_end) - connects.insert(item2, connect); + foreach (qpwgraph_port *port2, ports2) { + if (m_exclusive) { + foreach (qpwgraph_connect *connect, port1->connects()) { + qpwgraph_port *port3 = connect->port2(); + if (port3 == nullptr) + continue; + if (port3 != port2) { + qpwgraph_node *node3 = port3->portNode(); + if (node3 == nullptr) + continue; + const Item item2( + node1->nodeType(), + port1->portType(), + node1->nodeName(), + port1->portName(), + node3->nodeName(), + port3->portName()); + if (m_items.constFind(item2) == iter_end) + connects.insert(item2, connect); + } + } + } + if (!port1->findConnect(port2)) + m_canvas->emitConnected(port1, port2); + } } } } - if (!port1->findConnect(port2)) - m_canvas->emitConnected(port1, port2); } QHash<Item, qpwgraph_connect *>::ConstIterator iter2 = connects.constBegin(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qpwgraph-v0.2.5/src/qpwgraph_port.h new/qpwgraph-v0.2.6/src/qpwgraph_port.h --- old/qpwgraph-v0.2.5/src/qpwgraph_port.h 2022-04-06 15:53:16.000000000 +0200 +++ new/qpwgraph-v0.2.6/src/qpwgraph_port.h 2022-04-23 09:43:07.000000000 +0200 @@ -109,11 +109,15 @@ class PortNameKey : public NameKey { public: - // Constructor. + // Constructors. + PortNameKey (const QString& name, Mode mode, uint type = 0) + : NameKey(name, mode, type) {} PortNameKey(qpwgraph_port *port) : NameKey(port->portName(), port->portMode(), port->portType()) {} }; + typedef QMultiHash<PortNameKey, qpwgraph_port *> PortKeys; + // Port sorting type. enum SortType { PortName = 0, PortTitle, PortIndex };