Hello community,

here is the log from the commit of package hydrogen for openSUSE:Factory 
checked in at 2020-02-13 10:13:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hydrogen (Old)
 and      /work/SRC/openSUSE:Factory/.hydrogen.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "hydrogen"

Thu Feb 13 10:13:44 2020 rev:39 rq:774057 version:0.9.9pre1

Changes:
--------
--- /work/SRC/openSUSE:Factory/hydrogen/hydrogen.changes        2019-04-08 
10:40:53.231303476 +0200
+++ /work/SRC/openSUSE:Factory/.hydrogen.new.26092/hydrogen.changes     
2020-02-13 10:14:20.060439628 +0100
@@ -1,0 +2,9 @@
+Wed Feb 12 17:42:55 UTC 2020 - Stefan Dirsch <[email protected]>
+
+- hydrogen-ongEditorPanel-clean-up-scroll-signals.patch,
+  hydrogen-SongEditorPanel-Add-methods-to-show-Timeline-Playbac.patch,
+  hydrogen-SongEditor-Fix-timeline-scrolling.patch,
+  * adjusted git commits from upstream, which fix scrolling in
+    Song Editor (boo#1163519)
+
+-------------------------------------------------------------------

New:
----
  hydrogen-SongEditor-Fix-timeline-scrolling.patch
  hydrogen-SongEditorPanel-Add-methods-to-show-Timeline-Playbac.patch
  hydrogen-ongEditorPanel-clean-up-scroll-signals.patch

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

Other differences:
------------------
++++++ hydrogen.spec ++++++
--- /var/tmp/diff_new_pack.9BVQYN/_old  2020-02-13 10:14:21.016440316 +0100
+++ /var/tmp/diff_new_pack.9BVQYN/_new  2020-02-13 10:14:21.016440316 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package hydrogen
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
@@ -31,7 +31,7 @@
 # NOTE: Don't forget to update the libsuffix macro.
 License:        GPL-2.0-or-later
 Group:          Productivity/Multimedia/Sound/Midi
-Url:            http://www.hydrogen-music.org/
+URL:            http://www.hydrogen-music.org/
 Source0:        
https://github.com/hydrogen-music/%{name}/archive/%{tarvers}-beta1.tar.gz#/%{name}-%{version}.tar.gz
 Source1:        h2cli.1
 Source2:        COPYING
@@ -41,6 +41,9 @@
 Patch2:         hydrogen-0.9.6-lib64.patch
 # PATCH-FIX-UPSTREAM hydrogen-gcc47.patch [email protected] -- Fix build with 
gcc 4.7.
 Patch3:         hydrogen-gcc47.patch
+Patch6:         hydrogen-ongEditorPanel-clean-up-scroll-signals.patch
+Patch5:         
hydrogen-SongEditorPanel-Add-methods-to-show-Timeline-Playbac.patch
+Patch7:         hydrogen-SongEditor-Fix-timeline-scrolling.patch
 BuildRequires:  cmake
 BuildRequires:  doxygen
 BuildRequires:  fdupes

++++++ hydrogen-SongEditor-Fix-timeline-scrolling.patch ++++++
>From f6f7ab3189ceba4c4b968508a64e6bfa274a9a44 Mon Sep 17 00:00:00 2001
From: Sebastian Moors <[email protected]>
Date: Sun, 23 Sep 2018 10:41:19 +0200
Subject: [PATCH] SongEditor: Fix timeline scrolling

---
 src/gui/src/SongEditor/SongEditorPanel.cpp | 42 +++++++++++++++++++-----------
 src/gui/src/SongEditor/SongEditorPanel.h   |  2 ++
 2 files changed, 29 insertions(+), 15 deletions(-)

Index: hydrogen-1.0.0-beta1/src/gui/src/SongEditor/SongEditorPanel.cpp
===================================================================
--- hydrogen-1.0.0-beta1.orig/src/gui/src/SongEditor/SongEditorPanel.cpp
+++ hydrogen-1.0.0-beta1/src/gui/src/SongEditor/SongEditorPanel.cpp
@@ -294,27 +294,34 @@ SongEditorPanel::SongEditorPanel(QWidget
 
 
        // POSITION RULER
-       m_pPositionRulerScrollView = new QScrollArea( NULL );
+       m_pWidgetStack = new QStackedWidget( nullptr );
+       m_pWidgetStack->setFixedHeight( 50 );
+
+       m_pPositionRulerScrollView = new QScrollArea( m_pWidgetStack );
        m_pPositionRulerScrollView->setFrameShape( QFrame::NoFrame );
        m_pPositionRulerScrollView->setVerticalScrollBarPolicy( 
Qt::ScrollBarAlwaysOff );
        m_pPositionRulerScrollView->setHorizontalScrollBarPolicy( 
Qt::ScrollBarAlwaysOff );
+       m_pPositionRuler = new SongEditorPositionRuler( 
m_pPositionRulerScrollView->viewport() );
+       m_pPositionRulerScrollView->setWidget( m_pPositionRuler );
        m_pPositionRulerScrollView->setFixedHeight( 50 );
 
-       m_pWidgetStack = new QStackedWidget( m_pPositionRulerScrollView );
+       m_pPlaybackTrackScrollView = new QScrollArea( m_pWidgetStack );
+       m_pPlaybackTrackScrollView->setFrameShape( QFrame::NoFrame );
+       m_pPlaybackTrackScrollView->setVerticalScrollBarPolicy( 
Qt::ScrollBarAlwaysOff );
+       m_pPlaybackTrackScrollView->setHorizontalScrollBarPolicy( 
Qt::ScrollBarAlwaysOff );
 
-       m_pPositionRuler = new SongEditorPositionRuler( NULL );
+       m_pWaveDisplay = new WaveDisplay( 
m_pPlaybackTrackScrollView->viewport() );
        
-       m_pWaveDisplay = new WaveDisplay( 
m_pPositionRulerScrollView->viewport() );
        InstrumentComponent *pCompo = 
AudioEngine::get_instance()->get_sampler()->__preview_instrument->get_components()->front();
        assert(pCompo);
        m_pWaveDisplay->updateDisplay( pCompo->get_layer(0) );
-       
-       m_pWidgetStack->addWidget( m_pPositionRuler );
-       m_pWidgetStack->addWidget( m_pWaveDisplay );
-       
-       m_pPositionRulerScrollView->setWidgetResizable(true);
-       m_pPositionRulerScrollView->setWidget( m_pWidgetStack );
-       
+
+       m_pWaveDisplay->resize( m_pPositionRuler->width() , 50);
+
+       m_pPlaybackTrackScrollView->setWidget( m_pWaveDisplay );
+       m_pPlaybackTrackScrollView->setFixedHeight( 50 );
+
+
        m_pAutomationPathScrollView = new QScrollArea( NULL );
        m_pAutomationPathScrollView->setFrameShape( QFrame::NoFrame );
        m_pAutomationPathScrollView->setVerticalScrollBarPolicy( 
Qt::ScrollBarAlwaysOff );
@@ -336,14 +343,17 @@ SongEditorPanel::SongEditorPanel(QWidget
        m_pVScrollBar = new QScrollBar( Qt::Vertical, NULL );
        connect( m_pVScrollBar, SIGNAL(valueChanged(int)), this, SLOT( 
vScrollTo(int) ) );
 
+       m_pWidgetStack->addWidget( m_pPositionRulerScrollView );
+       m_pWidgetStack->addWidget( m_pPlaybackTrackScrollView );
 
+       
        // ok...let's build the layout
        QGridLayout *pGridLayout = new QGridLayout();
        pGridLayout->setSpacing( 0 );
        pGridLayout->setMargin( 0 );
 
        pGridLayout->addWidget( pBackPanel, 0, 0 );
-       pGridLayout->addWidget( m_pPositionRulerScrollView, 0, 1 );
+       pGridLayout->addWidget( m_pWidgetStack, 0, 1 );
        pGridLayout->addWidget( m_pPatternListScrollView, 1, 0 );
        pGridLayout->addWidget( m_pEditorScrollView, 1, 1 );
        pGridLayout->addWidget( m_pVScrollBar, 1, 2, 2, 1 );
@@ -468,6 +478,8 @@ void SongEditorPanel::hScrollTo( int val
                inside = true;
                m_pHScrollBar->setValue( value );
                m_pEditorScrollView->horizontalScrollBar()->setValue( value );
+               m_pPlaybackTrackScrollView->horizontalScrollBar()->setValue( 
value );
+               m_pPositionRulerScrollView->horizontalScrollBar()->setValue( 
value );
                m_pAutomationPathScrollView->horizontalScrollBar()->setValue( 
value );
                inside = false;
        }
@@ -685,7 +697,7 @@ void SongEditorPanel::timeLineBtnPressed
 void SongEditorPanel::viewPlaybackTrackBtnPressed( Button* pBtn )
 {
        if( pBtn->isPressed() ){
-               m_pWidgetStack->setCurrentWidget( m_pWaveDisplay );
+               m_pWidgetStack->setCurrentWidget( m_pPlaybackTrackScrollView );
                m_pTimeLineToggleBtn->hide();
                m_pMutePlaybackToggleBtn->show();
                m_pEditPlaybackBtn->show();
@@ -694,7 +706,7 @@ void SongEditorPanel::viewPlaybackTrackB
        }
        else
        {
-               m_pWidgetStack->setCurrentWidget( m_pPositionRuler );
+               m_pWidgetStack->setCurrentWidget( m_pPositionRulerScrollView );
                m_pTimeLineToggleBtn->show();
                m_pMutePlaybackToggleBtn->hide();
                m_pEditPlaybackBtn->hide();
@@ -705,7 +717,7 @@ void SongEditorPanel::viewPlaybackTrackB
 
 void SongEditorPanel::showTimeline()
 {
-       m_pWidgetStack->setCurrentWidget( m_pPositionRuler );
+       m_pWidgetStack->setCurrentWidget( m_pPositionRulerScrollView );
        m_pTimeLineToggleBtn->show();
        m_pMutePlaybackToggleBtn->hide();
        m_pEditPlaybackBtn->hide();
@@ -716,7 +728,7 @@ void SongEditorPanel::showTimeline()
 
 void SongEditorPanel::showPlaybackTrack()
 {
-       m_pWidgetStack->setCurrentWidget( m_pWaveDisplay );
+       m_pWidgetStack->setCurrentWidget( m_pPlaybackTrackScrollView );
        m_pTimeLineToggleBtn->hide();
        m_pMutePlaybackToggleBtn->show();
        m_pEditPlaybackBtn->show();
Index: hydrogen-1.0.0-beta1/src/gui/src/SongEditor/SongEditorPanel.h
===================================================================
--- hydrogen-1.0.0-beta1.orig/src/gui/src/SongEditor/SongEditorPanel.h
+++ hydrogen-1.0.0-beta1/src/gui/src/SongEditor/SongEditorPanel.h
@@ -124,6 +124,8 @@ class SongEditorPanel : public QWidget,
                QScrollArea*                    m_pEditorScrollView;
                QScrollArea*                    m_pPatternListScrollView;
                QScrollArea*                    m_pPositionRulerScrollView;
+               QScrollArea*                    m_pPlaybackTrackScrollView;
+               
                QScrollBar *                    m_pVScrollBar;
                QScrollBar *                    m_pHScrollBar;
                
++++++ hydrogen-SongEditorPanel-Add-methods-to-show-Timeline-Playbac.patch 
++++++
>From 68b2cbebf3e6de8f58b8b848aabefef48ecfa964 Mon Sep 17 00:00:00 2001
From: Sebastian Moors <[email protected]>
Date: Thu, 13 Sep 2018 22:01:42 +0200
Subject: [PATCH] SongEditorPanel: Add methods to show Timeline/PlaybackTrack

---
 src/gui/src/SongEditor/SongEditorPanel.cpp | 35 ++++++++++++++++++++----------
 src/gui/src/SongEditor/SongEditorPanel.h   |  4 ++++
 2 files changed, 27 insertions(+), 12 deletions(-)

Index: hydrogen-1.0.0-beta1/src/gui/src/SongEditor/SongEditorPanel.cpp
===================================================================
--- hydrogen-1.0.0-beta1.orig/src/gui/src/SongEditor/SongEditorPanel.cpp
+++ hydrogen-1.0.0-beta1/src/gui/src/SongEditor/SongEditorPanel.cpp
@@ -703,24 +703,35 @@ void SongEditorPanel::viewPlaybackTrackB
        }
 }
 
+void SongEditorPanel::showTimeline()
+{
+       m_pWidgetStack->setCurrentWidget( m_pPositionRuler );
+       m_pTimeLineToggleBtn->show();
+       m_pMutePlaybackToggleBtn->hide();
+       m_pEditPlaybackBtn->hide();
+       m_pPlaybackTrackFader->hide();
+       m_pViewPlaybackToggleBtn->setPressed(false);
+}
+
+
+void SongEditorPanel::showPlaybackTrack()
+{
+       m_pWidgetStack->setCurrentWidget( m_pWaveDisplay );
+       m_pTimeLineToggleBtn->hide();
+       m_pMutePlaybackToggleBtn->show();
+       m_pEditPlaybackBtn->show();
+       m_pPlaybackTrackFader->show();
+       m_pViewPlaybackToggleBtn->setPressed(true);
+}
+
 void SongEditorPanel::viewTimeLineBtnPressed( Button* pBtn )
 {
        if( pBtn->isPressed() ){
-               m_pWidgetStack->setCurrentWidget( m_pPositionRuler );
-               m_pTimeLineToggleBtn->show();
-               m_pMutePlaybackToggleBtn->hide();
-               m_pEditPlaybackBtn->hide();
-               m_pPlaybackTrackFader->hide();
-               m_pViewPlaybackToggleBtn->setPressed(false);
+               showTimeline();
        }
        else
        {
-               m_pWidgetStack->setCurrentWidget( m_pWaveDisplay );
-               m_pTimeLineToggleBtn->hide();
-               m_pMutePlaybackToggleBtn->show();
-               m_pEditPlaybackBtn->show();
-               m_pPlaybackTrackFader->show();
-               m_pViewPlaybackToggleBtn->setPressed(true);
+               showPlaybackTrack();
        }
 }
 
Index: hydrogen-1.0.0-beta1/src/gui/src/SongEditor/SongEditorPanel.h
===================================================================
--- hydrogen-1.0.0-beta1.orig/src/gui/src/SongEditor/SongEditorPanel.h
+++ hydrogen-1.0.0-beta1/src/gui/src/SongEditor/SongEditorPanel.h
@@ -69,6 +69,10 @@ class SongEditorPanel : public QWidget,
                SongEditorActionMode getActionMode() {  return m_actionMode;    
}
                void toggleAutomationAreaVisibility();
                
+               void showTimeline();
+               void showPlaybackTrack();
+               
+               
                // Implements EventListener interface
                virtual void selectedPatternChangedEvent();
                void restoreGroupVector( QString filename );
++++++ hydrogen-ongEditorPanel-clean-up-scroll-signals.patch ++++++
>From b26ebd8fc3ca315be8d16a5ab034576ae32239d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= <[email protected]>
Date: Wed, 18 Jul 2018 16:05:39 +0200
Subject: [PATCH] ongEditorPanel : clean up scroll signals

protect against looping event
prepare the road to complete #584,
(update vertical position on add/remove pattern)
---
 src/gui/src/SongEditor/SongEditorPanel.cpp | 58 ++++++++++++++----------------
 src/gui/src/SongEditor/SongEditorPanel.h   |  5 ++-
 2 files changed, 28 insertions(+), 35 deletions(-)

Index: hydrogen-1.0.0-beta1/src/gui/src/SongEditor/SongEditorPanel.cpp
===================================================================
--- hydrogen-1.0.0-beta1.orig/src/gui/src/SongEditor/SongEditorPanel.cpp
+++ hydrogen-1.0.0-beta1/src/gui/src/SongEditor/SongEditorPanel.cpp
@@ -169,7 +169,7 @@ SongEditorPanel::SongEditorPanel(QWidget
 
 // ZOOM
        m_pHScrollBar = new QScrollBar( Qt::Horizontal,NULL );
-       connect( m_pHScrollBar, SIGNAL(valueChanged(int)), this, SLOT( 
syncToExternalScrollBar() ) );
+       connect( m_pHScrollBar, SIGNAL(valueChanged(int)), this, SLOT( 
hScrollTo(int) ) );
 
        // zoom-in btn
        Button* pZoomInBtn = new Button(
@@ -275,7 +275,7 @@ SongEditorPanel::SongEditorPanel(QWidget
        m_pPatternListScrollView->setFixedWidth( m_nPatternListWidth );
        m_pPatternListScrollView->setVerticalScrollBarPolicy( 
Qt::ScrollBarAlwaysOff );
        m_pPatternListScrollView->setHorizontalScrollBarPolicy( 
Qt::ScrollBarAlwaysOff );
-       connect( m_pPatternListScrollView->verticalScrollBar(), SIGNAL( 
valueChanged(int) ), this, SLOT( on_patternListScroll() ) );
+       connect( m_pPatternListScrollView->verticalScrollBar(), SIGNAL( 
valueChanged(int) ), this, SLOT( vScrollTo(int) ) );
 
        m_pPatternList = new SongEditorPatternList( 
m_pPatternListScrollView->viewport() );
        m_pPatternListScrollView->setWidget( m_pPatternList );
@@ -289,8 +289,8 @@ SongEditorPanel::SongEditorPanel(QWidget
        m_pSongEditor = new SongEditor( m_pEditorScrollView->viewport() );
        m_pEditorScrollView->setWidget( m_pSongEditor );
 
-       connect( m_pEditorScrollView->horizontalScrollBar(), SIGNAL( 
valueChanged(int) ), this, SLOT( on_EditorScroll() ) );
-       connect( m_pEditorScrollView->verticalScrollBar(), SIGNAL( 
valueChanged(int) ), this, SLOT( on_EditorScroll() ) );
+       connect( m_pEditorScrollView->horizontalScrollBar(), SIGNAL( 
valueChanged(int) ), this, SLOT( hScrollTo(int) ) );
+       connect( m_pEditorScrollView->verticalScrollBar(), SIGNAL( 
valueChanged(int) ), this, SLOT( vScrollTo(int) ) );
 
 
        // POSITION RULER
@@ -334,7 +334,7 @@ SongEditorPanel::SongEditorPanel(QWidget
        m_pAutomationCombo->update();
 
        m_pVScrollBar = new QScrollBar( Qt::Vertical, NULL );
-       connect( m_pVScrollBar, SIGNAL(valueChanged(int)), this, SLOT( 
syncToExternalScrollBar() ) );
+       connect( m_pVScrollBar, SIGNAL(valueChanged(int)), this, SLOT( 
vScrollTo(int) ) );
 
 
        // ok...let's build the layout
@@ -400,13 +400,12 @@ void SongEditorPanel::updatePlayHeadPosi
 
                int nPlayHeadPosition = 
Hydrogen::get_instance()->getPatternPos() * m_pSongEditor->getGridWidth();
 
+               int value = m_pEditorScrollView->horizontalScrollBar()->value();
                if ( nPlayHeadPosition > ( x + w - 50 ) ) {
-                       m_pEditorScrollView->horizontalScrollBar()->setValue( 
m_pEditorScrollView->horizontalScrollBar()->value() + 100 );
-                       on_EditorScroll();      // force a re-sync
+                       hScrollTo( value + 100 );
                }
                else if ( nPlayHeadPosition < x ) {
-                       m_pEditorScrollView->horizontalScrollBar()->setValue( 
m_pEditorScrollView->horizontalScrollBar()->value() - 100 );
-                       on_EditorScroll();      // force a re-sync
+                       hScrollTo( value - 100 );
                }
        }
 }
@@ -450,35 +449,30 @@ void SongEditorPanel::updatePlaybackFade
        }
 }
 
-void SongEditorPanel::on_patternListScroll()
+void SongEditorPanel::vScrollTo( int value )
 {
-       m_pEditorScrollView->verticalScrollBar()->setValue( 
m_pPatternListScrollView->verticalScrollBar()->value() );
-}
-
-
-
-///
-/// Synchronize the patternlist with the patternsequence
-///
-void SongEditorPanel::on_EditorScroll()
-{
-       resyncExternalScrollBar();
-       m_pPatternListScrollView->verticalScrollBar()->setValue( 
m_pEditorScrollView->verticalScrollBar()->value() );
-       m_pPositionRulerScrollView->horizontalScrollBar()->setValue( 
m_pEditorScrollView->horizontalScrollBar()->value() );
+       static bool inside = false;
+       if ( !inside ) {
+               inside = true;
+               m_pVScrollBar->setValue( value );
+               m_pPatternListScrollView->verticalScrollBar()->setValue( value 
);
+               m_pEditorScrollView->verticalScrollBar()->setValue( value );
+               inside = false;
+       }
 }
 
-
-
-void SongEditorPanel::syncToExternalScrollBar()
+void SongEditorPanel::hScrollTo( int value )
 {
-       m_pEditorScrollView->horizontalScrollBar()->setValue( 
m_pHScrollBar->value() );
-       m_pEditorScrollView->verticalScrollBar()->setValue( 
m_pVScrollBar->value() );
-       m_pAutomationPathScrollView->horizontalScrollBar()->setValue( 
m_pHScrollBar->value() );
-       m_pAutomationPathScrollView->verticalScrollBar()->setValue( 
m_pVScrollBar->value() );
+       static bool inside = false;
+       if ( !inside ) {
+               inside = true;
+               m_pHScrollBar->setValue( value );
+               m_pEditorScrollView->horizontalScrollBar()->setValue( value );
+               m_pAutomationPathScrollView->horizontalScrollBar()->setValue( 
value );
+               inside = false;
+       }
 }
 
-
-
 ///
 /// Update and redraw all...
 ///
Index: hydrogen-1.0.0-beta1/src/gui/src/SongEditor/SongEditorPanel.h
===================================================================
--- hydrogen-1.0.0-beta1.orig/src/gui/src/SongEditor/SongEditorPanel.h
+++ hydrogen-1.0.0-beta1/src/gui/src/SongEditor/SongEditorPanel.h
@@ -79,9 +79,8 @@ class SongEditorPanel : public QWidget,
                void revertaddEmptyPattern( int idx );
 
        private slots:
-               void on_patternListScroll();
-               void on_EditorScroll();
-               void syncToExternalScrollBar();
+               void vScrollTo( int value );
+               void hScrollTo( int value );
 
                void newPatBtnClicked( Button* );
                void upBtnClicked( Button* );

Reply via email to