Finish up work on PlaceFile settings persistence.
We were missing several flags, and using the Plot output directory instead of saving our own. Fixes https://gitlab.com/kicad/code/kicad/issues/12715 Fixes https://gitlab.com/kicad/code/kicad/issues/12714
This commit is contained in:
parent
3cb6a80954
commit
d6fca11419
|
@ -54,8 +54,7 @@ class DIALOG_GEN_FOOTPRINT_POSITION : public DIALOG_GEN_FOOTPRINT_POSITION_BASE
|
|||
public:
|
||||
DIALOG_GEN_FOOTPRINT_POSITION( PCB_EDIT_FRAME * aParent ):
|
||||
DIALOG_GEN_FOOTPRINT_POSITION_BASE( aParent ),
|
||||
m_parent( aParent ),
|
||||
m_plotOpts( aParent->GetPlotSettings() )
|
||||
m_parent( aParent )
|
||||
{
|
||||
m_messagesPanel->SetFileName( Prj().GetProjectPath() + wxT( "report.txt" ) );
|
||||
m_reporter = &m_messagesPanel->Reporter();
|
||||
|
@ -160,7 +159,6 @@ private:
|
|||
|
||||
private:
|
||||
PCB_EDIT_FRAME* m_parent;
|
||||
PCB_PLOT_PARAMS m_plotOpts;
|
||||
REPORTER* m_reporter;
|
||||
};
|
||||
|
||||
|
@ -175,7 +173,7 @@ void DIALOG_GEN_FOOTPRINT_POSITION::initDialog()
|
|||
m_units = cfg->m_PlaceFile.units == 0 ? EDA_UNITS::INCHES : EDA_UNITS::MILLIMETRES;
|
||||
|
||||
// Output directory
|
||||
m_outputDirectoryName->SetValue( m_plotOpts.GetOutputDirectory() );
|
||||
m_outputDirectoryName->SetValue( cfg->m_PlaceFile.output_directory );
|
||||
|
||||
// Update Options
|
||||
m_radioBoxUnits->SetSelection( cfg->m_PlaceFile.units );
|
||||
|
@ -224,9 +222,16 @@ void DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked( wxCommandEve
|
|||
|
||||
void DIALOG_GEN_FOOTPRINT_POSITION::OnGenerate( wxCommandEvent& event )
|
||||
{
|
||||
PCBNEW_SETTINGS* cfg = m_parent->GetPcbNewSettings();
|
||||
m_units = m_radioBoxUnits->GetSelection() == 0 ? EDA_UNITS::INCHES : EDA_UNITS::MILLIMETRES;
|
||||
|
||||
PCBNEW_SETTINGS* cfg = m_parent->GetPcbNewSettings();
|
||||
|
||||
wxString dirStr = m_outputDirectoryName->GetValue();
|
||||
// Keep unix directory format convention in cfg files
|
||||
dirStr.Replace( wxT( "\\" ), wxT( "/" ) );
|
||||
|
||||
cfg->m_PlaceFile.output_directory = dirStr;
|
||||
|
||||
cfg->m_PlaceFile.units = m_units == EDA_UNITS::INCHES ? 0 : 1;
|
||||
cfg->m_PlaceFile.file_options = m_radioBoxFilesCount->GetSelection();
|
||||
cfg->m_PlaceFile.file_format = m_rbFormat->GetSelection();
|
||||
|
@ -236,15 +241,6 @@ void DIALOG_GEN_FOOTPRINT_POSITION::OnGenerate( wxCommandEvent& event )
|
|||
cfg->m_PlaceFile.use_aux_origin = m_useDrillPlaceOrigin->GetValue();
|
||||
cfg->m_PlaceFile.negate_xcoord = m_negateXcb->GetValue();
|
||||
|
||||
// Set output directory and replace backslashes with forward ones
|
||||
// (Keep unix convention in cfg files)
|
||||
wxString dirStr;
|
||||
dirStr = m_outputDirectoryName->GetValue();
|
||||
dirStr.Replace( wxT( "\\" ), wxT( "/" ) );
|
||||
|
||||
m_plotOpts.SetOutputDirectory( dirStr );
|
||||
m_parent->SetPlotSettings( m_plotOpts );
|
||||
|
||||
if( m_rbFormat->GetSelection() == 2 )
|
||||
CreateGerberFiles();
|
||||
else
|
||||
|
@ -269,7 +265,7 @@ bool DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles()
|
|||
return m_parent->GetBoard()->ResolveTextVar( token, 0 );
|
||||
};
|
||||
|
||||
wxString path = m_plotOpts.GetOutputDirectory();
|
||||
wxString path = m_parent->GetPcbNewSettings()->m_PlaceFile.output_directory;
|
||||
path = ExpandTextVars( path, &textResolver, nullptr, nullptr );
|
||||
path = ExpandEnvVarSubstitutions( path, nullptr );
|
||||
|
||||
|
@ -377,7 +373,7 @@ bool DIALOG_GEN_FOOTPRINT_POSITION::CreateAsciiFiles()
|
|||
return m_parent->GetBoard()->ResolveTextVar( token, 0 );
|
||||
};
|
||||
|
||||
wxString path = m_plotOpts.GetOutputDirectory();
|
||||
wxString path = m_parent->GetPcbNewSettings()->m_PlaceFile.output_directory;
|
||||
path = ExpandTextVars( path, &textResolver, nullptr, nullptr );
|
||||
path = ExpandEnvVarSubstitutions( path, nullptr );
|
||||
|
||||
|
|
|
@ -407,7 +407,10 @@ PCBNEW_SETTINGS::PCBNEW_SETTINGS()
|
|||
m_params.emplace_back( new PARAM<bool>( "netlist.associate_by_ref_sch",
|
||||
&m_NetlistDialog.associate_by_ref_sch, false ) );
|
||||
|
||||
m_params.emplace_back(new PARAM<int>( "place_file.units",
|
||||
m_params.emplace_back( new PARAM<wxString>( "place_file.output_directory",
|
||||
&m_PlaceFile.output_directory, wxEmptyString ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<int>( "place_file.units",
|
||||
&m_PlaceFile.units, 1 ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<int>( "place_file.file_options",
|
||||
|
@ -416,6 +419,12 @@ PCBNEW_SETTINGS::PCBNEW_SETTINGS()
|
|||
m_params.emplace_back( new PARAM<int>( "place_file.file_format",
|
||||
&m_PlaceFile.file_format, 0 ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<bool>( "place_file.excludeTH",
|
||||
&m_PlaceFile.exclude_TH, false ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<bool>( "place_file.onlySMD",
|
||||
&m_PlaceFile.only_SMD, false ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<bool>( "place_file.include_board_edge",
|
||||
&m_PlaceFile.include_board_edge, false ) );
|
||||
|
||||
|
|
|
@ -232,14 +232,15 @@ public:
|
|||
|
||||
struct DIALOG_PLACE_FILE
|
||||
{
|
||||
int units;
|
||||
int file_options;
|
||||
int file_format;
|
||||
bool include_board_edge;
|
||||
bool exclude_TH;
|
||||
bool only_SMD;
|
||||
bool use_aux_origin;
|
||||
bool negate_xcoord;
|
||||
wxString output_directory;
|
||||
int units;
|
||||
int file_options;
|
||||
int file_format;
|
||||
bool include_board_edge;
|
||||
bool exclude_TH;
|
||||
bool only_SMD;
|
||||
bool use_aux_origin;
|
||||
bool negate_xcoord;
|
||||
};
|
||||
|
||||
struct DIALOG_PLOT
|
||||
|
|
Loading…
Reference in New Issue