summaryrefslogtreecommitdiffstats
path: root/kopete/protocols/yahoo/libkyahoo/yahoobuddyiconloader.h
diff options
context:
space:
mode:
Diffstat (limited to 'kopete/protocols/yahoo/libkyahoo/yahoobuddyiconloader.h')
-rw-r--r--kopete/protocols/yahoo/libkyahoo/yahoobuddyiconloader.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/kopete/protocols/yahoo/libkyahoo/yahoobuddyiconloader.h b/kopete/protocols/yahoo/libkyahoo/yahoobuddyiconloader.h
new file mode 100644
index 00000000..c1a943c2
--- /dev/null
+++ b/kopete/protocols/yahoo/libkyahoo/yahoobuddyiconloader.h
@@ -0,0 +1,77 @@
+/*
+ yahoobuddyiconloader.h - Fetches YahooBuddyIcons
+
+ Copyright (c) 2005 by André Duffeck <andre@duffeck.de>
+
+ *************************************************************************
+ * *
+ * 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. *
+ * *
+ *************************************************************************
+*/
+
+#ifndef YAHOOBUDDYICONLOADER_
+#define YAHOOBUDDYICONLOADER_
+
+// QT Includes
+#include <qobject.h>
+#include <qstring.h>
+#include <qmap.h>
+
+// KDE Includes
+#include <kurl.h>
+
+class KTempFile;
+class Client;
+namespace KIO {
+ class Job;
+ class TransferJob;
+}
+
+struct IconLoadJob {
+ KURL url;
+ QString who;
+ int checksum;
+ KTempFile *file;
+};
+
+/**
+ * @author André Duffeck
+ *
+ * This class handles the download of a Buddy icon.
+ * If the download was succesfull it emits a signal with a pointer
+ * to the temporary file, the icon was stored at
+ */
+class YahooBuddyIconLoader : public QObject
+{
+ Q_OBJECT
+public:
+ YahooBuddyIconLoader( Client *c );
+ ~YahooBuddyIconLoader();
+
+ /**
+ * Add a BuddyIcon for download.
+ */
+ void fetchBuddyIcon( const QString &who, KURL url, int checksum );
+
+signals:
+ /**
+ * The account can connect to this signal and append the icon
+ * stored in 'file' to the apropriate contact
+ */
+ void fetchedBuddyIcon( const QString &who, KTempFile *file, int checksum );
+
+private slots:
+ void slotData( KIO::Job *job, const QByteArray &data );
+ void slotComplete( KIO::Job *job );
+
+private:
+ typedef QMap< KIO::TransferJob *, IconLoadJob > TransferJobMap;
+ TransferJobMap m_jobs;
+ Client *m_client;
+};
+
+#endif