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

KDECore

  • sources
  • kde-4.14
  • kdelibs
  • 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 //
32 KProtocolInfo::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 
116 KProtocolInfo::KProtocolInfo( QDataStream& _str, int offset) :
117  KSycocaEntry(*new KProtocolInfoPrivate( _str, offset, this) )
118 {
119  load( _str );
120 }
121 
122 KProtocolInfo::~KProtocolInfo()
123 {
124 }
125 
126 void
127 KProtocolInfo::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 
182 void
183 KProtocolInfoPrivate::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 
245 QStringList KProtocolInfo::protocols()
246 {
247  return KProtocolInfoFactory::self()->protocols();
248 }
249 
250 bool 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 
260 void 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 
287 QString 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 
300 QString 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 
310 int 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 
319 int 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 
328 bool 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 
337 QString 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 
350 KProtocolInfo::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 
359 QString 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 
368 QString 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 
377 bool 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 
386 QStringList 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 
395 QString 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 
404 QString KProtocolInfo::defaultMimeType() const
405 {
406  return m_defaultMimetype;
407 }
408 
409 
410 QStringList KProtocolInfo::archiveMimeTypes() const
411 {
412  Q_D(const KProtocolInfo);
413  return d->archiveMimetype;
414 }
415 
416 bool KProtocolInfo::supportsListing() const
417 {
418  return m_supportsListing;
419 }
420 
421 bool KProtocolInfo::canRenameFromFile() const
422 {
423  Q_D(const KProtocolInfo);
424  return d->canRenameFromFile;
425 }
426 
427 bool KProtocolInfo::canRenameToFile() const
428 {
429  Q_D(const KProtocolInfo);
430  return d->canRenameToFile;
431 }
432 
433 bool KProtocolInfo::canDeleteRecursive() const
434 {
435  Q_D(const KProtocolInfo);
436  return d->canDeleteRecursive;
437 }
438 
439 KProtocolInfo::FileNameUsedForCopying KProtocolInfo::fileNameUsedForCopying() const
440 {
441  Q_D(const KProtocolInfo);
442  return d->fileNameUsedForCopying;
443 }
444 
445 bool KProtocolInfo::isFilterProtocol( const KUrl &url )
446 {
447  return isFilterProtocol (url.protocol());
448 }
449 
450 bool KProtocolInfo::isHelperProtocol( const KUrl &url )
451 {
452  return isHelperProtocol (url.protocol());
453 }
454 
455 bool 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 
466 bool KProtocolInfo::isKnownProtocol( const KUrl &url )
467 {
468  return isKnownProtocol (url.protocol());
469 }
470 
471 bool 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 
478 QDataStream& 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 
486 QDataStream& operator<<( QDataStream& s, const KProtocolInfo::ExtraField& field ) {
487  s << field.name;
488  s << static_cast<int>( field.type );
489  return s;
490 }
KProtocolInfo::T_NONE
no information about the type available
Definition: kprotocolinfo.h:108
KSharedPtr
Can be used to control the lifetime of an object that has derived QSharedData.
Definition: kconfiggroup.h:38
KProtocolInfo
Information about I/O (Internet, etc.) protocols supported by KDE.
Definition: kprotocolinfo.h:50
operator>>
QDataStream & operator>>(QDataStream &s, KProtocolInfo::ExtraField &field)
Definition: kprotocolinfo.cpp:478
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::maxSlaves
static int maxSlaves(const QString &protocol)
Returns the soft limit on the number of slaves for this protocol.
Definition: kprotocolinfo.cpp:310
kprotocolinfofactory.h
KFileSystemType::Type
Type
Definition: kfilesystemtype_p.h:28
KProtocolInfo::m_supportsReading
bool m_supportsReading
Definition: kprotocolinfo.h:344
KProtocolInfo::supportsListing
bool supportsListing() const
Definition: kprotocolinfo.cpp:416
KProtocolInfo::m_inputType
Type m_inputType
Definition: kprotocolinfo.h:338
KProtocolInfoPrivate::capabilities
QStringList capabilities
Definition: kprotocolinfo_p.h:59
KProtocolInfo::canRenameToFile
bool canRenameToFile() const
Definition: kprotocolinfo.cpp:427
KProtocolInfo::KProtocolInfo
KProtocolInfo(QDataStream &_str, int offset)
Definition: kprotocolinfo.cpp:116
KProtocolInfo::ExtraField
Definition of an extra field in the UDS entries, returned by a listDir operation. ...
Definition: kprotocolinfo.h:120
operator<<
QDataStream & operator<<(QDataStream &s, const KProtocolInfo::ExtraField &field)
Definition: kprotocolinfo.cpp:486
KProtocolInfo::T_FILESYSTEM
structured directory
Definition: kprotocolinfo.h:107
KProtocolInfo::m_supportsMakeDir
bool m_supportsMakeDir
Definition: kprotocolinfo.h:346
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::config
static QString config(const QString &protocol)
Returns the name of the config file associated with the specified protocol.
Definition: kprotocolinfo.cpp:300
QDataStream
KProtocolInfo::m_supportsListing
bool m_supportsListing
Definition: kprotocolinfo.h:343
KProtocolInfoPrivate::canDeleteRecursive
bool canDeleteRecursive
Definition: kprotocolinfo_p.h:56
KProtocolInfo::m_exec
QString m_exec
Definition: kprotocolinfo.h:337
KSharedPtr::clear
void clear()
Clear the pointer, i.e.
Definition: ksharedptr.h:220
KProtocolInfo::protocols
static QStringList protocols()
Returns list of all known protocols.
Definition: kprotocolinfo.cpp:245
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:2085
KProtocolInfo::isFilterProtocol
static bool isFilterProtocol(const KUrl &url)
Returns whether the protocol can act as a filter protocol.
Definition: kprotocolinfo.cpp:445
kconfig.h
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::docPath
static QString docPath(const QString &protocol)
Returns the documentation path for the specified protocol.
Definition: kprotocolinfo.cpp:359
KProtocolInfo::m_canCopyFromFile
bool m_canCopyFromFile
Definition: kprotocolinfo.h:354
KSharedPtr::isNull
bool isNull() const
Test if the shared pointer is null.
Definition: ksharedptr.h:151
KProtocolInfo::m_name
QString m_name
Definition: kprotocolinfo.h:336
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
KProtocolInfoPrivate::protClass
QString protClass
Definition: kprotocolinfo_p.h:50
KProtocolInfoPrivate::maxSlavesPerHost
int maxSlavesPerHost
Definition: kprotocolinfo_p.h:61
KProtocolInfo::fileNameUsedForCopying
FileNameUsedForCopying fileNameUsedForCopying() const
Definition: kprotocolinfo.cpp:439
KProtocolInfoPrivate::save
virtual void save(QDataStream &s)
Definition: kprotocolinfo.cpp:183
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
KProtocolInfoPrivate::archiveMimetype
QStringList archiveMimetype
Definition: kprotocolinfo_p.h:51
QList::const_iterator
KProtocolInfo::ExtraField::type
Type type
Definition: kprotocolinfo.h:129
KUrl
Represents and parses a URL.
Definition: kurl.h:111
KProtocolInfo::canDeleteRecursive
bool canDeleteRecursive() const
Definition: kprotocolinfo.cpp:433
kprotocolinfo_p.h
KGlobal::config
KSharedConfigPtr config()
Returns the general config object.
Definition: kglobal.cpp:139
KService::exec
QString exec() const
Returns the executable.
Definition: kservice.cpp:846
KSycocaEntryPrivate::save
virtual void save(QDataStream &s)
Definition: ksycocaentry.cpp:139
KProtocolInfoFactory::self
static KProtocolInfoFactory * self()
The instance of the KProtocolInfoFactory.
Definition: kprotocolinfofactory.cpp:119
KProtocolInfo::m_canCopyToFile
bool m_canCopyToFile
Definition: kprotocolinfo.h:355
KProtocolInfo::icon
static QString icon(const QString &protocol)
Returns the name of the icon, associated with the specified protocol.
Definition: kprotocolinfo.cpp:287
KProtocolInfo::~KProtocolInfo
virtual ~KProtocolInfo()
Definition: kprotocolinfo.cpp:122
KProtocolInfo::archiveMimeTypes
QStringList archiveMimeTypes() const
Definition: kprotocolinfo.cpp:410
KProtocolInfo::canRenameFromFile
bool canRenameFromFile() const
Definition: kprotocolinfo.cpp:421
KProtocolInfo::m_outputType
Type m_outputType
Definition: kprotocolinfo.h:339
KSycocaEntry
Base class for all Sycoca entries.
Definition: ksycocaentry.h:41
KUrl::protocol
QString protocol() const
Returns the protocol for the URL (i.e., file, http, etc.), lowercased.
Definition: kurl.cpp:672
QVariant::nameToType
Type nameToType(const char *name)
KProtocolInfoPrivate::docPath
QString docPath
Definition: kprotocolinfo_p.h:49
KProtocolInfoPrivate::fileNameUsedForCopying
KProtocolInfo::FileNameUsedForCopying fileNameUsedForCopying
Definition: kprotocolinfo_p.h:57
kmimetypetrader.h
KProtocolInfo::m_isSourceProtocol
bool m_isSourceProtocol
Definition: kprotocolinfo.h:341
KMimeTypeTrader::self
static KMimeTypeTrader * self()
This is a static pointer to the KMimeTypeTrader singleton.
Definition: kmimetypetrader.cpp:38
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::m_supportsDeleting
bool m_supportsDeleting
Definition: kprotocolinfo.h:347
QString
KProtocolInfoPrivate::canRenameFromFile
bool canRenameFromFile
Definition: kprotocolinfo_p.h:54
QList< ExtraField >
KProtocolInfo::protocolClass
static QString protocolClass(const QString &protocol)
Returns the protocol class for the specified protocol.
Definition: kprotocolinfo.cpp:368
KProtocolInfoFactory::findProtocol
KProtocolInfo::Ptr findProtocol(const QString &protocol)
Definition: kprotocolinfofactory.cpp:91
KProtocolInfoPrivate::canRenameToFile
bool canRenameToFile
Definition: kprotocolinfo_p.h:55
KProtocolInfoPrivate
Definition: kprotocolinfo_p.h:26
QStringList
KProtocolInfo::T_STREAM
stream of data (e.g. single file)
Definition: kprotocolinfo.h:106
QList::end
iterator end()
kprotocolinfo.h
KService::icon
QString icon() const
Returns the name of the icon.
Definition: kservice.cpp:863
KProtocolInfo::m_determineMimetypeFromExtension
bool m_determineMimetypeFromExtension
Definition: kprotocolinfo.h:352
KProtocolInfo::showFilePreview
static bool showFilePreview(const QString &protocol)
Returns whether file previews should be shown for the specified protocol.
Definition: kprotocolinfo.cpp:377
QLatin1Char
KProtocolInfo::m_supportsMoving
bool m_supportsMoving
Definition: kprotocolinfo.h:349
KProtocolInfo::exec
static QString exec(const QString &protocol)
Returns the library / executable to open for the protocol protocol Example : "kio_ftp", meaning either the executable "kio_ftp" or the library "kio_ftp.la" (recommended), whichever is available.
Definition: kprotocolinfo.cpp:337
KProtocolInfo::isHelperProtocol
static bool isHelperProtocol(const KUrl &url)
Returns whether the protocol can act as a helper protocol.
Definition: kprotocolinfo.cpp:450
KProtocolInfo::m_isHelperProtocol
bool m_isHelperProtocol
Definition: kprotocolinfo.h:342
KConfigGroup
A class for one specific group in a KConfig object.
Definition: kconfiggroup.h:53
KProtocolInfo::ExtraFieldList
QList< ExtraField > ExtraFieldList
Definition: kprotocolinfo.h:131
KConfig
The central class of the KDE configuration data system.
Definition: kconfig.h:70
KProtocolInfoPrivate::extraFields
KProtocolInfo::ExtraFieldList extraFields
Definition: kprotocolinfo_p.h:52
KProtocolInfo::FileNameUsedForCopying
FileNameUsedForCopying
Definition: kprotocolinfo.h:326
KProtocolInfo::ExtraField::Type
Type
Definition: kprotocolinfo.h:122
QLatin1String
KProtocolInfo::m_supportsOpening
bool m_supportsOpening
Definition: kprotocolinfo.h:350
kstandarddirs.h
KProtocolInfoFactory::protocols
QStringList protocols() const
Returns list of all known protocols.
Definition: kprotocolinfofactory.cpp:63
KProtocolInfoPrivate::proxyProtocol
QString proxyProtocol
Definition: kprotocolinfo_p.h:60
KProtocolInfo::m_supportsWriting
bool m_supportsWriting
Definition: kprotocolinfo.h:345
qint32
QString::fromLatin1
QString fromLatin1(const char *str, int size)
KProtocolInfo::defaultMimeType
QString defaultMimeType() const
Definition: kprotocolinfo.cpp:404
KProtocolInfo::m_defaultMimetype
QString m_defaultMimetype
Definition: kprotocolinfo.h:351
KProtocolInfo::m_listing
QStringList m_listing
Definition: kprotocolinfo.h:340
KProtocolInfoPrivate::showPreviews
bool showPreviews
Definition: kprotocolinfo_p.h:53
KProtocolInfoPrivate::q
KProtocolInfo * q
Definition: kprotocolinfo_p.h:48
QString::arg
QString arg(qlonglong a, int fieldWidth, int base, const QChar &fillChar) const
KProtocolInfo::m_supportsLinking
bool m_supportsLinking
Definition: kprotocolinfo.h:348
QList::begin
iterator begin()
KProtocolInfo::ExtraField::name
QString name
Definition: kprotocolinfo.h:128
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
KProtocolInfo::m_icon
QString m_icon
Definition: kprotocolinfo.h:353
kconfiggroup.h
KProtocolInfo::m_config
QString m_config
Definition: kprotocolinfo.h:356
KProtocolInfo::Type
Type
Describes the type of a protocol.
Definition: kprotocolinfo.h:106
KProtocolInfo::m_maxSlaves
int m_maxSlaves
Definition: kprotocolinfo.h:357
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:22:11 by doxygen 1.8.7 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 API Reference

Skip menu "kdelibs 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

Search



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