KiCad PCB EDA Suite
|
Multi-thread safe progress reporter dialog, intended for use of tasks that parallel reporting back of work status. More...
#include <wx_progress_reporters.h>
Public Member Functions | |
WX_PROGRESS_REPORTER (wxWindow *aParent, const wxString &aTitle, int aNumPhases, bool aCanAbort=true, bool aReserveSpaceForMessage=true) | |
The PROGRESS_REPORTER will stay on top of aParent. | |
~WX_PROGRESS_REPORTER () | |
void | SetTitle (const wxString &aTitle) override |
Change the title displayed on the window caption. | |
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. | |
bool | IsCancelled () const override |
int | CurrentProgress () const |
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 |
Private Member Functions | |
bool | updateUI () override |
Private Attributes | |
wxAppProgressIndicator | m_appProgressIndicator |
int | m_messageWidth |
Multi-thread safe progress reporter dialog, intended for use of tasks that parallel reporting back of work status.
Definition at line 42 of file wx_progress_reporters.h.
WX_PROGRESS_REPORTER::WX_PROGRESS_REPORTER | ( | wxWindow * | aParent, |
const wxString & | aTitle, | ||
int | aNumPhases, | ||
bool | aCanAbort = true , |
||
bool | aReserveSpaceForMessage = true |
||
) |
The PROGRESS_REPORTER will stay on top of aParent.
The style is wxPD_AUTO_HIDE | wxPD_CAN_ABORT | wxPD_ELAPSED_TIME.
aParent | is the wxDialog of Frame that manage this. |
aTitle | is the dialog progress title |
aNumPhases | is the number of "virtual sections" of the progress bar aNumPhases = 1 is the usual progress bar aNumPhases = n creates n virtual progress bar zones: a 0 to 100 percent width of a virtual zone fills 0 to 1/n progress bar full size of the nth virtual zone index |
aCanAbort | is true if the abort button should be shown |
aReserveSpaceForMessage | will ensure that the dialog is laid out for status messages, preventing layout issues on Windows when reporting a message after the initial layout |
Definition at line 32 of file wx_progress_reporters.cpp.
References m_appProgressIndicator.
WX_PROGRESS_REPORTER::~WX_PROGRESS_REPORTER | ( | ) |
Definition at line 53 of file wx_progress_reporters.cpp.
|
overridevirtualinherited |
Implements PROGRESS_REPORTER.
Definition at line 98 of file progress_reporter_base.cpp.
References PROGRESS_REPORTER_BASE::m_numPhases.
|
overridevirtualinherited |
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 PROGRESS_REPORTER_BASE::m_phase, and PROGRESS_REPORTER_BASE::m_progress.
Referenced by BACKGROUND_JOB_REPORTER::AdvancePhase(), DIALOG_PCM_PROGRESS::AdvancePhase(), DIALOG_ERC::AdvancePhase(), PROGRESS_REPORTER_BASE::AdvancePhase(), and DIALOG_DRC::AdvancePhase().
|
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().
|
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.
|
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.
|
inherited |
Definition at line 104 of file progress_reporter_base.cpp.
References PROGRESS_REPORTER_BASE::m_maxProgress, PROGRESS_REPORTER_BASE::m_numPhases, PROGRESS_REPORTER_BASE::m_phase, and PROGRESS_REPORTER_BASE::m_progress.
Referenced by updateUI(), and GAUGE_PROGRESS_REPORTER::updateUI().
|
inlineoverridevirtualinherited |
Implements PROGRESS_REPORTER.
Definition at line 108 of file progress_reporter_base.h.
Referenced by SYMBOL_EDIT_FRAME::SYMBOL_EDIT_FRAME().
|
overridevirtualinherited |
Update the UI dialog.
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().
|
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().
|
overridevirtualinherited |
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 PROGRESS_REPORTER_BASE::m_maxProgress, and PROGRESS_REPORTER_BASE::m_progress.
Referenced by DIALOG_ERC::AdvancePhase(), DIALOG_DRC::AdvancePhase(), and CONSOLE_PROGRESS_REPORTER::SetCurrentProgress().
|
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.
|
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 DIALOG_PCM_PROGRESS::OnCancelClicked(), and BACKGROUND_JOB_REPORTER::SetNumPhases().
|
inlineoverridevirtual |
Change the title displayed on the window caption.
Reimplemented from PROGRESS_REPORTER_BASE.
Definition at line 67 of file wx_progress_reporters.h.
|
overrideprivatevirtual |
Implements PROGRESS_REPORTER_BASE.
Definition at line 58 of file wx_progress_reporters.cpp.
References PROGRESS_REPORTER_BASE::CurrentProgress(), PROGRESS_REPORTER_BASE::m_messageChanged, m_messageWidth, PROGRESS_REPORTER_BASE::m_mutex, and PROGRESS_REPORTER_BASE::m_rptMessage.
|
private |
Definition at line 76 of file wx_progress_reporters.h.
Referenced by WX_PROGRESS_REPORTER().
|
protectedinherited |
Definition at line 123 of file progress_reporter_base.h.
Referenced by PROGRESS_REPORTER_BASE::KeepRefreshing(), DIALOG_DRC::OnCancelClick(), DIALOG_ERC::OnCancelClick(), DIALOG_PCM_PROGRESS::OnCancelClicked(), DIALOG_DRC::OnRunDRCClick(), DIALOG_ERC::OnRunERCClick(), DIALOG_ERC::updateUI(), and DIALOG_DRC::updateUI().
|
protectedinherited |
Definition at line 122 of file progress_reporter_base.h.
Referenced by PROGRESS_REPORTER_BASE::CurrentProgress(), PROGRESS_REPORTER_BASE::KeepRefreshing(), DIALOG_PCM_PROGRESS::OnCloseClicked(), PROGRESS_REPORTER_BASE::SetCurrentProgress(), PROGRESS_REPORTER_BASE::SetMaxProgress(), DIALOG_DRC::updateUI(), and CONSOLE_PROGRESS_REPORTER::updateUI().
|
protectedinherited |
Definition at line 129 of file progress_reporter_base.h.
Referenced by PROGRESS_REPORTER_BASE::Report(), and updateUI().
|
private |
Definition at line 77 of file wx_progress_reporters.h.
Referenced by updateUI().
|
mutableprotectedinherited |
Definition at line 118 of file progress_reporter_base.h.
Referenced by DIALOG_PCM_PROGRESS::PCMReport(), PROGRESS_REPORTER_BASE::Report(), updateUI(), and DIALOG_PCM_PROGRESS::updateUI().
|
protectedinherited |
Definition at line 120 of file progress_reporter_base.h.
Referenced by PROGRESS_REPORTER_BASE::AddPhases(), PROGRESS_REPORTER_BASE::CurrentProgress(), BACKGROUND_JOB_REPORTER::SetNumPhases(), PROGRESS_REPORTER_BASE::SetNumPhases(), and DIALOG_PCM_PROGRESS::updateUI().
|
protectedinherited |
Definition at line 119 of file progress_reporter_base.h.
Referenced by BACKGROUND_JOB_REPORTER::AdvancePhase(), PROGRESS_REPORTER_BASE::AdvancePhase(), PROGRESS_REPORTER_BASE::BeginPhase(), PROGRESS_REPORTER_BASE::CurrentProgress(), and DIALOG_PCM_PROGRESS::updateUI().
|
protectedinherited |
Definition at line 121 of file progress_reporter_base.h.
Referenced by PROGRESS_REPORTER_BASE::AdvancePhase(), PROGRESS_REPORTER_BASE::AdvanceProgress(), PROGRESS_REPORTER_BASE::BeginPhase(), PROGRESS_REPORTER_BASE::CurrentProgress(), PROGRESS_REPORTER_BASE::KeepRefreshing(), DIALOG_PCM_PROGRESS::OnCloseClicked(), PROGRESS_REPORTER_BASE::SetCurrentProgress(), DIALOG_DRC::updateUI(), and CONSOLE_PROGRESS_REPORTER::updateUI().
|
protectedinherited |
Definition at line 116 of file progress_reporter_base.h.
Referenced by PROGRESS_REPORTER_BASE::Report(), updateUI(), and CONSOLE_PROGRESS_REPORTER::updateUI().