← Back to team overview

kicad-developers team mailing list archive

[PATCH] Modify style of the action plugin panel to follow common style, fix Assert

 

Hi,

I modified panel_pcbnew_action_plugins_base to follow the default style
of the table with button up/down. Furthermore, I found out the code
raises an assert when no plugins are present, and fixed this issue as well.

Patch is available on GitHub as well:
https://github.com/pointhi/kicad-source-mirror/commits/action_plugin_panel

Regards, Thomas
From 6a94d1baa506272565fe1959cb1950ba62be66fe Mon Sep 17 00:00:00 2001
From: Thomas Pointhuber <thomas.pointhuber@xxxxxx>
Date: Mon, 27 Aug 2018 13:37:11 +0200
Subject: [PATCH] Modify style of the action plugin panel to follow common
 style

and fix of an assert:
* m_grid->DeleteRows does not like to get a numRows of zero
---
 .../dialogs/panel_pcbnew_action_plugins.cpp   |  7 ++--
 .../panel_pcbnew_action_plugins_base.cpp      | 23 ++++++-----
 .../panel_pcbnew_action_plugins_base.fbp      | 38 ++++++++++++-------
 .../panel_pcbnew_action_plugins_base.h        |  2 +-
 4 files changed, 42 insertions(+), 28 deletions(-)

diff --git a/pcbnew/dialogs/panel_pcbnew_action_plugins.cpp b/pcbnew/dialogs/panel_pcbnew_action_plugins.cpp
index 3887fe9b2..d9e1d93aa 100644
--- a/pcbnew/dialogs/panel_pcbnew_action_plugins.cpp
+++ b/pcbnew/dialogs/panel_pcbnew_action_plugins.cpp
@@ -35,8 +35,8 @@ PANEL_PCBNEW_ACTION_PLUGINS::PANEL_PCBNEW_ACTION_PLUGINS( PCB_EDIT_FRAME* aFrame
     m_genericIcon = KiBitmap( hammer_xpm );
     m_grid->PushEventHandler( new GRID_TRICKS( m_grid ) );
 
-    m_moveUpButton->SetBitmap( KiBitmap( up_xpm ) );
-    m_moveDownButton->SetBitmap( KiBitmap( down_xpm ) );
+    m_moveUpButton->SetBitmap( KiBitmap( small_up_xpm ) );
+    m_moveDownButton->SetBitmap( KiBitmap( small_down_xpm ) );
     m_reloadButton->SetBitmap( KiBitmap( refresh_xpm ) );
 }
 
@@ -155,7 +155,8 @@ bool PANEL_PCBNEW_ACTION_PLUGINS::TransferDataFromWindow()
 bool PANEL_PCBNEW_ACTION_PLUGINS::TransferDataToWindow()
 {
     m_grid->Freeze();
-    m_grid->DeleteRows( 0, m_grid->GetNumberRows() );
+    if( m_grid->GetNumberRows() != 0 )
+        m_grid->DeleteRows( 0, m_grid->GetNumberRows() );
 
     const auto& orderedPlugins = m_frame->GetOrderedActionPlugins();
     m_grid->AppendRows( orderedPlugins.size() );
diff --git a/pcbnew/dialogs/panel_pcbnew_action_plugins_base.cpp b/pcbnew/dialogs/panel_pcbnew_action_plugins_base.cpp
index d8f890904..98fae006b 100644
--- a/pcbnew/dialogs/panel_pcbnew_action_plugins_base.cpp
+++ b/pcbnew/dialogs/panel_pcbnew_action_plugins_base.cpp
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Jul 11 2018)
+// C++ code generated with wxFormBuilder (version Jul 14 2018)
 // http://www.wxformbuilder.org/
 //
 // PLEASE DO *NOT* EDIT THIS FILE!
