diff plugin/PluginScan.cpp @ 1181:2f628dc9a0b0 pluginscan

Check for plugin scan helper checker helper program in suitable directory, & tidy up warning messages somewhat
author Chris Cannam
date Fri, 15 Apr 2016 16:13:06 +0100
parents 98664afd518b
children c0cec4659784
line wrap: on
line diff
--- a/plugin/PluginScan.cpp	Thu Apr 14 16:52:55 2016 +0100
+++ b/plugin/PluginScan.cpp	Fri Apr 15 16:13:06 2016 +0100
@@ -19,6 +19,7 @@
 #include "checker/knownplugins.h"
 
 #include <QMutex>
+#include <QCoreApplication>
 
 using std::string;
 
@@ -49,12 +50,12 @@
 }
 
 void
-PluginScan::scan()
+PluginScan::scan(QString helperExecutablePath)
 {
     delete m_kp;
     m_succeeded = false;
     try {
-	m_kp = new KnownPlugins("./helper", m_logger); //!!!
+	m_kp = new KnownPlugins(helperExecutablePath.toStdString(), m_logger);
 	m_succeeded = true;
     } catch (const std::exception &e) {
 	cerr << "ERROR: PluginScan::scan: " << e.what() << endl;
@@ -85,8 +86,10 @@
 {
     if (!m_succeeded) {
 	return QObject::tr("<b>Failed to scan for plugins</b>"
-			   "<p>Failed to scan for plugins at startup "
-			   "(application installation problem?)</p>");
+			   "<p>Failed to scan for plugins at startup. Possibly "
+                           "the plugin checker helper program was not correctly "
+                           "installed alongside %1?</p>")
+            .arg(QCoreApplication::applicationName());
     }
     if (!m_kp) {
 	return QObject::tr("<b>Did not scan for plugins</b>"
@@ -101,6 +104,9 @@
 
     return QObject::tr("<b>Failed to load plugins</b>"
 		       "<p>Failed to load one or more plugin libraries:</p>")
-	+ QString(report.c_str());
+	+ QString(report.c_str())
+        + QObject::tr("<p>These plugins may be incompatible with the system, "
+                      "and will be ignored during this run of %1.</p>")
+        .arg(QCoreApplication::applicationName());
 }