aboutsummaryrefslogtreecommitdiff
path: root/qmidiplayer-desktop/qmphelpwindow.cpp
blob: 082c2f664f194125f4374e56c4b21abf797ee121 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <fluidsynth.h>
#include "qmphelpwindow.hpp"
#include "ui_qmphelpwindow.h"

static const char *months = "JanFebMarAprMayJunJulAugSepOctNovDec";
std::string parseDate(const char *date)
{
    char ms[8];
    int y, d, m;
    sscanf(date, "%s %d %d", ms, &d, &y);
    m = (strstr(months, ms) - months) / 3 + 1;
    char r[16];
    sprintf(r, "%04d-%02d-%02d", y, m, d);
    return std::string(r);
}

qmpHelpWindow::qmpHelpWindow(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::qmpHelpWindow)
{
    ui->setupUi(this);
    ui->textBrowser->setSearchPaths(QStringList(QString(":/doc")) + QStringList(QString(":/img")));
    ui->textBrowser->setSource(QUrl("qrc:///doc/index_internal.html"));
}

qmpHelpWindow::~qmpHelpWindow()
{
    delete ui;
}

void qmpHelpWindow::on_textBrowser_sourceChanged(const QUrl &src)
{
    if (src.fileName() == QString("version_internal.html"))
    {
        QString s = ui->textBrowser->toHtml();
        s.replace("CT_QT_VERSION_STR", QT_VERSION_STR);
        s.replace("RT_QT_VERSION_STR", qVersion());
        s.replace("CT_FLUIDSYNTH_VERSION", FLUIDSYNTH_VERSION);
        s.replace("RT_FLUIDSYNTH_VERSION", fluid_version_str());
        s.replace("APP_VERSION", APP_VERSION);
        s.replace("BUILD_DATE", parseDate(__DATE__).c_str());
        s.replace("BUILD_MACHINE", QT_STRINGIFY(BUILD_MACHINE));
        ui->textBrowser->setHtml(s);
    }
}