annotate widgets/ConnectionStatus.cpp @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents c7965aaaedfd
children
rev   line source
lbajardsilogic@28 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@28 2
lbajardsilogic@28 3 /* Sound Access
lbajardsilogic@28 4 EASAIER client application.
lbajardsilogic@28 5 Silogic 2007. Laure Bajard.
lbajardsilogic@28 6
lbajardsilogic@28 7 This program is free software; you can redistribute it and/or
lbajardsilogic@28 8 modify it under the terms of the GNU General Public License as
lbajardsilogic@28 9 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@28 10 License, or (at your option) any later version. See the file
lbajardsilogic@28 11 COPYING included with this distribution for more information.
lbajardsilogic@28 12 */
lbajardsilogic@28 13
lbajardsilogic@28 14 #include "ConnectionStatus.h"
lbajardsilogic@28 15
lbajardsilogic@28 16 #include <QAction>
lbajardsilogic@28 17 #include <QHBoxLayout>
lbajardsilogic@28 18
lbajardsilogic@28 19 ConnectionStatus::ConnectionStatus(HttpClient *httpClient, const QString & title, QWidget * parent) : QToolBar(title, parent),
lbajardsilogic@28 20 m_httpClient(httpClient),
lbajardsilogic@28 21 m_iconStatus(0),
lbajardsilogic@28 22 m_actionStatus(0)
lbajardsilogic@28 23 {
lbajardsilogic@28 24 m_iconConnected = new QIcon(":/icons/connected.png");
lbajardsilogic@28 25 m_iconNotConnected = new QIcon(":/icons/notconnected.png");
lbajardsilogic@28 26
lbajardsilogic@28 27 setIcon(m_httpClient->state());
lbajardsilogic@28 28
lbajardsilogic@28 29 m_actionStatus = addAction(*m_iconStatus, tr("Connection state"));
lbajardsilogic@28 30
lbajardsilogic@28 31 m_downloadProgress.setMaximum(100);
lbajardsilogic@28 32 m_downloadProgress.setMinimum(0);
lbajardsilogic@28 33
lbajardsilogic@28 34 addWidget(&m_downloadProgress);
lbajardsilogic@28 35
lbajardsilogic@28 36 connect(m_httpClient, SIGNAL(stateChanged(int)), this, SLOT(setIcon(int)));
lbajardsilogic@28 37
lbajardsilogic@28 38 connect(m_httpClient, SIGNAL(dataReadProgress( int, int)), this, SLOT(updateProgressBar(int, int)));
lbajardsilogic@28 39 }
lbajardsilogic@28 40
lbajardsilogic@28 41
lbajardsilogic@28 42 ConnectionStatus::~ConnectionStatus()
lbajardsilogic@28 43 {}
lbajardsilogic@28 44
lbajardsilogic@28 45 void ConnectionStatus::setIcon(int state)
lbajardsilogic@28 46 {
lbajardsilogic@28 47 switch (state)
lbajardsilogic@28 48 {
lbajardsilogic@28 49 case QHttp::Unconnected :
lbajardsilogic@28 50 case QHttp::Closing :
lbajardsilogic@28 51 {
lbajardsilogic@28 52 m_iconStatus = m_iconNotConnected;
lbajardsilogic@28 53 m_downloadProgress.hide();
lbajardsilogic@28 54
lbajardsilogic@28 55 break;
lbajardsilogic@28 56 }
lbajardsilogic@28 57
lbajardsilogic@28 58 case QHttp::HostLookup :
lbajardsilogic@28 59 case QHttp::Connecting :
lbajardsilogic@28 60 case QHttp::Sending :
lbajardsilogic@28 61 case QHttp::Connected :
lbajardsilogic@28 62 {
lbajardsilogic@28 63 m_iconStatus = m_iconConnected;
lbajardsilogic@28 64 m_downloadProgress.hide();
lbajardsilogic@28 65
lbajardsilogic@28 66 break;
lbajardsilogic@28 67 }
lbajardsilogic@28 68
lbajardsilogic@28 69 case QHttp::Reading :
lbajardsilogic@28 70 {
lbajardsilogic@28 71 m_iconStatus = m_iconConnected;
lbajardsilogic@28 72 m_downloadProgress.setVisible(true);
lbajardsilogic@28 73 }
lbajardsilogic@28 74
lbajardsilogic@28 75 default:
lbajardsilogic@28 76 break;
lbajardsilogic@28 77
lbajardsilogic@28 78 }
lbajardsilogic@28 79 if (m_actionStatus)
lbajardsilogic@28 80 m_actionStatus->setIcon(*m_iconStatus);
lbajardsilogic@28 81 }
lbajardsilogic@28 82
lbajardsilogic@28 83 void ConnectionStatus::updateProgressBar(int done, int total)
lbajardsilogic@28 84 {
lbajardsilogic@28 85 m_downloadProgress.setValue(((double)done/total)*100);
lbajardsilogic@28 86 }