KiCad PCB EDA Suite
|
This implements all the tricky bits for thread safety, but the GUI is left to derived classes. More...
#include <progress_reporter_base.h>
Public Member Functions | |
PROGRESS_REPORTER_BASE (int aNumPhases) | |
PROGRESS_REPORTER_BASE (const PROGRESS_REPORTER_BASE &)=delete | |
virtual | ~PROGRESS_REPORTER_BASE () |
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 () override |
Use the next available 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 | |
virtual bool | updateUI ()=0 |
Protected Attributes | |
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 |
This implements all the tricky bits for thread safety, but the GUI is left to derived classes.
Definition at line 37 of file progress_reporter_base.h.
PROGRESS_REPORTER_BASE::PROGRESS_REPORTER_BASE | ( | int | aNumPhases | ) |
Definition at line 31 of file progress_reporter_base.cpp.
|
delete |
|
inlinevirtual |
Definition at line 44 of file progress_reporter_base.h.
|
overridevirtual |
Implements PROGRESS_REPORTER.
Definition at line 98 of file progress_reporter_base.cpp.
References m_numPhases.
|
overridevirtual |
Use the next available virtual zone of the dialog progress bar.
Implements PROGRESS_REPORTER.
Reimplemented in BACKGROUND_JOB_REPORTER, and DIALOG_PCM_PROGRESS.
Definition at line 50 of file progress_reporter_base.cpp.
References m_phase, and m_progress.
Referenced by BACKGROUND_JOB_REPORTER::AdvancePhase(), DIALOG_PCM_PROGRESS::AdvancePhase(), DIALOG_ERC::AdvancePhase(), AdvancePhase(), and DIALOG_DRC::AdvancePhase().
|
overridevirtual |
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 AdvancePhase(), and Report().
|
overridevirtual |
Increment the progress bar length (inside the current virtual zone).
Implements PROGRESS_REPORTER.
Definition at line 86 of file progress_reporter_base.cpp.
References m_progress.
|
overridevirtual |
Initialize the aPhase virtual zone of the dialog progress bar.
Implements PROGRESS_REPORTER.
Definition at line 43 of file progress_reporter_base.cpp.
References m_phase, and m_progress.
int PROGRESS_REPORTER_BASE::CurrentProgress | ( | ) | const |
Definition at line 104 of file progress_reporter_base.cpp.
References m_maxProgress, m_numPhases, m_phase, and m_progress.
Referenced by WX_PROGRESS_REPORTER::updateUI(), and GAUGE_PROGRESS_REPORTER::updateUI().
|
inlineoverridevirtual |
Implements PROGRESS_REPORTER.
Definition at line 108 of file progress_reporter_base.h.
Referenced by SYMBOL_EDIT_FRAME::SYMBOL_EDIT_FRAME().
|
overridevirtual |
Update the UI dialog.
Implements PROGRESS_REPORTER.
Definition at line 113 of file progress_reporter_base.cpp.
References m_cancelled, m_maxProgress, m_progress, and updateUI().
Referenced by PCB_EDIT_FRAME::GenIPC2581File().
|
overridevirtual |
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 m_messageChanged, m_mutex, and m_rptMessage.
Referenced by AdvancePhase().
|
overridevirtual |
Set the progress value to aProgress (0..1).
Implements PROGRESS_REPORTER.
Reimplemented in CONSOLE_PROGRESS_REPORTER, and CONSOLE_PROGRESS_REPORTER.
Definition at line 79 of file progress_reporter_base.cpp.
References m_maxProgress, and m_progress.
Referenced by DIALOG_ERC::AdvancePhase(), DIALOG_DRC::AdvancePhase(), and CONSOLE_PROGRESS_REPORTER::SetCurrentProgress().
|
overridevirtual |
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 m_maxProgress.
|
overridevirtual |
Set the number of phases.
Implements PROGRESS_REPORTER.
Definition at line 92 of file progress_reporter_base.cpp.
References m_numPhases.
Referenced by DIALOG_PCM_PROGRESS::OnCancelClicked(), and BACKGROUND_JOB_REPORTER::SetNumPhases().
|
inlineoverridevirtual |
Change the title displayed on the window caption.
Has meaning only for some reporters. Does nothing for others.
Implements PROGRESS_REPORTER.
Reimplemented in WX_PROGRESS_REPORTER.
Definition at line 106 of file progress_reporter_base.h.
|
protectedpure virtual |
Implemented in DIALOG_ERC, BACKGROUND_JOB_REPORTER, WX_PROGRESS_REPORTER, GAUGE_PROGRESS_REPORTER, DIALOG_PCM_PROGRESS, DIALOG_DRC, CONSOLE_PROGRESS_REPORTER, and CONSOLE_PROGRESS_REPORTER.
Referenced by KeepRefreshing().
|
protected |
Definition at line 123 of file progress_reporter_base.h.
Referenced by KeepRefreshing(), DIALOG_DRC::OnCancelClick(), DIALOG_ERC::OnCancelClick(), DIALOG_PCM_PROGRESS::OnCancelClicked(), DIALOG_DRC::OnRunDRCClick(), DIALOG_ERC::OnRunERCClick(), DIALOG_ERC::updateUI(), and DIALOG_DRC::updateUI().
|
protected |
Definition at line 122 of file progress_reporter_base.h.
Referenced by CurrentProgress(), KeepRefreshing(), DIALOG_PCM_PROGRESS::OnCloseClicked(), SetCurrentProgress(), SetMaxProgress(), DIALOG_DRC::updateUI(), and CONSOLE_PROGRESS_REPORTER::updateUI().
|
protected |
Definition at line 129 of file progress_reporter_base.h.
Referenced by Report(), and WX_PROGRESS_REPORTER::updateUI().
|
mutableprotected |
Definition at line 118 of file progress_reporter_base.h.
Referenced by DIALOG_PCM_PROGRESS::PCMReport(), Report(), WX_PROGRESS_REPORTER::updateUI(), and DIALOG_PCM_PROGRESS::updateUI().
|
protected |
Definition at line 120 of file progress_reporter_base.h.
Referenced by AddPhases(), CurrentProgress(), BACKGROUND_JOB_REPORTER::SetNumPhases(), SetNumPhases(), and DIALOG_PCM_PROGRESS::updateUI().
|
protected |
Definition at line 119 of file progress_reporter_base.h.
Referenced by BACKGROUND_JOB_REPORTER::AdvancePhase(), AdvancePhase(), BeginPhase(), CurrentProgress(), and DIALOG_PCM_PROGRESS::updateUI().
|
protected |
Definition at line 121 of file progress_reporter_base.h.
Referenced by AdvancePhase(), AdvanceProgress(), BeginPhase(), CurrentProgress(), KeepRefreshing(), DIALOG_PCM_PROGRESS::OnCloseClicked(), SetCurrentProgress(), DIALOG_DRC::updateUI(), and CONSOLE_PROGRESS_REPORTER::updateUI().
|
protected |
Definition at line 116 of file progress_reporter_base.h.
Referenced by Report(), WX_PROGRESS_REPORTER::updateUI(), and CONSOLE_PROGRESS_REPORTER::updateUI().