]> 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 2d8e269f3a141447fccbfb787fcf6871d07ffc2e..dac188f4a6a4addd612fce260fc98dee043f6c1d 100644 (file)
@@ -25,7 +25,6 @@
 #include <Common/Globals>
 #include <Common/Util>
 #include <Common/iLogger>
-#include <Common/iEnv>
 #include <Common/iApp>
 
 #include <QtCore>
@@ -145,7 +144,7 @@ void PluginManagerPrivate::done()
 bool PluginManagerPrivate::loadPlugins()
 {
     // Get the name of the application's XML file
-    QString xmlFileName = Common::iEnv::instance()->etcDir() + Common::iApp::instance()->xmlFileName();
+    QString xmlFileName = Common::iApp::instance()->etcDir() + Common::iApp::instance()->xmlFileName();
 
     // Open the XML file
     QFile xmlFile(xmlFileName);
@@ -326,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();
@@ -355,21 +354,30 @@ bool PluginManagerPrivate::loadQtPlugin(QString const & name) const
     QString fileName;
 
 #ifdef Q_OS_LINUX
-    fileName = QString("%1libq%2.so").arg(Common::iEnv::instance()->qtPluginsDir()).arg(name);
+    fileName = QString("%1libq%2.so").arg(Common::iApp::instance()->qtPluginsDir()).arg(name);
 #  ifndef QT_NO_DEBUG
-    QString t = QString("%1libq%2.so.debug").arg(Common::iEnv::instance()->qtPluginsDir()).arg(name);
+    QString t = QString("%1libq%2.so.debug").arg(Common::iApp::instance()->qtPluginsDir()).arg(name);
     if (QFile::exists(t))
         fileName = t;
 #  endif
 #endif
 
 #ifdef Q_OS_WIN32
-    fileName = QString("%2q%2%3").arg(Common::iEnv::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::iEnv::instance()->qtPluginsDir()).arg(name).arg("d4.dll");
+    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()) {
@@ -414,7 +422,7 @@ Module::~Module()
 bool Module::load()
 {
     // The real file name with path
-    QString fileName = Common::iEnv::instance()->binDir() + expandPluginName(mName);
+    QString fileName = Common::iApp::instance()->binDir() + expandPluginName(mName);
 
     // Try to load the module
     QScopedPointer<QPluginLoader> p(new QPluginLoader(fileName));
@@ -458,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;