Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/kget/core/jobqueue.cpp b/kget/core/jobqueue.cpp
- index 6948f68..b2b7813 100644
- --- a/kget/core/jobqueue.cpp
- +++ b/kget/core/jobqueue.cpp
- @@ -85,7 +85,14 @@ void JobQueue::append(Job * job)
- {
- m_jobs.append(job);
- - m_scheduler->jobQueueAddedJobEvent(this, job);
- + m_scheduler->jobQueueAddedJobEvent(this, job);
- +}
- +
- +void JobQueue::append(const QList<Job*> &jobs)
- +{
- + m_jobs.append(jobs);
- +
- + m_scheduler->jobQueueAddedJobsEvent(this, jobs);
- }
- void JobQueue::prepend(Job * job)
- @@ -111,6 +118,15 @@ void JobQueue::remove(Job * job)
- m_scheduler->jobQueueRemovedJobEvent(this, job);
- }
- +void JobQueue::remove(const QList<Job*> jobs)
- +{
- + foreach (Job *job, jobs) {
- + m_jobs.removeAll(job);
- + }
- +
- + m_scheduler->jobQueueRemovedJobsEvent(this, jobs);
- +}
- +
- void JobQueue::move(Job * job, Job * after)
- {
- kDebug(5001) << "JobQueue::move";
- diff --git a/kget/core/jobqueue.h b/kget/core/jobqueue.h
- index 643edfa..b8a2aa2 100644
- --- a/kget/core/jobqueue.h
- +++ b/kget/core/jobqueue.h
- @@ -112,6 +112,13 @@ class KGET_EXPORT JobQueue : public QObject
- void append(Job * job);
- /**
- + * appends jobs to the current queue
- + *
- + * @param jobs to append to the current queue
- + */
- + void append(const QList<Job*> &jobs);
- +
- + /**
- * prepends a job to the current queue
- *
- * @param job The job to prepend to the current queue
- @@ -134,6 +141,13 @@ class KGET_EXPORT JobQueue : public QObject
- void remove(Job * job);
- /**
- + * removes jobs from the current queue
- + *
- + * @param jobs The jobs to remove from the current queue
- + */
- + void remove(const QList<Job*> jobs);
- +
- + /**
- * Moves a job in the queue. Both the given jobs must belong to this queue
- *
- * @param job The job to move
- diff --git a/kget/core/scheduler.cpp b/kget/core/scheduler.cpp
- index 4292957..03ee001 100644
- --- a/kget/core/scheduler.cpp
- +++ b/kget/core/scheduler.cpp
- @@ -1,6 +1,7 @@
- /* This file is part of the KDE project
- Copyright (C) 2004 Dario Massarin <nekkar@libero.it>
- + Coypright (C) 2010 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
- @@ -104,6 +105,14 @@ void Scheduler::jobQueueAddedJobEvent(JobQueue * queue, Job * job)
- updateQueue(queue);
- }
- +void Scheduler::jobQueueAddedJobsEvent(JobQueue *queue, const QList<Job*> jobs)
- +{
- + Q_UNUSED(jobs)
- +
- + updateQueue(queue);
- +}
- +
- +
- void Scheduler::jobQueueRemovedJobEvent(JobQueue * queue, Job * job)
- {
- Q_UNUSED(job)
- @@ -111,6 +120,13 @@ void Scheduler::jobQueueRemovedJobEvent(JobQueue * queue, Job * job)
- updateQueue(queue);
- }
- +void Scheduler::jobQueueRemovedJobsEvent(JobQueue *queue, const QList<Job*> jobs)
- +{
- + Q_UNUSED(jobs)
- +
- + updateQueue(queue);
- +}
- +
- void Scheduler::jobChangedEvent(Job * job, Job::Status status)
- {
- kDebug(5001) << "Scheduler::jobChangedEvent (job=" << job << " status=" << status << ")";
- diff --git a/kget/core/scheduler.h b/kget/core/scheduler.h
- index 5fe54ec..c2f243b 100644
- --- a/kget/core/scheduler.h
- +++ b/kget/core/scheduler.h
- @@ -1,6 +1,7 @@
- /* This file is part of the KDE project
- Copyright (C) 2005 Dario Massarin <nekkar@libero.it>
- + Coypright (C) 2010 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
- @@ -105,7 +106,9 @@ class Scheduler : public QObject
- virtual void jobQueueChangedEvent(JobQueue * queue, JobQueue::Status status);
- virtual void jobQueueMovedJobEvent(JobQueue * queue, Job * job);
- virtual void jobQueueAddedJobEvent(JobQueue * queue, Job * job);
- + virtual void jobQueueAddedJobsEvent(JobQueue *queue, const QList<Job*> jobs);
- virtual void jobQueueRemovedJobEvent(JobQueue * queue, Job * job);
- + virtual void jobQueueRemovedJobsEvent(JobQueue *queue, const QList<Job*> jobs);
- //Job notifications
- virtual void jobChangedEvent(Job * job, Job::Status status);
- diff --git a/kget/core/transfergroup.cpp b/kget/core/transfergroup.cpp
- index c02d074..b45c167 100644
- --- a/kget/core/transfergroup.cpp
- +++ b/kget/core/transfergroup.cpp
- @@ -85,19 +85,23 @@ void TransferGroup::setStatus(Status queueStatus)
- void TransferGroup::append(Transfer * transfer)
- {
- - kDebug(5001) << "TransferGroup::append";
- + JobQueue::append(transfer);
- - Transfer * after;
- - if(size() == 0)
- - after = 0;
- - else
- - after = static_cast<Transfer *> (last());
- + calculateSpeedLimits();
- +}
- - JobQueue::append(transfer);
- +void TransferGroup::append(const QList<Transfer*> &transfers)
- +{
- + QList<Job*> jobs;
- + foreach (Transfer *transfer, transfers) {
- + jobs << transfer;
- + }
- + JobQueue::append(jobs);
- calculateSpeedLimits();
- }
- +
- void TransferGroup::prepend(Transfer * transfer)
- {
- JobQueue::prepend(transfer);
- @@ -119,6 +123,17 @@ void TransferGroup::remove(Transfer * transfer)
- calculateSpeedLimits();
- }
- +void TransferGroup::remove(const QList<Transfer*> &transfers)
- +{
- + QList<Job*> jobs;
- + foreach (Transfer *transfer, transfers) {
- + jobs << transfer;
- + }
- + JobQueue::remove(jobs);
- +
- + calculateSpeedLimits();
- +}
- +
- void TransferGroup::move(Transfer * transfer, Transfer * after)
- {
- if(transfer == after)
- diff --git a/kget/core/transfergroup.h b/kget/core/transfergroup.h
- index 81e2bc1..c369f0d 100644
- --- a/kget/core/transfergroup.h
- +++ b/kget/core/transfergroup.h
- @@ -2,6 +2,7 @@
- Copyright (C) 2005 Dario Massarin <nekkar@libero.it>
- Copyright (C) 2009 Lukas Appelhans <l.appelhans@gmx.de>
- + Coypright (C) 2010 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
- @@ -77,6 +78,13 @@ class KGET_EXPORT TransferGroup : public JobQueue
- void append(Transfer * transfer);
- /**
- + * Appends new transfers to the list of the transfers
- + *
- + * @param transfers to append
- + */
- + void append(const QList<Transfer*> &transfer);
- +
- + /**
- * Prepends a new transfer to the list of the transfers
- *
- * @param transfer the transfer to prepend
- @@ -99,6 +107,13 @@ class KGET_EXPORT TransferGroup : public JobQueue
- void remove(Transfer * transfer);
- /**
- + * Removes the given transfers from the list of the transfers
- + *
- + * @param transfers the transfers to remove
- + */
- + void remove(const QList<Transfer*> &transfers);
- +
- + /**
- * Moves a transfer in the list
- *
- * @param transfer The transfer to move. Note that this transfer can
- diff --git a/kget/core/transfertreemodel.cpp b/kget/core/transfertreemodel.cpp
- index 736c272..3bae8b9 100644
- --- a/kget/core/transfertreemodel.cpp
- +++ b/kget/core/transfertreemodel.cpp
- @@ -238,8 +238,8 @@ void TransferTreeModel::addTransfers(const QList<Transfer*> &transfers, Transfer
- //now create and add the new items
- QList<TransferHandler*> handlers;
- + group->append(transfers);
- foreach (Transfer *transfer, transfers) {
- - group->append(transfer);
- TransferHandler *handler = transfer->handler();
- handlers << handler;
- @@ -270,6 +270,7 @@ void TransferTreeModel::delTransfers(const QList<Transfer*> &t)
- //find all valid items and sort them according to their groups
- QHash<TransferGroup*, QList<TransferModelItem*> > groups;
- + QHash<TransferGroup*, QList<Transfer*> > groupsTransfer;
- {
- QList<Transfer*>::iterator it;
- QList<Transfer*>::iterator itEnd = transfers.end();
- @@ -278,6 +279,7 @@ void TransferTreeModel::delTransfers(const QList<Transfer*> &t)
- if (item) {
- handlers << (*it)->handler();
- groups[(*it)->group()] << item;
- + groupsTransfer[(*it)->group()] << *it;
- ++it;
- } else {
- it = transfers.erase(it);
- @@ -325,10 +327,17 @@ void TransferTreeModel::delTransfers(const QList<Transfer*> &t)
- foreach(Transfer *transfer, transfers) {
- QDBusConnection::sessionBus().unregisterObject(transfer->handler()->dBusObjectPath());
- - transfer->group()->remove(transfer);
- m_changedTransfers.removeAll(transfer->handler());
- }
- + {
- + QHash<TransferGroup*, QList<Transfer*> >::iterator it;
- + QHash<TransferGroup*, QList<Transfer*> >::iterator itEnd = groupsTransfer.end();
- + for (it = groupsTransfer.begin(); it != itEnd; ++it) {
- + it.key()->remove(it.value());
- + }
- + }
- +
- emit transfersRemovedEvent(handlers);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement