Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/kget/core/kget.cpp b/kget/core/kget.cpp
- index c819408..b8792fa 100644
- --- a/kget/core/kget.cpp
- +++ b/kget/core/kget.cpp
- @@ -100,28 +100,21 @@ bool KGet::addGroup(const QString& groupName)
- return true;
- }
- -void KGet::delGroup(TransferGroupHandler * group, bool askUser)
- +void KGet::delGroup(TransferGroupHandler *group, bool askUser)
- {
- - TransferGroup * g = group->m_group;
- - if (group)
- - {
- - if (askUser) {
- - QWidget * configDialog = KConfigDialog::exists("preferences");
- - if (KMessageBox::warningYesNo(configDialog ? configDialog : m_mainWindow,
- - i18n("Are you sure that you want to remove the group named %1?", g->name()),
- - i18n("Remove Group"),
- - KStandardGuiItem::remove(), KStandardGuiItem::cancel()) != KMessageBox::Yes)
- - return;
- - }
- - JobQueue::iterator begin = g->begin();
- - JobQueue::iterator end = g->end();
- - for (; begin != end; begin++) {
- - Transfer *transfer = static_cast<Transfer*>(*begin);
- - m_transferTreeModel->delTransfer(transfer);//Unregister transfers from model first, they will get deleted by the group when destructing
- - }
- - m_transferTreeModel->delGroup(g);
- - g->deleteLater();
- + TransferGroup *g = group->m_group;
- +
- + if (askUser) {
- + QWidget *configDialog = KConfigDialog::exists("preferences");
- + if (KMessageBox::warningYesNo(configDialog ? configDialog : m_mainWindow,
- + i18n("Are you sure that you want to remove the group named %1?", g->name()),
- + i18n("Remove Group"),
- + KStandardGuiItem::remove(), KStandardGuiItem::cancel()) != KMessageBox::Yes)
- + return;
- }
- +
- + m_transferTreeModel->delGroup(g);
- + g->deleteLater();
- }
- void KGet::delGroups(QList<TransferGroupHandler*> groups, bool askUser)
- @@ -749,8 +742,8 @@ KGet::KGet()
- QObject::connect(m_transferTreeModel, SIGNAL(transferAddedEvent(TransferHandler *, TransferGroupHandler *)),
- m_jobManager, SLOT(slotTransferAdded(TransferHandler *, TransferGroupHandler *)));
- - QObject::connect(m_transferTreeModel, SIGNAL(transferAboutToBeRemovedEvent(TransferHandler *, TransferGroupHandler *)),
- - m_jobManager, SLOT(slotTransferAboutToBeRemoved(TransferHandler *, TransferGroupHandler *)));
- + QObject::connect(m_transferTreeModel, SIGNAL(transfersAboutToBeRemovedEvent(QList<TransferHandler*>)),
- + m_jobManager, SLOT(slotTransfersAboutToBeRemoved(QList<TransferHandler*>)));
- QObject::connect(m_transferTreeModel, SIGNAL(transfersChangedEvent(QMap<TransferHandler *, Transfer::ChangesFlags>)),
- m_jobManager, SLOT(slotTransfersChanged(QMap<TransferHandler *, Transfer::ChangesFlags>)));
- @@ -1155,8 +1148,8 @@ GenericObserver::GenericObserver(QObject *parent)
- connect(KGet::model(), SIGNAL(transferAddedEvent(TransferHandler*, TransferGroupHandler*)),
- SLOT(transferAddedEvent(TransferHandler*, TransferGroupHandler*)));
- connect(KGet::model(), SIGNAL(groupAddedEvent(TransferGroupHandler*)), SLOT(groupAddedEvent(TransferGroupHandler*)));
- - connect(KGet::model(), SIGNAL(transferRemovedEvent(TransferHandler*, TransferGroupHandler*)),
- - SLOT(transferRemovedEvent(TransferHandler*, TransferGroupHandler*)));
- + connect(KGet::model(), SIGNAL(transfersRemovedEvent(QList<TransferHandler*>)),
- + SLOT(transfersRemovedEvent(QList<TransferHandler*>)));
- connect(KGet::model(), SIGNAL(transfersChangedEvent(QMap<TransferHandler*, Transfer::ChangesFlags>)),
- SLOT(transfersChangedEvent(QMap<TransferHandler*, Transfer::ChangesFlags>)));
- connect(KGet::model(), SIGNAL(groupsChangedEvent(QMap<TransferGroupHandler*, TransferGroup::ChangesFlags>)),
- @@ -1190,10 +1183,9 @@ void GenericObserver::transferAddedEvent(TransferHandler *handler, TransferGroup
- KGet::checkSystemTray();
- }
- -void GenericObserver::transferRemovedEvent(TransferHandler *handler, TransferGroupHandler *group)
- +void GenericObserver::transfersRemovedEvent(const QList<TransferHandler*> &handlers)
- {
- - Q_UNUSED(handler)
- - Q_UNUSED(group)
- + Q_UNUSED(handlers)
- requestSave();
- KGet::calculateGlobalSpeedLimits();
- KGet::checkSystemTray();
- diff --git a/kget/core/kget.h b/kget/core/kget.h
- index 6fb5ee6..e716ff5 100644
- --- a/kget/core/kget.h
- +++ b/kget/core/kget.h
- @@ -415,7 +415,7 @@ class GenericObserver : public QObject
- void groupAddedEvent(TransferGroupHandler *handler);
- void groupRemovedEvent(TransferGroupHandler *handler);
- void transferAddedEvent(TransferHandler *handler, TransferGroupHandler *group);
- - void transferRemovedEvent(TransferHandler *handler, TransferGroupHandler *group);
- + void transfersRemovedEvent(const QList<TransferHandler*> &handlers);
- void transfersChangedEvent(QMap<TransferHandler*, Transfer::ChangesFlags> transfers);
- void groupsChangedEvent(QMap<TransferGroupHandler*, TransferGroup::ChangesFlags> groups);
- void transferMovedEvent(TransferHandler *, TransferGroupHandler *);
- diff --git a/kget/core/kuiserverjobs.cpp b/kget/core/kuiserverjobs.cpp
- index 1f41191..e2e24a0 100644
- --- a/kget/core/kuiserverjobs.cpp
- +++ b/kget/core/kuiserverjobs.cpp
- @@ -2,7 +2,7 @@
- Copyright (C) 2007 by Javier Goday <jgoday@gmail.com>
- Copyright (C) 2009 by Dario Massarin <nekkar@libero.it>
- - Copyright (C) 2010 Matthias Fuchs <mat69@gmx.net>
- + Copyright (C) 2010 by Matthias Fuchs <mat69@gmx.net>
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public
- @@ -72,21 +72,21 @@ void KUiServerJobs::slotTransferAdded(TransferHandler * transfer, TransferGroupH
- unregisterJob(globalJob(), 0);
- }
- -void KUiServerJobs::slotTransferAboutToBeRemoved(TransferHandler * transfer, TransferGroupHandler * group)
- +void KUiServerJobs::slotTransfersAboutToBeRemoved(const QList<TransferHandler*> &transfers)
- {
- - Q_UNUSED(group)
- kDebug(5001);
- -
- - m_invalidTransfers.append(transfer);
- -
- - unregisterJob(transfer->kJobAdapter(), transfer);
- -
- - if(shouldBeShown(0)) {
- - globalJob()->update();
- - registerJob(globalJob(), 0);
- +
- + m_invalidTransfers << transfers;
- + foreach (TransferHandler *transfer, transfers) {
- + unregisterJob(transfer->kJobAdapter(), transfer);
- +
- + if (shouldBeShown(0)) {
- + globalJob()->update();
- + registerJob(globalJob(), 0);
- + } else {
- + unregisterJob(globalJob(), 0);
- + }
- }
- - else
- - unregisterJob(globalJob(), 0);
- }
- void KUiServerJobs::slotTransfersChanged(QMap<TransferHandler *, Transfer::ChangesFlags> transfers)
- diff --git a/kget/core/kuiserverjobs.h b/kget/core/kuiserverjobs.h
- index e702ad4..d8ae581 100644
- --- a/kget/core/kuiserverjobs.h
- +++ b/kget/core/kuiserverjobs.h
- @@ -2,6 +2,7 @@
- Copyright (C) 2007 by Javier Goday <jgoday@gmail.com>
- Copyright (C) 2009 by Dario Massarin <nekkar@libero.it>
- + Copyright (C) 2010 by Matthias Fuchs <mat69@gmx.net>
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public
- @@ -35,9 +36,9 @@ public:
- public slots:
- void slotTransferAdded(TransferHandler * transfer, TransferGroupHandler * group);
- - void slotTransferAboutToBeRemoved(TransferHandler * transfer, TransferGroupHandler * group);
- + void slotTransfersAboutToBeRemoved(const QList<TransferHandler*> &transfer);
- void slotTransfersChanged(QMap<TransferHandler *, Transfer::ChangesFlags> transfers);
- -
- +
- private:
- void registerJob(KJob * job, TransferHandler * transfer);
- void unregisterJob(KJob * job, TransferHandler * transfer);
- @@ -45,6 +46,7 @@ private:
- bool existRunningTransfers();
- KGetGlobalJob * globalJob();
- +private:
- QMap <TransferHandler *, KJob *> m_registeredJobs;
- QList <TransferHandler *> m_invalidTransfers;
- KGetGlobalJob *m_globalJob;
- diff --git a/kget/core/transfertreemodel.cpp b/kget/core/transfertreemodel.cpp
- index d903c73..4b4ed51 100644
- --- a/kget/core/transfertreemodel.cpp
- +++ b/kget/core/transfertreemodel.cpp
- @@ -201,11 +201,20 @@ void TransferTreeModel::addGroup(TransferGroup * group)
- void TransferTreeModel::delGroup(TransferGroup * group)
- {
- - GroupModelItem * item = itemFromTransferGroupHandler(group->handler());
- - if (item)
- - takeRow(item->row());
- - else
- + GroupModelItem *item = itemFromTransferGroupHandler(group->handler());
- + if (!item) {
- return;
- + }
- +
- + QList<Transfer*> transfers;
- + JobQueue::iterator it;
- + JobQueue::iterator itEnd = group->end();
- + for (it = group->begin(); it != itEnd; ++it) {
- + transfers << static_cast<Transfer*>(*it);
- + }
- + delTransfers(transfers);
- +
- + takeRow(item->row());
- m_changedGroups.removeAll(group->handler());
- @@ -238,16 +247,21 @@ void TransferTreeModel::addTransfer(Transfer * transfer, TransferGroup * group)
- void TransferTreeModel::delTransfers(const QList<Transfer*> &t)
- {
- QList<Transfer*> transfers = t;
- + QList<TransferHandler*> handlers;
- //find all valid items and sort them according to their groups
- QHash<TransferGroup*, QList<TransferModelItem*> > groups;
- + QHash<TransferGroup*, QList<TransferHandler*> > groupHandlers;
- {
- QList<Transfer*>::iterator it;
- QList<Transfer*>::iterator itEnd = transfers.end();
- for (it = transfers.begin(); it != itEnd; ) {
- TransferModelItem *item = itemFromTransferHandler((*it)->handler());
- if (item) {
- + TransferHandler *handler = (*it)->handler();
- + handlers << handler;
- groups[(*it)->group()] << item;
- + groupHandlers[(*it)->group()] << handler;
- ++it;
- } else {
- it = transfers.erase(it);
- @@ -255,9 +269,7 @@ void TransferTreeModel::delTransfers(const QList<Transfer*> &t)
- }
- }
- - foreach(Transfer *transfer, transfers) {
- - emit transferAboutToBeRemovedEvent(transfer->handler(), transfer->group()->handler());
- - }
- + emit transfersAboutToBeRemovedEvent(handlers);
- //remove the items from the model
- {
- @@ -299,32 +311,9 @@ void TransferTreeModel::delTransfers(const QList<Transfer*> &t)
- QDBusConnection::sessionBus().unregisterObject(transfer->handler()->dBusObjectPath());
- transfer->group()->remove(transfer);
- m_changedTransfers.removeAll(transfer->handler());
- -
- - emit transferRemovedEvent(transfer->handler(), transfer->group()->handler());
- }
- -}
- -
- -void TransferTreeModel::delTransfer(Transfer * transfer)
- -{
- - TransferModelItem * item = itemFromTransferHandler(transfer->handler());
- -
- - if (!item)
- - return;
- -
- - emit transferAboutToBeRemovedEvent(transfer->handler(), transfer->group()->handler());
- -
- - item->parent()->takeRow(item->row());
- -
- - QDBusConnection::sessionBus().unregisterObject(transfer->handler()->dBusObjectPath());
- -
- - TransferGroup * group = transfer->group();
- -
- - group->remove(transfer);
- - m_changedTransfers.removeAll(transfer->handler());
- -
- - m_transfers.removeAll(item);
- - emit transferRemovedEvent(transfer->handler(), group->handler());
- + emit transfersRemovedEvent(handlers);
- }
- TransferModelItem * TransferTreeModel::itemFromTransferHandler(TransferHandler * handler)
- diff --git a/kget/core/transfertreemodel.h b/kget/core/transfertreemodel.h
- index f4c8986..2809ac9 100644
- --- a/kget/core/transfertreemodel.h
- +++ b/kget/core/transfertreemodel.h
- @@ -105,7 +105,6 @@ class KGET_EXPORT TransferTreeModel : public QStandardItemModel
- void delGroup(TransferGroup * group);
- void addTransfer(Transfer * transfer, TransferGroup * group);
- - void delTransfer(Transfer * transfer);
- void delTransfers(const QList<Transfer*> &transfers);
- TransferModelItem * itemFromTransferHandler(TransferHandler * handler);
- @@ -148,8 +147,8 @@ class KGET_EXPORT TransferTreeModel : public QStandardItemModel
- void groupRemovedEvent(TransferGroupHandler *);
- void groupsChangedEvent(QMap<TransferGroupHandler *, TransferGroup::ChangesFlags>);
- void transferAddedEvent(TransferHandler *, TransferGroupHandler *);
- - void transferAboutToBeRemovedEvent(TransferHandler *, TransferGroupHandler *);
- - void transferRemovedEvent(TransferHandler *, TransferGroupHandler *);
- + void transfersAboutToBeRemovedEvent(const QList<TransferHandler*> &transfers);
- + void transfersRemovedEvent(const QList<TransferHandler*> &transfers);
- void transferMovedEvent(TransferHandler *, TransferGroupHandler *);
- void transfersChangedEvent(QMap<TransferHandler *, Transfer::ChangesFlags>);
- diff --git a/kget/dbus/dbuskgetwrapper.cpp b/kget/dbus/dbuskgetwrapper.cpp
- index 6bf6390..4daebfe 100644
- --- a/kget/dbus/dbuskgetwrapper.cpp
- +++ b/kget/dbus/dbuskgetwrapper.cpp
- @@ -45,7 +45,7 @@ DBusKGetWrapper::DBusKGetWrapper(MainWindow *parent)
- TransferTreeModel *model = KGet::model();
- connect(model, SIGNAL(transferAddedEvent(TransferHandler*,TransferGroupHandler*)), this, SLOT(slotTransferAdded(TransferHandler*)));
- - connect(model, SIGNAL(transferRemovedEvent(TransferHandler*, TransferGroupHandler*)), this, SLOT(slotTransferRemoved(TransferHandler*)));
- + connect(model, SIGNAL(transfersRemovedEvent(QList<TransferHandler*>)), this, SLOT(slotTransfersRemoved(QList<TransferHandler*>)));
- }
- DBusKGetWrapper::~DBusKGetWrapper()
- @@ -124,11 +124,17 @@ void DBusKGetWrapper::slotTransferAdded(TransferHandler *transfer)
- emit transferAdded(m_transfers[transfer].first, m_transfers[transfer].second);
- }
- -void DBusKGetWrapper::slotTransferRemoved(TransferHandler *transfer)
- +void DBusKGetWrapper::slotTransfersRemoved(const QList<TransferHandler*> &transfers)
- {
- - const QPair<QString, QString> removed = m_transfers[transfer];
- - m_transfers.remove(transfer);
- - emit transferRemoved(removed.first, removed.second);
- + QStringList urls;
- + QStringList objectPaths;
- + foreach (TransferHandler *transfer, transfers) {
- + const QPair<QString, QString> removed = m_transfers[transfer];
- + urls << removed.first;
- + objectPaths << removed.second;
- + }
- +
- + emit transfersRemoved(urls, objectPaths);
- }
- int DBusKGetWrapper::transfersSpeed() const
- diff --git a/kget/dbus/dbuskgetwrapper.h b/kget/dbus/dbuskgetwrapper.h
- index 8e249fe..574ee2c 100644
- --- a/kget/dbus/dbuskgetwrapper.h
- +++ b/kget/dbus/dbuskgetwrapper.h
- @@ -52,11 +52,11 @@ class DBusKGetWrapper : public QObject
- signals:
- void transferAddedRemoved();
- void transferAdded(const QString &url, const QString &dBusObjectPath);
- - void transferRemoved(const QString &url, const QString &dBusObjectPath);
- + void transfersRemoved(const QStringList &urls, const QStringList &dbusObjectPaths);
- private slots:
- void slotTransferAdded(TransferHandler *transfer);
- - void slotTransferRemoved(TransferHandler *transfer);
- + void slotTransfersRemoved(const QList<TransferHandler*> &transfers);
- private:
- MainWindow *m_mainWindow;
- diff --git a/kget/dbus/org.kde.kget.main.xml b/kget/dbus/org.kde.kget.main.xml
- index fee011a..402dafa 100644
- --- a/kget/dbus/org.kde.kget.main.xml
- +++ b/kget/dbus/org.kde.kget.main.xml
- @@ -45,9 +45,9 @@
- <arg name="url" type="s" direction="out"/>
- <arg name="dBusObjectPath" type="s" direction="out"/>
- </signal>
- - <signal name="transferRemoved">
- - <arg name="url" type="s" direction="out"/>
- - <arg name="dBusObjectPath" type="s" direction="out"/>
- + <signal name="transfersRemoved">
- + <arg name="urls" type="as" direction="out"/>
- + <arg name="dBusObjectPaths" type="as" direction="out"/>
- </signal>
- </interface>
- </node>
- diff --git a/kget/mainwindow.cpp b/kget/mainwindow.cpp
- index 7531c63..ebb3570 100644
- --- a/kget/mainwindow.cpp
- +++ b/kget/mainwindow.cpp
- @@ -424,7 +424,7 @@ void MainWindow::slotDelayedInit()
- }
- connect(KGet::model(), SIGNAL(transferAddedEvent(TransferHandler *, TransferGroupHandler *)), this, SLOT(slotUpdateTitlePercent()));
- - connect(KGet::model(), SIGNAL(transferRemovedEvent(TransferHandler *, TransferGroupHandler *)), this, SLOT(slotUpdateTitlePercent()));
- + connect(KGet::model(), SIGNAL(transfersRemovedEvent(QList<TransferHandler*>)), this, SLOT(slotUpdateTitlePercent()));
- connect(KGet::model(), SIGNAL(transfersChangedEvent(QMap<TransferHandler *, Transfer::ChangesFlags>)),
- SLOT(slotTransfersChanged(QMap<TransferHandler *, Transfer::ChangesFlags>)));
- connect(KGet::model(), SIGNAL(groupsChangedEvent(QMap<TransferGroupHandler *, TransferGroup::ChangesFlags>)),
- diff --git a/kget/plasma/engine/kgetengine.cpp b/kget/plasma/engine/kgetengine.cpp
- index ae47c2f..92d714b 100644
- --- a/kget/plasma/engine/kgetengine.cpp
- +++ b/kget/plasma/engine/kgetengine.cpp
- @@ -77,7 +77,7 @@ void KGetEngine::getKGetData(const QString &name)
- if (!m_kget) {
- m_kget = new OrgKdeKgetMainInterface(KGET_DBUS_SERVICE, KGET_DBUS_PATH, QDBusConnection::sessionBus(), this);
- connect(m_kget, SIGNAL(transferAdded(QString,QString)), this, SLOT(slotTransferAdded(QString,QString)));
- - connect(m_kget, SIGNAL(transferRemoved(QString,QString)), this, SLOT(slotTransferRemoved(QString,QString)));
- + connect(m_kget, SIGNAL(transfersRemoved(QStringList,QStringList)), this, SLOT(slotTransfersRemoved(QStringList,QStringList)));
- }
- setData(name, "error", false);
- @@ -101,7 +101,7 @@ void KGetEngine::slotTransferAdded(const QString &url, const QString &dBusObject
- setData(name, "transferAdded", added);
- }
- -void KGetEngine::slotTransferRemoved(const QString &url, const QString &dBusObjectPath)
- +void KGetEngine::transferRemoved(const QString &url, const QString &dBusObjectPath)
- {
- const QString name = "KGet";
- removeAllData(name);
- @@ -114,6 +114,14 @@ void KGetEngine::slotTransferRemoved(const QString &url, const QString &dBusObje
- setData(name, "transferRemoved", removed);
- }
- +//TODO investigate if this should be improved for speed reasons
- +void KGetEngine::slotTransfersRemoved(const QStringList &urls, const QStringList &dBusObjectPaths)
- +{
- + for (int i = 0; i < urls.count(); ++i) {
- + transferRemoved(urls[i], dBusObjectPaths[i]);
- + }
- +}
- +
- bool KGetEngine::isDBusServiceRegistered()
- {
- return interface->isServiceRegistered(KGET_DBUS_SERVICE);
- diff --git a/kget/plasma/engine/kgetengine.h b/kget/plasma/engine/kgetengine.h
- index db48e05..7a606db 100644
- --- a/kget/plasma/engine/kgetengine.h
- +++ b/kget/plasma/engine/kgetengine.h
- @@ -43,9 +43,10 @@ class KGetEngine : public Plasma::DataEngine
- void getKGetData(const QString &name);
- void updateData();
- void slotTransferAdded(const QString &url, const QString &dBusObjectPath);
- - void slotTransferRemoved(const QString &url, const QString &dBusObjectPath);
- + void slotTransfersRemoved(const QStringList &urls, const QStringList &dBusObjectPaths);
- private:
- + void transferRemoved(const QString &url, const QString &dBusObjectPath);
- bool isDBusServiceRegistered();
- private:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement