ADDED: path info to job destination panel.

This commit is contained in:
Jeff Young 2025-04-17 14:28:42 +01:00
parent 70cbdbff89
commit c5093a5df0
6 changed files with 94 additions and 6 deletions

View File

@ -162,6 +162,12 @@ wxString JOBSET_DESTINATION::GetDescription() const
} }
wxString JOBSET_DESTINATION::GetPathInfo() const
{
return m_outputHandler->GetOutputPath();
}
void JOBSET_DESTINATION::SetDescription( const wxString& aDescription ) void JOBSET_DESTINATION::SetDescription( const wxString& aDescription )
{ {
if( aDescription == m_outputHandler->GetDefaultDescription() ) if( aDescription == m_outputHandler->GetDefaultDescription() )

View File

@ -92,6 +92,8 @@ struct KICOMMON_API JOBSET_DESTINATION
wxString GetDescription() const; wxString GetDescription() const;
void SetDescription( const wxString& aDescription ); void SetDescription( const wxString& aDescription );
wxString GetPathInfo() const;
///< Transient property, not stored for now ///< Transient property, not stored for now
std::optional<bool> m_lastRunSuccess; std::optional<bool> m_lastRunSuccess;
std::unordered_map<wxString, std::optional<bool>> m_lastRunSuccessMap; std::unordered_map<wxString, std::optional<bool>> m_lastRunSuccessMap;

View File

@ -33,6 +33,7 @@
#include <widgets/wx_progress_reporters.h> #include <widgets/wx_progress_reporters.h>
#include <kicad_manager_frame.h> #include <kicad_manager_frame.h>
#include <vector> #include <vector>
#include <wx/dcclient.h>
#include <wildcards_and_files_ext.h> #include <wildcards_and_files_ext.h>
#include <widgets/std_bitmap_button.h> #include <widgets/std_bitmap_button.h>
@ -201,6 +202,8 @@ public:
m_bitmapOutputType->SetBitmap( KiBitmapBundle( jobTypeInfo.bitmap ) ); m_bitmapOutputType->SetBitmap( KiBitmapBundle( jobTypeInfo.bitmap ) );
} }
m_pathInfo->SetFont( KIUI::GetInfoFont( this ).Italic() );
UpdatePathInfo( aDestination->GetPathInfo() );
UpdateStatus(); UpdateStatus();
} }
@ -246,6 +249,15 @@ public:
m_buttonGenerate->Enable( !m_jobsFile->GetJobsForDestination( destination ).empty() ); m_buttonGenerate->Enable( !m_jobsFile->GetJobsForDestination( destination ).empty() );
} }
void UpdatePathInfo( const wxString& aMsg )
{
wxClientDC dc( this );
int width = GetSize().GetWidth();
wxString msg = aMsg;
m_pathInfo->SetLabel( wxControl::Ellipsize( msg, dc, wxELLIPSIZE_MIDDLE, width ) );
}
virtual void OnGenerate( wxCommandEvent& event ) override virtual void OnGenerate( wxCommandEvent& event ) override
{ {
ClearStatus(); ClearStatus();
@ -313,6 +325,7 @@ public:
if( dialog.ShowModal() == wxID_OK ) if( dialog.ShowModal() == wxID_OK )
{ {
m_textOutputType->SetLabel( destination->GetDescription() ); m_textOutputType->SetLabel( destination->GetDescription() );
UpdatePathInfo( destination->GetPathInfo() );
m_jobsFile->SetDirty(); m_jobsFile->SetDirty();
m_panelParent->UpdateTitle(); m_panelParent->UpdateTitle();
} }

View File

@ -182,7 +182,11 @@ PANEL_DESTINATION_BASE::PANEL_DESTINATION_BASE( wxWindow* parent, wxWindowID id,
fgSizer3->Add( m_statusBitmap, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); fgSizer3->Add( m_statusBitmap, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
bSizerMain->Add( fgSizer3, 0, wxEXPAND|wxALL, 5 ); bSizerMain->Add( fgSizer3, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
m_pathInfo = new wxStaticText( this, wxID_ANY, _("path"), wxDefaultPosition, wxDefaultSize, 0 );
m_pathInfo->Wrap( -1 );
bSizerMain->Add( m_pathInfo, 0, wxBOTTOM|wxRIGHT|wxLEFT, 10 );
wxBoxSizer* bSizerButtons; wxBoxSizer* bSizerButtons;
bSizerButtons = new wxBoxSizer( wxHORIZONTAL ); bSizerButtons = new wxBoxSizer( wxHORIZONTAL );
@ -200,7 +204,7 @@ PANEL_DESTINATION_BASE::PANEL_DESTINATION_BASE( wxWindow* parent, wxWindowID id,
bSizerButtons->Add( m_buttonGenerate, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); bSizerButtons->Add( m_buttonGenerate, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
bSizerMain->Add( bSizerButtons, 0, wxEXPAND, 5 ); bSizerMain->Add( bSizerButtons, 0, wxEXPAND|wxTOP, 5 );
this->SetSizer( bSizerMain ); this->SetSizer( bSizerMain );

View File

@ -888,7 +888,7 @@
<property name="permission">none</property> <property name="permission">none</property>
<object class="sizeritem" expanded="true"> <object class="sizeritem" expanded="true">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxEXPAND|wxALL</property> <property name="flag">wxEXPAND|wxTOP|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxFlexGridSizer" expanded="true"> <object class="wxFlexGridSizer" expanded="true">
<property name="cols">3</property> <property name="cols">3</property>
@ -1085,9 +1085,71 @@
</object> </object>
</object> </object>
</object> </object>
<object class="sizeritem" expanded="true">
<property name="border">10</property>
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="true">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer">0</property>
<property name="aui_name"></property>
<property name="aui_position">0</property>
<property name="aui_row">0</property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">path</property>
<property name="markup">0</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_pathInfo</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
</object>
</object>
<object class="sizeritem" expanded="true"> <object class="sizeritem" expanded="true">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxEXPAND</property> <property name="flag">wxEXPAND|wxTOP</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxBoxSizer" expanded="true"> <object class="wxBoxSizer" expanded="true">
<property name="minimum_size"></property> <property name="minimum_size"></property>
@ -1141,7 +1203,7 @@
<property name="maximum_size"></property> <property name="maximum_size"></property>
<property name="min_size"></property> <property name="min_size"></property>
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size">-1,-1</property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_buttonProperties</property> <property name="name">m_buttonProperties</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
@ -1216,7 +1278,7 @@
<property name="maximum_size"></property> <property name="maximum_size"></property>
<property name="min_size"></property> <property name="min_size"></property>
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size">-1,-1</property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_buttonDelete</property> <property name="name">m_buttonDelete</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>

View File

@ -88,6 +88,7 @@ class PANEL_DESTINATION_BASE : public wxPanel
wxStaticBitmap* m_bitmapOutputType; wxStaticBitmap* m_bitmapOutputType;
wxStaticText* m_textOutputType; wxStaticText* m_textOutputType;
wxStaticBitmap* m_statusBitmap; wxStaticBitmap* m_statusBitmap;
wxStaticText* m_pathInfo;
STD_BITMAP_BUTTON* m_buttonProperties; STD_BITMAP_BUTTON* m_buttonProperties;
STD_BITMAP_BUTTON* m_buttonDelete; STD_BITMAP_BUTTON* m_buttonDelete;
wxButton* m_buttonGenerate; wxButton* m_buttonGenerate;