From 79b2ff75513437bfb3c14e37a2e11e7f524fee21 Mon Sep 17 00:00:00 2001
From: Michael Kavanagh <michael@michaelkavanagh.me>
Date: Wed, 31 Jul 2019 13:10:13 +0100
Subject: [PATCH] Refactor deleteTool ACTION removing duplicates

---
 common/tool/actions.cpp                  | 5 +++++
 eeschema/libedit/toolbars_libedit.cpp    | 4 ++--
 eeschema/menubar.cpp                     | 2 +-
 eeschema/toolbars_sch_editor.cpp         | 4 ++--
 eeschema/tools/ee_actions.cpp            | 5 -----
 eeschema/tools/ee_actions.h              | 1 -
 eeschema/tools/lib_edit_tool.cpp         | 2 +-
 eeschema/tools/sch_edit_tool.cpp         | 2 +-
 include/tool/actions.h                   | 1 +
 pagelayout_editor/toolbars_pl_editor.cpp | 4 ++--
 pagelayout_editor/tools/pl_actions.cpp   | 5 -----
 pagelayout_editor/tools/pl_actions.h     | 1 -
 pagelayout_editor/tools/pl_edit_tool.cpp | 3 ++-
 pcbnew/menubar_pcb_editor.cpp            | 2 +-
 pcbnew/toolbars_footprint_editor.cpp     | 4 ++--
 pcbnew/toolbars_pcb_editor.cpp           | 4 ++--
 pcbnew/tools/pcb_actions.cpp             | 6 ------
 pcbnew/tools/pcb_actions.h               | 1 -
 pcbnew/tools/pcbnew_control.cpp          | 2 +-
 19 files changed, 23 insertions(+), 35 deletions(-)

diff --git a/common/tool/actions.cpp b/common/tool/actions.cpp
index 7bb7610f58..4ee46f763a 100644
--- a/common/tool/actions.cpp
+++ b/common/tool/actions.cpp
@@ -175,6 +175,11 @@ TOOL_ACTION ACTIONS::doDelete( "common.Interactive.delete",
         _( "Delete" ), _( "Deletes selected item(s)" ),
         delete_xpm );
 
+TOOL_ACTION ACTIONS::deleteTool( "common.Interactive.deleteTool",
+        AS_GLOBAL, 0, "",
+        _( "Interactive Delete Tool" ), _( "Delete clicked items" ),
+        delete_xpm, AF_ACTIVATE );
+
 TOOL_ACTION ACTIONS::activatePointEditor( "common.Control.activatePointEditor",
         AS_GLOBAL );
 
diff --git a/eeschema/libedit/toolbars_libedit.cpp b/eeschema/libedit/toolbars_libedit.cpp
index 777ef3c9be..b6c969c15f 100644
--- a/eeschema/libedit/toolbars_libedit.cpp
+++ b/eeschema/libedit/toolbars_libedit.cpp
@@ -69,7 +69,7 @@ void LIB_EDIT_FRAME::ReCreateVToolbar()
                             KiScaledBitmap( export_xpm, this ),
                             _( "Export current drawing" ), wxITEM_CHECK  );
 
-    m_drawToolBar->Add( EE_ACTIONS::deleteTool,           ACTION_TOOLBAR::TOGGLE );
+    m_drawToolBar->Add( ACTIONS::deleteTool,              ACTION_TOOLBAR::TOGGLE );
 
     m_drawToolBar->Realize();
 }
@@ -194,6 +194,6 @@ void LIB_EDIT_FRAME::SyncToolbars()
     TOGGLE_TOOL( m_drawToolBar, EE_ACTIONS::drawSymbolCircle );
     TOGGLE_TOOL( m_drawToolBar, EE_ACTIONS::drawSymbolArc );
     TOGGLE_TOOL( m_drawToolBar, EE_ACTIONS::drawSymbolLines );
-    TOGGLE_TOOL( m_drawToolBar, EE_ACTIONS::deleteTool );
+    TOGGLE_TOOL( m_drawToolBar, ACTIONS::deleteTool );
     m_drawToolBar->Refresh();
 }
