• Skip to content
  • Skip to link menu
KDE 4.0 API Reference
  • KDE API Reference
  • kdenetwork
  • Sitemap
  • Contact Us
 

kget

dbusmodelobserver.cpp

Go to the documentation of this file.
00001 /* This file is part of the KDE project
00002 
00003    Copyright (C) 2007 by Javier Goday <jgoday@gmail.com>
00004 
00005    This program is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU General Public
00007    License as published by the Free Software Foundation; either
00008    version 2 of the License, or (at your option) any later version.
00009 */
00010 
00011 
00012 #include "dbusmodelobserver.h"
00013 #include "core/kget.h"
00014 #include "core/transfergrouphandler.h"
00015 #include "core/transferhandler.h"
00016 #include "core/job.h"
00017 
00018 #include <QObject>
00019 
00020 DBusModelObserver::DBusModelObserver(QObject *parent) 
00021     : m_transfers(),
00022     m_transferGroupObserver(this),
00023     m_transferGroupHandlers()
00024 {
00025     Q_UNUSED(parent)
00026 
00027     // Add the observer to kget to see all operations through the transferGroups
00028     KGet::addObserver(this);
00029 
00030     QObject::connect(&m_transferGroupObserver, SIGNAL(transferAdded(TransferHandler *)),
00031                      this, SLOT(addTransferHandler(TransferHandler *)));
00032     QObject::connect(&m_transferGroupObserver, SIGNAL(transferDeleted(TransferHandler *)) ,
00033                     this, SLOT(deleteTransferHandler(TransferHandler *)));
00034     QObject::connect(&m_transferGroupObserver, SIGNAL(transferGroupChanged(TransferGroupHandler *)),
00035                     this, SLOT(slotTransferGroupChanged(TransferGroupHandler *)));
00036 }
00037 
00038 void DBusModelObserver::addedTransferGroupEvent(TransferGroupHandler *group)
00039 {
00040     group->addObserver(&m_transferGroupObserver);
00041 
00042     m_transferGroupHandlers.append(group);
00043 }
00044 
00045 void DBusModelObserver::removedTransferGroupEvent(TransferGroupHandler *group)
00046 {
00047     group->delObserver(&m_transferGroupObserver);
00048 
00049     m_transferGroupHandlers.removeAll(group);
00050 }
00051 
00052 QVariantMap DBusModelObserver::transfers() const
00053 {
00054     return m_transfers;
00055 }
00056 
00057 int DBusModelObserver::transfersSpeed() const
00058 {
00059     return m_speed;
00060 }
00061 
00062 void DBusModelObserver::addTransferHandler(TransferHandler *handler)
00063 {
00064     m_transfers[handler->source().pathOrUrl()] = getAttributesFromTransfer(handler);
00065 }
00066 
00067 void DBusModelObserver::deleteTransferHandler(TransferHandler *handler)
00068 {
00069     m_transfers.remove(handler->source().pathOrUrl());
00070 }
00071 
00072 void DBusModelObserver::slotTransferGroupChanged(TransferGroupHandler *handler)
00073 {
00074     // TODO: update the this transfers in the  transfers map
00075     foreach(TransferHandler *t_handler, handler->transfers()) {
00076         m_transfers[t_handler->source().pathOrUrl()] = getAttributesFromTransfer(t_handler);
00077     }
00078 
00079     m_speed = handler->speed();
00080 //    emit transfersChanged(m_transfers);
00081 }
00082 
00083 QStringList DBusModelObserver::getAttributesFromTransfer(TransferHandler *handler)
00084 {
00085     QStringList attributes;
00086     QString status = (handler->status () == Job::Running) ? "1" : "0";
00087 
00088     attributes << handler->source().fileName();
00089     attributes << QString::number(handler->percent());
00090     attributes << QString::number(handler->totalSize());
00091     attributes << status;
00092     attributes << QString::number(handler->speed());
00093 
00094     return attributes;
00095 }

kget

Skip menu "kget"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members

kdenetwork

Skip menu "kdenetwork"
  • kget
  • kopete
  •   kopete
  •   libkopete
  •       libpapillon
  • krfb
Generated for kdenetwork by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal