Browse Source

show paste script shortcut keys in the menu

sabrogden 6 years ago
parent
commit
e37c005929
5 changed files with 19 additions and 6 deletions
  1. 3 2
      Accels.cpp
  2. 1 1
      Accels.h
  3. 12 1
      ChaiScriptXml.cpp
  4. 2 1
      ChaiScriptXml.h
  5. 1 1
      QPasteWnd.cpp

+ 3 - 2
Accels.cpp

@@ -32,12 +32,13 @@ void CAccels::RemoveAll()
 	m_multiMap.clear();
 }
 
-CString CAccels::GetCmdKeyText(DWORD cmd)
+CString CAccels::GetCmdKeyText(DWORD cmd, CString refData)
 {
 	CString cmdShortcutText;
 	for (multimap<DWORD, CAccel>::iterator it = m_multiMap.begin(); it != m_multiMap.end(); ++it)
 	{
-		if (it->second.Cmd == cmd)
+		if (it->second.Cmd == cmd &&
+			(refData == _T("") || it->second.RefData == refData))
 		{
 			if (it->second.Key != 0)
 			{

+ 1 - 1
Accels.h

@@ -42,7 +42,7 @@ public:
 
 	void RemoveAll();
 
-	CString GetCmdKeyText(DWORD cmd);
+	CString GetCmdKeyText(DWORD cmd, CString refData = _T(""));
 
     // handles a key's first WM_KEYDOWN or WM_SYSKEYDOWN message.
     // it uses GetKeyState to test for modifiers.

+ 12 - 1
ChaiScriptXml.cpp

@@ -3,6 +3,7 @@
 #include "tinyxml\tinyxml.h"
 #include "Shared\TextConvert.h"
 #include "Misc.h"
+#include "ActionEnums.h"
 
 
 CChaiScriptXml::CChaiScriptXml()
@@ -115,7 +116,7 @@ CString CChaiScriptXml::Save()
 	return cs;
 }
 
-void CChaiScriptXml::AddToMenu(CMenu *pMenu)
+void CChaiScriptXml::AddToMenu(CMenu *pMenu, CAccels *actions)
 {
 	if (m_list.size() > 0)
 	{
@@ -140,6 +141,16 @@ void CChaiScriptXml::AddToMenu(CMenu *pMenu)
 				cs.Format(_T("%s"), element.m_name);
 			}
 
+			if (actions != NULL)
+			{
+				CString shortcutText = actions->GetCmdKeyText(ActionEnums::PASTE_SCRIPT, element.m_guid);
+				if (shortcutText != _T(""))
+				{
+					cs += "\t";
+					cs += shortcutText;
+				}
+			}
+
 			pMenu->AppendMenuW(MF_STRING, (ChaiScriptMenuStartId + id), cs);
 			id++;
 

+ 2 - 1
ChaiScriptXml.h

@@ -1,6 +1,7 @@
 #pragma once
 
 #include <vector>
+#include "Accels.h"
 
 #define ChaiScriptMenuStartId 5001
 #define MaxChaiScripts 99
@@ -30,7 +31,7 @@ public:
 	CString Save();
 	void Load(CString values);
 	CString GetScript(CString name, BOOL &active);	
-	void AddToMenu(CMenu *pMenu);
+	void AddToMenu(CMenu *pMenu, CAccels *actions);
 
 	std::vector<CDittoChaiScriptXmlItem> m_list;
 	bool m_assignedGuidOnLoad;

+ 1 - 1
QPasteWnd.cpp

@@ -1550,7 +1550,7 @@ void CQPasteWnd::ShowRightClickMenu()
 		CMenu *sendToMenu = CMultiLanguage::GetMenuPos(cmSubMenu, specialPaste, nPos);
 		if (sendToMenu != NULL)
 		{
-			g_Opt.m_pasteScripts.AddToMenu(sendToMenu);
+			g_Opt.m_pasteScripts.AddToMenu(sendToMenu, &m_actions);
 		}
 
         cmSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON, pp.x, pp.y, this, NULL);