diff --git a/eeschema/menubar.cpp b/eeschema/menubar.cpp
index be18973c47..1f0d70e70e 100644
--- a/eeschema/menubar.cpp
+++ b/eeschema/menubar.cpp
@@ -145,7 +145,7 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
     editMenu->AddItem( ACTIONS::findAndReplace,             EE_CONDITIONS::ShowAlways );
 
     editMenu->AddSeparator();
-    editMenu->AddItem( EE_ACTIONS::deleteTool,              EE_CONDITIONS::ShowAlways );
+    editMenu->AddItem( ACTIONS::deleteTool,                 EE_CONDITIONS::ShowAlways );
     editMenu->AddItem( EE_ACTIONS::editTextAndGraphics,     EE_CONDITIONS::ShowAlways );
     editMenu->AddItem( EE_ACTIONS::updateFieldsFromLibrary, EE_CONDITIONS::ShowAlways );
 
diff --git a/eeschema/toolbars_sch_editor.cpp b/eeschema/toolbars_sch_editor.cpp
index 10e092a2f7..cbd6a59a31 100644
--- a/eeschema/toolbars_sch_editor.cpp
+++ b/eeschema/toolbars_sch_editor.cpp
@@ -136,7 +136,7 @@ void SCH_EDIT_FRAME::ReCreateVToolbar()
     m_drawToolBar->Add( EE_ACTIONS::drawLines,              ACTION_TOOLBAR::TOGGLE );
     m_drawToolBar->Add( EE_ACTIONS::placeSchematicText,     ACTION_TOOLBAR::TOGGLE );
     m_drawToolBar->Add( EE_ACTIONS::placeImage,             ACTION_TOOLBAR::TOGGLE );
-    m_drawToolBar->Add( EE_ACTIONS::deleteTool,             ACTION_TOOLBAR::TOGGLE );
+    m_drawToolBar->Add( ACTIONS::deleteTool,                ACTION_TOOLBAR::TOGGLE );
 
     m_drawToolBar->Realize();
 }
@@ -204,6 +204,6 @@ void SCH_EDIT_FRAME::SyncToolbars()
     TOGGLE_TOOL( m_drawToolBar, EE_ACTIONS::drawLines );
     TOGGLE_TOOL( m_drawToolBar, EE_ACTIONS::placeSchematicText );
     TOGGLE_TOOL( m_drawToolBar, EE_ACTIONS::placeImage );
-    TOGGLE_TOOL( m_drawToolBar, EE_ACTIONS::deleteTool );
+    TOGGLE_TOOL( m_drawToolBar, ACTIONS::deleteTool );
     m_drawToolBar->Refresh();
 }
diff --git a/eeschema/tools/ee_actions.cpp b/eeschema/tools/ee_actions.cpp
index 4b807842e8..e2c23e7086 100644
--- a/eeschema/tools/ee_actions.cpp
+++ b/eeschema/tools/ee_actions.cpp
@@ -472,11 +472,6 @@ TOOL_ACTION EE_ACTIONS::pinTable( "eeschema.InteractiveEdit.pinTable",
         _( "Pin Table..." ), _( "Displays pin table for bulk editing of pins" ),
         pin_table_xpm );
 
-TOOL_ACTION EE_ACTIONS::deleteTool( "eeschema.InteractiveEdit.deleteTool",
-        AS_GLOBAL, 0, "",
-        _( "Delete Tool" ), _( "Delete clicked items" ),
-        delete_xpm, AF_ACTIVATE );
-
 TOOL_ACTION EE_ACTIONS::breakWire( "eeschema.InteractiveEdit.breakWire",
         AS_GLOBAL, 0, "",
         _( "Break Wire" ), _( "Divide a wire into segments which can be dragged independently" ),
diff --git a/eeschema/tools/ee_actions.h b/eeschema/tools/ee_actions.h
index 0a4ebf9058..fc324de3b6 100644
--- a/eeschema/tools/ee_actions.h
+++ b/eeschema/tools/ee_actions.h
@@ -93,7 +93,6 @@ public:
     static TOOL_ACTION placeSchematicText;
     static TOOL_ACTION drawLines;
     static TOOL_ACTION placeImage;
-    static TOOL_ACTION deleteTool;
     static TOOL_ACTION finishLineWireOrBus;
     static TOOL_ACTION finishWire;
     static TOOL_ACTION finishBus;
diff --git a/eeschema/tools/lib_edit_tool.cpp b/eeschema/tools/lib_edit_tool.cpp
index 2bb09c2fee..1b787c3ec5 100644
--- a/eeschema/tools/lib_edit_tool.cpp
+++ b/eeschema/tools/lib_edit_tool.cpp
@@ -754,7 +754,7 @@ void LIB_EDIT_TOOL::setTransitions()
     Go( &LIB_EDIT_TOOL::Mirror,             EE_ACTIONS::mirrorX.MakeEvent() );
     Go( &LIB_EDIT_TOOL::Mirror,             EE_ACTIONS::mirrorY.MakeEvent() );
     Go( &LIB_EDIT_TOOL::DoDelete,           EE_ACTIONS::doDelete.MakeEvent() );
-    Go( &LIB_EDIT_TOOL::DeleteItemCursor,   EE_ACTIONS::deleteTool.MakeEvent() );
+    Go( &LIB_EDIT_TOOL::DeleteItemCursor,   ACTIONS::deleteTool.MakeEvent() );
 
     Go( &LIB_EDIT_TOOL::Properties,         EE_ACTIONS::properties.MakeEvent() );
     Go( &LIB_EDIT_TOOL::Properties,         EE_ACTIONS::symbolProperties.MakeEvent() );
diff --git a/eeschema/tools/sch_edit_tool.cpp b/eeschema/tools/sch_edit_tool.cpp
index 59c3e67a20..3d00236ce3 100644
--- a/eeschema/tools/sch_edit_tool.cpp
+++ b/eeschema/tools/sch_edit_tool.cpp
@@ -1397,7 +1397,7 @@ void SCH_EDIT_TOOL::setTransitions()
     Go( &SCH_EDIT_TOOL::Mirror,             EE_ACTIONS::mirrorX.MakeEvent() );
     Go( &SCH_EDIT_TOOL::Mirror,             EE_ACTIONS::mirrorY.MakeEvent() );
     Go( &SCH_EDIT_TOOL::DoDelete,           EE_ACTIONS::doDelete.MakeEvent() );
-    Go( &SCH_EDIT_TOOL::DeleteItemCursor,   EE_ACTIONS::deleteTool.MakeEvent() );
+    Go( &SCH_EDIT_TOOL::DeleteItemCursor,   ACTIONS::deleteTool.MakeEvent() );
 
     Go( &SCH_EDIT_TOOL::Properties,         EE_ACTIONS::properties.MakeEvent() );
     Go( &SCH_EDIT_TOOL::EditField,          EE_ACTIONS::editReference.MakeEvent() );
diff --git a/include/tool/actions.h b/include/tool/actions.h
index 0b50833c8e..3859ed2305 100644
--- a/include/tool/actions.h
+++ b/include/tool/actions.h
@@ -71,6 +71,7 @@ public:
     static TOOL_ACTION paste;
     static TOOL_ACTION duplicate;
     static TOOL_ACTION doDelete;        // sadly 'delete' is a reserved word
+    static TOOL_ACTION deleteTool;
 
     // Find and Replace
     static TOOL_ACTION find;
diff --git a/pagelayout_editor/toolbars_pl_editor.cpp b/pagelayout_editor/toolbars_pl_editor.cpp
index d35b7a8cbd..5d9406b6dd 100644
--- a/pagelayout_editor/toolbars_pl_editor.cpp
+++ b/pagelayout_editor/toolbars_pl_editor.cpp
@@ -135,7 +135,7 @@ void PL_EDITOR_FRAME::ReCreateVToolbar()
     m_drawToolBar->Add( PL_ACTIONS::appendImportedWorksheet, ACTION_TOOLBAR::TOGGLE );
 
     KiScaledSeparator( m_drawToolBar, this );
-    m_drawToolBar->Add( PL_ACTIONS::deleteTool,              ACTION_TOOLBAR::TOGGLE );
+    m_drawToolBar->Add( ACTIONS::deleteTool,                 ACTION_TOOLBAR::TOGGLE );
 
     m_drawToolBar->Realize();
 }
