Move warp-mouse-on-move setting from Eeschema settings to common settings.

It's also used by the Symbol Editor, and will likely be used by
Pcbnew and friends in the future.
This commit is contained in:
Jeff Young 2019-08-15 12:52:38 +01:00
parent 206b40621e
commit 8ba7d4570c
14 changed files with 125 additions and 334 deletions

View File

@ -140,6 +140,9 @@ bool PANEL_COMMON_SETTINGS::TransferDataToWindow()
}
m_PreferSelectToDrag->SetValue( option );
commonSettings->Read( WARP_MOUSE_ON_MOVE_KEY, &option );
m_warpMouseOnMove->SetValue( option );
commonSettings->Read( IMMEDIATE_ACTIONS_KEY, &option );
m_NonImmediateActions->SetValue( !option );
@ -177,6 +180,7 @@ bool PANEL_COMMON_SETTINGS::TransferDataFromWindow()
commonSettings->Write( ENBL_MOUSEWHEEL_PAN_KEY, m_MousewheelPANOpt->GetValue() );
commonSettings->Write( ENBL_AUTO_PAN_KEY, m_AutoPANOpt->GetValue() );
commonSettings->Write( PREFER_SELECT_TO_DRAG_KEY, m_PreferSelectToDrag->GetValue() );
commonSettings->Write( WARP_MOUSE_ON_MOVE_KEY, m_warpMouseOnMove->GetValue() );
commonSettings->Write( IMMEDIATE_ACTIONS_KEY, !m_NonImmediateActions->GetValue() );
Pgm().SetEditorName( m_textEditorPath->GetValue() );

View File

