changeset 1431:f013210eeceb levelpanwidget

Moving around some UI bits
author Chris Cannam
date Thu, 15 Dec 2016 10:36:41 +0000
parents 3e2dee09c10c (diff) ae5c314ac557 (current diff)
children 2451e7bb90af
files .hgsubstate main/MainWindow.cpp main/MainWindow.h main/OSCHandler.cpp
diffstat 5 files changed, 53 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- a/.hgsubstate	Thu Dec 15 08:58:43 2016 +0000
+++ b/.hgsubstate	Thu Dec 15 10:36:41 2016 +0000
@@ -7,7 +7,7 @@
 9b913ebff56264e6a10bef85a3f36a271ccab40a icons/scalable
 3257ddb6fff110cc88f3ffeaeefa0f29d5eb3b6f piper-cpp
 5f67a29f0fc7f1b908f7cde4866173a7af337862 sv-dependency-builds
-ce3818cd16c578fb40dd2d30f2c94090026582aa svapp
-5b04b8bc88ca83b0951ab4a0da6a960c1288c385 svcore
-f32828ea63d9d7fa18ccdd44822960735b2adc9b svgui
+be83e81d915603712fb32b434f19945b7694811b svapp
+491a992f856ead12337fa66012590d335eed0140 svcore
+306c24eeab1099fee3fd887ffd8dbeb7081cfad8 svgui
 0eebd22a081a824067bf3d5de65326696feab653 vamp-plugin-sdk
--- a/main/MainWindow.cpp	Thu Dec 15 08:58:43 2016 +0000
+++ b/main/MainWindow.cpp	Thu Dec 15 10:36:41 2016 +0000
@@ -42,11 +42,12 @@
 #include "layer/SliceableLayer.h"
 #include "layer/ImageLayer.h"
 #include "layer/RegionLayer.h"
-#include "widgets/Fader.h"
 #include "view/Overview.h"
 #include "widgets/PropertyBox.h"
 #include "widgets/PropertyStack.h"
 #include "widgets/AudioDial.h"
+#include "widgets/LevelPanWidget.h"
+#include "widgets/LevelPanToolButton.h"
 #include "widgets/IconLoader.h"
 #include "widgets/LayerTreeDialog.h"
 #include "widgets/ListInputDialog.h"
@@ -210,7 +211,9 @@
 
     m_overview = new Overview(frame);
     m_overview->setViewManager(m_viewManager);
-    m_overview->setFixedHeight(40);
+    int overviewHeight = m_viewManager->scalePixelSize(35);
+    if (overviewHeight < 40) overviewHeight = 40;
+    m_overview->setFixedHeight(overviewHeight);
 #ifndef _WIN32
     // For some reason, the contents of the overview never appear if we
     // make this setting on Windows.  I have no inclination at the moment
@@ -233,16 +236,12 @@
             (ColourDatabase::getInstance()->getColourIndex(tr("Green")));
     }
 
-    m_fader = new Fader(frame, false);
-    connect(m_fader, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget()));
-    connect(m_fader, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget()));
-
     m_playSpeed = new AudioDial(frame);
     m_playSpeed->setMinimum(0);
     m_playSpeed->setMaximum(120);
     m_playSpeed->setValue(60);
-    m_playSpeed->setFixedWidth(32);
-    m_playSpeed->setFixedHeight(32);
+    m_playSpeed->setFixedWidth(overviewHeight);
+    m_playSpeed->setFixedHeight(overviewHeight);
     m_playSpeed->setNotchesVisible(true);
     m_playSpeed->setPageStep(10);
     m_playSpeed->setObjectName(tr("Playback Speed"));
@@ -254,28 +253,31 @@
     connect(m_playSpeed, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget()));
     connect(m_playSpeed, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget()));
 
