← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH 6/7] Eeschema: Field editor closes on Esc+Shift.

 

I agree that Shift+Esc isn't intuitive but in other way casual dialog
closing on Esc (that often happens in my case) may be annoying, especially
in large projects where you may need to fill a lot of fields. Exactly why I
decide to use shortcut Shift+Esc.

ср, 16 янв. 2019 г. в 19:19, José Ignacio <jose.cyborg@xxxxxxxxx>:

> Double escape can work if there is some sort of visual feedback. Luckily
> now the dialog will ask before exiting with unsaved changes, that didn't
> use to be the case, so exiting with escape is not that huge a deal anymore.
>
> On Wed, Jan 16, 2019 at 10:12 AM Wayne Stambaugh <stambaughw@xxxxxxxxx>
> wrote:
>
>> We should get some more feedback on this change.  I'm not convinced this
>> is the way to go.  It should not be surprising to anyone that the escape
>> keep closes a dialog since AFAIK this is the default dialog behavior for
>> all platforms.  My guess is that users will not intuitively know that
>> shift+escape will close the dialog and there will be bug report about
>> that immediately after we merge this change.  Maybe switching the
>> behavior between the escape and shift+escape would be more natural for
>> users.  The other option is the go with a double escape schema where if
>> the user is editing a grid cell, the first escape exits out of the grid
>> editing and the second escape closes the dialog as expected.  If no grid
>> is being edited, then a single escape closes the dialog.
>>
>> On 1/16/2019 9:54 AM, José Ignacio wrote:
>> > great change, the current behavior of exiting with esc has bitten me in
>> > the ass too many times to count!
>> >
>> > On Wed, Jan 16, 2019, 7:41 AM Baranovskiy Konstantin
>> > <baranovskiykonstantin@xxxxxxxxx
>> > <mailto:baranovskiykonstantin@xxxxxxxxx> wrote:
>> >
>> >     CHANGED: By default dialog closes on Esc key immediately. But in
>> case
>> >     with Field editor there is no way to close a cell editor with
>> canceling
>> >     changes in a fields grid (it's done by pressing Esc key). The fields
>> >     grid is the main control here and it must be the most comfortable to
>> >     work with. So default behavior on Esc key pressing disabled in Field
>> >     editor and for now it closes by Esc+Shift.
>> >     ---
>> >      .../dialogs/dialog_fields_editor_global.cpp   |  15 +-
>> >      .../dialogs/dialog_fields_editor_global.h     |   3 +-
>> >      .../dialog_fields_editor_global_base.cpp      |  90 +-
>> >      .../dialog_fields_editor_global_base.fbp      | 826
>> ++++++------------
>> >      .../dialog_fields_editor_global_base.h        |  23 +-
>> >      5 files changed, 347 insertions(+), 610 deletions(-)
>> >
>> >     diff --git a/eeschema/dialogs/dialog_fields_editor_global.cpp
>> >     b/eeschema/dialogs/dialog_fields_editor_global.cpp
>> >     index ec928e05b..868297350 100644
>> >     --- a/eeschema/dialogs/dialog_fields_editor_global.cpp
>> >     +++ b/eeschema/dialogs/dialog_fields_editor_global.cpp
>> >     @@ -646,6 +646,11 @@
>> >     DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(
>> >     SCH_EDIT_FRAME* parent
>> >      {
>> >          wxSize defaultDlgSize = ConvertDialogToPixels( wxSize( 600, 300
>> >     ) );
>> >
>> >     +    // Disable dialog closing on Esc key.
>> >     +    // It is necessary for a grid that also must handle this key
>> event.
>> >     +    // Current dialog closes on Esc+Shift (see OnCharHook handler).
>> >     +    SetEscapeId( wxID_NONE );
>> >     +
>> >          // Get all components from the list of schematic sheets
>> >          SCH_SHEET_LIST sheets( g_RootSheet );
>> >          sheets.GetComponents( m_componentRefs, false );
>> >     @@ -1025,19 +1030,25 @@ void
>> >     DIALOG_FIELDS_EDITOR_GLOBAL::OnSizeFieldList( wxSizeEvent& event )
>> >      }
>> >
>> >
>> >     -void DIALOG_FIELDS_EDITOR_GLOBAL::OnSaveAndContinue(
>> >     wxCommandEvent& aEvent )
>> >     +void DIALOG_FIELDS_EDITOR_GLOBAL::OnSaveAndContinue(
>> >     wxCommandEvent& event )
>> >      {
>> >          if( TransferDataFromWindow() )
>> >              m_parent->SaveProject();
>> >      }
>> >
>> >     +void DIALOG_FIELDS_EDITOR_GLOBAL::OnCharHook( wxKeyEvent& event )
>> >     +{
>> >     +    if( event.GetKeyCode() == WXK_ESCAPE && event.ShiftDown() )
>> >     +        Close();
>> >     +
>> >     +    event.Skip();
>> >     +}
>> >
>> >      void DIALOG_FIELDS_EDITOR_GLOBAL::OnCancel( wxCommandEvent& event )
>> >      {
>> >          Close();
>> >      }
>> >
>> >     -
>> >      void DIALOG_FIELDS_EDITOR_GLOBAL::OnClose( wxCloseEvent& event )
>> >      {
>> >          // This is a cancel, so commit quietly as we're going to throw
>> >     the results away anyway.
>> >     diff --git a/eeschema/dialogs/dialog_fields_editor_global.h
>> >     b/eeschema/dialogs/dialog_fields_editor_global.h
>> >     index 4d8abfc65..a9c14818c 100644
>> >     --- a/eeschema/dialogs/dialog_fields_editor_global.h
>> >     +++ b/eeschema/dialogs/dialog_fields_editor_global.h
>> >     @@ -64,7 +64,8 @@ private:
>> >          void OnTableItemContextMenu( wxGridEvent& event ) override;
>> >          void OnSizeFieldList( wxSizeEvent& event ) override;
>> >          void OnAddField( wxCommandEvent& event ) override;
>> >     -    void OnSaveAndContinue( wxCommandEvent& aEvent ) override;
>> >     +    void OnSaveAndContinue( wxCommandEvent& event ) override;
>> >     +    void OnCharHook( wxKeyEvent& event ) override;
>> >          void OnCancel( wxCommandEvent& event ) override;
>> >          void OnClose( wxCloseEvent& event ) override;
>> >      };
>> >     diff --git a/eeschema/dialogs/dialog_fields_editor_global_base.cpp
>> >     b/eeschema/dialogs/dialog_fields_editor_global_base.cpp
>> >     index c261b5bc8..ab2fcf2e3 100644
>> >     --- a/eeschema/dialogs/dialog_fields_editor_global_base.cpp
>> >     +++ b/eeschema/dialogs/dialog_fields_editor_global_base.cpp
>> >     @@ -1,5 +1,5 @@
>> >
>>   ///////////////////////////////////////////////////////////////////////////
>> >     -// C++ code generated with wxFormBuilder (version Dec 30 2017)
>> >     +// C++ code generated with wxFormBuilder (version Jan 12 2019)
>> >      // http://www.wxformbuilder.org/
>> >      //
>> >      // PLEASE DO *NOT* EDIT THIS FILE!
>> >     @@ -14,118 +14,119 @@
>> >      DIALOG_FIELDS_EDITOR_GLOBAL_BASE::DIALOG_FIELDS_EDITOR_GLOBAL_BASE(
>> >     wxWindow* parent, wxWindowID id, const wxString& title, const
>> >     wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM(
>> >     parent, id, title, pos, size, style )
>> >      {
>> >             this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
>> >     -
>> >     +
>> >             wxBoxSizer* bMainSizer;
>> >             bMainSizer = new wxBoxSizer( wxVERTICAL );
>> >     -
>> >     +
>> >             m_splitter1 = new wxSplitterWindow( this, wxID_ANY,
>> >     wxDefaultPosition, wxDefaultSize, wxSP_LIVE_UPDATE );
>> >             m_splitter1->SetMinimumPaneSize( 200 );
>> >     -
>> >     +
>> >             m_leftPanel = new wxPanel( m_splitter1, wxID_ANY,
>> >     wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
>> >             wxBoxSizer* bLeftSizer;
>> >             bLeftSizer = new wxBoxSizer( wxVERTICAL );
>> >     -
>> >     +
>> >             wxBoxSizer* bGroupSizer;
>> >             bGroupSizer = new wxBoxSizer( wxHORIZONTAL );
>> >     -
>> >     +
>> >             m_groupComponentsBox = new wxCheckBox( m_leftPanel,
>> >     OPT_GROUP_COMPONENTS, _("Group symbols"), wxDefaultPosition,
>> >     wxDefaultSize, 0 );
>> >     -       m_groupComponentsBox->SetValue(true);
>> >     +       m_groupComponentsBox->SetValue(true);
>> >             m_groupComponentsBox->SetToolTip( _("Group components
>> >     together based on common properties") );
>> >     -
>> >     +
>> >             bGroupSizer->Add( m_groupComponentsBox, 0, wxALL|wxEXPAND,
>> 5 );
>> >     -
>> >     -
>> >     +
>> >     +
>> >             bGroupSizer->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 10 );
>> >     -
>> >     -       m_bRefresh = new wxBitmapButton( m_leftPanel, wxID_ANY,
>> >     wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
>> >     +
>> >     +       m_bRefresh = new wxBitmapButton( m_leftPanel, wxID_ANY,
>> >     wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
>> >             m_bRefresh->SetMinSize( wxSize( 30,30 ) );
>> >     -
>> >     +
>> >             bGroupSizer->Add( m_bRefresh, 0, wxALIGN_CENTER_VERTICAL, 5
>> );
>> >     -
>> >     -
>> >     +
>> >     +
>> >             bLeftSizer->Add( bGroupSizer, 0,
>> >     wxALL|wxBOTTOM|wxEXPAND|wxTOP, 2 );
>> >     -
>> >     +
>> >             m_fieldsCtrl = new wxDataViewListCtrl( m_leftPanel,
>> >     wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
>> >             m_fieldsCtrl->SetMinSize( wxSize( -1,220 ) );
>> >     -
>> >     +
>> >             bLeftSizer->Add( m_fieldsCtrl, 1, wxALL|wxEXPAND, 5 );
>> >     -
>> >     +
>> >             m_addFieldButton = new wxButton( m_leftPanel, wxID_ANY,
>> >     _("Add Field..."), wxDefaultPosition, wxDefaultSize, 0 );
>> >             bLeftSizer->Add( m_addFieldButton, 0, wxALL|wxEXPAND, 5 );
>> >     -
>> >     -
>> >     +
>> >     +
>> >             m_leftPanel->SetSizer( bLeftSizer );
>> >             m_leftPanel->Layout();
>> >             bLeftSizer->Fit( m_leftPanel );
>> >             m_panel4 = new wxPanel( m_splitter1, wxID_ANY,
>> >     wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
>> >             wxBoxSizer* bRightSizer;
>> >             bRightSizer = new wxBoxSizer( wxVERTICAL );
>> >     -
>> >     +
>> >             m_grid = new WX_GRID( m_panel4, wxID_ANY, wxDefaultPosition,
>> >     wxDefaultSize, 0 );
>> >     -
>> >     +
>> >             // Grid
>> >             m_grid->CreateGrid( 5, 5 );
>> >             m_grid->EnableEditing( true );
>> >             m_grid->EnableGridLines( true );
>> >             m_grid->EnableDragGridSize( false );
>> >             m_grid->SetMargins( 0, 0 );
>> >     -
>> >     +
>> >             // Columns
>> >             m_grid->EnableDragColMove( true );
>> >             m_grid->EnableDragColSize( true );
>> >             m_grid->SetColLabelSize( 20 );
>> >     -       m_grid->SetColLabelAlignment( wxALIGN_CENTRE,
>> wxALIGN_CENTRE );
>> >     -
>> >     +       m_grid->SetColLabelAlignment( wxALIGN_CENTER,
>> wxALIGN_CENTER );
>> >     +
>> >             // Rows
>> >             m_grid->EnableDragRowSize( false );
>> >             m_grid->SetRowLabelSize( 0 );
>> >     -       m_grid->SetRowLabelAlignment( wxALIGN_CENTRE,
>> wxALIGN_CENTRE );
>> >     -
>> >     +       m_grid->SetRowLabelAlignment( wxALIGN_CENTER,
>> wxALIGN_CENTER );
>> >     +
>> >             // Label Appearance
>> >     -
>> >     +
>> >             // Cell Defaults
>> >             m_grid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP
>> );
>> >             m_grid->SetMinSize( wxSize( 400,240 ) );
>> >     -
>> >     +
>> >             bRightSizer->Add( m_grid, 1, wxALL|wxEXPAND, 5 );
>> >     -
>> >     -
>> >     +
>> >     +
>> >             m_panel4->SetSizer( bRightSizer );
>> >             m_panel4->Layout();
>> >             bRightSizer->Fit( m_panel4 );
>> >             m_splitter1->SplitVertically( m_leftPanel, m_panel4, -1 );
>> >             bMainSizer->Add( m_splitter1, 1, wxALL|wxEXPAND, 5 );
>> >     -
>> >     +
>> >             wxBoxSizer* bButtonsSizer;
>> >             bButtonsSizer = new wxBoxSizer( wxHORIZONTAL );
>> >     -
>> >     -
>> >     +
>> >     +
>> >             bButtonsSizer->Add( 0, 0, 1, wxEXPAND, 5 );
>> >     -
>> >     +
>> >             m_button1 = new wxButton( this, wxID_ANY, _("Apply, Save
>> >     Schematic && Continue"), wxDefaultPosition, wxDefaultSize, 0 );
>> >             bButtonsSizer->Add( m_button1, 0,
>> >     wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
>> >     -
>> >     +
>> >             m_sdbSizer1 = new wxStdDialogButtonSizer();
>> >             m_sdbSizer1OK = new wxButton( this, wxID_OK );
>> >             m_sdbSizer1->AddButton( m_sdbSizer1OK );
>> >             m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL );
>> >             m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
>> >             m_sdbSizer1->Realize();
>> >     -
>> >     +
>> >             bButtonsSizer->Add( m_sdbSizer1, 0,
>> >     wxBOTTOM|wxEXPAND|wxLEFT, 5 );
>> >     -
>> >     -
>> >     +
>> >     +
>> >             bMainSizer->Add( bButtonsSizer, 0, wxEXPAND, 5 );
>> >     -
>> >     -
>> >     +
>> >     +
>> >             this->SetSizer( bMainSizer );
>> >             this->Layout();
>> >             bMainSizer->Fit( this );
>> >     -
>> >     +
>> >             this->Centre( wxBOTH );
>> >     -
>> >     +
>> >             // Connect Events
>> >             this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler(
>> >     DIALOG_FIELDS_EDITOR_GLOBAL_BASE::OnClose ) );
>> >     +       m_splitter1->Connect( wxEVT_CHAR_HOOK, wxKeyEventHandler(
>> >     DIALOG_FIELDS_EDITOR_GLOBAL_BASE::OnCharHook ), NULL, this );
>> >             m_groupComponentsBox->Connect(
>> >     wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(
>> >     DIALOG_FIELDS_EDITOR_GLOBAL_BASE::OnGroupComponentsToggled ), NULL,
>> >     this );
>> >             m_bRefresh->Connect( wxEVT_COMMAND_BUTTON_CLICKED,
>> >     wxCommandEventHandler(
>> >     DIALOG_FIELDS_EDITOR_GLOBAL_BASE::OnRegroupComponents ), NULL, this
>> );
>> >             m_fieldsCtrl->Connect(
>> >     wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEventHandler(
>> >     DIALOG_FIELDS_EDITOR_GLOBAL_BASE::OnColumnItemToggled ), NULL, this
>> );
>> >     @@ -143,6 +144,7 @@
>> >
>>  DIALOG_FIELDS_EDITOR_GLOBAL_BASE::~DIALOG_FIELDS_EDITOR_GLOBAL_BASE()
>> >      {
>> >             // Disconnect Events
>> >             this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler(
>> >     DIALOG_FIELDS_EDITOR_GLOBAL_BASE::OnClose ) );
>> >     +       m_splitter1->Disconnect( wxEVT_CHAR_HOOK, wxKeyEventHandler(
>> >     DIALOG_FIELDS_EDITOR_GLOBAL_BASE::OnCharHook ), NULL, this );
>> >             m_groupComponentsBox->Disconnect(
>> >     wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(
>> >     DIALOG_FIELDS_EDITOR_GLOBAL_BASE::OnGroupComponentsToggled ), NULL,
>> >     this );
>> >             m_bRefresh->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED,
>> >     wxCommandEventHandler(
>> >     DIALOG_FIELDS_EDITOR_GLOBAL_BASE::OnRegroupComponents ), NULL, this
>> );
>> >             m_fieldsCtrl->Disconnect(
>> >     wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEventHandler(
>> >     DIALOG_FIELDS_EDITOR_GLOBAL_BASE::OnColumnItemToggled ), NULL, this
>> );
>> >     @@ -154,5 +156,5 @@
>> >
>>  DIALOG_FIELDS_EDITOR_GLOBAL_BASE::~DIALOG_FIELDS_EDITOR_GLOBAL_BASE()
>> >             m_grid->Disconnect( wxEVT_GRID_CELL_RIGHT_CLICK,
>> >     wxGridEventHandler(
>> >     DIALOG_FIELDS_EDITOR_GLOBAL_BASE::OnTableItemContextMenu ), NULL,
>> >     this );
>> >             m_button1->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED,
>> >     wxCommandEventHandler(
>> >     DIALOG_FIELDS_EDITOR_GLOBAL_BASE::OnSaveAndContinue ), NULL, this );
>> >             m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED,
>> >     wxCommandEventHandler( DIALOG_FIELDS_EDITOR_GLOBAL_BASE::OnCancel ),
>> >     NULL, this );
>> >     -
>> >     +
>> >      }
>> >     diff --git a/eeschema/dialogs/dialog_fields_editor_global_base.fbp
>> >     b/eeschema/dialogs/dialog_fields_editor_global_base.fbp
>> >     index 6e4c89459..fb04b14ff 100644
>> >     --- a/eeschema/dialogs/dialog_fields_editor_global_base.fbp
>> >     +++ b/eeschema/dialogs/dialog_fields_editor_global_base.fbp
>> >     @@ -2,7 +2,7 @@
>> >      <wxFormBuilder_Project>
>> >          <FileVersion major="1" minor="15" />
>> >          <object class="Project" expanded="1">
>> >     -        <property name="class_decoration" />
>> >     +        <property name="class_decoration"></property>
>> >              <property name="code_generation">C++</property>
>> >              <property name="disconnect_events">1</property>
>> >              <property name="disconnect_mode">source_name</property>
>> >     @@ -14,11 +14,12 @@
>> >              <property
>> >     name="file">dialog_fields_editor_global_base</property>
>> >              <property name="first_id">1000</property>
>> >              <property name="help_provider">none</property>
>> >     +        <property name="indent_with_spaces"></property>
>> >              <property name="internationalize">1</property>
>> >              <property
>> >     name="name">dialog_fields_editor_global_base</property>
>> >     -        <property name="namespace" />
>> >     +        <property name="namespace"></property>
>> >              <property name="path">.</property>
>> >     -        <property name="precompiled_header" />
>> >     +        <property name="precompiled_header"></property>
>> >              <property name="relative_path">1</property>
>> >              <property name="skip_lua_events">1</property>
>> >              <property name="skip_php_events">1</property>
>> >     @@ -29,244 +30,160 @@
>> >              <object class="Dialog" expanded="1">
>> >                  <property name="aui_managed">0</property>
>> >                  <property
>> >     name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
>> >     -            <property name="bg" />
>> >     +            <property name="bg"></property>
>> >                  <property name="center">wxBOTH</property>
>> >     -            <property name="context_help" />
>> >     +            <property name="context_help"></property>
>> >                  <property name="context_menu">1</property>
>> >                  <property name="enabled">1</property>
>> >                  <property name="event_handler">impl_virtual</property>
>> >     -            <property name="extra_style" />
>> >     -            <property name="fg" />
>> >     -            <property name="font" />
>> >     +            <property name="extra_style"></property>
>> >     +            <property name="fg"></property>
>> >     +            <property name="font"></property>
>> >                  <property name="hidden">0</property>
>> >                  <property name="id">wxID_ANY</property>
>> >     -            <property name="maximum_size" />
>> >     +            <property name="maximum_size"></property>
>> >                  <property name="minimum_size">-1,-1</property>
>> >                  <property
>> >     name="name">DIALOG_FIELDS_EDITOR_GLOBAL_BASE</property>
>> >     -            <property name="pos" />
>> >     +            <property name="pos"></property>
>> >                  <property name="size">-1,-1</property>
>> >                  <property
>> >
>>  name="style">wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER</property>
>> >                  <property name="subclass">DIALOG_SHIM;
>> >     dialog_shim.h</property>
>> >                  <property name="title">Symbol Fields</property>
>> >     -            <property name="tooltip" />
>> >     -            <property name="window_extra_style" />
>> >     -            <property name="window_name" />
>> >     -            <property name="window_style" />
>> >     -            <event name="OnActivate" />
>> >     -            <event name="OnActivateApp" />
>> >     -            <event name="OnAuiFindManager" />
>> >     -            <event name="OnAuiPaneButton" />
>> >     -            <event name="OnAuiPaneClose" />
>> >     -            <event name="OnAuiPaneMaximize" />
>> >     -            <event name="OnAuiPaneRestore" />
>> >     -            <event name="OnAuiRender" />
>> >     -            <event name="OnChar" />
>> >     +            <property name="tooltip"></property>
>> >     +            <property name="window_extra_style"></property>
>> >     +            <property name="window_name"></property>
>> >     +            <property name="window_style"></property>
>> >                  <event name="OnClose">OnClose</event>
>> >     -            <event name="OnEnterWindow" />
>> >     -            <event name="OnEraseBackground" />
>> >     -            <event name="OnHibernate" />
>> >     -            <event name="OnIconize" />
>> >     -            <event name="OnIdle" />
>> >     -            <event name="OnInitDialog" />
>> >     -            <event name="OnKeyDown" />
>> >     -            <event name="OnKeyUp" />
>> >     -            <event name="OnKillFocus" />
>> >     -            <event name="OnLeaveWindow" />
>> >     -            <event name="OnLeftDClick" />
>> >     -            <event name="OnLeftDown" />
>> >     -            <event name="OnLeftUp" />
>> >     -            <event name="OnMiddleDClick" />
>> >     -            <event name="OnMiddleDown" />
>> >     -            <event name="OnMiddleUp" />
>> >     -            <event name="OnMotion" />
>> >     -            <event name="OnMouseEvents" />
>> >     -            <event name="OnMouseWheel" />
>> >     -            <event name="OnPaint" />
>> >     -            <event name="OnRightDClick" />
>> >     -            <event name="OnRightDown" />
>> >     -            <event name="OnRightUp" />
>> >     -            <event name="OnSetFocus" />
>> >     -            <event name="OnSize" />
>> >     -            <event name="OnUpdateUI" />
>> >                  <object class="wxBoxSizer" expanded="1">
>> >                      <property name="minimum_size">-1,-1</property>
>> >                      <property name="name">bMainSizer</property>
>> >                      <property name="orient">wxVERTICAL</property>
>> >                      <property name="permission">none</property>
>> >     -                <object class="sizeritem" expanded="1">
>> >     +                <object class="sizeritem" expanded="0">
>> >                          <property name="border">5</property>
>> >                          <property name="flag">wxALL|wxEXPAND</property>
>> >                          <property name="proportion">1</property>
>> >     -                    <object class="wxSplitterWindow" expanded="1">
>> >     +                    <object class="wxSplitterWindow" expanded="0">
>> >                              <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 name="aui_name" />
>> >     -                        <property name="aui_position" />
>> >     -                        <property name="aui_row" />
>> >     -                        <property name="best_size" />
>> >     -                        <property name="bg" />
>> >     -                        <property name="caption" />
>> >     +                        <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 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 name="fg"></property>
>> >                              <property name="floatable">1</property>
>> >     -                        <property name="font" />
>> >     +                        <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 name="max_size"></property>
>> >                              <property
>> name="maximize_button">0</property>
>> >     -                        <property name="maximum_size" />
>> >     +                        <property name="maximum_size"></property>
>> >                              <property
>> name="min_pane_size">200</property>
>> >     -                        <property name="min_size" />
>> >     +                        <property name="min_size"></property>
>> >                              <property
>> name="minimize_button">0</property>
>> >                              <property
>> name="minimum_size">-1,-1</property>
>> >                              <property name="moveable">1</property>
>> >                              <property
>> name="name">m_splitter1</property>
>> >                              <property name="pane_border">1</property>
>> >     -                        <property name="pane_position" />
>> >     -                        <property name="pane_size" />
>> >     +                        <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 name="pos"></property>
>> >                              <property
>> name="resize">Resizable</property>
>> >                              <property name="sashgravity">0.0</property>
>> >                              <property name="sashpos">-1</property>
>> >                              <property name="sashsize">-1</property>
>> >                              <property name="show">1</property>
>> >     -                        <property name="size" />
>> >     +                        <property name="size"></property>
>> >                              <property
>> >     name="splitmode">wxSPLIT_VERTICAL</property>
>> >                              <property
>> >     name="style">wxSP_LIVE_UPDATE</property>
>> >     -                        <property name="subclass" />
>> >     +                        <property name="subclass"></property>
>> >                              <property name="toolbar_pane">0</property>
>> >     -                        <property name="tooltip" />
>> >     -                        <property name="window_extra_style" />
>> >     -                        <property name="window_name" />
>> >     -                        <property name="window_style" />
>> >     -                        <event name="OnChar" />
>> >     -                        <event name="OnEnterWindow" />
>> >     -                        <event name="OnEraseBackground" />
>> >     -                        <event name="OnKeyDown" />
>> >     -                        <event name="OnKeyUp" />
>> >     -                        <event name="OnKillFocus" />
>> >     -                        <event name="OnLeaveWindow" />
>> >     -                        <event name="OnLeftDClick" />
>> >     -                        <event name="OnLeftDown" />
>> >     -                        <event name="OnLeftUp" />
>> >     -                        <event name="OnMiddleDClick" />
>> >     -                        <event name="OnMiddleDown" />
>> >     -                        <event name="OnMiddleUp" />
>> >     -                        <event name="OnMotion" />
>> >     -                        <event name="OnMouseEvents" />
>> >     -                        <event name="OnMouseWheel" />
>> >     -                        <event name="OnPaint" />
>> >     -                        <event name="OnRightDClick" />
>> >     -                        <event name="OnRightDown" />
>> >     -                        <event name="OnRightUp" />
>> >     -                        <event name="OnSetFocus" />
>> >     -                        <event name="OnSize" />
>> >     -                        <event name="OnSplitterDClick" />
>> >     -                        <event name="OnSplitterSashPosChanged" />
>> >     -                        <event name="OnSplitterSashPosChanging" />
>> >     -                        <event name="OnSplitterUnsplit" />
>> >     -                        <event name="OnUpdateUI" />
>> >     -                        <object class="splitteritem" expanded="1">
>> >     -                            <object class="wxPanel" expanded="1">
>> >     +                        <property name="tooltip"></property>
>> >     +                        <property
>> name="window_extra_style"></property>
>> >     +                        <property name="window_name"></property>
>> >     +                        <property name="window_style"></property>
>> >     +                        <event name="OnCharHook">OnCharHook</event>
>> >     +                        <object class="splitteritem" expanded="0">
>> >     +                            <object class="wxPanel" expanded="0">
>> >                                      <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 name="aui_name" />
>> >     -                                <property name="aui_position" />
>> >     -                                <property name="aui_row" />
>> >     -                                <property name="best_size" />
>> >     -                                <property name="bg" />
>> >     -                                <property name="caption" />
>> >     +                                <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
>> >     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 name="fg"></property>
>> >                                      <property
>> name="floatable">1</property>
>> >     -                                <property name="font" />
>> >     +                                <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
>> name="max_size"></property>
>> >                                      <property
>> >     name="maximize_button">0</property>
>> >     -                                <property name="maximum_size" />
>> >     -                                <property name="min_size" />
>> >     +                                <property
>> >     name="maximum_size"></property>
>> >     +                                <property
>> name="min_size"></property>
>> >                                      <property
>> >     name="minimize_button">0</property>
>> >     -                                <property name="minimum_size" />
>> >     +                                <property
>> >     name="minimum_size"></property>
>> >                                      <property
>> name="moveable">1</property>
>> >                                      <property
>> >     name="name">m_leftPanel</property>
>> >                                      <property
>> >     name="pane_border">1</property>
>> >     -                                <property name="pane_position" />
>> >     -                                <property name="pane_size" />
>> >     +                                <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 name="pos"></property>
>> >                                      <property
>> >     name="resize">Resizable</property>
>> >                                      <property name="show">1</property>
>> >     -                                <property name="size" />
>> >     -                                <property name="subclass" />
>> >     +                                <property name="size"></property>
>> >     +                                <property
>> name="subclass"></property>
>> >                                      <property
>> >     name="toolbar_pane">0</property>
>> >     -                                <property name="tooltip" />
>> >     -                                <property
>> name="window_extra_style" />
>> >     -                                <property name="window_name" />
>> >     +                                <property
>> name="tooltip"></property>
>> >     +                                <property
>> >     name="window_extra_style"></property>
>> >     +                                <property
>> >     name="window_name"></property>
>> >                                      <property
>> >     name="window_style">wxTAB_TRAVERSAL</property>
>> >     -                                <event name="OnChar" />
>> >     -                                <event name="OnEnterWindow" />
>> >     -                                <event name="OnEraseBackground" />
>> >     -                                <event name="OnKeyDown" />
>> >     -                                <event name="OnKeyUp" />
>> >     -                                <event name="OnKillFocus" />
>> >     -                                <event name="OnLeaveWindow" />
>> >     -                                <event name="OnLeftDClick" />
>> >     -                                <event name="OnLeftDown" />
>> >     -                                <event name="OnLeftUp" />
>> >     -                                <event name="OnMiddleDClick" />
>> >     -                                <event name="OnMiddleDown" />
>> >     -                                <event name="OnMiddleUp" />
>> >     -                                <event name="OnMotion" />
>> >     -                                <event name="OnMouseEvents" />
>> >     -                                <event name="OnMouseWheel" />
>> >     -                                <event name="OnPaint" />
>> >     -                                <event name="OnRightDClick" />
>> >     -                                <event name="OnRightDown" />
>> >     -                                <event name="OnRightUp" />
>> >     -                                <event name="OnSetFocus" />
>> >     -                                <event name="OnSize" />
>> >     -                                <event name="OnUpdateUI" />
>> >     -                                <object class="wxBoxSizer"
>> >     expanded="1">
>> >     -                                    <property name="minimum_size"
>> />
>> >     +                                <object class="wxBoxSizer"
>> >     expanded="0">
>> >     +                                    <property
>> >     name="minimum_size"></property>
>> >                                          <property
>> >     name="name">bLeftSizer</property>
>> >                                          <property
>> >     name="orient">wxVERTICAL</property>
>> >                                          <property
>> >     name="permission">none</property>
>> >     -                                    <object class="sizeritem"
>> >     expanded="1">
>> >     +                                    <object class="sizeritem"
>> >     expanded="0">
>> >                                              <property
>> >     name="border">2</property>
>> >                                              <property
>> >     name="flag">wxALL|wxBOTTOM|wxEXPAND|wxTOP</property>
>> >                                              <property
>> >     name="proportion">0</property>
>> >     -                                        <object class="wxBoxSizer"
>> >     expanded="1">
>> >     -                                            <property
>> >     name="minimum_size" />
>> >     +                                        <object class="wxBoxSizer"
>> >     expanded="0">
>> >     +                                            <property
>> >     name="minimum_size"></property>
>> >                                                  <property
>> >     name="name">bGroupSizer</property>
>> >                                                  <property
>> >     name="orient">wxHORIZONTAL</property>
>> >                                                  <property
>> >     name="permission">none</property>
>> >     @@ -279,83 +196,60 @@
>> >                                                          <property
>> >     name="LeftDockable">1</property>
>> >                                                          <property
>> >     name="RightDockable">1</property>
>> >                                                          <property
>> >     name="TopDockable">1</property>
>> >     -                                                    <property
>> >     name="aui_layer" />
>> >     -                                                    <property
>> >     name="aui_name" />
>> >     -                                                    <property
>> >     name="aui_position" />
>> >     -                                                    <property
>> >     name="aui_row" />
>> >     -                                                    <property
>> >     name="best_size" />
>> >     -                                                    <property
>> >     name="bg" />
>> >     -                                                    <property
>> >     name="caption" />
>> >     +                                                    <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">1</property>
>> >                                                          <property
>> >     name="close_button">1</property>
>> >     -                                                    <property
>> >     name="context_help" />
>> >     +                                                    <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
>> >     name="fg"></property>
>> >                                                          <property
>> >     name="floatable">1</property>
>> >     -                                                    <property
>> >     name="font" />
>> >     +                                                    <property
>> >     name="font"></property>
>> >                                                          <property
>> >     name="gripper">0</property>
>> >                                                          <property
>> >     name="hidden">0</property>
>> >                                                          <property
>> >     name="id">OPT_GROUP_COMPONENTS</property>
>> >                                                          <property
>> >     name="label">Group symbols</property>
>> >     -                                                    <property
>> >     name="max_size" />
>> >     +                                                    <property
>> >     name="max_size"></property>
>> >                                                          <property
>> >     name="maximize_button">0</property>
>> >     -                                                    <property
>> >     name="maximum_size" />
>> >     -                                                    <property
>> >     name="min_size" />
>> >     +                                                    <property
>> >     name="maximum_size"></property>
>> >     +                                                    <property
>> >     name="min_size"></property>
>> >                                                          <property
>> >     name="minimize_button">0</property>
>> >     -                                                    <property
>> >     name="minimum_size" />
>> >     +                                                    <property
>> >     name="minimum_size"></property>
>> >                                                          <property
>> >     name="moveable">1</property>
>> >                                                          <property
>> >     name="name">m_groupComponentsBox</property>
>> >                                                          <property
>> >     name="pane_border">1</property>
>> >     -                                                    <property
>> >     name="pane_position" />
>> >     -                                                    <property
>> >     name="pane_size" />
>> >     +                                                    <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
>> >     name="pos"></property>
>> >                                                          <property
>> >     name="resize">Resizable</property>
>> >                                                          <property
>> >     name="show">1</property>
>> >     -                                                    <property
>> >     name="size" />
>> >     -                                                    <property
>> >     name="style" />
>> >     -                                                    <property
>> >     name="subclass" />
>> >     +                                                    <property
>> >     name="size"></property>
>> >     +                                                    <property
>> >     name="style"></property>
>> >     +                                                    <property
>> >     name="subclass"></property>
>> >                                                          <property
>> >     name="toolbar_pane">0</property>
>> >                                                          <property
>> >     name="tooltip">Group components together based on common
>> >     properties</property>
>> >     -                                                    <property
>> >     name="validator_data_type" />
>> >     +                                                    <property
>> >     name="validator_data_type"></property>
>> >                                                          <property
>> >     name="validator_style">wxFILTER_NONE</property>
>> >                                                          <property
>> >     name="validator_type">wxDefaultValidator</property>
>> >     -                                                    <property
>> >     name="validator_variable" />
>> >     -                                                    <property
>> >     name="window_extra_style" />
>> >     -                                                    <property
>> >     name="window_name" />
>> >     -                                                    <property
>> >     name="window_style" />
>> >     -                                                    <event
>> >     name="OnChar" />
>> >     +                                                    <property
>> >     name="validator_variable"></property>
>> >     +                                                    <property
>> >     name="window_extra_style"></property>
>> >     +                                                    <property
>> >     name="window_name"></property>
>> >     +                                                    <property
>> >     name="window_style"></property>
>> >                                                          <event
>> >     name="OnCheckBox">OnGroupComponentsToggled</event>
>> >     -                                                    <event
>> >     name="OnEnterWindow" />
>> >     -                                                    <event
>> >     name="OnEraseBackground" />
>> >     -                                                    <event
>> >     name="OnKeyDown" />
>> >     -                                                    <event
>> >     name="OnKeyUp" />
>> >     -                                                    <event
>> >     name="OnKillFocus" />
>> >     -                                                    <event
>> >     name="OnLeaveWindow" />
>> >     -                                                    <event
>> >     name="OnLeftDClick" />
>> >     -                                                    <event
>> >     name="OnLeftDown" />
>> >     -                                                    <event
>> >     name="OnLeftUp" />
>> >     -                                                    <event
>> >     name="OnMiddleDClick" />
>> >     -                                                    <event
>> >     name="OnMiddleDown" />
>> >     -                                                    <event
>> >     name="OnMiddleUp" />
>> >     -                                                    <event
>> >     name="OnMotion" />
>> >     -                                                    <event
>> >     name="OnMouseEvents" />
>> >     -                                                    <event
>> >     name="OnMouseWheel" />
>> >     -                                                    <event
>> >     name="OnPaint" />
>> >     -                                                    <event
>> >     name="OnRightDClick" />
>> >     -                                                    <event
>> >     name="OnRightDown" />
>> >     -                                                    <event
>> >     name="OnRightUp" />
>> >     -                                                    <event
>> >     name="OnSetFocus" />
>> >     -                                                    <event
>> >     name="OnSize" />
>> >     -                                                    <event
>> >     name="OnUpdateUI" />
>> >                                                      </object>
>> >                                                  </object>
>> >                                                  <object
>> >     class="sizeritem" expanded="0">
>> >     @@ -377,88 +271,68 @@
>> >                                                          <property
>> >     name="LeftDockable">1</property>
>> >                                                          <property
>> >     name="RightDockable">1</property>
>> >                                                          <property
>> >     name="TopDockable">1</property>
>> >     -                                                    <property
>> >     name="aui_layer" />
>> >     -                                                    <property
>> >     name="aui_name" />
>> >     -                                                    <property
>> >     name="aui_position" />
>> >     -                                                    <property
>> >     name="aui_row" />
>> >     -                                                    <property
>> >     name="best_size" />
>> >     -                                                    <property
>> >     name="bg" />
>> >     -                                                    <property
>> >     name="bitmap" />
>> >     -                                                    <property
>> >     name="caption" />
>> >     +                                                    <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="bitmap"></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
>> >     name="context_help"></property>
>> >                                                          <property
>> >     name="context_menu">1</property>
>> >     +                                                    <property
>> >     name="current"></property>
>> >                                                          <property
>> >     name="default">0</property>
>> >                                                          <property
>> >     name="default_pane">0</property>
>> >     -                                                    <property
>> >     name="disabled" />
>> >     +                                                    <property
>> >     name="disabled"></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
>> >     name="fg"></property>
>> >                                                          <property
>> >     name="floatable">1</property>
>> >     -                                                    <property
>> >     name="focus" />
>> >     -                                                    <property
>> >     name="font" />
>> >     +                                                    <property
>> >     name="focus"></property>
>> >     +                                                    <property
>> >     name="font"></property>
>> >                                                          <property
>> >     name="gripper">0</property>
>> >                                                          <property
>> >     name="hidden">0</property>
>> >     -
>> >
>> >
>> > _______________________________________________
>> > Mailing list: https://launchpad.net/~kicad-developers
>> > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> > Unsubscribe : https://launchpad.net/~kicad-developers
>> > More help   : https://help.launchpad.net/ListHelp
>> >
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>

Follow ups

References