kprotocolinfo.h00001
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 <qdatastream.h>
00025
00026 #include <kurl.h>
00027 #include <ksycocaentry.h>
00028 #include <ksycocatype.h>
00029
00044 class KIO_EXPORT 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
00059
00064 virtual bool isValid() const { return !m_name.isEmpty(); }
00065
00074 virtual QString name() const { return m_name; }
00075
00076
00077
00078
00079
00084 static QStringList protocols();
00085
00093 static bool isKnownProtocol( const KURL &url );
00094
00099 static bool isKnownProtocol( const QString& protocol );
00100
00112 static QString exec( const QString& protocol );
00113
00117 enum Type { T_STREAM,
00118 T_FILESYSTEM,
00119 T_NONE,
00120 T_ERROR
00121 };
00122
00133 static Type inputType( const KURL &url );
00134
00145 static Type outputType( const KURL &url );
00146
00159 static QStringList listing( const KURL &url );
00160
00171 struct ExtraField {
00172 ExtraField() {}
00173 ExtraField(const QString& _name, const QString& _type )
00174 : name(_name), type(_type) {
00175 }
00176 QString name;
00177 QString type;
00178 };
00179 typedef QValueList<ExtraField > ExtraFieldList;
00189 static ExtraFieldList extraFields( const KURL& url );
00190
00204 static bool isSourceProtocol( const KURL &url );
00205
00218 static bool isHelperProtocol( const KURL &url );
00219
00224 static bool isHelperProtocol( const QString& protocol );
00225
00242 static bool isFilterProtocol( const KURL &url );
00243
00248 static bool isFilterProtocol( const QString& protocol );
00249
00265 static bool supportsListing( const KURL &url );
00266
00276 static bool supportsReading( const KURL &url );
00277
00287 static bool supportsWriting( const KURL &url );
00288
00298 static bool supportsMakeDir( const KURL &url );
00299
00309 static bool supportsDeleting( const KURL &url );
00310
00320 static bool supportsLinking( const KURL &url );
00321
00332 static bool supportsMoving( const KURL &url );
00333
00346 static bool canCopyFromFile( const KURL &url );
00347
00360 static bool canCopyToFile( const KURL &url );
00361
00375 static bool canRenameFromFile( const KURL &url );
00376
00390 static bool canRenameToFile( const KURL &url );
00391
00404 static bool canDeleteRecursive( const KURL &url );
00405
00406 typedef enum { Name, FromURL } FileNameUsedForCopying;
00407
00424 static FileNameUsedForCopying fileNameUsedForCopying( const KURL &url );
00425
00434 static QString defaultMimetype( const KURL& url );
00435
00444 static QString icon( const QString& protocol );
00445
00457 static QString config( const QString& protocol );
00458
00471 static int maxSlaves( const QString& protocol );
00472
00484 static bool determineMimetypeFromExtension( const QString &protocol );
00485
00495 static QString docPath( const QString& protocol );
00496
00513 static QString protocolClass( const QString& protocol );
00514
00526 static bool showFilePreview( const QString& protocol );
00527
00543 static KURL::URIMode uriParseMode( const QString& protocol );
00544
00563 static QStringList capabilities( const QString& protocol );
00564
00576 static QString proxiedBy( const QString& protocol );
00577
00578 public:
00579
00583 KProtocolInfo( QDataStream& _str, int offset);
00584
00585 virtual ~KProtocolInfo();
00586
00591 virtual void load(QDataStream& );
00592
00597 virtual void save(QDataStream& );
00598
00600
00601
00603 static Type inputType( const QString& protocol ) KDE_DEPRECATED;
00605 static Type outputType( const QString& protocol ) KDE_DEPRECATED;
00612 static QStringList listing( const QString& protocol ) KDE_DEPRECATED;
00614 static bool isSourceProtocol( const QString& protocol ) KDE_DEPRECATED;
00616 static bool supportsListing( const QString& protocol ) KDE_DEPRECATED;
00618 static bool supportsReading( const QString& protocol ) KDE_DEPRECATED;
00620 static bool supportsWriting( const QString& protocol ) KDE_DEPRECATED;
00622 static bool supportsMakeDir( const QString& protocol ) KDE_DEPRECATED;
00624 static bool supportsDeleting( const QString& protocol ) KDE_DEPRECATED;
00626 static bool supportsLinking( const QString& protocol ) KDE_DEPRECATED;
00628 static bool supportsMoving( const QString& protocol ) KDE_DEPRECATED;
00630 static bool canCopyFromFile( const QString& protocol ) KDE_DEPRECATED;
00632 static bool canCopyToFile( const QString& protocol ) KDE_DEPRECATED;
00634 static QString defaultMimetype( const QString& protocol) KDE_DEPRECATED;
00636
00637 protected:
00638 QString m_name;
00639 QString m_exec;
00640 Type m_inputType;
00641 Type m_outputType;
00642 QStringList m_listing;
00643 bool m_isSourceProtocol;
00644 bool m_isHelperProtocol;
00645 bool m_supportsListing;
00646 bool m_supportsReading;
00647 bool m_supportsWriting;
00648 bool m_supportsMakeDir;
00649 bool m_supportsDeleting;
00650 bool m_supportsLinking;
00651 bool m_supportsMoving;
00652 QString m_defaultMimetype;
00653 bool m_determineMimetypeFromExtension;
00654 QString m_icon;
00655 bool m_canCopyFromFile;
00656 bool m_canCopyToFile;
00657 QString m_config;
00658 int m_maxSlaves;
00659
00660 bool canRenameFromFile() const;
00661 bool canRenameToFile() const;
00662 bool canDeleteRecursive() const;
00663 FileNameUsedForCopying fileNameUsedForCopying() const;
00664 static KProtocolInfo* findProtocol(const KURL &url);
00665
00666 protected:
00667 virtual void virtual_hook( int id, void* data );
00668 private:
00669 class KProtocolInfoPrivate;
00670 KProtocolInfoPrivate* d;
00671 };
00672
00673 KIO_EXPORT QDataStream& operator>>( QDataStream& s, KProtocolInfo::ExtraField& field );
00674 KIO_EXPORT QDataStream& operator<<( QDataStream& s, const KProtocolInfo::ExtraField& field );
00675
00676 #endif
|