comparison src/MainWindow.cpp @ 414:333cb8a2514b

Introduce level/pan toolbar buttons
author Chris Cannam
date Wed, 25 Mar 2015 10:33:19 +0000
parents 762ea5130a2c
children 912a7212e0cf
comparison
equal deleted inserted replaced
413:762ea5130a2c 414:333cb8a2514b
39 #include "widgets/Fader.h" 39 #include "widgets/Fader.h"
40 #include "view/Overview.h" 40 #include "view/Overview.h"
41 #include "widgets/AudioDial.h" 41 #include "widgets/AudioDial.h"
42 #include "widgets/IconLoader.h" 42 #include "widgets/IconLoader.h"
43 #include "widgets/KeyReference.h" 43 #include "widgets/KeyReference.h"
44 #include "widgets/LevelPanWidget.h" 44 #include "widgets/LevelPanToolButton.h"
45 #include "audioio/AudioCallbackPlaySource.h" 45 #include "audioio/AudioCallbackPlaySource.h"
46 #include "audioio/AudioCallbackPlayTarget.h" 46 #include "audioio/AudioCallbackPlayTarget.h"
47 #include "audioio/PlaySpeedRangeMapper.h" 47 #include "audioio/PlaySpeedRangeMapper.h"
48 #include "base/Profiler.h" 48 #include "base/Profiler.h"
49 #include "base/UnitDatabase.h" 49 #include "base/UnitDatabase.h"
239 connect(m_playSpeed, SIGNAL(valueChanged(int)), 239 connect(m_playSpeed, SIGNAL(valueChanged(int)),
240 this, SLOT(playSpeedChanged(int))); 240 this, SLOT(playSpeedChanged(int)));
241 connect(m_playSpeed, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget())); 241 connect(m_playSpeed, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget()));
242 connect(m_playSpeed, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget())); 242 connect(m_playSpeed, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget()));
243 243
244 m_audioLPW = new LevelPanWidget(frame); 244 m_audioLPW = new LevelPanToolButton(frame);
245 m_audioLPW->setObjectName(tr("Audio Track Level and Pan")); 245 m_audioLPW->setObjectName(tr("Audio Track Level and Pan"));
246 connect(m_audioLPW, SIGNAL(levelChanged(float)), this, SLOT(audioGainChanged(float))); 246 connect(m_audioLPW, SIGNAL(levelChanged(float)), this, SLOT(audioGainChanged(float)));
247 connect(m_audioLPW, SIGNAL(panChanged(float)), this, SLOT(audioPanChanged(float))); 247 connect(m_audioLPW, SIGNAL(panChanged(float)), this, SLOT(audioPanChanged(float)));
248 248
249 if (m_withSonification) { 249 if (m_withSonification) {
250 250
251 m_pitchLPW = new LevelPanWidget(frame); 251 m_pitchLPW = new LevelPanToolButton(frame);
252 m_pitchLPW->setObjectName(tr("Pitch Track Level and Pan")); 252 m_pitchLPW->setObjectName(tr("Pitch Track Level and Pan"));
253 connect(m_pitchLPW, SIGNAL(levelChanged(float)), this, SLOT(pitchGainChanged(float))); 253 connect(m_pitchLPW, SIGNAL(levelChanged(float)), this, SLOT(pitchGainChanged(float)));
254 connect(m_pitchLPW, SIGNAL(panChanged(float)), this, SLOT(pitchPanChanged(float))); 254 connect(m_pitchLPW, SIGNAL(panChanged(float)), this, SLOT(pitchPanChanged(float)));
255 255
256 m_notesLPW = new LevelPanWidget(frame); 256 m_notesLPW = new LevelPanToolButton(frame);
257 m_notesLPW->setObjectName(tr("Note Track Level and Pan")); 257 m_notesLPW->setObjectName(tr("Note Track Level and Pan"));
258 connect(m_notesLPW, SIGNAL(levelChanged(float)), this, SLOT(notesGainChanged(float))); 258 connect(m_notesLPW, SIGNAL(levelChanged(float)), this, SLOT(notesGainChanged(float)));
259 connect(m_notesLPW, SIGNAL(panChanged(float)), this, SLOT(notesPanChanged(float))); 259 connect(m_notesLPW, SIGNAL(panChanged(float)), this, SLOT(notesPanChanged(float)));
260 } 260 }
261 261
1073 m_showAudio = toolbar->addAction(il.load("waveform"), tr("Show Audio")); 1073 m_showAudio = toolbar->addAction(il.load("waveform"), tr("Show Audio"));
1074 m_showAudio->setCheckable(true); 1074 m_showAudio->setCheckable(true);
1075 connect(m_showAudio, SIGNAL(triggered()), this, SLOT(showAudioToggled())); 1075 connect(m_showAudio, SIGNAL(triggered()), this, SLOT(showAudioToggled()));
1076 connect(this, SIGNAL(canPlay(bool)), m_showAudio, SLOT(setEnabled(bool))); 1076 connect(this, SIGNAL(canPlay(bool)), m_showAudio, SLOT(setEnabled(bool)));
1077 1077
1078 int lpwSize = m_viewManager->scalePixelSize(30); 1078 toolbar->addWidget(m_audioLPW);
1079 1079
1080 m_audioLPW->setFixedWidth(lpwSize*2);
1081 m_audioLPW->setFixedHeight(lpwSize*2);
1082 // toolbar->addWidget(m_audioLPW);
1083
1084 QMenu *alpwm = new QMenu();
1085 QWidgetAction *alpwmwa = new QWidgetAction(alpwm);
1086 alpwmwa->setDefaultWidget(m_audioLPW);
1087 alpwm->addAction(alpwmwa);
1088 alpwm->addAction("Done");
1089 QToolButton *alpwtb = new QToolButton();
1090 alpwtb->setPopupMode(QToolButton::MenuButtonPopup);
1091 alpwtb->setText("blah");
1092 alpwtb->setMenu(alpwm);
1093 toolbar->addWidget(alpwtb);
1094
1095 // Pitch (f0) 1080 // Pitch (f0)
1096 QLabel *spacer = new QLabel; // blank 1081 QLabel *spacer = new QLabel; // blank
1097 spacer->setFixedWidth(40); 1082 spacer->setFixedWidth(40);
1098 toolbar->addWidget(spacer); 1083 toolbar->addWidget(spacer);
1099 1084
1101 m_showPitch->setCheckable(true); 1086 m_showPitch->setCheckable(true);
1102 connect(m_showPitch, SIGNAL(triggered()), this, SLOT(showPitchToggled())); 1087 connect(m_showPitch, SIGNAL(triggered()), this, SLOT(showPitchToggled()));
1103 connect(this, SIGNAL(canPlay(bool)), m_showPitch, SLOT(setEnabled(bool))); 1088 connect(this, SIGNAL(canPlay(bool)), m_showPitch, SLOT(setEnabled(bool)));
1104 1089
1105 if (m_withSonification) { 1090 if (m_withSonification) {
1106 m_pitchLPW->setFixedWidth(lpwSize);
1107 m_pitchLPW->setFixedHeight(lpwSize);
1108 toolbar->addWidget(m_pitchLPW); 1091 toolbar->addWidget(m_pitchLPW);
1109 } 1092 }
1110 1093
1111 // Notes 1094 // Notes
1112 spacer = new QLabel; 1095 spacer = new QLabel;
1117 m_showNotes->setCheckable(true); 1100 m_showNotes->setCheckable(true);
1118 connect(m_showNotes, SIGNAL(triggered()), this, SLOT(showNotesToggled())); 1101 connect(m_showNotes, SIGNAL(triggered()), this, SLOT(showNotesToggled()));
1119 connect(this, SIGNAL(canPlay(bool)), m_showNotes, SLOT(setEnabled(bool))); 1102 connect(this, SIGNAL(canPlay(bool)), m_showNotes, SLOT(setEnabled(bool)));
1120 1103
1121 if (m_withSonification) { 1104 if (m_withSonification) {
1122 m_notesLPW->setFixedWidth(lpwSize);
1123 m_notesLPW->setFixedHeight(lpwSize);
1124 toolbar->addWidget(m_notesLPW); 1105 toolbar->addWidget(m_notesLPW);
1125 } 1106 }
1126 1107
1127 // Spectrogram 1108 // Spectrogram
1128 spacer = new QLabel; 1109 spacer = new QLabel;