diff --git a/common/tool/tool_manager.cpp b/common/tool/tool_manager.cpp index f3705d8ac8..35bd3af2d0 100644 --- a/common/tool/tool_manager.cpp +++ b/common/tool/tool_manager.cpp @@ -411,6 +411,9 @@ TOOL_BASE* TOOL_MANAGER::FindTool( const std::string& aName ) const void TOOL_MANAGER::ResetTools( TOOL_BASE::RESET_REASON aReason ) { + TOOL_EVENT evt( TC_COMMAND, TA_ACTIVATE, "" ); // deactivate the active tool + ProcessEvent( evt ); + BOOST_FOREACH( TOOL_BASE* tool, m_toolState | boost::adaptors::map_keys ) tool->Reset( aReason ); } diff --git a/patches/wxwidgets-3.0.2_macosx_yosemite.patch b/patches/wxwidgets-3.0.2_macosx_yosemite.patch index 1746d228bb..30e2587bee 100644 --- a/patches/wxwidgets-3.0.2_macosx_yosemite.patch +++ b/patches/wxwidgets-3.0.2_macosx_yosemite.patch @@ -1,31 +1,10 @@ -=== modified file 'patches/wxwidgets-3.0.2_macosx_yosemite.patch' ---- patches/wxwidgets-3.0.2_macosx_yosemite.patch 2014-11-04 19:24:22 +0000 -+++ patches/wxwidgets-3.0.2_macosx_yosemite.patch 2014-11-12 01:54:50 +0000 -@@ -1,15 +1,11 @@ --=== added file 'patches/wxwidgets-3.0.2_macosx_yosemite_webview_webkit.mm.patch' ----- patches/wxwidgets-3.0.2_macosx_yosemite_webview_webkit.mm.patch 1970-01-01 00:00:00 +0000 --+++ patches/wxwidgets-3.0.2_macosx_yosemite_webview_webkit.mm.patch 2014-10-29 18:17:55 +0000 --@@ -0,0 +1,11 @@ --+--- src/osx/webview_webkit.mm.orig 2014-09-16 07:27:52.000000000 -0600 --++++ src/osx/webview_webkit.mm 2014-09-16 07:28:12.000000000 -0600 --+@@ -28,7 +28,7 @@ --+ #include "wx/hashmap.h" --+ #include "wx/filesys.h" --+ --+-#include --++#include --+ #include --+ #include --+ -+--- src/osx/webview_webkit.mm.orig 2014-09-16 07:27:52.000000000 -0600 -++++ src/osx/webview_webkit.mm 2014-09-16 07:28:12.000000000 -0600 -+@@ -28,7 +28,7 @@ -+ #include "wx/hashmap.h" -+ #include "wx/filesys.h" -+ -+-#include -++#include -+ #include -+ #include -+ +--- src/osx/webview_webkit.mm.orig 2014-09-16 07:27:52.000000000 -0600 ++++ src/osx/webview_webkit.mm 2014-09-16 07:28:12.000000000 -0600 +@@ -28,7 +28,7 @@ + #include "wx/hashmap.h" + #include "wx/filesys.h" +-#include ++#include + #include + #include diff --git a/pcbnew/hotkeys.cpp b/pcbnew/hotkeys.cpp index 8f903b7d48..73e08d4e88 100644 --- a/pcbnew/hotkeys.cpp +++ b/pcbnew/hotkeys.cpp @@ -109,7 +109,7 @@ static EDA_HOTKEY HkFlipItem( wxT( "Flip Item" ), HK_FLIP_ITEM, 'F' ); static EDA_HOTKEY HkRotateItem( wxT( "Rotate Item" ), HK_ROTATE_ITEM, 'R' ); static EDA_HOTKEY HkMoveItem( wxT( "Move Item" ), HK_MOVE_ITEM, 'M' ); static EDA_HOTKEY HkCopyItem( wxT( "Copy Item" ), HK_COPY_ITEM, 'C' ); -static EDA_HOTKEY HkDragFootprint( wxT( "Drag Footprint" ), HK_DRAG_ITEM, 'G' ); +static EDA_HOTKEY HkDragFootprint( wxT( "Drag Item" ), HK_DRAG_ITEM, 'G' ); static EDA_HOTKEY HkGetAndMoveFootprint( wxT( "Get and Move Footprint" ), HK_GET_AND_MOVE_FOOTPRINT, 'T' ); static EDA_HOTKEY HkLock_Unlock_Footprint( wxT( "Lock/Unlock Footprint" ), HK_LOCK_UNLOCK_FOOTPRINT, 'L' ); static EDA_HOTKEY HkDelete( wxT( "Delete Track or Footprint" ), HK_DELETE, WXK_DELETE ); diff --git a/pcbnew/tools/common_actions.cpp b/pcbnew/tools/common_actions.cpp index 456a0219af..c35372ea27 100644 --- a/pcbnew/tools/common_actions.cpp +++ b/pcbnew/tools/common_actions.cpp @@ -308,13 +308,17 @@ TOOL_ACTION COMMON_ACTIONS::zoneFill( "pcbnew.EditorControl.zoneFill", "Fill", "Fill zone(s)" ); TOOL_ACTION COMMON_ACTIONS::zoneFillAll( "pcbnew.EditorControl.zoneFillAll", - AS_GLOBAL, 0, + AS_GLOBAL, int( 'B' ), "Fill all", "Fill all zones" ); TOOL_ACTION COMMON_ACTIONS::zoneUnfill( "pcbnew.EditorControl.zoneUnfill", AS_GLOBAL, 0, "Unfill", "Unfill zone(s)" ); +TOOL_ACTION COMMON_ACTIONS::zoneUnfillAll( "pcbnew.EditorControl.zoneUnfillAll", + AS_GLOBAL, int( 'N' ), + "Unfill all", "Unfill all zones" ); + // Module editor tools TOOL_ACTION COMMON_ACTIONS::placePad( "pcbnew.ModuleEditor.placePad", diff --git a/pcbnew/tools/common_actions.h b/pcbnew/tools/common_actions.h index 366f4440dd..73849a755e 100644 --- a/pcbnew/tools/common_actions.h +++ b/pcbnew/tools/common_actions.h @@ -195,6 +195,7 @@ public: static TOOL_ACTION zoneFill; static TOOL_ACTION zoneFillAll; static TOOL_ACTION zoneUnfill; + static TOOL_ACTION zoneUnfillAll; // Module editor tools /// Activation of the drawing tool (placing a PAD) diff --git a/pcbnew/tools/pcb_editor_control.cpp b/pcbnew/tools/pcb_editor_control.cpp index f1c8fe3833..827fd4430f 100644 --- a/pcbnew/tools/pcb_editor_control.cpp +++ b/pcbnew/tools/pcb_editor_control.cpp @@ -41,6 +41,7 @@ public: Add( COMMON_ACTIONS::zoneFill ); Add( COMMON_ACTIONS::zoneFillAll ); Add( COMMON_ACTIONS::zoneUnfill ); + Add( COMMON_ACTIONS::zoneUnfillAll ); } }; @@ -219,6 +220,24 @@ int PCB_EDITOR_CONTROL::ZoneUnfill( TOOL_EVENT& aEvent ) } +int PCB_EDITOR_CONTROL::ZoneUnfillAll( TOOL_EVENT& aEvent ) +{ + BOARD* board = getModel(); + + for( int i = 0; i < board->GetAreaCount(); ++i ) + { + ZONE_CONTAINER* zone = board->GetArea( i ); + zone->SetIsFilled( false ); + zone->ClearFilledPolysList(); + zone->ViewUpdate(); + } + + setTransitions(); + + return 0; +} + + void PCB_EDITOR_CONTROL::setTransitions() { // Track & via size control @@ -231,4 +250,5 @@ void PCB_EDITOR_CONTROL::setTransitions() Go( &PCB_EDITOR_CONTROL::ZoneFill, COMMON_ACTIONS::zoneFill.MakeEvent() ); Go( &PCB_EDITOR_CONTROL::ZoneFillAll, COMMON_ACTIONS::zoneFillAll.MakeEvent() ); Go( &PCB_EDITOR_CONTROL::ZoneUnfill, COMMON_ACTIONS::zoneUnfill.MakeEvent() ); + Go( &PCB_EDITOR_CONTROL::ZoneUnfillAll, COMMON_ACTIONS::zoneUnfillAll.MakeEvent() ); } diff --git a/pcbnew/tools/pcb_editor_control.h b/pcbnew/tools/pcb_editor_control.h index 6d272884c9..9e4dc8f935 100644 --- a/pcbnew/tools/pcb_editor_control.h +++ b/pcbnew/tools/pcb_editor_control.h @@ -55,6 +55,7 @@ public: int ZoneFill( TOOL_EVENT& aEvent ); int ZoneFillAll( TOOL_EVENT& aEvent ); int ZoneUnfill( TOOL_EVENT& aEvent ); + int ZoneUnfillAll( TOOL_EVENT& aEvent ); private: ///> Sets up handlers for various events. diff --git a/scripts/library-repos-install.sh b/scripts/library-repos-install.sh index aa129d3c8b..b02e7d2d54 100755 --- a/scripts/library-repos-install.sh +++ b/scripts/library-repos-install.sh @@ -70,7 +70,9 @@ install_prerequisites() sed else echo - echo "Incompatible System. Neither 'yum' nor 'apt-get' found. Not possible to continue." + echo "Incompatible System. Neither 'yum' nor 'apt-get' found. Not possible to" + echo "continue. Please make sure to install git, curl, and sed before using this" + echo "script." echo exit 1 fi @@ -107,11 +109,23 @@ cmake_uninstall() detect_pretty_repos() { + # Check for the correct option to enable extended regular expressions in + # sed. This is '-r' for GNU sed and '-E' for (older) BSD-like sed, as on + # Mac OSX. + if [ $(echo | sed -r '' &>/dev/null; echo $?) -eq 0 ]; then + SED_EREGEXP="-r" + elif [ $(echo | sed -E '' &>/dev/null; echo $?) -eq 0 ]; then + SED_EREGEXP="-E" + else + echo "Your sed command does not support extended regular expressions. Cannot continue." + exit 1 + fi + # Use github API to list repos for org KiCad, then subset the JSON reply for only # *.pretty repos PRETTY_REPOS=`curl https://api.github.com/orgs/KiCad/repos?per_page=2000 2> /dev/null \ | grep full_name | grep pretty \ - | sed -r 's:.+ "KiCad/(.+)",:\1:'` + | sed $SED_EREGEXP 's:.+ "KiCad/(.+)",:\1:'` #echo "PRETTY_REPOS:$PRETTY_REPOS"