Advertisement
Guest User

Untitled

a guest
Jun 14th, 2017
554
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.98 KB | None | 0 0
  1. diff --git a/kget/core/jobqueue.cpp b/kget/core/jobqueue.cpp
  2. index 6948f68..b2b7813 100644
  3. --- a/kget/core/jobqueue.cpp
  4. +++ b/kget/core/jobqueue.cpp
  5. @@ -85,7 +85,14 @@ void JobQueue::append(Job * job)
  6.  {
  7.      m_jobs.append(job);
  8.  
  9. -    m_scheduler->jobQueueAddedJobEvent(this, job);    
  10. +    m_scheduler->jobQueueAddedJobEvent(this, job);
  11. +}
  12. +
  13. +void JobQueue::append(const QList<Job*> &jobs)
  14. +{
  15. +    m_jobs.append(jobs);
  16. +
  17. +    m_scheduler->jobQueueAddedJobsEvent(this, jobs);
  18.  }
  19.  
  20.  void JobQueue::prepend(Job * job)
  21. @@ -111,6 +118,15 @@ void JobQueue::remove(Job * job)
  22.      m_scheduler->jobQueueRemovedJobEvent(this, job);
  23.  }
  24.  
  25. +void JobQueue::remove(const QList<Job*> jobs)
  26. +{
  27. +    foreach (Job *job, jobs) {
  28. +        m_jobs.removeAll(job);
  29. +    }
  30. +
  31. +    m_scheduler->jobQueueRemovedJobsEvent(this, jobs);
  32. +}
  33. +
  34.  void JobQueue::move(Job * job, Job * after)
  35.  {
  36.      kDebug(5001) << "JobQueue::move";
  37. diff --git a/kget/core/jobqueue.h b/kget/core/jobqueue.h
  38. index 643edfa..b8a2aa2 100644
  39. --- a/kget/core/jobqueue.h
  40. +++ b/kget/core/jobqueue.h
  41. @@ -112,6 +112,13 @@ class KGET_EXPORT JobQueue : public QObject
  42.          void append(Job * job);
  43.  
  44.          /**
  45. +         * appends jobs to the current queue
  46. +         *
  47. +         * @param jobs to append to the current queue
  48. +         */
  49. +        void append(const QList<Job*> &jobs);
  50. +
  51. +        /**
  52.           * prepends a job to the current queue
  53.           *
  54.           * @param job The job to prepend to the current queue
  55. @@ -134,6 +141,13 @@ class KGET_EXPORT JobQueue : public QObject
  56.          void remove(Job * job);
  57.  
  58.          /**
  59. +         * removes jobs from the current queue
  60. +         *
  61. +         * @param jobs The jobs to remove from the current queue
  62. +         */
  63. +        void remove(const QList<Job*> jobs);
  64. +
  65. +        /**
  66.           * Moves a job in the queue. Both the given jobs must belong to this queue
  67.           *
  68.           * @param job The job to move
  69. diff --git a/kget/core/scheduler.cpp b/kget/core/scheduler.cpp
  70. index 4292957..03ee001 100644
  71. --- a/kget/core/scheduler.cpp
  72. +++ b/kget/core/scheduler.cpp
  73. @@ -1,6 +1,7 @@
  74.  /* This file is part of the KDE project
  75.  
  76.     Copyright (C) 2004 Dario Massarin <nekkar@libero.it>
  77. +   Coypright (C) 2010 Matthias Fuchs <mat69@gmx.net>
  78.  
  79.     This program is free software; you can redistribute it and/or
  80.     modify it under the terms of the GNU General Public
  81. @@ -104,6 +105,14 @@ void Scheduler::jobQueueAddedJobEvent(JobQueue * queue, Job * job)
  82.      updateQueue(queue);
  83.  }
  84.  
  85. +void Scheduler::jobQueueAddedJobsEvent(JobQueue *queue, const QList<Job*> jobs)
  86. +{
  87. +    Q_UNUSED(jobs)
  88. +
  89. +    updateQueue(queue);
  90. +}
  91. +
  92. +
  93.  void Scheduler::jobQueueRemovedJobEvent(JobQueue * queue, Job * job)
  94.  {
  95.      Q_UNUSED(job)
  96. @@ -111,6 +120,13 @@ void Scheduler::jobQueueRemovedJobEvent(JobQueue * queue, Job * job)
  97.      updateQueue(queue);
  98.  }
  99.  
  100. +void Scheduler::jobQueueRemovedJobsEvent(JobQueue *queue, const QList<Job*> jobs)
  101. +{
  102. +    Q_UNUSED(jobs)
  103. +
  104. +    updateQueue(queue);
  105. +}
  106. +
  107.  void Scheduler::jobChangedEvent(Job * job, Job::Status status)
  108.  {
  109.      kDebug(5001) << "Scheduler::jobChangedEvent  (job=" << job << " status=" << status <<  ")";
  110. diff --git a/kget/core/scheduler.h b/kget/core/scheduler.h
  111. index 5fe54ec..c2f243b 100644
  112. --- a/kget/core/scheduler.h
  113. +++ b/kget/core/scheduler.h
  114. @@ -1,6 +1,7 @@
  115.  /* This file is part of the KDE project
  116.  
  117.     Copyright (C) 2005 Dario Massarin <nekkar@libero.it>
  118. +   Coypright (C) 2010 Matthias Fuchs <mat69@gmx.net>
  119.  
  120.     This program is free software; you can redistribute it and/or
  121.     modify it under the terms of the GNU General Public
  122. @@ -105,7 +106,9 @@ class Scheduler : public QObject
  123.          virtual void jobQueueChangedEvent(JobQueue * queue, JobQueue::Status status);
  124.          virtual void jobQueueMovedJobEvent(JobQueue * queue, Job * job);
  125.          virtual void jobQueueAddedJobEvent(JobQueue * queue, Job * job);
  126. +        virtual void jobQueueAddedJobsEvent(JobQueue *queue, const QList<Job*> jobs);
  127.          virtual void jobQueueRemovedJobEvent(JobQueue * queue, Job * job);
  128. +        virtual void jobQueueRemovedJobsEvent(JobQueue *queue, const QList<Job*> jobs);
  129.  
  130.          //Job notifications
  131.          virtual void jobChangedEvent(Job * job, Job::Status status);
  132. diff --git a/kget/core/transfergroup.cpp b/kget/core/transfergroup.cpp
  133. index c02d074..b45c167 100644
  134. --- a/kget/core/transfergroup.cpp
  135. +++ b/kget/core/transfergroup.cpp
  136. @@ -85,19 +85,23 @@ void TransferGroup::setStatus(Status queueStatus)
  137.  
  138.  void TransferGroup::append(Transfer * transfer)
  139.  {
  140. -    kDebug(5001) << "TransferGroup::append";
  141. +    JobQueue::append(transfer);
  142.  
  143. -    Transfer * after;
  144. -    if(size() == 0)
  145. -        after = 0;
  146. -    else
  147. -        after = static_cast<Transfer *> (last());
  148. +    calculateSpeedLimits();
  149. +}
  150.  
  151. -    JobQueue::append(transfer);
  152. +void TransferGroup::append(const QList<Transfer*> &transfers)
  153. +{
  154. +    QList<Job*> jobs;
  155. +    foreach (Transfer *transfer, transfers) {
  156. +        jobs << transfer;
  157. +    }
  158. +    JobQueue::append(jobs);
  159.  
  160.      calculateSpeedLimits();
  161.  }
  162.  
  163. +
  164.  void TransferGroup::prepend(Transfer * transfer)
  165.  {
  166.      JobQueue::prepend(transfer);
  167. @@ -119,6 +123,17 @@ void TransferGroup::remove(Transfer * transfer)
  168.      calculateSpeedLimits();
  169.  }
  170.  
  171. +void TransferGroup::remove(const QList<Transfer*> &transfers)
  172. +{
  173. +    QList<Job*> jobs;
  174. +    foreach (Transfer *transfer, transfers) {
  175. +        jobs << transfer;
  176. +    }
  177. +    JobQueue::remove(jobs);
  178. +
  179. +    calculateSpeedLimits();
  180. +}
  181. +
  182.  void TransferGroup::move(Transfer * transfer, Transfer * after)
  183.  {
  184.      if(transfer == after)
  185. diff --git a/kget/core/transfergroup.h b/kget/core/transfergroup.h
  186. index 81e2bc1..c369f0d 100644
  187. --- a/kget/core/transfergroup.h
  188. +++ b/kget/core/transfergroup.h
  189. @@ -2,6 +2,7 @@
  190.  
  191.     Copyright (C) 2005 Dario Massarin <nekkar@libero.it>
  192.     Copyright (C) 2009 Lukas Appelhans <l.appelhans@gmx.de>
  193. +   Coypright (C) 2010 Matthias Fuchs <mat69@gmx.net>
  194.  
  195.     This program is free software; you can redistribute it and/or
  196.     modify it under the terms of the GNU General Public
  197. @@ -77,6 +78,13 @@ class KGET_EXPORT TransferGroup : public JobQueue
  198.          void append(Transfer * transfer);
  199.  
  200.          /**
  201. +         * Appends new transfers to the list of the transfers
  202. +         *
  203. +         * @param transfers to append
  204. +         */
  205. +        void append(const QList<Transfer*> &transfer);
  206. +
  207. +        /**
  208.           * Prepends a new transfer to the list of the transfers
  209.           *
  210.           * @param transfer the transfer to prepend
  211. @@ -99,6 +107,13 @@ class KGET_EXPORT TransferGroup : public JobQueue
  212.          void remove(Transfer * transfer);
  213.  
  214.          /**
  215. +         * Removes the given transfers from the list of the transfers
  216. +         *
  217. +         * @param transfers the transfers to remove
  218. +         */
  219. +        void remove(const QList<Transfer*> &transfers);
  220. +
  221. +        /**
  222.           * Moves a transfer in the list
  223.           *
  224.           * @param transfer The transfer to move. Note that this transfer can
  225. diff --git a/kget/core/transfertreemodel.cpp b/kget/core/transfertreemodel.cpp
  226. index 736c272..3bae8b9 100644
  227. --- a/kget/core/transfertreemodel.cpp
  228. +++ b/kget/core/transfertreemodel.cpp
  229. @@ -238,8 +238,8 @@ void TransferTreeModel::addTransfers(const QList<Transfer*> &transfers, Transfer
  230.  
  231.      //now create and add the new items
  232.      QList<TransferHandler*> handlers;
  233. +    group->append(transfers);
  234.      foreach (Transfer *transfer, transfers) {
  235. -        group->append(transfer);
  236.          TransferHandler *handler = transfer->handler();
  237.          handlers << handler;
  238.  
  239. @@ -270,6 +270,7 @@ void TransferTreeModel::delTransfers(const QList<Transfer*> &t)
  240.  
  241.      //find all valid items and sort them according to their groups
  242.      QHash<TransferGroup*, QList<TransferModelItem*> > groups;
  243. +    QHash<TransferGroup*, QList<Transfer*> > groupsTransfer;
  244.      {
  245.          QList<Transfer*>::iterator it;
  246.          QList<Transfer*>::iterator itEnd = transfers.end();
  247. @@ -278,6 +279,7 @@ void TransferTreeModel::delTransfers(const QList<Transfer*> &t)
  248.              if (item) {
  249.                  handlers << (*it)->handler();
  250.                  groups[(*it)->group()] << item;
  251. +                groupsTransfer[(*it)->group()] << *it;
  252.                  ++it;
  253.              } else {
  254.                  it = transfers.erase(it);
  255. @@ -325,10 +327,17 @@ void TransferTreeModel::delTransfers(const QList<Transfer*> &t)
  256.  
  257.      foreach(Transfer *transfer, transfers) {
  258.          QDBusConnection::sessionBus().unregisterObject(transfer->handler()->dBusObjectPath());
  259. -        transfer->group()->remove(transfer);
  260.          m_changedTransfers.removeAll(transfer->handler());
  261.      }
  262.  
  263. +    {
  264. +        QHash<TransferGroup*, QList<Transfer*> >::iterator it;
  265. +        QHash<TransferGroup*, QList<Transfer*> >::iterator itEnd = groupsTransfer.end();
  266. +        for (it = groupsTransfer.begin(); it != itEnd; ++it) {
  267. +            it.key()->remove(it.value());
  268. +        }
  269. +    }
  270. +
  271.      emit transfersRemovedEvent(handlers);
  272.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement