diff plugin/FeatureExtractionPluginFactory.cpp @ 1166:4607603c46d0

Show warning to the user when plugin population has problems
author Chris Cannam
date Tue, 19 Jan 2016 12:32:30 +0000
parents d57f9344db19
children 7c4f4701b49f
line wrap: on
line diff
--- a/plugin/FeatureExtractionPluginFactory.cpp	Mon Jan 11 14:18:56 2016 +0000
+++ b/plugin/FeatureExtractionPluginFactory.cpp	Tue Jan 19 12:32:30 2016 +0000
@@ -136,7 +136,8 @@
 }
 
 vector<QString>
-FeatureExtractionPluginFactory::winnowPluginCandidates(vector<QString> candidates)
+FeatureExtractionPluginFactory::winnowPluginCandidates(vector<QString> candidates,
+                                                       QString &warningMessage)
 {
     vector<QString> good, bad;
     vector<PluginLoadStatus> badStatuses;
@@ -159,24 +160,26 @@
     }
     
     if (!bad.empty()) {
-        QString warningMessage = "<b>Failed to load plugins</b></p>Failed to load one or more plugin libraries:</p><ul>\n";
+        warningMessage =
+            QObject::tr("<b>Failed to load plugins</b>"
+                        "<p>Failed to load one or more plugin libraries:</p>\n");
+        warningMessage += "<ul>";
         for (int i = 0; i < bad.size(); ++i) {
             QString m;
             if (badStatuses[i] == PluginLoadFailedToLoadLibrary) {
-                m = "Failed to load library";
+                m = QObject::tr("Failed to load library");
             } else if (badStatuses[i] == PluginLoadFailedToFindDescriptor) {
-                m = "Failed to query plugins from library after loading";
+                m = QObject::tr("Failed to query plugins from library after loading");
             } else if (badStatuses[i] == PluginLoadFailedElsewhere) {
-                m = "Unknown failure";
+                m = QObject::tr("Unknown failure");
             } else {
-                m = "Success: internal error?";
+                m = QObject::tr("Success: internal error?");
             }
             warningMessage += QString("<li>%1 (%2)</li>\n")
                 .arg(bad[i])
                 .arg(m);
         }
         warningMessage += "</ul>";
-        cerr << warningMessage; //!!! for now!
     }
     return good;
 }
@@ -187,7 +190,8 @@
     Profiler profiler("FeatureExtractionPluginFactory::getPluginIdentifiers");
 
     vector<QString> rv;
-    vector<QString> candidates = winnowPluginCandidates(getPluginCandidateFiles());
+    vector<QString> candidates = winnowPluginCandidates(getPluginCandidateFiles(),
+                                                        m_pluginScanError);
     
     for (QString soname : candidates) {
 
@@ -236,7 +240,7 @@
                      << descriptor->identifier << "\" at indices "
                      << known[descriptor->identifier] << " and "
                      << index << endl;
-                SVDEBUG << "FeatureExtractionPluginFactory::getPluginIdentifiers: Avoiding this library (obsolete API?)" << endl;
+                cerr << "FeatureExtractionPluginFactory::getPluginIdentifiers: Avoiding this library (obsolete API?)" << endl;
                 ok = false;
                 break;
             } else {