changeset 28:c7965aaaedfd

add connectionStatus toolbar
author lbajardsilogic
date Mon, 14 May 2007 15:14:23 +0000
parents 56561ff50d2e
children d2dc3a24e24f
files widgets/ConnectionStatus.cpp widgets/ConnectionStatus.h widgets/svwidgets.vcproj widgets/widgets.pro
diffstat 4 files changed, 171 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/ConnectionStatus.cpp	Mon May 14 15:14:23 2007 +0000
@@ -0,0 +1,86 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*	Sound Access	
+		EASAIER client application.	
+		Silogic 2007. Laure Bajard. 
+	
+	This program 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.  See the file    
+	COPYING included with this distribution for more information.
+*/
+
+#include "ConnectionStatus.h"
+
+#include <QAction>
+#include <QHBoxLayout>
+
+ConnectionStatus::ConnectionStatus(HttpClient *httpClient, const QString & title, QWidget * parent) : QToolBar(title, parent),
+	m_httpClient(httpClient),
+	m_iconStatus(0),
+	m_actionStatus(0)
+{
+	m_iconConnected = new QIcon(":/icons/connected.png");
+	m_iconNotConnected = new QIcon(":/icons/notconnected.png");
+
+	setIcon(m_httpClient->state());
+
+	m_actionStatus = addAction(*m_iconStatus, tr("Connection state"));
+
+	m_downloadProgress.setMaximum(100);
+	m_downloadProgress.setMinimum(0);
+
+	addWidget(&m_downloadProgress);
+
+	connect(m_httpClient, SIGNAL(stateChanged(int)), this, SLOT(setIcon(int)));
+
+	connect(m_httpClient, SIGNAL(dataReadProgress( int, int)), this, SLOT(updateProgressBar(int, int)));
+}
+
+
+ConnectionStatus::~ConnectionStatus()
+{}
+
+void ConnectionStatus::setIcon(int state)
+{
+	switch (state)
+	{
+		case QHttp::Unconnected :
+		case QHttp::Closing :
+		{
+			m_iconStatus = m_iconNotConnected;
+			m_downloadProgress.hide();
+
+			break;
+		}
+
+		case QHttp::HostLookup :
+		case QHttp::Connecting :
+		case QHttp::Sending :
+		case QHttp::Connected :
+		{
+			m_iconStatus = m_iconConnected;
+			m_downloadProgress.hide();
+
+			break;
+		}
+
+		case QHttp::Reading :
+		{
+			m_iconStatus = m_iconConnected;
+			m_downloadProgress.setVisible(true);
+		}
+
+		default:
+			break;
+
+	}
+	if (m_actionStatus)
+		m_actionStatus->setIcon(*m_iconStatus);
+}
+
+void ConnectionStatus::updateProgressBar(int done, int total)
+{
+	m_downloadProgress.setValue(((double)done/total)*100);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/ConnectionStatus.h	Mon May 14 15:14:23 2007 +0000
@@ -0,0 +1,47 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*	Sound Access	
+		EASAIER client application.	
+		Silogic 2007. Laure Bajard. 
+	
+	This program 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.  See the file    
+	COPYING included with this distribution for more information.
+*/
+
+#ifndef _CONNECTION_STATUS_H_
+#define _CONNECTION_STATUS_H_
+
+#include <QToolBar>
+#include <QProgressBar>
+
+#include "data/fileio/HttpClient.h"
+
+class ConnectionStatus : public QToolBar //public QMenu //public QWidget
+{
+	Q_OBJECT
+
+public:
+	ConnectionStatus(HttpClient *httpClient, const QString & title, QWidget * parent = 0);
+	virtual ~ConnectionStatus();
+
+private slots:
+	void setIcon(int state);
+	void updateProgressBar(int done, int total);
+
+private:
+
+	HttpClient		*m_httpClient;
+
+	QIcon			*m_iconStatus;
+	QAction			*m_actionStatus;
+
+	QIcon			*m_iconConnected;
+	QIcon			*m_iconNotConnected;
+
+	QProgressBar	m_downloadProgress;
+};
+
+#endif
\ No newline at end of file
--- a/widgets/svwidgets.vcproj	Mon May 14 15:13:03 2007 +0000
+++ b/widgets/svwidgets.vcproj	Mon May 14 15:14:23 2007 +0000
@@ -186,6 +186,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\ConnectionStatus.cpp"
+				>
+			</File>
+			<File
 				RelativePath=".\ExpandWidget.cpp"
 				>
 			</File>
@@ -372,6 +376,32 @@
 					</FileConfiguration>
 				</File>
 				<File
+					RelativePath=".\ConnectionStatus.h"
+					>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
 					RelativePath=".\ExpandWidget.h"
 					>
 					<FileConfiguration
@@ -1040,6 +1070,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\tmp_moc\moc_ConnectionStatus.cpp"
+				>
+			</File>
+			<File
 				RelativePath=".\tmp_moc\moc_ExpandWidget.cpp"
 				>
 			</File>
--- a/widgets/widgets.pro	Mon May 14 15:13:03 2007 +0000
+++ b/widgets/widgets.pro	Mon May 14 15:14:23 2007 +0000
@@ -41,7 +41,8 @@
            QueryResultsWidget.h \
            SearchWidget.h \
            WidgetGallery.h \
-           ConnectionSettings.h 
+           ConnectionSettings.h \
+           ConnectionStatus.h 
 SOURCES += AudioDial.cpp \
            Fader.cpp \
            ItemEditDialog.cpp \
@@ -69,4 +70,5 @@
            QueryResultsWidget.cpp \
            SearchWidget.cpp \
            WidgetGallery.cpp \
-           ConnectionSettings.cpp 
+           ConnectionSettings.cpp \
+           ConnectionStatus.cpp