@@ -161,7 +161,7 @@ void PL_EDITOR_FRAME::SyncToolbars()
     TOGGLE_TOOL( m_drawToolBar, PL_ACTIONS::drawRectangle );
     TOGGLE_TOOL( m_drawToolBar, PL_ACTIONS::placeText );
     TOGGLE_TOOL( m_drawToolBar, PL_ACTIONS::placeImage );
-    TOGGLE_TOOL( m_drawToolBar, PL_ACTIONS::deleteTool );
+    TOGGLE_TOOL( m_drawToolBar, ACTIONS::deleteTool );
 
     m_drawToolBar->Toggle( PL_ACTIONS::appendImportedWorksheet, false );  // Not really a tool
     m_drawToolBar->Refresh();
diff --git a/pagelayout_editor/tools/pl_actions.cpp b/pagelayout_editor/tools/pl_actions.cpp
index d32ecd5323..f1fd27d252 100644
--- a/pagelayout_editor/tools/pl_actions.cpp
+++ b/pagelayout_editor/tools/pl_actions.cpp
@@ -72,11 +72,6 @@ TOOL_ACTION PL_ACTIONS::appendImportedWorksheet( "plEditor.InteractiveEdit.appen
         _( "Append an existing page layout design file to current file" ),
         import_xpm, AF_ACTIVATE );
 
-TOOL_ACTION PL_ACTIONS::deleteTool( "plEditor.InteractiveEdit.deleteTool",
-        AS_GLOBAL, 0, "",
-        _( "Delete Items" ), _( "Delete clicked items" ),
-        delete_xpm, AF_ACTIVATE );
-
 
 // PL_EDITOR_CONTROL
 //
diff --git a/pagelayout_editor/tools/pl_actions.h b/pagelayout_editor/tools/pl_actions.h
index a986d7c3c6..220e4fde05 100644
--- a/pagelayout_editor/tools/pl_actions.h
+++ b/pagelayout_editor/tools/pl_actions.h
@@ -70,7 +70,6 @@ public:
     static TOOL_ACTION move;
 
     // Miscellaneous
-    static TOOL_ACTION deleteTool;
     static TOOL_ACTION refreshPreview;
     static TOOL_ACTION toggleBackground;
     static TOOL_ACTION showInspector;
diff --git a/pagelayout_editor/tools/pl_edit_tool.cpp b/pagelayout_editor/tools/pl_edit_tool.cpp
index f9213653b3..cc97f28d15 100644
--- a/pagelayout_editor/tools/pl_edit_tool.cpp
+++ b/pagelayout_editor/tools/pl_edit_tool.cpp
@@ -502,7 +502,6 @@ void PL_EDIT_TOOL::setTransitions()
     Go( &PL_EDIT_TOOL::Main,                   PL_ACTIONS::move.MakeEvent() );
 
     Go( &PL_EDIT_TOOL::ImportWorksheetContent, PL_ACTIONS::appendImportedWorksheet.MakeEvent() );
-    Go( &PL_EDIT_TOOL::DeleteItemCursor,       PL_ACTIONS::deleteTool.MakeEvent() );
 
     Go( &PL_EDIT_TOOL::Undo,                   ACTIONS::undo.MakeEvent() );
     Go( &PL_EDIT_TOOL::Redo,                   ACTIONS::redo.MakeEvent() );
@@ -511,4 +510,6 @@ void PL_EDIT_TOOL::setTransitions()
     Go( &PL_EDIT_TOOL::Copy,                   ACTIONS::copy.MakeEvent() );
     Go( &PL_EDIT_TOOL::Paste,                  ACTIONS::paste.MakeEvent() );
     Go( &PL_EDIT_TOOL::DoDelete,               ACTIONS::doDelete.MakeEvent() );
+
+    Go( &PL_EDIT_TOOL::DeleteItemCursor,       ACTIONS::deleteTool.MakeEvent() );
 }
diff --git a/pcbnew/menubar_pcb_editor.cpp b/pcbnew/menubar_pcb_editor.cpp
index ab77405a40..e989603874 100644
--- a/pcbnew/menubar_pcb_editor.cpp
+++ b/pcbnew/menubar_pcb_editor.cpp
@@ -235,7 +235,7 @@ void PCB_EDIT_FRAME::ReCreateMenuBar()
     editMenu->AddItem( PCB_ACTIONS::zoneUnfillAll,          SELECTION_CONDITIONS::ShowAlways );
 
     editMenu->AddSeparator();
-    editMenu->AddItem( PCB_ACTIONS::deleteTool,             SELECTION_CONDITIONS::ShowAlways );
+    editMenu->AddItem( ACTIONS::deleteTool,                 SELECTION_CONDITIONS::ShowAlways );
     editMenu->AddItem( PCB_ACTIONS::globalDeletions,        SELECTION_CONDITIONS::ShowAlways );
     editMenu->AddItem( PCB_ACTIONS::cleanupTracksAndVias,   SELECTION_CONDITIONS::ShowAlways );
 
diff --git a/pcbnew/toolbars_footprint_editor.cpp b/pcbnew/toolbars_footprint_editor.cpp
index fee3daf493..370350c17f 100644
--- a/pcbnew/toolbars_footprint_editor.cpp
+++ b/pcbnew/toolbars_footprint_editor.cpp
@@ -135,7 +135,7 @@ void FOOTPRINT_EDIT_FRAME::ReCreateVToolbar()
     m_drawToolBar->Add( PCB_ACTIONS::drawArc,        ACTION_TOOLBAR::TOGGLE );
     m_drawToolBar->Add( PCB_ACTIONS::drawPolygon,    ACTION_TOOLBAR::TOGGLE );
     m_drawToolBar->Add( PCB_ACTIONS::placeText,      ACTION_TOOLBAR::TOGGLE );
-    m_drawToolBar->Add( PCB_ACTIONS::deleteTool,     ACTION_TOOLBAR::TOGGLE );
+    m_drawToolBar->Add( ACTIONS::deleteTool,         ACTION_TOOLBAR::TOGGLE );
 
     KiScaledSeparator( m_drawToolBar, this );
     m_drawToolBar->Add( PCB_ACTIONS::setAnchor,      ACTION_TOOLBAR::TOGGLE );
@@ -206,7 +206,7 @@ void FOOTPRINT_EDIT_FRAME::SyncToolbars()
     TOGGLE_TOOL( m_drawToolBar, PCB_ACTIONS::drawArc );
     TOGGLE_TOOL( m_drawToolBar, PCB_ACTIONS::drawPolygon );
     TOGGLE_TOOL( m_drawToolBar, PCB_ACTIONS::placeText );
-    TOGGLE_TOOL( m_drawToolBar, PCB_ACTIONS::deleteTool );
+    TOGGLE_TOOL( m_drawToolBar, ACTIONS::deleteTool );
     TOGGLE_TOOL( m_drawToolBar, PCB_ACTIONS::setAnchor );
     TOGGLE_TOOL( m_drawToolBar, PCB_ACTIONS::gridSetOrigin );
     TOGGLE_TOOL( m_drawToolBar, ACTIONS::measureTool );
diff --git a/pcbnew/toolbars_pcb_editor.cpp b/pcbnew/toolbars_pcb_editor.cpp
index d8b0edab42..6d01370458 100644
--- a/pcbnew/toolbars_pcb_editor.cpp
+++ b/pcbnew/toolbars_pcb_editor.cpp
@@ -380,7 +380,7 @@ void PCB_EDIT_FRAME::ReCreateVToolbar()
     m_drawToolBar->Add( PCB_ACTIONS::placeText,            ACTION_TOOLBAR::TOGGLE );
     m_drawToolBar->Add( PCB_ACTIONS::drawDimension,        ACTION_TOOLBAR::TOGGLE );
     m_drawToolBar->Add( PCB_ACTIONS::placeTarget,          ACTION_TOOLBAR::TOGGLE );
