ProgressDisplay.cpp

Go to the documentation of this file.
00001 // -*- c-basic-offset: 4 -*-
00026 #include "ProgressDisplay.h"
00027 
00028 namespace AppBase
00029 {
00030 
00031 void ProgressDisplay::setMessage(const std::string& message, const std::string& filename)
00032 {
00033     m_message = message;
00034     m_filename = filename;
00035     updateProgressDisplay();
00036 }
00037 
00038 void ProgressDisplay::taskFinished()
00039 {
00040     setMessage("");
00041 }
00042 
00043 bool ProgressDisplay::updateDisplay()
00044 {
00045     return !m_canceled;
00046 }
00047 
00048 bool ProgressDisplay::updateDisplay(const std::string& message)
00049 {
00050     setMessage(message);
00051     return !m_canceled;
00052 }
00053 
00054 bool ProgressDisplay::updateDisplayValue()
00055 {
00056     if (m_progress < m_maximum)
00057     {
00058         ++m_progress;
00059     };
00060     updateProgressDisplay();
00061     return !m_canceled;
00062 }
00063 
00064 void ProgressDisplay::setMaximum(int newMaximum)
00065 {
00066     m_maximum = newMaximum;
00067     if (m_progress > m_maximum)
00068     {
00069         m_progress = m_maximum;
00070     };
00071 }
00072 
00073 bool ProgressDisplay::wasCancelled()
00074 {
00075     return m_canceled;
00076 }
00077 
00078 void StreamProgressDisplay::updateProgressDisplay()
00079 {
00080     // TODO: check for Ctrl-C then cancelTask() ?
00081     if (!m_message.empty())
00082     {
00083         // don't print empty messages
00084         if (m_filename.empty())
00085         {
00086             m_stream << m_message << std::endl;
00087         }
00088         else
00089         {
00090             m_stream << m_message << " " << m_filename << std::endl;
00091         }
00092         m_stream.flush();
00093     };
00094 }
00095 
00096 }; //namespace

Generated on 29 Aug 2015 for Hugintrunk by  doxygen 1.4.7