mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-08-24 10:14:13 -05:00
UI: Move VolumeSlider widget to volume control
This commit is contained in:
+1
-1
@@ -42,7 +42,7 @@
|
||||
#include "obs-app.hpp"
|
||||
#include "obs-proxy-style.hpp"
|
||||
#include "log-viewer.hpp"
|
||||
#include "slider-ignorewheel.hpp"
|
||||
#include "volume-control.hpp"
|
||||
#include "window-basic-main.hpp"
|
||||
#ifdef __APPLE__
|
||||
#include "window-permissions.hpp"
|
||||
|
||||
@@ -21,80 +21,6 @@ void SliderIgnoreScroll::wheelEvent(QWheelEvent *event)
|
||||
QSlider::wheelEvent(event);
|
||||
}
|
||||
|
||||
VolumeSlider::VolumeSlider(obs_fader_t *fader, QWidget *parent)
|
||||
: SliderIgnoreScroll(parent)
|
||||
{
|
||||
fad = fader;
|
||||
}
|
||||
|
||||
VolumeSlider::VolumeSlider(obs_fader_t *fader, Qt::Orientation orientation,
|
||||
QWidget *parent)
|
||||
: SliderIgnoreScroll(orientation, parent)
|
||||
{
|
||||
fad = fader;
|
||||
}
|
||||
|
||||
VolumeAccessibleInterface::VolumeAccessibleInterface(QWidget *w)
|
||||
: QAccessibleWidget(w)
|
||||
{
|
||||
}
|
||||
|
||||
VolumeSlider *VolumeAccessibleInterface::slider() const
|
||||
{
|
||||
return qobject_cast<VolumeSlider *>(object());
|
||||
}
|
||||
|
||||
QString VolumeAccessibleInterface::text(QAccessible::Text t) const
|
||||
{
|
||||
if (slider()->isVisible()) {
|
||||
switch (t) {
|
||||
case QAccessible::Text::Value:
|
||||
return currentValue().toString();
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return QAccessibleWidget::text(t);
|
||||
}
|
||||
|
||||
QVariant VolumeAccessibleInterface::currentValue() const
|
||||
{
|
||||
QString text;
|
||||
float db = obs_fader_get_db(slider()->fad);
|
||||
|
||||
if (db < -96.0f)
|
||||
text = "-inf dB";
|
||||
else
|
||||
text = QString::number(db, 'f', 1).append(" dB");
|
||||
|
||||
return text;
|
||||
}
|
||||
|
||||
void VolumeAccessibleInterface::setCurrentValue(const QVariant &value)
|
||||
{
|
||||
slider()->setValue(value.toInt());
|
||||
}
|
||||
|
||||
QVariant VolumeAccessibleInterface::maximumValue() const
|
||||
{
|
||||
return slider()->maximum();
|
||||
}
|
||||
|
||||
QVariant VolumeAccessibleInterface::minimumValue() const
|
||||
{
|
||||
return slider()->minimum();
|
||||
}
|
||||
|
||||
QVariant VolumeAccessibleInterface::minimumStepSize() const
|
||||
{
|
||||
return slider()->singleStep();
|
||||
}
|
||||
|
||||
QAccessible::Role VolumeAccessibleInterface::role() const
|
||||
{
|
||||
return QAccessible::Role::Slider;
|
||||
}
|
||||
|
||||
void SliderIgnoreClick::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
QStyleOptionSlider styleOption;
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
#include <QSlider>
|
||||
#include <QInputEvent>
|
||||
#include <QtCore/QObject>
|
||||
#include <QAccessibleWidget>
|
||||
#include <QStyleOptionSlider>
|
||||
|
||||
class SliderIgnoreScroll : public QSlider {
|
||||
@@ -19,38 +18,6 @@ protected:
|
||||
virtual void wheelEvent(QWheelEvent *event) override;
|
||||
};
|
||||
|
||||
class VolumeSlider : public SliderIgnoreScroll {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
obs_fader_t *fad;
|
||||
|
||||
VolumeSlider(obs_fader_t *fader, QWidget *parent = nullptr);
|
||||
VolumeSlider(obs_fader_t *fader, Qt::Orientation orientation,
|
||||
QWidget *parent = nullptr);
|
||||
};
|
||||
|
||||
class VolumeAccessibleInterface : public QAccessibleWidget {
|
||||
|
||||
public:
|
||||
VolumeAccessibleInterface(QWidget *w);
|
||||
|
||||
QVariant currentValue() const;
|
||||
void setCurrentValue(const QVariant &value);
|
||||
|
||||
QVariant maximumValue() const;
|
||||
QVariant minimumValue() const;
|
||||
|
||||
QVariant minimumStepSize() const;
|
||||
|
||||
private:
|
||||
VolumeSlider *slider() const;
|
||||
|
||||
protected:
|
||||
virtual QAccessible::Role role() const override;
|
||||
virtual QString text(QAccessible::Text t) const override;
|
||||
};
|
||||
|
||||
class SliderIgnoreClick : public SliderIgnoreScroll {
|
||||
public:
|
||||
inline SliderIgnoreClick(Qt::Orientation orientation,
|
||||
|
||||
@@ -1518,3 +1518,77 @@ void VolumeMeterTimer::timerEvent(QTimerEvent *)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VolumeSlider::VolumeSlider(obs_fader_t *fader, QWidget *parent)
|
||||
: SliderIgnoreScroll(parent)
|
||||
{
|
||||
fad = fader;
|
||||
}
|
||||
|
||||
VolumeSlider::VolumeSlider(obs_fader_t *fader, Qt::Orientation orientation,
|
||||
QWidget *parent)
|
||||
: SliderIgnoreScroll(orientation, parent)
|
||||
{
|
||||
fad = fader;
|
||||
}
|
||||
|
||||
VolumeAccessibleInterface::VolumeAccessibleInterface(QWidget *w)
|
||||
: QAccessibleWidget(w)
|
||||
{
|
||||
}
|
||||
|
||||
VolumeSlider *VolumeAccessibleInterface::slider() const
|
||||
{
|
||||
return qobject_cast<VolumeSlider *>(object());
|
||||
}
|
||||
|
||||
QString VolumeAccessibleInterface::text(QAccessible::Text t) const
|
||||
{
|
||||
if (slider()->isVisible()) {
|
||||
switch (t) {
|
||||
case QAccessible::Text::Value:
|
||||
return currentValue().toString();
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return QAccessibleWidget::text(t);
|
||||
}
|
||||
|
||||
QVariant VolumeAccessibleInterface::currentValue() const
|
||||
{
|
||||
QString text;
|
||||
float db = obs_fader_get_db(slider()->fad);
|
||||
|
||||
if (db < -96.0f)
|
||||
text = "-inf dB";
|
||||
else
|
||||
text = QString::number(db, 'f', 1).append(" dB");
|
||||
|
||||
return text;
|
||||
}
|
||||
|
||||
void VolumeAccessibleInterface::setCurrentValue(const QVariant &value)
|
||||
{
|
||||
slider()->setValue(value.toInt());
|
||||
}
|
||||
|
||||
QVariant VolumeAccessibleInterface::maximumValue() const
|
||||
{
|
||||
return slider()->maximum();
|
||||
}
|
||||
|
||||
QVariant VolumeAccessibleInterface::minimumValue() const
|
||||
{
|
||||
return slider()->minimum();
|
||||
}
|
||||
|
||||
QVariant VolumeAccessibleInterface::minimumStepSize() const
|
||||
{
|
||||
return slider()->singleStep();
|
||||
}
|
||||
|
||||
QAccessible::Role VolumeAccessibleInterface::role() const
|
||||
{
|
||||
return QAccessible::Role::Slider;
|
||||
}
|
||||
|
||||
+36
-2
@@ -7,6 +7,8 @@
|
||||
#include <QMutex>
|
||||
#include <QList>
|
||||
#include <QMenu>
|
||||
#include <QAccessibleWidget>
|
||||
#include "slider-ignorewheel.hpp"
|
||||
|
||||
class QPushButton;
|
||||
class VolumeMeterTimer;
|
||||
@@ -270,7 +272,7 @@ protected:
|
||||
};
|
||||
|
||||
class QLabel;
|
||||
class QSlider;
|
||||
class VolumeSlider;
|
||||
class MuteCheckBox;
|
||||
class OBSSourceLabel;
|
||||
|
||||
@@ -283,7 +285,7 @@ private:
|
||||
OBSSourceLabel *nameLabel;
|
||||
QLabel *volLabel;
|
||||
VolumeMeter *volMeter;
|
||||
QSlider *slider;
|
||||
VolumeSlider *slider;
|
||||
MuteCheckBox *mute;
|
||||
QPushButton *config = nullptr;
|
||||
float levelTotal;
|
||||
@@ -330,3 +332,35 @@ public:
|
||||
|
||||
void refreshColors();
|
||||
};
|
||||
|
||||
class VolumeSlider : public SliderIgnoreScroll {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
obs_fader_t *fad;
|
||||
|
||||
VolumeSlider(obs_fader_t *fader, QWidget *parent = nullptr);
|
||||
VolumeSlider(obs_fader_t *fader, Qt::Orientation orientation,
|
||||
QWidget *parent = nullptr);
|
||||
};
|
||||
|
||||
class VolumeAccessibleInterface : public QAccessibleWidget {
|
||||
|
||||
public:
|
||||
VolumeAccessibleInterface(QWidget *w);
|
||||
|
||||
QVariant currentValue() const;
|
||||
void setCurrentValue(const QVariant &value);
|
||||
|
||||
QVariant maximumValue() const;
|
||||
QVariant minimumValue() const;
|
||||
|
||||
QVariant minimumStepSize() const;
|
||||
|
||||
private:
|
||||
VolumeSlider *slider() const;
|
||||
|
||||
protected:
|
||||
virtual QAccessible::Role role() const override;
|
||||
virtual QString text(QAccessible::Text t) const override;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user