diff --git a/common/jobs/jobset.cpp b/common/jobs/jobset.cpp index 13173e6e04..2a763779d6 100644 --- a/common/jobs/jobset.cpp +++ b/common/jobs/jobset.cpp @@ -225,7 +225,7 @@ void JOBSET::AddNewJob( wxString aType, JOB* aJob ) JOBSET_OUTPUT* JOBSET::AddNewJobOutput( JOBSET_OUTPUT_TYPE aType ) { - m_outputs.emplace_back( KIID().AsString(), aType); + m_outputs.emplace_back( KIID().AsString(), aType ); SetDirty(); return &m_outputs.back(); diff --git a/kicad/dialogs/panel_jobset.cpp b/kicad/dialogs/panel_jobset.cpp index b603a8e7fa..f01ee2b795 100644 --- a/kicad/dialogs/panel_jobset.cpp +++ b/kicad/dialogs/panel_jobset.cpp @@ -797,6 +797,7 @@ void PANEL_JOBSET::OnAddOutputClick( wxCommandEvent& aEvent ) JOBSET_OUTPUT* output = m_jobsFile->AddNewJobOutput( jobType.first ); DIALOG_JOBSET_OUTPUT_OPTIONS dialog( m_frame, m_jobsFile.get(), output ); + if (dialog.ShowModal() == wxID_OK) { Freeze(); diff --git a/kicad/kicad_manager_frame.cpp b/kicad/kicad_manager_frame.cpp index 0c9039864c..e9944b4fc4 100644 --- a/kicad/kicad_manager_frame.cpp +++ b/kicad/kicad_manager_frame.cpp @@ -773,6 +773,13 @@ void KICAD_MANAGER_FRAME::OpenJobsFile( const wxFileName& aFileName, bool aCreat jobsFile->LoadFromFile(); + if( aCreate && !aFileName.FileExists() ) + { + JOBSET_OUTPUT* output = jobsFile->AddNewJobOutput( JOBSET_OUTPUT_TYPE::FOLDER ); + output->m_outputHandler->SetOutputPath( aFileName.GetName() ); + jobsFile->SaveToFile( wxEmptyString, true ); + } + PANEL_JOBSET* jobPanel = new PANEL_JOBSET( m_notebook, this, std::move( jobsFile ) ); jobPanel->SetProjectTied( true ); jobPanel->SetClosable( true );