KiCad PCB EDA Suite
Loading...
Searching...
No Matches
DIALOG_PCM_PROGRESS Class Reference

Progress dialog for PCM system. More...

#include <dialog_pcm_progress.h>

Inheritance diagram for DIALOG_PCM_PROGRESS:
DIALOG_PCM_PROGRESS_BASE PROGRESS_REPORTER_BASE PROGRESS_REPORTER

Public Member Functions

 DIALOG_PCM_PROGRESS (wxWindow *parent, bool aShowDownloadSection=true)
 Constructor.
 
void PCMReport (const wxString &aText, SEVERITY aSeverity)
 Safe to call from non-UI thread. Sets the download progress of the current zip entry.
 
void SetDownloadProgress (uint64_t aDownloaded, uint64_t aTotal)
 Safe to call from non-UI thread. Sets the download prgress of the current package.
 
void SetPackageProgress (uint64_t aProgress, uint64_t aTotal)
 Safe to call from non-UI thread. Advances to the next package.
 
void AdvancePhase () override
 Safe to call from non-UI thread. Disables cancel button, enables close button.
 
void SetFinished ()
 
void SetNumPhases (int aNumPhases) override
 Set the number of phases.
 
void AddPhases (int aNumPhases) override
 
virtual void BeginPhase (int aPhase) override
 Initialize the aPhase virtual zone of the dialog progress bar.
 
virtual void AdvancePhase (const wxString &aMessage) override
 Use the next available virtual zone of the dialog progress bar and updates the message.
 
virtual void Report (const wxString &aMessage) override
 Display aMessage in the progress bar dialog.
 
virtual void SetCurrentProgress (double aProgress) override
 Set the progress value to aProgress (0..1).
 
void SetMaxProgress (int aMaxProgress) override
 Fix the value that gives the 100 percent progress bar length (inside the current virtual zone).
 
void AdvanceProgress () override
 Increment the progress bar length (inside the current virtual zone).
 
bool KeepRefreshing (bool aWait=false) override
 Update the UI dialog.
 
void SetTitle (const wxString &aTitle) override
 Change the title displayed on the window caption.
 
bool IsCancelled () const override
 
int CurrentProgress () const
 

Protected Member Functions

void OnCancelClicked (wxCommandEvent &event) override
 
void OnCloseClicked (wxCommandEvent &event) override
 

Protected Attributes

wxPanel * m_panelDownload
 
wxStaticText * m_downloadText
 
wxGauge * m_downloadGauge
 
wxPanel * m_panel2
 
wxGauge * m_overallGauge
 
WX_HTML_REPORT_BOXm_reporter
 
wxButton * m_buttonCancel
 
wxButton * m_buttonClose
 
wxString m_rptMessage
 
std::mutex m_mutex
 
std::atomic_int m_phase
 
std::atomic_int m_numPhases
 
std::atomic_int m_progress
 
std::atomic_int m_maxProgress
 
std::atomic_bool m_cancelled
 
std::atomic_bool m_messageChanged
 

Private Member Functions

bool updateUI () override
 

Static Private Member Functions

static uint64_t toKb (uint64_t aValue)
 

Private Attributes

std::atomic_int64_t m_downloaded
 
std::atomic_int64_t m_downloadTotal
 
std::atomic_int64_t m_currentProgress
 
std::atomic_int64_t m_currentProgressTotal
 
std::atomic_bool m_finished
 
std::vector< std::pair< wxString, SEVERITY > > m_reports
 
wxWindowDisabler m_disabler
 
wxAppProgressIndicator m_appProgressIndicator
 

Detailed Description

Progress dialog for PCM system.

This dialog is designed to work with PCM_TASK_MANAGER's threading system. Some of it's methods are safe to call from a non-UI thread.

Definition at line 38 of file dialog_pcm_progress.h.

Constructor & Destructor Documentation

◆ DIALOG_PCM_PROGRESS()

DIALOG_PCM_PROGRESS::DIALOG_PCM_PROGRESS ( wxWindow *  parent,
bool  aShowDownloadSection = true 
)

Member Function Documentation

◆ AddPhases()

void PROGRESS_REPORTER_BASE::AddPhases ( int  aNumPhases)
overridevirtualinherited

Implements PROGRESS_REPORTER.

Definition at line 98 of file progress_reporter_base.cpp.

References PROGRESS_REPORTER_BASE::m_numPhases.

◆ AdvancePhase() [1/2]

void DIALOG_PCM_PROGRESS::AdvancePhase ( )
overridevirtual

Safe to call from non-UI thread. Disables cancel button, enables close button.

Reimplemented from PROGRESS_REPORTER_BASE.

Definition at line 93 of file dialog_pcm_progress.cpp.

References PROGRESS_REPORTER_BASE::AdvancePhase(), and m_currentProgress.

◆ AdvancePhase() [2/2]

void PROGRESS_REPORTER_BASE::AdvancePhase ( const wxString &  aMessage)
overridevirtualinherited

Use the next available virtual zone of the dialog progress bar and updates the message.

Implements PROGRESS_REPORTER.

Reimplemented in DIALOG_ERC, and DIALOG_DRC.

Definition at line 57 of file progress_reporter_base.cpp.

References PROGRESS_REPORTER_BASE::AdvancePhase(), and PROGRESS_REPORTER_BASE::Report().

◆ AdvanceProgress()

void PROGRESS_REPORTER_BASE::AdvanceProgress ( )
overridevirtualinherited

Increment the progress bar length (inside the current virtual zone).

Implements PROGRESS_REPORTER.

Definition at line 86 of file progress_reporter_base.cpp.

References PROGRESS_REPORTER_BASE::m_progress.

◆ BeginPhase()

void PROGRESS_REPORTER_BASE::BeginPhase ( int  aPhase)
overridevirtualinherited

Initialize the aPhase virtual zone of the dialog progress bar.

Implements PROGRESS_REPORTER.

Definition at line 43 of file progress_reporter_base.cpp.

References PROGRESS_REPORTER_BASE::m_phase, and PROGRESS_REPORTER_BASE::m_progress.

◆ CurrentProgress()

◆ IsCancelled()

bool PROGRESS_REPORTER_BASE::IsCancelled ( ) const
inlineoverridevirtualinherited

Implements PROGRESS_REPORTER.

Definition at line 108 of file progress_reporter_base.h.

Referenced by SYMBOL_EDIT_FRAME::SYMBOL_EDIT_FRAME().

◆ KeepRefreshing()

bool PROGRESS_REPORTER_BASE::KeepRefreshing ( bool  aWait = false)
overridevirtualinherited

Update the UI dialog.

Warning
This should only be called from the main thread.
Returns
false if the user clicked Cancel.

Implements PROGRESS_REPORTER.

Definition at line 113 of file progress_reporter_base.cpp.

References PROGRESS_REPORTER_BASE::m_cancelled, PROGRESS_REPORTER_BASE::m_maxProgress, PROGRESS_REPORTER_BASE::m_progress, and PROGRESS_REPORTER_BASE::updateUI().

Referenced by PCB_EDIT_FRAME::GenIPC2581File(), and PCB_EDIT_FRAME::GenODBPPFiles().

◆ OnCancelClicked()

void DIALOG_PCM_PROGRESS::OnCancelClicked ( wxCommandEvent &  event)
overrideprotectedvirtual

◆ OnCloseClicked()

void DIALOG_PCM_PROGRESS::OnCloseClicked ( wxCommandEvent &  event)
overrideprotectedvirtual

◆ PCMReport()

void DIALOG_PCM_PROGRESS::PCMReport ( const wxString &  aText,
SEVERITY  aSeverity 
)

Safe to call from non-UI thread. Sets the download progress of the current zip entry.

Definition at line 66 of file dialog_pcm_progress.cpp.

References PROGRESS_REPORTER_BASE::m_mutex, and m_reports.

◆ Report()

void PROGRESS_REPORTER_BASE::Report ( const wxString &  aMessage)
overridevirtualinherited

Display aMessage in the progress bar dialog.

Implements PROGRESS_REPORTER.

Reimplemented in DIALOG_ERC, and BACKGROUND_JOB_REPORTER.

Definition at line 64 of file progress_reporter_base.cpp.

References PROGRESS_REPORTER_BASE::m_messageChanged, PROGRESS_REPORTER_BASE::m_mutex, and PROGRESS_REPORTER_BASE::m_rptMessage.

Referenced by PROGRESS_REPORTER_BASE::AdvancePhase().

◆ SetCurrentProgress()

void PROGRESS_REPORTER_BASE::SetCurrentProgress ( double  aProgress)
overridevirtualinherited

◆ SetDownloadProgress()

void DIALOG_PCM_PROGRESS::SetDownloadProgress ( uint64_t  aDownloaded,
uint64_t  aTotal 
)

Safe to call from non-UI thread. Sets the download prgress of the current package.

Definition at line 73 of file dialog_pcm_progress.cpp.

References m_downloaded, and m_downloadTotal.

◆ SetFinished()

void DIALOG_PCM_PROGRESS::SetFinished ( )

Definition at line 100 of file dialog_pcm_progress.cpp.

References m_finished.

◆ SetMaxProgress()

void PROGRESS_REPORTER_BASE::SetMaxProgress ( int  aMaxProgress)
overridevirtualinherited

Fix the value that gives the 100 percent progress bar length (inside the current virtual zone).

Implements PROGRESS_REPORTER.

Definition at line 73 of file progress_reporter_base.cpp.

References PROGRESS_REPORTER_BASE::m_maxProgress.

◆ SetNumPhases()

void PROGRESS_REPORTER_BASE::SetNumPhases ( int  aNumPhases)
overridevirtualinherited

Set the number of phases.

Implements PROGRESS_REPORTER.