-    m_drawToolBar->Add( PCB_ACTIONS::deleteTool,           ACTION_TOOLBAR::TOGGLE );
+    m_drawToolBar->Add( ACTIONS::deleteTool,               ACTION_TOOLBAR::TOGGLE );
 
     KiScaledSeparator( m_drawToolBar, this );
     m_drawToolBar->Add( PCB_ACTIONS::drillOrigin,          ACTION_TOOLBAR::TOGGLE );
@@ -716,7 +716,7 @@ void PCB_EDIT_FRAME::SyncToolbars()
     TOGGLE_TOOL( m_drawToolBar, PCB_ACTIONS::placeText );
     TOGGLE_TOOL( m_drawToolBar, PCB_ACTIONS::drawDimension );
     TOGGLE_TOOL( m_drawToolBar, PCB_ACTIONS::placeTarget );
-    TOGGLE_TOOL( m_drawToolBar, PCB_ACTIONS::deleteTool );
+    TOGGLE_TOOL( m_drawToolBar, ACTIONS::deleteTool );
     TOGGLE_TOOL( m_drawToolBar, PCB_ACTIONS::drillOrigin );
     TOGGLE_TOOL( m_drawToolBar, PCB_ACTIONS::gridSetOrigin );
     TOGGLE_TOOL( m_drawToolBar, ACTIONS::measureTool );
diff --git a/pcbnew/tools/pcb_actions.cpp b/pcbnew/tools/pcb_actions.cpp
index 284c249199..1d19e360e5 100644
--- a/pcbnew/tools/pcb_actions.cpp
+++ b/pcbnew/tools/pcb_actions.cpp
@@ -898,12 +898,6 @@ TOOL_ACTION PCB_ACTIONS::layerChanged( "pcbnew.Control.layerChanged",
         "", "",
         nullptr, AF_NOTIFY );
 
-// Miscellaneous
-TOOL_ACTION PCB_ACTIONS::deleteTool( "pcbnew.Control.deleteTool",
-        AS_GLOBAL, 0, "",
-        _( "Delete Items Tool" ), _( "Click on items to delete them" ),
-        delete_xpm, AF_ACTIVATE );
-
 //Show board statistics tool
 TOOL_ACTION PCB_ACTIONS::boardStatistics( "pcbnew.InspectionTool.ShowStatisticsDialog", AS_GLOBAL,
         0, LEGACY_HK_NAME( "Show Board Statistics" ), _( "Show Board Statistics" ),
diff --git a/pcbnew/tools/pcb_actions.h b/pcbnew/tools/pcb_actions.h
index c3922a21c0..38bb8c4a78 100644
--- a/pcbnew/tools/pcb_actions.h
+++ b/pcbnew/tools/pcb_actions.h
@@ -401,7 +401,6 @@ public:
     static TOOL_ACTION pickerTool;
     static TOOL_ACTION measureTool;
     static TOOL_ACTION updateUnits;
-    static TOOL_ACTION deleteTool;
     static TOOL_ACTION clearHighlight;
     static TOOL_ACTION highlightNet;
     static TOOL_ACTION toggleLastNetHighlight;
diff --git a/pcbnew/tools/pcbnew_control.cpp b/pcbnew/tools/pcbnew_control.cpp
index d81d11d5ce..3b214e3969 100644
--- a/pcbnew/tools/pcbnew_control.cpp
+++ b/pcbnew/tools/pcbnew_control.cpp
@@ -1008,7 +1008,7 @@ void PCBNEW_CONTROL::setTransitions()
     Go( &PCBNEW_CONTROL::Redo,                 ACTIONS::redo.MakeEvent() );
 
     // Miscellaneous
-    Go( &PCBNEW_CONTROL::DeleteItemCursor,     PCB_ACTIONS::deleteTool.MakeEvent() );
+    Go( &PCBNEW_CONTROL::DeleteItemCursor,     ACTIONS::deleteTool.MakeEvent() );
     Go( &PCBNEW_CONTROL::Show3DViewer,         ACTIONS::show3DViewer.MakeEvent() );
 
     // Append control