zeroconf/zeroconfsharing/downloadicon.cpp
changeset 21 ff5174af067c
--- /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 <QtNetwork>
+#include <QNetworkRequest>
+#include <QNetworkReply>
+#include <QMessageBox>
+
+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();
+    }
+
+
+
+