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

kget

  • sources
  • kde-4.14
  • kdenetwork
  • kget
  • transfer-plugins
  • multisegmentkio
transfermultisegkiofactory.cpp
Go to the documentation of this file.
1 /* This file is part of the KDE project
2 
3  Copyright (C) 2004 Dario Massarin <nekkar@libero.it>
4  Copyright (C) 2006 Manolo Valdes <nolis71cu@gmail.com>
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 "transfermultisegkiofactory.h"
13 
14 #include "core/scheduler.h"
15 #include "core/transfergroup.h"
16 #include "multisegkiosettings.h"
17 #include "transfermultisegkio.h"
18 #include "multisegkiodatasource.h"
19 
20 #include <QtXml/QDomElement>
21 
22 #include <kdebug.h>
23 
24 KGET_EXPORT_PLUGIN( TransferMultiSegKioFactory )
25 
26 TransferMultiSegKioFactory::TransferMultiSegKioFactory(QObject *parent, const QVariantList &args)
27  : TransferFactory(parent, args)
28 {
29 }
30 
31 TransferMultiSegKioFactory::~TransferMultiSegKioFactory()
32 {
33 }
34 
35 Transfer * TransferMultiSegKioFactory::createTransfer( const KUrl &srcUrl, const KUrl &destUrl,
36  TransferGroup * parent,
37  Scheduler * scheduler,
38  const QDomElement * e )
39 {
40  kDebug(5001);
41 
42  if (isSupported(srcUrl) && (!e || !e->firstChildElement("factories").isNull()))
43  {
44  return new TransferMultiSegKio(parent, this, scheduler, srcUrl, destUrl, e);
45  }
46  return 0;
47 }
48 
49 TransferHandler * TransferMultiSegKioFactory::createTransferHandler(Transfer * transfer, Scheduler * scheduler)
50 {
51  return new TransferHandler(transfer, scheduler);
52 }
53 
54 QWidget * TransferMultiSegKioFactory::createDetailsWidget( TransferHandler * transfer )
55 {
56  Q_UNUSED(transfer)
57  return 0; //Temporary!!
58 }
59 
60 const QList<KAction *> TransferMultiSegKioFactory::actions(TransferHandler *handler)
61 {
62  Q_UNUSED(handler)
63  return QList<KAction *>();
64 }
65 
66  TransferDataSource * TransferMultiSegKioFactory::createTransferDataSource(const KUrl &srcUrl, const QDomElement &type, QObject *parent)
67 {
68  kDebug(5001);
69 
70  //only use this TransferDataSource if no type is specified and the protocolls match
71  if (!type.attribute("type").isEmpty())
72  {
73  return 0;
74  }
75 
76  if (isSupported(srcUrl))
77  {
78  return new MultiSegKioDataSource(srcUrl, parent);
79  }
80  return 0;
81 }
82 
83 bool TransferMultiSegKioFactory::isSupported(const KUrl &url) const
84 {
85  QString prot = url.protocol();
86  kDebug(5001) << "Protocol = " << prot;
87  return addsProtocols().contains(prot);
88 }
89 
90 QStringList TransferMultiSegKioFactory::addsProtocols() const
91 {
92  static const QStringList protocols = QStringList() << "http" << "https" << "ftp" << "sftp";
93  return protocols;
94 }
TransferMultiSegKioFactory
Definition: transfermultisegkiofactory.h:20
QWidget
TransferHandler
Class TransferHandler:
Definition: transferhandler.h:48
TransferMultiSegKioFactory::actions
const QList< KAction * > actions(TransferHandler *handler=0)
Definition: transfermultisegkiofactory.cpp:60
TransferGroup
class TransferGroup:
Definition: transfergroup.h:46
Scheduler
Scheduler class: what handle all the jobs in kget.
Definition: scheduler.h:32
TransferMultiSegKio
Definition: transfermultisegkio.h:28
QDomElement::attribute
QString attribute(const QString &name, const QString &defValue) const
TransferMultiSegKioFactory::createTransferHandler
TransferHandler * createTransferHandler(Transfer *transfer, Scheduler *scheduler)
Definition: transfermultisegkiofactory.cpp:49
transfermultisegkio.h
QStringList::contains
bool contains(const QString &str, Qt::CaseSensitivity cs) const
transfermultisegkiofactory.h
multisegkiosettings.h
TransferDataSource
This Class is an interface for inter-plugins data change.
Definition: transferdatasource.h:26
TransferMultiSegKioFactory::~TransferMultiSegKioFactory
~TransferMultiSegKioFactory()
Definition: transfermultisegkiofactory.cpp:31
scheduler.h
MultiSegKioDataSource
Definition: multisegkiodatasource.h:19
multisegkiodatasource.h
QObject
QString::isEmpty
bool isEmpty() const
TransferMultiSegKioFactory::createDetailsWidget
QWidget * createDetailsWidget(TransferHandler *transfer)
Definition: transfermultisegkiofactory.cpp:54
TransferMultiSegKioFactory::createTransfer
Transfer * createTransfer(const KUrl &srcUrl, const KUrl &destUrl, TransferGroup *parent, Scheduler *scheduler, const QDomElement *e=0)
Definition: transfermultisegkiofactory.cpp:35
transfergroup.h
QString
QList
QStringList
TransferMultiSegKioFactory::isSupported
bool isSupported(const KUrl &url) const
Definition: transfermultisegkiofactory.cpp:83
QDomNode::isNull
bool isNull() const
TransferMultiSegKioFactory::addsProtocols
QStringList addsProtocols() const
Returns a list of protocols for which the TransferFactory adds support.
Definition: transfermultisegkiofactory.cpp:90
TransferMultiSegKioFactory::createTransferDataSource
TransferDataSource * createTransferDataSource(const KUrl &srcUrl, const QDomElement &type, QObject *parent)
Returns a Data Source.
Definition: transfermultisegkiofactory.cpp:66
QDomNode::firstChildElement
QDomElement firstChildElement(const QString &tagName) const
KGET_EXPORT_PLUGIN
#define KGET_EXPORT_PLUGIN(classname)
Declares a class as plugin.
Definition: kget_export.h:40
TransferFactory
TransferFactory.
Definition: transferfactory.h:52
QDomElement
Transfer
Definition: transfer.h:36
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:28:43 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