Qt 4.8
Public Functions | Public Variables | List of all members
QDeclarativeImportsPrivate Class Reference

Public Functions

bool add (const QDeclarativeDirComponents &qmldircomponentsnetwork, const QString &uri_arg, const QString &prefix, int vmaj, int vmin, QDeclarativeScriptParser::Import::Type importType, QDeclarativeImportDatabase *database, QString *errorString)
 
bool find (const QByteArray &type, int *vmajor, int *vminor, QDeclarativeType **type_return, QUrl *url_return, QString *errorString)
 
QDeclarativeImportedNamespacefindNamespace (const QString &type)
 
bool importExtension (const QString &absoluteFilePath, const QString &uri, QDeclarativeImportDatabase *database, QDeclarativeDirComponents *components, QString *errorString)
 
 QDeclarativeImportsPrivate (QDeclarativeTypeLoader *loader)
 
QString resolvedUri (const QString &dir_arg, QDeclarativeImportDatabase *database)
 
 ~QDeclarativeImportsPrivate ()
 

Public Variables

QUrl base
 
QSet< QStringqmlDirFilesForWhichPluginsHaveBeenLoaded
 
int ref
 
QHash< QString, QDeclarativeImportedNamespace *> set
 
QDeclarativeTypeLoadertypeLoader
 
QDeclarativeImportedNamespace unqualifiedset
 

Detailed Description

Definition at line 90 of file qdeclarativeimport.cpp.

Constructors and Destructors

◆ QDeclarativeImportsPrivate()

QDeclarativeImportsPrivate::QDeclarativeImportsPrivate ( QDeclarativeTypeLoader loader)

Definition at line 357 of file qdeclarativeimport.cpp.

358  : ref(1), typeLoader(loader){
359 }
QDeclarativeTypeLoader * typeLoader

◆ ~QDeclarativeImportsPrivate()

QDeclarativeImportsPrivate::~QDeclarativeImportsPrivate ( )

Definition at line 361 of file qdeclarativeimport.cpp.

362 {
363  foreach (QDeclarativeImportedNamespace* s, set.values())
364  delete s;
365 }
quint16 values[128]

Functions

◆ add()

bool QDeclarativeImportsPrivate::add ( const QDeclarativeDirComponents qmldircomponentsnetwork,
const QString uri_arg,
const QString prefix,
int  vmaj,
int  vmin,
QDeclarativeScriptParser::Import::Type  importType,
QDeclarativeImportDatabase database,
QString errorString 
)

Definition at line 447 of file qdeclarativeimport.cpp.

451 {
453  QDeclarativeDirComponents qmldircomponents = qmldircomponentsnetwork;
454  QString uri = uri_arg;
456  if (prefix.isEmpty()) {
457  s = &unqualifiedset;
458  } else {
459  s = set.value(prefix);
460  if (!s)
461  set.insert(prefix,(s=new QDeclarativeImportedNamespace));
462  }
463 
464  bool appendInstead = false;
465  if (importType == QDeclarativeScriptParser::Import::Implicit) {
466  //Treat same as a File import, but lower precedence
467  appendInstead = true;
469  }
470 
471  QString url = uri;
472  bool versionFound = false;
473  if (importType == QDeclarativeScriptParser::Import::Library) {
474  url.replace(QLatin1Char('.'), QLatin1Char('/'));
475  bool found = false;
476  QString dir;
477  QString qmldir;
478 
479  // step 1: search for extension with fully encoded version number
480  if (vmaj >= 0 && vmin >= 0) {
481  foreach (const QString &p, database->fileImportPath) {
482  dir = p+QLatin1Char('/')+url;
483  qmldir = dir+QString(QLatin1String(".%1.%2")).arg(vmaj).arg(vmin)+QLatin1String("/qmldir");
484 
485  QString absoluteFilePath = typeLoader->absoluteFilePath(qmldir);
486  if (!absoluteFilePath.isEmpty()) {
487  found = true;
488 
489  QString absolutePath = absoluteFilePath.left(absoluteFilePath.lastIndexOf(QLatin1Char('/')));
490  url = QUrl::fromLocalFile(absolutePath).toString();
491  uri = resolvedUri(dir, database);
492  if (!importExtension(absoluteFilePath, uri, database, &qmldircomponents, errorString))
493  return false;
494  break;
495  }
496  }
497  }
498  // step 2: search for extension with encoded version major
499  if (vmaj >= 0 && vmin >= 0) {
500  foreach (const QString &p, database->fileImportPath) {
501  dir = p+QLatin1Char('/')+url;
502  qmldir = dir+QString(QLatin1String(".%1")).arg(vmaj)+QLatin1String("/qmldir");
503 
504  QString absoluteFilePath = typeLoader->absoluteFilePath(qmldir);
505  if (!absoluteFilePath.isEmpty()) {
506  found = true;
507 
508  QString absolutePath = absoluteFilePath.left(absoluteFilePath.lastIndexOf(QLatin1Char('/')));
509  url = QUrl::fromLocalFile(absolutePath).toString();
510  uri = resolvedUri(dir, database);
511  if (!importExtension(absoluteFilePath, uri, database, &qmldircomponents, errorString))
512  return false;
513  break;
514  }
515  }
516  }
517  if (!found) {
518  // step 3: search for extension without version number
519 
520  foreach (const QString &p, database->fileImportPath) {
521  dir = p+QLatin1Char('/')+url;
522  qmldir = dir+QLatin1String("/qmldir");
523 
524  QString absoluteFilePath = typeLoader->absoluteFilePath(qmldir);
525  if (!absoluteFilePath.isEmpty()) {
526  found = true;
527 
528  QString absolutePath = absoluteFilePath.left(absoluteFilePath.lastIndexOf(QLatin1Char('/')));
529  url = QUrl::fromLocalFile(absolutePath).toString();
530  uri = resolvedUri(dir, database);
531  if (!importExtension(absoluteFilePath, uri, database, &qmldircomponents, errorString))
532  return false;
533  break;
534  }
535  }
536  }
537 
538  if (QDeclarativeMetaType::isModule(uri.toUtf8(), vmaj, vmin))
539  versionFound = true;
540 
541  //Load any type->file mappings registered for this uri
542  qmldircomponents << QDeclarativeMetaType::qmlComponents(uri.toUtf8(), vmaj, vmin);
543 
544  if (!versionFound && qmldircomponents.isEmpty()) {
545  if (errorString) {
546  bool anyversion = QDeclarativeMetaType::isModule(uri.toUtf8(), -1, -1);
547  if (anyversion)
548  *errorString = QDeclarativeImportDatabase::tr("module \"%1\" version %2.%3 is not installed").arg(uri_arg).arg(vmaj).arg(vmin);
549  else
550  *errorString = QDeclarativeImportDatabase::tr("module \"%1\" is not installed").arg(uri_arg);
551  }
552  return false;
553  }
554  } else {
555 
556  if (importType == QDeclarativeScriptParser::Import::File && qmldircomponents.isEmpty()) {
557  QUrl importUrl = base.resolved(QUrl(uri + QLatin1String("/qmldir")));
558  QString localFileOrQrc = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(importUrl);
559  if (!localFileOrQrc.isEmpty()) {
561  QFileInfo dirinfo(dir);
562  if (dir.isEmpty() || !dirinfo.exists() || !dirinfo.isDir()) {
563  if (errorString)
564  *errorString = QDeclarativeImportDatabase::tr("\"%1\": no such directory").arg(uri_arg);
565  return false; // local import dirs must exist
566  }
568  if (uri.endsWith(QLatin1Char('/')))
569  uri.chop(1);
570  if (!typeLoader->absoluteFilePath(localFileOrQrc).isEmpty()) {
571  if (!importExtension(localFileOrQrc,uri,database,&qmldircomponents,errorString))
572  return false;
573  }
574  } else {
575  if (prefix.isEmpty()) {
576  // directory must at least exist for valid import
578  QFileInfo dirinfo(localFileOrQrc);
579  if (localFileOrQrc.isEmpty() || !dirinfo.exists() || !dirinfo.isDir()) {
580  if (errorString) {
581  if (localFileOrQrc.isEmpty())
582  *errorString = QDeclarativeImportDatabase::tr("import \"%1\" has no qmldir and no namespace").arg(uri);
583  else
584  *errorString = QDeclarativeImportDatabase::tr("\"%1\": no such directory").arg(uri);
585  }
586  return false;
587  }
588  }
589  }
590  }
591 
592  url = base.resolved(QUrl(url)).toString();
593  if (url.endsWith(QLatin1Char('/')))
594  url.chop(1);
595  }
596 
597  if (!versionFound && vmaj > -1 && vmin > -1 && !qmldircomponents.isEmpty()) {
599  int lowest_maj = INT_MAX;
600  int lowest_min = INT_MAX;
601  int highest_maj = INT_MIN;
602  int highest_min = INT_MIN;
603  for (; it != qmldircomponents.end(); ++it) {
604  if (it->majorVersion > highest_maj || (it->majorVersion == highest_maj && it->minorVersion > highest_min)) {
605  highest_maj = it->majorVersion;
606  highest_min = it->minorVersion;
607  }
608  if (it->majorVersion < lowest_maj || (it->majorVersion == lowest_maj && it->minorVersion < lowest_min)) {
609  lowest_maj = it->majorVersion;
610  lowest_min = it->minorVersion;
611  }
612  }
613  if (lowest_maj > vmaj || (lowest_maj == vmaj && lowest_min > vmin)
614  || highest_maj < vmaj || (highest_maj == vmaj && highest_min < vmin))
615  {
616  *errorString = QDeclarativeImportDatabase::tr("module \"%1\" version %2.%3 is not installed").arg(uri_arg).arg(vmaj).arg(vmin);
617  return false;
618  }
619  }
620 
621  if (appendInstead) {
622  s->uris.append(uri);
623  s->urls.append(url);
624  s->majversions.append(vmaj);
625  s->minversions.append(vmin);
627  s->qmlDirComponents.append(qmldircomponents);
628  } else {
629  s->uris.prepend(uri);
630  s->urls.prepend(url);
631  s->majversions.prepend(vmaj);
632  s->minversions.prepend(vmin);
634  s->qmlDirComponents.prepend(qmldircomponents);
635  }
636  return true;
637 }
static QString urlToLocalFileOrQrc(const QUrl &url)
static bool isModule(const QByteArray &module, int versionMajor, int versionMinor)
QString toString(FormattingOptions options=None) const
Returns the human-displayable string representation of the URL.
Definition: qurl.cpp:5896
#define it(className, varName)
QByteArray toUtf8() const Q_REQUIRED_RESULT
Returns a UTF-8 representation of the string as a QByteArray.
Definition: qstring.cpp:4074
QString & replace(int i, int len, QChar after)
Definition: qstring.cpp:2005
void chop(int n)
Removes n characters from the end of the string.
Definition: qstring.cpp:4623
QString resolvedUri(const QString &dir_arg, QDeclarativeImportDatabase *database)
iterator begin()
Returns an STL-style iterator pointing to the first item in the list.
Definition: qlist.h:267
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
The QUrl class provides a convenient interface for working with URLs.
Definition: qurl.h:61
The QString class provides a Unicode character string.
Definition: qstring.h:83
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
bool isEmpty() const
Returns true if the list contains no items; otherwise returns false.
Definition: qlist.h:152
void append(const T &t)
Inserts value at the end of the list.
Definition: qlist.h:507
static QDeclarativeDirComponents qmlComponents(const QByteArray &module, int version_major, int version_minor)
Returns the component(s) that have been registered for the module specified by uri and the version sp...
QString left(int n) const Q_REQUIRED_RESULT
Returns a substring that contains the n leftmost characters of the string.
Definition: qstring.cpp:3664
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
Definition: qstring.h:704
iterator end()
Returns an STL-style iterator pointing to the imaginary item after the last item in the list...
Definition: qlist.h:270
void prepend(const T &t)
Inserts value at the beginning of the list.
Definition: qlist.h:541
QString arg(qlonglong a, int fieldwidth=0, int base=10, const QChar &fillChar=QLatin1Char(' ')) const Q_REQUIRED_RESULT
Definition: qstring.cpp:7186
int lastIndexOf(QChar c, int from=-1, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Definition: qstring.cpp:3000
bool importExtension(const QString &absoluteFilePath, const QString &uri, QDeclarativeImportDatabase *database, QDeclarativeDirComponents *components, QString *errorString)
static QUrl fromLocalFile(const QString &localfile)
Returns a QUrl representation of localFile, interpreted as a local file.
Definition: qurl.cpp:6374
QString absoluteFilePath(const QString &path)
Returns the absolute filename of path via a directory cache for files named "qmldir", "*.qml", "*.js" Returns a empty string if the path does not exist.
QDeclarativeImportedNamespace unqualifiedset
QDeclarativeTypeLoader * typeLoader
bool endsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string ends with s; otherwise returns false.
Definition: qstring.cpp:3796
QUrl resolved(const QUrl &relative) const
Returns the result of the merge of this URL with relative.
Definition: qurl.cpp:5819
The QFileInfo class provides system-independent file information.
Definition: qfileinfo.h:60
QList< QDeclarativeDirComponents > qmlDirComponents
The QLatin1Char class provides an 8-bit ASCII/Latin-1 character.
Definition: qchar.h:55
#define INT_MAX

◆ find()

bool QDeclarativeImportsPrivate::find ( const QByteArray type,
int *  vmajor,
int *  vminor,
QDeclarativeType **  type_return,
QUrl url_return,
QString errorString 
)

Definition at line 639 of file qdeclarativeimport.cpp.

Referenced by QDeclarativeImports::resolveType().

641 {
644  int slash = type.indexOf('/');
645  if (slash >= 0) {
646  QString namespaceName = QString::fromUtf8(type.left(slash));
647  s = set.value(namespaceName);
648  if (!s) {
649  if (errorString)
650  *errorString = QDeclarativeImportDatabase::tr("- %1 is not a namespace").arg(namespaceName);
651  return false;
652  }
653  int nslash = type.indexOf('/',slash+1);
654  if (nslash > 0) {
655  if (errorString)
656  *errorString = QDeclarativeImportDatabase::tr("- nested namespaces not allowed");
657  return false;
658  }
659  } else {
660  s = &unqualifiedset;
661  }
662  QByteArray unqualifiedtype = slash < 0 ? type : type.mid(slash+1); // common-case opt (QString::mid works fine, but slower)
663  if (s) {
664  if (s->find(typeLoader, unqualifiedtype,vmajor,vminor,type_return,url_return, &base, errorString))
665  return true;
666  if (s->urls.count() == 1 && !s->isLibrary[0] && url_return && s != &unqualifiedset) {
667  // qualified, and only 1 url
668  *url_return = QUrl(s->urls[0]+QLatin1Char('/')).resolved(QUrl(QString::fromUtf8(unqualifiedtype) + QLatin1String(".qml")));
669  return true;
670  }
671  }
672 
673  return false;
674 }
int type
Definition: qmetatype.cpp:239
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
The QUrl class provides a convenient interface for working with URLs.
Definition: qurl.h:61
The QString class provides a Unicode character string.
Definition: qstring.h:83
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
static QString fromUtf8(const char *, int size=-1)
Returns a QString initialized with the first size bytes of the UTF-8 string str.
Definition: qstring.cpp:4302
QByteArray left(int len) const
Returns a byte array that contains the leftmost len bytes of this byte array.
QByteArray mid(int index, int len=-1) const
Returns a byte array containing len bytes from this byte array, starting at position pos...
int indexOf(char c, int from=0) const
Returns the index position of the first occurrence of the character ch in the byte array...
QString arg(qlonglong a, int fieldwidth=0, int base=10, const QChar &fillChar=QLatin1Char(' ')) const Q_REQUIRED_RESULT
Definition: qstring.cpp:7186
QDeclarativeImportedNamespace unqualifiedset
QDeclarativeTypeLoader * typeLoader
QUrl resolved(const QUrl &relative) const
Returns the result of the merge of this URL with relative.
Definition: qurl.cpp:5819
The QLatin1Char class provides an 8-bit ASCII/Latin-1 character.
Definition: qchar.h:55

◆ findNamespace()

QDeclarativeImportedNamespace * QDeclarativeImportsPrivate::findNamespace ( const QString type)

Definition at line 676 of file qdeclarativeimport.cpp.

Referenced by QDeclarativeImports::resolveType().

677 {
678  return set.value(type);
679 }

◆ importExtension()

bool QDeclarativeImportsPrivate::importExtension ( const QString absoluteFilePath,
const QString uri,
QDeclarativeImportDatabase database,
QDeclarativeDirComponents components,
QString errorString 
)

Definition at line 367 of file qdeclarativeimport.cpp.

Referenced by add().

370 {
372  const QDeclarativeDirParser *qmldirParser = typeLoader->qmlDirParser(absoluteFilePath);
373  if (qmldirParser->hasError()) {
374  if (errorString) {
375  const QList<QDeclarativeError> qmldirErrors = qmldirParser->errors(uri);
376  for (int i = 0; i < qmldirErrors.size(); ++i)
377  *errorString += qmldirErrors.at(i).description();
378  }
379  return false;
380  }
381 
382  if (! qmlDirFilesForWhichPluginsHaveBeenLoaded.contains(absoluteFilePath)) {
384 
385  QDir dir = QFileInfo(absoluteFilePath).dir();
386  foreach (const QDeclarativeDirParser::Plugin &plugin, qmldirParser->plugins()) {
387 
388  QString resolvedFilePath = database->resolvePlugin(dir, plugin.path, plugin.name);
389 #if defined(QT_LIBINFIX) && defined(Q_OS_SYMBIAN)
390  if (resolvedFilePath.isEmpty()) {
391  // In case of libinfixed build, attempt to load libinfixed version, too.
392  QString infixedPluginName = plugin.name + QLatin1String(QT_LIBINFIX);
393  resolvedFilePath = database->resolvePlugin(dir, plugin.path, infixedPluginName);
394  }
395 #endif
396  if (!resolvedFilePath.isEmpty()) {
397  if (!database->importPlugin(resolvedFilePath, uri, errorString)) {
398  if (errorString)
399  *errorString = QDeclarativeImportDatabase::tr("plugin cannot be loaded for module \"%1\": %2").arg(uri).arg(*errorString);
400  return false;
401  }
402  } else {
403  if (errorString)
404  *errorString = QDeclarativeImportDatabase::tr("module \"%1\" plugin \"%2\" not found").arg(uri).arg(plugin.name);
405  return false;
406  }
407  }
408  }
409 
410  if (components)
411  *components = qmldirParser->components();
412 
413  return true;
414 }
The QDir class provides access to directory structures and their contents.
Definition: qdir.h:58
QDir dir() const
Returns the path of the object&#39;s parent directory as a QDir object.
Definition: qfileinfo.cpp:861
QList< QDeclarativeError > errors(const QString &uri) const
QSet< QString > qmlDirFilesForWhichPluginsHaveBeenLoaded
bool importPlugin(const QString &filePath, const QString &uri, QString *errorString)
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
The QString class provides a Unicode character string.
Definition: qstring.h:83
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
QList< Component > components() const
bool contains(const T &value) const
Definition: qset.h:91
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
Definition: qstring.h:704
const T & at(int i) const
Returns the item at index position i in the list.
Definition: qlist.h:468
QString description() const
Returns the error description.
const_iterator insert(const T &value)
Definition: qset.h:179
const QDeclarativeDirParser * qmlDirParser(const QString &absoluteFilePath)
Return a QDeclarativeDirParser for absoluteFilePath.
QString resolvePlugin(const QDir &qmldirPath, const QString &qmldirPluginPath, const QString &baseName, const QStringList &suffixes, const QString &prefix=QString())
Returns the result of the merge of baseName with path, suffixes, and prefix.
QString arg(qlonglong a, int fieldwidth=0, int base=10, const QChar &fillChar=QLatin1Char(' ')) const Q_REQUIRED_RESULT
Definition: qstring.cpp:7186
int size() const
Returns the number of items in the list.
Definition: qlist.h:137
QDeclarativeTypeLoader * typeLoader
The QFileInfo class provides system-independent file information.
Definition: qfileinfo.h:60
QList< Plugin > plugins() const

◆ resolvedUri()

QString QDeclarativeImportsPrivate::resolvedUri ( const QString dir_arg,
QDeclarativeImportDatabase database 
)

Definition at line 416 of file qdeclarativeimport.cpp.

Referenced by add().

417 {
418  QString dir = dir_arg;
419  if (dir.endsWith(QLatin1Char('/')) || dir.endsWith(QLatin1Char('\\')))
420  dir.chop(1);
421 
422  QStringList paths = database->fileImportPath;
423  qSort(paths.begin(), paths.end(), greaterThan); // Ensure subdirs preceed their parents.
424 
425  QString stableRelativePath = dir;
426  foreach(const QString &path, paths) {
427  if (dir.startsWith(path)) {
428  stableRelativePath = dir.mid(path.length()+1);
429  break;
430  }
431  }
432 
433  stableRelativePath.replace(QLatin1Char('\\'), QLatin1Char('/'));
434 
435  // remove optional versioning in dot notation from uri
436  int lastSlash = stableRelativePath.lastIndexOf(QLatin1Char('/'));
437  if (lastSlash >= 0) {
438  int versionDot = stableRelativePath.indexOf(QLatin1Char('.'), lastSlash);
439  if (versionDot >= 0)
440  stableRelativePath = stableRelativePath.left(versionDot);
441  }
442 
443  stableRelativePath.replace(QLatin1Char('/'), QLatin1Char('.'));
444  return stableRelativePath;
445 }
static bool greaterThan(const QString &s1, const QString &s2)
QString & replace(int i, int len, QChar after)
Definition: qstring.cpp:2005
void chop(int n)
Removes n characters from the end of the string.
Definition: qstring.cpp:4623
int length() const
Returns the number of characters in this string.
Definition: qstring.h:696
iterator begin()
Returns an STL-style iterator pointing to the first item in the list.
Definition: qlist.h:267
bool startsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string starts with s; otherwise returns false.
Definition: qstring.cpp:3734
The QString class provides a Unicode character string.
Definition: qstring.h:83
iterator end()
Returns an STL-style iterator pointing to the imaginary item after the last item in the list...
Definition: qlist.h:270
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
void qSort(RandomAccessIterator start, RandomAccessIterator end)
Definition: qalgorithms.h:177
QString mid(int position, int n=-1) const Q_REQUIRED_RESULT
Returns a string that contains n characters of this string, starting at the specified position index...
Definition: qstring.cpp:3706
int lastIndexOf(QChar c, int from=-1, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Definition: qstring.cpp:3000
bool endsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string ends with s; otherwise returns false.
Definition: qstring.cpp:3796
The QLatin1Char class provides an 8-bit ASCII/Latin-1 character.
Definition: qchar.h:55

Properties

◆ base

QUrl QDeclarativeImportsPrivate::base

◆ qmlDirFilesForWhichPluginsHaveBeenLoaded

QSet<QString> QDeclarativeImportsPrivate::qmlDirFilesForWhichPluginsHaveBeenLoaded

Definition at line 112 of file qdeclarativeimport.cpp.

Referenced by importExtension().

◆ ref

int QDeclarativeImportsPrivate::ref

◆ set

QHash<QString,QDeclarativeImportedNamespace* > QDeclarativeImportsPrivate::set

Definition at line 114 of file qdeclarativeimport.cpp.

Referenced by QDeclarativeImports::populateCache().

◆ typeLoader

QDeclarativeTypeLoader* QDeclarativeImportsPrivate::typeLoader

◆ unqualifiedset

QDeclarativeImportedNamespace QDeclarativeImportsPrivate::unqualifiedset

Definition at line 113 of file qdeclarativeimport.cpp.

Referenced by add(), find(), and QDeclarativeImports::populateCache().


The documentation for this class was generated from the following file: