• Stars
    star
    915
  • Rank 49,917 (Top 1.0 %)
  • Language
    C++
  • License
    Other
  • Created about 10 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Updater system for Qt applications

QSimpleUpdater

Build Status

QSimpleUpdater is an implementation of an auto-updating system to be used with Qt projects. It allows you to easily check for updates, download them and install them. Additionally, the QSimpleUpdater allows you to check for updates for different "modules" of your application. Check the FAQ for more information.

Online documentation can be found here.

Downloading

Integrating QSimpleUpdater with your projects

  1. Copy the QSimpleUpdater folder in your "3rd-party" folder.
  2. Include the QSimpleUpdater project include (pri) file using the include() function.
  3. That's all! Check the tutorial project as a reference for your project.

FAQ

1. How does the QSimpleUpdater check for updates?

The QSimpleUpdater downloads an update definition file stored in JSON format. This file specifies the latest version, the download links and changelogs for each platform (you can also register your own platform easily if needed).

After downloading this file, the library analyzes the local version and the remote version. If the remote version is greater than the local version, then the library infers that there is an update available and notifies the user.

An example update definition file can be found here.

2. Can I customize the update notifications shown to the user?

Yes! You can "toggle" which notifications to show using the library's functions or re-implement by yourself the notifications by "reacting" to the signals emitted by the QSimpleUpdater.

QString url = "https://MyBadassApplication.com/updates.json";

QSimpleUpdater::getInstance()->setNotifyOnUpdate (url, true);
QSimpleUpdater::getInstance()->setNotifyOnFinish (url, false);

QSimpleUpdater::getInstance()->checkForUpdates (url);

3. Is the application able to download the updates directly?

Yes. If there is an update available, the library will prompt the user if he/she wants to download the update. You can enable or disable the integrated downloader with the following code:

QString url = "https://MyBadassApplication.com/updates.json";
QSimpleUpdater::getInstance()->setDownloaderEnabled (url, true);

4. Why do I need to specify an URL for each function of the library?

The QSimpleUpdater allows you to use different updater instances, which can be accessed with the URL of the update definitions. While it is not obligatory to use multiple updater instances, this can be useful for applications that make use of plugins or different modules.

Say that you are developing a game, in this case, you could use the following code:

// Update the game textures
QString textures_url = "https://MyBadassGame.com/textures.json"
QSimpleUpdater::getInstance()->setModuleName    (textures_url, "textures");
QSimpleUpdater::getInstance()->setModuleVersion (textures_url, "0.4");
QSimpleUpdater::getInstance()->checkForUpdates  (textures_url);

// Update the game sounds
QString sounds_url = "https://MyBadassGame.com/sounds.json"
QSimpleUpdater::getInstance()->setModuleName    (sounds_url, "sounds");
QSimpleUpdater::getInstance()->setModuleVersion (sounds_url, "0.6");
QSimpleUpdater::getInstance()->checkForUpdates  (sounds_url);

// Update the client (name & versions are already stored in qApp)
QString client_url = "https://MyBadassGame.com/client.json"
QSimpleUpdater::getInstance()->checkForUpdates (client_url);

License

QSimpleUpdater is free and open-source software, it is released under the MIT license.

More Repositories

1

HiDPI-Fixer

Qt app that automates fractional scaling configuration on X11 desktops
C++
136
star
2

QJoysticks

Joystick input library for Qt
C
93
star
3

QtApp-Template

Template for Qt/QML apps with nice GitHub stuff
C++
74
star
4

qMDNS

Implementation of a simple mDNS responder with Qt
C++
24
star
5

HP-Spectre-4101dx-Hackintosh

Installation guide & resources to run macOS on the HP Spectre x360 13-4101dx
ASL
21
star
6

QAppKiller

Small library to kill functionality of applications for clients that refuse to pay me
C++
19
star
7

QCCTV

Software to create a CCTV with smart phones
C++
16
star
8

Thunderpad

A simple, powerful and cross-platform text editor
C++
14
star
9

Qt-QrCodeGenerator

A simple Qt library that generates QR codes
C++
12
star
10

QSerialTerminal

A simple, cross-platform serial port terminal application written with Qt/QML
C++
8
star
11

SigLAB

Serial data processing & visualization software
C++
5
star
12

DS-Database

A community-maintained list of open-source FRC DriverStations
4
star
13

Minimal3T

Play Tic-Tac-Toe in a symphony of melodies and color
Objective-C
4
star
14

Socky

Simple C library that eases cross-platform socket programming
C
4
star
15

Joystick2Serial

Quick and dirty software to send SDL joystick data through a serial port
C
2
star
16

AVR-Experiments

AVR projects that I am developing to familiarize myself with AVR microcontrollers
QMake
2
star
17

LSB-Chat

Experimental implementation of a secure message/file exchange platform over a local network.
C++
1
star
18

Falcon

A simple QML widget framework
QML
1
star
19

blackbox

Simulating the dynamical behavior of an Eddy current brake using neural networks
C
1
star
20

asus_zenbook_ux7602zm_sound

Kernel & SSDT patches to get sound working on Asus UX7602ZM laptops under GNU/Linux
ASL
1
star