libpappsomspp
Library for mass spectrometry
uimonitortext.cpp
Go to the documentation of this file.
1 /**
2  * \file pappsomspp/processing/uimonitor/uimonitortext.cpp
3  * \date 14/5/2021
4  * \author Olivier Langella
5  * \brief simle text monitor implementation of the User Interface Monitor
6  **/
7 
8 /*******************************************************************************
9  * Copyright (c) 2021 Olivier Langella
10  *<Olivier.Langella@universite-paris-saclay.fr>.
11  *
12  * This file is part of the PAPPSOms++ library.
13  *
14  * PAPPSOms++ is free software: you can redistribute it and/or modify
15  * it under the terms of the GNU General Public License as published by
16  * the Free Software Foundation, either version 3 of the License, or
17  * (at your option) any later version.
18  *
19  * PAPPSOms++ is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License
25  * along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
26  *
27  ******************************************************************************/
28 
29 #include <QObject>
30 
31 #include "uimonitortext.h"
32 
33 using namespace pappso;
34 
35 UiMonitorText::UiMonitorText(QTextStream &output_stream)
36  : m_outputStream(output_stream)
37 {
38 }
39 
41 {
42 }
43 
44 bool
46 {
47  // by defaut not interruptible
48  return false;
49 }
50 
51 void
52 pappso::UiMonitorText::setTitle(const QString &title)
53 {
54  m_outputStream << title << Qt::endl;
55  m_outputStream.flush();
56 }
57 
58 void
59 pappso::UiMonitorText::setStatus(const QString &status)
60 {
61  m_outputStream << status << Qt::endl;
62  m_outputStream.flush();
63 }
64 
65 void
67 {
68  m_count++;
69  if(m_count <= m_totalSteps)
70  {
71  m_outputStream << m_count << " ";
72  }
73  else
74  {
75  m_outputStream << QObject::tr("%1 on %2").arg(m_count).arg(m_totalSteps)
76  << " ";
77  }
78  m_outputStream.flush();
79 }
80 
81 void
83 {
84  m_outputStream << text;
85  m_outputStream.flush();
86 }
87 
88 void
89 pappso::UiMonitorText::setTotalSteps(std::size_t total_number_of_steps)
90 {
91  UiMonitorInterface::setTotalSteps(total_number_of_steps);
92  m_count = 0;
93 }
virtual void setTotalSteps(std::size_t total_number_of_steps)
use it if the number of steps is known in an algorithm the total number of steps is usefull to report...
virtual void count() override
count steps report when a step is computed in an algorithm
virtual void setStatus(const QString &status) override
current status of the process
virtual void setTitle(const QString &title) override
current kind of process running
virtual bool shouldIstop() override
should the procces be stopped ? If true, then cancel process Use this function at strategic point of ...
virtual void setTotalSteps(std::size_t total_number_of_steps)
use it if the number of steps is known in an algorithm the total number of steps is usefull to report...
virtual void appendText(const QString &text) override
append a text to a long report
UiMonitorText(QTextStream &output_stream)
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition: aa.cpp:39
simle text monitor implementation of the User Interface Monitor