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

kget

kget.h

Go to the documentation of this file.
00001 /* This file is part of the KDE project
00002 
00003    Copyright (C) 2005 Dario Massarin <nekkar@libero.it>
00004 
00005    Based on:
00006        kmainwidget.{h,cpp}
00007        Copyright (C) 2002 by Patrick Charbonnier <pch@freeshell.org>
00008        that was based On Caitoo v.0.7.3 (c) 1998 - 2000, Matej Koss
00009 
00010    This program is free software; you can redistribute it and/or
00011    modify it under the terms of the GNU General Public
00012    License as published by the Free Software Foundation; either
00013    version 2 of the License, or (at your option) any later version.
00014 */
00015 
00016 #ifndef KGET_H
00017 #define KGET_H
00018 
00019 #include <kservice.h>
00020 #include <kurl.h>
00021 #include <kactioncollection.h>
00022 #include <KNotification>
00023 #include <ktabwidget.h>
00024 
00025 #include "kuiserverjobs.h"
00026 #include "scheduler.h"
00027 #include "kget_export.h"
00028 #include "observer.h"
00029 
00030 class QDomElement;
00031 class QAbstractItemView;
00032 
00033 class Transfer;
00034 class TransferDataSource;
00035 class TransferGroup;
00036 class TransferHandler;
00037 class TransferGroupHandler;
00038 class TransferFactory;
00039 class TransferTreeModel;
00040 class TransferTreeSelectionModel;
00041 class ModelObserver;
00042 class KGetPlugin;
00043 class MainWindow;
00044 class NewTransferDialog;
00045 class TransferGroupScheduler;
00046 class GenericTransferGroupObserver;
00047 
00058 class KGET_EXPORT KGet
00059 {
00060     friend class NewTransferDialog;
00061     friend class GenericTransferObserver;
00062 
00063     public:
00064         enum AfterFinishAction {
00065             Quit = 0,
00066             Shutdown = 1
00067         };
00068 
00069         static KGet& self( MainWindow * mainWindow=0 );
00070 
00076         static void addObserver(ModelObserver * observer);
00077 
00083         static void delObserver(ModelObserver * observer);
00084 
00094         static bool addGroup(const QString& groupName);
00095 
00101         static void delGroup(const QString& groupName);
00102 
00109         static void renameGroup(const QString& oldName, const QString& newName);
00110 
00114         static QStringList transferGroupNames();
00115 
00126         static void addTransfer(KUrl srcUrl, QString destDir = QString(),
00127                                 const QString& groupName = QString(), bool start=false);
00128 
00135         static void addTransfer(const QDomElement& e, const QString& groupName = QString());
00136 
00147         static void addTransfer(KUrl::List srcUrls, QString destDir = QString(),
00148                                 const QString& groupName = QString(), bool start=false);
00149 
00155         static bool delTransfer(TransferHandler * transfer);
00156 
00163         static void moveTransfer(TransferHandler * transfer, const QString& groupName);
00164 
00169         static void redownloadTransfer(TransferHandler * transfer);
00170 
00174         static QList<TransferHandler *> selectedTransfers();
00175 
00179         static QList<TransferHandler *> finishedTransfers();
00180 
00184         static QList<TransferGroupHandler *>
00185         selectedTransferGroups();
00186 
00190         static TransferTreeSelectionModel * selectionModel();
00191 
00197         static void load( QString filename=QString() );
00198 
00205         static void save( QString filename=QString(), bool plain=false );
00206 
00212         static TransferFactory * factory(TransferHandler * transfer);
00213 
00217         static KActionCollection * actionCollection();
00218     
00223     static void setSchedulerRunning(bool running=true);
00224 
00228         static bool schedulerRunning();
00229 
00233         static void addTransferView(QAbstractItemView * view);
00234 
00238         static QList<TransferHandler*> allTransfers();
00239 
00243         static QList<TransferGroupHandler*> allTransferGroups();
00244 
00249         static TransferHandler * findTransfer(const KUrl &src);
00250 
00255         static void checkSystemTray();
00256 
00260         static void settingsChanged();
00261 
00266          static void registerKJob(KJob *);
00267          static void unregisterKJob(KJob *);
00268          static void reloadKJobs();
00269 
00273          static QStringList defaultFolders(const KUrl &filename, const QString &groupname);
00274 
00281         static TransferDataSource * createTransferDataSource(const KUrl &src);
00282 
00287         static void setGlobalDownloadLimit(int limit);
00288 
00293         static void setGlobalUploadLimit(int limit);
00294 
00298         static void calculateGlobalSpeedLimits();
00299 
00303         static void calculateGlobalDownloadLimit();
00304 
00308         static void calculateGlobalUploadLimit();
00309 
00310 
00318         static void showNotification(QWidget *parent, KNotification::StandardEvent eventId, 
00319                                      const QString &text,
00320                                      const QString &icon = QString("dialog-error"));
00321 
00322         static void loadPlugins();
00323 
00324     private:
00325         KGet();
00326         ~KGet();
00327 
00337         static bool createTransfer(const KUrl &src, const KUrl &dest, const QString& groupName = QString(), bool start = false, const QDomElement * e = 0);
00338 
00344         static void postAddedTransferGroupEvent(TransferGroup * group, ModelObserver * observer = 0);
00345 
00351         static void postRemovedTransferGroupEvent(TransferGroup * group, ModelObserver * observer = 0);
00352 
00353         static KUrl urlInputDialog();
00354         static QString destInputDialog();
00355         static QString getSaveDirectoryFromExceptions(const KUrl &filename);
00356 
00357         static bool isValidSource(const KUrl &source);
00358         static bool isValidDestDirectory(const QString& destDir);
00359 
00367         static bool isValidDestUrl(const KUrl &destUrl);
00368 
00369         static KUrl getValidDestUrl(const QString& destDir, const KUrl &srcUrl);
00370 
00371         static TransferGroup * findGroup(const QString& groupName);
00372 
00373         //Plugin-related functions
00374         static void unloadPlugins();
00375         static KGetPlugin * createPluginFromService( const KService::Ptr &service );
00376 
00377 
00387         static bool safeDeleteFile( const KUrl& url );
00388 
00389         static QList<ModelObserver *> m_observers;
00390 
00391         //Interview models
00392         static TransferTreeModel * m_transferTreeModel;
00393         static TransferTreeSelectionModel * m_selectionModel;
00394 
00395         //Lists of available plugins
00396         static QList<TransferFactory *> m_transferFactories;
00397 
00398         //pointer to the Main window
00399         static MainWindow * m_mainWindow;
00400 
00401         //Scheduler object
00402         static TransferGroupScheduler * m_scheduler;
00403 
00404         //pointer to the kget uiserver jobs manager
00405         static KUiServerJobs *m_jobManager;
00406 };
00407 
00408 class GenericModelObserver : public QObject, public ModelObserver
00409 {
00410     Q_OBJECT
00411     public:
00412         GenericModelObserver(QObject *parent = 0);
00413         virtual ~GenericModelObserver ();
00414 
00415         virtual void addedTransferGroupEvent(TransferGroupHandler * group);
00416 
00417         virtual void removedTransferGroupEvent(TransferGroupHandler * group);
00418 
00419     private:
00420         GenericTransferGroupObserver *m_groupObserver;
00421 };
00422 #endif

kget

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

kdenetwork

Skip menu "kdenetwork"
  • kget
  • kopete
  •   kopete
  •   libkopete
  •       libpapillon
  • krfb
Generated for kdenetwork by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal