mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-01-22 21:28:32 -05:00
UI: Disable edit transform if item is locked
The transform window was still accessible if the scene item was locked.
This commit is contained in:
@@ -125,6 +125,7 @@ void OBSBasicTransform::SetScene(OBSScene scene)
|
||||
selectSignal.Disconnect();
|
||||
deselectSignal.Disconnect();
|
||||
removeSignal.Disconnect();
|
||||
lockSignal.Disconnect();
|
||||
|
||||
if (scene) {
|
||||
OBSSource source = obs_scene_get_source(scene);
|
||||
@@ -139,6 +140,8 @@ void OBSBasicTransform::SetScene(OBSScene scene)
|
||||
this);
|
||||
deselectSignal.Connect(signal, "item_deselect",
|
||||
OBSSceneItemDeselect, this);
|
||||
lockSignal.Connect(signal, "item_locked", OBSSceneItemLocked,
|
||||
this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,15 +151,20 @@ void OBSBasicTransform::SetItem(OBSSceneItem newItem)
|
||||
Q_ARG(OBSSceneItem, OBSSceneItem(newItem)));
|
||||
}
|
||||
|
||||
void OBSBasicTransform::SetEnabled(bool enable)
|
||||
{
|
||||
ui->container->setEnabled(enable);
|
||||
ui->buttonBox->button(QDialogButtonBox::Reset)->setEnabled(enable);
|
||||
}
|
||||
|
||||
void OBSBasicTransform::SetItemQt(OBSSceneItem newItem)
|
||||
{
|
||||
item = newItem;
|
||||
if (item)
|
||||
RefreshControls();
|
||||
|
||||
bool enable = !!item;
|
||||
ui->container->setEnabled(enable);
|
||||
ui->buttonBox->button(QDialogButtonBox::Reset)->setEnabled(enable);
|
||||
bool enable = !!item && !obs_sceneitem_locked(item);
|
||||
SetEnabled(enable);
|
||||
}
|
||||
|
||||
void OBSBasicTransform::OBSChannelChanged(void *param, calldata_t *data)
|
||||
@@ -222,6 +230,15 @@ void OBSBasicTransform::OBSSceneItemDeselect(void *param, calldata_t *data)
|
||||
}
|
||||
}
|
||||
|
||||
void OBSBasicTransform::OBSSceneItemLocked(void *param, calldata_t *data)
|
||||
{
|
||||
OBSBasicTransform *window =
|
||||
reinterpret_cast<OBSBasicTransform *>(param);
|
||||
bool locked = calldata_bool(data, "locked");
|
||||
|
||||
QMetaObject::invokeMethod(window, "SetEnabled", Q_ARG(bool, !locked));
|
||||
}
|
||||
|
||||
static const uint32_t listToAlign[] = {OBS_ALIGN_TOP | OBS_ALIGN_LEFT,
|
||||
OBS_ALIGN_TOP,
|
||||
OBS_ALIGN_TOP | OBS_ALIGN_RIGHT,
|
||||
|
||||
Reference in New Issue
Block a user