UI: Update Edit Transform dialog on scene switch

Closes obsproject/obs-studio#4312
master
Mike 2021-03-13 20:36:55 +08:00 committed by jp9000
parent e09b952068
commit 9267c7e53d
3 changed files with 22 additions and 0 deletions

View File

@ -7714,6 +7714,8 @@ void OBSBasic::on_actionEditTransform_triggered()
return;
transformWindow = new OBSBasicTransform(this);
connect(ui->scenes, &QListWidget::currentItemChanged, transformWindow,
&OBSBasicTransform::OnSceneChanged);
transformWindow->show();
transformWindow->setAttribute(Qt::WA_DeleteOnClose, true);
}

View File

@ -2,6 +2,7 @@
#include "window-basic-transform.hpp"
#include "window-basic-main.hpp"
Q_DECLARE_METATYPE(OBSScene);
Q_DECLARE_METATYPE(OBSSceneItem);
static bool find_sel(obs_scene_t *, obs_sceneitem_t *item, void *param)
@ -351,3 +352,18 @@ void OBSBasicTransform::on_resetButton_clicked()
{
main->on_actionResetTransform_triggered();
}
template<typename T> static T GetOBSRef(QListWidgetItem *item)
{
return item->data(static_cast<int>(QtDataRole::OBSRef)).value<T>();
}
void OBSBasicTransform::OnSceneChanged(QListWidgetItem *current,
QListWidgetItem *)
{
if (!current)
return;
obs_scene_t *scene = GetOBSRef<OBSScene>(current);
this->SetScene(scene);
}

View File

@ -6,6 +6,7 @@
#include "ui_OBSBasicTransform.h"
class OBSBasic;
class QListWidgetItem;
class OBSBasicTransform : public QDialog {
Q_OBJECT
@ -49,4 +50,7 @@ private slots:
public:
OBSBasicTransform(OBSBasic *parent);
~OBSBasicTransform();
public slots:
void OnSceneChanged(QListWidgetItem *current, QListWidgetItem *prev);
};