Automatic Update Check, resolve #5

master
Alexander Diamadis 4 years ago
parent edfa94ec34
commit 69e0c868b0
Signed by: alex
GPG Key ID: 6A1609EFA141FD70

@ -1,4 +1,4 @@
QT += core gui multimedia
QT += core gui multimedia network concurrent
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

@ -10,12 +10,25 @@
#include <QFileDialog>
#include "about.h"
#include "analyzer.h"
#include <QJsonDocument>
#include <Qfile>
#include <QJsonParseError>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
manager = new QNetworkAccessManager();
checkUpdates();
m_ampCount=0;
m_pCAmp=Q_NULLPTR;
@ -381,3 +394,37 @@ void MainWindow::on_checkBox_optimizeGain_stateChanged(int arg1)
}
}
void MainWindow::checkUpdates()
{
QObject::connect(manager, &QNetworkAccessManager::finished,
this,&MainWindow::checkUpdatesFinished);
request.setUrl(QUrl("https://git.aldiserver.de/api/v1/repos/DKM-Tech/pa-calculator/releases?draft=false&pre-release=false&per_page=1&limit=1"));
manager->get(request);
}
void MainWindow::checkUpdatesFinished(QNetworkReply *reply)
{
if (reply->error()) {
//qDebug() << reply->errorString();
return;
}
QString ReplyText = reply->readAll();
QJsonDocument doc = QJsonDocument::fromJson(ReplyText.toUtf8());
QJsonArray array = doc.array();
QJsonObject obj=array.at(0).toObject();
QString current_version=obj.value("tag_name").toString().remove(0,1);
QString current_version_url=obj.value("html_url").toString();
QString installed_version = APP_VERSION;
installed_version=installed_version.mid(0,installed_version.lastIndexOf('.'));
//qDebug() << "Neueste Version: " <<current_version;
//qDebug() << "Installierte Version: " <<installed_version;
if (current_version!=installed_version){
QMessageBox msgBox;
msgBox.setTextFormat(Qt::RichText);
msgBox.setText("Es ist ein Update verfügbar!<br>Installierte Version: "+installed_version+"<br>Verfügbare Version: "+current_version+"<br> Du kannst das Update <a href='"+current_version_url+"'>hier</a> herunterladen.");
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.exec();
}
}

@ -6,6 +6,14 @@
#include "cspeaker.h"
#include <cdac.h>
#include <QThreadPool>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QFuture>
#include <QtConcurrent>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
@ -18,6 +26,7 @@ public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_ComboBox_selectSensUnit_currentIndexChanged(int index);
@ -44,6 +53,9 @@ private slots:
void on_checkBox_optimizeGain_stateChanged(int arg1);
void checkUpdatesFinished(QNetworkReply *reply);
private:
Ui::MainWindow *ui;
cAmp* m_pCAmp;
@ -62,8 +74,12 @@ private:
void refreshLibraryDacs();
void checkUpdates();
void loadLibrary();
void saveLibrary();
QNetworkAccessManager *manager;
QNetworkRequest request;
QFuture<void> requestFuture;
};
#endif // MAINWINDOW_H

@ -324,29 +324,13 @@
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="label_21">
<item row="5" column="0">
<widget class="QLabel" name="label_24">
<property name="text">
<string>Load Speaker from library</string>
<string>Number of speaker in parallel</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QComboBox" name="comboBox_librarySpeaker"/>
</item>
<item row="6" column="1">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="1">
<widget class="QSpinBox" name="spinBox_speakerCount">
<property name="minimum">
@ -357,26 +341,16 @@
</property>
</widget>
</item>
<item row="4" column="1">
<spacer name="verticalSpacer_6">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_24">
<item row="7" column="0">
<widget class="QLabel" name="label_21">
<property name="text">
<string>Number of speaker in parallel</string>
<string>Load Speaker from library</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QComboBox" name="comboBox_librarySpeaker"/>
</item>
<item row="8" column="0" colspan="2">
<widget class="QPushButton" name="pushButton_loadSpeaker">
<property name="minimumSize">
@ -395,6 +369,19 @@
</property>
</widget>
</item>
<item row="4" column="1">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
@ -466,12 +453,12 @@
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Maximum</enum>
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
<height>20</height>
</size>
</property>
</spacer>
@ -619,6 +606,7 @@
<property name="font">
<font>
<pointsize>15</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
@ -647,6 +635,9 @@
<property name="text">
<string>0 ms</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="3" column="0">
@ -666,6 +657,9 @@
<property name="text">
<string>0 ms</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="1" column="0">
@ -742,6 +736,7 @@
<property name="font">
<font>
<pointsize>15</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
@ -770,6 +765,9 @@
<property name="text">
<string>0 ms</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="3" column="0">
@ -789,6 +787,9 @@
<property name="text">
<string>0 ms</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="1" column="1">
@ -857,7 +858,7 @@
<x>0</x>
<y>0</y>
<width>1242</width>
<height>17</height>
<height>24</height>
</rect>
</property>
<widget class="QMenu" name="menuLibrary">

Loading…
Cancel
Save