diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini
index 9bb6247fc..5d2339105 100644
--- a/UI/data/locale/en-US.ini
+++ b/UI/data/locale/en-US.ini
@@ -78,6 +78,7 @@ RemuxRecordings="Remux Recordings"
Next="Next"
Back="Back"
Defaults="Defaults"
+RestoreDefaults="Defaults"
HideMixer="Hide in Mixer"
TransitionOverride="Transition Override"
ShowTransition="Show Transition"
diff --git a/UI/forms/OBSBasicFilters.ui b/UI/forms/OBSBasicFilters.ui
index aead3fdc2..06ce5e4c5 100644
--- a/UI/forms/OBSBasicFilters.ui
+++ b/UI/forms/OBSBasicFilters.ui
@@ -578,7 +578,7 @@
-
- QDialogButtonBox::Close|QDialogButtonBox::Reset
+ QDialogButtonBox::Close|QDialogButtonBox::RestoreDefaults
diff --git a/UI/forms/OBSBasicProperties.ui b/UI/forms/OBSBasicProperties.ui
new file mode 100644
index 000000000..1565b3393
--- /dev/null
+++ b/UI/forms/OBSBasicProperties.ui
@@ -0,0 +1,129 @@
+
+
+ OBSBasicProperties
+
+
+
+ 0
+ 0
+ 720
+ 580
+
+
+
+ Properties
+
+
+ -
+
+
+
+ 0
+ 400
+
+
+
+ Qt::Vertical
+
+
+ false
+
+
+
+
+ 0
+ 3
+
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 20
+ 150
+
+
+
+
+
+
+
+
+
+ 0
+ 1
+
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+
+
+
+ -
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::RestoreDefaults
+
+
+
+
+
+
+
+ OBSQTDisplay
+ QWidget
+
+ 1
+
+
+
+
+
+
+
diff --git a/UI/window-basic-filters.cpp b/UI/window-basic-filters.cpp
index 75d81ffc4..cd112d747 100644
--- a/UI/window-basic-filters.cpp
+++ b/UI/window-basic-filters.cpp
@@ -105,10 +105,7 @@ OBSBasicFilters::OBSBasicFilters(QWidget *parent, OBSSource source_)
connect(close, SIGNAL(clicked()), this, SLOT(close()));
close->setDefault(true);
- ui->buttonBox->button(QDialogButtonBox::Reset)
- ->setText(QTStr("Defaults"));
-
- connect(ui->buttonBox->button(QDialogButtonBox::Reset),
+ connect(ui->buttonBox->button(QDialogButtonBox::RestoreDefaults),
SIGNAL(clicked()), this, SLOT(ResetFilters()));
uint32_t caps = obs_source_get_output_flags(source);
diff --git a/UI/window-basic-properties.cpp b/UI/window-basic-properties.cpp
index 30455d2aa..26404de6e 100644
--- a/UI/window-basic-properties.cpp
+++ b/UI/window-basic-properties.cpp
@@ -43,7 +43,7 @@ static void CreateTransitionScene(OBSSource scene, const char *text,
OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
: QDialog(parent),
- preview(new OBSQTDisplay(this)),
+ ui(new Ui::OBSBasicProperties),
main(qobject_cast(parent)),
acceptClicked(false),
source(source_),
@@ -51,8 +51,7 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
OBSBasicProperties::SourceRemoved, this),
renamedSignal(obs_source_get_signal_handler(source), "rename",
OBSBasicProperties::SourceRenamed, this),
- oldSettings(obs_data_create()),
- buttonBox(new QDialogButtonBox(this))
+ oldSettings(obs_data_create())
{
int cx = (int)config_get_int(App()->GlobalConfig(), "PropertiesWindow",
"cx");
@@ -61,24 +60,12 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
enum obs_source_type type = obs_source_get_type(source);
- buttonBox->setObjectName(QStringLiteral("buttonBox"));
- buttonBox->setStandardButtons(QDialogButtonBox::Ok |
- QDialogButtonBox::Cancel |
- QDialogButtonBox::RestoreDefaults);
+ setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
- buttonBox->button(QDialogButtonBox::Ok)->setText(QTStr("OK"));
- buttonBox->button(QDialogButtonBox::Cancel)->setText(QTStr("Cancel"));
- buttonBox->button(QDialogButtonBox::RestoreDefaults)
- ->setText(QTStr("Defaults"));
+ ui->setupUi(this);
if (cx > 400 && cy > 400)
resize(cx, cy);
- else
- resize(720, 580);
-
- setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
-
- QMetaObject::connectSlotsByName(this);
/* The OBSData constructor increments the reference once */
obs_data_release(oldSettings);
@@ -93,30 +80,13 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
(PropertiesVisualUpdateCb)obs_source_update);
view->setMinimumHeight(150);
- preview->setMinimumSize(20, 150);
- preview->setSizePolicy(
- QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
-
- // Create a QSplitter to keep a unified workflow here.
- windowSplitter = new QSplitter(Qt::Orientation::Vertical, this);
- windowSplitter->addWidget(preview);
- windowSplitter->addWidget(view);
- windowSplitter->setChildrenCollapsible(false);
- //windowSplitter->setSizes(QList({ 16777216, 150 }));
- windowSplitter->setStretchFactor(0, 3);
- windowSplitter->setStretchFactor(1, 1);
-
- setLayout(new QVBoxLayout(this));
- layout()->addWidget(windowSplitter);
+ ui->propertiesLayout->addWidget(view);
if (type == OBS_SOURCE_TYPE_TRANSITION) {
connect(view, SIGNAL(PropertiesRefreshed()), this,
SLOT(AddPreviewButton()));
}
- layout()->addWidget(buttonBox);
- layout()->setAlignment(buttonBox, Qt::AlignBottom);
-
view->show();
installEventFilter(CreateShortcutFilter());
@@ -131,13 +101,13 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
this);
auto addDrawCallback = [this]() {
- obs_display_add_draw_callback(preview->GetDisplay(),
+ obs_display_add_draw_callback(ui->preview->GetDisplay(),
OBSBasicProperties::DrawPreview,
this);
};
auto addTransitionDrawCallback = [this]() {
obs_display_add_draw_callback(
- preview->GetDisplay(),
+ ui->preview->GetDisplay(),
OBSBasicProperties::DrawTransitionPreview, this);
};
uint32_t caps = obs_source_get_output_flags(source);
@@ -146,8 +116,8 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
bool drawable_preview = (caps & OBS_SOURCE_VIDEO) != 0;
if (drawable_preview && drawable_type) {
- preview->show();
- connect(preview.data(), &OBSQTDisplay::DisplayCreated,
+ ui->preview->show();
+ connect(ui->preview, &OBSQTDisplay::DisplayCreated,
addDrawCallback);
} else if (type == OBS_SOURCE_TYPE_TRANSITION) {
@@ -190,12 +160,12 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
connect(view, &OBSPropertiesView::Changed, updateCallback);
- preview->show();
- connect(preview.data(), &OBSQTDisplay::DisplayCreated,
+ ui->preview->show();
+ connect(ui->preview, &OBSQTDisplay::DisplayCreated,
addTransitionDrawCallback);
} else {
- preview->hide();
+ ui->preview->hide();
}
}
@@ -333,7 +303,7 @@ void OBSBasicProperties::UpdateProperties(void *data, calldata_t *)
void OBSBasicProperties::on_buttonBox_clicked(QAbstractButton *button)
{
- QDialogButtonBox::ButtonRole val = buttonBox->buttonRole(button);
+ QDialogButtonBox::ButtonRole val = ui->buttonBox->buttonRole(button);
if (val == QDialogButtonBox::AcceptRole) {
@@ -472,10 +442,10 @@ void OBSBasicProperties::Cleanup()
config_set_int(App()->GlobalConfig(), "PropertiesWindow", "cy",
height());
- obs_display_remove_draw_callback(preview->GetDisplay(),
+ obs_display_remove_draw_callback(ui->preview->GetDisplay(),
OBSBasicProperties::DrawPreview, this);
obs_display_remove_draw_callback(
- preview->GetDisplay(),
+ ui->preview->GetDisplay(),
OBSBasicProperties::DrawTransitionPreview, this);
}
diff --git a/UI/window-basic-properties.hpp b/UI/window-basic-properties.hpp
index 2a4f6a4e2..9b2144432 100644
--- a/UI/window-basic-properties.hpp
+++ b/UI/window-basic-properties.hpp
@@ -27,13 +27,15 @@
class OBSPropertiesView;
class OBSBasic;
+#include "ui_OBSBasicProperties.h"
+
class OBSBasicProperties : public QDialog {
Q_OBJECT
private:
- QPointer preview;
-
OBSBasic *main;
+
+ std::unique_ptr ui;
bool acceptClicked;
OBSSource source;