]> sigrok.org Git - pulseview.git/blobdiff - pv/dialogs/about.cpp
Build fixes for Qt5 Windows/mingw/MXE support.
[pulseview.git] / pv / dialogs / about.cpp
index c14a8fea7d0f487cb376882d18baa595b384fee3..dbe7d9b809a43f76821e7314950b9d346f5f83db 100644 (file)
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include <sigrokdecode.h>
+#ifdef ENABLE_DECODE
+#include <libsigrokdecode/libsigrokdecode.h>
+#endif
 
 #include <QTextDocument>
 
-#include "about.h"
+#include "about.hpp"
 #include <ui_about.h>
 
-/* __STDC_FORMAT_MACROS is required for PRIu64 and friends (in C++). */
-#define __STDC_FORMAT_MACROS
-#include <glib.h>
-#include <libsigrok/libsigrok.h>
+#include <libsigrokcxx/libsigrokcxx.hpp>
 
+using std::shared_ptr;
+using sigrok::Context;
 
 namespace pv {
 namespace dialogs {
 
-About::About(QWidget *parent) :
+About::About(shared_ptr<Context> context, QWidget *parent) :
        QDialog(parent),
        ui(new Ui::About)
 {
-       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);
 
        /* Setup the version field */
        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(QApplication::organizationDomain()));
+                                .arg(QApplication::applicationName(),
+                                     QApplication::applicationVersion(),
+                                     tr("GNU GPL, version 3 or later"),
+                                     QApplication::organizationDomain()));
        ui->versionInfo->setOpenExternalLinks(true);
 
        s.append("<table>");
@@ -60,48 +60,47 @@ About::About(QWidget *parent) :
        s.append("<tr><td colspan=\"2\"><b>" +
                tr("Supported hardware drivers:") +
                "</b></td></tr>");
-       drivers = sr_driver_list();
-       for (int i = 0; drivers[i]; ++i) {
+       for (auto entry : context->drivers()) {
                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(entry.first.c_str()),
+                             QString::fromUtf8(entry.second->long_name().c_str())));
        }
 
        s.append("<tr><td colspan=\"2\"><b>" +
                tr("Supported input formats:") +
                "</b></td></tr>");
-       inputs = sr_input_list();
-       for (int i = 0; inputs[i]; ++i) {
+       for (auto entry : context->input_formats()) {
                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(entry.first.c_str()),
+                             QString::fromUtf8(entry.second->description().c_str())));
        }
 
        s.append("<tr><td colspan=\"2\"><b>" +
                tr("Supported output formats:") +
                "</b></td></tr>");
-       outputs = sr_output_list();
-       for (int i = 0; outputs[i]; ++i) {
+       for (auto entry : context->output_formats()) {
                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(entry.first.c_str()),
+                             QString::fromUtf8(entry.second->description().c_str())));
        }
 
+#ifdef ENABLE_DECODE
        s.append("<tr><td colspan=\"2\"><b>" +
                tr("Supported protocol decoders:") +
                "</b></td></tr>");
        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),
+                             QString::fromUtf8(dec->longname)));
        }
+#endif
 
        s.append("</table>");
 
-       supportedDoc.reset(new QTextDocument(this));
+       supportedDoc = new QTextDocument(this);
        supportedDoc->setHtml(s);
-       ui->supportList->setDocument(supportedDoc.get());
+       ui->supportList->setDocument(supportedDoc);
 }
 
 About::~About()