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:
parent
b9c9ec3356
commit
354614a7e8
@ -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)
|
||||
{
|
||||
|
@ -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,
|
||||
|
@ -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()) {
|
||||
|
@ -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_);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user