UI: Prune obs_display code from secondary windows

(Non-compiling commit: windowless-context branch)

Now that all obs_display related code has been moved to OBSQTDisplay,
we can prune a whole bunch of boilerplate code that had to be repeated
for the displays of each window.

Affects:
- Properties
- Filters
- Interact
- Projector
This commit is contained in:
jp9000
2015-08-02 00:25:08 -07:00
parent f0b903435c
commit e93ca4cd10
8 changed files with 32 additions and 136 deletions

View File

@@ -85,14 +85,6 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
installEventFilter(CreateShortcutFilter());
connect(view, SIGNAL(PropertiesResized()),
this, SLOT(OnPropertiesResized()));
connect(windowHandle(), &QWindow::screenChanged, [this]() {
QSize size = GetPixelSize(preview);
obs_display_resize(display, size.width(), size.height());
});
const char *name = obs_source_get_name(source);
setWindowTitle(QTStr("Basic.PropertiesWindow").arg(QT_UTF8(name)));
@@ -102,6 +94,14 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
"update_properties",
OBSBasicProperties::UpdateProperties,
this);
auto addDrawCallback = [this] ()
{
obs_display_add_draw_callback(preview->GetDisplay(),
OBSBasicProperties::DrawPreview, this);
};
connect(preview, &OBSQTDisplay::DisplayCreated, addDrawCallback);
}
OBSBasicProperties::~OBSBasicProperties()
@@ -190,30 +190,8 @@ void OBSBasicProperties::DrawPreview(void *data, uint32_t cx, uint32_t cy)
gs_viewport_pop();
}
void OBSBasicProperties::OnPropertiesResized()
{
QSize size = GetPixelSize(preview);
obs_display_resize(display, size.width(), size.height());
}
void OBSBasicProperties::resizeEvent(QResizeEvent *event)
{
if (isVisible()) {
QSize size = GetPixelSize(preview);
obs_display_resize(display, size.width(), size.height());
}
QDialog::resizeEvent(event);
}
void OBSBasicProperties::Cleanup()
{
// remove draw callback and release display in case our drawable
// surfaces go away before the destructor gets called
obs_display_remove_draw_callback(display,
OBSBasicProperties::DrawPreview, this);
display = nullptr;
config_set_int(App()->GlobalConfig(), "PropertiesWindow", "cx",
width());
config_set_int(App()->GlobalConfig(), "PropertiesWindow", "cy",
@@ -250,21 +228,7 @@ void OBSBasicProperties::closeEvent(QCloseEvent *event)
void OBSBasicProperties::Init()
{
gs_init_data init_data = {};
show();
QSize previewSize = GetPixelSize(preview);
init_data.cx = uint32_t(previewSize.width());
init_data.cy = uint32_t(previewSize.height());
init_data.format = GS_RGBA;
QTToGSWindow(preview->winId(), init_data.window);
display = obs_display_create(&init_data);
if (display)
obs_display_add_draw_callback(display,
OBSBasicProperties::DrawPreview, this);
}
int OBSBasicProperties::CheckSettings()