Browse Source

UI: Move VolumeSlider widget to volume control

Warchamp7 1 year ago
parent
commit
aba600cec0
5 changed files with 111 additions and 110 deletions
  1. 1 1
      UI/obs-app.cpp
  2. 0 74
      UI/slider-ignorewheel.cpp
  3. 0 33
      UI/slider-ignorewheel.hpp
  4. 74 0
      UI/volume-control.cpp
  5. 36 2
      UI/volume-control.hpp

+ 1 - 1
UI/obs-app.cpp

@@ -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"

+ 0 - 74
UI/slider-ignorewheel.cpp

@@ -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;

+ 0 - 33
UI/slider-ignorewheel.hpp

@@ -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,

+ 74 - 0
UI/volume-control.cpp

@@ -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
UI/volume-control.hpp

@@ -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;
+};