@@ -14,7 +14,7 @@
 PANEL_PCBNEW_ACTION_PLUGINS_BASE::PANEL_PCBNEW_ACTION_PLUGINS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
 {
 	wxBoxSizer* bPanelSizer;
-	bPanelSizer = new wxBoxSizer( wxHORIZONTAL );
+	bPanelSizer = new wxBoxSizer( wxVERTICAL );
 	
 	wxBoxSizer* bGridSizer;
 	bGridSizer = new wxBoxSizer( wxVERTICAL );
@@ -56,25 +56,28 @@ PANEL_PCBNEW_ACTION_PLUGINS_BASE::PANEL_PCBNEW_ACTION_PLUGINS_BASE( wxWindow* pa
 	bPanelSizer->Add( bGridSizer, 1, wxALIGN_LEFT|wxEXPAND|wxLEFT, 0 );
 	
 	wxBoxSizer* bButtonsSizer;
-	bButtonsSizer = new wxBoxSizer( wxVERTICAL );
+	bButtonsSizer = new wxBoxSizer( wxHORIZONTAL );
 	
 	m_moveUpButton = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
-	m_moveUpButton->SetMinSize( wxSize( 32,32 ) );
+	m_moveUpButton->SetMinSize( wxSize( 30,30 ) );
 	
-	bButtonsSizer->Add( m_moveUpButton, 0, wxALIGN_TOP|wxALL, 5 );
+	bButtonsSizer->Add( m_moveUpButton, 0, wxLEFT|wxRIGHT, 5 );
 	
 	m_moveDownButton = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
-	m_moveDownButton->SetMinSize( wxSize( 32,32 ) );
+	m_moveDownButton->SetMinSize( wxSize( 30,30 ) );
 	
-	bButtonsSizer->Add( m_moveDownButton, 0, wxALL, 5 );
+	bButtonsSizer->Add( m_moveDownButton, 0, wxRIGHT, 5 );
+	
+	
+	bButtonsSizer->Add( 0, 0, 0, wxEXPAND|wxLEFT|wxRIGHT, 5 );
 	
 	m_reloadButton = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
-	m_reloadButton->SetMinSize( wxSize( 32,32 ) );
+	m_reloadButton->SetMinSize( wxSize( 30,30 ) );
 	
-	bButtonsSizer->Add( m_reloadButton, 0, wxALL, 5 );
+	bButtonsSizer->Add( m_reloadButton, 0, wxLEFT|wxRIGHT, 5 );
 	
 	
-	bPanelSizer->Add( bButtonsSizer, 0, wxALIGN_RIGHT|wxALIGN_TOP, 0 );
+	bPanelSizer->Add( bButtonsSizer, 0, wxEXPAND, 0 );
 	
 	
 	this->SetSizer( bPanelSizer );
diff --git a/pcbnew/dialogs/panel_pcbnew_action_plugins_base.fbp b/pcbnew/dialogs/panel_pcbnew_action_plugins_base.fbp
index 6c91f1fd1..2f67cd812 100644
--- a/pcbnew/dialogs/panel_pcbnew_action_plugins_base.fbp
+++ b/pcbnew/dialogs/panel_pcbnew_action_plugins_base.fbp
@@ -89,7 +89,7 @@
             <object class="wxBoxSizer" expanded="1">
                 <property name="minimum_size"></property>
                 <property name="name">bPanelSizer</property>
-                <property name="orient">wxHORIZONTAL</property>
+                <property name="orient">wxVERTICAL</property>
                 <property name="permission">none</property>
                 <object class="sizeritem" expanded="1">
                     <property name="border">0</property>
@@ -100,11 +100,11 @@
                         <property name="name">bGridSizer</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="wxGrid" expanded="1">
+                            <object class="wxGrid" expanded="0">
                                 <property name="BottomDockable">1</property>
                                 <property name="LeftDockable">1</property>
                                 <property name="RightDockable">1</property>
@@ -254,16 +254,16 @@
                 </object>
                 <object class="sizeritem" expanded="1">
                     <property name="border">0</property>
-                    <property name="flag">wxALIGN_RIGHT|wxALIGN_TOP</property>
+                    <property name="flag">wxEXPAND</property>
                     <property name="proportion">0</property>
                     <object class="wxBoxSizer" expanded="1">
                         <property name="minimum_size"></property>
                         <property name="name">bButtonsSizer</property>
-                        <property name="orient">wxVERTICAL</property>
+                        <property name="orient">wxHORIZONTAL</property>
                         <property name="permission">none</property>
                         <object class="sizeritem" expanded="0">
                             <property name="border">5</property>
-                            <property name="flag">wxALIGN_TOP|wxALL</property>
+                            <property name="flag">wxLEFT|wxRIGHT</property>
                             <property name="proportion">0</property>
                             <object class="wxBitmapButton" expanded="0">
                                 <property name="BottomDockable">1</property>
@@ -306,7 +306,7 @@
                                 <property name="maximum_size"></property>
                                 <property name="min_size"></property>
                                 <property name="minimize_button">0</property>
-                                <property name="minimum_size">32,32</property>
+                                <property name="minimum_size">30,30</property>
                                 <property name="moveable">1</property>
                                 <property name="name">m_moveUpButton</property>
                                 <property name="pane_border">1</property>
@@ -364,11 +364,11 @@
                                 <event name="OnUpdateUI"></event>
                             </object>
                         </object>
-                        <object class="sizeritem" expanded="1">
+                        <object class="sizeritem" expanded="0">
                             <property name="border">5</property>
-                            <property name="flag">wxALL</property>
+                            <property name="flag">wxRIGHT</property>
                             <property name="proportion">0</property>
-                            <object class="wxBitmapButton" expanded="1">
+                            <object class="wxBitmapButton" expanded="0">
                                 <property name="BottomDockable">1</property>
                                 <property name="LeftDockable">1</property>
                                 <property name="RightDockable">1</property>
@@ -409,7 +409,7 @@
                                 <property name="maximum_size"></property>
                                 <property name="min_size"></property>
                                 <property name="minimize_button">0</property>
-                                <property name="minimum_size">32,32</property>
+                                <property name="minimum_size">30,30</property>
                                 <property name="moveable">1</property>
                                 <property name="name">m_moveDownButton</property>
                                 <property name="pane_border">1</property>
@@ -469,9 +469,19 @@
                         </object>
                         <object class="sizeritem" expanded="1">
                             <property name="border">5</property>
-                            <property name="flag">wxALL</property>
+                            <property name="flag">wxEXPAND|wxLEFT|wxRIGHT</property>
                             <property name="proportion">0</property>
-                            <object class="wxBitmapButton" expanded="1">
+                            <object class="spacer" expanded="1">
+                                <property name="height">0</property>
+                                <property name="permission">protected</property>
+                                <property name="width">0</property>
+                            </object>
+                        </object>
+                        <object class="sizeritem" expanded="0">
+                            <property name="border">5</property>
+                            <property name="flag">wxLEFT|wxRIGHT</property>
+                            <property name="proportion">0</property>
+                            <object class="wxBitmapButton" expanded="0">
                                 <property name="BottomDockable">1</property>
                                 <property name="LeftDockable">1</property>
                                 <property name="RightDockable">1</property>
@@ -512,7 +522,7 @@
                                 <property name="maximum_size"></property>
                                 <property name="min_size"></property>
                                 <property name="minimize_button">0</property>
-                                <property name="minimum_size">32,32</property>
+                                <property name="minimum_size">30,30</property>
                                 <property name="moveable">1</property>
                                 <property name="name">m_reloadButton</property>
                                 <property name="pane_border">1</property>
diff --git a/pcbnew/dialogs/panel_pcbnew_action_plugins_base.h b/pcbnew/dialogs/panel_pcbnew_action_plugins_base.h
index 8766d0c95..f6ab93096 100644
--- a/pcbnew/dialogs/panel_pcbnew_action_plugins_base.h
+++ b/pcbnew/dialogs/panel_pcbnew_action_plugins_base.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Jul 11 2018)
+// C++ code generated with wxFormBuilder (version Jul 14 2018)
 // http://www.wxformbuilder.org/
 //
 // PLEASE DO *NOT* EDIT THIS FILE!
-- 
2.18.0

Attachment: signature.asc
Description: OpenPGP digital signature


Follow ups