mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-20 13:08:50 +02:00
UI: Correctly enable edit menu items with multiple sources
This commit is contained in:
parent
648b47a6f5
commit
5b87a842ee
@ -7769,16 +7769,14 @@ config_t *OBSBasic::Config() const
|
||||
|
||||
void OBSBasic::UpdateEditMenu()
|
||||
{
|
||||
int idx = GetTopSelectedSourceItem();
|
||||
QModelIndexList items = GetAllSelectedSourceItems();
|
||||
int count = items.count();
|
||||
size_t filter_count = 0;
|
||||
OBSSceneItem sceneItem;
|
||||
OBSSource source;
|
||||
|
||||
if (idx != -1) {
|
||||
sceneItem = ui->sources->Get(idx);
|
||||
source = obs_sceneitem_get_source(sceneItem);
|
||||
if (count == 1) {
|
||||
OBSSceneItem sceneItem =
|
||||
ui->sources->Get(GetTopSelectedSourceItem());
|
||||
OBSSource source = obs_sceneitem_get_source(sceneItem);
|
||||
filter_count = obs_source_filter_count(source);
|
||||
}
|
||||
|
||||
@ -7798,24 +7796,27 @@ void OBSBasic::UpdateEditMenu()
|
||||
allowPastingDuplicate = false;
|
||||
}
|
||||
|
||||
ui->actionCopySource->setEnabled(idx != -1);
|
||||
ui->actionEditTransform->setEnabled(idx != -1);
|
||||
ui->actionCopySource->setEnabled(count > 0);
|
||||
ui->actionEditTransform->setEnabled(count == 1);
|
||||
ui->actionCopyTransform->setEnabled(count == 1);
|
||||
ui->actionPasteTransform->setEnabled(hasCopiedTransform && count > 0);
|
||||
ui->actionCopyFilters->setEnabled(filter_count > 0);
|
||||
ui->actionPasteFilters->setEnabled(
|
||||
!obs_weak_source_expired(copyFiltersSource) && idx != -1);
|
||||
!obs_weak_source_expired(copyFiltersSource) && count > 0);
|
||||
ui->actionPasteRef->setEnabled(!!clipboard.size());
|
||||
ui->actionPasteDup->setEnabled(allowPastingDuplicate);
|
||||
|
||||
ui->actionMoveUp->setEnabled(idx != -1);
|
||||
ui->actionMoveDown->setEnabled(idx != -1);
|
||||
ui->actionMoveToTop->setEnabled(idx != -1);
|
||||
ui->actionMoveToBottom->setEnabled(idx != -1);
|
||||
ui->actionMoveUp->setEnabled(count > 0);
|
||||
ui->actionMoveDown->setEnabled(count > 0);
|
||||
ui->actionMoveToTop->setEnabled(count > 0);
|
||||
ui->actionMoveToBottom->setEnabled(count > 0);
|
||||
|
||||
bool canTransform = false;
|
||||
if (sceneItem)
|
||||
canTransform = !obs_sceneitem_locked(sceneItem);
|
||||
for (int i = 0; i < count; i++) {
|
||||
OBSSceneItem item = ui->sources->Get(i);
|
||||
if (!obs_sceneitem_locked(item))
|
||||
canTransform = true;
|
||||
}
|
||||
|
||||
ui->actionResetTransform->setEnabled(canTransform);
|
||||
ui->actionRotate90CW->setEnabled(canTransform);
|
||||
|
Loading…
Reference in New Issue
Block a user