# HG changeset patch # User Chris Cannam # Date 1481798201 0 # Node ID f013210eeceb12941828ccd1cf6ec391db7bdbd8 # Parent 3e2dee09c10c0baa9fd5e44f160214b708a5c470# Parent ae5c314ac557d6a5f54581f1aab85a9f64f51f06 Moving around some UI bits diff -r ae5c314ac557 -r f013210eeceb .hgsubstate --- 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 diff -r ae5c314ac557 -r f013210eeceb main/MainWindow.cpp --- 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(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")); } diff -r ae5c314ac557 -r f013210eeceb main/MainWindow.h --- 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; diff -r ae5c314ac557 -r f013210eeceb main/OSCHandler.cpp --- 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 @@ -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); diff -r ae5c314ac557 -r f013210eeceb sonic-visualiser.qrc --- 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 @@ icons/scalable/colour3d.svg icons/scalable/cross.svg icons/scalable/dataedit.svg + icons/scalable/datadelete.svg icons/scalable/draw.svg icons/scalable/erase.svg icons/scalable/editcopy.svg @@ -20,10 +21,13 @@ icons/scalable/ffwd.svg icons/scalable/navigate.svg icons/scalable/move.svg + icons/scalable/normalise.svg + icons/scalable/normalise-columns.svg icons/scalable/pause.svg icons/scalable/playloop.svg icons/scalable/playpause.svg icons/scalable/playselection.svg + icons/scalable/playfollow.svg icons/scalable/solo.svg icons/scalable/play.svg icons/scalable/record.svg @@ -40,6 +44,7 @@ icons/scalable/regions.svg icons/scalable/spectrogram.svg icons/scalable/spectrum.svg + icons/scalable/pane.svg icons/scalable/text.svg icons/scalable/timeruler.svg icons/scalable/zoom.svg @@ -52,6 +57,7 @@ icons/scalable/sv-splash.png icons/scalable/sv-splash@2x.png icons/scalable/waveform.svg + icons/scalable/faders.svg icons/waveform.png icons/spectrum.png icons/spectrogram.png @@ -71,9 +77,7 @@ icons/playselection.png icons/playselection-on.png icons/playloop.png - icons/playloop-on.png icons/playfollow.png - icons/playfollow-on.png icons/solo.png icons/solo-on.png icons/align.png