瀏覽代碼

Bug fix: Customizing custom commands from Synchronization checklist window was not working

Caused by Bug 1272

Source commit: 0c22b6d60537abc0e93e5389a84a3f1a766a6d85
Martin Prikryl 5 年之前
父節點
當前提交
c4a15d4a31
共有 2 個文件被更改,包括 12 次插入1 次删除
  1. 11 1
      source/forms/NonVisual.cpp
  2. 1 0
      source/forms/NonVisual.h

+ 11 - 1
source/forms/NonVisual.cpp

@@ -766,7 +766,7 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute(
     EXE(CustomCommandsEnterFocusedAction, ScpExplorer->AdHocCustomCommand(true))
     EXE(CustomCommandsLastAction, ScpExplorer->LastCustomCommand(false))
     EXE(CustomCommandsLastFocusedAction, ScpExplorer->LastCustomCommand(true))
-    EXE(CustomCommandsCustomizeAction, PreferencesDialog(pmCustomCommands))
+    EXE(CustomCommandsCustomizeAction, CustomCommandsCustomize(NULL))
 
     // QUEUE
     EXE(QueueEnableAction, ScpExplorer->ToggleQueueEnabled())
@@ -1118,6 +1118,11 @@ int __fastcall TNonVisualDataModule::CreateCustomCommandsListMenu(
   return Result;
 }
 //---------------------------------------------------------------------------
+void __fastcall TNonVisualDataModule::CustomCommandsCustomize(TObject *)
+{
+  PreferencesDialog(pmCustomCommands);
+}
+//---------------------------------------------------------------------------
 void __fastcall TNonVisualDataModule::CreateCustomCommandsMenu(
   TTBCustomItem * Menu, bool OnFocused, bool Toolbar, TCustomCommandListType ListType, TStrings * HiddenCommands)
 {
@@ -1172,6 +1177,11 @@ void __fastcall TNonVisualDataModule::CreateCustomCommandsMenu(
 
   Item = new TTBXItem(Menu);
   Item->Action = CustomCommandsCustomizeAction;
+  if (ListType == ccltBoth)
+  {
+    // Hack. Bypass the Busy test in ExplorerActionsExecute.
+    Item->OnClick = CustomCommandsCustomize;
+  }
   Menu->Add(Item);
 }
 //---------------------------------------------------------------------------

+ 1 - 0
source/forms/NonVisual.h

@@ -717,6 +717,7 @@ protected:
   TAction * __fastcall CurrentQueueOnceEmptyAction();
   void __fastcall CloneShortcuts();
   void __fastcall ToolbarButtonItemClick(TObject * Sender);
+  void __fastcall CustomCommandsCustomize(TObject * Sender);
 
 public:
   __fastcall TNonVisualDataModule(TComponent * Owner);