Enable setting a minimum and initial duration

This commit is contained in:
WarmUpTill
2023-02-22 17:12:54 +01:00
committed by WarmUpTill
parent 1fd8546354
commit 59ecf43c5f
2 changed files with 16 additions and 5 deletions

View File

@@ -6,6 +6,11 @@
#include <iomanip>
#include <QHBoxLayout>
Duration::Duration(double initialValueInSeconds)
: seconds(initialValueInSeconds)
{
}
void Duration::Save(obs_data_t *obj, const char *secondsName,
const char *unitName) const
{
@@ -111,13 +116,16 @@ static void populateUnits(QComboBox *list)
list->addItem(obs_module_text("AdvSceneSwitcher.unit.hours"));
}
DurationSelection::DurationSelection(QWidget *parent, bool showUnitSelection)
: QWidget(parent), _unitMultiplier(1)
DurationSelection::DurationSelection(QWidget *parent, bool showUnitSelection,
double minValue)
: QWidget(parent),
_duration(new QDoubleSpinBox(parent)),
_unitSelection(new QComboBox()),
_unitMultiplier(1)
{
_duration = new QDoubleSpinBox(parent);
_duration->setMinimum(minValue);
_duration->setMaximum(86400); // 24 hours
_unitSelection = new QComboBox();
populateUnits(_unitSelection);
QWidget::connect(_duration, SIGNAL(valueChanged(double)), this,

View File

@@ -15,6 +15,9 @@ enum class DurationUnit {
class Duration {
public:
Duration() = default;
Duration(double initialValueInSeconds);
void Save(obs_data_t *obj, const char *secondsName = "seconds",
const char *unitName = "displayUnit") const;
void Load(obs_data_t *obj, const char *secondsName = "seconds",
@@ -39,7 +42,7 @@ class DurationSelection : public QWidget {
Q_OBJECT
public:
DurationSelection(QWidget *parent = nullptr,
bool showUnitSelection = true);
bool showUnitSelection = true, double minValue = 0.0);
void SetValue(double value);
void SetUnit(DurationUnit u);
void SetDuration(Duration d);