1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/***************************************************************************
* statusbar.cc
*
* Fri May 26 12:06:41 CEST 2006
* Copyright 2006 Bent Bisballe Nyeng
* deva@aasimon.org
****************************************************************************/
/*
* This file is part of MIaV.
*
* MIaV is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* MIaV is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MIaV; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
#include "statusbar.h"
StatusBar::StatusBar(QWidget *parent, Decoder *decoder): QStatusBar(parent)
{
this->decoder = decoder;
diskspace = new QProgressBar(this);
diskspace->setRange(0, 100);
diskspace->setValue(0);
load = new QProgressBar(this);
load->setRange(0, 100);
load->setValue(0);
messagefield = new QLabel(this);
fps = new QLabel(this);
fps->setAlignment(Qt::AlignCenter);
queuesizes = new QLabel(this);
queuesizes->setAlignment(Qt::AlignCenter);
ping = new QLabel(this);
ping->setAlignment(Qt::AlignCenter);
addWidget(messagefield, 40);
addWidget(fps, 10);
addWidget(queuesizes, 20);
addWidget(ping, 10);
addWidget(diskspace, 10);
addWidget(load, 10);
startTimer(100);
}
void StatusBar::timerEvent(QTimerEvent *event)
{
Status s = decoder->status();
QString statusmsg;
if(s.queue_sizes.size() > 0) {
for(int cnt = 0; cnt < s.queue_sizes.size(); cnt++) {
QString next;
next.sprintf("[%d]", s.queue_sizes[cnt]);
statusmsg.prepend(next);
}
statusmsg.prepend("Queue: ");
queuesizes->setText(statusmsg);
} else {
queuesizes->setText("Queue is empty");
}
QString dummy;
if(s.server_ping_ms != UNKNOWN) ping->setText(dummy.sprintf("ping %d ms", s.server_ping_ms));
else ping->setText("ping N/A");
if(s.server_fps != -1) fps->setText(dummy.sprintf("fps %.2f", s.server_fps));
else fps->setText("fps N/A");
if(s.server_diskspace_max != UNKNOWN) {
diskspace->setRange(0, s.server_diskspace_max);
diskspace->setValue(s.server_diskspace);
diskspace->setEnabled(true);
} else {
diskspace->setRange(0, 0);
diskspace->setEnabled(false);
}
if(s.server_load_max != UNKNOWN) {
load->setRange(0, s.server_load_max);
load->setValue(s.server_load);
load->setEnabled(true);
} else {
load->setRange(0, 0);
load->setEnabled(false);
}
}
void StatusBar::message(QString message)
{
messagefield->setText(message);
}
|