0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 04:42:18 +02:00

Basic UI: Signal resize of properties view

If the properties view changed in the properties window, the viewport of
the properties would not trigger a resize because the size of the window
itself does not change.  This creates a signal that allows the parent to
know whether or not to update a viewport, if any.
This commit is contained in:
jp9000 2014-08-27 18:18:26 -07:00
parent b9c9ec3356
commit 354614a7e8
4 changed files with 24 additions and 0 deletions

View File

@ -92,6 +92,12 @@ OBSPropertiesView::OBSPropertiesView(OBSData settings_,
RefreshProperties();
}
void OBSPropertiesView::resizeEvent(QResizeEvent *event)
{
emit PropertiesResized();
UNUSED_PARAMETER(event);
}
QWidget *OBSPropertiesView::NewWidget(obs_property_t prop, QWidget *widget,
const char *signal)
{

View File

@ -74,9 +74,14 @@ private:
void AddProperty(obs_property_t property, QFormLayout *layout);
void resizeEvent(QResizeEvent *event) override;
public slots:
void RefreshProperties();
signals:
void PropertiesResized();
public:
OBSPropertiesView(OBSData settings,
obs_properties_t properties,

View File

@ -58,6 +58,9 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
view->setMinimumHeight(150);
view->show();
connect(view, SIGNAL(PropertiesResized()),
this, SLOT(OnPropertiesResized()));
connect(windowHandle(), &QWindow::screenChanged, [this]() {
if (resizeTimer)
killTimer(resizeTimer);
@ -107,6 +110,13 @@ void OBSBasicProperties::DrawPreview(void *data, uint32_t cx, uint32_t cy)
gs_viewport_pop();
}
void OBSBasicProperties::OnPropertiesResized()
{
if (resizeTimer)
killTimer(resizeTimer);
resizeTimer = startTimer(100);
}
void OBSBasicProperties::resizeEvent(QResizeEvent *event)
{
if (isVisible()) {

View File

@ -44,6 +44,9 @@ private:
static void SourceRemoved(void *data, calldata_t params);
static void DrawPreview(void *data, uint32_t cx, uint32_t cy);
private slots:
void OnPropertiesResized();
public:
OBSBasicProperties(QWidget *parent, OBSSource source_);