All Projects → alex-spataru → Qsimpleupdater

alex-spataru / Qsimpleupdater

Licence: other
Updater system for Qt applications

Projects that are alternatives of or similar to Qsimpleupdater

Sdk
Library for using Grafana' structures in Go programs and client for Grafana REST API.
Stars: ✭ 193 (-55.01%)
Mutual labels:  json, library
Gorequest
GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent )
Stars: ✭ 3,063 (+613.99%)
Mutual labels:  json, library
Jsontreeviewer
json formatter/viewer/pretty-printer (with jsonTree javascript-library)
Stars: ✭ 211 (-50.82%)
Mutual labels:  json, library
Qxorm
QxOrm library - C++ Qt ORM (Object Relational Mapping) and ODM (Object Document Mapper) library - Official repository
Stars: ✭ 176 (-58.97%)
Mutual labels:  json, qt
Cppwebframework
​The C++ Web Framework (CWF) is a MVC web framework, Open Source, under MIT License, using C++ with Qt to be used in the development of web applications.
Stars: ✭ 348 (-18.88%)
Mutual labels:  json, qt
Json table
Flutter package: Json Table Widget to create table from json array
Stars: ✭ 178 (-58.51%)
Mutual labels:  json, library
appcenter
🚀 App Center for Liri OS
Stars: ✭ 26 (-93.94%)
Mutual labels:  qt, updater
Bitsofbytes
Code and projects from my blog posts.
Stars: ✭ 89 (-79.25%)
Mutual labels:  json, qt
Daisynet
1. - Alamofire与Cache封装 , 更容易存储请求数据. 2. - 封装Alamofire下载,使用更方便
Stars: ✭ 331 (-22.84%)
Mutual labels:  json, network
Eiskaltdcpp
File sharing program using DC and ADC protocols
Stars: ✭ 277 (-35.43%)
Mutual labels:  network, qt
Json Api
Implementation of JSON API in PHP 7
Stars: ✭ 171 (-60.14%)
Mutual labels:  json, library
Pmjson
Pure Swift JSON encoding/decoding library
Stars: ✭ 362 (-15.62%)
Mutual labels:  json, library
Criterion
Microbenchmarking for Modern C++
Stars: ✭ 140 (-67.37%)
Mutual labels:  json, library
Autoserver
Create a full-featured REST/GraphQL API from a configuration file
Stars: ✭ 188 (-56.18%)
Mutual labels:  json, library
Deta cache
缓存cache服务器
Stars: ✭ 106 (-75.29%)
Mutual labels:  json, network
Qtautoupdater
A Qt library to automatically check for updates and install them
Stars: ✭ 459 (+6.99%)
Mutual labels:  updater, qt
Accord
Data validation library for Rust
Stars: ✭ 72 (-83.22%)
Mutual labels:  json, library
Internettools
XPath/XQuery 3.1 interpreter for Pascal with compatibility modes for XPath 2.0/XQuery 1.0/3.0, custom and JSONiq extensions, XML/HTML parsers and classes for HTTP/S requests
Stars: ✭ 82 (-80.89%)
Mutual labels:  json, library
Qt Json
A simple class for parsing JSON data into a QVariant hierarchy and vice versa.
Stars: ✭ 273 (-36.36%)
Mutual labels:  json, qt
Jqview
simplest possible native GUI for inspecting JSON objects with jq
Stars: ✭ 355 (-17.25%)
Mutual labels:  json, qt

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 DBAD license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].