-    IconLoader il;
+    m_mainLevelPan = new LevelPanToolButton(frame);
+    connect(m_mainLevelPan, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget()));
+    connect(m_mainLevelPan, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget()));
+    m_mainLevelPan->setFixedHeight(overviewHeight);
+    m_mainLevelPan->setFixedWidth(overviewHeight);
+    m_mainLevelPan->setImageSize((overviewHeight * 3) / 4);
+    m_mainLevelPan->setBigImageSize(overviewHeight * 3);
 
     m_playControlsSpacer = new QFrame;
 
-    layout->setSpacing(4);
-    layout->addWidget(m_mainScroll, 0, 0, 1, 5);
-    layout->addWidget(m_overview, 1, 1);
+    layout->setSpacing(m_viewManager->scalePixelSize(4));
+    layout->addWidget(m_mainScroll, 0, 0, 1, 4);
+    layout->addWidget(m_overview, 1, 0);
+    layout->addWidget(m_playSpeed, 1, 1);
     layout->addWidget(m_playControlsSpacer, 1, 2);
-    layout->addWidget(m_playSpeed, 1, 3);
-    layout->addWidget(m_fader, 1, 4);
+    layout->addWidget(m_mainLevelPan, 1, 3);
 
     m_playControlsWidth = 
-        m_fader->width() + m_playSpeed->width() + layout->spacing() * 2;
-
-    layout->setColumnMinimumWidth(0, 14);
-    layout->setColumnStretch(0, 0);
+        m_mainLevelPan->width() + m_playSpeed->width() + layout->spacing() * 2;
 
     m_paneStack->setPropertyStackMinWidth(m_playControlsWidth
                                           + 2 + layout->spacing());
     m_playControlsSpacer->setFixedSize(QSize(2, 2));
 
-    layout->setColumnStretch(1, 10);
+    layout->setColumnStretch(0, 10);
 
     connect(m_paneStack, SIGNAL(propertyStacksResized(int)),
             this, SLOT(propertyStacksResized(int)));
@@ -4140,8 +4142,7 @@
 void
 MainWindow::outputLevelsChanged(float left, float right)
 {
-    m_fader->setPeakLeft(left);
-    m_fader->setPeakRight(right);
+    m_mainLevelPan->setMonitoringLevels(left, right);
 }
 
 void
@@ -4337,8 +4338,10 @@
     MainWindowBase::mainModelChanged(model);
 
     if (m_playTarget || m_audioIO) {
-        connect(m_fader, SIGNAL(valueChanged(float)),
+        connect(m_mainLevelPan, SIGNAL(levelChanged(float)),
                 this, SLOT(mainModelGainChanged(float)));
+        connect(m_mainLevelPan, SIGNAL(panChanged(float)),
+                this, SLOT(mainModelPanChanged(float)));
     }
 }
 
@@ -4353,6 +4356,17 @@
 }
 
 void
