lbajardsilogic@28: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ lbajardsilogic@28: lbajardsilogic@28: /* Sound Access lbajardsilogic@28: EASAIER client application. lbajardsilogic@28: Silogic 2007. Laure Bajard. lbajardsilogic@28: lbajardsilogic@28: This program is free software; you can redistribute it and/or lbajardsilogic@28: modify it under the terms of the GNU General Public License as lbajardsilogic@28: published by the Free Software Foundation; either version 2 of the lbajardsilogic@28: License, or (at your option) any later version. See the file lbajardsilogic@28: COPYING included with this distribution for more information. lbajardsilogic@28: */ lbajardsilogic@28: lbajardsilogic@28: #include "ConnectionStatus.h" lbajardsilogic@28: lbajardsilogic@28: #include lbajardsilogic@28: #include lbajardsilogic@28: lbajardsilogic@28: ConnectionStatus::ConnectionStatus(HttpClient *httpClient, const QString & title, QWidget * parent) : QToolBar(title, parent), lbajardsilogic@28: m_httpClient(httpClient), lbajardsilogic@28: m_iconStatus(0), lbajardsilogic@28: m_actionStatus(0) lbajardsilogic@28: { lbajardsilogic@28: m_iconConnected = new QIcon(":/icons/connected.png"); lbajardsilogic@28: m_iconNotConnected = new QIcon(":/icons/notconnected.png"); lbajardsilogic@28: lbajardsilogic@28: setIcon(m_httpClient->state()); lbajardsilogic@28: lbajardsilogic@28: m_actionStatus = addAction(*m_iconStatus, tr("Connection state")); lbajardsilogic@28: lbajardsilogic@28: m_downloadProgress.setMaximum(100); lbajardsilogic@28: m_downloadProgress.setMinimum(0); lbajardsilogic@28: lbajardsilogic@28: addWidget(&m_downloadProgress); lbajardsilogic@28: lbajardsilogic@28: connect(m_httpClient, SIGNAL(stateChanged(int)), this, SLOT(setIcon(int))); lbajardsilogic@28: lbajardsilogic@28: connect(m_httpClient, SIGNAL(dataReadProgress( int, int)), this, SLOT(updateProgressBar(int, int))); lbajardsilogic@28: } lbajardsilogic@28: lbajardsilogic@28: lbajardsilogic@28: ConnectionStatus::~ConnectionStatus() lbajardsilogic@28: {} lbajardsilogic@28: lbajardsilogic@28: void ConnectionStatus::setIcon(int state) lbajardsilogic@28: { lbajardsilogic@28: switch (state) lbajardsilogic@28: { lbajardsilogic@28: case QHttp::Unconnected : lbajardsilogic@28: case QHttp::Closing : lbajardsilogic@28: { lbajardsilogic@28: m_iconStatus = m_iconNotConnected; lbajardsilogic@28: m_downloadProgress.hide(); lbajardsilogic@28: lbajardsilogic@28: break; lbajardsilogic@28: } lbajardsilogic@28: lbajardsilogic@28: case QHttp::HostLookup : lbajardsilogic@28: case QHttp::Connecting : lbajardsilogic@28: case QHttp::Sending : lbajardsilogic@28: case QHttp::Connected : lbajardsilogic@28: { lbajardsilogic@28: m_iconStatus = m_iconConnected; lbajardsilogic@28: m_downloadProgress.hide(); lbajardsilogic@28: lbajardsilogic@28: break; lbajardsilogic@28: } lbajardsilogic@28: lbajardsilogic@28: case QHttp::Reading : lbajardsilogic@28: { lbajardsilogic@28: m_iconStatus = m_iconConnected; lbajardsilogic@28: m_downloadProgress.setVisible(true); lbajardsilogic@28: } lbajardsilogic@28: lbajardsilogic@28: default: lbajardsilogic@28: break; lbajardsilogic@28: lbajardsilogic@28: } lbajardsilogic@28: if (m_actionStatus) lbajardsilogic@28: m_actionStatus->setIcon(*m_iconStatus); lbajardsilogic@28: } lbajardsilogic@28: lbajardsilogic@28: void ConnectionStatus::updateProgressBar(int done, int total) lbajardsilogic@28: { lbajardsilogic@28: m_downloadProgress.setValue(((double)done/total)*100); lbajardsilogic@28: }