ProgressPrinter.cpp
Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Sonic Visualiser
5  An audio file viewer and annotation editor.
6  Centre for Digital Music, Queen Mary, University of London.
7  This file copyright 2007 QMUL.
8 
9  This program is free software; you can redistribute it and/or
10  modify it under the terms of the GNU General Public License as
11  published by the Free Software Foundation; either version 2 of the
12  License, or (at your option) any later version. See the file
13  COPYING included with this distribution for more information.
14 */
15 
16 #include "ProgressPrinter.h"
17 
18 #include <iostream>
19 
20 #include "Debug.h"
21 
22 ProgressPrinter::ProgressPrinter(QString message, QObject *parent) :
23  ProgressReporter(parent),
24  m_prefix(message),
25  m_lastProgress(0),
26  m_definite(true)
27 {
28  if (m_prefix.length() > 70) {
29  m_prefix = m_prefix.left(70) + "...";
30  }
31 }
32 
34 {
35  if (m_lastProgress > 0 && m_lastProgress != 100) {
36  cerr << "\r\n";
37  }
38 // cerr << "(progress printer dtor)" << endl;
39 }
40 
41 bool
43 {
44  return m_definite;
45 }
46 
47 void
49 {
50  m_definite = definite;
51 }
52 
53 void
55 {
56  m_prefix = message;
57  if (m_prefix.length() > 70) {
58  m_prefix = m_prefix.left(70) + "...";
59  }
60 }
61 
62 void
64 {
65  cerr << "\r"
66  << m_prefix
67  << (m_prefix == "" ? "" : " ")
68  << "Done" << endl;
69 }
70 
71 void
73 {
74  if (progress == m_lastProgress) return;
75  cerr << "\r"
76  << m_prefix
77  << (m_prefix == "" ? "" : " ");
78  if (m_definite) {
79  cerr << progress << "%";
80  } else {
81  cerr << "|/-\\"[progress % 4];
82  }
83  m_lastProgress = progress;
84 }
85 
void setMessage(QString) override
void setProgress(int) override
bool isDefinite() const override
ProgressPrinter(QString message, QObject *parent=0)
virtual void done()
void setDefinite(bool definite) override
virtual ~ProgressPrinter()