Tests/DemoGUI/ImageDownload.cpp
author cgandhi
Mon, 11 Oct 2010 21:59:54 +0530
changeset 26 83d6a149c755
permissions -rw-r--r--
Submitting following changes - AuthApps for Last.fm and Twitter added API for checking ServiceAuthorization added for SMFCredMgrClient API added for forcefully removing credential details from SMFCredMgr Extra argument checks in SMfClient APIs APIs for service login and logout from SMFClient Redundant members removed from SmfServerSymbian DSM bug fixes Test Apps included
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     1
/****************************************************************************
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     2
**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     3
** Trolltech hereby grants a license to use the Qt/Eclipse Integration
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     4
** plug-in (the software contained herein), in binary form, solely for the
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     5
** purpose of creating code to be used with Trolltech's Qt software.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     6
**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     7
** Qt Designer is licensed under the terms of the GNU General Public
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     8
** License versions 2.0 and 3.0 ("GPL License"). Trolltech offers users the
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     9
** right to use certain no GPL licensed software under the terms of its GPL
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    10
** Exception version 1.2 (http://trolltech.com/products/qt/gplexception).
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    11
**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    12
** THIS SOFTWARE IS PROVIDED BY TROLLTECH AND ITS CONTRIBUTORS (IF ANY) "AS
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    13
** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    14
** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    15
** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    16
** OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    17
** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    18
** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    19
** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    20
** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    21
** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    22
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    23
**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    24
** Since we now have the GPL exception I think that the "special exception
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    25
** is no longer needed. The license text proposed above (other than the
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    26
** special exception portion of it) is the BSD license and we have added
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    27
** the BSD license as a permissible license under the exception.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    28
**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    29
****************************************************************************/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    30
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    31
#include <qdebug.h>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    32
#include <QImage>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    33
#include <QByteArray>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    34
#include <qnetworkproxy.h>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    35
#include <qfile.h>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    36
#include "ImageDownload.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    37
#include "HomeView.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    38
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    39
bool downloading = false;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    40
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    41
//#define EMULATORTESTING
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    42
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    43
ImageDownload::ImageDownload(QObject *parent)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    44
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    45
	manager = new QNetworkAccessManager(this);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    46
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    47
#ifdef EMULATORTESTING
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    48
	qDebug()<<"Using PROXY SETTINGS!!!, change for device testing";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    49
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    50
	// Reading the keys, CSM Stubbed - START
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    51
	QFile winFile("c:\\data\\DoNotShare.txt");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    52
	if (!winFile.open(QIODevice::ReadOnly))
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    53
		{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    54
		qDebug()<<"File to read the windows username and password could not be opened, returning!!!";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    55
		return;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    56
		}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    57
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    58
	QByteArray winArr = winFile.readAll();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    59
	QList<QByteArray> winList = winArr.split(' ');
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    60
	winFile.close();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    61
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    62
	QString httpUser(winList[0]);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    63
	QString httpPass(winList[1]);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    64
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    65
    // For proxy settings on emulator only - REMOVE for device
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    66
    QString httpProxy = "10.1.0.214";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    67
    QString httpPort = "3128";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    68
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    69
	qDebug()<<httpUser;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    70
	qDebug()<<httpPass;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    71
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    72
    //==Classes used from Network Module==
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    73
    QNetworkProxy proxy;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    74
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    75
    proxy.setType(QNetworkProxy::HttpProxy);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    76
    proxy.setHostName(httpProxy);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    77
    proxy.setPort(httpPort.toInt());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    78
    proxy.setUser(httpUser);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    79
    proxy.setPassword(httpPass);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    80
		
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    81
    QNetworkProxy::setApplicationProxy(proxy);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    82
#endif
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    83
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    84
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    85
ImageDownload::~ImageDownload()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    86
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    87
	if(manager)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    88
		delete manager;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    89
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    90
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    91
void ImageDownload::downloadImage(HomeView *homeView, QString name, QUrl url, const SmfItemIdentifier &identifier)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    92
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    93
	m_homeView = homeView;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    94
	m_identifier = identifier;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    95
	qDebug()<<"Inside ImageDownload::downloadImage(name, url)";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    96
	QNetworkRequest request;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    97
	request.setUrl(url);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    98
	qDebug()<<"URL of image to be downloaded = "<<url;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    99
	connect(manager, SIGNAL(finished(QNetworkReply*)), 
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   100
			this, SLOT(networkReplyFinished(QNetworkReply*)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   101
			
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   102
	QNetworkReply* reply = manager->get(request);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   103
	m_nameReplyHash.insert(name, reply);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   104
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   105
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   106
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   107
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   108
void ImageDownload::networkReplyFinished ( QNetworkReply *aNetworkReply )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   109
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   110
	qDebug()<<"Error code if any = "<<aNetworkReply->error();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   111
	qDebug()<<"Response for reply = "<<aNetworkReply;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   112
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   113
	QByteArray response = aNetworkReply->readAll();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   114
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   115
	if(response.size())
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   116
		{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   117
		QImage image = QImage::fromData(response);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   118
		
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   119
		QString fileName("c:\\data\\");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   120
		fileName.append(m_nameReplyHash.key(aNetworkReply));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   121
		fileName.append(".jpg");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   122
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   123
		bool saved = image.save(fileName, "JPG", -1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   124
		qDebug()<<"Image saved ? "<<saved;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   125
		m_nameReplyHash.remove(m_nameReplyHash.key(aNetworkReply));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   126
		if(m_nameReplyHash.count() == 0)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   127
			{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   128
			downloading = false;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   129
			if(SmfFriendsFetch == m_identifier)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   130
				m_homeView->populateFriendsWidget();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   131
			else if(SmfPostsFetch == m_identifier)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   132
				m_homeView->populatePostsWidget();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   133
			else if(SmfPhotosFetch == m_identifier)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   134
				m_homeView->populatePhotosGridView();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   135
			// ToDo:- for albums, photos and activity
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   136
			else
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   137
				qDebug()<<"Unknown request for download, so do nothing";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   138
			}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   139
		}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   140
	else
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   141
		{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   142
		qDebug()<<"Response data is NULL";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   143
		}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   144
	}