• 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
kget.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  Copyright (C) 2009 Matthias Fuchs <mat69@gmx.net>
6 
7  Based on:
8  kmainwidget.{h,cpp}
9  Copyright (C) 2002 by Patrick Charbonnier <pch@freeshell.org>
10  that was based On Caitoo v.0.7.3 (c) 1998 - 2000, Matej Koss
11 
12  This program is free software; you can redistribute it and/or
13  modify it under the terms of the GNU General Public
14  License as published by the Free Software Foundation; either
15  version 2 of the License, or (at your option) any later version.
16 */
17 
18 #ifndef KGET_H
19 #define KGET_H
20 
21 #include <kservice.h>
22 #include <kurl.h>
23 #include <kactioncollection.h>
24 #include <KNotification>
25 #include <ktabwidget.h>
26 
27 #include <Solid/Networking>
28 #include <QtXml/QDomElement>
29 
30 #include "kuiserverjobs.h"
31 #include "scheduler.h"
32 #include "../kget_export.h"
33 #include "transfer.h"
34 #include "transfergrouphandler.h"
35 
36 class QDomElement;
37 class QAbstractItemView;
38 
39 class KComboBox;
40 
41 class TransferDataSource;
42 class TransferGroup;
43 class TransferHandler;
44 class TransferFactory;
45 class TransferTreeModel;
46 class TransferTreeSelectionModel;
47 class KGetPlugin;
48 class MainWindow;
49 class NewTransferDialog;
50 class TransferGroupScheduler;
51 class TransferHistoryStore;
52 
53 #ifdef HAVE_NEPOMUK
54 class NepomukController;
55 #endif
56 
67 class KGET_EXPORT KGet
68 {
69  friend class NewTransferDialog;
70  friend class NewTransferDialogHandler;
71  friend class GenericObserver;
72  friend class TransferTreeModel;
73  friend class UrlChecker;
74  public:
75  enum AfterFinishAction {
76  Quit = 0,
77  Shutdown = 1,
78  Hibernate = 2,
79  Suspend = 3
80  };
81  enum DeleteMode {
82  AutoDelete,
83  DeleteFiles
84  };
85  ~KGet();
86 
87  static KGet* self( MainWindow * mainWindow=0 );
88 
98  static bool addGroup(const QString& groupName);
99 
105  static void delGroup(TransferGroupHandler * group, bool askUser = true);
106 
112  static void delGroups(QList<TransferGroupHandler*> groups, bool askUser = true);
113 
120  static void renameGroup(const QString& oldName, const QString& newName);
121 
125  static QStringList transferGroupNames();
126 
138  static TransferHandler * addTransfer(KUrl srcUrl, QString destDir = QString(), QString suggestedFileName = QString(),
139  QString groupName = QString(), bool start = false);
140 
148  static QList<TransferHandler*> addTransfers(const QList<QDomElement> &elements, const QString &groupName = QString());
149 
160  static const QList<TransferHandler *> addTransfer(KUrl::List srcUrls, QString destDir = QString(),
161  QString groupName = QString(), bool start=false);
162 
168  static bool delTransfer(TransferHandler * transfer, DeleteMode mode = AutoDelete);
169 
175  static bool delTransfers(const QList<TransferHandler*> &transfers, DeleteMode mode = AutoDelete);
176 
183  static void moveTransfer(TransferHandler * transfer, const QString& groupName);
184 
189  static void redownloadTransfer(TransferHandler * transfer);
190 
194  static QList<TransferHandler *> selectedTransfers();
195 
199  static QList<TransferHandler *> finishedTransfers();
200 
204  static QList<TransferGroupHandler *>
205  selectedTransferGroups();
206 
210  static TransferTreeModel * model();
211 
215  static TransferTreeSelectionModel * selectionModel();
216 
222  static void load( QString filename=QString() );
223 
230  static void save( QString filename=QString(), bool plain=false );
231 
235  static QList<TransferFactory*> factories();
236 
242  static TransferFactory * factory(TransferHandler * transfer);
243 
247  static KActionCollection * actionCollection();
248 
253  static void setSchedulerRunning(bool running=true);
254 
258  static bool schedulerRunning();
259 
266  static void setSuspendScheduler(bool isSuspended);
267 
271  static QList<TransferHandler*> allTransfers();
272 
276  static QList<TransferGroupHandler*> allTransferGroups();
277 
282  static TransferHandler * findTransfer(const KUrl &src);
283 
288  static TransferGroupHandler * findGroup(const QString &name);
289 
294  static void checkSystemTray();
295 
299  static void settingsChanged();
300 
304  static QList<TransferGroupHandler*> groupsFromExceptions(const KUrl &filename);
305 
309  static bool matchesExceptions(const KUrl &sourceUrl, const QStringList &patterns);
310 
320  static TransferDataSource * createTransferDataSource(const KUrl &src, const QDomElement &type = QDomElement(), QObject *parent = 0);
321 
326  static void setGlobalDownloadLimit(int limit);
327 
332  static void setGlobalUploadLimit(int limit);
333 
337  static void calculateGlobalSpeedLimits();
338 
342  static void calculateGlobalDownloadLimit();
343 
347  static void calculateGlobalUploadLimit();
348 
349 
357  static KNotification *showNotification(QWidget *parent, const QString &eventType,
358  const QString &text,
359  const QString &icon = QString("dialog-error"),
360  const QString &title = i18n("KGet"),
361  const KNotification::NotificationFlags &flags = KNotification::CloseOnTimeout);
362 
363  static void loadPlugins();
364 
371  static QString generalDestDir(bool preferXDGDownloadDir = false);
372 
373 #ifdef HAVE_NEPOMUK
374  static NepomukController *nepomukController();
375 #endif
376 
377  private:
378  KGet();
379 
380  class TransferData;
381 
391  static TransferHandler * createTransfer(const KUrl &src, const KUrl &dest, const QString& groupName = QString(), bool start = false, const QDomElement * e = 0);
392 
396  static QList<TransferHandler*> createTransfers(const QList<TransferData> &transferData);
397 
398  static KUrl urlInputDialog();
399  static QString destDirInputDialog();
400  static KUrl destFileInputDialog(QString destDir = QString(), const QString& suggestedFileName = QString());
401 
402  static bool isValidSource(const KUrl &source);
403  static bool isValidDestDirectory(const QString& destDir);
404 
405  static KUrl getValidDestUrl(const KUrl& destDir, const KUrl &srcUrl);
406 
407  //Plugin-related functions
408  static KGetPlugin * createPluginFromService( const KService::Ptr &service );
409 
415  static void setHasNetworkConnection(bool hasConnection);
416 
426  static bool safeDeleteFile( const KUrl& url );
427 
428  //Interview models
429  static TransferTreeModel * m_transferTreeModel;
430  static TransferTreeSelectionModel * m_selectionModel;
431 
432  //Lists of available plugins
433  static QList<TransferFactory *> m_transferFactories;
434 
435  //pointer to the Main window
436  static MainWindow * m_mainWindow;
437 
438  //Scheduler object
439  static TransferGroupScheduler * m_scheduler;
440 
441  //pointer to the kget uiserver jobs manager
442  static KUiServerJobs *m_jobManager;
443 
444  //pointer to the used TransferHistoryStore
445  static TransferHistoryStore *m_store;
446 
447  static bool m_hasConnection;
448 
449 #ifdef HAVE_NEPOMUK
450  static NepomukController *m_nepomukController;
451 #endif
452 };
453 
454 class KGET_EXPORT KGet::TransferData
455 {
456  public:
457  TransferData(const KUrl &src, const KUrl &dest, const QString &groupName = QString(), bool start = false, const QDomElement *e = 0);
458 
459  KUrl src;
460  KUrl dest;
461  QString groupName;
462  bool start;
463  const QDomElement *e;
464 };
465 
466 class GenericObserver : public QObject
467 {
468  Q_OBJECT
469  public:
470  GenericObserver(QObject *parent = 0);
471  virtual ~GenericObserver ();
472 
473  public slots:
474  void groupAddedEvent(TransferGroupHandler *handler);
475  void groupRemovedEvent(TransferGroupHandler *handler);
476  void transfersAddedEvent(const QList<TransferHandler*> &handlers);
477  void transfersRemovedEvent(const QList<TransferHandler*> &handlers);
478  void transfersChangedEvent(QMap<TransferHandler*, Transfer::ChangesFlags> transfers);
479  void groupsChangedEvent(QMap<TransferGroupHandler*, TransferGroup::ChangesFlags> groups);
480  void transferMovedEvent(TransferHandler *, TransferGroupHandler *);
481 
482  private slots:
483  void slotSave();
484  void slotAfterFinishAction();
485  void slotAbortAfterFinishAction();
486  void slotResolveTransferError();
487  void slotNotificationClosed();
488  void slotNetworkStatusChanged(const Solid::Networking::Status &status);
489 
490  private:
491  bool allTransfersFinished();
492 
493  void requestSave();
494 
495  private:
496  QTimer *m_save;
497  QTimer *m_finishAction;
498  QHash<KNotification*, TransferHandler*> m_notifications;
499 };
500 #endif
UrlChecker
This class provides static methods to check if urls are valid, and if not provides enums to see what ...
Definition: urlchecker.h:34
TransferHandler
Class TransferHandler:
Definition: transferhandler.h:48
TransferGroup
class TransferGroup:
Definition: transfergroup.h:46
GenericObserver::transfersChangedEvent
void transfersChangedEvent(QMap< TransferHandler *, Transfer::ChangesFlags > transfers)
Definition: kget.cpp:1370
TransferGroupHandler
Definition: transfergrouphandler.h:30
TransferData
GenericObserver::groupsChangedEvent
void groupsChangedEvent(QMap< TransferGroupHandler *, TransferGroup::ChangesFlags > groups)
Definition: kget.cpp:1505
KGet::start
bool start
Definition: kget.h:462
QWidget
GenericObserver
Definition: kget.h:466
NewTransferDialogHandler
Definition: newtransferdialog.h:104
TransferHistoryStore
Definition: transferhistorystore.h:53
TransferDataSource
This Class is an interface for inter-plugins data change.
Definition: transferdatasource.h:26
QObject
TransferTreeModel
Definition: transfertreemodel.h:108
KGet::dest
KUrl dest
Definition: kget.h:460
KGet::e
const QDomElement * e
Definition: kget.h:463
kuiserverjobs.h
scheduler.h
UrlChecker::type
UrlType type() const
Non static methods following.
Definition: urlchecker.cpp:686
KGet::DeleteMode
DeleteMode
Definition: kget.h:81
transfergrouphandler.h
KGet::groupName
QString groupName
Definition: kget.h:461
TransferGroupScheduler
TransferGroupScheduler class: what handle all the transfers in kget.
Definition: transfergroupscheduler.h:23
NewTransferDialog
Dialog to allow add one or more transfers to kget.
Definition: newtransferdialog.h:35
GenericObserver::transfersRemovedEvent
void transfersRemovedEvent(const QList< TransferHandler * > &handlers)
Definition: kget.cpp:1333
KGetPlugin
Base class for kget plugins.
Definition: plugin.h:61
GenericObserver::~GenericObserver
virtual ~GenericObserver()
Definition: kget.cpp:1309
GenericObserver::transferMovedEvent
void transferMovedEvent(TransferHandler *, TransferGroupHandler *)
Definition: kget.cpp:1341
NepomukController
Definition: nepomukcontroller.h:44
TransferTreeSelectionModel
Definition: transfertreeselectionmodel.h:16
KGet::AutoDelete
Definition: kget.h:82
GenericObserver::transfersAddedEvent
void transfersAddedEvent(const QList< TransferHandler * > &handlers)
Definition: kget.cpp:1325
GenericObserver::GenericObserver
GenericObserver(QObject *parent=0)
Definition: kget.cpp:1287
KGet::AfterFinishAction
AfterFinishAction
Definition: kget.h:75
KGet::src
KUrl src
Definition: kget.h:459
transfer.h
KGet
This is our KGet class.
Definition: kget.h:67
KGET_EXPORT
#define KGET_EXPORT
Definition: kget_export.h:24
GenericObserver::groupAddedEvent
void groupAddedEvent(TransferGroupHandler *handler)
Definition: kget.cpp:1313
GenericObserver::groupRemovedEvent
void groupRemovedEvent(TransferGroupHandler *handler)
Definition: kget.cpp:1319
TransferFactory
TransferFactory.
Definition: transferfactory.h:52
MainWindow
The main window of KGet.
Definition: mainwindow.h:41
KUiServerJobs
Definition: kuiserverjobs.h:29
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