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
00105
static QString exec(
const QString& protocol );
00106
00110 enum Type {
T_STREAM,
00111
T_FILESYSTEM,
00112
T_NONE,
00113
T_ERROR
00114 };
00115
00126
static Type inputType(
const KURL &url );
00127
00138
static Type outputType(
const KURL &url );
00139
00152
static QStringList listing(
const KURL &url );
00153
00158 struct ExtraField {
00159
ExtraField() {}
00160
ExtraField(
const QString& _name,
const QString& _type )
00161 :
name(_name), type(_type) {
00162 }
00163
QString name;
00164
QString type;
00165 };
00166
typedef QValueList<ExtraField > ExtraFieldList;
00174
static ExtraFieldList extraFields(
const KURL& url );
00175
00189
static bool isSourceProtocol(
const KURL &url );
00190
00203
static bool isHelperProtocol(
const KURL &url );
00204
00221
static bool isFilterProtocol(
const KURL &url );
00222
00238
static bool supportsListing(
const KURL &url );
00239
00249
static bool supportsReading(
const KURL &url );
00250
00260
static bool supportsWriting(
const KURL &url );
00261
00271
static bool supportsMakeDir(
const KURL &url );
00272
00282
static bool supportsDeleting(
const KURL &url );
00283
00293
static bool supportsLinking(
const KURL &url );
00294
00305
static bool supportsMoving(
const KURL &url );
00306
00319
static bool canCopyFromFile(
const KURL &url );
00320
00333
static bool canCopyToFile(
const KURL &url );
00334
00343
static QString defaultMimetype(
const KURL& url );
00344
00353
static QString icon(
const QString& protocol );
00354
00366
static QString config(
const QString& protocol );
00367
00380
static int maxSlaves(
const QString& protocol );
00381
00393
static bool determineMimetypeFromExtension(
const QString &protocol );
00394
00404
static QString docPath(
const QString& protocol );
00405
00422
static QString protocolClass(
const QString& protocol );
00423
00435
static bool showFilePreview(
const QString& protocol );
00436
00452
static KURL::URIMode
uriParseMode(
const QString& protocol );
00453
00454
public:
00455
00459
KProtocolInfo(
QDataStream& _str,
int offset);
00460
00461
virtual ~
KProtocolInfo();
00462
00467
virtual void load(
QDataStream& );
00468
00473
virtual void save(
QDataStream& );
00474
00476
00477
00479
static Type inputType(
const QString& protocol ) KDE_DEPRECATED;
00481
static Type outputType(
const QString& protocol ) KDE_DEPRECATED;
00488
static QStringList listing(
const QString& protocol ) KDE_DEPRECATED;
00490
static bool isSourceProtocol(
const QString& protocol ) KDE_DEPRECATED;
00492
static bool isHelperProtocol(
const QString& protocol ) KDE_DEPRECATED;
00494
static bool isFilterProtocol(
const QString& protocol ) KDE_DEPRECATED;
00496
static bool isKnownProtocol(
const QString& protocol ) KDE_DEPRECATED;
00498
static bool supportsListing(
const QString& protocol ) KDE_DEPRECATED;
00500
static bool supportsReading(
const QString& protocol ) KDE_DEPRECATED;
00502
static bool supportsWriting(
const QString& protocol ) KDE_DEPRECATED;
00504
static bool supportsMakeDir(
const QString& protocol ) KDE_DEPRECATED;
00506
static bool supportsDeleting(
const QString& protocol ) KDE_DEPRECATED;
00508
static bool supportsLinking(
const QString& protocol ) KDE_DEPRECATED;
00510
static bool supportsMoving(
const QString& protocol ) KDE_DEPRECATED;
00512
static bool canCopyFromFile(
const QString& protocol ) KDE_DEPRECATED;
00514
static bool canCopyToFile(
const QString& protocol ) KDE_DEPRECATED;
00516
static QString defaultMimetype(
const QString& protocol) KDE_DEPRECATED;
00518
00519
protected:
00520
QString m_name;
00521
QString m_exec;
00522
Type m_inputType;
00523
Type m_outputType;
00524
QStringList m_listing;
00525
bool m_isSourceProtocol;
00526
bool m_isHelperProtocol;
00527
bool m_supportsListing;
00528
bool m_supportsReading;
00529
bool m_supportsWriting;
00530
bool m_supportsMakeDir;
00531
bool m_supportsDeleting;
00532
bool m_supportsLinking;
00533
bool m_supportsMoving;
00534
QString m_defaultMimetype;
00535
bool m_determineMimetypeFromExtension;
00536
QString m_icon;
00537
bool m_canCopyFromFile;
00538
bool m_canCopyToFile;
00539
QString m_config;
00540
int m_maxSlaves;
00541
protected:
00542
virtual void virtual_hook(
int id,
void* data );
00543
private:
00544
class KProtocolInfoPrivate;
00545 KProtocolInfoPrivate* d;
00546 };
00547
00548
QDataStream& operator>>(
QDataStream& s,
KProtocolInfo::ExtraField& field );
00549
QDataStream& operator<<(
QDataStream& s,
const KProtocolInfo::ExtraField& field );
00550
00551
#endif