• 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
transfergroup.h
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) 2009 Lukas Appelhans <l.appelhans@gmx.de>
5  Coypright (C) 2010 Matthias Fuchs <mat69@gmx.net>
6 
7  This program is free software; you can redistribute it and/or
8  modify it under the terms of the GNU General Public
9  License as published by the Free Software Foundation; either
10  version 2 of the License, or (at your option) any later version.
11 */
12 #ifndef GROUP_H
13 #define GROUP_H
14 
15 #include <QRegExp>
16 
17 #include <kio/netaccess.h>
18 #include <KIcon>
19 #include <KDebug>
20 
21 #include "jobqueue.h"
22 #include "../kget_export.h"
23 #include "transfer.h"
24 
25 #ifdef HAVE_NEPOMUK
26  #include <Nepomuk2/Tag>
27 #endif
28 
29 class QDomElement;
30 
31 class TransferGroupHandler;
32 class TransferTreeModel;
33 
46 class KGET_EXPORT TransferGroup : public JobQueue
47 {
48  Q_OBJECT
49  public:
50  enum GroupChange
51  {
52  Gc_None = 0x00000000,
53  // These flags respect the Model columns order
54  Gc_GroupName = 0x00000001,
55  Gc_Status = 0x00000002,
56  Gc_TotalSize = 0x00000004,
57  Gc_Percent = 0x00000008,
58  Gc_UploadSpeed = 0x00000010,
59  Gc_DownloadSpeed = 0x00000020,
60  // Misc
61  Gc_ProcessedSize = 0x00010000
62  };
63 
64  typedef int ChangesFlags;
65 
66  TransferGroup(TransferTreeModel * model, Scheduler * parent, const QString & name=QString());
67 
68  virtual ~TransferGroup();
69 
75  void setStatus(Status queueStatus);
76 
82  void append(Transfer * transfer);
83 
89  void append(const QList<Transfer*> &transfer);
90 
96  void prepend(Transfer * transfer);
97 
104  void insert(Transfer * transfer, Transfer * after);
105 
111  void remove(Transfer * transfer);
112 
118  void remove(const QList<Transfer*> &transfers);
119 
129  void move(Transfer * transfer, Transfer * after);
130 
139  Transfer * findTransfer(const KUrl &src);
140 
148  Transfer *findTransferByDestination(const KUrl &dest);
149 
153  Transfer * operator[] (int i) const {return (Transfer *)((* (JobQueue *)this)[i]);}
154 
158  void setName(const QString &name) {m_name=name;}
159 
163  const QString & name() {return m_name;}
164 
169  int totalSize() const {return m_totalSize;}
170 
175  int downloadedSize() const {return m_downloadedSize;}
176 
181  int uploadedSize() const {return m_uploadedSize;}
182 
186  int percent() const {return m_percent;}
187 
192  int downloadSpeed();
193 
198  int uploadSpeed();
199 
204  void setDefaultFolder(QString folder) {m_defaultFolder = folder;}
205 
209  QString defaultFolder() {return m_defaultFolder;}
210 
215  void setRegExp(const QRegExp &regExp) {m_regExp = regExp;}
216 
220  QRegExp regExp() {return m_regExp;}
221 
222 #ifdef HAVE_NEPOMUK
223 
227  void setTags(const QList<Nepomuk2::Tag> &tags);
228 
232  QList<Nepomuk2::Tag> tags() const { return m_tags.values(); }
233 #endif //HAVE_NEPOMUK
234 
238  bool supportsSpeedLimits();
239 
245  void setDownloadLimit(int dlLimit, Transfer::SpeedLimit limit);
246 
250  int downloadLimit(Transfer::SpeedLimit limit) const;
251 
257  void setUploadLimit(int ulLimit, Transfer::SpeedLimit limit);
258 
262  int uploadLimit(Transfer::SpeedLimit limit) const;
263 
268  void setIconName(const QString &name) {m_iconName = name;}
269 
273  QString iconName() const {return m_iconName;}
274 
278  QPixmap pixmap() {return KIcon(m_iconName).pixmap(32);}
279 
283  TransferGroupHandler * handler() const {return m_handler;}
284 
288  TransferTreeModel * model() {return m_model;}
289 
293  void calculateSpeedLimits();
294 
298  void calculateDownloadLimit();
299 
303  void calculateUploadLimit();
304 
310  void save(QDomElement e);
311 
317  void load(const QDomElement & e);
318 
319  private:
320  TransferTreeModel * m_model;
321  TransferGroupHandler * m_handler;
322 
323  //TransferGroup info
324  QString m_name;
325  int m_totalSize;
326  int m_downloadedSize;
327  int m_uploadedSize;
328  int m_percent;
329  int m_downloadSpeed;
330  int m_uploadSpeed;
331  int m_downloadLimit;
332  int m_uploadLimit;
333  int m_visibleDownloadLimit;
334  int m_visibleUploadLimit;
335  QString m_iconName;
336  QString m_defaultFolder;
337  QRegExp m_regExp;
338 #ifdef HAVE_NEPOMUK
339  QMap<QUrl, Nepomuk2::Tag> m_tags;
340 #endif //HAVE_NEPOMUK
341 };
342 
343 #endif
TransferGroup::downloadedSize
int downloadedSize() const
Definition: transfergroup.h:175
TransferGroup
class TransferGroup:
Definition: transfergroup.h:46
Scheduler
Scheduler class: what handle all the jobs in kget.
Definition: scheduler.h:32
TransferGroupHandler
Definition: transfergrouphandler.h:30
TransferGroup::pixmap
QPixmap pixmap()
Definition: transfergroup.h:278
TransferGroup::setName
void setName(const QString &name)
Set the group name.
Definition: transfergroup.h:158
TransferGroup::setDefaultFolder
void setDefaultFolder(QString folder)
Set a default Folder for the group.
Definition: transfergroup.h:204
TransferGroup::name
const QString & name()
Definition: transfergroup.h:163
JobQueue::move
void move(Job *job, Job *after)
Moves a job in the queue.
Definition: jobqueue.cpp:123
TransferGroup::defaultFolder
QString defaultFolder()
Definition: transfergroup.h:209
JobQueue::Status
Status
Definition: jobqueue.h:36
TransferTreeModel
Definition: transfertreemodel.h:108
TransferGroup::model
TransferTreeModel * model()
Definition: transfergroup.h:288
jobqueue.h
TransferGroup::percent
int percent() const
Definition: transfergroup.h:186
TransferGroup::setIconName
void setIconName(const QString &name)
Set the group's icon.
Definition: transfergroup.h:268
TransferGroup::uploadedSize
int uploadedSize() const
Definition: transfergroup.h:181
TransferGroup::setRegExp
void setRegExp(const QRegExp &regExp)
Sets the regular expression of the group.
Definition: transfergroup.h:215
Transfer::SpeedLimit
SpeedLimit
Definition: transfer.h:88
JobQueue::insert
void insert(Job *job, Job *after)
inserts a job to the current queue after the given job
Definition: jobqueue.cpp:98
TransferGroup::GroupChange
GroupChange
Definition: transfergroup.h:50
JobQueue::append
void append(Job *job)
appends a job to the current queue
Definition: jobqueue.cpp:77
TransferGroup::totalSize
int totalSize() const
Definition: transfergroup.h:169
TransferGroup::regExp
QRegExp regExp()
Definition: transfergroup.h:220
JobQueue
Definition: jobqueue.h:32
TransferGroup::handler
TransferGroupHandler * handler() const
Definition: transfergroup.h:283
JobQueue::operator[]
Job * operator[](int i) const
Definition: jobqueue.h:85
transfer.h
TransferGroup::iconName
QString iconName() const
Definition: transfergroup.h:273
TransferGroup::ChangesFlags
int ChangesFlags
Definition: transfergroup.h:64
JobQueue::setStatus
virtual void setStatus(Status queueStatus)
Sets the JobQueue status.
Definition: jobqueue.cpp:44
KGET_EXPORT
#define KGET_EXPORT
Definition: kget_export.h:24
JobQueue::prepend
void prepend(Job *job)
prepends a job to the current queue
Definition: jobqueue.cpp:91
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