check update

This commit is contained in:
朱子楚\zhuzi 2023-08-27 09:11:44 +08:00
parent db74f71e82
commit e2879f564c
5 changed files with 137 additions and 23 deletions

View File

@ -5,8 +5,9 @@
#include <QtGlobal> #include <QtGlobal>
#define APPLICATION_VERSION "${GIT_SEMVER}.${GIT_COMMIT_COUNT}" #define APPLICATION_FULL_VERSION "${GIT_SEMVER}.${GIT_COMMIT_COUNT}"
#define VERSION_COUNTER ${GIT_COMMIT_COUNT} #define VERSION_COUNTER ${GIT_COMMIT_COUNT}
#define COMMIT_HASH "${GIT_DESCRIBE}" #define COMMIT_HASH "${GIT_DESCRIBE}"
#define APPLICATION_VERSION "${GIT_SEMVER}"
#endif // VERSION_H #endif // VERSION_H

View File

@ -28,6 +28,7 @@ CustomWindow {
Component.onCompleted: { Component.onCompleted: {
FluTools.setQuitOnLastWindowClosed(false) FluTools.setQuitOnLastWindowClosed(false)
tour.open() tour.open()
checkUpdate()
} }
SystemTrayIcon { SystemTrayIcon {
@ -277,4 +278,46 @@ CustomWindow {
] ]
} }
FluHttp{
id:http
}
FluContentDialog{
property string newVerson
property string body
id:dialog_update
title:"升级提示"
message:"FluentUI目前最新版本 "+ newVerson +" -- 当前应用版本 "+appInfo.version+" \n现在是否去下载新版本\n\n更新内容\n"+body
buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
negativeText: "取消"
positiveText:"确定"
onPositiveClicked:{
Qt.openUrlExternally("https://github.com/zhuzichu520/FluentUI/releases/latest")
}
}
function checkUpdate(){
var callable = {}
callable.onStart = function(){
console.debug("satrt check update...")
}
callable.onFinish = function(){
console.debug("check update finish")
}
callable.onSuccess = function(result){
var data = JSON.parse(result)
console.debug("current version "+appInfo.version)
console.debug("new version "+data.tag_name)
if(data.tag_name !== appInfo.version){
dialog_update.newVerson = data.tag_name
dialog_update.body = data.body
dialog_update.open()
}
}
callable.onError = function(status,errorString){
console.debug(status+";"+errorString)
}
http.get("https://api.github.com/repos/zhuzichu520/FluentUI/releases/latest",callable)
}
} }

View File

@ -29,6 +29,7 @@ CustomWindow {
Component.onCompleted: { Component.onCompleted: {
FluTools.setQuitOnLastWindowClosed(false) FluTools.setQuitOnLastWindowClosed(false)
tour.open() tour.open()
checkUpdate()
} }
SystemTrayIcon { SystemTrayIcon {
@ -278,4 +279,46 @@ CustomWindow {
] ]
} }
FluHttp{
id:http
}
FluContentDialog{
property string newVerson
property string body
id:dialog_update
title:"升级提示"
message:"FluentUI目前最新版本 "+ newVerson +" -- 当前应用版本 "+appInfo.version+" \n现在是否去下载新版本\n\n更新内容\n"+body
buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
negativeText: "取消"
positiveText:"确定"
onPositiveClicked:{
Qt.openUrlExternally("https://github.com/zhuzichu520/FluentUI/releases/latest")
}
}
function checkUpdate(){
var callable = {}
callable.onStart = function(){
console.debug("satrt check update...")
}
callable.onFinish = function(){
console.debug("check update finish")
}
callable.onSuccess = function(result){
var data = JSON.parse(result)
console.debug("current version "+appInfo.version)
console.debug("new version "+data.tag_name)
if(data.tag_name !== appInfo.version){
dialog_update.newVerson = data.tag_name
dialog_update.body = data.body
dialog_update.open()
}
}
callable.onError = function(status,errorString){
console.debug(status+";"+errorString)
}
http.get("https://api.github.com/repos/zhuzichu520/FluentUI/releases/latest",callable)
}
} }

View File

@ -18,7 +18,7 @@ FluPopup {
property int buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton property int buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
focus: true focus: true
implicitWidth: 400 implicitWidth: 400
implicitHeight: text_title.height + text_message.height + layout_actions.height implicitHeight: text_title.height + sroll_message.height + layout_actions.height
Rectangle { Rectangle {
id:layout_content id:layout_content
anchors.fill: parent anchors.fill: parent
@ -38,28 +38,41 @@ FluPopup {
right: parent.right right: parent.right
} }
} }
FluText{
id:text_message Flickable{
font: FluTextStyle.Body id:sroll_message
wrapMode: Text.WrapAnywhere contentWidth: width
text:message
topPadding: 14
leftPadding: 20
rightPadding: 20
bottomPadding: 14
anchors{ anchors{
top:text_title.bottom top:text_title.bottom
left: parent.left left: parent.left
right: parent.right right: parent.right
} }
contentHeight: text_message.height
clip: true
height: Math.min(text_message.height,300)
ScrollBar.vertical: FluScrollBar {}
FluText{
id:text_message
font: FluTextStyle.Body
wrapMode: Text.WrapAnywhere
text:message
width: parent.width
topPadding: 14
leftPadding: 20
rightPadding: 20
bottomPadding: 14
} }
}
Rectangle{ Rectangle{
id:layout_actions id:layout_actions
height: 68 height: 68
radius: 5 radius: 5
color: FluTheme.dark ? Qt.rgba(32/255,32/255,32/255,1) : Qt.rgba(243/255,243/255,243/255,1) color: FluTheme.dark ? Qt.rgba(32/255,32/255,32/255,1) : Qt.rgba(243/255,243/255,243/255,1)
anchors{ anchors{
top:text_message.bottom top:sroll_message.bottom
left: parent.left left: parent.left
right: parent.right right: parent.right
} }
@ -127,3 +140,4 @@ FluPopup {
} }
} }
} }

View File

@ -18,7 +18,7 @@ FluPopup {
property int buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton property int buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
focus: true focus: true
implicitWidth: 400 implicitWidth: 400
implicitHeight: text_title.height + text_message.height + layout_actions.height implicitHeight: text_title.height + sroll_message.height + layout_actions.height
Rectangle { Rectangle {
id:layout_content id:layout_content
anchors.fill: parent anchors.fill: parent
@ -38,28 +38,41 @@ FluPopup {
right: parent.right right: parent.right
} }
} }
FluText{
id:text_message Flickable{
font: FluTextStyle.Body id:sroll_message
wrapMode: Text.WrapAnywhere contentWidth: width
text:message
topPadding: 14
leftPadding: 20
rightPadding: 20
bottomPadding: 14
anchors{ anchors{
top:text_title.bottom top:text_title.bottom
left: parent.left left: parent.left
right: parent.right right: parent.right
} }
contentHeight: text_message.height
clip: true
height: Math.min(text_message.height,300)
ScrollBar.vertical: FluScrollBar {}
FluText{
id:text_message
font: FluTextStyle.Body
wrapMode: Text.WrapAnywhere
text:message
width: parent.width
topPadding: 14
leftPadding: 20
rightPadding: 20
bottomPadding: 14
} }
}
Rectangle{ Rectangle{
id:layout_actions id:layout_actions
height: 68 height: 68
radius: 5 radius: 5
color: FluTheme.dark ? Qt.rgba(32/255,32/255,32/255,1) : Qt.rgba(243/255,243/255,243/255,1) color: FluTheme.dark ? Qt.rgba(32/255,32/255,32/255,1) : Qt.rgba(243/255,243/255,243/255,1)
anchors{ anchors{
top:text_message.bottom top:sroll_message.bottom
left: parent.left left: parent.left
right: parent.right right: parent.right
} }