transmission/qt/stats-dialog.cc

67 lines
1.8 KiB
C++
Raw Normal View History

2009-04-09 18:55:47 +00:00
/*
* This file Copyright (C) 2009-2014 Mnemosyne LLC
2009-04-09 18:55:47 +00:00
*
* It may be used under the GNU GPL versions 2 or 3
* or any future license endorsed by Mnemosyne LLC.
2009-04-09 18:55:47 +00:00
*
* $Id$
2009-04-09 18:55:47 +00:00
*/
#include <QTimer>
#include "formatter.h"
2009-04-09 18:55:47 +00:00
#include "session.h"
#include "stats-dialog.h"
enum
{
REFRESH_INTERVAL_MSEC = (15*1000)
2009-04-09 18:55:47 +00:00
};
StatsDialog::StatsDialog (Session& session, QWidget * parent):
QDialog (parent, Qt::Dialog),
mySession (session),
myTimer (new QTimer (this))
2009-04-09 18:55:47 +00:00
{
ui.setupUi (this);
2009-04-09 18:55:47 +00:00
myTimer->setSingleShot (false);
connect (myTimer, SIGNAL (timeout ()), &mySession, SLOT (refreshSessionStats ()));
2009-04-09 18:55:47 +00:00
connect (&mySession, SIGNAL (statsUpdated ()), this, SLOT (updateStats ()));
updateStats ();
mySession.refreshSessionStats ();
2009-04-09 18:55:47 +00:00
}
StatsDialog::~StatsDialog ()
2009-04-09 18:55:47 +00:00
{
}
void
StatsDialog::setVisible (bool visible)
2009-04-09 18:55:47 +00:00
{
myTimer->stop ();
if (visible)
myTimer->start (REFRESH_INTERVAL_MSEC);
QDialog::setVisible (visible);
2009-04-09 18:55:47 +00:00
}
void
StatsDialog::updateStats ()
2009-04-09 18:55:47 +00:00
{
const tr_session_stats& current (mySession.getStats ());
const tr_session_stats& total (mySession.getCumulativeStats ());
2009-04-09 18:55:47 +00:00
ui.currentUploadedValueLabel->setText (Formatter::sizeToString (current.uploadedBytes));
ui.currentDownloadedValueLabel->setText (Formatter::sizeToString (current.downloadedBytes));
ui.currentRatioValueLabel->setText (Formatter::ratioToString (current.ratio));
ui.currentDurationValueLabel->setText (Formatter::timeToString (current.secondsActive));
2009-04-09 18:55:47 +00:00
ui.totalUploadedValueLabel->setText (Formatter::sizeToString (total.uploadedBytes));
ui.totalDownloadedValueLabel->setText (Formatter::sizeToString (total.downloadedBytes));
ui.totalRatioValueLabel->setText (Formatter::ratioToString (total.ratio));
ui.totalDurationValueLabel->setText (Formatter::timeToString (total.secondsActive));
2009-04-09 18:55:47 +00:00
ui.startCountLabel->setText (tr ("Started %n time(s)", 0, total.sessionCount));
2009-04-09 18:55:47 +00:00
}