Scroom  0.14
ProgressBarManager Class Reference

#include <progressbarmanager.hh>

Inheritance diagram for ProgressBarManager:
Inheritance graph
Collaboration diagram for ProgressBarManager:
Collaboration graph

Public Types

using Ptr = boost::shared_ptr< ProgressBarManager >
 
- Public Types inherited from ProgressInterface
using Ptr = boost::shared_ptr< ProgressInterface >
 
using WeakPtr = boost::weak_ptr< ProgressInterface >
 

Public Member Functions

 ~ProgressBarManager () override
 
 ProgressBarManager (const ProgressBarManager &)=delete
 
 ProgressBarManager (ProgressBarManager &&)=delete
 
ProgressBarManager operator= (const ProgressBarManager &)=delete
 
ProgressBarManager operator= (ProgressBarManager &&)=delete
 
void setProgressBar (GtkProgressBar *progressBar)
 
void setIdle () override
 
void setWaiting (double progress=0.0) override
 
void setWorking (double progress) override
 
void setFinished () override
 

Static Public Member Functions

static Ptr create (GtkProgressBar *progressBar=nullptr)
 

Private Member Functions

 ProgressBarManager (GtkProgressBar *progressBar)
 
void stopWaiting ()
 
void startWaiting ()
 

Private Attributes

GtkProgressBar * progressBar
 
bool isWaiting {false}
 

Member Typedef Documentation

◆ Ptr

using ProgressBarManager::Ptr = boost::shared_ptr<ProgressBarManager>

Constructor & Destructor Documentation

◆ ProgressBarManager() [1/3]

ProgressBarManager::ProgressBarManager ( GtkProgressBar *  progressBar)
explicitprivate
110  : progressBar(progressBar_)
111 
112 {
113 }

Referenced by create().

Here is the caller graph for this function:

◆ ~ProgressBarManager()

ProgressBarManager::~ProgressBarManager ( )
override
120 { stopWaiting(); }
Here is the call graph for this function:

◆ ProgressBarManager() [2/3]

ProgressBarManager::ProgressBarManager ( const ProgressBarManager )
delete

◆ ProgressBarManager() [3/3]

ProgressBarManager::ProgressBarManager ( ProgressBarManager &&  )
delete

Member Function Documentation

◆ create()

ProgressBarManager::Ptr ProgressBarManager::create ( GtkProgressBar *  progressBar = nullptr)
static
116 {
117  return Ptr(new ProgressBarManager(progressBar));
118 }
Here is the call graph for this function:

◆ operator=() [1/2]

ProgressBarManager ProgressBarManager::operator= ( const ProgressBarManager )
delete

◆ operator=() [2/2]

ProgressBarManager ProgressBarManager::operator= ( ProgressBarManager &&  )
delete

◆ setFinished()

void ProgressBarManager::setFinished ( )
overridevirtual

Implements ProgressInterface.

161 { setIdle(); }
Here is the call graph for this function:

◆ setIdle()

void ProgressBarManager::setIdle ( )
overridevirtual

Implements ProgressInterface.

150 { setWorking(0.0); }

Referenced by setFinished().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setProgressBar()

void ProgressBarManager::setProgressBar ( GtkProgressBar *  progressBar)
123 {
124  stopWaiting();
125  progressBar = progressBar_;
126 }
Here is the call graph for this function:

◆ setWaiting()

void ProgressBarManager::setWaiting ( double  progress = 0.0)
overridevirtual

Implements ProgressInterface.

152 { startWaiting(); }
Here is the call graph for this function:

◆ setWorking()

void ProgressBarManager::setWorking ( double  progress)
overridevirtual

Implements ProgressInterface.

155 {
156  stopWaiting();
157 
158  Scroom::GtkHelpers::sync_on_ui_thread([=] { gtk_progress_bar_set_fraction(progressBar, progress); });
159 }

Referenced by setIdle().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ startWaiting()

void ProgressBarManager::startWaiting ( )
private
129 {
130  if(!isWaiting)
131  {
132  // Start pulsing
133  instance()->start(progressBar);
134  isWaiting = true;
135  }
136 }

Referenced by setWaiting().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stopWaiting()

void ProgressBarManager::stopWaiting ( )
private
139 {
140  if(isWaiting)
141  {
142  // Stop pulsing
143  instance()->stop(progressBar);
144  isWaiting = false;
145  }
146 }

Referenced by setProgressBar(), setWorking(), and ~ProgressBarManager().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ isWaiting

bool ProgressBarManager::isWaiting {false}
private

Referenced by startWaiting(), and stopWaiting().

◆ progressBar

GtkProgressBar* ProgressBarManager::progressBar
private

The documentation for this class was generated from the following files:
ProgressBarManager::progressBar
GtkProgressBar * progressBar
Definition: progressbarmanager.hh:20
ProgressBarManager::setWorking
void setWorking(double progress) override
Definition: progressbarmanager.cc:154
Scroom::GtkHelpers::sync_on_ui_thread
void sync_on_ui_thread(T f)
Definition: gtk-helpers.hh:59
ProgressBarManager::stopWaiting
void stopWaiting()
Definition: progressbarmanager.cc:138
ProgressBarManager::setIdle
void setIdle() override
Definition: progressbarmanager.cc:150
ProgressBarManager::Ptr
boost::shared_ptr< ProgressBarManager > Ptr
Definition: progressbarmanager.hh:17
anonymous_namespace{progressbarmanager.cc}::instance
ProgressBarPulser::Ptr instance()
Definition: progressbarmanager.cc:43
ProgressBarManager::ProgressBarManager
ProgressBarManager(GtkProgressBar *progressBar)
Definition: progressbarmanager.cc:109
ProgressBarManager::startWaiting
void startWaiting()
Definition: progressbarmanager.cc:128
ProgressBarManager::isWaiting
bool isWaiting
Definition: progressbarmanager.hh:21