Made decode an optional feature disabled by default.
[pulseview.git] / pv / dialogs / about.cpp
index a7778549b3438c47ab493bcb00f2516a5f9b6fae..fe0f16a9149a65fd83e2901fe3b59c3f15f250fe 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-extern "C" {
-#include <sigrokdecode.h>
-}
+#ifdef ENABLE_DECODE
+#include <libsigrokdecode/libsigrokdecode.h>
+#endif
 
 #include <QTextDocument>
 
 #include "about.h"
 #include <ui_about.h>
 
-extern "C" {
 /* __STDC_FORMAT_MACROS is required for PRIu64 and friends (in C++). */
 #define __STDC_FORMAT_MACROS
 #include <glib.h>
 #include <libsigrok/libsigrok.h>
-}
+
 
 namespace pv {
 namespace dialogs {
@@ -41,11 +40,14 @@ About::About(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::About)
 {
-       GSList *l;
        struct sr_dev_driver **drivers;
        struct sr_input_format **inputs;
        struct sr_output_format **outputs;
+
+#ifdef ENABLE_DECODE
        struct srd_decoder *dec;
+#endif
+
        QString s;
 
        ui->setupUi(this);
@@ -54,8 +56,9 @@ About::About(QWidget *parent) :
        ui->versionInfo->setText(tr("%1 %2<br />%3<br /><a href=\"%4\">%4</a>")
                                 .arg(QApplication::applicationName())
                                 .arg(QApplication::applicationVersion())
-                                .arg(tr("GNU GPL, version 2 or later"))
+                                .arg(tr("GNU GPL, version 3 or later"))
                                 .arg(QApplication::organizationDomain()));
+       ui->versionInfo->setOpenExternalLinks(true);
 
        s.append("<table>");
 
@@ -66,8 +69,8 @@ About::About(QWidget *parent) :
        drivers = sr_driver_list();
        for (int i = 0; drivers[i]; ++i) {
                s.append(QString("<tr><td><i>%1</i></td><td>%2</td></tr>")
-                        .arg(QString(drivers[i]->name))
-                        .arg(QString(drivers[i]->longname)));
+                        .arg(QString::fromUtf8(drivers[i]->name))
+                        .arg(QString::fromUtf8(drivers[i]->longname)));
        }
 
        s.append("<tr><td colspan=\"2\"><b>" +
@@ -76,8 +79,8 @@ About::About(QWidget *parent) :
        inputs = sr_input_list();
        for (int i = 0; inputs[i]; ++i) {
                s.append(QString("<tr><td><i>%1</i></td><td>%2</td></tr>")
-                        .arg(QString(inputs[i]->id))
-                        .arg(QString(inputs[i]->description)));
+                        .arg(QString::fromUtf8(inputs[i]->id))
+                        .arg(QString::fromUtf8(inputs[i]->description)));
        }
 
        s.append("<tr><td colspan=\"2\"><b>" +
@@ -86,19 +89,21 @@ About::About(QWidget *parent) :
        outputs = sr_output_list();
        for (int i = 0; outputs[i]; ++i) {
                s.append(QString("<tr><td><i>%1</i></td><td>%2</td></tr>")
-                       .arg(QString(outputs[i]->id))
-                       .arg(QString(outputs[i]->description)));
+                       .arg(QString::fromUtf8(outputs[i]->id))
+                       .arg(QString::fromUtf8(outputs[i]->description)));
        }
 
+#ifdef ENABLE_DECODE
        s.append("<tr><td colspan=\"2\"><b>" +
                tr("Supported protocol decoders:") +
                "</b></td></tr>");
-       for (l = srd_decoder_list(); l; l = l->next) {
+       for (const GSList *l = srd_decoder_list(); l; l = l->next) {
                dec = (struct srd_decoder *)l->data;
                s.append(QString("<tr><td><i>%1</i></td><td>%2</td></tr>")
-                        .arg(QString(dec->id))
-                        .arg(QString(dec->longname)));
+                        .arg(QString::fromUtf8(dec->id))
+                        .arg(QString::fromUtf8(dec->longname)));
        }
+#endif
 
        s.append("</table>");