Definition at line 92 of file progress_reporter_base.cpp.

References PROGRESS_REPORTER_BASE::m_numPhases.

Referenced by OnCancelClicked(), and BACKGROUND_JOB_REPORTER::SetNumPhases().

◆ SetPackageProgress()

void DIALOG_PCM_PROGRESS::SetPackageProgress ( uint64_t  aProgress,
uint64_t  aTotal 
)

Safe to call from non-UI thread. Advances to the next package.

Definition at line 86 of file dialog_pcm_progress.cpp.

References m_currentProgress, and m_currentProgressTotal.

Referenced by OnCancelClicked().

◆ SetTitle()

void PROGRESS_REPORTER_BASE::SetTitle ( const wxString &  aTitle)
inlineoverridevirtualinherited

Change the title displayed on the window caption.

Has meaning only for some reporters. Does nothing for others.

Warning
This should only be called from the main thread.

Implements PROGRESS_REPORTER.

Reimplemented in WX_PROGRESS_REPORTER.

Definition at line 106 of file progress_reporter_base.h.

◆ toKb()

uint64_t DIALOG_PCM_PROGRESS::toKb ( uint64_t  aValue)
staticprivate

Definition at line 80 of file dialog_pcm_progress.cpp.

Referenced by updateUI().

◆ updateUI()

Member Data Documentation

◆ m_appProgressIndicator

wxAppProgressIndicator DIALOG_PCM_PROGRESS::m_appProgressIndicator
private

Definition at line 82 of file dialog_pcm_progress.h.

Referenced by DIALOG_PCM_PROGRESS(), and updateUI().

◆ m_buttonCancel

wxButton* DIALOG_PCM_PROGRESS_BASE::m_buttonCancel
protectedinherited

◆ m_buttonClose

wxButton* DIALOG_PCM_PROGRESS_BASE::m_buttonClose
protectedinherited

◆ m_cancelled

◆ m_currentProgress

std::atomic_int64_t DIALOG_PCM_PROGRESS::m_currentProgress
private

Definition at line 73 of file dialog_pcm_progress.h.

Referenced by AdvancePhase(), SetPackageProgress(), and updateUI().

◆ m_currentProgressTotal

std::atomic_int64_t DIALOG_PCM_PROGRESS::m_currentProgressTotal
private

Definition at line 74 of file dialog_pcm_progress.h.

Referenced by SetPackageProgress(), and updateUI().

◆ m_disabler

wxWindowDisabler DIALOG_PCM_PROGRESS::m_disabler
private

Definition at line 80 of file dialog_pcm_progress.h.

◆ m_downloaded

std::atomic_int64_t DIALOG_PCM_PROGRESS::m_downloaded
private

Definition at line 70 of file dialog_pcm_progress.h.

Referenced by SetDownloadProgress(), and updateUI().

◆ m_downloadGauge

wxGauge* DIALOG_PCM_PROGRESS_BASE::m_downloadGauge
protectedinherited

◆ m_downloadText

wxStaticText* DIALOG_PCM_PROGRESS_BASE::m_downloadText
protectedinherited

◆ m_downloadTotal

std::atomic_int64_t DIALOG_PCM_PROGRESS::m_downloadTotal
private

Definition at line 71 of file dialog_pcm_progress.h.

Referenced by SetDownloadProgress(), and updateUI().

◆ m_finished

std::atomic_bool DIALOG_PCM_PROGRESS::m_finished
private

Definition at line 76 of file dialog_pcm_progress.h.

Referenced by OnCancelClicked(), SetFinished(), and updateUI().

◆ m_maxProgress

◆ m_messageChanged

std::atomic_bool PROGRESS_REPORTER_BASE::m_messageChanged
protectedinherited

◆ m_mutex

std::mutex PROGRESS_REPORTER_BASE::m_mutex
mutableprotectedinherited

◆ m_numPhases

std::atomic_int PROGRESS_REPORTER_BASE::m_numPhases
protectedinherited

◆ m_overallGauge

wxGauge* DIALOG_PCM_PROGRESS_BASE::m_overallGauge
protectedinherited

◆ m_panel2

wxPanel* DIALOG_PCM_PROGRESS_BASE::m_panel2
protectedinherited

◆ m_panelDownload

wxPanel* DIALOG_PCM_PROGRESS_BASE::m_panelDownload
protectedinherited

◆ m_phase

◆ m_progress

◆ m_reporter

WX_HTML_REPORT_BOX* DIALOG_PCM_PROGRESS_BASE::m_reporter
protectedinherited

◆ m_reports

std::vector< std::pair<wxString, SEVERITY> > DIALOG_PCM_PROGRESS::m_reports
private

Definition at line 78 of file dialog_pcm_progress.h.

Referenced by PCMReport(), and updateUI().

◆ m_rptMessage

wxString PROGRESS_REPORTER_BASE::m_rptMessage
protectedinherited

The documentation for this class was generated from the following files: