|
KiCad PCB EDA Suite
|
One background git transfer owned by the window that started it: the cancellation, whether one is running, and the owner's lifetime. More...
#include <git_transfer.h>
Public Member Functions | |
| KIGIT_STATUS_REPORTER (const std::weak_ptr< bool > &aAlive, std::function< void(const wxString &)> aShow) | |
| 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 |
| virtual void | SetIndeterminate (bool aIndeterminate) |
| Ask for an indeterminate (pulsing) display, for work whose total is not known yet. | |
Protected Member Functions | |
| bool | updateUI () override |
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 Attributes | |
| std::weak_ptr< bool > | m_alive |
| std::function< void(const wxString &)> | m_show |
| wxString | m_lastShown |
One background git transfer owned by the window that started it: the cancellation, whether one is running, and the owner's lifetime.
Push, pull, fetch and force push each used to keep this in a shape of their own, and the disagreement is how one of them came to read a finished thread as a running one. The transfer itself runs on a thread the orphan registry owns, so closing the window does not wait for the socket, and the completion is delivered only while this object still exists. A progress reporter that writes a line of text instead of opening a dialog over the editor. libgit2's callbacks drive it from a worker, so each line is handed to the UI thread and dropped once the window that started the transfer has gone.
aShow must be safe to copy and destroy on a worker, so it may hold a raw window pointer but never a wxWeakRef. It runs only on the UI thread and only while aAlive holds.
Definition at line 78 of file git_transfer.h.
| KIGIT_STATUS_REPORTER::KIGIT_STATUS_REPORTER | ( | const std::weak_ptr< bool > & | aAlive, |
| std::function< void(const wxString &)> | aShow ) |
Definition at line 60 of file git_transfer.cpp.
References m_alive, m_show, move, and PROGRESS_REPORTER_BASE::PROGRESS_REPORTER_BASE().
|
overridevirtualinherited |
Implements PROGRESS_REPORTER.
Definition at line 94 of file progress_reporter_base.cpp.
References m_numPhases.
Referenced by PCB_EDIT_FRAME::OpenProjectFiles().
|
overridevirtualinherited |
Use the next available virtual zone of the dialog progress bar.
Implements PROGRESS_REPORTER.
Reimplemented in BACKGROUND_JOB_REPORTER, DIALOG_PCM_PROGRESS, and JOBS_PROGRESS_REPORTER.
Definition at line 46 of file progress_reporter_base.cpp.
References m_phase, and m_progress.
Referenced by BACKGROUND_JOB_REPORTER::AdvancePhase(), DIALOG_DRC::AdvancePhase(), DIALOG_DRC_RULE_EDITOR::AdvancePhase(), DIALOG_ERC::AdvancePhase(), DIALOG_PCM_PROGRESS::AdvancePhase(), AdvancePhase(), and PCB_EDIT_FRAME::OpenProjectFiles().
|
overridevirtualinherited |
Use the next available virtual zone of the dialog progress bar and updates the message.
Implements PROGRESS_REPORTER.
Reimplemented in DIALOG_DRC, DIALOG_DRC_RULE_EDITOR, and DIALOG_ERC.
Definition at line 53 of file progress_reporter_base.cpp.
References AdvancePhase(), and Report().
|
overridevirtualinherited |
Increment the progress bar length (inside the current virtual zone).
Implements PROGRESS_REPORTER.
Definition at line 82 of file progress_reporter_base.cpp.
References m_progress.
|
overridevirtualinherited |
Initialize the aPhase virtual zone of the dialog progress bar.
Implements PROGRESS_REPORTER.
Definition at line 39 of file progress_reporter_base.cpp.
References m_phase, and m_progress.
|
inherited |
Definition at line 100 of file progress_reporter_base.cpp.
References m_maxProgress, m_numPhases, m_phase, and m_progress.
Referenced by GAUGE_PROGRESS_REPORTER::updateUI(), and WX_PROGRESS_REPORTER::updateUI().
|
inlineoverridevirtualinherited |
Implements PROGRESS_REPORTER.
Definition at line 104 of file progress_reporter_base.h.
References m_cancelled.
|
overridevirtualinherited |
Update the UI dialog.
Implements PROGRESS_REPORTER.
Definition at line 109 of file progress_reporter_base.cpp.
References m_cancelled, m_maxProgress, m_progress, and updateUI().
Referenced by SCH_EDIT_FRAME::importFile(), PCB_EDIT_FRAME::OpenProjectFiles(), and SCH_EDIT_FRAME::OpenProjectFiles().
|
overridevirtualinherited |
Display aMessage in the progress bar dialog.
Implements PROGRESS_REPORTER.
Reimplemented in BACKGROUND_JOB_REPORTER, DIALOG_ERC, and JOBS_PROGRESS_REPORTER.
Definition at line 60 of file progress_reporter_base.cpp.
References m_messageChanged, m_mutex, and m_rptMessage.
Referenced by AdvancePhase(), SCH_EDIT_FRAME::importFile(), and SCH_EDIT_FRAME::OpenProjectFiles().
|
overridevirtualinherited |
Set the progress value to aProgress (0..1).
Implements PROGRESS_REPORTER.
Reimplemented in BACKGROUND_JOB_REPORTER, CONSOLE_PROGRESS_REPORTER, and CONSOLE_PROGRESS_REPORTER.
Definition at line 75 of file progress_reporter_base.cpp.
References m_maxProgress, and m_progress.
Referenced by DIALOG_DRC::AdvancePhase(), DIALOG_DRC_RULE_EDITOR::AdvancePhase(), DIALOG_ERC::AdvancePhase(), BACKGROUND_JOB_REPORTER::SetCurrentProgress(), and CONSOLE_PROGRESS_REPORTER::SetCurrentProgress().
|
inlinevirtualinherited |
Ask for an indeterminate (pulsing) display, for work whose total is not known yet.
Safe to call from a worker thread. Implementations record the request and apply it on the next UI refresh.
Reimplemented in WX_PROGRESS_REPORTER.
Definition at line 79 of file progress_reporter.h.
|
overridevirtualinherited |
Fix the value that gives the 100 percent progress bar length (inside the current virtual zone).
Implements PROGRESS_REPORTER.
Definition at line 69 of file progress_reporter_base.cpp.
References m_maxProgress.
|
overridevirtualinherited |
Set the number of phases.
Implements PROGRESS_REPORTER.
Definition at line 88 of file progress_reporter_base.cpp.
References m_numPhases.
Referenced by DIALOG_PCM_PROGRESS::OnCancelClicked(), and BACKGROUND_JOB_REPORTER::SetNumPhases().
|
inlineoverridevirtualinherited |
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 102 of file progress_reporter_base.h.
|
overrideprotectedvirtual |
Implements PROGRESS_REPORTER_BASE.
Definition at line 69 of file git_transfer.cpp.
References KIGIT::CallIfAlive(), m_alive, m_lastShown, PROGRESS_REPORTER_BASE::m_mutex, PROGRESS_REPORTER_BASE::m_rptMessage, m_show, and text.
|
private |
Definition at line 87 of file git_transfer.h.
Referenced by KIGIT_STATUS_REPORTER(), and updateUI().
|
protectedinherited |
Definition at line 119 of file progress_reporter_base.h.
Referenced by BACKGROUND_JOB_REPORTER::Cancel(), IsCancelled(), KeepRefreshing(), DIALOG_DRC::OnCancelClick(), DIALOG_ERC::OnCancelClick(), DIALOG_PCM_PROGRESS::OnCancelClicked(), DIALOG_DRC::OnRunDRCClick(), DIALOG_ERC::OnRunERCClick(), PROGRESS_REPORTER_BASE(), BACKGROUND_JOB_REPORTER::updateUI(), DIALOG_DRC::updateUI(), DIALOG_DRC_RULE_EDITOR::updateUI(), DIALOG_ERC::updateUI(), and WX_PROGRESS_REPORTER::updateUI().
|
private |
Definition at line 89 of file git_transfer.h.
Referenced by updateUI().
|
protectedinherited |
Definition at line 118 of file progress_reporter_base.h.
Referenced by CurrentProgress(), KeepRefreshing(), DIALOG_PCM_PROGRESS::OnCloseClicked(), PROGRESS_REPORTER_BASE(), SetCurrentProgress(), SetMaxProgress(), CONSOLE_PROGRESS_REPORTER::updateUI(), DIALOG_DRC::updateUI(), and WX_PROGRESS_REPORTER::updateUI().
|
protectedinherited |
Definition at line 123 of file progress_reporter_base.h.
Referenced by PROGRESS_REPORTER_BASE(), Report(), and WX_PROGRESS_REPORTER::updateUI().
|
mutableprotectedinherited |
Definition at line 114 of file progress_reporter_base.h.
Referenced by DIALOG_PCM_PROGRESS::PCMReport(), Report(), DIALOG_PCM_PROGRESS::updateUI(), KIGIT_STATUS_REPORTER::updateUI(), and WX_PROGRESS_REPORTER::updateUI().
|
protectedinherited |
Definition at line 116 of file progress_reporter_base.h.
Referenced by AddPhases(), CurrentProgress(), PROGRESS_REPORTER_BASE(), BACKGROUND_JOB_REPORTER::SetNumPhases(), SetNumPhases(), DIALOG_PCM_PROGRESS::updateUI(), and WX_PROGRESS_REPORTER::updateUI().
|
protectedinherited |
Definition at line 115 of file progress_reporter_base.h.
Referenced by BACKGROUND_JOB_REPORTER::AdvancePhase(), AdvancePhase(), BeginPhase(), CurrentProgress(), PROGRESS_REPORTER_BASE(), DIALOG_PCM_PROGRESS::updateUI(), and WX_PROGRESS_REPORTER::updateUI().
|
protectedinherited |
Definition at line 117 of file progress_reporter_base.h.
Referenced by AdvancePhase(), AdvanceProgress(), BeginPhase(), CurrentProgress(), KeepRefreshing(), DIALOG_PCM_PROGRESS::OnCloseClicked(), PROGRESS_REPORTER_BASE(), SetCurrentProgress(), CONSOLE_PROGRESS_REPORTER::updateUI(), DIALOG_DRC::updateUI(), and WX_PROGRESS_REPORTER::updateUI().
|
protectedinherited |
Definition at line 112 of file progress_reporter_base.h.
Referenced by Report(), CONSOLE_PROGRESS_REPORTER::updateUI(), KIGIT_STATUS_REPORTER::updateUI(), and WX_PROGRESS_REPORTER::updateUI().
|
private |
Definition at line 88 of file git_transfer.h.
Referenced by KIGIT_STATUS_REPORTER(), and updateUI().