diff options
author | Lukas Geyer <lgeyer@gmx.at> | 2012-08-25 01:06:39 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-08-29 07:56:40 +0200 |
commit | f61d02deeae522c410433a3aa9929e246f413cda (patch) | |
tree | 0164052877cf21e6d94d21377e556c3e0d6c0148 /src/corelib/plugin/qlibrary.cpp | |
parent | 32efe589a39989d81e303219074958181ef44ff4 (diff) |
Plugin metadata is now updated in setFileName(), not load().
Plugin metadata has been updated in load(), with the
side-effect of metadata not beeing available until
plugin has been loaded - and which the new metadata
system tries to prevent in the first place. The
metadata is now updated (and avaiable) as soon as
a valid filename is set.
Change-Id: Ia5aedc67d8115e71c2ecbcbcadf786ba1c2893d8
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/corelib/plugin/qlibrary.cpp')
-rw-r--r-- | src/corelib/plugin/qlibrary.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp index b5d760926a..049df0311b 100644 --- a/src/corelib/plugin/qlibrary.cpp +++ b/src/corelib/plugin/qlibrary.cpp @@ -580,12 +580,19 @@ bool qt_get_metadata(QtPluginQueryVerificationDataFunction pfn, QLibraryPrivate return true; } - bool QLibraryPrivate::isPlugin() { + if (pluginState == MightBeAPlugin) + updatePluginState(); + + return pluginState == IsAPlugin; +} + +void QLibraryPrivate::updatePluginState() +{ errorString.clear(); if (pluginState != MightBeAPlugin) - return pluginState == IsAPlugin; + return; bool success = false; @@ -599,7 +606,7 @@ bool QLibraryPrivate::isPlugin() // pretend we didn't see the file errorString = QLibrary::tr("The shared library was not found."); pluginState = IsNotAPlugin; - return false; + return; } #endif @@ -687,7 +694,8 @@ bool QLibraryPrivate::isPlugin() else errorString = QLibrary::tr("The file '%1' is not a valid Qt plugin.").arg(fileName); } - return false; + pluginState = IsNotAPlugin; + return; } pluginState = IsNotAPlugin; // be pessimistic @@ -717,8 +725,6 @@ bool QLibraryPrivate::isPlugin() } else { pluginState = IsAPlugin; } - - return pluginState == IsAPlugin; } /*! |