Ver código fonte

UI: Update hotkey label on quick transition rename

vokama 7 anos atrás
pai
commit
54ab27bda6
2 arquivos alterados com 24 adições e 3 exclusões
  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 "menu-button.hpp"
 #include "qt-wrappers.hpp"
 #include "qt-wrappers.hpp"
 
 
+#include "obs-hotkey.h"
+
 using namespace std;
 using namespace std;
 
 
 Q_DECLARE_METATYPE(OBSScene);
 Q_DECLARE_METATYPE(OBSScene);
@@ -98,6 +100,18 @@ void OBSBasic::AddQuickTransitionHotkey(QuickTransition *qt)
 			(void*)(uintptr_t)qt->id);
 			(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)
 void OBSBasic::TriggerQuickTransition(int id)
 {
 {
 	QuickTransition *qt = GetQuickTransition(id);
 	QuickTransition *qt = GetQuickTransition(id);

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

@@ -84,10 +84,17 @@ struct QuickTransition {
 
 
 	inline QuickTransition() {}
 	inline QuickTransition() {}
 	inline QuickTransition(OBSSource source_, int duration_, int id_)
 	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 {
 class OBSBasic : public OBSMainWindow {