• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

KDECore

  • kdecore
  • sycoca
kprotocolinfo.cpp
Go to the documentation of this file.
1/* This file is part of the KDE libraries
2 Copyright (C) 1999 Torben Weis <weis@kde.org>
3 Copyright (C) 2003 Waldo Bastian <bastian@kde.org>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License version 2 as published by the Free Software Foundation.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
18*/
19
20#include "kprotocolinfo.h"
21#include "kprotocolinfo_p.h"
22#include "kprotocolinfofactory.h"
23
24#include <kmimetypetrader.h>
25#include <kstandarddirs.h>
26#include <kconfig.h>
27#include <kconfiggroup.h>
28
29//
30// Internal functions:
31//
32KProtocolInfo::KProtocolInfo(const QString &path)
33 : KSycocaEntry(*new KProtocolInfoPrivate(path, this))
34{
35 Q_D(KProtocolInfo);
36 QString fullPath = KStandardDirs::locate("services", path);
37
38 KConfig sconfig( fullPath );
39 KConfigGroup config(&sconfig, "Protocol" );
40
41 m_name = config.readEntry( "protocol" );
42 m_exec = config.readPathEntry( "exec", QString() );
43 m_isSourceProtocol = config.readEntry( "source", true );
44 m_isHelperProtocol = config.readEntry( "helper", false );
45 m_supportsReading = config.readEntry( "reading", false );
46 m_supportsWriting = config.readEntry( "writing", false );
47 m_supportsMakeDir = config.readEntry( "makedir", false );
48 m_supportsDeleting = config.readEntry( "deleting", false );
49 m_supportsLinking = config.readEntry( "linking", false );
50 m_supportsMoving = config.readEntry( "moving", false );
51 m_supportsOpening = config.readEntry( "opening", false );
52 m_canCopyFromFile = config.readEntry( "copyFromFile", false );
53 m_canCopyToFile = config.readEntry( "copyToFile", false );
54 d->canRenameFromFile = config.readEntry( "renameFromFile", false );
55 d->canRenameToFile = config.readEntry( "renameToFile", false );
56 d->canDeleteRecursive = config.readEntry( "deleteRecursive", false );
57 const QString fnu = config.readEntry( "fileNameUsedForCopying", "FromURL" );
58 d->fileNameUsedForCopying = FromUrl;
59 if (fnu == QLatin1String("Name"))
60 d->fileNameUsedForCopying = Name;
61 else if (fnu == QLatin1String("DisplayName"))
62 d->fileNameUsedForCopying = DisplayName;
63
64 m_listing = config.readEntry( "listing", QStringList() );
65 // Many .protocol files say "Listing=false" when they really mean "Listing=" (i.e. unsupported)
66 if ( m_listing.count() == 1 && m_listing.first() == QLatin1String("false") )
67 m_listing.clear();
68 m_supportsListing = ( m_listing.count() > 0 );
69 m_defaultMimetype = config.readEntry( "defaultMimetype" );
70 m_determineMimetypeFromExtension = config.readEntry( "determineMimetypeFromExtension", true );
71 d->archiveMimetype = config.readEntry("archiveMimetype", QStringList());
72 m_icon = config.readEntry( "Icon" );
73 m_config = config.readEntry( "config", m_name );
74 m_maxSlaves = config.readEntry( "maxInstances", 1);
75 d->maxSlavesPerHost = config.readEntry( "maxInstancesPerHost", 0);
76
77 QString tmp = config.readEntry( "input" );
78 if ( tmp == QLatin1String("filesystem") )
79 m_inputType = KProtocolInfo::T_FILESYSTEM;
80 else if ( tmp == QLatin1String("stream") )
81 m_inputType = KProtocolInfo::T_STREAM;
82 else
83 m_inputType = KProtocolInfo::T_NONE;
84
85 tmp = config.readEntry( "output" );
86 if ( tmp == QLatin1String("filesystem") )
87 m_outputType = KProtocolInfo::T_FILESYSTEM;
88 else if ( tmp == QLatin1String("stream") )
89 m_outputType = KProtocolInfo::T_STREAM;
90 else
91 m_outputType = KProtocolInfo::T_NONE;
92
93 d->docPath = config.readPathEntry( "X-DocPath", QString() );
94 if (d->docPath.isEmpty())
95 d->docPath = config.readPathEntry( "DocPath", QString() );
96 d->protClass = config.readEntry( "Class" ).toLower();
97 if (d->protClass[0] != QLatin1Char(':'))
98 d->protClass.prepend(QLatin1Char(':'));
99
100 const QStringList extraNames = config.readEntry( "ExtraNames", QStringList() );
101 const QStringList extraTypes = config.readEntry( "ExtraTypes", QStringList() );
102 QStringList::const_iterator it = extraNames.begin();
103 QStringList::const_iterator typeit = extraTypes.begin();
104 for( ; it != extraNames.end() && typeit != extraTypes.end(); ++it, ++typeit ) {
105 QVariant::Type type = QVariant::nameToType( (*typeit).toLatin1() );
106 // currently QVariant::Type and ExtraField::Type use the same subset of values, so we can just cast.
107 d->extraFields.append( ExtraField( *it, static_cast<ExtraField::Type>(type) ) );
108 }
109
110 d->showPreviews = config.readEntry( "ShowPreviews", d->protClass == QLatin1String(":local") );
111
112 d->capabilities = config.readEntry( "Capabilities", QStringList() );
113 d->proxyProtocol = config.readEntry( "ProxiedBy" );
114}
115
116KProtocolInfo::KProtocolInfo( QDataStream& _str, int offset) :
117 KSycocaEntry(*new KProtocolInfoPrivate( _str, offset, this) )
118{
119 load( _str );
120}
121
122KProtocolInfo::~KProtocolInfo()
123{
124}
125
126void
127KProtocolInfo::load( QDataStream& _str)
128{
129 Q_D(KProtocolInfo);
130 // You may add new fields at the end. Make sure to update the version
131 // number in ksycoca.h
132 qint32 i_inputType, i_outputType;
133 qint8 i_isSourceProtocol, i_isHelperProtocol,
134 i_supportsListing, i_supportsReading,
135 i_supportsWriting, i_supportsMakeDir,
136 i_supportsDeleting, i_supportsLinking,
137 i_supportsMoving, i_supportsOpening,
138 i_determineMimetypeFromExtension,
139 i_canCopyFromFile, i_canCopyToFile, i_showPreviews,
140 i_uriMode, i_canRenameFromFile, i_canRenameToFile,
141 i_canDeleteRecursive, i_fileNameUsedForCopying;
142
143 _str >> m_name >> m_exec >> m_listing >> m_defaultMimetype
144 >> i_determineMimetypeFromExtension
145 >> m_icon
146 >> i_inputType >> i_outputType
147 >> i_isSourceProtocol >> i_isHelperProtocol
148 >> i_supportsListing >> i_supportsReading
149 >> i_supportsWriting >> i_supportsMakeDir
150 >> i_supportsDeleting >> i_supportsLinking
151 >> i_supportsMoving >> i_supportsOpening
152 >> i_canCopyFromFile >> i_canCopyToFile
153 >> m_config >> m_maxSlaves >> d->docPath >> d->protClass
154 >> d->extraFields >> i_showPreviews >> i_uriMode
155 >> d->capabilities >> d->proxyProtocol
156 >> i_canRenameFromFile >> i_canRenameToFile
157 >> i_canDeleteRecursive >> i_fileNameUsedForCopying
158 >> d->archiveMimetype >> d->maxSlavesPerHost;
159
160 m_inputType = (Type) i_inputType;
161 m_outputType = (Type) i_outputType;
162 m_isSourceProtocol = (i_isSourceProtocol != 0);
163 m_isHelperProtocol = (i_isHelperProtocol != 0);
164 m_supportsListing = (i_supportsListing != 0);
165 m_supportsReading = (i_supportsReading != 0);
166 m_supportsWriting = (i_supportsWriting != 0);
167 m_supportsMakeDir = (i_supportsMakeDir != 0);
168 m_supportsDeleting = (i_supportsDeleting != 0);
169 m_supportsLinking = (i_supportsLinking != 0);
170 m_supportsMoving = (i_supportsMoving != 0);
171 m_supportsOpening = (i_supportsOpening != 0);
172 m_canCopyFromFile = (i_canCopyFromFile != 0);
173 m_canCopyToFile = (i_canCopyToFile != 0);
174 d->canRenameFromFile = (i_canRenameFromFile != 0);
175 d->canRenameToFile = (i_canRenameToFile != 0);
176 d->canDeleteRecursive = (i_canDeleteRecursive != 0);
177 d->fileNameUsedForCopying = FileNameUsedForCopying(i_fileNameUsedForCopying);
178 m_determineMimetypeFromExtension = (i_determineMimetypeFromExtension != 0);
179 d->showPreviews = (i_showPreviews != 0);
180}
181
182void
183KProtocolInfoPrivate::save( QDataStream& _str)
184{
185 KSycocaEntryPrivate::save( _str );
186
187 // You may add new fields at the end. Make sure to update the version
188 // number in ksycoca.h
189 qint32 i_inputType, i_outputType;
190 qint8 i_isSourceProtocol, i_isHelperProtocol,
191 i_supportsListing, i_supportsReading,
192 i_supportsWriting, i_supportsMakeDir,
193 i_supportsDeleting, i_supportsLinking,
194 i_supportsMoving, i_supportsOpening,
195 i_determineMimetypeFromExtension,
196 i_canCopyFromFile, i_canCopyToFile, i_showPreviews,
197 i_uriMode, i_canRenameFromFile, i_canRenameToFile,
198 i_canDeleteRecursive, i_fileNameUsedForCopying;
199
200 i_inputType = (qint32) q->m_inputType;
201 i_outputType = (qint32) q->m_outputType;
202 i_isSourceProtocol = q->m_isSourceProtocol ? 1 : 0;
203 i_isHelperProtocol = q->m_isHelperProtocol ? 1 : 0;
204 i_supportsListing = q->m_supportsListing ? 1 : 0;
205 i_supportsReading = q->m_supportsReading ? 1 : 0;
206 i_supportsWriting = q->m_supportsWriting ? 1 : 0;
207 i_supportsMakeDir = q->m_supportsMakeDir ? 1 : 0;
208 i_supportsDeleting = q->m_supportsDeleting ? 1 : 0;
209 i_supportsLinking = q->m_supportsLinking ? 1 : 0;
210 i_supportsMoving = q->m_supportsMoving ? 1 : 0;
211 i_supportsOpening = q->m_supportsOpening ? 1 : 0;
212 i_canCopyFromFile = q->m_canCopyFromFile ? 1 : 0;
213 i_canCopyToFile = q->m_canCopyToFile ? 1 : 0;
214 i_canRenameFromFile = canRenameFromFile ? 1 : 0;
215 i_canRenameToFile = canRenameToFile ? 1 : 0;
216 i_canDeleteRecursive = canDeleteRecursive ? 1 : 0;
217 i_fileNameUsedForCopying = int(fileNameUsedForCopying);
218 i_determineMimetypeFromExtension = q->m_determineMimetypeFromExtension ? 1 : 0;
219 i_showPreviews = showPreviews ? 1 : 0;
220 i_uriMode = 0;
221
222 _str << q->m_name << q->m_exec << q->m_listing << q->m_defaultMimetype
223 << i_determineMimetypeFromExtension
224 << q->m_icon
225 << i_inputType << i_outputType
226 << i_isSourceProtocol << i_isHelperProtocol
227 << i_supportsListing << i_supportsReading
228 << i_supportsWriting << i_supportsMakeDir
229 << i_supportsDeleting << i_supportsLinking
230 << i_supportsMoving << i_supportsOpening
231 << i_canCopyFromFile << i_canCopyToFile
232 << q->m_config << q->m_maxSlaves << docPath << protClass
233 << extraFields << i_showPreviews << i_uriMode
234 << capabilities << proxyProtocol
235 << i_canRenameFromFile << i_canRenameToFile
236 << i_canDeleteRecursive << i_fileNameUsedForCopying
237 << archiveMimetype << maxSlavesPerHost;
238}
239
240
241//
242// Static functions:
243//
244
245QStringList KProtocolInfo::protocols()
246{
247 return KProtocolInfoFactory::self()->protocols();
248}
249
250bool KProtocolInfo::isFilterProtocol( const QString& _protocol )
251{
252 // We call the findProtocol directly (not via KProtocolManager) to bypass any proxy settings.
253 KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol);
254 if ( !prot )
255 return false;
256
257 return !prot->m_isSourceProtocol;
258}
259
260void KProtocolInfo::selectServiceOrHelper(const QString& protocol, KProtocolInfo::Ptr& returnProtocol, KService::Ptr& returnService)
261{
262 // We have up to two sources of data:
263 // 1) the exec line of the .protocol file, if there's one (could be a kioslave or a helper app)
264 // 2) the application associated with x-scheme-handler/<protocol> if there's one
265
266 // If both exist, then:
267 // A) if the .protocol file says "launch an application", then the new-style handler-app has priority
268 // B) but if the .protocol file is for a kioslave (e.g. kio_http) then this has priority over
269 // firefox or chromium saying x-scheme-handler/http. Gnome people want to send all HTTP urls
270 // to a webbrowser, but we want mimetype-determination-in-calling-application by default
271 // (the user can configure a BrowserApplication though)
272
273 const KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(protocol);
274 const KService::Ptr service = KMimeTypeTrader::self()->preferredService(QString::fromLatin1("x-scheme-handler/") + protocol);
275 if (service && prot && prot->m_isHelperProtocol) { // for helper protocols, the handler app has priority over the hardcoded one (see A above)
276 returnService = service;
277 return;
278 }
279 if (prot) {
280 returnProtocol = prot;
281 } else {
282 // No protocol file, use handler app if any.
283 returnService = service;
284 }
285}
286
287QString KProtocolInfo::icon(const QString& protocol)
288{
289 KProtocolInfo::Ptr prot;
290 KService::Ptr service;
291 selectServiceOrHelper(protocol, prot, service);
292 if (service) {
293 return service->icon();
294 } else if (prot) {
295 return prot->m_icon;
296 }
297 return QString();
298}
299
300QString KProtocolInfo::config( const QString& _protocol )
301{
302 // We call the findProtocol directly (not via KProtocolManager) to bypass any proxy settings.
303 KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol);
304 if ( !prot )
305 return QString();
306
307 return QString::fromLatin1("kio_%1rc").arg(prot->m_config);
308}
309
310int KProtocolInfo::maxSlaves( const QString& _protocol )
311{
312 KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol);
313 if ( !prot )
314 return 1;
315
316 return prot->m_maxSlaves;
317}
318
319int KProtocolInfo::maxSlavesPerHost( const QString& _protocol )
320{
321 KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol);
322 if ( !prot )
323 return 0;
324
325 return prot->d_func()->maxSlavesPerHost;
326}
327
328bool KProtocolInfo::determineMimetypeFromExtension( const QString &_protocol )
329{
330 KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol( _protocol );
331 if ( !prot )
332 return true;
333
334 return prot->m_determineMimetypeFromExtension;
335}
336
337QString KProtocolInfo::exec(const QString& protocol)
338{
339 KProtocolInfo::Ptr prot;
340 KService::Ptr service;
341 selectServiceOrHelper(protocol, prot, service);
342 if (service) {
343 return service->exec();
344 } else if (prot) {
345 return prot->m_exec;
346 }
347 return QString();
348}
349
350KProtocolInfo::ExtraFieldList KProtocolInfo::extraFields( const KUrl &url )
351{
352 KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(url.protocol());
353 if ( !prot )
354 return ExtraFieldList();
355
356 return prot->d_func()->extraFields;
357}
358
359QString KProtocolInfo::docPath( const QString& _protocol )
360{
361 KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol);
362 if ( !prot )
363 return QString();
364
365 return prot->d_func()->docPath;
366}
367
368QString KProtocolInfo::protocolClass( const QString& _protocol )
369{
370 KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol);
371 if ( !prot )
372 return QString();
373
374 return prot->d_func()->protClass;
375}
376
377bool KProtocolInfo::showFilePreview( const QString& _protocol )
378{
379 KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol);
380 if ( !prot )
381 return false;
382
383 return prot->d_func()->showPreviews;
384}
385
386QStringList KProtocolInfo::capabilities( const QString& _protocol )
387{
388 KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol);
389 if ( !prot )
390 return QStringList();
391
392 return prot->d_func()->capabilities;
393}
394
395QString KProtocolInfo::proxiedBy( const QString& _protocol )
396{
397 KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(_protocol);
398 if ( !prot )
399 return QString();
400
401 return prot->d_func()->proxyProtocol;
402}
403
404QString KProtocolInfo::defaultMimeType() const
405{
406 return m_defaultMimetype;
407}
408
409
410QStringList KProtocolInfo::archiveMimeTypes() const
411{
412 Q_D(const KProtocolInfo);
413 return d->archiveMimetype;
414}
415
416bool KProtocolInfo::supportsListing() const
417{
418 return m_supportsListing;
419}
420
421bool KProtocolInfo::canRenameFromFile() const
422{
423 Q_D(const KProtocolInfo);
424 return d->canRenameFromFile;
425}
426
427bool KProtocolInfo::canRenameToFile() const
428{
429 Q_D(const KProtocolInfo);
430 return d->canRenameToFile;
431}
432
433bool KProtocolInfo::canDeleteRecursive() const
434{
435 Q_D(const KProtocolInfo);
436 return d->canDeleteRecursive;
437}
438
439KProtocolInfo::FileNameUsedForCopying KProtocolInfo::fileNameUsedForCopying() const
440{
441 Q_D(const KProtocolInfo);
442 return d->fileNameUsedForCopying;
443}
444
445bool KProtocolInfo::isFilterProtocol( const KUrl &url )
446{
447 return isFilterProtocol (url.protocol());
448}
449
450bool KProtocolInfo::isHelperProtocol( const KUrl &url )
451{
452 return isHelperProtocol (url.protocol());
453}
454
455bool KProtocolInfo::isHelperProtocol( const QString &protocol )
456{
457 // We call the findProtocol directly (not via KProtocolManager) to bypass any proxy settings.
458 KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(protocol);
459 if ( prot )
460 return prot->m_isHelperProtocol;
461
462 const KService::Ptr service = KMimeTypeTrader::self()->preferredService(QString::fromLatin1("x-scheme-handler/") + protocol);
463 return !service.isNull();
464}
465
466bool KProtocolInfo::isKnownProtocol( const KUrl &url )
467{
468 return isKnownProtocol (url.protocol());
469}
470
471bool KProtocolInfo::isKnownProtocol( const QString &protocol )
472{
473 // We call the findProtocol (const QString&) to bypass any proxy settings.
474 KProtocolInfo::Ptr prot = KProtocolInfoFactory::self()->findProtocol(protocol);
475 return prot || isHelperProtocol(protocol);
476}
477
478QDataStream& operator>>( QDataStream& s, KProtocolInfo::ExtraField& field ) {
479 s >> field.name;
480 int type;
481 s >> type;
482 field.type = static_cast<KProtocolInfo::ExtraField::Type>( type );
483 return s;
484}
485
486QDataStream& operator<<( QDataStream& s, const KProtocolInfo::ExtraField& field ) {
487 s << field.name;
488 s << static_cast<int>( field.type );
489 return s;
490}
KConfigGroup
A class for one specific group in a KConfig object.
Definition: kconfiggroup.h:54
KConfig
The central class of the KDE configuration data system.
Definition: kconfig.h:71
KMimeTypeTrader::preferredService
KService::Ptr preferredService(const QString &mimeType, const QString &genericServiceType=QString::fromLatin1("Application"))
Returns the preferred service for mimeType and genericServiceType.
Definition: kmimetypetrader.cpp:157
KMimeTypeTrader::self
static KMimeTypeTrader * self()
This is a static pointer to the KMimeTypeTrader singleton.
Definition: kmimetypetrader.cpp:38
KProtocolInfoFactory::self
static KProtocolInfoFactory * self()
The instance of the KProtocolInfoFactory.
Definition: kprotocolinfofactory.cpp:119
KProtocolInfoFactory::findProtocol
KProtocolInfo::Ptr findProtocol(const QString &protocol)
Definition: kprotocolinfofactory.cpp:91
KProtocolInfoFactory::protocols
QStringList protocols() const
Returns list of all known protocols.
Definition: kprotocolinfofactory.cpp:63
KProtocolInfoPrivate
Definition: kprotocolinfo_p.h:27
KProtocolInfoPrivate::proxyProtocol
QString proxyProtocol
Definition: kprotocolinfo_p.h:60
KProtocolInfoPrivate::canRenameFromFile
bool canRenameFromFile
Definition: kprotocolinfo_p.h:54
KProtocolInfoPrivate::showPreviews
bool showPreviews
Definition: kprotocolinfo_p.h:53
KProtocolInfoPrivate::canDeleteRecursive
bool canDeleteRecursive
Definition: kprotocolinfo_p.h:56
KProtocolInfoPrivate::docPath
QString docPath
Definition: kprotocolinfo_p.h:49
KProtocolInfoPrivate::fileNameUsedForCopying
KProtocolInfo::FileNameUsedForCopying fileNameUsedForCopying
Definition: kprotocolinfo_p.h:57
KProtocolInfoPrivate::capabilities
QStringList capabilities
Definition: kprotocolinfo_p.h:59
KProtocolInfoPrivate::save
virtual void save(QDataStream &s)
Definition: kprotocolinfo.cpp:183
KProtocolInfoPrivate::canRenameToFile
bool canRenameToFile
Definition: kprotocolinfo_p.h:55
KProtocolInfoPrivate::archiveMimetype
QStringList archiveMimetype
Definition: kprotocolinfo_p.h:51
KProtocolInfoPrivate::extraFields
KProtocolInfo::ExtraFieldList extraFields
Definition: kprotocolinfo_p.h:52
KProtocolInfoPrivate::protClass
QString protClass
Definition: kprotocolinfo_p.h:50
KProtocolInfoPrivate::q
KProtocolInfo * q
Definition: kprotocolinfo_p.h:48
KProtocolInfoPrivate::maxSlavesPerHost
int maxSlavesPerHost
Definition: kprotocolinfo_p.h:61
KProtocolInfo
Information about I/O (Internet, etc.) protocols supported by KDE.
Definition: kprotocolinfo.h:51
KProtocolInfo::defaultMimeType
QString defaultMimeType() const
Definition: kprotocolinfo.cpp:404
KProtocolInfo::isFilterProtocol
static bool isFilterProtocol(const KUrl &url)
Returns whether the protocol can act as a filter protocol.
Definition: kprotocolinfo.cpp:445
KProtocolInfo::config
static QString config(const QString &protocol)
Returns the name of the config file associated with the specified protocol.
Definition: kprotocolinfo.cpp:300
KProtocolInfo::protocolClass
static QString protocolClass(const QString &protocol)
Returns the protocol class for the specified protocol.
Definition: kprotocolinfo.cpp:368
KProtocolInfo::m_supportsListing
bool m_supportsListing
Definition: kprotocolinfo.h:343
KProtocolInfo::maxSlavesPerHost
static int maxSlavesPerHost(const QString &protocol)
Returns the limit on the number of slaves for this protocol per host.
Definition: kprotocolinfo.cpp:319
KProtocolInfo::isKnownProtocol
static bool isKnownProtocol(const KUrl &url)
Returns whether a protocol is installed that is able to handle url.
Definition: kprotocolinfo.cpp:466
KProtocolInfo::maxSlaves
static int maxSlaves(const QString &protocol)
Returns the soft limit on the number of slaves for this protocol.
Definition: kprotocolinfo.cpp:310
KProtocolInfo::m_exec
QString m_exec
Definition: kprotocolinfo.h:337
KProtocolInfo::determineMimetypeFromExtension
static bool determineMimetypeFromExtension(const QString &protocol)
Returns whether mimetypes can be determined based on extension for this protocol.
Definition: kprotocolinfo.cpp:328
KProtocolInfo::showFilePreview
static bool showFilePreview(const QString &protocol)
Returns whether file previews should be shown for the specified protocol.
Definition: kprotocolinfo.cpp:377
KProtocolInfo::proxiedBy
static QString proxiedBy(const QString &protocol)
Returns the name of the protocol through which the request will be routed if proxy support is enabled...
Definition: kprotocolinfo.cpp:395
KProtocolInfo::canRenameToFile
bool canRenameToFile() const
Definition: kprotocolinfo.cpp:427
KProtocolInfo::canDeleteRecursive
bool canDeleteRecursive() const
Definition: kprotocolinfo.cpp:433
KProtocolInfo::m_supportsOpening
bool m_supportsOpening
Definition: kprotocolinfo.h:350
KProtocolInfo::m_listing
QStringList m_listing
Definition: kprotocolinfo.h:340
KProtocolInfo::m_outputType
Type m_outputType
Definition: kprotocolinfo.h:339
KProtocolInfo::m_supportsWriting
bool m_supportsWriting
Definition: kprotocolinfo.h:345
KProtocolInfo::capabilities
static QStringList capabilities(const QString &protocol)
Returns the list of capabilities provided by the kioslave implementing this protocol.
Definition: kprotocolinfo.cpp:386
KProtocolInfo::m_icon
QString m_icon
Definition: kprotocolinfo.h:353
KProtocolInfo::m_name
QString m_name
Definition: kprotocolinfo.h:336
KProtocolInfo::canRenameFromFile
bool canRenameFromFile() const
Definition: kprotocolinfo.cpp:421
KProtocolInfo::FileNameUsedForCopying
FileNameUsedForCopying
Definition: kprotocolinfo.h:326
KProtocolInfo::m_inputType
Type m_inputType
Definition: kprotocolinfo.h:338
KProtocolInfo::KProtocolInfo
KProtocolInfo(QDataStream &_str, int offset)
Definition: kprotocolinfo.cpp:116
KProtocolInfo::isHelperProtocol
static bool isHelperProtocol(const KUrl &url)
Returns whether the protocol can act as a helper protocol.
Definition: kprotocolinfo.cpp:450
KProtocolInfo::m_supportsMoving
bool m_supportsMoving
Definition: kprotocolinfo.h:349
KProtocolInfo::T_STREAM
@ T_STREAM
stream of data (e.g. single file)
Definition: kprotocolinfo.h:106
KProtocolInfo::T_NONE
@ T_NONE
no information about the type available
Definition: kprotocolinfo.h:108
KProtocolInfo::T_FILESYSTEM
@ T_FILESYSTEM
structured directory
Definition: kprotocolinfo.h:107
KProtocolInfo::m_isHelperProtocol
bool m_isHelperProtocol
Definition: kprotocolinfo.h:342
KProtocolInfo::m_isSourceProtocol
bool m_isSourceProtocol
Definition: kprotocolinfo.h:341
KProtocolInfo::m_supportsDeleting
bool m_supportsDeleting
Definition: kprotocolinfo.h:347
KProtocolInfo::protocols
static QStringList protocols()
Returns list of all known protocols.
Definition: kprotocolinfo.cpp:245
KProtocolInfo::m_canCopyToFile
bool m_canCopyToFile
Definition: kprotocolinfo.h:355
KProtocolInfo::extraFields
static ExtraFieldList extraFields(const KUrl &url)
Definition of extra fields in the UDS entries, returned by a listDir operation.
Definition: kprotocolinfo.cpp:350
KProtocolInfo::m_canCopyFromFile
bool m_canCopyFromFile
Definition: kprotocolinfo.h:354
KProtocolInfo::docPath
static QString docPath(const QString &protocol)
Returns the documentation path for the specified protocol.
Definition: kprotocolinfo.cpp:359
KProtocolInfo::supportsListing
bool supportsListing() const
Definition: kprotocolinfo.cpp:416
KProtocolInfo::icon
static QString icon(const QString &protocol)
Returns the name of the icon, associated with the specified protocol.
Definition: kprotocolinfo.cpp:287
KProtocolInfo::m_defaultMimetype
QString m_defaultMimetype
Definition: kprotocolinfo.h:351
KProtocolInfo::m_maxSlaves
int m_maxSlaves
Definition: kprotocolinfo.h:357
KProtocolInfo::archiveMimeTypes
QStringList archiveMimeTypes() const
Definition: kprotocolinfo.cpp:410
KProtocolInfo::exec
static QString exec(const QString &protocol)
Returns the library / executable to open for the protocol protocol Example : "kio_ftp",...
Definition: kprotocolinfo.cpp:337
KProtocolInfo::m_supportsReading
bool m_supportsReading
Definition: kprotocolinfo.h:344
KProtocolInfo::~KProtocolInfo
virtual ~KProtocolInfo()
Definition: kprotocolinfo.cpp:122
KProtocolInfo::m_config
QString m_config
Definition: kprotocolinfo.h:356
KProtocolInfo::m_supportsMakeDir
bool m_supportsMakeDir
Definition: kprotocolinfo.h:346
KProtocolInfo::fileNameUsedForCopying
FileNameUsedForCopying fileNameUsedForCopying() const
Definition: kprotocolinfo.cpp:439
KProtocolInfo::m_supportsLinking
bool m_supportsLinking
Definition: kprotocolinfo.h:348
KProtocolInfo::m_determineMimetypeFromExtension
bool m_determineMimetypeFromExtension
Definition: kprotocolinfo.h:352
KService::exec
QString exec() const
Returns the executable.
Definition: kservice.cpp:846
KService::icon
QString icon() const
Returns the name of the icon.
Definition: kservice.cpp:863
KSharedPtr
Can be used to control the lifetime of an object that has derived QSharedData.
Definition: ksharedptr.h:64
KSharedPtr::clear
void clear()
Clear the pointer, i.e.
Definition: ksharedptr.h:220
KSharedPtr::isNull
bool isNull() const
Test if the shared pointer is null.
Definition: ksharedptr.h:151
KStandardDirs::locate
static QString locate(const char *type, const QString &filename, const KComponentData &cData=KGlobal::mainComponent())
This function is just for convenience.
Definition: kstandarddirs.cpp:2091
KSycocaEntryPrivate::save
virtual void save(QDataStream &s)
Definition: ksycocaentry.cpp:139
KSycocaEntry
Base class for all Sycoca entries.
Definition: ksycocaentry.h:42
KUrl
Represents and parses a URL.
Definition: kurl.h:112
KUrl::protocol
QString protocol() const
Returns the protocol for the URL (i.e., file, http, etc.), lowercased.
Definition: kurl.cpp:672
QList< ExtraField >
QStringList
QString
qint32
kconfig.h
kconfiggroup.h
kmimetypetrader.h
operator>>
QDataStream & operator>>(QDataStream &s, KProtocolInfo::ExtraField &field)
Definition: kprotocolinfo.cpp:478
operator<<
QDataStream & operator<<(QDataStream &s, const KProtocolInfo::ExtraField &field)
Definition: kprotocolinfo.cpp:486
kprotocolinfo.h
kprotocolinfo_p.h
kprotocolinfofactory.h
kstandarddirs.h
KGlobal::config
KSharedConfigPtr config()
Returns the general config object.
Definition: kglobal.cpp:139
KProtocolInfo::ExtraField
Definition of an extra field in the UDS entries, returned by a listDir operation.
Definition: kprotocolinfo.h:120
KProtocolInfo::ExtraField::Type
Type
Definition: kprotocolinfo.h:122
KProtocolInfo::ExtraField::type
Type type
Definition: kprotocolinfo.h:129
KProtocolInfo::ExtraField::name
QString name
Definition: kprotocolinfo.h:128
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KDECore

Skip menu "KDECore"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal