Give panels the correct parent (the treebook, not the dialog).

(cherry picked from commit 7338533)

(cherry picked from commit 3ce75be)
This commit is contained in:
Jeff Young 2018-07-16 00:15:48 +01:00
parent e329a411bf
commit 909f850d16
24 changed files with 69 additions and 78 deletions

View File

@ -29,10 +29,10 @@
#include "panel_common_settings.h"
PANEL_COMMON_SETTINGS::PANEL_COMMON_SETTINGS( DIALOG_SHIM* aParent ) :
PANEL_COMMON_SETTINGS::PANEL_COMMON_SETTINGS( DIALOG_SHIM* aDialog, wxWindow* aParent ) :
PANEL_COMMON_SETTINGS_BASE( aParent ),
m_parent( aParent ),
m_last_scale( -1 )
m_dialog( aDialog ),
m_last_scale( -1 )
{
m_scaleSlider->SetStep( 25 );
@ -41,11 +41,6 @@ PANEL_COMMON_SETTINGS::PANEL_COMMON_SETTINGS( DIALOG_SHIM* aParent ) :
}
PANEL_COMMON_SETTINGS::~PANEL_COMMON_SETTINGS()
{
}
bool PANEL_COMMON_SETTINGS::TransferDataToWindow()
{
wxConfigBase* commonSettings = Pgm().CommonSettings();
@ -113,7 +108,7 @@ bool PANEL_COMMON_SETTINGS::TransferDataFromWindow()
Pgm().ForceSystemPdfBrowser( m_defaultPDFViewer->GetValue() );
Pgm().WritePdfBrowserInfos();
m_parent->Kiway().CommonSettingsChanged();
m_dialog->Kiway().CommonSettingsChanged();
return true;
}
@ -166,9 +161,8 @@ void PANEL_COMMON_SETTINGS::OnPDFViewerClick( wxCommandEvent& event )
Pgm().ReadPdfBrowserInfos();
wxFileName fn = Pgm().GetPdfBrowserName();
wxFileDialog dlg( this, _( "Select Preferred PDF Browser" ), fn.GetPath(),
fn.GetFullPath(), wildcard,
wxFD_OPEN | wxFD_FILE_MUST_EXIST );
wxFileDialog dlg( this, _( "Select Preferred PDF Browser" ), fn.GetPath(), fn.GetFullPath(),
wildcard, wxFD_OPEN | wxFD_FILE_MUST_EXIST );
if( dlg.ShowModal() == wxID_CANCEL )
return;

View File

@ -33,8 +33,7 @@ class DIALOG_SHIM;
class PANEL_COMMON_SETTINGS : public PANEL_COMMON_SETTINGS_BASE
{
public:
PANEL_COMMON_SETTINGS( DIALOG_SHIM* aParent );
~PANEL_COMMON_SETTINGS() override;
PANEL_COMMON_SETTINGS( DIALOG_SHIM* aDialog, wxWindow* aParent );
protected:
bool TransferDataFromWindow() override;
@ -45,7 +44,7 @@ protected:
void OnTextEditorClick( wxCommandEvent& event ) override;
void OnPDFViewerClick( wxCommandEvent& event ) override;
DIALOG_SHIM* m_parent;
DIALOG_SHIM* m_dialog;
int m_last_scale; ///< saved icon scale when Auto selected
};

View File

@ -540,11 +540,10 @@ bool EDA_BASE_FRAME::ShowPreferences( EDA_HOTKEY_CONFIG* aHotkeys, EDA_HOTKEY_CO
const wxString& aHotkeysNickname )
{
PAGED_DIALOG dlg( this, _( "Preferences" ) );
wxTreebook* book = dlg.GetTreebook();
dlg.AddPage( new PANEL_COMMON_SETTINGS( &dlg ),
_( "Common" ) );
dlg.AddPage( new PANEL_HOTKEYS_EDITOR( this, &dlg, aHotkeys, aShowHotkeys, aHotkeysNickname ),
_( "Hotkeys" ) );
book->AddPage( new PANEL_COMMON_SETTINGS( &dlg, book ), _( "Common" ) );
book->AddPage( new PANEL_HOTKEYS_EDITOR( this, book, aHotkeys, aShowHotkeys, aHotkeysNickname ), _( "Hotkeys" ) );
for( unsigned i = 0; i < KIWAY_PLAYER_COUNT; ++i )
{

View File

@ -129,18 +129,6 @@ PAGED_DIALOG::~PAGED_DIALOG()
}
void PAGED_DIALOG::AddPage( wxPanel* aPage, const wxString& aTitle )
{
m_treebook->AddPage( aPage, aTitle );
}
void PAGED_DIALOG::AddSubPage( wxPanel* aPage, const wxString& aTitle )
{
m_treebook->AddSubPage( aPage, aTitle );
}
bool PAGED_DIALOG::TransferDataToWindow()
{
finishInitialization();

View File

@ -199,10 +199,12 @@ void SCH_EDIT_FRAME::OnPreferencesOptions( wxCommandEvent& event )
void SCH_EDIT_FRAME::InstallPreferences( PAGED_DIALOG* aParent )
{
aParent->AddPage( new PANEL_EESCHEMA_SETTINGS( this, aParent ), _( "Eeschema" ) );
aParent->AddSubPage( new PANEL_EESCHEMA_DISPLAY_OPTIONS( this, aParent ), _( "Display Options" ) );
aParent->AddSubPage( new PANEL_EESCHEMA_COLOR_CONFIG( this, aParent ), _( "Colors" ) );
aParent->AddSubPage( new PANEL_EESCHEMA_TEMPLATE_FIELDNAMES( this, aParent ), _( "Field Name Templates" ) );
wxTreebook* book = aParent->GetTreebook();
book->AddPage( new PANEL_EESCHEMA_SETTINGS( this, book ), _( "Eeschema" ) );
book->AddSubPage( new PANEL_EESCHEMA_DISPLAY_OPTIONS( this, book ), _( "Display Options" ) );
book->AddSubPage( new PANEL_EESCHEMA_COLOR_CONFIG( this, book ), _( "Colors" ) );
book->AddSubPage( new PANEL_EESCHEMA_TEMPLATE_FIELDNAMES( this, book ), _( "Field Name Templates" ) );
}
@ -610,7 +612,9 @@ void LIB_EDIT_FRAME::OnPreferencesOptions( wxCommandEvent& event )
void LIB_EDIT_FRAME::InstallPreferences( PAGED_DIALOG* aParent )
{
aParent->AddPage( new PANEL_LIBEDIT_SETTINGS( this, aParent ), _( "Symbol Editor" ) );
wxTreebook* book = aParent->GetTreebook();
book->AddPage( new PANEL_LIBEDIT_SETTINGS( this, book ), _( "Symbol Editor" ) );
}

View File

@ -63,8 +63,10 @@ void GERBVIEW_FRAME::Process_Config( wxCommandEvent& event )
void GERBVIEW_FRAME::InstallPreferences( PAGED_DIALOG* aParent )
{
aParent->AddPage( new PANEL_GERBVIEW_SETTINGS( this, aParent ), _( "Gerbview" ) );
aParent->AddSubPage( new PANEL_GERBVIEW_DISPLAY_OPTIONS( this, aParent ), _( "Display Options" ) );
wxTreebook* book = aParent->GetTreebook();
book->AddPage( new PANEL_GERBVIEW_SETTINGS( this, book ), _( "Gerbview" ) );
book->AddSubPage( new PANEL_GERBVIEW_DISPLAY_OPTIONS( this, book ), _( "Display Options" ) );
}

View File

@ -22,8 +22,7 @@
#define PAGED_DIALOG_H
#include <dialog_shim.h>
class wxTreebook;
#include <wx/treebook.h>
class PAGED_DIALOG : public DIALOG_SHIM
@ -41,8 +40,7 @@ public:
const wxString& aAuxiliaryAction = wxEmptyString );
~PAGED_DIALOG() override;
void AddPage( wxPanel* aPage, const wxString& aTitle );
void AddSubPage( wxPanel* aPage, const wxString& aTitle );
wxTreebook* GetTreebook() { return m_treebook; }
void SetError( const wxString& aMessage, wxWindow* aPage, wxObject* aCtrl,
int aRow = -1, int aCol = -1 );

View File

@ -41,12 +41,12 @@ DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP( PCB_EDIT_FRAME* aFrame ) :
m_netclasses = new PANEL_SETUP_NETCLASSES( this, aFrame, m_constraints );
m_maskAndPaste = new PANEL_SETUP_MASK_AND_PASTE( this, aFrame );
AddPage( m_layers, _( "Layers" ) );
AddSubPage( m_textAndGraphics, _( "Text & Graphics" ) );
m_treebook->AddPage( m_layers, _( "Layers" ) );
m_treebook->AddSubPage( m_textAndGraphics, _( "Text & Graphics" ) );
AddPage( m_constraints, _( "Design Rules" ) );
AddSubPage( m_netclasses, _( "Net Classes" ) );
AddSubPage( m_maskAndPaste, _( "Solder Mask/Paste" ) );
m_treebook->AddPage( m_constraints, _( "Design Rules" ) );
m_treebook->AddSubPage( m_netclasses, _( "Net Classes" ) );
m_treebook->AddSubPage( m_maskAndPaste, _( "Solder Mask/Paste" ) );
}

