Mercurial > hg > svgui
comparison widgets/PropertyBox.cpp @ 1180:6a6a63506e3f levelpanwidget
Some work on play parameters and level controls in property box
author | Chris Cannam |
---|---|
date | Tue, 06 Dec 2016 09:47:27 +0000 |
parents | 7c31eb5bc77d |
children | 306c24eeab10 |
comparison
equal
deleted
inserted
replaced
1179:7c31eb5bc77d | 1180:6a6a63506e3f |
---|---|
175 layout->setAlignment(m_showButton, Qt::AlignVCenter); | 175 layout->setAlignment(m_showButton, Qt::AlignVCenter); |
176 } | 176 } |
177 | 177 |
178 if (params) { | 178 if (params) { |
179 | 179 |
180 QLabel *playLabel = new QLabel(tr("Play")); | |
181 layout->addWidget(playLabel); | |
182 layout->setAlignment(playLabel, Qt::AlignVCenter); | |
183 | |
184 m_playButton = new LEDButton(Qt::darkGreen); | |
185 m_playButton->setState(!params->isPlayMuted()); | |
186 layout->addWidget(m_playButton); | |
187 connect(m_playButton, SIGNAL(stateChanged(bool)), | |
188 this, SLOT(playAudibleButtonChanged(bool))); | |
189 connect(m_playButton, SIGNAL(mouseEntered()), | |
190 this, SLOT(mouseEnteredWidget())); | |
191 connect(m_playButton, SIGNAL(mouseLeft()), | |
192 this, SLOT(mouseLeftWidget())); | |
193 connect(params, SIGNAL(playAudibleChanged(bool)), | |
194 this, SLOT(playAudibleChanged(bool))); | |
195 layout->setAlignment(m_playButton, Qt::AlignVCenter); | |
196 | |
197 layout->insertStretch(-1, 10); | 180 layout->insertStretch(-1, 10); |
198 | 181 |
199 if (params->getPlayClipId() != "") { | 182 if (params->getPlayClipId() != "") { |
200 QPushButton *playParamButton = | 183 NotifyingPushButton *playParamButton = new NotifyingPushButton; |
201 new QPushButton(QIcon(":icons/faders.png"), ""); | 184 playParamButton->setObjectName("playParamButton"); |
185 playParamButton->setIcon(IconLoader().load("faders")); | |
202 playParamButton->setFixedWidth(WidgetScale::scalePixelSize(24)); | 186 playParamButton->setFixedWidth(WidgetScale::scalePixelSize(24)); |
203 playParamButton->setFixedHeight(WidgetScale::scalePixelSize(24)); | 187 playParamButton->setFixedHeight(WidgetScale::scalePixelSize(24)); |
204 layout->addWidget(playParamButton); | 188 layout->addWidget(playParamButton); |
205 connect(playParamButton, SIGNAL(clicked()), | 189 connect(playParamButton, SIGNAL(clicked()), |
206 this, SLOT(editPlayParameters())); | 190 this, SLOT(editPlayParameters())); |
191 connect(playParamButton, SIGNAL(mouseEntered()), | |
192 this, SLOT(mouseEnteredWidget())); | |
193 connect(playParamButton, SIGNAL(mouseLeft()), | |
194 this, SLOT(mouseLeftWidget())); | |
207 } | 195 } |
208 | 196 |
209 LevelPanToolButton *levelPan = new LevelPanToolButton; | 197 LevelPanToolButton *levelPan = new LevelPanToolButton; |
210 layout->addWidget(levelPan); | 198 layout->addWidget(levelPan); |
211 connect(levelPan, SIGNAL(levelChanged(float)), | 199 connect(levelPan, SIGNAL(levelChanged(float)), |
214 this, SLOT(playPanControlChanged(float))); | 202 this, SLOT(playPanControlChanged(float))); |
215 connect(params, SIGNAL(playGainChanged(float)), | 203 connect(params, SIGNAL(playGainChanged(float)), |
216 levelPan, SLOT(setLevel(float))); | 204 levelPan, SLOT(setLevel(float))); |
217 connect(params, SIGNAL(playPanChanged(float)), | 205 connect(params, SIGNAL(playPanChanged(float)), |
218 levelPan, SLOT(setPan(float))); | 206 levelPan, SLOT(setPan(float))); |
207 connect(levelPan, SIGNAL(mouseEntered()), | |
208 this, SLOT(mouseEnteredWidget())); | |
209 connect(levelPan, SIGNAL(mouseLeft()), | |
210 this, SLOT(mouseLeftWidget())); | |
211 | |
212 m_playButton = new NotifyingPushButton; | |
213 m_playButton->setCheckable(true); | |
214 m_playButton->setIcon(IconLoader().load("speaker")); | |
215 m_playButton->setChecked(!params->isPlayMuted()); | |
216 layout->addWidget(m_playButton); | |
217 connect(m_playButton, SIGNAL(toggled(bool)), | |
218 this, SLOT(playAudibleButtonChanged(bool))); | |
219 connect(m_playButton, SIGNAL(mouseEntered()), | |
220 this, SLOT(mouseEnteredWidget())); | |
221 connect(m_playButton, SIGNAL(mouseLeft()), | |
222 this, SLOT(mouseLeftWidget())); | |
223 connect(params, SIGNAL(playAudibleChanged(bool)), | |
224 this, SLOT(playAudibleChanged(bool))); | |
225 layout->setAlignment(m_playButton, Qt::AlignVCenter); | |
219 | 226 |
220 } else { | 227 } else { |
221 | 228 |
222 layout->insertStretch(-1, 10); | 229 layout->insertStretch(-1, 10); |
223 } | 230 } |
650 } | 657 } |
651 | 658 |
652 void | 659 void |
653 PropertyBox::playAudibleChanged(bool audible) | 660 PropertyBox::playAudibleChanged(bool audible) |
654 { | 661 { |
655 m_playButton->setState(audible); | 662 m_playButton->setChecked(audible); |
656 } | 663 } |
657 | 664 |
658 void | 665 void |
659 PropertyBox::playAudibleButtonChanged(bool audible) | 666 PropertyBox::playAudibleButtonChanged(bool audible) |
660 { | 667 { |
784 | 791 |
785 if (!m_container) return; | 792 if (!m_container) return; |
786 QString cname = m_container->getPropertyContainerName(); | 793 QString cname = m_container->getPropertyContainerName(); |
787 if (cname == "") return; | 794 if (cname == "") return; |
788 | 795 |
796 LevelPanToolButton *lp = qobject_cast<LevelPanToolButton *>(w); | |
797 if (lp) { | |
798 emit contextHelpChanged(tr("Adjust playback level and pan of %1").arg(cname)); | |
799 return; | |
800 } | |
801 | |
789 QString wname = w->objectName(); | 802 QString wname = w->objectName(); |
790 | 803 |
804 if (wname == "playParamButton") { | |
805 PlayParameters *params = m_container->getPlayParameters(); | |
806 if (params) { | |
807 emit contextHelpChanged | |
808 (tr("Change sound used for playback (currently \"%1\")") | |
809 .arg(params->getPlayClipId())); | |
810 return; | |
811 } | |
812 } | |
813 | |
791 QString extraText; | 814 QString extraText; |
792 AudioDial *dial = dynamic_cast<AudioDial *>(w); | 815 |
816 AudioDial *dial = qobject_cast<AudioDial *>(w); | |
793 if (dial) { | 817 if (dial) { |
794 double mv = dial->mappedValue(); | 818 double mv = dial->mappedValue(); |
795 QString unit = ""; | 819 QString unit = ""; |
796 if (dial->rangeMapper()) unit = dial->rangeMapper()->getUnit(); | 820 if (dial->rangeMapper()) unit = dial->rangeMapper()->getUnit(); |
797 if (unit != "") { | 821 if (unit != "") { |