소스 검색

UI: Fix transform shortcuts for audio only sources

The edit, copy, paste and reset transform shortcuts would still work
for audio only sources, even though the menu was hidden for these.
cg2121 2 년 전
부모
커밋
c33fa8bfa2
2개의 변경된 파일17개의 추가작업 그리고 0개의 파일을 삭제
  1. 15 0
      UI/window-basic-main.cpp
  2. 2 0
      UI/window-basic-main.hpp

+ 15 - 0
UI/window-basic-main.cpp

@@ -3311,9 +3311,24 @@ void OBSBasic::SourceToolBarActionsSetEnabled()
 	RefreshToolBarStyling(ui->sourcesToolbar);
 	RefreshToolBarStyling(ui->sourcesToolbar);
 }
 }
 
 
+void OBSBasic::UpdateTransformShortcuts()
+{
+	OBSSource source = obs_sceneitem_get_source(GetCurrentSceneItem());
+	uint32_t flags = obs_source_get_output_flags(source);
+	bool audioOnly = (flags & OBS_SOURCE_VIDEO) == 0;
+
+	ui->actionEditTransform->setEnabled(!audioOnly);
+	ui->actionCopyTransform->setEnabled(!audioOnly);
+	ui->actionPasteTransform->setEnabled(audioOnly ? false
+						       : hasCopiedTransform);
+
+	ui->actionResetTransform->setEnabled(!audioOnly);
+}
+
 void OBSBasic::UpdateContextBar(bool force)
 void OBSBasic::UpdateContextBar(bool force)
 {
 {
 	SourceToolBarActionsSetEnabled();
 	SourceToolBarActionsSetEnabled();
+	UpdateTransformShortcuts();
 
 
 	if (!ui->contextContainer->isVisible() && !force)
 	if (!ui->contextContainer->isVisible() && !force)
 		return;
 		return;

+ 2 - 0
UI/window-basic-main.hpp

@@ -662,6 +662,8 @@ private:
 
 
 	bool restartingVCam = false;
 	bool restartingVCam = false;
 
 
+	void UpdateTransformShortcuts();
+
 public slots:
 public slots:
 	void DeferSaveBegin();
 	void DeferSaveBegin();
 	void DeferSaveEnd();
 	void DeferSaveEnd();