kio Library API Documentation

kprotocolinfo.h

00001 /* This file is part of the KDE libraries 00002 Copyright (C) 1999 Torben Weis <weis@kde.org> 00003 Copyright (C) 2000-2001 Waldo Bastian <bastian@kde.org> 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Library General Public 00007 License version 2 as published by the Free Software Foundation. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00017 Boston, MA 02111-1307, USA. 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 // Static functions: 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() {} // for QValueList 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 // Internal functions: 00459 KProtocolInfo( QDataStream& _str, int offset); 00460 00461 virtual ~KProtocolInfo(); 00462 00467 virtual void load(QDataStream& ); 00468 00473 virtual void save(QDataStream& ); 00474 00476 // The following methods are deprecated: 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
KDE Logo
This file is part of the documentation for kio Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Oct 8 11:14:59 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003