diff -r da856f45b798 -r ff5174af067c zeroconf/zeroconfsharing/downloadicon.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/zeroconf/zeroconfsharing/downloadicon.cpp Wed Jul 21 14:28:48 2010 +0530 @@ -0,0 +1,148 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include "downloadicon.h" + +#include +#include +#include +#include + +DownloadIcon::DownloadIcon(Ui::MainWindow &aMainUi) + :MainUi(aMainUi) + { + manager = new QNetworkAccessManager(this); + + } +DownloadIcon::~DownloadIcon() + { + if(manager) + { + manager->disconnect(); + delete manager; + manager = 0; + } + } + +void DownloadIcon::ChangePathSlash() + { + //filePath contains C:\\Data\\ZeroConf\\name.ico + //after this method is called it must have + //c://data//zeroconf//name.ico + int start = 0; + while( (start = filePath.indexOf("\\",start))!= -1) + { + filePath.remove(start,1); + filePath.insert(start,"//"); + } + } + + +void DownloadIcon::UpdateAvatarItem() + { + int count = MainUi.listAvatars->count(); + int index = 0; + while(index < count) + { + QListWidgetItem* item = MainUi.listAvatars->item(index); + if(contactName.compare(item->text()) == 0) + { + QPixmap pm; + //ChangePathSlash(); + //DisplayMsgBox(filePath); + + //if(pm.load(filePath)) + if(pm.load("E://mypic.ico")) + { + QIcon icon(pm); + DisplayMsgBox(filePath); + item->setIcon(icon); + } + break; + } + index++; + } + + } + + +void DownloadIcon::RequestFinished() + { + + DisplayMsgBox(tr("Got Response")); + + int error = reply->error(); + if(!error) + { + QNetworkReply *reply = ((QNetworkReply *)sender()); + QByteArray data = reply->readAll(); + + if(data.isEmpty()) + DisplayMsgBox(tr("No Data Reply")); + + //QTextStream out(&data); + //QString content = out.readAll(); + + //QMessageBox::warning(this, tr("Content"),content,QMessageBox::Ok); + + //QFile temp(filePath); + QFile temp("E:\\mypic.ico"); + temp.open(QIODevice::WriteOnly | QIODevice::Truncate); + temp.write(data); + temp.close(); + UpdateAvatarItem(); + } + else + DisplayMsgBox(reply->errorString()); + + //Delete this object once the response is received. + delete this; + + } + + +void DownloadIcon::GetIcon(const TDesC8& aContactName, const TDesC8& aUri, const TDesC8& aFileName) + { + + QString quri = QString::fromUtf8((const char*)aUri.Ptr(),aUri.Length()); + + contactName = QString::fromUtf8((const char*)aContactName.Ptr(),aContactName.Length()); + filePath = QString::fromUtf8((const char*)aFileName.Ptr(),aFileName.Length()); + + //DisplayMsgBox(quri); + +#ifdef __arm + reply = manager->get(QNetworkRequest(quri)); +#else + reply = manager->get(QNetworkRequest(QUrl("http://kiranp747.googlepages.com/FileList.txt"))); +#endif + + + connect(reply, SIGNAL(finished()), this, SLOT(RequestFinished())); + + } + +void DownloadIcon::DisplayMsgBox(QString str) + { + QMessageBox msgBox; + msgBox.setText(str); + msgBox.exec(); + } + + + +