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* );
