FloatingToolBar inherits now from QToolBar instead of QWidget:
[kdenetwork.git] / kget / dbus / dbusmodelobserver.cpp
blob6ddd6d50069e6c01c860c02ad4cf7cbdd458711d
1 /* This file is part of the KDE project
3 Copyright (C) 2007 by Javier Goday <jgoday@gmail.com>
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9 */
12 #include "dbusmodelobserver.h"
13 #include "core/kget.h"
14 #include "core/transfergrouphandler.h"
15 #include "core/transferhandler.h"
16 #include "core/job.h"
18 #include <QObject>
20 DBusModelObserver::DBusModelObserver(QObject *parent)
21 : m_transfers(),
22 m_transferGroupObserver(this),
23 m_transferGroupHandlers()
25 Q_UNUSED(parent)
27 // Add the observer to kget to see all operations through the transferGroups
28 KGet::addObserver(this);
30 QObject::connect(&m_transferGroupObserver, SIGNAL(transferAdded(TransferHandler *)),
31 this, SLOT(addTransferHandler(TransferHandler *)));
32 QObject::connect(&m_transferGroupObserver, SIGNAL(transferDeleted(TransferHandler *)) ,
33 this, SLOT(deleteTransferHandler(TransferHandler *)));
34 QObject::connect(&m_transferGroupObserver, SIGNAL(transferGroupChanged(TransferGroupHandler *)),
35 this, SLOT(slotTransferGroupChanged(TransferGroupHandler *)));
38 void DBusModelObserver::addedTransferGroupEvent(TransferGroupHandler *group)
40 group->addObserver(&m_transferGroupObserver);
42 m_transferGroupHandlers.append(group);
45 void DBusModelObserver::removedTransferGroupEvent(TransferGroupHandler *group)
47 group->delObserver(&m_transferGroupObserver);
49 m_transferGroupHandlers.removeAll(group);
52 QVariantMap DBusModelObserver::transfers() const
54 return m_transfers;
57 int DBusModelObserver::transfersSpeed() const
59 return m_speed;
62 void DBusModelObserver::addTransferHandler(TransferHandler *handler)
64 m_transfers[handler->source().pathOrUrl()] = getAttributesFromTransfer(handler);
67 void DBusModelObserver::deleteTransferHandler(TransferHandler *handler)
69 m_transfers.remove(handler->source().pathOrUrl());
72 void DBusModelObserver::slotTransferGroupChanged(TransferGroupHandler *handler)
74 // TODO: update the this transfers in the transfers map
75 foreach(TransferHandler *t_handler, handler->transfers()) {
76 m_transfers[t_handler->source().pathOrUrl()] = getAttributesFromTransfer(t_handler);
79 m_speed = handler->speed();
80 // emit transfersChanged(m_transfers);
83 QStringList DBusModelObserver::getAttributesFromTransfer(TransferHandler *handler)
85 QStringList attributes;
86 QString status = (handler->status () == Job::Running) ? "1" : "0";
88 attributes << handler->source().fileName();
89 attributes << QString::number(handler->percent());
90 attributes << QString::number(handler->totalSize());
91 attributes << status;
92 attributes << QString::number(handler->downloadSpeed());
94 return attributes;