Explorar el Código

UI: Update hotkey label on quick transition rename

vokama hace 7 años
padre
commit
54ab27bda6
Se han modificado 2 ficheros con 24 adiciones y 3 borrados
  1. 14 0
      UI/window-basic-main-transitions.cpp
  2. 10 3
      UI/window-basic-main.hpp

+ 14 - 0
UI/window-basic-main-transitions.cpp

@@ -26,6 +26,8 @@
 #include "menu-button.hpp"
 #include "qt-wrappers.hpp"
 
+#include "obs-hotkey.h"
+
 using namespace std;
 
 Q_DECLARE_METATYPE(OBSScene);
@@ -98,6 +100,18 @@ void OBSBasic::AddQuickTransitionHotkey(QuickTransition *qt)
 			(void*)(uintptr_t)qt->id);
 }
 
+void QuickTransition::SourceRenamed(void *param, calldata_t *data)
+{
+	QuickTransition *qt = reinterpret_cast<QuickTransition*>(param);
+
+	QString hotkeyName = QTStr("QuickTransitions.HotkeyName")
+		.arg(MakeQuickTransitionText(qt));
+
+	obs_hotkey_set_description(qt->hotkey, QT_TO_UTF8(hotkeyName));
+
+	UNUSED_PARAMETER(data);
+}
+
 void OBSBasic::TriggerQuickTransition(int id)
 {
 	QuickTransition *qt = GetQuickTransition(id);

+ 10 - 3
UI/window-basic-main.hpp

@@ -84,10 +84,17 @@ struct QuickTransition {
 
 	inline QuickTransition() {}
 	inline QuickTransition(OBSSource source_, int duration_, int id_)
-		: source   (source_),
-		  duration (duration_),
-		  id       (id_)
+		: source        (source_),
+		  duration      (duration_),
+		  id            (id_),
+		  renamedSignal (std::make_shared<OBSSignal>(
+					obs_source_get_signal_handler(source),
+					"rename", SourceRenamed, this))
 	{}
+
+private:
+	static void SourceRenamed(void *param, calldata_t *data);
+	std::shared_ptr<OBSSignal> renamedSignal;
 };
 
 class OBSBasic : public OBSMainWindow {