• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdenetwork API Reference
  • KDE Home
  • Contact Us
 

kget

  • sources
  • kde-4.12
  • kdenetwork
  • kget
  • core
transfergrouphandler.cpp
Go to the documentation of this file.
1 /* This file is part of the KDE project
2 
3  Copyright (C) 2005 Dario Massarin <nekkar@libero.it>
4  Copyright (C) 2008 Lukas Appelhans <l.appelhans@gmx.de>
5 
6  This program is free software; you can redistribute it and/or
7  modify it under the terms of the GNU General Public
8  License as published by the Free Software Foundation; either
9  version 2 of the License, or (at your option) any later version.
10 */
11 
12 #include "core/transfergrouphandler.h"
13 
14 #include "core/kgetkjobadapter.h"
15 #include "core/transferhandler.h"
16 #include "core/transfertreemodel.h"
17 #include "core/transfer.h"
18 #include "core/kget.h"
19 
20 #include <kdebug.h>
21 #include <kmenu.h>
22 #include <kaction.h>
23 #include <kactioncollection.h>
24 #include <klocale.h>
25 #include <kicon.h>
26 
27 TransferGroupHandler::TransferGroupHandler(Scheduler * scheduler, TransferGroup * parent)
28  : Handler(scheduler, parent),
29  m_group(parent),
30  m_changesFlags(Transfer::Tc_None)
31 {
32 }
33 
34 TransferGroupHandler::~TransferGroupHandler()
35 {
36 }
37 
38 void TransferGroupHandler::start()
39 {
40  kDebug(5001) << "TransferGroupHandler::start()";
41  m_group->setStatus( JobQueue::Running );
42 }
43 
44 void TransferGroupHandler::stop()
45 {
46  kDebug(5001) << "TransferGroupHandler::stop()";
47  m_group->setStatus( JobQueue::Stopped );
48 }
49 
50 void TransferGroupHandler::move(QList<TransferHandler *> transfers, TransferHandler * after)
51 {
52  //Check that the given transfer (after) belongs to this group
53  if( after && (after->group() != this) )
54  return;
55 
56  QList<TransferHandler *>::iterator it = transfers.begin();
57  QList<TransferHandler *>::iterator itEnd = transfers.end();
58 
59  for( ; it!=itEnd ; ++it )
60  {
61  //Move the transfers in the JobQueue
62  if(after)
63  m_group->move( (*it)->m_transfer, after->m_transfer );
64  else
65  m_group->move( (*it)->m_transfer, 0 );
66 
67  after = *it;
68  }
69 }
70 
71 TransferHandler * TransferGroupHandler::operator[] (int i)
72 {
73 // kDebug(5001) << "TransferGroupHandler::operator[" << i << "]";
74 
75  return (*m_group)[i]->handler();
76 }
77 
78 void TransferGroupHandler::setName(const QString &name)
79 {
80  m_group->setName(name);
81 }
82 
83 QVariant TransferGroupHandler::data(int column)
84 {
85 // kDebug(5001) << "TransferGroupHandler::data(" << column << ")";
86 
87  switch(column)
88  {
89  case 0:
90  /*if (!m_group->supportsSpeedLimits() &&
91  (m_group->downloadLimit(Transfer::VisibleSpeedLimit) != 0 || m_group->uploadLimit(Transfer::VisibleSpeedLimit) != 0))
92  return name() + " - Does not supports SpeedLimits";//FIXME: Do a better text here
93  else*/
94  return name();
95  case 2:
96  if(m_group->size())
97  return i18np("1 Item", "%1 Items", m_group->size());
98  else
99  return QString();
100 /* if (totalSize() != 0)
101  return KIO::convertSize(totalSize());
102  else
103  return i18nc("not available", "n/a");*/
104  case 3:
105 // return QString::number(percent())+'%'; // display progressbar instead
106  return QVariant();
107  case 4:
108  if (downloadSpeed() == 0)
109  {
110  return QString();
111  }
112  else
113  return i18n("%1/s", KIO::convertSize(downloadSpeed()));
114  default:
115  return QVariant();
116  }
117 }
118 
119 TransferGroup::ChangesFlags TransferGroupHandler::changesFlags()
120 {
121  return m_changesFlags;
122 }
123 
124 void TransferGroupHandler::resetChangesFlags()
125 {
126  m_changesFlags = 0;
127 }
128 
129 int TransferGroupHandler::indexOf(TransferHandler * transfer)
130 {
131  return m_group->indexOf(transfer->m_transfer);
132 }
133 
134 const QList<TransferHandler *> TransferGroupHandler::transfers()
135 {
136  QList<TransferHandler *> transfers;
137 
138  TransferGroup::iterator it = m_group->begin();
139  TransferGroup::iterator itEnd = m_group->end();
140 
141  for( ; it!=itEnd ; ++it )
142  {
143  transfers.append((static_cast<Transfer *>(*it))->handler());
144  }
145  return transfers;
146 }
147 
148 const QList<QAction *> & TransferGroupHandler::actions()
149 {
150  createActions();
151 
152  return m_actions;
153 }
154 
155 void TransferGroupHandler::setGroupChange(ChangesFlags change, bool notifyModel)
156 {
157  m_changesFlags |= change;
158 
159  if (notifyModel)
160  m_group->model()->postDataChangedEvent(this);
161 }
162 
163 void TransferGroupHandler::createActions()
164 {
165  if( !m_actions.empty() )
166  return;
167 
168  QAction *startAction = KGet::actionCollection()->addAction("transfer_group_start");
169  startAction->setText(i18nc("start transfergroup downloads", "Start"));
170  startAction->setIcon(KIcon("media-playback-start"));
171  QObject::connect(startAction, SIGNAL(triggered()), SLOT(start()));
172  m_actions.append(startAction);
173 
174  QAction *stopAction = KGet::actionCollection()->addAction("transfer_group_stop");
175  stopAction->setText(i18nc("stop transfergroup downloads", "Stop"));
176  stopAction->setIcon(KIcon("media-playback-pause"));
177  QObject::connect(stopAction, SIGNAL(triggered()), SLOT(stop()));
178  m_actions.append(stopAction);
179 
180 }
181 
182 #include "transfergrouphandler.moc"
TransferGroup::move
void move(Transfer *transfer, Transfer *after)
Moves a transfer in the list.
Definition: transfergroup.cpp:153
TransferHandler
Class TransferHandler:
Definition: transferhandler.h:48
TransferGroup
class TransferGroup:
Definition: transfergroup.h:46
Scheduler
Scheduler class: what handle all the jobs in kget.
Definition: scheduler.h:32
TransferGroupHandler::changesFlags
ChangesFlags changesFlags()
Definition: transfergrouphandler.cpp:119
TransferGroupHandler::start
void start()
These are all JobQueue-related functions.
Definition: transfergrouphandler.cpp:38
transfertreemodel.h
TransferGroup::setName
void setName(const QString &name)
Set the group name.
Definition: transfergroup.h:158
JobQueue::size
int size() const
Definition: jobqueue.h:72
TransferGroupHandler::~TransferGroupHandler
~TransferGroupHandler()
Definition: transfergrouphandler.cpp:34
JobQueue::Running
Definition: jobqueue.h:36
kgetkjobadapter.h
TransferGroupHandler::TransferGroupHandler
TransferGroupHandler(Scheduler *scheduler, TransferGroup *parent)
Definition: transfergrouphandler.cpp:27
TransferTreeModel::postDataChangedEvent
void postDataChangedEvent(TransferHandler *transfer)
Definition: transfertreemodel.cpp:509
TransferGroup::setStatus
void setStatus(Status queueStatus)
This function is reimplemented by JobQueue::setStatus.
Definition: transfergroup.cpp:95
TransferGroupHandler::indexOf
int indexOf(TransferHandler *transfer)
Definition: transfergrouphandler.cpp:129
TransferGroup::model
TransferTreeModel * model()
Definition: transfergroup.h:288
TransferGroupHandler::data
QVariant data(int column)
Definition: transfergrouphandler.cpp:83
TransferGroupHandler::name
const QString & name()
Definition: transfergrouphandler.h:83
transfergrouphandler.h
JobQueue::begin
iterator begin()
Definition: jobqueue.h:57
TransferGroupHandler::actions
const QList< QAction * > & actions()
Definition: transfergrouphandler.cpp:148
KGet::actionCollection
static KActionCollection * actionCollection()
Definition: kget.cpp:631
TransferGroupHandler::setName
void setName(const QString &name)
Set the group name.
Definition: transfergrouphandler.cpp:78
TransferGroupHandler::operator[]
TransferHandler * operator[](int i)
Definition: transfergrouphandler.cpp:71
Handler
Definition: handler.h:17
TransferGroupHandler::downloadSpeed
int downloadSpeed() const
Definition: transfergrouphandler.h:112
TransferHandler::group
TransferGroupHandler * group() const
Definition: transferhandler.h:88
transferhandler.h
JobQueue::Stopped
Definition: jobqueue.h:36
TransferGroupHandler::transfers
const QList< TransferHandler * > transfers()
Definition: transfergrouphandler.cpp:134
kget.h
TransferGroupHandler::stop
void stop()
Definition: transfergrouphandler.cpp:44
TransferGroupHandler::move
void move(QList< TransferHandler * > transfers, TransferHandler *after)
Moves a list of transfers belonging to this group to a new position, after the transfer named "after"...
Definition: transfergrouphandler.cpp:50
transfer.h
TransferGroup::ChangesFlags
int ChangesFlags
Definition: transfergroup.h:64
JobQueue::end
iterator end()
Definition: jobqueue.h:62
JobQueue::indexOf
int indexOf(Job *job) const
Definition: jobqueue.h:80
Transfer
Definition: transfer.h:36
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:53:17 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kget

Skip menu "kget"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdenetwork API Reference

Skip menu "kdenetwork API Reference"
  • kget
  • kopete
  •   kopete
  •   libkopete
  • krdc
  • krfb

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal