generic: drop support for archive KIO slaves

KIO was designed around remote protocols and is very much not suitable for
archive browsing for example

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2022-10-06 14:41:24 +03:00
parent 46b529fc21
commit 8bb2fec99a
6 changed files with 2 additions and 52 deletions

View file

@ -68,7 +68,6 @@ KProtocolInfo::KProtocolInfo(const QString &path)
m_supportsListing = ( m_listing.count() > 0 );
m_defaultMimetype = config.readEntry( "defaultMimetype" );
m_determineMimetypeFromExtension = config.readEntry( "determineMimetypeFromExtension", true );
d->archiveMimetype = config.readEntry("archiveMimetype", QStringList());
m_icon = config.readEntry( "Icon" );
m_config = config.readEntry( "config", m_name );
m_maxSlaves = config.readEntry( "maxInstances", 1);
@ -143,7 +142,7 @@ KProtocolInfo::load( QDataStream& _str)
>> d->capabilities >> d->proxyProtocol
>> i_canRenameFromFile >> i_canRenameToFile
>> i_canDeleteRecursive >> i_fileNameUsedForCopying
>> d->archiveMimetype >> d->maxSlavesPerHost;
>> d->maxSlavesPerHost;
m_inputType = (Type) i_inputType;
m_outputType = (Type) i_outputType;
@ -221,7 +220,7 @@ KProtocolInfoPrivate::save( QDataStream& _str)
<< capabilities << proxyProtocol
<< i_canRenameFromFile << i_canRenameToFile
<< i_canDeleteRecursive << i_fileNameUsedForCopying
<< archiveMimetype << maxSlavesPerHost;
<< maxSlavesPerHost;
}
@ -384,13 +383,6 @@ QString KProtocolInfo::defaultMimeType() const
return m_defaultMimetype;
}
QStringList KProtocolInfo::archiveMimeTypes() const
{
Q_D(const KProtocolInfo);
return d->archiveMimetype;
}
bool KProtocolInfo::supportsListing() const
{
return m_supportsListing;

View file

@ -295,8 +295,6 @@ public:
bool supportsListing() const;
/// @internal. Use KProtocolManager instead.
QString defaultMimeType() const;
/// @internal. Use KProtocolManager instead.
QStringList archiveMimeTypes() const;
protected:
QString m_name;

View file

@ -48,7 +48,6 @@ public:
KProtocolInfo *q;
QString docPath;
QString protClass;
QStringList archiveMimetype;
bool showPreviews : 1;
bool canRenameFromFile : 1;
bool canRenameToFile : 1;

View file

@ -122,8 +122,6 @@ public:
QString noProxyFor;
QList<SubnetPair> noProxySubnets;
QCache<QString, KProxyData> cachedProxyData;
QMap<QString /*mimetype*/, QString /*protocol*/> protocolForArchiveMimetypes;
};
K_GLOBAL_STATIC(KProtocolManagerPrivate, kProtocolManagerPrivate)
@ -879,22 +877,6 @@ QString KProtocolManager::defaultMimetype( const KUrl &url )
return prot->m_defaultMimetype;
}
QString KProtocolManager::protocolForArchiveMimetype( const QString& mimeType )
{
PRIVATE_DATA;
if (d->protocolForArchiveMimetypes.isEmpty()) {
const KProtocolInfo::List allProtocols = KProtocolInfoFactory::self()->allProtocols();
for (KProtocolInfo::List::const_iterator it = allProtocols.begin();
it != allProtocols.end(); ++it) {
const QStringList archiveMimetypes = (*it)->archiveMimeTypes();
Q_FOREACH(const QString& mime, archiveMimetypes) {
d->protocolForArchiveMimetypes.insert(mime, (*it)->name());
}
}
}
return d->protocolForArchiveMimetypes.value(mimeType);
}
QString KProtocolManager::charsetFor(const KUrl& url)
{
return KIO::SlaveConfig::self()->configData(url.scheme(), url.host(), QLatin1String("Charset"));

View file

@ -522,19 +522,6 @@ public:
*/
static bool isSourceProtocol( const KUrl &url );
/**
* Returns which protocol handles this mimetype, if it's an archive mimetype.
* For instance zip:/ handles application/x-zip.
*
* This is defined in the protocol description file using an entry like
* "archiveMimetype=application/x-zip"
*
* @param mimetype the mimetype to check
* @return the protocol that can handle this archive mimetype, for instance "zip".
* @since 4.1
*/
static QString protocolForArchiveMimetype( const QString& mimeType );
/*=============================== OTHERS ====================================*/

View file

@ -52,13 +52,5 @@ int main(int argc, char **argv) {
kDebug() << "kio_imap capabilities: " << capabilities;
//assert(capabilities.contains("ACL"));
if (!QFile::exists(KStandardDirs::locate("services", "zip.protocol"))) {
//QSKIP("kdebase not installed", SkipAll);
} else {
QString zip = KProtocolManager::protocolForArchiveMimetype("application/zip");
assert( zip == "zip");
}
return 0;
}