diff options
Diffstat (limited to 'kdecore/kprotocolinfo_kdecore.cpp')
-rw-r--r-- | kdecore/kprotocolinfo_kdecore.cpp | 562 |
1 files changed, 0 insertions, 562 deletions
diff --git a/kdecore/kprotocolinfo_kdecore.cpp b/kdecore/kprotocolinfo_kdecore.cpp deleted file mode 100644 index 66ce97760..000000000 --- a/kdecore/kprotocolinfo_kdecore.cpp +++ /dev/null @@ -1,562 +0,0 @@ -/* This file is part of the KDE libraries - Copyright (C) 1999 Torben Weis <weis@kde.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License version 2 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifdef MAKE_KDECORE_LIB //needed for proper linkage (win32) -#undef KIO_EXPORT -#define KIO_EXPORT KDE_EXPORT -#endif - -#define KPROTOCOLINFO_KDECORE -#include "kprotocolinfo.h" -#include "kprotocolinfofactory.h" - -#include <kstandarddirs.h> -#include <kglobal.h> -#include <kapplication.h> -#include <kdebug.h> -#include <ksimpleconfig.h> -#include <kconfig.h> -#include <kstringhandler.h> - -class KProtocolInfo::KProtocolInfoPrivate -{ -public: - TQString docPath; - TQString protClass; - KProtocolInfo::ExtraFieldList extraFields; - bool showPreviews; - bool canRenameFromFile; - bool canRenameToFile; - bool canDeleteRecursive; - bool fileNameUsedForCopying; // true if using UDS_NAME, false if using KURL::fileName() [default] - KURL::URIMode uriMode; - TQStringList capabilities; - TQString proxyProtocol; -}; - -// -// Internal functions: -// -KProtocolInfo::KProtocolInfo(const TQString &path) - : KSycocaEntry(path) -{ - d = new KProtocolInfoPrivate; - TQString fullPath = locate("services", path); - - KSimpleConfig config( fullPath, true ); - config.setGroup( "Protocol" ); - - m_name = config.readEntry( "protocol" ); - m_exec = config.readPathEntry( "exec" ); - m_isSourceProtocol = config.readBoolEntry( "source", true ); - m_isHelperProtocol = config.readBoolEntry( "helper", false ); - m_supportsReading = config.readBoolEntry( "reading", false ); - m_supportsWriting = config.readBoolEntry( "writing", false ); - m_supportsMakeDir = config.readBoolEntry( "makedir", false ); - m_supportsDeleting = config.readBoolEntry( "deleting", false ); - m_supportsLinking = config.readBoolEntry( "linking", false ); - m_supportsMoving = config.readBoolEntry( "moving", false ); - m_canCopyFromFile = config.readBoolEntry( "copyFromFile", false ); - m_canCopyToFile = config.readBoolEntry( "copyToFile", false ); - d->canRenameFromFile = config.readBoolEntry( "renameFromFile", false ); - d->canRenameToFile = config.readBoolEntry( "renameToFile", false ); - d->canDeleteRecursive = config.readBoolEntry( "deleteRecursive", false ); - d->fileNameUsedForCopying = config.readEntry( "fileNameUsedForCopying", "FromURL" ) == "Name"; - - m_listing = config.readListEntry( "listing" ); - // Many .protocol files say "Listing=false" when they really mean "Listing=" (i.e. unsupported) - if ( m_listing.count() == 1 && m_listing.first() == "false" ) - m_listing.clear(); - m_supportsListing = ( m_listing.count() > 0 ); - m_defaultMimetype = config.readEntry( "defaultMimetype" ); - m_determineMimetypeFromExtension = config.readBoolEntry( "determineMimetypeFromExtension", true ); - m_icon = config.readEntry( "Icon", "unknown" ); - m_config = config.readEntry( "config", m_name ); - m_maxSlaves = config.readNumEntry( "maxInstances", 1); - - TQString tmp = config.readEntry( "input" ); - if ( tmp == "filesystem" ) - m_inputType = KProtocolInfo::T_FILESYSTEM; - else if ( tmp == "stream" ) - m_inputType = KProtocolInfo::T_STREAM; - else - m_inputType = KProtocolInfo::T_NONE; - - tmp = config.readEntry( "output" ); - if ( tmp == "filesystem" ) - m_outputType = KProtocolInfo::T_FILESYSTEM; - else if ( tmp == "stream" ) - m_outputType = KProtocolInfo::T_STREAM; - else - m_outputType = KProtocolInfo::T_NONE; - - d->docPath = config.readPathEntry( "DocPath" ); - d->protClass = config.readEntry( "Class" ).lower(); - if (d->protClass[0] != ':') - d->protClass.prepend(':'); - - TQStringList extraNames = config.readListEntry( "ExtraNames" ); - TQStringList extraTypes = config.readListEntry( "ExtraTypes" ); - TQStringList::Iterator it = extraNames.begin(); - TQStringList::Iterator typeit = extraTypes.begin(); - for( ; it != extraNames.end() && typeit != extraTypes.end(); ++it, ++typeit ) { - d->extraFields.append( ExtraField( *it, *typeit ) ); - } - - d->showPreviews = config.readBoolEntry( "ShowPreviews", d->protClass == ":local" ); - - tmp = config.readEntry( "URIMode", TQString::null ).lower(); - if (tmp == "rawuri") - d->uriMode = KURL::RawURI; - else if (tmp == "mailto") - d->uriMode = KURL::Mailto; - else if (tmp == "url") - d->uriMode = KURL::URL; - else - d->uriMode = KURL::Auto; - - d->capabilities = config.readListEntry( "Capabilities" ); - d->proxyProtocol = config.readEntry( "ProxiedBy" ); -} - -KProtocolInfo::KProtocolInfo( TQDataStream& _str, int offset) : - KSycocaEntry( _str, offset) -{ - d = new KProtocolInfoPrivate; - load( _str ); -} - -KProtocolInfo::~KProtocolInfo() -{ - delete d; -} - -void -KProtocolInfo::load( TQDataStream& _str) -{ - // You may add new fields at the end. Make sure to update the version - // number in ksycoca.h - TQ_INT32 i_inputType, i_outputType; - TQ_INT8 i_isSourceProtocol, i_isHelperProtocol, - i_supportsListing, i_supportsReading, - i_supportsWriting, i_supportsMakeDir, - i_supportsDeleting, i_supportsLinking, - i_supportsMoving, i_determineMimetypeFromExtension, - i_canCopyFromFile, i_canCopyToFile, i_showPreviews, - i_uriMode, i_canRenameFromFile, i_canRenameToFile, - i_canDeleteRecursive, i_fileNameUsedForCopying; - - _str >> m_name >> m_exec >> m_listing >> m_defaultMimetype - >> i_determineMimetypeFromExtension - >> m_icon - >> i_inputType >> i_outputType - >> i_isSourceProtocol >> i_isHelperProtocol - >> i_supportsListing >> i_supportsReading - >> i_supportsWriting >> i_supportsMakeDir - >> i_supportsDeleting >> i_supportsLinking - >> i_supportsMoving - >> i_canCopyFromFile >> i_canCopyToFile - >> m_config >> m_maxSlaves >> d->docPath >> d->protClass - >> d->extraFields >> i_showPreviews >> i_uriMode - >> d->capabilities >> d->proxyProtocol - >> i_canRenameFromFile >> i_canRenameToFile - >> i_canDeleteRecursive >> i_fileNameUsedForCopying; - - m_inputType = (Type) i_inputType; - m_outputType = (Type) i_outputType; - m_isSourceProtocol = (i_isSourceProtocol != 0); - m_isHelperProtocol = (i_isHelperProtocol != 0); - m_supportsListing = (i_supportsListing != 0); - m_supportsReading = (i_supportsReading != 0); - m_supportsWriting = (i_supportsWriting != 0); - m_supportsMakeDir = (i_supportsMakeDir != 0); - m_supportsDeleting = (i_supportsDeleting != 0); - m_supportsLinking = (i_supportsLinking != 0); - m_supportsMoving = (i_supportsMoving != 0); - m_canCopyFromFile = (i_canCopyFromFile != 0); - m_canCopyToFile = (i_canCopyToFile != 0); - d->canRenameFromFile = (i_canRenameFromFile != 0); - d->canRenameToFile = (i_canRenameToFile != 0); - d->canDeleteRecursive = (i_canDeleteRecursive != 0); - d->fileNameUsedForCopying = (i_fileNameUsedForCopying != 0); - m_determineMimetypeFromExtension = (i_determineMimetypeFromExtension != 0); - d->showPreviews = (i_showPreviews != 0); - d->uriMode = (KURL::URIMode) i_uriMode; -} - -void -KProtocolInfo::save( TQDataStream& _str) -{ - KSycocaEntry::save( _str ); - - // You may add new fields at the end. Make sure to update the version - // number in ksycoca.h - TQ_INT32 i_inputType, i_outputType; - TQ_INT8 i_isSourceProtocol, i_isHelperProtocol, - i_supportsListing, i_supportsReading, - i_supportsWriting, i_supportsMakeDir, - i_supportsDeleting, i_supportsLinking, - i_supportsMoving, i_determineMimetypeFromExtension, - i_canCopyFromFile, i_canCopyToFile, i_showPreviews, - i_uriMode, i_canRenameFromFile, i_canRenameToFile, - i_canDeleteRecursive, i_fileNameUsedForCopying; - - i_inputType = (TQ_INT32) m_inputType; - i_outputType = (TQ_INT32) m_outputType; - i_isSourceProtocol = m_isSourceProtocol ? 1 : 0; - i_isHelperProtocol = m_isHelperProtocol ? 1 : 0; - i_supportsListing = m_supportsListing ? 1 : 0; - i_supportsReading = m_supportsReading ? 1 : 0; - i_supportsWriting = m_supportsWriting ? 1 : 0; - i_supportsMakeDir = m_supportsMakeDir ? 1 : 0; - i_supportsDeleting = m_supportsDeleting ? 1 : 0; - i_supportsLinking = m_supportsLinking ? 1 : 0; - i_supportsMoving = m_supportsMoving ? 1 : 0; - i_canCopyFromFile = m_canCopyFromFile ? 1 : 0; - i_canCopyToFile = m_canCopyToFile ? 1 : 0; - i_canRenameFromFile = d->canRenameFromFile ? 1 : 0; - i_canRenameToFile = d->canRenameToFile ? 1 : 0; - i_canDeleteRecursive = d->canDeleteRecursive ? 1 : 0; - i_fileNameUsedForCopying = d->fileNameUsedForCopying ? 1 : 0; - i_determineMimetypeFromExtension = m_determineMimetypeFromExtension ? 1 : 0; - i_showPreviews = d->showPreviews ? 1 : 0; - i_uriMode = d->uriMode; - - _str << m_name << m_exec << m_listing << m_defaultMimetype - << i_determineMimetypeFromExtension - << m_icon - << i_inputType << i_outputType - << i_isSourceProtocol << i_isHelperProtocol - << i_supportsListing << i_supportsReading - << i_supportsWriting << i_supportsMakeDir - << i_supportsDeleting << i_supportsLinking - << i_supportsMoving - << i_canCopyFromFile << i_canCopyToFile - << m_config << m_maxSlaves << d->docPath << d->protClass - << d->extraFields << i_showPreviews << i_uriMode - << d->capabilities << d->proxyProtocol - << i_canRenameFromFile << i_canRenameToFile - << i_canDeleteRecursive << i_fileNameUsedForCopying; -} - - -// -// Static functions: -// - -TQStringList KProtocolInfo::protocols() -{ - return KProtocolInfoFactory::self()->protocols(); -} - -bool KProtocolInfo::isSourceProtocol( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return false; - - return prot->m_isSourceProtocol; -} - -bool KProtocolInfo::isFilterProtocol( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return false; - - return !prot->m_isSourceProtocol; -} - -bool KProtocolInfo::isHelperProtocol( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return false; - - return prot->m_isHelperProtocol; -} - -bool KProtocolInfo::isKnownProtocol( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - return ( prot != 0); -} - -bool KProtocolInfo::supportsListing( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return false; - - return prot->m_supportsListing; -} - -TQStringList KProtocolInfo::listing( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return TQStringList(); - - return prot->m_listing; -} - -bool KProtocolInfo::supportsReading( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return false; - - return prot->m_supportsReading; -} - -bool KProtocolInfo::supportsWriting( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return false; - - return prot->m_supportsWriting; -} - -bool KProtocolInfo::supportsMakeDir( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return false; - - return prot->m_supportsMakeDir; -} - -bool KProtocolInfo::supportsDeleting( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return false; - - return prot->m_supportsDeleting; -} - -bool KProtocolInfo::supportsLinking( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return false; - - return prot->m_supportsLinking; -} - -bool KProtocolInfo::supportsMoving( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return false; - - return prot->m_supportsMoving; -} - -bool KProtocolInfo::canCopyFromFile( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return false; - - return prot->m_canCopyFromFile; -} - - -bool KProtocolInfo::canCopyToFile( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return false; - - return prot->m_canCopyToFile; -} - -TQString KProtocolInfo::icon( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return TQString::tqfromLatin1("unknown"); - - return prot->m_icon; -} - -TQString KProtocolInfo::config( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return TQString::null; - - return TQString("kio_%1rc").arg(prot->m_config); -} - -int KProtocolInfo::maxSlaves( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return 1; - - return prot->m_maxSlaves; -} - -TQString KProtocolInfo::defaultMimetype( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return TQString::null; - - return prot->m_defaultMimetype; -} - -bool KProtocolInfo::determineMimetypeFromExtension( const TQString &_protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol( _protocol ); - if ( !prot ) - return true; - - return prot->m_determineMimetypeFromExtension; -} - -TQString KProtocolInfo::exec( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return TQString::null; - - return prot->m_exec; -} - -KProtocolInfo::Type KProtocolInfo::inputType( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return T_NONE; - - return prot->m_inputType; -} - -KProtocolInfo::Type KProtocolInfo::outputType( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return T_NONE; - - return prot->m_outputType; -} - -KProtocolInfo::ExtraFieldList KProtocolInfo::extraFields( const KURL &url ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(url.protocol()); - if ( !prot ) - return ExtraFieldList(); - - return prot->d->extraFields; -} - -TQString KProtocolInfo::docPath( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return TQString::null; - - return prot->d->docPath; -} - -TQString KProtocolInfo::protocolClass( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return TQString::null; - - return prot->d->protClass; -} - -bool KProtocolInfo::showFilePreview( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return false; - - return prot->d->showPreviews; -} - -KURL::URIMode KProtocolInfo::uriParseMode( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return KURL::Auto; - - return prot->d->uriMode; -} - -TQStringList KProtocolInfo::capabilities( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return TQStringList(); - - return prot->d->capabilities; -} - -TQString KProtocolInfo::proxiedBy( const TQString& _protocol ) -{ - KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol); - if ( !prot ) - return TQString::null; - - return prot->d->proxyProtocol; -} - -bool KProtocolInfo::canRenameFromFile() const -{ - return d->canRenameFromFile; -} - -bool KProtocolInfo::canRenameToFile() const -{ - return d->canRenameToFile; -} - -bool KProtocolInfo::canDeleteRecursive() const -{ - return d->canDeleteRecursive; -} - -KProtocolInfo::FileNameUsedForCopying KProtocolInfo::fileNameUsedForCopying() const -{ - return d->fileNameUsedForCopying ? Name : FromURL; -} - -TQDataStream& operator>>( TQDataStream& s, KProtocolInfo::ExtraField& field ) { - s >> field.name; - s >> field.type; - return s; -} - -TQDataStream& operator<<( TQDataStream& s, const KProtocolInfo::ExtraField& field ) { - s << field.name; - s << field.type; - return s; -} - -// KURL based static functions are implemented in ../kio/kio/kprotocolinfo.cpp - -void KProtocolInfo::virtual_hook( int id, void* data ) -{ KSycocaEntry::virtual_hook( id, data ); } - |