diff options
| author | deva <deva> | 2006-06-06 17:18:50 +0000 | 
|---|---|---|
| committer | deva <deva> | 2006-06-06 17:18:50 +0000 | 
| commit | 3532e6dabb8f895aec9c42124f5d7f50d0d90ae6 (patch) | |
| tree | c78921d5881ee08cc5eee35e1a9ff9ed1c9c45d1 /client | |
| parent | 33583f49150216f3bc84520b63bf4be16ace076d (diff) | |
*** empty log message ***
Diffstat (limited to 'client')
| -rw-r--r-- | client/statusbar.cc | 109 | ||||
| -rw-r--r-- | client/statusbar.h | 59 | 
2 files changed, 168 insertions, 0 deletions
| diff --git a/client/statusbar.cc b/client/statusbar.cc new file mode 100644 index 0000000..1e25ebe --- /dev/null +++ b/client/statusbar.cc @@ -0,0 +1,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); +} diff --git a/client/statusbar.h b/client/statusbar.h new file mode 100644 index 0000000..1b0a2c5 --- /dev/null +++ b/client/statusbar.h @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/*************************************************************************** + *            statusbar.h + * + *  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. + */ +#ifndef __MIAV_STATUSBAR_H__ +#define __MIAV_STATUSBAR_H__ + +#include <QWidget> +#include <QStatusBar> +#include "decoder.h" + +#include <QLabel> +#include <QProgressBar> + +class StatusBar : public QStatusBar  +{ +public: +  StatusBar(QWidget *parent, Decoder *decoder); + +  void message(QString message); + +protected: +  void timerEvent(QTimerEvent *event); + +private: +  Decoder *decoder; + +  // Content +  QLabel *messagefield; +  QProgressBar *diskspace; +  QProgressBar *load; +  QLabel *fps; +  QLabel *ping; +  QLabel *queuesizes; + +}; +#endif/*__MIAV_STATUSBAR_H__*/ | 
