← Back to team overview

kicad-developers team mailing list archive

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

 

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
> 


Follow ups

References