@ -201,6 +201,9 @@ PANEL_COMMON_SETTINGS_BASE::PANEL_COMMON_SETTINGS_BASE( wxWindow* parent, wxWind
m_PreferSelectToDrag = new wxCheckBox( sbSizer4->GetStaticBox(), wxID_ANY, _("Prefer selection to dragging"), wxDefaultPosition, wxDefaultSize, 0 );
sbSizer4->Add( m_PreferSelectToDrag, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_warpMouseOnMove = new wxCheckBox( sbSizer4->GetStaticBox(), wxID_ANY, _("Warp mouse to origin of moved object"), wxDefaultPosition, wxDefaultSize, 0 );
sbSizer4->Add( m_warpMouseOnMove, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_NonImmediateActions = new wxCheckBox( sbSizer4->GetStaticBox(), wxID_ANY, _("First hotkey selects tool"), wxDefaultPosition, wxDefaultSize, 0 );
m_NonImmediateActions->SetToolTip( _("If not checked, hotkeys will immediately perform an action even if the relevant tool was not previously selected.") );

View File

@ -2650,6 +2650,94 @@
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Warp mouse to origin of moved object</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_warpMouseOnMove</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnCheckBox"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>

View File

@ -72,6 +72,7 @@ class PANEL_COMMON_SETTINGS_BASE : public wxPanel
wxCheckBox* m_MousewheelPANOpt;
wxCheckBox* m_AutoPANOpt;
wxCheckBox* m_PreferSelectToDrag;
wxCheckBox* m_warpMouseOnMove;
wxCheckBox* m_NonImmediateActions;
// Virtual event handlers, overide them in your derived class

View File

@ -403,6 +403,7 @@ void EDA_BASE_FRAME::CommonSettingsChanged( bool aEnvVarsChanged )
wxConfigBase* settings = Pgm().CommonSettings();
settings->Read( WARP_MOUSE_ON_MOVE_KEY, &m_moveWarpsCursor );
settings->Read( PREFER_SELECT_TO_DRAG_KEY, &m_dragSelects );
settings->Read( IMMEDIATE_ACTIONS_KEY, &m_immediateActions );
}
@ -467,6 +468,14 @@ void EDA_BASE_FRAME::LoadSettings( wxConfigBase* aCfg )
aCfg->Read( baseCfgName + entryMruPath, &m_mruPath );
wxConfigBase* settings = Pgm().CommonSettings();
if( !settings->Read( WARP_MOUSE_ON_MOVE_KEY, &m_moveWarpsCursor ) )
{
// Legacy versions stored the property only for Eeschema, so see if we have it there
std::unique_ptr<wxConfigBase> pcbSettings = GetNewConfig( wxT( "eeschema" ) );
pcbSettings->Read( "MoveWarpsCursor", &m_moveWarpsCursor, true );
}
if( !settings->Read( PREFER_SELECT_TO_DRAG_KEY, &m_dragSelects ) )
{
// Legacy versions stored the property only for PCBNew, so see if we have it there

View File

@ -51,15 +51,7 @@ bool PANEL_EESCHEMA_SETTINGS::TransferDataToWindow()
m_checkAutoplaceJustify->SetValue( m_frame->GetAutoplaceJustify() );
m_checkAutoplaceAlign->SetValue( m_frame->GetAutoplaceAlign() );
m_moveWarpsCursor->SetValue( m_frame->GetMoveWarpsCursor() );
m_moveTakesCursorAsOrigin->SetValue( m_frame->GetMoveTakesCursorAsOrigin() );
if( m_frame->GetDragAlwaysSelects() )
m_choiceMouseAction->SetSelection( 2 );
else if( m_frame->GetDragActionIsMove() )
m_choiceMouseAction->SetSelection( 0 );
else
m_choiceMouseAction->SetSelection( 1 );
m_mouseDragIsDrag->SetValue( m_frame->GetDragActionIsMove() );
return true;
}
@ -88,25 +80,7 @@ bool PANEL_EESCHEMA_SETTINGS::TransferDataFromWindow()
m_frame->SetAutoplaceJustify( m_checkAutoplaceJustify->GetValue() );
m_frame->SetAutoplaceAlign( m_checkAutoplaceAlign->GetValue() );
m_frame->SetMoveWarpsCursor( m_moveWarpsCursor->GetValue() );
m_frame->SetMoveTakesCursorAsOrigin( m_moveTakesCursorAsOrigin->GetValue() );
switch( m_choiceMouseAction->GetSelection() )
{
case 0:
m_frame->SetDragAlwaysSelects( false );
m_frame->SetDragActionIsMove( true);
break;
case 1:
m_frame->SetDragAlwaysSelects( false );
m_frame->SetDragActionIsMove( false );
break;
case 2:
m_frame->SetDragAlwaysSelects( true );
break;
default:
break;
}
m_frame->SetDragActionIsMove( !m_mouseDragIsDrag->GetValue() );
return true;
}

View File

@ -11,7 +11,6 @@
BEGIN_EVENT_TABLE( PANEL_EESCHEMA_SETTINGS_BASE, wxPanel )
EVT_CHOICE( wxID_ANY, PANEL_EESCHEMA_SETTINGS_BASE::_wxFB_OnChooseUnits )
EVT_CHOICE( wxID_ANY, PANEL_EESCHEMA_SETTINGS_BASE::_wxFB_OnChooseUnits )
END_EVENT_TABLE()
PANEL_EESCHEMA_SETTINGS_BASE::PANEL_EESCHEMA_SETTINGS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
@ -86,16 +85,6 @@ PANEL_EESCHEMA_SETTINGS_BASE::PANEL_EESCHEMA_SETTINGS_BASE( wxWindow* parent, wx
fgSizer3->Add( 0, 0, 1, wxEXPAND, 3 );
m_staticText161 = new wxStaticText( this, wxID_ANY, _("Mouse drag action"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText161->Wrap( -1 );
fgSizer3->Add( m_staticText161, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
wxString m_choiceMouseActionChoices[] = { _("Move"), _("Drag"), _("Rectanguar selection") };
int m_choiceMouseActionNChoices = sizeof( m_choiceMouseActionChoices ) / sizeof( wxString );
m_choiceMouseAction = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceMouseActionNChoices, m_choiceMouseActionChoices, 0 );
m_choiceMouseAction->SetSelection( 2 );
fgSizer3->Add( m_choiceMouseAction, 0, 0, 5 );
bLeftColumn->Add( fgSizer3, 0, wxLEFT|wxRIGHT, 5 );
@ -106,11 +95,10 @@ PANEL_EESCHEMA_SETTINGS_BASE::PANEL_EESCHEMA_SETTINGS_BASE( wxWindow* parent, wx
m_checkHVOrientation->SetValue(true);
sbSizer11->Add( m_checkHVOrientation, 0, wxRIGHT|wxLEFT, 5 );
m_moveWarpsCursor = new wxCheckBox( sbSizer11->GetStaticBox(), wxID_ANY, _("Warp mouse to origin of moved object"), wxDefaultPosition, wxDefaultSize, 0 );
sbSizer11->Add( m_moveWarpsCursor, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
m_mouseDragIsDrag = new wxCheckBox( sbSizer11->GetStaticBox(), wxID_ANY, _("Mouse drag performs drag (G) operation"), wxDefaultPosition, wxDefaultSize, 0 );
m_mouseDragIsDrag->SetToolTip( _("If unchecked, mouse drag will perform move (M) operation") );
m_moveTakesCursorAsOrigin = new wxCheckBox( sbSizer11->GetStaticBox(), wxID_ANY, _("Use cursor position as editing anchor"), wxDefaultPosition, wxDefaultSize, 0 );
sbSizer11->Add( m_moveTakesCursorAsOrigin, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
sbSizer11->Add( m_mouseDragIsDrag, 0, wxALL, 5 );
bLeftColumn->Add( sbSizer11, 1, wxEXPAND|wxTOP|wxBOTTOM, 5 );

View File

@ -1241,177 +1241,6 @@
<property name="width">0</property>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxLEFT|wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Mouse drag action</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_staticText161</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag"></property>
<property name="proportion">0</property>
<object class="wxChoice" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="choices">&quot;Move&quot; &quot;Drag&quot; &quot;Rectanguar selection&quot;</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_choiceMouseAction</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="selection">2</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnChoice">OnChooseUnits</event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
@ -1517,7 +1346,7 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxTOP|wxRIGHT|wxLEFT</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="1">
<property name="BottomDockable">1</property>
@ -1548,7 +1377,7 @@
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Warp mouse to origin of moved object</property>
<property name="label">Mouse drag performs drag (G) operation</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
@ -1556,7 +1385,7 @@
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_moveWarpsCursor</property>
<property name="name">m_mouseDragIsDrag</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
@ -1567,97 +1396,9 @@
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="subclass">; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnCheckBox"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxTOP|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Use cursor position as editing anchor</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_moveTakesCursorAsOrigin</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="tooltip">If unchecked, mouse drag will perform move (M) operation</property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>

View File

@ -53,11 +53,8 @@ class PANEL_EESCHEMA_SETTINGS_BASE : public wxPanel
wxStaticText* m_vPitchUnits;
wxStaticText* m_staticText16;
wxSpinCtrl* m_spinRepeatLabel;
wxStaticText* m_staticText161;
wxChoice* m_choiceMouseAction;
wxCheckBox* m_checkHVOrientation;
wxCheckBox* m_moveWarpsCursor;
wxCheckBox* m_moveTakesCursorAsOrigin;
wxCheckBox* m_mouseDragIsDrag;
wxCheckBox* m_checkAutoplaceFields;
wxCheckBox* m_checkAutoplaceJustify;
wxCheckBox* m_checkAutoplaceAlign;

View File

@ -239,10 +239,7 @@ const wxChar RescueNeverShowEntry[] = wxT( "RescueNeverShow" );
const wxChar AutoplaceFieldsEntry[] = wxT( "AutoplaceFields" );
const wxChar AutoplaceJustifyEntry[] = wxT( "AutoplaceJustify" );
const wxChar AutoplaceAlignEntry[] = wxT( "AutoplaceAlign" );
static const wxChar MoveWarpsCursorEntry[] = wxT( "MoveWarpsCursor" );
static const wxChar MoveTakesCursorAsOriginEntry[] = wxT( "MoveTakesCursorAsOrigin" );
static const wxChar DragActionIsMoveEntry[] = wxT( "DragActionIsMove" );
static const wxChar DragAlwaysSelectsEntry[] = wxT( "DragAlwaysSelects" );
static const wxChar FootprintPreviewEntry[] = wxT( "FootprintPreview" );
static const wxChar DefaultBusWidthEntry[] = wxT( "DefaultBusWidth" );
static const wxChar DefaultWireWidthEntry[] = wxT( "DefaultWireWidth" );
@ -330,10 +327,7 @@ void SCH_EDIT_FRAME::LoadSettings( wxConfigBase* aCfg )
if( aCfg->Read( DefaultJctSizeEntry, &tmp ) )
SCH_JUNCTION::SetSymbolSize( (int) tmp );
aCfg->Read( MoveWarpsCursorEntry, &m_moveWarpsCursor, true );
aCfg->Read( MoveTakesCursorAsOriginEntry, &m_moveTakesCursorAsOrigin, false );
aCfg->Read( DragActionIsMoveEntry, &m_dragActionIsMove, true );
aCfg->Read( DragAlwaysSelectsEntry, &m_dragAlwaysSelects, false );
aCfg->Read( ShowHiddenPinsEntry, &m_showAllPins, false );
aCfg->Read( HorzVertLinesOnlyEntry, &m_forceHVLines, true );
aCfg->Read( AutoplaceFieldsEntry, &m_autoplaceFields, true );
@ -374,10 +368,7 @@ void SCH_EDIT_FRAME::SaveSettings( wxConfigBase* aCfg )
wxConfigSaveSetups( aCfg, GetConfigurationSettings() );
aCfg->Write( MoveWarpsCursorEntry, m_moveWarpsCursor );
aCfg->Write( MoveTakesCursorAsOriginEntry, m_moveTakesCursorAsOrigin );
aCfg->Write( DragActionIsMoveEntry, m_dragActionIsMove );
aCfg->Write( DragAlwaysSelectsEntry, m_dragAlwaysSelects );
aCfg->Write( DefaultBusWidthEntry, (long) GetDefaultBusThickness() );
aCfg->Write( DefaultWireWidthEntry, (long) GetDefaultWireThickness() );
aCfg->Write( DefaultJctSizeEntry, (long) SCH_JUNCTION::GetSymbolSize() );

View File

@ -91,11 +91,7 @@ protected:
int m_repeatDeltaLabel; // the increment value of labels like bus members
// when they are repeated
bool m_showPinElectricalTypeName;
bool m_moveTakesCursorAsOrigin; // always take the cursor (instead of item origin) as
// the move anchor
bool m_dragActionIsMove; // drag action defaults to move, otherwise it's drag
bool m_dragAlwaysSelects; // drag action selects items (and never drags/moves)
bool m_moveWarpsCursor; // cursor is warped to move/drag origin
public:
SCH_BASE_FRAME( KIWAY* aKiway, wxWindow* aParent,
@ -160,18 +156,9 @@ public:
*/
const wxString GetZoomLevelIndicator() const override;
void SetMoveTakesCursorAsOrigin( bool aValue ) { m_moveTakesCursorAsOrigin = aValue; }
bool GetMoveTakesCursorAsOrigin() const { return m_moveTakesCursorAsOrigin; }
void SetDragActionIsMove( bool aValue ) { m_dragActionIsMove = aValue; }
bool GetDragActionIsMove() const { return m_dragActionIsMove; }
void SetDragAlwaysSelects( bool aValue ) { m_dragAlwaysSelects = aValue; }
bool GetDragAlwaysSelects() const { return m_dragAlwaysSelects; }
void SetMoveWarpsCursor( bool aValue ) { m_moveWarpsCursor = aValue; }
bool GetMoveWarpsCursor() const { return m_moveWarpsCursor; }
void SetPageSettings( const PAGE_INFO& aPageSettings ) override;
const PAGE_INFO& GetPageSettings () const override;
const wxSize GetPageSizeIU() const override;

View File

@ -342,7 +342,7 @@ int EE_SELECTION_TOOL::Main( const TOOL_EVENT& aEvent )
// drag with LMB? Select multiple objects (or at least draw a selection box) or drag them
else if( evt->IsDrag( BUT_LEFT ) )
{
if( m_additive || m_subtractive || m_exclusive_or || m_frame->GetDragAlwaysSelects() )
if( m_additive || m_subtractive || m_exclusive_or || m_frame->GetDragSelects() )
{
selectMultiple();
}

View File

@ -137,6 +137,7 @@ protected:
// first invocation of a hotkey will just select the
// relevant tool.
bool m_dragSelects; // Prefer selection to dragging.
bool m_moveWarpsCursor; // cursor is warped to move/drag origin
bool m_hasAutoSave;
bool m_autoSaveState;
int m_autoSaveInterval; // The auto save interval time in seconds.
@ -247,6 +248,12 @@ public:
*/
bool GetDragSelects() const { return m_dragSelects; }
/**
* Indicates that a move operation should warp the mouse pointer to the origin of the
* move object. This improves snapping, but some users are alergic to mouse warping.
*/
bool GetMoveWarpsCursor() const { return m_moveWarpsCursor; }
/**
* Override the default process event handler to implement the auto save feature.
*

View File

@ -55,6 +55,7 @@
#define GAL_DISPLAY_OPTIONS_KEY wxT( "GalDisplayOptions" )
#define GAL_ANTIALIASING_MODE_KEY wxT( "OpenGLAntialiasingMode" )
#define CAIRO_ANTIALIASING_MODE_KEY wxT( "CairoAntialiasingMode" )
#define WARP_MOUSE_ON_MOVE_KEY wxT( "MoveWarpsCursor" )
#define IMMEDIATE_ACTIONS_KEY wxT( "ImmediateActions" )
#define PREFER_SELECT_TO_DRAG_KEY wxT( "PreferSelectionToDragging" )