OSCAR-code/oscar/checkupdates.h
2024-01-31 19:14:19 -05:00

61 lines
1.7 KiB
C++

/* Check for Updates
*
* Copyright (c) 2020-2024 The OSCAR Team
* Copyright (c) 2011-2018 Mark Watkins
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file COPYING in the main directory of the source code
* for more details. */
#ifndef CHECKUPDATES_H
#define CHECKUPDATES_H
#include <QNetworkAccessManager>
#include <QMainWindow>
#include <QElapsedTimer>
#include <QProgressDialog>
/*! \class CheckUpdates
\brief Check-for-Updates Module for OSCAR
This class handles the Check-for-Updates process in OSCAR: it does the network checks,
parses the version.xml file, checks for any new updates, and advises the user if updates are available.
*/
class CheckUpdates : public QMainWindow
{
Q_OBJECT
public:
explicit CheckUpdates(QWidget *parent = 0);
~CheckUpdates();
//! Start the check
void checkForUpdates(bool showWhenCurrent);
//! See if running version is current and prepare message if not
void compareVersions();
//! Show message to user, if it is available
//! If shown, clear the "message ready" flag
void showMessage();
protected slots:
void replyFinished(QNetworkReply *reply);
private:
QNetworkAccessManager *manager;
QElapsedTimer readTimer;
float elapsedTime;
QString msg; // Message to show to user
bool msgIsReady = false; // Message is ready to be displayed
bool showIfCurrent = false; // show a message if running current release
bool showTestVersion = false; // Show message if test version is available
QProgressDialog * checkingBox;// Looking for updates message
QNetworkReply *reply;
};
#endif // CHECKUPDATES_H