annotate base/ProgressPrinter.cpp @ 808:67003fb58ba4

Merge from branch "qt5". This revision actually builds with Qt4 (late releases) or Qt5, though it will warn on configure with Qt4.
author Chris Cannam
date Tue, 14 May 2013 12:36:05 +0100
parents 076dcd2ce209
children e802e550a1f2
rev   line source
Chris@392 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@392 2
Chris@392 3 /*
Chris@392 4 Sonic Visualiser
Chris@392 5 An audio file viewer and annotation editor.
Chris@392 6 Centre for Digital Music, Queen Mary, University of London.
Chris@392 7 This file copyright 2007 QMUL.
Chris@392 8
Chris@392 9 This program is free software; you can redistribute it and/or
Chris@392 10 modify it under the terms of the GNU General Public License as
Chris@392 11 published by the Free Software Foundation; either version 2 of the
Chris@392 12 License, or (at your option) any later version. See the file
Chris@392 13 COPYING included with this distribution for more information.
Chris@392 14 */
Chris@392 15
Chris@392 16 #include "ProgressPrinter.h"
Chris@392 17
Chris@392 18 #include <iostream>
Chris@392 19
Chris@392 20 ProgressPrinter::ProgressPrinter(QString message, QObject *parent) :
Chris@392 21 ProgressReporter(parent),
Chris@392 22 m_prefix(message),
Chris@439 23 m_lastProgress(0),
Chris@439 24 m_definite(true)
Chris@392 25 {
Chris@521 26 if (m_prefix.length() > 70) {
Chris@521 27 m_prefix = m_prefix.left(70) + "...";
Chris@521 28 }
Chris@392 29 }
Chris@392 30
Chris@392 31 ProgressPrinter::~ProgressPrinter()
Chris@392 32 {
Chris@392 33 if (m_lastProgress > 0 && m_lastProgress != 100) {
Chris@392 34 std::cerr << "\r\n";
Chris@392 35 }
Chris@392 36 // std::cerr << "(progress printer dtor)" << std::endl;
Chris@392 37 }
Chris@392 38
Chris@439 39 bool
Chris@439 40 ProgressPrinter::isDefinite() const
Chris@439 41 {
Chris@439 42 return m_definite;
Chris@439 43 }
Chris@439 44
Chris@439 45 void
Chris@439 46 ProgressPrinter::setDefinite(bool definite)
Chris@439 47 {
Chris@439 48 m_definite = definite;
Chris@439 49 }
Chris@439 50
Chris@392 51 void
Chris@393 52 ProgressPrinter::setMessage(QString message)
Chris@393 53 {
Chris@393 54 m_prefix = message;
Chris@624 55 if (m_prefix.length() > 70) {
Chris@624 56 m_prefix = m_prefix.left(70) + "...";
Chris@624 57 }
Chris@393 58 }
Chris@393 59
Chris@393 60 void
Chris@515 61 ProgressPrinter::done()
Chris@515 62 {
Chris@517 63 std::cerr << "\r"
Chris@517 64 << m_prefix.toStdString()
Chris@517 65 << (m_prefix == "" ? "" : " ")
Chris@517 66 << "Done" << std::endl;
Chris@515 67 }
Chris@515 68
Chris@515 69 void
Chris@392 70 ProgressPrinter::setProgress(int progress)
Chris@392 71 {
Chris@392 72 if (progress == m_lastProgress) return;
Chris@517 73 std::cerr << "\r"
Chris@517 74 << m_prefix.toStdString()
Chris@517 75 << (m_prefix == "" ? "" : " ");
Chris@517 76 if (m_definite) {
Chris@517 77 std::cerr << progress << "%";
Chris@517 78 } else {
Chris@517 79 std::cerr << "|/-\\"[progress % 4];
Chris@392 80 }
Chris@392 81 m_lastProgress = progress;
Chris@392 82 }
Chris@392 83