00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
#ifndef __kprotocolinfo_h__
00020
#define __kprotocolinfo_h__
00021
00022
#include <qstring.h>
00023
#include <qstringlist.h>
00024
#include <kurl.h>
00025
#include <ksycocaentry.h>
00026
#include <ksycocatype.h>
00027
#include <kdemacros.h>
00028
#include <qdatastream.h>
00029
00044 class KProtocolInfo :
public KSycocaEntry
00045 {
00046
friend class KProtocolInfoFactory;
00047 K_SYCOCATYPE( KST_KProtocolInfo,
KSycocaEntry )
00048
00049
public:
00050
typedef KSharedPtr<KProtocolInfo> Ptr;
00051
00052
public:
00057
KProtocolInfo(
const QString & path);
00058
00063 virtual bool isValid()
const {
return !m_name.isEmpty(); }
00064
00073 virtual QString name()
const {
return m_name; }
00074
00075
00076
00077
00078
00083
static QStringList protocols();
00084
00092
static bool isKnownProtocol(
const KURL &url );
00093
00098
static bool isKnownProtocol(
const QString& protocol );
00099
00111
static QString exec(
const QString& protocol );
00112
00116 enum Type {
T_STREAM,
00117
T_FILESYSTEM,
00118
T_NONE,
00119
T_ERROR
00120 };
00121
00132
static Type
inputType(
const KURL &url );
00133
00144
static Type
outputType(
const KURL &url );
00145
00158
static QStringList listing(
const KURL &url );
00159
00164 struct ExtraField {
00165
ExtraField() {}
00166
ExtraField(
const QString& _name,
const QString& _type )
00167 :
name(_name), type(_type) {
00168 }
00169
QString name;
00170
QString type;
00171 };
00172
typedef QValueList<ExtraField > ExtraFieldList;
00180
static ExtraFieldList extraFields(
const KURL& url );
00181
00195
static bool isSourceProtocol(
const KURL &url );
00196
00209
static bool isHelperProtocol(
const KURL &url );
00210
00215
static bool isHelperProtocol(
const QString& protocol );
00216
00233
static bool isFilterProtocol(
const KURL &url );
00234
00239
static bool isFilterProtocol(
const QString& protocol );
00240
00256
static bool supportsListing(
const KURL &url );
00257
00267
static bool supportsReading(
const KURL &url );
00268
00278
static bool supportsWriting(
const KURL &url );
00279
00289
static bool supportsMakeDir(
const KURL &url );
00290
00300
static bool supportsDeleting(
const KURL &url );
00301
00311
static bool supportsLinking(
const KURL &url );
00312
00323
static bool supportsMoving(
const KURL &url );
00324
00337
static bool canCopyFromFile(
const KURL &url );
00338
00351
static bool canCopyToFile(
const KURL &url );
00352
00361
static QString defaultMimetype(
const KURL& url );
00362
00371
static QString icon(
const QString& protocol );
00372
00384
static QString config(
const QString& protocol );
00385
00398
static int maxSlaves(
const QString& protocol );
00399
00411
static bool determineMimetypeFromExtension(
const QString &protocol );
00412
00422
static QString docPath(
const QString& protocol );
00423
00440
static QString protocolClass(
const QString& protocol );
00441
00453
static bool showFilePreview(
const QString& protocol );
00454
00470
static KURL::URIMode
uriParseMode(
const QString& protocol );
00471
00490
static QStringList capabilities(
const QString& protocol );
00491
00503
static QString proxiedBy(
const QString& protocol );
00504
00505
public:
00506
00510
KProtocolInfo(
QDataStream& _str,
int offset);
00511
00512
virtual ~
KProtocolInfo();
00513
00518
virtual void load(
QDataStream& );
00519
00524
virtual void save(
QDataStream& );
00525
00527
00528
00530
static Type inputType(
const QString& protocol ) KDE_DEPRECATED;
00532
static Type outputType(
const QString& protocol ) KDE_DEPRECATED;
00539
static QStringList listing(
const QString& protocol ) KDE_DEPRECATED;
00541
static bool isSourceProtocol(
const QString& protocol ) KDE_DEPRECATED;
00543
static bool supportsListing(
const QString& protocol ) KDE_DEPRECATED;
00545
static bool supportsReading(
const QString& protocol ) KDE_DEPRECATED;
00547
static bool supportsWriting(
const QString& protocol ) KDE_DEPRECATED;
00549
static bool supportsMakeDir(
const QString& protocol ) KDE_DEPRECATED;
00551
static bool supportsDeleting(
const QString& protocol ) KDE_DEPRECATED;
00553
static bool supportsLinking(
const QString& protocol ) KDE_DEPRECATED;
00555
static bool supportsMoving(
const QString& protocol ) KDE_DEPRECATED;
00557
static bool canCopyFromFile(
const QString& protocol ) KDE_DEPRECATED;
00559
static bool canCopyToFile(
const QString& protocol ) KDE_DEPRECATED;
00561
static QString defaultMimetype(
const QString& protocol) KDE_DEPRECATED;
00563
00564
protected:
00565
QString m_name;
00566
QString m_exec;
00567
Type m_inputType;
00568
Type m_outputType;
00569
QStringList m_listing;
00570
bool m_isSourceProtocol;
00571
bool m_isHelperProtocol;
00572
bool m_supportsListing;
00573
bool m_supportsReading;
00574
bool m_supportsWriting;
00575
bool m_supportsMakeDir;
00576
bool m_supportsDeleting;
00577
bool m_supportsLinking;
00578
bool m_supportsMoving;
00579
QString m_defaultMimetype;
00580
bool m_determineMimetypeFromExtension;
00581
QString m_icon;
00582
bool m_canCopyFromFile;
00583
bool m_canCopyToFile;
00584
QString m_config;
00585
int m_maxSlaves;
00586
protected:
00587
virtual void virtual_hook(
int id,
void* data );
00588
private:
00589
class KProtocolInfoPrivate;
00590 KProtocolInfoPrivate* d;
00591 };
00592
00593
QDataStream& operator>>(
QDataStream& s,
KProtocolInfo::ExtraField& field );
00594
QDataStream&
operator<<(
QDataStream& s,
const KProtocolInfo::ExtraField& field );
00595
00596
#endif