Browse Source

Don't open the same jobset file twice

pcb_db
Marek Roszko 10 months ago
parent
commit
66b208d547
  1. 6
      kicad/dialogs/panel_jobs.cpp
  2. 2
      kicad/dialogs/panel_jobs.h
  3. 20
      kicad/kicad_manager_frame.cpp

6
kicad/dialogs/panel_jobs.cpp

@ -749,6 +749,12 @@ void PANEL_JOBS::EnsurePcbSchFramesOpen()
}
wxString PANEL_JOBS::GetFilePath() const
{
return m_jobsFile->GetFullFilename();
}
void PANEL_JOBS::OnJobButtonUp( wxCommandEvent& aEvent )
{
long item = m_jobList->GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );

2
kicad/dialogs/panel_jobs.h

@ -41,6 +41,8 @@ public:
void EnsurePcbSchFramesOpen();
wxString GetFilePath() const;
protected:
virtual void OnAddJobClick( wxCommandEvent& aEvent ) override;
virtual void OnAddOutputClick( wxCommandEvent& aEvent ) override;

20
kicad/kicad_manager_frame.cpp

@ -33,6 +33,7 @@
#include <background_jobs_monitor.h>
#include <bitmaps.h>
#include <build_version.h>
#include <confirm.h>
#include <dialogs/panel_kicad_launcher.h>
#include <dialogs/dialog_update_check_prompt.h>
#include <dialogs/panel_jobs.h>
@ -117,9 +118,6 @@ BEGIN_EVENT_TABLE( KICAD_MANAGER_FRAME, EDA_BASE_FRAME )
END_EVENT_TABLE()
static JOBSET* test = new JOBSET( "" );
// See below the purpose of this include
#include <wx/xml/xml.h>
@ -717,6 +715,21 @@ void KICAD_MANAGER_FRAME::OpenJobsFile( const wxFileName& aFileName, bool aCreat
return;
}
for( size_t i = 0; i < m_notebook->GetPageCount(); i++ )
{
wxWindow* page = m_notebook->GetPage( i );
PANEL_JOBS* panel = dynamic_cast<PANEL_JOBS*>( page );
if( panel )
{
if( aFileName.GetFullPath() == panel->GetFilePath() )
{
m_notebook->SetSelection( i );
return;
}
}
}
try
{
std::unique_ptr<JOBSET> jobsFile =
@ -732,6 +745,7 @@ void KICAD_MANAGER_FRAME::OpenJobsFile( const wxFileName& aFileName, bool aCreat
}
catch( ... )
{
DisplayErrorMessage( this, _( "Error opening jobs file" ) );
}
}

Loading…
Cancel
Save