#include "about.h" #include "serverconnection.h" #include "ui_about.h" #include #include #include #include #define Y_POS_VERSION 0 #define Y_POS_SERVER_INFO 1 About::About(QWidget *parent, QSettings *settings) : QMainWindow(parent) { mySettings = settings; mainLayout = new QGridLayout(); /* create legal box */ QGridLayout *layoutLegal = new QGridLayout(); QGroupBox *legalGroup = new QGroupBox(); legalGroup->setTitle("Rechtliches"); QLabel *licenseLabel = new QLabel("Diese Software wird unter derGPLv3verbreitet.
Code und Kompelierungsinstruktionen sind konform zur Lizenzhier zugänglich."); licenseLabel->setOpenExternalLinks(true); layoutLegal->addWidget(licenseLabel, 0, 0); layoutLegal->addWidget(new QLabel("Author: Yannik Schmidt"), 1, 0); legalGroup->setLayout(layoutLegal); /* create software infor group */ layoutSoftwareinfo = new QGridLayout(); softwareInfoGroup = new QGroupBox(); QString *version = getCurrentVersion(); QLabel *versionLabelIdent = new QLabel("Version:"); QLabel *versionLabel = new QLabel(); serverInfo = new QLabel("Wird ermittelt.."); versionLabel->setText(*version); softwareInfoGroup->setTitle("Software Information"); layoutSoftwareinfo->addWidget(versionLabelIdent, Y_POS_VERSION, 0); layoutSoftwareinfo->addWidget(versionLabel, Y_POS_VERSION, 1); layoutSoftwareinfo->addWidget(new QLabel("Server:"), Y_POS_SERVER_INFO, 0); layoutSoftwareinfo->addWidget(serverInfo, Y_POS_SERVER_INFO, 1); softwareInfoGroup->setLayout(layoutSoftwareinfo); /* add groups to main layout */ mainLayout->addWidget(softwareInfoGroup); mainLayout->addWidget(legalGroup); /* setup main window */ QWidget *mainWidget = new QWidget(this); mainWidget->setLayout(mainLayout); this->setCentralWidget(mainWidget); /* get server info and set as soon as possible*/ ServerConnection *sc = new ServerConnection(this, mySettings); connect(sc->getNetworkManager(), SIGNAL(finished(QNetworkReply*)), this, SLOT(handleServerVersion(QNetworkReply*))); sc->queryServerVersion(); } About::~About() { } void About::handleServerVersion(QNetworkReply* reply){ if(reply->error() != QNetworkReply::NoError){ serverInfo->setText(reply->errorString()); }else { QJsonDocument json = QJsonDocument::fromJson(reply->readAll()); auto serverInfoValue = json["server-version"].toString(); serverInfo->setText(serverInfoValue); } } QString* About::getCurrentVersion(){ return new QString(GIT_VERSION); }