From 74b174e4f037ac8cf806c6161e8d3d2554fd401c Mon Sep 17 00:00:00 2001 From: Mark Roszko <mark.roszko@gmail.com> Date: Fri, 31 Jan 2025 08:16:26 -0500 Subject: [PATCH] Add "source" field for jobsets to discern SCH & PCB jobs --- kicad/dialogs/panel_jobset.cpp | 47 ++++++++++++++++++++++++++--- kicad/dialogs/panel_jobset_base.cpp | 7 +++-- kicad/dialogs/panel_jobset_base.fbp | 4 +-- kicad/dialogs/panel_jobset_base.h | 2 +- 4 files changed, 49 insertions(+), 11 deletions(-) diff --git a/kicad/dialogs/panel_jobset.cpp b/kicad/dialogs/panel_jobset.cpp index 01f825fa2b..41d0f2f26d 100644 --- a/kicad/dialogs/panel_jobset.cpp +++ b/kicad/dialogs/panel_jobset.cpp @@ -63,6 +63,7 @@ public: int jobBmpColId = m_jobList->AppendColumn( wxT( "" ) ); int jobNoColId = m_jobList->AppendColumn( _( "No." ) ); int jobDescColId = m_jobList->AppendColumn( _( "Job Description" ) ); + int jobSourceColId = m_jobList->AppendColumn( wxT( "Source" ) ); m_jobList->SetColumnWidth( jobBmpColId, wxLIST_AUTOSIZE_USEHEADER ); m_jobList->SetColumnWidth( jobNoColId, wxLIST_AUTOSIZE_USEHEADER ); m_jobList->SetColumnWidth( jobDescColId, wxLIST_AUTOSIZE_USEHEADER ); @@ -88,6 +89,22 @@ public: m_jobList->SetItem( itemIndex, jobNoColId, wxString::Format( "%d", num++ ) ); m_jobList->SetItem( itemIndex, jobDescColId, job.GetDescription() ); + + KIWAY::FACE_T iface = JOB_REGISTRY::GetKifaceType( job.m_type ); + wxString source = wxEmptyString; + if( iface < KIWAY::KIWAY_FACE_COUNT ) + { + + if( iface == KIWAY::FACE_PCB ) + { + source = wxT( "PCB" ); + } + else if( iface == KIWAY::FACE_SCH ) + { + source = wxT( "SCH" ); + } + } + m_jobList->SetItem( itemIndex, jobSourceColId, source ); } SetupStandardButtons( { { wxID_OK, _( "Close" ) } } ); @@ -381,7 +398,7 @@ void JOBS_GRID_TRICKS::doPopupSelection( wxCommandEvent& event ) { if( selectedRows.size() > 0 ) { - m_grid->SetGridCursor( selectedRows[0], 1 ); + m_grid->SetGridCursor( selectedRows[0], 2 ); m_grid->EnableCellEditControl(); } } @@ -409,7 +426,7 @@ bool JOBS_GRID_TRICKS::handleDoubleClick( wxGridEvent& aEvent ) int curr_col = aEvent.GetCol(); int curr_row = aEvent.GetRow(); - if( ( curr_col == 0 || curr_col == 1 ) + if( ( curr_col == 0 || curr_col == 1 || curr_col == 2 ) && curr_row >= 0 && curr_row < (int) m_parent->GetJobsFile()->GetJobs().size() ) { m_doubleClickRow = curr_row; @@ -450,6 +467,7 @@ PANEL_JOBSET::PANEL_JOBSET( wxAuiNotebook* aParent, KICAD_MANAGER_FRAME* aFrame, // 'm' for margins m_jobsGrid->SetColSize( 0, GetTextExtent( wxT( "99m" ) ).x ); + m_jobsGrid->SetColSize( 1, GetTextExtent( wxT( "PCBm" ) ).x ); m_buttonAddJob->SetBitmap( KiBitmapBundle( BITMAPS::small_plus ) ); m_buttonUp->SetBitmap( KiBitmapBundle( BITMAPS::small_up ) ); @@ -503,7 +521,25 @@ void PANEL_JOBSET::rebuildJobList() m_jobsGrid->SetCellValue( num - 1, 0, wxString::Format( "%d", num ) ); m_jobsGrid->SetReadOnly( num - 1, 0 ); - m_jobsGrid->SetCellValue( num - 1, 1, job.GetDescription() ); + m_jobsGrid->SetCellValue( num - 1, 2, job.GetDescription() ); + + m_jobsGrid->SetReadOnly( num - 1, 1 ); + + KIWAY::FACE_T iface = JOB_REGISTRY::GetKifaceType( job.m_type ); + wxString source = wxEmptyString; + if( iface < KIWAY::KIWAY_FACE_COUNT ) + { + if( iface == KIWAY::FACE_PCB ) + { + source = wxT( "PCB" ); + } + else if( iface == KIWAY::FACE_SCH ) + { + source = wxT( "SCH" ); + } + } + + m_jobsGrid->SetCellValue( num - 1, 1, source ); num++; } @@ -688,7 +724,7 @@ void PANEL_JOBSET::OnAddJobClick( wxCommandEvent& aEvent ) { rebuildJobList(); - m_jobsGrid->SetGridCursor( row, 1 ); + m_jobsGrid->SetGridCursor( row, 2 ); m_jobsGrid->EnableCellEditControl(); } else @@ -950,7 +986,8 @@ void PANEL_JOBSET::OnGenerateAllOutputsClick( wxCommandEvent& event ) void PANEL_JOBSET::OnSizeGrid( wxSizeEvent& aEvent ) { - m_jobsGrid->SetColSize( 1, m_jobsGrid->GetSize().x - m_jobsGrid->GetColSize( 0 ) ); + m_jobsGrid->SetColSize( 2, m_jobsGrid->GetSize().x - m_jobsGrid->GetColSize( 1 ) + - m_jobsGrid->GetColSize( 0 ) ); // Always propagate for a grid repaint (needed if the height changes, as well as width) aEvent.Skip(); diff --git a/kicad/dialogs/panel_jobset_base.cpp b/kicad/dialogs/panel_jobset_base.cpp index 1f074f58ce..06fd514084 100644 --- a/kicad/dialogs/panel_jobset_base.cpp +++ b/kicad/dialogs/panel_jobset_base.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6) +// C++ code generated with wxFormBuilder (version 4.2.1-62-g497c85bd-dirty) // http://www.wxformbuilder.org/ // // PLEASE DO *NOT* EDIT THIS FILE! @@ -26,7 +26,7 @@ PANEL_JOBSET_BASE::PANEL_JOBSET_BASE( wxWindow* parent, wxWindowID id, const wxP m_jobsGrid = new WX_GRID( sbJobs->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); // Grid - m_jobsGrid->CreateGrid( 5, 2 ); + m_jobsGrid->CreateGrid( 5, 3 ); m_jobsGrid->EnableEditing( true ); m_jobsGrid->EnableGridLines( true ); m_jobsGrid->EnableDragGridSize( false ); @@ -34,7 +34,8 @@ PANEL_JOBSET_BASE::PANEL_JOBSET_BASE( wxWindow* parent, wxWindowID id, const wxP // Columns m_jobsGrid->SetColSize( 0, 30 ); - m_jobsGrid->SetColSize( 1, 260 ); + m_jobsGrid->SetColSize( 1, 30 ); + m_jobsGrid->SetColSize( 2, 260 ); m_jobsGrid->EnableDragColMove( false ); m_jobsGrid->EnableDragColSize( false ); m_jobsGrid->SetColLabelSize( 0 ); diff --git a/kicad/dialogs/panel_jobset_base.fbp b/kicad/dialogs/panel_jobset_base.fbp index 17fa54d458..571fb239a5 100644 --- a/kicad/dialogs/panel_jobset_base.fbp +++ b/kicad/dialogs/panel_jobset_base.fbp @@ -111,8 +111,8 @@ <property name="col_label_size">0</property> <property name="col_label_values"></property> <property name="col_label_vert_alignment">wxALIGN_CENTER</property> - <property name="cols">2</property> - <property name="column_sizes">30,260</property> + <property name="cols">3</property> + <property name="column_sizes">30,30,260</property> <property name="context_help"></property> <property name="context_menu">1</property> <property name="default_pane">0</property> diff --git a/kicad/dialogs/panel_jobset_base.h b/kicad/dialogs/panel_jobset_base.h index 35634f55ec..2a0a947595 100644 --- a/kicad/dialogs/panel_jobset_base.h +++ b/kicad/dialogs/panel_jobset_base.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6) +// C++ code generated with wxFormBuilder (version 4.2.1-62-g497c85bd-dirty) // http://www.wxformbuilder.org/ // // PLEASE DO *NOT* EDIT THIS FILE!