• 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
transfertreemodel.h
Go to the documentation of this file.
1 /* This file is part of the KDE project
2 
3  Copyright (C) 2006 Dario Massarin <nekkar@libero.it>
4  Copyright (C) 2009 Lukas Appelhans <l.appelhans@gmx.de>
5  Copyright (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 
13 #ifndef TRANSFERTREEMODEL_H
14 #define TRANSFERTREEMODEL_H
15 
16 #include <QStandardItemModel>
17 #include <QList>
18 #include <QtCore/QMimeData>
19 #include <QtCore/QWeakPointer>
20 
21 #include "../kget_export.h"
22 #include "core/transfer.h"
23 #include "core/transfergroup.h"
24 #include "core/handler.h"
25 
26 class KUrl;
27 
28 class TransferGroupHandler;
29 class TransferGroup;
30 class TransferHandler;
31 class Transfer;
32 class Scheduler;
33 class TransferModelItem;
34 class GroupModelItem;
35 
36 class ItemMimeData : public QMimeData
37 {
38  Q_OBJECT
39  public:
40  ItemMimeData();
41  ~ItemMimeData();
42 
47  void appendTransfer(const QWeakPointer<TransferHandler> &transfer);
48 
53  QList<QWeakPointer<TransferHandler> > transfers() const;
54 
55  private:
56  QList<QWeakPointer<TransferHandler> > m_transfers;
57 };
58 
59 class KGET_EXPORT ModelItem : public QStandardItem
60 {
61  public:
62  ModelItem(Handler * handler);
63  virtual ~ModelItem();
64 
65  virtual QVariant data(int role = Qt::UserRole + 1) const = 0;
66  void emitDataChanged();
67  Handler * handler();
68  virtual bool isGroup();
69 
70  GroupModelItem * asGroup();
71  TransferModelItem * asTransfer();
72 
73  private:
74  Handler * m_handler;
75 };
76 
77 class KGET_EXPORT TransferModelItem : public ModelItem
78 {
79  public:
80  TransferModelItem(TransferHandler *handler);
81  virtual ~TransferModelItem();
82 
83  virtual QVariant data(int role = Qt::UserRole + 1) const;
84 
85  TransferHandler * transferHandler();
86 
87  private:
88  TransferHandler * m_transferHandler;
89  mutable KIcon m_mimeType;
90 };
91 
92 class KGET_EXPORT GroupModelItem : public ModelItem
93 {
94  public:
95  GroupModelItem(TransferGroupHandler *handler);
96  virtual ~GroupModelItem();
97 
98  virtual QVariant data(int role = Qt::UserRole + 1) const;
99 
100  TransferGroupHandler * groupHandler();
101 
102  virtual bool isGroup();
103 
104  private:
105  TransferGroupHandler * m_groupHandler;
106 };
107 
108 class KGET_EXPORT TransferTreeModel : public QStandardItemModel
109 {
110  Q_OBJECT
111 
112  friend class TransferGroupHandler;
113  friend class TransferGroup;
114  friend class TransferHandler;
115  friend class Transfer;
116 
117  public:
118  enum Columns {
119  Name,
120  Status,
121  Size,
122  Progress,
123  Speed,
124  RemainingTime
125  };
126  TransferTreeModel(Scheduler * scheduler);
127  ~TransferTreeModel();
128 
129  void addGroup(TransferGroup * group);
130  void delGroup(TransferGroup * group);
131 
132  void addTransfers(const QList<Transfer*> &transfers, TransferGroup *group);
133  void delTransfers(const QList<Transfer*> &transfers);
134 
135  TransferModelItem * itemFromTransferHandler(TransferHandler * handler);
136  GroupModelItem * itemFromTransferGroupHandler(TransferGroupHandler * handler);
137  ModelItem * itemFromHandler(Handler * handler);
138 
139  ModelItem * itemFromIndex(const QModelIndex &index) const;
140 
141  void moveTransfer(Transfer * transfer, TransferGroup * destGroup, Transfer * after = 0);
142  void moveTransfer(TransferHandler *transfer, TransferGroupHandler *destGroup, TransferHandler *after = 0);
143 
144  QList<TransferGroup *> transferGroups();
145 
146  TransferGroup * findGroup(const QString & groupName);
147  Transfer * findTransfer(const KUrl &src);
148  Transfer * findTransferByDestination(const KUrl &dest);
149  Transfer * findTransferByDBusObjectPath(const QString & dbusObjectPath);
150 
151  void postDataChangedEvent(TransferHandler * transfer);
152  void postDataChangedEvent(TransferGroupHandler * group);
153 
154  Qt::ItemFlags flags (const QModelIndex & index) const;
155  QVariant headerData(int section, Qt::Orientation orientation,
156  int role = Qt::DisplayRole) const;
157 
158  //Drag & drop functions
159  Qt::DropActions supportedDropActions() const;
160  QStringList mimeTypes() const;
161  QMimeData * mimeData(const QModelIndexList &indexes) const;
162  bool dropMimeData(const QMimeData *mdata,
163  Qt::DropAction action, int row, int column,
164  const QModelIndex &parent);
165 
166  static QString columnName(int column);
167  static int column(Transfer::TransferChange flag);
168  static int column(TransferGroup::GroupChange flag);
169 
170  signals:
171  void groupAddedEvent(TransferGroupHandler *);
172  void groupRemovedEvent(TransferGroupHandler *);
173  void groupsChangedEvent(QMap<TransferGroupHandler *, TransferGroup::ChangesFlags>);
174  void transfersAddedEvent(QList<TransferHandler*> transfers);
175  void transfersAboutToBeRemovedEvent(const QList<TransferHandler*> &transfers);
176  void transfersRemovedEvent(const QList<TransferHandler*> &transfers);
177  void transferMovedEvent(TransferHandler *, TransferGroupHandler *);
178  void transfersChangedEvent(QMap<TransferHandler *, Transfer::ChangesFlags>);
179 
180  private:
181  void timerEvent(QTimerEvent *event);
182 
183  Scheduler * m_scheduler;
184 
185  // Timer related variables
186  QList<TransferHandler *> m_changedTransfers;
187  QList<TransferGroupHandler *> m_changedGroups;
188 
189  QList<GroupModelItem*> m_transferGroups;
190  QList<TransferModelItem*> m_transfers;
191 
192  int m_timerId;
193 };
194 
195 #endif
TransferTreeModel::Status
Definition: transfertreemodel.h:120
TransferHandler
Class TransferHandler:
Definition: transferhandler.h:48
TransferTreeModel::Speed
Definition: transfertreemodel.h:123
TransferGroup
class TransferGroup:
Definition: transfergroup.h:46
Scheduler
Scheduler class: what handle all the jobs in kget.
Definition: scheduler.h:32
TransferTreeModel::Progress
Definition: transfertreemodel.h:122
TransferGroupHandler
Definition: transfergrouphandler.h:30
ItemMimeData::ItemMimeData
ItemMimeData()
Definition: transfertreemodel.cpp:30
ItemMimeData
Definition: transfertreemodel.h:36
Job::scheduler
Scheduler * scheduler() const
Definition: job.h:106
QStandardItemModel
Transfer::TransferTreeModel
friend class TransferTreeModel
Definition: transfer.h:40
Transfer::group
TransferGroup * group() const
The owner group.
Definition: transfer.h:257
TransferTreeModel
Definition: transfertreemodel.h:108
TransferTreeModel::Columns
Columns
Definition: transfertreemodel.h:118
ItemMimeData::appendTransfer
void appendTransfer(const QWeakPointer< TransferHandler > &transfer)
Appends a transfer to the list of transfers.
Definition: transfertreemodel.cpp:39
Transfer::TransferChange
TransferChange
Here we define the flags that should be shared by all the transfers.
Definition: transfer.h:47
TransferTreeModel::Size
Definition: transfertreemodel.h:121
ModelItem::data
virtual QVariant data(int role=Qt::UserRole+1) const =0
transfergroup.h
QMimeData
Handler
Definition: handler.h:17
TransferGroup::GroupChange
GroupChange
Definition: transfergroup.h:50
ModelItem
Definition: transfertreemodel.h:59
Job::m_scheduler
Scheduler * m_scheduler
Definition: job.h:119
Transfer::handler
TransferHandler * handler()
Definition: transfer.cpp:217
Transfer::dest
const KUrl & dest() const
Definition: transfer.h:149
TransferModelItem
Definition: transfertreemodel.h:77
transfer.h
ItemMimeData::transfers
QList< QWeakPointer< TransferHandler > > transfers() const
Returns all appended transfers The weakpointer is there to check later on, that the transfer still ex...
Definition: transfertreemodel.cpp:44
QStandardItem
KGET_EXPORT
#define KGET_EXPORT
Definition: kget_export.h:24
ItemMimeData::~ItemMimeData
~ItemMimeData()
Definition: transfertreemodel.cpp:35
handler.h
GroupModelItem
Definition: transfertreemodel.h:92
TransferTreeModel::Name
Definition: transfertreemodel.h:119
ModelItem::isGroup
virtual bool isGroup()
Definition: transfertreemodel.cpp:69
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:18 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