Skip to content

Commit 82ab134

Browse files
committed
Rework updater
The new updater still uses the dialog from libappimageupdate-qt (which needs some updates to be more usable overall). However, the update check is now integrated in a more "wizard style" user interface that is shown right away with a busy indicator. Update check errors are also handled in that same window. Overall, these features should eventually end up in libappimageupdate-qt, which should generally be rewritten to be non-blocking in all states.
1 parent 3d152be commit 82ab134

File tree

6 files changed

+252
-143
lines changed

6 files changed

+252
-143
lines changed

src/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ set(CMAKE_AUTOUIC ON)
1616
# Compile resource files
1717
set(CMAKE_AUTORCC ON)
1818

19-
find_package(Qt5 REQUIRED COMPONENTS Core Widgets DBus)
19+
find_package(Qt5 REQUIRED COMPONENTS Core Widgets DBus Quick QuickWidgets Qml)
2020

2121
find_package(PkgConfig REQUIRED)
2222
pkg_check_modules(glib REQUIRED glib-2.0>=2.40 IMPORTED_TARGET)

src/ui/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ install(
4646

4747
# AppImage update helper
4848
if(ENABLE_UPDATE_HELPER)
49-
add_executable(update update_main.cpp resources.qrc)
50-
target_link_libraries(update shared translationmanager libappimage libappimageupdate-qt)
49+
add_executable(update update.ui update_main.cpp resources.qrc)
50+
target_link_libraries(update shared translationmanager libappimage libappimageupdate-qt Qt5::Quick Qt5::QuickWidgets Qt5::Qml)
5151
# see AppImageLauncher for a description
5252
set_target_properties(update PROPERTIES INSTALL_RPATH "\$ORIGIN")
5353

src/ui/resources.qrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@
22
<RCC version="1.0">
33
<qresource>
44
<file alias="AppImageLauncher.svg">../../resources/icons/hicolor/scalable/apps/AppImageLauncher.svg</file>
5+
<file alias="update_spinner.qml">update_spinner.qml</file>
56
</qresource>
67
</RCC>

src/ui/update.ui

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ui version="4.0">
3+
<class>UpdateDialog</class>
4+
<widget class="QDialog" name="UpdateDialog">
5+
<property name="geometry">
6+
<rect>
7+
<x>0</x>
8+
<y>0</y>
9+
<width>400</width>
10+
<height>168</height>
11+
</rect>
12+
</property>
13+
<property name="windowTitle">
14+
<string>Dialog</string>
15+
</property>
16+
<layout class="QVBoxLayout" name="verticalLayout">
17+
<property name="leftMargin">
18+
<number>0</number>
19+
</property>
20+
<property name="topMargin">
21+
<number>0</number>
22+
</property>
23+
<property name="rightMargin">
24+
<number>0</number>
25+
</property>
26+
<property name="bottomMargin">
27+
<number>0</number>
28+
</property>
29+
<item>
30+
<widget class="QStackedWidget" name="stackedWidget">
31+
<property name="currentIndex">
32+
<number>2</number>
33+
</property>
34+
<widget class="QWidget" name="spinnerPage">
35+
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="1,0">
36+
<item>
37+
<widget class="QQuickWidget" name="spinnerQuickWidget">
38+
<property name="resizeMode">
39+
<enum>QQuickWidget::SizeRootObjectToView</enum>
40+
</property>
41+
</widget>
42+
</item>
43+
<item>
44+
<widget class="QLabel" name="label">
45+
<property name="text">
46+
<string>Checking for update...</string>
47+
</property>
48+
</widget>
49+
</item>
50+
</layout>
51+
</widget>
52+
<widget class="QWidget" name="errorPage">
53+
<layout class="QVBoxLayout" name="verticalLayout_4" stretch="0,1,0">
54+
<item>
55+
<widget class="QLabel" name="errorTitleLabel">
56+
<property name="font">
57+
<font>
58+
<pointsize>12</pointsize>
59+
</font>
60+
</property>
61+
<property name="text">
62+
<string notr="true">title placeholder</string>
63+
</property>
64+
</widget>
65+
</item>
66+
<item>
67+
<widget class="QLabel" name="errorMessageLabel">
68+
<property name="text">
69+
<string notr="true">message placeholder</string>
70+
</property>
71+
<property name="alignment">
72+
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
73+
</property>
74+
</widget>
75+
</item>
76+
<item>
77+
<widget class="QDialogButtonBox" name="errorButtonBox">
78+
<property name="standardButtons">
79+
<set>QDialogButtonBox::Close</set>
80+
</property>
81+
</widget>
82+
</item>
83+
</layout>
84+
</widget>
85+
<widget class="QWidget" name="updaterPage">
86+
<layout class="QVBoxLayout" name="verticalLayout_3">
87+
<property name="leftMargin">
88+
<number>0</number>
89+
</property>
90+
<property name="topMargin">
91+
<number>0</number>
92+
</property>
93+
<property name="rightMargin">
94+
<number>0</number>
95+
</property>
96+
<property name="bottomMargin">
97+
<number>0</number>
98+
</property>
99+
</layout>
100+
</widget>
101+
</widget>
102+
</item>
103+
</layout>
104+
</widget>
105+
<customwidgets>
106+
<customwidget>
107+
<class>QQuickWidget</class>
108+
<extends>QWidget</extends>
109+
<header location="global">QtQuickWidgets/QQuickWidget</header>
110+
</customwidget>
111+
</customwidgets>
112+
<resources/>
113+
<connections/>
114+
</ui>

0 commit comments

Comments
 (0)