View File

@ -53,7 +53,7 @@ enum
PANEL_MODEDIT_DEFAULTS::PANEL_MODEDIT_DEFAULTS( FOOTPRINT_EDIT_FRAME* aFrame, PAGED_DIALOG* aParent) :
PANEL_MODEDIT_DEFAULTS_BASE( aParent ),
PANEL_MODEDIT_DEFAULTS_BASE( aParent->GetTreebook() ),
m_brdSettings( aFrame->GetDesignSettings() ),
m_frame( aFrame ),
m_Parent( aParent )

View File

@ -17,17 +17,18 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <panel_modedit_display_options.h>
#include <class_drawpanel.h>
#include <footprint_edit_frame.h>
#include <view/view.h>
#include <widgets/gal_options_panel.h>
#include <widgets/paged_dialog.h>
#include <panel_modedit_display_options.h>
PANEL_MODEDIT_DISPLAY_OPTIONS::PANEL_MODEDIT_DISPLAY_OPTIONS( FOOTPRINT_EDIT_FRAME* aFrame,
wxWindow* aWindow ) :
wxPanel( aWindow, wxID_ANY ),
PAGED_DIALOG* aParent ) :
wxPanel( aParent->GetTreebook(), wxID_ANY ),
m_frame( aFrame )
{
auto mainSizer = new wxBoxSizer( wxHORIZONTAL );

View File

@ -25,11 +25,12 @@
class GAL_OPTIONS_PANEL;
class FOOTPRINT_EDIT_FRAME;
class PAGED_DIALOG;
class PANEL_MODEDIT_DISPLAY_OPTIONS : public wxPanel
{
public:
PANEL_MODEDIT_DISPLAY_OPTIONS( FOOTPRINT_EDIT_FRAME* aParent, wxWindow* aWindow );
PANEL_MODEDIT_DISPLAY_OPTIONS( FOOTPRINT_EDIT_FRAME* aParent, PAGED_DIALOG* aWindow );
private:
bool TransferDataToWindow() override;

View File

@ -25,15 +25,15 @@
#include <pcbnew.h>
#include <pcb_edit_frame.h>
#include <board_design_settings.h>
#include <base_units.h>
#include <widgets/paged_dialog.h>
#include <footprint_edit_frame.h>
#include <panel_modedit_settings.h>
PANEL_MODEDIT_SETTINGS::PANEL_MODEDIT_SETTINGS( FOOTPRINT_EDIT_FRAME* aFrame,
wxWindow* aWindow) :
PANEL_MODEDIT_SETTINGS_BASE( aWindow ),
PAGED_DIALOG* aParent) :
PANEL_MODEDIT_SETTINGS_BASE( aParent->GetTreebook() ),
m_frame( aFrame )
{}

View File

@ -23,6 +23,7 @@
#include <panel_modedit_settings_base.h>
class FOOTPRINT_EDIT_FRAME;
class PAGED_DIALOG;
class PANEL_MODEDIT_SETTINGS : public PANEL_MODEDIT_SETTINGS_BASE
@ -30,7 +31,7 @@ class PANEL_MODEDIT_SETTINGS : public PANEL_MODEDIT_SETTINGS_BASE
FOOTPRINT_EDIT_FRAME* m_frame;
public:
PANEL_MODEDIT_SETTINGS( FOOTPRINT_EDIT_FRAME* aFrame, wxWindow* aWindow );
PANEL_MODEDIT_SETTINGS( FOOTPRINT_EDIT_FRAME* aFrame, PAGED_DIALOG* aWindow );
private:
bool TransferDataToWindow() override;

View File

@ -29,6 +29,7 @@
#include <class_draw_panel_gal.h>
#include <pcb_view.h>
#include <pcb_painter.h>
#include <widgets/paged_dialog.h>
#include <widgets/gal_options_panel.h>
@ -44,8 +45,8 @@ static const UTIL::CFG_MAP<PCB_DISPLAY_OPTIONS::TRACE_CLEARANCE_DISPLAY_MODE_T>
PANEL_PCBNEW_DISPLAY_OPTIONS::PANEL_PCBNEW_DISPLAY_OPTIONS( PCB_EDIT_FRAME* aFrame,
wxWindow* aWindow ) :
PANEL_PCBNEW_DISPLAY_OPTIONS_BASE( aWindow ),
PAGED_DIALOG* aParent ) :
PANEL_PCBNEW_DISPLAY_OPTIONS_BASE( aParent->GetTreebook() ),
m_frame( aFrame )
{
KIGFX::GAL_DISPLAY_OPTIONS& galOptions = m_frame->GetGalDisplayOptions();

View File

@ -25,8 +25,7 @@ class GAL_OPTIONS_PANEL;
class PANEL_PCBNEW_DISPLAY_OPTIONS : public PANEL_PCBNEW_DISPLAY_OPTIONS_BASE
{
public:
PANEL_PCBNEW_DISPLAY_OPTIONS( PCB_EDIT_FRAME* aFrame, wxWindow* aWindow );
~PANEL_PCBNEW_DISPLAY_OPTIONS() {};
PANEL_PCBNEW_DISPLAY_OPTIONS( PCB_EDIT_FRAME* aFrame, PAGED_DIALOG* aWindow );
bool TransferDataFromWindow() override;
bool TransferDataToWindow() override;

View File

@ -29,19 +29,18 @@
#include <pcbnew_id.h>
#include <class_board.h>
#include <panel_pcbnew_settings.h>
#include <widgets/stepped_slider.h>
#include <widgets/paged_dialog.h>
#include <pcb_view.h>
#include <pcb_painter.h>
PANEL_PCBNEW_SETTINGS::PANEL_PCBNEW_SETTINGS( PCB_EDIT_FRAME* aFrame, wxWindow* aWindow ) :
PANEL_PCBNEW_SETTINGS_BASE( aWindow ),
PANEL_PCBNEW_SETTINGS::PANEL_PCBNEW_SETTINGS( PCB_EDIT_FRAME* aFrame, PAGED_DIALOG* aParent ) :
PANEL_PCBNEW_SETTINGS_BASE( aParent->GetTreebook() ),
m_Frame( aFrame )
{}
bool PANEL_PCBNEW_SETTINGS::TransferDataToWindow()
{
m_Board = m_Frame->GetBoard();
auto displ_opts = (PCB_DISPLAY_OPTIONS*)m_Frame->GetDisplayOptions();
/* Set display options */

View File

@ -27,15 +27,16 @@
#include "panel_pcbnew_settings_base.h"
class PAGED_DIALOG;
class PANEL_PCBNEW_SETTINGS : public PANEL_PCBNEW_SETTINGS_BASE
{
private:
PCB_EDIT_FRAME* m_Frame;
BOARD* m_Board;
public:
PANEL_PCBNEW_SETTINGS( PCB_EDIT_FRAME* aFrame, wxWindow* aWindow );
~PANEL_PCBNEW_SETTINGS() {};
PANEL_PCBNEW_SETTINGS( PCB_EDIT_FRAME* aFrame, PAGED_DIALOG* aWindow );
protected:
bool TransferDataToWindow() override;

View File

@ -31,7 +31,7 @@
PANEL_SETUP_FEATURE_CONSTRAINTS::PANEL_SETUP_FEATURE_CONSTRAINTS( PAGED_DIALOG* aParent,
PCB_EDIT_FRAME* aFrame ) :
PANEL_SETUP_FEATURE_CONSTRAINTS_BASE( aParent ),
PANEL_SETUP_FEATURE_CONSTRAINTS_BASE( aParent->GetTreebook() ),
m_trackMinWidth( aFrame, m_TrackMinWidthTitle, m_TrackMinWidthCtrl, m_TrackMinWidthUnits, true, 0 ),
m_viaMinSize( aFrame, m_ViaMinTitle, m_SetViasMinSizeCtrl, m_ViaMinUnits, true, 0 ),
m_viaMinDrill( aFrame, m_ViaMinDrillTitle, m_SetViasMinDrillCtrl, m_ViaMinDrillUnits, true, 0 ),

View File

@ -135,7 +135,7 @@ static const LSET presets[] =
PANEL_SETUP_LAYERS::PANEL_SETUP_LAYERS( PAGED_DIALOG* aParent, PCB_EDIT_FRAME* aFrame ) :
PANEL_SETUP_LAYERS_BASE( aParent ),
PANEL_SETUP_LAYERS_BASE( aParent->GetTreebook() ),
m_Parent( aParent ),
m_pcbThickness( aFrame, m_thicknessLabel, m_thicknessCtrl, m_thicknessUnits, true,
Millimeter2iu( 0.1 ), Millimeter2iu( 10.0 ) )

View File

@ -34,7 +34,7 @@
PANEL_SETUP_MASK_AND_PASTE::PANEL_SETUP_MASK_AND_PASTE( PAGED_DIALOG* aParent,
PCB_EDIT_FRAME* aFrame ) :
PANEL_SETUP_MASK_AND_PASTE_BASE( aParent ),
PANEL_SETUP_MASK_AND_PASTE_BASE( aParent->GetTreebook() ),
m_maskMargin( aFrame, m_MaskMarginLabel, m_MaskMarginCtrl, m_MaskMarginUnits, true ),
m_maskMinWidth( aFrame, m_MaskMinWidthLabel, m_MaskMinWidthCtrl, m_MaskMinWidthUnits, true ),
m_pasteMargin( aFrame, m_PasteMarginLabel, m_PasteMarginCtrl, m_PasteMarginUnits, true )

View File

@ -53,7 +53,7 @@ enum {
PANEL_SETUP_NETCLASSES::PANEL_SETUP_NETCLASSES( PAGED_DIALOG* aParent, PCB_EDIT_FRAME* aFrame,
PANEL_SETUP_FEATURE_CONSTRAINTS* aConstraintsPanel ) :
PANEL_SETUP_NETCLASSES_BASE( aParent )
PANEL_SETUP_NETCLASSES_BASE( aParent->GetTreebook() )
{
m_Parent = aParent;
m_Frame = aFrame;

View File

@ -56,7 +56,7 @@ enum
PANEL_SETUP_TEXT_AND_GRAPHICS::PANEL_SETUP_TEXT_AND_GRAPHICS( PAGED_DIALOG* aParent,
PCB_EDIT_FRAME* aFrame ) :
PANEL_SETUP_TEXT_AND_GRAPHICS_BASE( aParent )
PANEL_SETUP_TEXT_AND_GRAPHICS_BASE( aParent->GetTreebook() )
{
m_Parent = aParent;
m_Frame = aFrame;

View File

@ -883,9 +883,11 @@ void FOOTPRINT_EDIT_FRAME::ProcessPreferences( wxCommandEvent& event )
void FOOTPRINT_EDIT_FRAME::InstallPreferences( PAGED_DIALOG* aParent )
{
aParent->AddPage( new PANEL_MODEDIT_SETTINGS( this, aParent ), _( "Footprint Editor" ) );
aParent->AddSubPage( new PANEL_MODEDIT_DISPLAY_OPTIONS( this, aParent ), _( "Display Options" ) );
aParent->AddSubPage( new PANEL_MODEDIT_DEFAULTS( this, aParent ), _( "Default Values" ) );
wxTreebook* book = aParent->GetTreebook();
book->AddPage( new PANEL_MODEDIT_SETTINGS( this, aParent ), _( "Footprint Editor" ) );
book->AddSubPage( new PANEL_MODEDIT_DISPLAY_OPTIONS( this, aParent ), _( "Display Options" ) );
book->AddSubPage( new PANEL_MODEDIT_DEFAULTS( this, aParent ), _( "Default Values" ) );
}

View File

@ -148,8 +148,10 @@ void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event )
void PCB_EDIT_FRAME::InstallPreferences( PAGED_DIALOG* aParent )
{
aParent->AddPage( new PANEL_PCBNEW_SETTINGS( this, aParent ), _( "Pcbnew" ) );
aParent->AddSubPage( new PANEL_PCBNEW_DISPLAY_OPTIONS( this, aParent ), _( "Display Options" ) );
wxTreebook* book = aParent->GetTreebook();
book->AddPage( new PANEL_PCBNEW_SETTINGS( this, aParent ), _( "Pcbnew" ) );
book->AddSubPage( new PANEL_PCBNEW_DISPLAY_OPTIONS( this, aParent ), _( "Display Options" ) );
}