Write changes back to grid after using file explorer.
Fixes https://gitlab.com/kicad/code/kicad/issues/7361
This commit is contained in:
parent
d66de5bb35
commit
b6a7981e62
|
@ -449,7 +449,7 @@ void PANEL_PREV_3D::UpdateDummyFootprint( bool aReloadRequired )
|
||||||
{
|
{
|
||||||
m_dummyFootprint->Models().clear();
|
m_dummyFootprint->Models().clear();
|
||||||
|
|
||||||
for( FP_3DMODEL& model : *m_parentModelList)
|
for( FP_3DMODEL& model : *m_parentModelList )
|
||||||
{
|
{
|
||||||
if( model.m_Show )
|
if( model.m_Show )
|
||||||
m_dummyFootprint->Models().push_back( model );
|
m_dummyFootprint->Models().push_back( model );
|
||||||
|
|
|
@ -75,11 +75,11 @@ DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS( wxWindow* aParent, FILENAME_RESO
|
||||||
m_EnvVars->UseNativeColHeader( true );
|
m_EnvVars->UseNativeColHeader( true );
|
||||||
|
|
||||||
wxGridCellAttr* attr = new wxGridCellAttr;
|
wxGridCellAttr* attr = new wxGridCellAttr;
|
||||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR( this, &m_curdir, wxEmptyString ) );
|
attr->SetEditor( new GRID_CELL_PATH_EDITOR( this, m_EnvVars, &m_curdir, wxEmptyString ) );
|
||||||
m_EnvVars->SetColAttr( TV_VALUE_COL, attr );
|
m_EnvVars->SetColAttr( TV_VALUE_COL, attr );
|
||||||
|
|
||||||
attr = new wxGridCellAttr;
|
attr = new wxGridCellAttr;
|
||||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR( this, &m_curdir, wxEmptyString ) );
|
attr->SetEditor( new GRID_CELL_PATH_EDITOR( this, m_SearchPaths, &m_curdir, wxEmptyString ) );
|
||||||
m_SearchPaths->SetColAttr( TV_VALUE_COL, attr );
|
m_SearchPaths->SetColAttr( TV_VALUE_COL, attr );
|
||||||
|
|
||||||
// Give a bit more room for combobox editors
|
// Give a bit more room for combobox editors
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2018-2020 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 2021 CERN
|
||||||
|
* Copyright (C) 2018-2021 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
@ -32,7 +33,7 @@
|
||||||
#include <dialog_shim.h>
|
#include <dialog_shim.h>
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <env_paths.h>
|
#include <env_paths.h>
|
||||||
|
#include <widgets/wx_grid.h>
|
||||||
#include <widgets/grid_text_button_helpers.h>
|
#include <widgets/grid_text_button_helpers.h>
|
||||||
#include <eda_doc.h>
|
#include <eda_doc.h>
|
||||||
|
|
||||||
|
@ -318,11 +319,13 @@ void GRID_CELL_URL_EDITOR::Create( wxWindow* aParent, wxWindowID aId,
|
||||||
class TEXT_BUTTON_FILE_BROWSER : public wxComboCtrl
|
class TEXT_BUTTON_FILE_BROWSER : public wxComboCtrl
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TEXT_BUTTON_FILE_BROWSER( wxWindow* aParent, DIALOG_SHIM* aParentDlg,
|
TEXT_BUTTON_FILE_BROWSER( wxWindow* aParent, DIALOG_SHIM* aParentDlg, WX_GRID* aGrid,
|
||||||
wxString* aCurrentDir, wxString* aExt = nullptr,
|
wxString* aCurrentDir, wxString* aExt = nullptr,
|
||||||
bool aNormalize = false, wxString aNormalizeBasePath = wxEmptyString ) :
|
bool aNormalize = false,
|
||||||
|
wxString aNormalizeBasePath = wxEmptyString ) :
|
||||||
wxComboCtrl( aParent ),
|
wxComboCtrl( aParent ),
|
||||||
m_dlg( aParentDlg ),
|
m_dlg( aParentDlg ),
|
||||||
|
m_grid( aGrid ),
|
||||||
m_currentDir( aCurrentDir ),
|
m_currentDir( aCurrentDir ),
|
||||||
m_ext( aExt ),
|
m_ext( aExt ),
|
||||||
m_normalize( aNormalize ),
|
m_normalize( aNormalize ),
|
||||||
|
@ -370,6 +373,7 @@ protected:
|
||||||
relPath = filePath;
|
relPath = filePath;
|
||||||
|
|
||||||
SetValue( relPath );
|
SetValue( relPath );
|
||||||
|
m_grid->CommitPendingChanges();
|
||||||
*m_currentDir = lastPath;
|
*m_currentDir = lastPath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -393,12 +397,14 @@ protected:
|
||||||
relPath = filePath;
|
relPath = filePath;
|
||||||
|
|
||||||
SetValue( relPath );
|
SetValue( relPath );
|
||||||
|
m_grid->CommitPendingChanges();
|
||||||
*m_currentDir = relPath;
|
*m_currentDir = relPath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DIALOG_SHIM* m_dlg;
|
DIALOG_SHIM* m_dlg;
|
||||||
|
WX_GRID* m_grid;
|
||||||
wxString* m_currentDir;
|
wxString* m_currentDir;
|
||||||
wxString* m_ext;
|
wxString* m_ext;
|
||||||
bool m_normalize;
|
bool m_normalize;
|
||||||
|
@ -410,10 +416,10 @@ void GRID_CELL_PATH_EDITOR::Create( wxWindow* aParent, wxWindowID aId,
|
||||||
wxEvtHandler* aEventHandler )
|
wxEvtHandler* aEventHandler )
|
||||||
{
|
{
|
||||||
if( m_ext.IsEmpty() )
|
if( m_ext.IsEmpty() )
|
||||||
m_control = new TEXT_BUTTON_FILE_BROWSER( aParent, m_dlg, m_currentDir, nullptr,
|
m_control = new TEXT_BUTTON_FILE_BROWSER( aParent, m_dlg, m_grid, m_currentDir, nullptr,
|
||||||
m_normalize, m_normalizeBasePath );
|
m_normalize, m_normalizeBasePath );
|
||||||
else
|
else
|
||||||
m_control = new TEXT_BUTTON_FILE_BROWSER( aParent, m_dlg, m_currentDir, &m_ext,
|
m_control = new TEXT_BUTTON_FILE_BROWSER( aParent, m_dlg, m_grid, m_currentDir, &m_ext,
|
||||||
m_normalize, m_normalizeBasePath );
|
m_normalize, m_normalizeBasePath );
|
||||||
|
|
||||||
#if wxUSE_VALIDATORS
|
#if wxUSE_VALIDATORS
|
||||||
|
|
|
@ -62,7 +62,7 @@ DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES( SYMBOL_EDIT_FRAME* a
|
||||||
{
|
{
|
||||||
// Give a bit more room for combobox editors
|
// Give a bit more room for combobox editors
|
||||||
m_grid->SetDefaultRowSize( m_grid->GetDefaultRowSize() + 4 );
|
m_grid->SetDefaultRowSize( m_grid->GetDefaultRowSize() + 4 );
|
||||||
m_fields = new FIELDS_GRID_TABLE<LIB_FIELD>( this, aParent, m_libEntry );
|
m_fields = new FIELDS_GRID_TABLE<LIB_FIELD>( this, aParent, m_grid, m_libEntry );
|
||||||
m_grid->SetTable( m_fields );
|
m_grid->SetTable( m_fields );
|
||||||
m_grid->PushEventHandler( new FIELDS_GRID_TRICKS( m_grid, this ) );
|
m_grid->PushEventHandler( new FIELDS_GRID_TRICKS( m_grid, this ) );
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ DIALOG_SHEET_PROPERTIES::DIALOG_SHEET_PROPERTIES( SCH_EDIT_FRAME* aParent, SCH_S
|
||||||
m_dummySheetNameField( wxDefaultPosition, SHEETNAME, &m_dummySheet )
|
m_dummySheetNameField( wxDefaultPosition, SHEETNAME, &m_dummySheet )
|
||||||
{
|
{
|
||||||
m_sheet = aSheet;
|
m_sheet = aSheet;
|
||||||
m_fields = new FIELDS_GRID_TABLE<SCH_FIELD>( this, aParent, m_sheet );
|
m_fields = new FIELDS_GRID_TABLE<SCH_FIELD>( this, aParent, m_grid, m_sheet );
|
||||||
m_width = 100; // Will be later set to a better value
|
m_width = 100; // Will be later set to a better value
|
||||||
m_delayedFocusRow = SHEETNAME;
|
m_delayedFocusRow = SHEETNAME;
|
||||||
m_delayedFocusColumn = FDC_VALUE;
|
m_delayedFocusColumn = FDC_VALUE;
|
||||||
|
|
|
@ -286,7 +286,7 @@ DIALOG_SYMBOL_PROPERTIES::DIALOG_SYMBOL_PROPERTIES( SCH_EDIT_FRAME* aParent,
|
||||||
// so we need to handle m_part == nullptr
|
// so we need to handle m_part == nullptr
|
||||||
wxASSERT( m_part );
|
wxASSERT( m_part );
|
||||||
|
|
||||||
m_fields = new FIELDS_GRID_TABLE<SCH_FIELD>( this, aParent, m_part );
|
m_fields = new FIELDS_GRID_TABLE<SCH_FIELD>( this, aParent, m_fieldsGrid, m_part );
|
||||||
|
|
||||||
m_width = 0;
|
m_width = 0;
|
||||||
m_delayedFocusRow = REFERENCE_FIELD;
|
m_delayedFocusRow = REFERENCE_FIELD;
|
||||||
|
|
|
@ -222,9 +222,9 @@ PANEL_SYM_LIB_TABLE::PANEL_SYM_LIB_TABLE( DIALOG_EDIT_LIBRARY_TABLES* aParent, P
|
||||||
wxString wildcards = AllSymbolLibFilesWildcard()
|
wxString wildcards = AllSymbolLibFilesWildcard()
|
||||||
+ "|" + KiCadSymbolLibFileWildcard()
|
+ "|" + KiCadSymbolLibFileWildcard()
|
||||||
+ "|" + LegacySymbolLibFileWildcard();
|
+ "|" + LegacySymbolLibFileWildcard();
|
||||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR( m_parent, &cfg->m_lastSymbolLibDir,
|
attr->SetEditor( new GRID_CELL_PATH_EDITOR( m_parent, aGrid,
|
||||||
wildcards, true,
|
&cfg->m_lastSymbolLibDir, wildcards,
|
||||||
m_project->GetProjectPath() ) );
|
true, m_project->GetProjectPath() ) );
|
||||||
aGrid->SetColAttr( COL_URI, attr );
|
aGrid->SetColAttr( COL_URI, attr );
|
||||||
|
|
||||||
attr = new wxGridCellAttr;
|
attr = new wxGridCellAttr;
|
||||||
|
|
|
@ -46,9 +46,10 @@ enum
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
FIELDS_GRID_TABLE<T>::FIELDS_GRID_TABLE( DIALOG_SHIM* aDialog, SCH_BASE_FRAME* aFrame,
|
FIELDS_GRID_TABLE<T>::FIELDS_GRID_TABLE( DIALOG_SHIM* aDialog, SCH_BASE_FRAME* aFrame,
|
||||||
LIB_PART* aPart ) :
|
WX_GRID* aGrid, LIB_PART* aPart ) :
|
||||||
m_frame( aFrame ),
|
m_frame( aFrame ),
|
||||||
m_userUnits( aDialog->GetUserUnits() ),
|
m_userUnits( aDialog->GetUserUnits() ),
|
||||||
|
m_grid( aGrid ),
|
||||||
m_parentType( SCH_COMPONENT_T ),
|
m_parentType( SCH_COMPONENT_T ),
|
||||||
m_mandatoryFieldCount( MANDATORY_FIELDS ),
|
m_mandatoryFieldCount( MANDATORY_FIELDS ),
|
||||||
m_part( aPart ),
|
m_part( aPart ),
|
||||||
|
@ -60,15 +61,16 @@ FIELDS_GRID_TABLE<T>::FIELDS_GRID_TABLE( DIALOG_SHIM* aDialog, SCH_BASE_FRAME* a
|
||||||
m_nonUrlValidator( aFrame->IsType( FRAME_SCH_SYMBOL_EDITOR ), FIELD_VALUE ),
|
m_nonUrlValidator( aFrame->IsType( FRAME_SCH_SYMBOL_EDITOR ), FIELD_VALUE ),
|
||||||
m_filepathValidator( aFrame->IsType( FRAME_SCH_SYMBOL_EDITOR ), SHEETFILENAME )
|
m_filepathValidator( aFrame->IsType( FRAME_SCH_SYMBOL_EDITOR ), SHEETFILENAME )
|
||||||
{
|
{
|
||||||
initGrid( aDialog );
|
initGrid( aDialog, aGrid );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
FIELDS_GRID_TABLE<T>::FIELDS_GRID_TABLE( DIALOG_SHIM* aDialog, SCH_BASE_FRAME* aFrame,
|
FIELDS_GRID_TABLE<T>::FIELDS_GRID_TABLE( DIALOG_SHIM* aDialog, SCH_BASE_FRAME* aFrame,
|
||||||
SCH_SHEET* aSheet ) :
|
WX_GRID* aGrid, SCH_SHEET* aSheet ) :
|
||||||
m_frame( aFrame ),
|
m_frame( aFrame ),
|
||||||
m_userUnits( aDialog->GetUserUnits() ),
|
m_userUnits( aDialog->GetUserUnits() ),
|
||||||
|
m_grid( aGrid ),
|
||||||
m_parentType( SCH_SHEET_T ),
|
m_parentType( SCH_SHEET_T ),
|
||||||
m_mandatoryFieldCount( SHEET_MANDATORY_FIELDS ),
|
m_mandatoryFieldCount( SHEET_MANDATORY_FIELDS ),
|
||||||
m_part( nullptr ),
|
m_part( nullptr ),
|
||||||
|
@ -80,12 +82,12 @@ FIELDS_GRID_TABLE<T>::FIELDS_GRID_TABLE( DIALOG_SHIM* aDialog, SCH_BASE_FRAME* a
|
||||||
m_nonUrlValidator( aFrame->IsType( FRAME_SCH_SYMBOL_EDITOR ), FIELD_VALUE ),
|
m_nonUrlValidator( aFrame->IsType( FRAME_SCH_SYMBOL_EDITOR ), FIELD_VALUE ),
|
||||||
m_filepathValidator( aFrame->IsType( FRAME_SCH_SYMBOL_EDITOR ), SHEETFILENAME_V )
|
m_filepathValidator( aFrame->IsType( FRAME_SCH_SYMBOL_EDITOR ), SHEETFILENAME_V )
|
||||||
{
|
{
|
||||||
initGrid( aDialog );
|
initGrid( aDialog, aGrid );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
void FIELDS_GRID_TABLE<T>::initGrid( DIALOG_SHIM* aDialog )
|
void FIELDS_GRID_TABLE<T>::initGrid( DIALOG_SHIM* aDialog, WX_GRID* aGrid )
|
||||||
{
|
{
|
||||||
// Build the various grid cell attributes.
|
// Build the various grid cell attributes.
|
||||||
// NOTE: validators and cellAttrs are member variables to get the destruction order
|
// NOTE: validators and cellAttrs are member variables to get the destruction order
|
||||||
|
@ -133,7 +135,7 @@ void FIELDS_GRID_TABLE<T>::initGrid( DIALOG_SHIM* aDialog )
|
||||||
exts.push_back( KiCadSchematicFileExtension );
|
exts.push_back( KiCadSchematicFileExtension );
|
||||||
wildCard += AddFileExtListToFilter( exts );
|
wildCard += AddFileExtListToFilter( exts );
|
||||||
|
|
||||||
auto filepathEditor = new GRID_CELL_PATH_EDITOR( aDialog, &m_curdir, wildCard );
|
auto filepathEditor = new GRID_CELL_PATH_EDITOR( aDialog, aGrid, &m_curdir, wildCard );
|
||||||
filepathEditor->SetValidator( m_filepathValidator );
|
filepathEditor->SetValidator( m_filepathValidator );
|
||||||
m_filepathAttr->SetEditor( filepathEditor );
|
m_filepathAttr->SetEditor( filepathEditor );
|
||||||
|
|
||||||
|
|
|
@ -72,8 +72,10 @@ template <class T>
|
||||||
class FIELDS_GRID_TABLE : public wxGridTableBase, public std::vector<T>
|
class FIELDS_GRID_TABLE : public wxGridTableBase, public std::vector<T>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FIELDS_GRID_TABLE( DIALOG_SHIM* aDialog, SCH_BASE_FRAME* aFrame, LIB_PART* aPart );
|
FIELDS_GRID_TABLE( DIALOG_SHIM* aDialog, SCH_BASE_FRAME* aFrame, WX_GRID* aGrid,
|
||||||
FIELDS_GRID_TABLE( DIALOG_SHIM* aDialog, SCH_BASE_FRAME* aFrame, SCH_SHEET* aSheet );
|
LIB_PART* aPart );
|
||||||
|
FIELDS_GRID_TABLE( DIALOG_SHIM* aDialog, SCH_BASE_FRAME* aFrame, WX_GRID* aGrid,
|
||||||
|
SCH_SHEET* aSheet );
|
||||||
~FIELDS_GRID_TABLE();
|
~FIELDS_GRID_TABLE();
|
||||||
|
|
||||||
int GetNumberRows() override { return (int) this->size(); }
|
int GetNumberRows() override { return (int) this->size(); }
|
||||||
|
@ -100,11 +102,12 @@ public:
|
||||||
bool BoolFromString( wxString aValue ) const;
|
bool BoolFromString( wxString aValue ) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void initGrid( DIALOG_SHIM* aDialog );
|
void initGrid( DIALOG_SHIM* aDialog, WX_GRID* aGrid );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SCH_BASE_FRAME* m_frame;
|
SCH_BASE_FRAME* m_frame;
|
||||||
EDA_UNITS m_userUnits;
|
EDA_UNITS m_userUnits;
|
||||||
|
WX_GRID* m_grid;
|
||||||
KICAD_T m_parentType;
|
KICAD_T m_parentType;
|
||||||
int m_mandatoryFieldCount;
|
int m_mandatoryFieldCount;
|
||||||
LIB_PART* m_part;
|
LIB_PART* m_part;
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2018-2020 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 2021 CERN
|
||||||
|
* Copyright (C) 2018-2021 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
@ -30,6 +31,7 @@
|
||||||
|
|
||||||
|
|
||||||
class wxGrid;
|
class wxGrid;
|
||||||
|
class WX_GRID;
|
||||||
class DIALOG_SHIM;
|
class DIALOG_SHIM;
|
||||||
|
|
||||||
|
|
||||||
|
@ -138,13 +140,18 @@ public:
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
* @param aCurrentDir is current directory the path editor will open at
|
* @param aCurrentDir is current directory the path editor will open at
|
||||||
* @param aExt is the file extension(s) to filter by. If empty, the path editor will switch to folder mode instead of file.
|
* @param aExt is the file extension(s) to filter by. If empty, the path editor will switch
|
||||||
* @param aNormalize indicates whether to normalize the selected path (replace part of path with variables or relative path)
|
* to folder mode instead of file.
|
||||||
* @param aNormalizeBasePath is the path to use when trying to base variables (generally current project path)
|
* @param aNormalize indicates whether to normalize the selected path (replace part of path
|
||||||
|
* with variables or relative path)
|
||||||
|
* @param aNormalizeBasePath is the path to use when trying to base variables (generally
|
||||||
|
* current project path)
|
||||||
*/
|
*/
|
||||||
GRID_CELL_PATH_EDITOR( DIALOG_SHIM* aParent, wxString* aCurrentDir, const wxString& aExt,
|
GRID_CELL_PATH_EDITOR( DIALOG_SHIM* aParentDialog, WX_GRID* aGrid, wxString* aCurrentDir,
|
||||||
bool aNormalize = false, wxString aNormalizeBasePath = wxEmptyString ) :
|
const wxString& aExt, bool aNormalize = false,
|
||||||
m_dlg( aParent ),
|
wxString aNormalizeBasePath = wxEmptyString ) :
|
||||||
|
m_dlg( aParentDialog ),
|
||||||
|
m_grid( aGrid ),
|
||||||
m_currentDir( aCurrentDir ),
|
m_currentDir( aCurrentDir ),
|
||||||
m_ext( aExt ),
|
m_ext( aExt ),
|
||||||
m_normalize( aNormalize ),
|
m_normalize( aNormalize ),
|
||||||
|
@ -153,13 +160,14 @@ public:
|
||||||
|
|
||||||
wxGridCellEditor* Clone() const override
|
wxGridCellEditor* Clone() const override
|
||||||
{
|
{
|
||||||
return new GRID_CELL_PATH_EDITOR( m_dlg, m_currentDir, m_ext );
|
return new GRID_CELL_PATH_EDITOR( m_dlg, m_grid, m_currentDir, m_ext );
|
||||||
}
|
}
|
||||||
|
|
||||||
void Create( wxWindow* aParent, wxWindowID aId, wxEvtHandler* aEventHandler ) override;
|
void Create( wxWindow* aParent, wxWindowID aId, wxEvtHandler* aEventHandler ) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
DIALOG_SHIM* m_dlg;
|
DIALOG_SHIM* m_dlg;
|
||||||
|
WX_GRID* m_grid;
|
||||||
wxString* m_currentDir;
|
wxString* m_currentDir;
|
||||||
wxString m_ext;
|
wxString m_ext;
|
||||||
bool m_normalize;
|
bool m_normalize;
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
#include <confirm.h>
|
#include <confirm.h>
|
||||||
#include <dialogs/dialog_text_entry.h>
|
#include <dialogs/dialog_text_entry.h>
|
||||||
#include <3d_viewer/eda_3d_viewer.h>
|
#include <3d_viewer/eda_3d_viewer.h>
|
||||||
#include <pcb_edit_frame.h>
|
|
||||||
#include <validators.h>
|
#include <validators.h>
|
||||||
#include <board_design_settings.h>
|
#include <board_design_settings.h>
|
||||||
#include <board_commit.h>
|
#include <board_commit.h>
|
||||||
|
@ -96,8 +95,8 @@ DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR( FOOTPRINT_EDIT_FRAME* aP
|
||||||
}
|
}
|
||||||
|
|
||||||
wxGridCellAttr* attr = new wxGridCellAttr;
|
wxGridCellAttr* attr = new wxGridCellAttr;
|
||||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR( this, &cfg->m_lastFootprint3dDir, "*.*",
|
attr->SetEditor( new GRID_CELL_PATH_EDITOR( this, m_modelsGrid, &cfg->m_lastFootprint3dDir,
|
||||||
true, Prj().GetProjectPath() ) );
|
"*.*", true, Prj().GetProjectPath() ) );
|
||||||
m_modelsGrid->SetColAttr( 0, attr );
|
m_modelsGrid->SetColAttr( 0, attr );
|
||||||
|
|
||||||
// Show checkbox
|
// Show checkbox
|
||||||
|
@ -315,6 +314,7 @@ bool DIALOG_FOOTPRINT_FP_EDITOR::TransferDataToWindow()
|
||||||
}
|
}
|
||||||
|
|
||||||
select3DModel( 0 ); // will clamp idx within bounds
|
select3DModel( 0 ); // will clamp idx within bounds
|
||||||
|
m_PreviewPane->UpdateDummyFootprint();
|
||||||
|
|
||||||
for( int col = 0; col < m_itemsGrid->GetNumberCols(); col++ )
|
for( int col = 0; col < m_itemsGrid->GetNumberCols(); col++ )
|
||||||
{
|
{
|
||||||
|
|
|
@ -105,8 +105,8 @@ DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES( PCB_EDIT_FRAME* aParen
|
||||||
}
|
}
|
||||||
|
|
||||||
wxGridCellAttr* attr = new wxGridCellAttr;
|
wxGridCellAttr* attr = new wxGridCellAttr;
|
||||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR( this, &cfg->m_lastFootprint3dDir, "*.*",
|
attr->SetEditor( new GRID_CELL_PATH_EDITOR( this, m_modelsGrid, &cfg->m_lastFootprint3dDir,
|
||||||
true, Prj().GetProjectPath() ) );
|
"*.*", true, Prj().GetProjectPath() ) );
|
||||||
m_modelsGrid->SetColAttr( 0, attr );
|
m_modelsGrid->SetColAttr( 0, attr );
|
||||||
|
|
||||||
// Show checkbox
|
// Show checkbox
|
||||||
|
|
|
@ -407,8 +407,10 @@ PANEL_FP_LIB_TABLE::PANEL_FP_LIB_TABLE( DIALOG_EDIT_LIBRARY_TABLES* aParent,
|
||||||
wxGridCellAttr* attr;
|
wxGridCellAttr* attr;
|
||||||
|
|
||||||
attr = new wxGridCellAttr;
|
attr = new wxGridCellAttr;
|
||||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR( m_parent, &cfg->m_lastFootprintLibDir,
|
attr->SetEditor( new GRID_CELL_PATH_EDITOR( m_parent, aGrid,
|
||||||
wxEmptyString, true, m_projectBasePath ) );
|
&cfg->m_lastFootprintLibDir,
|
||||||
|
wxEmptyString, true,
|
||||||
|
m_projectBasePath ) );
|
||||||
aGrid->SetColAttr( COL_URI, attr );
|
aGrid->SetColAttr( COL_URI, attr );
|
||||||
|
|
||||||
attr = new wxGridCellAttr;
|
attr = new wxGridCellAttr;
|
||||||
|
|
Loading…
Reference in New Issue