+MainWindow::mainModelPanChanged(float balance)
+{
+    // this is indeed stereo balance rather than pan
+    if (m_playTarget) {
+        m_playTarget->setOutputBalance(balance);
+    } else if (m_audioIO) {
+        m_audioIO->setOutputBalance(balance);
+    }
+}
+
+void
 MainWindow::modelAboutToBeDeleted(Model *model)
 {
     if (model == m_panLayer->getModel()) {
@@ -4616,8 +4630,8 @@
     QWidget *w = dynamic_cast<QWidget *>(sender());
     if (!w) return;
 
-    if (w == m_fader) {
-        contextHelpChanged(tr("Adjust the master playback level"));
+    if (w == m_mainLevelPan) {
+        contextHelpChanged(tr("Adjust the master playback level and pan"));
     } else if (w == m_playSpeed) {
         contextHelpChanged(tr("Adjust the master playback speed"));
     }
--- a/main/MainWindow.h	Thu Dec 15 08:58:43 2016 +0000
+++ b/main/MainWindow.h	Thu Dec 15 10:36:41 2016 +0000
@@ -137,6 +137,7 @@
 
     virtual void mainModelChanged(WaveFileModel *);
     virtual void mainModelGainChanged(float);
+    virtual void mainModelPanChanged(float);
     virtual void modelAdded(Model *);
     virtual void modelAboutToBeDeleted(Model *);
 
@@ -164,7 +165,8 @@
 
 protected:
     Overview                *m_overview;
-    Fader                   *m_fader;
+//!!!    Fader                   *m_fader;
+    LevelPanToolButton      *m_mainLevelPan;
     AudioDial               *m_playSpeed;
     WaveformLayer           *m_panLayer;
     
--- a/main/OSCHandler.cpp	Thu Dec 15 08:58:43 2016 +0000
+++ b/main/OSCHandler.cpp	Thu Dec 15 10:36:41 2016 +0000
@@ -26,7 +26,8 @@
 #include "framework/Document.h"
 #include "data/fileio/WavFileWriter.h"
 #include "transform/TransformFactory.h"
-#include "widgets/Fader.h"
+#include "widgets/LevelPanWidget.h"
+#include "widgets/LevelPanToolButton.h"
 #include "widgets/AudioDial.h"
 
 #include <bqaudioio/SystemPlaybackTarget.h>
@@ -342,7 +343,7 @@
 
             if (property == "gain") {
                 if (value < 0.0) value = 0.0;
-                m_fader->setValue(value);
+                m_mainLevelPan->setLevel(value);
                 if (m_playTarget) m_playTarget->setOutputGain(value);
             } else if (property == "speedup") {
                 m_playSpeed->setMappedValue(value);
--- a/sonic-visualiser.qrc	Thu Dec 15 08:58:43 2016 +0000
+++ b/sonic-visualiser.qrc	Thu Dec 15 10:36:41 2016 +0000
@@ -4,6 +4,7 @@
     <file>icons/scalable/colour3d.svg</file>
     <file>icons/scalable/cross.svg</file>
     <file>icons/scalable/dataedit.svg</file>
+    <file>icons/scalable/datadelete.svg</file>
     <file>icons/scalable/draw.svg</file>
     <file>icons/scalable/erase.svg</file>
     <file>icons/scalable/editcopy.svg</file>
@@ -20,10 +21,13 @@
     <file>icons/scalable/ffwd.svg</file>
     <file>icons/scalable/navigate.svg</file>
     <file>icons/scalable/move.svg</file>
+    <file>icons/scalable/normalise.svg</file>
+    <file>icons/scalable/normalise-columns.svg</file>
     <file>icons/scalable/pause.svg</file>
     <file>icons/scalable/playloop.svg</file>
     <file>icons/scalable/playpause.svg</file>
     <file>icons/scalable/playselection.svg</file>
+    <file>icons/scalable/playfollow.svg</file>
     <file>icons/scalable/solo.svg</file>
     <file>icons/scalable/play.svg</file>
     <file>icons/scalable/record.svg</file>
@@ -40,6 +44,7 @@
     <file>icons/scalable/regions.svg</file>
     <file>icons/scalable/spectrogram.svg</file>
     <file>icons/scalable/spectrum.svg</file>
+    <file>icons/scalable/pane.svg</file>
     <file>icons/scalable/text.svg</file>
     <file>icons/scalable/timeruler.svg</file>
     <file>icons/scalable/zoom.svg</file>
@@ -52,6 +57,7 @@
     <file>icons/scalable/sv-splash.png</file>
     <file>icons/scalable/sv-splash@2x.png</file>
     <file>icons/scalable/waveform.svg</file>
+    <file>icons/scalable/faders.svg</file>
     <file>icons/waveform.png</file>
     <file>icons/spectrum.png</file>
     <file>icons/spectrogram.png</file>
@@ -71,9 +77,7 @@
     <file>icons/playselection.png</file>
     <file>icons/playselection-on.png</file>
     <file>icons/playloop.png</file>
-    <file>icons/playloop-on.png</file>
     <file>icons/playfollow.png</file>
-    <file>icons/playfollow-on.png</file>
     <file>icons/solo.png</file>
     <file>icons/solo-on.png</file>
     <file>icons/align.png</file>