UI: Add obs_frontend_open_sceneitem_edit_transform()
This commit is contained in:
parent
2ff210acfd
commit
46da073aa5
@ -630,6 +630,14 @@ struct OBSStudioAPI : obs_frontend_callbacks {
|
|||||||
Q_ARG(OBSSource, OBSSource(source)));
|
Q_ARG(OBSSource, OBSSource(source)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void obs_frontend_open_sceneitem_edit_transform(
|
||||||
|
obs_sceneitem_t *item) override
|
||||||
|
{
|
||||||
|
QMetaObject::invokeMethod(main, "OpenEditTransform",
|
||||||
|
Q_ARG(OBSSceneItem,
|
||||||
|
OBSSceneItem(item)));
|
||||||
|
}
|
||||||
|
|
||||||
char *obs_frontend_get_current_record_output_path(void) override
|
char *obs_frontend_get_current_record_output_path(void) override
|
||||||
{
|
{
|
||||||
const char *recordOutputPath = main->GetCurrentOutputPath();
|
const char *recordOutputPath = main->GetCurrentOutputPath();
|
||||||
|
@ -559,6 +559,12 @@ void obs_frontend_open_source_interaction(obs_source_t *source)
|
|||||||
c->obs_frontend_open_source_interaction(source);
|
c->obs_frontend_open_source_interaction(source);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void obs_frontend_open_sceneitem_edit_transform(obs_sceneitem_t *item)
|
||||||
|
{
|
||||||
|
if (callbacks_valid())
|
||||||
|
c->obs_frontend_open_sceneitem_edit_transform(item);
|
||||||
|
}
|
||||||
|
|
||||||
char *obs_frontend_get_current_record_output_path(void)
|
char *obs_frontend_get_current_record_output_path(void)
|
||||||
{
|
{
|
||||||
return !!callbacks_valid()
|
return !!callbacks_valid()
|
||||||
|
@ -226,6 +226,7 @@ EXPORT void obs_frontend_reset_video(void);
|
|||||||
EXPORT void obs_frontend_open_source_properties(obs_source_t *source);
|
EXPORT void obs_frontend_open_source_properties(obs_source_t *source);
|
||||||
EXPORT void obs_frontend_open_source_filters(obs_source_t *source);
|
EXPORT void obs_frontend_open_source_filters(obs_source_t *source);
|
||||||
EXPORT void obs_frontend_open_source_interaction(obs_source_t *source);
|
EXPORT void obs_frontend_open_source_interaction(obs_source_t *source);
|
||||||
|
EXPORT void obs_frontend_open_sceneitem_edit_transform(obs_sceneitem_t *item);
|
||||||
|
|
||||||
EXPORT char *obs_frontend_get_current_record_output_path(void);
|
EXPORT char *obs_frontend_get_current_record_output_path(void);
|
||||||
EXPORT const char *obs_frontend_get_locale_string(const char *string);
|
EXPORT const char *obs_frontend_get_locale_string(const char *string);
|
||||||
|
@ -141,6 +141,8 @@ struct obs_frontend_callbacks {
|
|||||||
virtual void obs_frontend_open_source_filters(obs_source_t *source) = 0;
|
virtual void obs_frontend_open_source_filters(obs_source_t *source) = 0;
|
||||||
virtual void
|
virtual void
|
||||||
obs_frontend_open_source_interaction(obs_source_t *source) = 0;
|
obs_frontend_open_source_interaction(obs_source_t *source) = 0;
|
||||||
|
virtual void
|
||||||
|
obs_frontend_open_sceneitem_edit_transform(obs_sceneitem_t *item) = 0;
|
||||||
|
|
||||||
virtual char *obs_frontend_get_current_record_output_path(void) = 0;
|
virtual char *obs_frontend_get_current_record_output_path(void) = 0;
|
||||||
virtual const char *
|
virtual const char *
|
||||||
|
@ -6391,6 +6391,15 @@ void OBSBasic::OpenInteraction(OBSSource source)
|
|||||||
CreateInteractionWindow(source);
|
CreateInteractionWindow(source);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OBSBasic::OpenEditTransform(OBSSceneItem item)
|
||||||
|
{
|
||||||
|
if (!item)
|
||||||
|
item = GetCurrentSceneItem();
|
||||||
|
if (!item)
|
||||||
|
return;
|
||||||
|
CreateEditTransformWindow(item);
|
||||||
|
}
|
||||||
|
|
||||||
void OBSBasic::OpenSceneFilters()
|
void OBSBasic::OpenSceneFilters()
|
||||||
{
|
{
|
||||||
OBSScene scene = GetCurrentScene();
|
OBSScene scene = GetCurrentScene();
|
||||||
@ -8057,14 +8066,18 @@ void OBSBasic::UpdateEditMenu()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void OBSBasic::on_actionEditTransform_triggered()
|
void OBSBasic::on_actionEditTransform_triggered()
|
||||||
|
{
|
||||||
|
const auto item = GetCurrentSceneItem();
|
||||||
|
if (!item)
|
||||||
|
return;
|
||||||
|
CreateEditTransformWindow(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OBSBasic::CreateEditTransformWindow(obs_sceneitem_t *item)
|
||||||
{
|
{
|
||||||
if (transformWindow)
|
if (transformWindow)
|
||||||
transformWindow->close();
|
transformWindow->close();
|
||||||
|
transformWindow = new OBSBasicTransform(item, this);
|
||||||
if (!GetCurrentSceneItem())
|
|
||||||
return;
|
|
||||||
|
|
||||||
transformWindow = new OBSBasicTransform(this);
|
|
||||||
connect(ui->scenes, &QListWidget::currentItemChanged, transformWindow,
|
connect(ui->scenes, &QListWidget::currentItemChanged, transformWindow,
|
||||||
&OBSBasicTransform::OnSceneChanged);
|
&OBSBasicTransform::OnSceneChanged);
|
||||||
transformWindow->show();
|
transformWindow->show();
|
||||||
|
@ -945,6 +945,7 @@ public:
|
|||||||
void CreateInteractionWindow(obs_source_t *source);
|
void CreateInteractionWindow(obs_source_t *source);
|
||||||
void CreatePropertiesWindow(obs_source_t *source);
|
void CreatePropertiesWindow(obs_source_t *source);
|
||||||
void CreateFiltersWindow(obs_source_t *source);
|
void CreateFiltersWindow(obs_source_t *source);
|
||||||
|
void CreateEditTransformWindow(obs_sceneitem_t *item);
|
||||||
|
|
||||||
QAction *AddDockWidget(QDockWidget *dock);
|
QAction *AddDockWidget(QDockWidget *dock);
|
||||||
|
|
||||||
@ -1157,6 +1158,7 @@ private slots:
|
|||||||
void OpenFilters(OBSSource source = nullptr);
|
void OpenFilters(OBSSource source = nullptr);
|
||||||
void OpenProperties(OBSSource source = nullptr);
|
void OpenProperties(OBSSource source = nullptr);
|
||||||
void OpenInteraction(OBSSource source = nullptr);
|
void OpenInteraction(OBSSource source = nullptr);
|
||||||
|
void OpenEditTransform(OBSSceneItem item = nullptr);
|
||||||
|
|
||||||
void EnablePreviewDisplay(bool enable);
|
void EnablePreviewDisplay(bool enable);
|
||||||
void TogglePreview();
|
void TogglePreview();
|
||||||
|
@ -40,7 +40,7 @@ void OBSBasicTransform::HookWidget(QWidget *widget, const char *signal,
|
|||||||
#define ISCROLL_CHANGED SIGNAL(valueChanged(int))
|
#define ISCROLL_CHANGED SIGNAL(valueChanged(int))
|
||||||
#define DSCROLL_CHANGED SIGNAL(valueChanged(double))
|
#define DSCROLL_CHANGED SIGNAL(valueChanged(double))
|
||||||
|
|
||||||
OBSBasicTransform::OBSBasicTransform(OBSBasic *parent)
|
OBSBasicTransform::OBSBasicTransform(OBSSceneItem item, OBSBasic *parent)
|
||||||
: QDialog(parent), ui(new Ui::OBSBasicTransform), main(parent)
|
: QDialog(parent), ui(new Ui::OBSBasicTransform), main(parent)
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||||
@ -69,7 +69,6 @@ OBSBasicTransform::OBSBasicTransform(OBSBasic *parent)
|
|||||||
|
|
||||||
installEventFilter(CreateShortcutFilter());
|
installEventFilter(CreateShortcutFilter());
|
||||||
|
|
||||||
OBSSceneItem item = FindASelectedItem(main->GetCurrentScene());
|
|
||||||
OBSScene scene = obs_sceneitem_get_scene(item);
|
OBSScene scene = obs_sceneitem_get_scene(item);
|
||||||
SetScene(scene);
|
SetScene(scene);
|
||||||
SetItem(item);
|
SetItem(item);
|
||||||
|
@ -48,7 +48,7 @@ private slots:
|
|||||||
void on_resetButton_clicked();
|
void on_resetButton_clicked();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
OBSBasicTransform(OBSBasic *parent);
|
OBSBasicTransform(OBSSceneItem item, OBSBasic *parent);
|
||||||
~OBSBasicTransform();
|
~OBSBasicTransform();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
@ -794,6 +794,14 @@ Functions
|
|||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
.. function:: void *obs_frontend_open_sceneitem_edit_transform(obs_sceneitem_t *item)
|
||||||
|
|
||||||
|
Opens the edit transform window of the specified sceneitem.
|
||||||
|
|
||||||
|
:param item: The sceneitem to open the edit transform window of
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
.. function:: char *obs_frontend_get_current_record_output_path(void)
|
.. function:: char *obs_frontend_get_current_record_output_path(void)
|
||||||
|
|
||||||
:return: A new pointer to the current record output path. Free
|
:return: A new pointer to the current record output path. Free
|
||||||
|
Loading…
x
Reference in New Issue
Block a user