diff --git a/obs/CMakeLists.txt b/obs/CMakeLists.txt
index faedea927..273e04c81 100644
--- a/obs/CMakeLists.txt
+++ b/obs/CMakeLists.txt
@@ -184,7 +184,6 @@ set(obs_UI
forms/OBSBasicSettings.ui
forms/OBSBasicSourceSelect.ui
forms/OBSBasicInteraction.ui
- forms/OBSBasicProperties.ui
forms/OBSRemux.ui)
set(obs_QRC
diff --git a/obs/forms/OBSBasicProperties.ui b/obs/forms/OBSBasicProperties.ui
deleted file mode 100644
index 6102903f7..000000000
--- a/obs/forms/OBSBasicProperties.ui
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
- OBSBasicProperties
-
-
-
- 0
- 0
- 664
- 562
-
-
-
- Dialog
-
-
- true
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
-
- OBSQTDisplay
- QWidget
-
- 1
-
-
-
-
-
diff --git a/obs/window-basic-properties.cpp b/obs/window-basic-properties.cpp
index 030ce080f..49cd05c21 100644
--- a/obs/window-basic-properties.cpp
+++ b/obs/window-basic-properties.cpp
@@ -31,9 +31,9 @@ using namespace std;
OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
: QDialog (parent),
+ preview (new OBSQTDisplay(this)),
main (qobject_cast(parent)),
acceptClicked (false),
- ui (new Ui::OBSBasicProperties),
source (source_),
removedSignal (obs_source_get_signal_handler(source),
"remove", OBSBasicProperties::SourceRemoved,
@@ -53,11 +53,11 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
QDialogButtonBox::Cancel);
buttonBox->setObjectName(QStringLiteral("buttonBox"));
- ui->setupUi(this);
-
if (cx > 400 && cy > 400)
resize(cx, cy);
+ QMetaObject::connectSlotsByName(this);
+
/* The OBSData constructor increments the reference once */
obs_data_release(oldSettings);
@@ -69,6 +69,12 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
(PropertiesReloadCallback)obs_source_properties,
(PropertiesUpdateCallback)obs_source_update);
+ preview->setMinimumSize(20, 20);
+ preview->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,
+ QSizePolicy::Expanding));
+
+ setLayout(new QVBoxLayout(this));
+ layout()->addWidget(preview);
layout()->addWidget(view);
layout()->addWidget(buttonBox);
layout()->setAlignment(buttonBox, Qt::AlignRight | Qt::AlignBottom);
@@ -83,7 +89,7 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
this, SLOT(OnPropertiesResized()));
connect(windowHandle(), &QWindow::screenChanged, [this]() {
- QSize size = GetPixelSize(ui->preview);
+ QSize size = GetPixelSize(preview);
obs_display_resize(display, size.width(), size.height());
});
@@ -186,14 +192,14 @@ void OBSBasicProperties::DrawPreview(void *data, uint32_t cx, uint32_t cy)
void OBSBasicProperties::OnPropertiesResized()
{
- QSize size = GetPixelSize(ui->preview);
+ QSize size = GetPixelSize(preview);
obs_display_resize(display, size.width(), size.height());
}
void OBSBasicProperties::resizeEvent(QResizeEvent *event)
{
if (isVisible()) {
- QSize size = GetPixelSize(ui->preview);
+ QSize size = GetPixelSize(preview);
obs_display_resize(display, size.width(), size.height());
}
@@ -248,11 +254,11 @@ void OBSBasicProperties::Init()
show();
- QSize previewSize = GetPixelSize(ui->preview);
+ QSize previewSize = GetPixelSize(preview);
init_data.cx = uint32_t(previewSize.width());
init_data.cy = uint32_t(previewSize.height());
init_data.format = GS_RGBA;
- QTToGSWindow(ui->preview->winId(), init_data.window);
+ QTToGSWindow(preview->winId(), init_data.window);
display = obs_display_create(&init_data);
diff --git a/obs/window-basic-properties.hpp b/obs/window-basic-properties.hpp
index 30426899a..369d88b93 100644
--- a/obs/window-basic-properties.hpp
+++ b/obs/window-basic-properties.hpp
@@ -19,22 +19,22 @@
#include
#include
-#include
+#include
+#include "qt-display.hpp"
#include
class OBSPropertiesView;
class OBSBasic;
-#include "ui_OBSBasicProperties.h"
-
class OBSBasicProperties : public QDialog {
Q_OBJECT
private:
+ QPointer preview;
+
OBSBasic *main;
bool acceptClicked;
- std::unique_ptr ui;
OBSSource source;
OBSDisplay display;
OBSSignal removedSignal;