]> vaikene.ee Git - evaf/blobdiff - src/libs/Plugins/pluginmanager.cpp
Added support for building under CYGWIN on Windows.
[evaf] / src / libs / Plugins / pluginmanager.cpp
index 643cad217cdfc4a353e13e74a6184689150601cc..dac188f4a6a4addd612fce260fc98dee043f6c1d 100644 (file)
@@ -325,7 +325,7 @@ bool PluginManagerPrivate::loadPlugins()
 void PluginManagerPrivate::unloadPlugins()
 {
     // Finalize all the plugins
-    for (int i = 0; i < mPlugins.size(); ++i)
+    for (int i = mPlugins.size() - 1; i >= 0; --i)
         mPlugins.at(i)->done();
     while (!mPlugins.isEmpty()) {
         QExplicitlySharedDataPointer<Plugin> p = mPlugins.takeLast();
@@ -363,12 +363,21 @@ bool PluginManagerPrivate::loadQtPlugin(QString const & name) const
 #endif
 
 #ifdef Q_OS_WIN32
-    fileName = QString("%2q%2%3").arg(Common::iApp::instance()->qtPluginsDir()).arg(name).arg("4.dll");
+    fileName = QString("%1q%2%3").arg(Common::iApp::instance()->qtPluginsDir()).arg(name).arg("4.dll");
 #  ifndef QT_NO_DEBUG
     QString t = QString("%1q%2%3").arg(Common::iApp::instance()->qtPluginsDir()).arg(name).arg("d4.dll");
     if (!QFile::exists(t))
         fileName = t;
 #  endif
+#endif
+
+#ifdef Q_OS_CYGWIN
+    fileName = QString("%1cygq%2.dll").arg(Common::iApp::instance()->qtPluginsDir()).arg(name);
+#  ifndef QT_NO_DEBUG
+    QString t = QString("%1libq%2.dll.debug").arg(Common::iApp::instance()->qtPluginsDir()).arg(name);
+    if (QFile::exists(t))
+        fileName = t;
+#  endif
 #endif
 
     if (fileName.isEmpty()) {
@@ -457,7 +466,7 @@ iPlugin * Module::create(QString const & name)
     // If the module is not loaded, load it now
     if (!mLoader) {
         if (!load())
-            return false;
+            return 0;
     }
 
     iPlugin * i = 0;