Advertisement
Guest User

Untitled

a guest
Jun 13th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 14.74 KB | None | 0 0
  1. diff --git a/kget/core/kget.cpp b/kget/core/kget.cpp
  2. index c819408..476491e 100644
  3. --- a/kget/core/kget.cpp
  4. +++ b/kget/core/kget.cpp
  5. @@ -751,6 +751,8 @@ KGet::KGet()
  6.                       m_jobManager,        SLOT(slotTransferAdded(TransferHandler *, TransferGroupHandler *)));
  7.      QObject::connect(m_transferTreeModel, SIGNAL(transferAboutToBeRemovedEvent(TransferHandler *, TransferGroupHandler *)),
  8.                       m_jobManager,        SLOT(slotTransferAboutToBeRemoved(TransferHandler *, TransferGroupHandler *)));
  9. +    QObject::connect(m_transferTreeModel, SIGNAL(transfersAboutToBeRemovedEvent(QList<TransferHandler*>, TransferGroupHandler *)),
  10. +                     m_jobManager,        SLOT(slotTransfersAboutToBeRemoved(QList<TransferHandler*>, TransferGroupHandler *)));
  11.      QObject::connect(m_transferTreeModel, SIGNAL(transfersChangedEvent(QMap<TransferHandler *, Transfer::ChangesFlags>)),
  12.                       m_jobManager,        SLOT(slotTransfersChanged(QMap<TransferHandler *, Transfer::ChangesFlags>)));
  13.              
  14. @@ -1157,6 +1159,8 @@ GenericObserver::GenericObserver(QObject *parent)
  15.      connect(KGet::model(), SIGNAL(groupAddedEvent(TransferGroupHandler*)), SLOT(groupAddedEvent(TransferGroupHandler*)));
  16.      connect(KGet::model(), SIGNAL(transferRemovedEvent(TransferHandler*, TransferGroupHandler*)),
  17.                             SLOT(transferRemovedEvent(TransferHandler*, TransferGroupHandler*)));
  18. +    connect(KGet::model(), SIGNAL(transfersRemovedEvent(QList<TransferHandler*>, TransferGroupHandler*)),
  19. +                           SLOT(transfersRemovedEvent(QList<TransferHandler*>, TransferGroupHandler*)));
  20.      connect(KGet::model(), SIGNAL(transfersChangedEvent(QMap<TransferHandler*, Transfer::ChangesFlags>)),
  21.                             SLOT(transfersChangedEvent(QMap<TransferHandler*, Transfer::ChangesFlags>)));
  22.      connect(KGet::model(), SIGNAL(groupsChangedEvent(QMap<TransferGroupHandler*, TransferGroup::ChangesFlags>)),
  23. @@ -1192,7 +1196,12 @@ void GenericObserver::transferAddedEvent(TransferHandler *handler, TransferGroup
  24.  
  25.  void GenericObserver::transferRemovedEvent(TransferHandler *handler, TransferGroupHandler *group)
  26.  {
  27. -    Q_UNUSED(handler)
  28. +    transfersRemovedEvent(QList<TransferHandler*>() << handler, group);
  29. +}
  30. +
  31. +void GenericObserver::transfersRemovedEvent(const QList<TransferHandler*> &handlers, TransferGroupHandler *group)
  32. +{
  33. +    Q_UNUSED(handlers)
  34.      Q_UNUSED(group)
  35.      requestSave();
  36.      KGet::calculateGlobalSpeedLimits();
  37. diff --git a/kget/core/kget.h b/kget/core/kget.h
  38. index 6fb5ee6..99e6034 100644
  39. --- a/kget/core/kget.h
  40. +++ b/kget/core/kget.h
  41. @@ -416,8 +416,9 @@ class GenericObserver : public QObject
  42.          void groupRemovedEvent(TransferGroupHandler *handler);
  43.          void transferAddedEvent(TransferHandler *handler, TransferGroupHandler *group);
  44.          void transferRemovedEvent(TransferHandler *handler, TransferGroupHandler *group);
  45. -        void transfersChangedEvent(QMap<TransferHandler*, Transfer::ChangesFlags> transfers);
  46. -        void groupsChangedEvent(QMap<TransferGroupHandler*, TransferGroup::ChangesFlags> groups);
  47. +        void transfersRemovedEvent(const QList<TransferHandler*> &handlers, TransferGroupHandler *group);
  48. +        void transfersChangedEvent(QMap<TransferHandler*, Transfer::ChangesFlags> transfers);//TODO by reference
  49. +        void groupsChangedEvent(QMap<TransferGroupHandler*, TransferGroup::ChangesFlags> groups);//TODO by reference
  50.          void transferMovedEvent(TransferHandler *, TransferGroupHandler *);
  51.  
  52.      private slots:
  53. diff --git a/kget/core/kuiserverjobs.cpp b/kget/core/kuiserverjobs.cpp
  54. index 1f41191..ae68f4c 100644
  55. --- a/kget/core/kuiserverjobs.cpp
  56. +++ b/kget/core/kuiserverjobs.cpp
  57. @@ -2,7 +2,7 @@
  58.  
  59.     Copyright (C) 2007 by Javier Goday <jgoday@gmail.com>
  60.     Copyright (C) 2009 by Dario Massarin <nekkar@libero.it>
  61. -   Copyright (C) 2010 Matthias Fuchs <mat69@gmx.net>
  62. +   Copyright (C) 2010 by Matthias Fuchs <mat69@gmx.net>
  63.  
  64.     This program is free software; you can redistribute it and/or
  65.     modify it under the terms of the GNU General Public
  66. @@ -72,6 +72,13 @@ void KUiServerJobs::slotTransferAdded(TransferHandler * transfer, TransferGroupH
  67.          unregisterJob(globalJob(), 0);
  68.  }
  69.  
  70. +void KUiServerJobs::slotTransfersAboutToBeRemoved(const QList<TransferHandler*> &transfers, TransferGroupHandler *group)
  71. +{
  72. +    foreach (TransferHandler *transfer, transfers) {
  73. +        slotTransferAboutToBeRemoved(transfer, group);
  74. +    }
  75. +}
  76. +
  77.  void KUiServerJobs::slotTransferAboutToBeRemoved(TransferHandler * transfer, TransferGroupHandler * group)
  78.  {
  79.      Q_UNUSED(group)
  80. diff --git a/kget/core/kuiserverjobs.h b/kget/core/kuiserverjobs.h
  81. index e702ad4..d6d7842 100644
  82. --- a/kget/core/kuiserverjobs.h
  83. +++ b/kget/core/kuiserverjobs.h
  84. @@ -2,6 +2,7 @@
  85.  
  86.     Copyright (C) 2007 by Javier Goday <jgoday@gmail.com>
  87.     Copyright (C) 2009 by Dario Massarin <nekkar@libero.it>
  88. +   Copyright (C) 2010 by Matthias Fuchs <mat69@gmx.net>
  89.  
  90.     This program is free software; you can redistribute it and/or
  91.     modify it under the terms of the GNU General Public
  92. @@ -36,6 +37,7 @@ public:
  93.  public slots:
  94.      void slotTransferAdded(TransferHandler * transfer, TransferGroupHandler * group);
  95.      void slotTransferAboutToBeRemoved(TransferHandler * transfer, TransferGroupHandler * group);
  96. +    void slotTransfersAboutToBeRemoved(const QList<TransferHandler*> &transfer, TransferGroupHandler *group);
  97.      void slotTransfersChanged(QMap<TransferHandler *, Transfer::ChangesFlags> transfers);
  98.      
  99.  private:
  100. diff --git a/kget/core/transfertreemodel.cpp b/kget/core/transfertreemodel.cpp
  101. index d903c73..029bf61 100644
  102. --- a/kget/core/transfertreemodel.cpp
  103. +++ b/kget/core/transfertreemodel.cpp
  104. @@ -241,6 +241,7 @@ void TransferTreeModel::delTransfers(const QList<Transfer*> &t)
  105.  
  106.      //find all valid items and sort them according to their groups
  107.      QHash<TransferGroup*, QList<TransferModelItem*> > groups;
  108. +    QHash<TransferGroup*, QList<TransferHandler*> > groupHandlers;//TODO better name
  109.      {
  110.          QList<Transfer*>::iterator it;
  111.          QList<Transfer*>::iterator itEnd = transfers.end();
  112. @@ -248,6 +249,7 @@ void TransferTreeModel::delTransfers(const QList<Transfer*> &t)
  113.              TransferModelItem *item = itemFromTransferHandler((*it)->handler());
  114.              if (item) {
  115.                  groups[(*it)->group()] << item;
  116. +                groupHandlers[(*it)->group()] << (*it)->handler();
  117.                  ++it;
  118.              } else {
  119.                  it = transfers.erase(it);
  120. @@ -255,8 +257,13 @@ void TransferTreeModel::delTransfers(const QList<Transfer*> &t)
  121.          }
  122.      }
  123.  
  124. -    foreach(Transfer *transfer, transfers) {
  125. -        emit transferAboutToBeRemovedEvent(transfer->handler(), transfer->group()->handler());
  126. +    //announce that transfers are going to be removed
  127. +    {
  128. +        QHash<TransferGroup*, QList<TransferHandler*> >::const_iterator it;
  129. +        QHash<TransferGroup*, QList<TransferHandler*> >::const_iterator itEnd = groupHandlers.constEnd();
  130. +        for (it = groupHandlers.constBegin(); it != itEnd; ++it) {
  131. +            emit transfersAboutToBeRemovedEvent(it.value(), it.key()->handler());
  132. +        }
  133.      }
  134.  
  135.      //remove the items from the model
  136. @@ -299,8 +306,15 @@ void TransferTreeModel::delTransfers(const QList<Transfer*> &t)
  137.          QDBusConnection::sessionBus().unregisterObject(transfer->handler()->dBusObjectPath());
  138.          transfer->group()->remove(transfer);
  139.          m_changedTransfers.removeAll(transfer->handler());
  140. +    }
  141.  
  142. -        emit transferRemovedEvent(transfer->handler(), transfer->group()->handler());
  143. +    //announce that transfers have been removed
  144. +    {
  145. +        QHash<TransferGroup*, QList<TransferHandler*> >::const_iterator it;
  146. +        QHash<TransferGroup*, QList<TransferHandler*> >::const_iterator itEnd = groupHandlers.constEnd();
  147. +        for (it = groupHandlers.constBegin(); it != itEnd; ++it) {
  148. +            emit transfersRemovedEvent(it.value(), it.key()->handler());
  149. +        }
  150.      }
  151.  }
  152.  
  153. diff --git a/kget/core/transfertreemodel.h b/kget/core/transfertreemodel.h
  154. index f4c8986..a37d548 100644
  155. --- a/kget/core/transfertreemodel.h
  156. +++ b/kget/core/transfertreemodel.h
  157. @@ -149,7 +149,9 @@ class KGET_EXPORT TransferTreeModel : public QStandardItemModel
  158.          void groupsChangedEvent(QMap<TransferGroupHandler *, TransferGroup::ChangesFlags>);
  159.          void transferAddedEvent(TransferHandler *, TransferGroupHandler *);
  160.          void transferAboutToBeRemovedEvent(TransferHandler *, TransferGroupHandler *);
  161. +        void transfersAboutToBeRemovedEvent(QList<TransferHandler*> transfers, TransferGroupHandler *group);
  162.          void transferRemovedEvent(TransferHandler *, TransferGroupHandler *);
  163. +        void transfersRemovedEvent(QList<TransferHandler*> transfers, TransferGroupHandler *group);
  164.          void transferMovedEvent(TransferHandler *, TransferGroupHandler *);
  165.          void transfersChangedEvent(QMap<TransferHandler *, Transfer::ChangesFlags>);
  166.  
  167. diff --git a/kget/dbus/dbuskgetwrapper.cpp b/kget/dbus/dbuskgetwrapper.cpp
  168. index 6bf6390..1dc8ebd 100644
  169. --- a/kget/dbus/dbuskgetwrapper.cpp
  170. +++ b/kget/dbus/dbuskgetwrapper.cpp
  171. @@ -46,6 +46,7 @@ DBusKGetWrapper::DBusKGetWrapper(MainWindow *parent)
  172.  
  173.      connect(model, SIGNAL(transferAddedEvent(TransferHandler*,TransferGroupHandler*)), this, SLOT(slotTransferAdded(TransferHandler*)));
  174.      connect(model, SIGNAL(transferRemovedEvent(TransferHandler*, TransferGroupHandler*)), this, SLOT(slotTransferRemoved(TransferHandler*)));
  175. +    connect(model, SIGNAL(transfersRemovedEvent(QList<TransferHandler*>, TransferGroupHandler*)), this, SLOT(slotTransfersRemoved(QList<TransferHandler*>)));
  176.  }
  177.  
  178.  DBusKGetWrapper::~DBusKGetWrapper()
  179. @@ -124,6 +125,19 @@ void DBusKGetWrapper::slotTransferAdded(TransferHandler *transfer)
  180.      emit transferAdded(m_transfers[transfer].first, m_transfers[transfer].second);
  181.  }
  182.  
  183. +void DBusKGetWrapper::slotTransfersRemoved(const QList<TransferHandler*> &transfers)
  184. +{
  185. +    QStringList urls;
  186. +    QStringList objectPaths;
  187. +    foreach (TransferHandler *transfer, transfers) {
  188. +        const QPair<QString, QString> removed = m_transfers[transfer];
  189. +        urls << removed.first;
  190. +        objectPaths << removed.second;
  191. +    }
  192. +
  193. +    emit transfersRemoved(urls, objectPaths);
  194. +}
  195. +
  196.  void DBusKGetWrapper::slotTransferRemoved(TransferHandler *transfer)
  197.  {
  198.      const QPair<QString, QString> removed = m_transfers[transfer];
  199. diff --git a/kget/dbus/dbuskgetwrapper.h b/kget/dbus/dbuskgetwrapper.h
  200. index 8e249fe..5d575d8 100644
  201. --- a/kget/dbus/dbuskgetwrapper.h
  202. +++ b/kget/dbus/dbuskgetwrapper.h
  203. @@ -53,10 +53,12 @@ class DBusKGetWrapper : public QObject
  204.          void transferAddedRemoved();
  205.          void transferAdded(const QString &url, const QString &dBusObjectPath);
  206.          void transferRemoved(const QString &url, const QString &dBusObjectPath);
  207. +        void transfersRemoved(const QStringList &urls, const QStringList &dbusObjectPaths);
  208.  
  209.      private slots:
  210.          void slotTransferAdded(TransferHandler *transfer);
  211. -        void slotTransferRemoved(TransferHandler *transfer);
  212. +        void slotTransferRemoved(TransferHandler *transfer);//NOTE maybe only use slotTransfersRemoved?
  213. +        void slotTransfersRemoved(const QList<TransferHandler*> &transfers);
  214.  
  215.      private:
  216.          MainWindow *m_mainWindow;
  217. diff --git a/kget/dbus/org.kde.kget.main.xml b/kget/dbus/org.kde.kget.main.xml
  218. index fee011a..2ecbacc 100644
  219. --- a/kget/dbus/org.kde.kget.main.xml
  220. +++ b/kget/dbus/org.kde.kget.main.xml
  221. @@ -49,5 +49,9 @@
  222.          <arg name="url" type="s" direction="out"/>
  223.          <arg name="dBusObjectPath" type="s" direction="out"/>
  224.      </signal>
  225. +    <signal name="transfersRemoved">
  226. +        <arg name="urls" type="as" direction="out"/>
  227. +        <arg name="dBusObjectPaths" type="as" direction="out"/>
  228. +    </signal>
  229.    </interface>
  230.  </node>
  231. diff --git a/kget/mainwindow.cpp b/kget/mainwindow.cpp
  232. index 7531c63..1bdb327 100644
  233. --- a/kget/mainwindow.cpp
  234. +++ b/kget/mainwindow.cpp
  235. @@ -425,6 +425,7 @@ void MainWindow::slotDelayedInit()
  236.  
  237.      connect(KGet::model(), SIGNAL(transferAddedEvent(TransferHandler *, TransferGroupHandler *)), this, SLOT(slotUpdateTitlePercent()));
  238.      connect(KGet::model(), SIGNAL(transferRemovedEvent(TransferHandler *, TransferGroupHandler *)), this, SLOT(slotUpdateTitlePercent()));
  239. +    connect(KGet::model(), SIGNAL(transfersRemovedEvent(QList<TransferHandler*>,TransferGroupHandler*)), this, SLOT(slotUpdateTitlePercent()));
  240.      connect(KGet::model(), SIGNAL(transfersChangedEvent(QMap<TransferHandler *, Transfer::ChangesFlags>)),
  241.                             SLOT(slotTransfersChanged(QMap<TransferHandler *, Transfer::ChangesFlags>)));
  242.      connect(KGet::model(), SIGNAL(groupsChangedEvent(QMap<TransferGroupHandler *, TransferGroup::ChangesFlags>)),
  243. diff --git a/kget/plasma/engine/kgetengine.cpp b/kget/plasma/engine/kgetengine.cpp
  244. index ae47c2f..f4727ee 100644
  245. --- a/kget/plasma/engine/kgetengine.cpp
  246. +++ b/kget/plasma/engine/kgetengine.cpp
  247. @@ -78,6 +78,7 @@ void KGetEngine::getKGetData(const QString &name)
  248.              m_kget = new OrgKdeKgetMainInterface(KGET_DBUS_SERVICE, KGET_DBUS_PATH, QDBusConnection::sessionBus(), this);
  249.              connect(m_kget, SIGNAL(transferAdded(QString,QString)), this, SLOT(slotTransferAdded(QString,QString)));
  250.              connect(m_kget, SIGNAL(transferRemoved(QString,QString)), this, SLOT(slotTransferRemoved(QString,QString)));
  251. +            connect(m_kget, SIGNAL(transfersRemoved(QStringList,QStringList)), this, SLOT(slotTransfersRemoved(QStringList,QStringList)));
  252.          }
  253.  
  254.          setData(name, "error", false);
  255. @@ -114,6 +115,14 @@ void KGetEngine::slotTransferRemoved(const QString &url, const QString &dBusObje
  256.      setData(name, "transferRemoved", removed);
  257.  }
  258.  
  259. +//TODO investigate if this should be improved for speed reasons
  260. +void KGetEngine::slotTransfersRemoved(const QStringList &urls, const QStringList &dBusObjectPaths)
  261. +{
  262. +    for (int i = 0; i < urls.count(); ++i) {
  263. +        slotTransferRemoved(urls[i], dBusObjectPaths[i]);
  264. +    }
  265. +}
  266. +
  267.  bool KGetEngine::isDBusServiceRegistered()
  268.  {
  269.      return interface->isServiceRegistered(KGET_DBUS_SERVICE);
  270. diff --git a/kget/plasma/engine/kgetengine.h b/kget/plasma/engine/kgetengine.h
  271. index db48e05..fbd1edd 100644
  272. --- a/kget/plasma/engine/kgetengine.h
  273. +++ b/kget/plasma/engine/kgetengine.h
  274. @@ -44,6 +44,7 @@ class KGetEngine : public Plasma::DataEngine
  275.          void updateData();
  276.          void slotTransferAdded(const QString &url, const QString &dBusObjectPath);
  277.          void slotTransferRemoved(const QString &url, const QString &dBusObjectPath);
  278. +        void slotTransfersRemoved(const QStringList &urls, const QStringList &dBusObjectPaths);
  279.  
  280.      private:
  281.          bool isDBusServiceRegistered();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement