Mercurial > hg > svgui
changeset 1189:7609580fb05a levelpanwidget
Make play params area of property box look a bit better on OSX
author | Chris Cannam |
---|---|
date | Thu, 15 Dec 2016 11:54:12 +0000 |
parents | 9907be1c4f89 |
children | 2513f660c183 |
files | files.pri widgets/NotifyingPushButton.h widgets/PropertyBox.cpp widgets/PropertyBox.h |
diffstat | 4 files changed, 30 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/files.pri Thu Dec 15 11:53:52 2016 +0000 +++ b/files.pri Thu Dec 15 11:54:12 2016 +0000 @@ -66,6 +66,7 @@ widgets/NotifyingComboBox.h \ widgets/NotifyingPushButton.h \ widgets/NotifyingTabBar.h \ + widgets/NotifyingToolButton.h \ widgets/Panner.h \ widgets/PluginParameterBox.h \ widgets/PluginParameterDialog.h \ @@ -144,6 +145,7 @@ widgets/NotifyingComboBox.cpp \ widgets/NotifyingPushButton.cpp \ widgets/NotifyingTabBar.cpp \ + widgets/NotifyingToolButton.cpp \ widgets/Panner.cpp \ widgets/PluginParameterBox.cpp \ widgets/PluginParameterDialog.cpp \
--- a/widgets/NotifyingPushButton.h Thu Dec 15 11:53:52 2016 +0000 +++ b/widgets/NotifyingPushButton.h Thu Dec 15 11:54:12 2016 +0000 @@ -13,14 +13,15 @@ COPYING included with this distribution for more information. */ -#ifndef _NOTIFYING_PUSH_BUTTON_H_ -#define _NOTIFYING_PUSH_BUTTON_H_ +#ifndef SV_NOTIFYING_PUSH_BUTTON_H +#define SV_NOTIFYING_PUSH_BUTTON_H #include <QPushButton> /** - * Very trivial enhancement to QPushButton to make it emit signals when - * the mouse enters and leaves (for context help). + * Very trivial enhancement to QPushButton to make it emit signals + * when the mouse enters and leaves (for context help). See also + * NotifyingToolButton */ class NotifyingPushButton : public QPushButton
--- a/widgets/PropertyBox.cpp Thu Dec 15 11:53:52 2016 +0000 +++ b/widgets/PropertyBox.cpp Thu Dec 15 11:54:12 2016 +0000 @@ -34,12 +34,14 @@ #include "NotifyingCheckBox.h" #include "NotifyingComboBox.h" #include "NotifyingPushButton.h" +#include "NotifyingToolButton.h" #include "ColourNameDialog.h" #include <QGridLayout> #include <QHBoxLayout> #include <QVBoxLayout> #include <QPushButton> +#include <QToolButton> #include <QLabel> #include <QFrame> #include <QApplication> @@ -150,7 +152,7 @@ m_viewPlayFrame->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken); m_mainBox->addWidget(m_viewPlayFrame); - QHBoxLayout *layout = new QHBoxLayout; + QGridLayout *layout = new QGridLayout; m_viewPlayFrame->setLayout(layout); layout->setMargin(layout->margin() / 2); @@ -158,14 +160,17 @@ #ifdef DEBUG_PROPERTY_BOX SVDEBUG << "PropertyBox::populateViewPlayFrame: container " << m_container << " (name " << m_container->getPropertyContainerName() << ") params " << params << endl; #endif - + + QSize buttonSize = WidgetScale::scaleQSize(QSize(26, 26)); + int col = 0; + if (params) { - - m_playButton = new NotifyingPushButton; + + m_playButton = new NotifyingToolButton; m_playButton->setCheckable(true); m_playButton->setIcon(IconLoader().load("speaker")); m_playButton->setChecked(!params->isPlayMuted()); - layout->addWidget(m_playButton); + m_playButton->setFixedSize(buttonSize); connect(m_playButton, SIGNAL(toggled(bool)), this, SLOT(playAudibleButtonChanged(bool))); connect(m_playButton, SIGNAL(mouseEntered()), @@ -174,10 +179,11 @@ this, SLOT(mouseLeftWidget())); connect(params, SIGNAL(playAudibleChanged(bool)), this, SLOT(playAudibleChanged(bool))); - layout->setAlignment(m_playButton, Qt::AlignVCenter); LevelPanToolButton *levelPan = new LevelPanToolButton; - layout->addWidget(levelPan); + levelPan->setFixedSize(buttonSize); + levelPan->setImageSize((buttonSize.height() * 3) / 4); + layout->addWidget(levelPan, 0, col++, Qt::AlignCenter); connect(levelPan, SIGNAL(levelChanged(float)), this, SLOT(playGainControlChanged(float))); connect(levelPan, SIGNAL(panChanged(float)), @@ -191,13 +197,14 @@ connect(levelPan, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget())); + layout->addWidget(m_playButton, 0, col++, Qt::AlignCenter); + if (params->getPlayClipId() != "") { - NotifyingPushButton *playParamButton = new NotifyingPushButton; + QToolButton *playParamButton = new QToolButton; playParamButton->setObjectName("playParamButton"); playParamButton->setIcon(IconLoader().load("faders")); - playParamButton->setFixedWidth(WidgetScale::scalePixelSize(24)); - playParamButton->setFixedHeight(WidgetScale::scalePixelSize(24)); - layout->addWidget(playParamButton); + playParamButton->setFixedSize(buttonSize); + layout->addWidget(playParamButton, 0, col++, Qt::AlignCenter); connect(playParamButton, SIGNAL(clicked()), this, SLOT(editPlayParameters())); connect(playParamButton, SIGNAL(mouseEntered()), @@ -207,23 +214,21 @@ } } - layout->insertStretch(-1, 10); + layout->setColumnStretch(col++, 10); if (layer) { QLabel *showLabel = new QLabel(tr("Show")); - layout->addWidget(showLabel); - layout->setAlignment(showLabel, Qt::AlignVCenter); + layout->addWidget(showLabel, 0, col++, Qt::AlignVCenter | Qt::AlignRight); m_showButton = new LEDButton(Qt::blue); - layout->addWidget(m_showButton); + layout->addWidget(m_showButton, 0, col++, Qt::AlignVCenter | Qt::AlignLeft); connect(m_showButton, SIGNAL(stateChanged(bool)), this, SIGNAL(showLayer(bool))); connect(m_showButton, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget())); connect(m_showButton, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget())); - layout->setAlignment(m_showButton, Qt::AlignVCenter); } }
--- a/widgets/PropertyBox.h Thu Dec 15 11:53:52 2016 +0000 +++ b/widgets/PropertyBox.h Thu Dec 15 11:54:12 2016 +0000 @@ -27,6 +27,7 @@ class QVBoxLayout; class QLabel; class LEDButton; +class QToolButton; class NotifyingPushButton; class PropertyBox : public QFrame @@ -81,7 +82,7 @@ QFrame *m_viewPlayFrame; QVBoxLayout *m_mainBox; LEDButton *m_showButton; - NotifyingPushButton *m_playButton; + QToolButton *m_playButton; std::map<QString, QGridLayout *> m_groupLayouts; std::map<QString, QWidget *> m_propertyControllers; };