@@ -34,7 +34,7 @@ bool is_elf(char *fname) {
34
34
void Setup::download (QString url) {
35
35
CURL *curl = curl_easy_init ();
36
36
if (!curl) {
37
- emit finished (DownloadResult::error, url );
37
+ emit finished (url, tr ( " Something went wrong. Reboot the device. " ) );
38
38
return ;
39
39
}
40
40
@@ -59,17 +59,17 @@ void Setup::download(QString url) {
59
59
curl_easy_getinfo (curl, CURLINFO_RESPONSE_CODE, &res_status);
60
60
61
61
if (ret != CURLE_OK || res_status != 200 ) {
62
- emit finished (DownloadResult::error, url );
62
+ emit finished (url, tr ( " Ensure the entered URL is valid, and the device’s internet connection is good. " ) );
63
63
} else if (!is_elf (tmpfile )) {
64
- emit finished (DownloadResult::notExecutable, url );
64
+ emit finished (url, tr ( " No custom software found at this URL. " ) );
65
65
} else {
66
66
rename (tmpfile , " /tmp/installer" );
67
67
68
68
FILE *fp_url = fopen (" /tmp/installer_url" , " w" );
69
69
fprintf (fp_url, " %s" , url.toStdString ().c_str ());
70
70
fclose (fp_url);
71
71
72
- emit finished (DownloadResult::ok, url);
72
+ emit finished (url);
73
73
}
74
74
75
75
curl_slist_free_all (list);
@@ -242,10 +242,10 @@ QWidget * Setup::downloading() {
242
242
return widget;
243
243
}
244
244
245
- QWidget * Setup::download_failed () {
245
+ QWidget * Setup::download_failed (QLabel *url, QLabel *body ) {
246
246
QWidget *widget = new QWidget ();
247
247
QVBoxLayout *main_layout = new QVBoxLayout (widget);
248
- main_layout->setContentsMargins (55 , 225 , 55 , 55 );
248
+ main_layout->setContentsMargins (55 , 185 , 55 , 55 );
249
249
main_layout->setSpacing (0 );
250
250
251
251
QLabel *title = new QLabel (tr (" Download Failed" ));
@@ -254,62 +254,13 @@ QWidget * Setup::download_failed() {
254
254
255
255
main_layout->addSpacing (67 );
256
256
257
- QLabel *body = new QLabel (tr (" Ensure the entered URL is valid, and the device’s internet connection is good." ));
258
- body->setWordWrap (true );
259
- body->setAlignment (Qt::AlignTop | Qt::AlignLeft);
260
- body->setStyleSheet (" font-size: 80px; font-weight: 300; margin-right: 100px;" );
261
- main_layout->addWidget (body);
262
-
263
- main_layout->addStretch ();
264
-
265
- // reboot + start over buttons
266
- QHBoxLayout *blayout = new QHBoxLayout ();
267
- blayout->setSpacing (50 );
268
- main_layout->addLayout (blayout, 0 );
269
-
270
- QPushButton *reboot = new QPushButton (tr (" Reboot device" ));
271
- reboot ->setObjectName (" navBtn" );
272
- blayout->addWidget (reboot );
273
- QObject::connect (reboot , &QPushButton::clicked, this , [=]() {
274
- Hardware::reboot ();
275
- });
276
-
277
- QPushButton *restart = new QPushButton (tr (" Start over" ));
278
- restart->setObjectName (" navBtn" );
279
- restart->setProperty (" primary" , true );
280
- blayout->addWidget (restart);
281
- QObject::connect (restart, &QPushButton::clicked, this , [=]() {
282
- setCurrentIndex (1 );
283
- });
284
-
285
- widget->setStyleSheet (R"(
286
- QLabel {
287
- margin-left: 117;
288
- }
289
- )" );
290
- return widget;
291
- }
292
-
293
- QWidget * Setup::download_invalid_url (QLabel *url) {
294
- QWidget *widget = new QWidget ();
295
- QVBoxLayout *main_layout = new QVBoxLayout (widget);
296
- main_layout->setContentsMargins (55 , 225 , 55 , 55 );
297
- main_layout->setSpacing (0 );
298
-
299
- QLabel *title = new QLabel (tr (" Invalid Custom Software URL" ));
300
- title->setStyleSheet (" font-size: 90px; font-weight: 500;" );
301
- main_layout->addWidget (title, 0 , Qt::AlignTop | Qt::AlignLeft);
302
-
303
- main_layout->addSpacing (67 );
304
-
305
257
url->setWordWrap (true );
306
258
url->setAlignment (Qt::AlignTop | Qt::AlignLeft);
307
- url->setStyleSheet (" font-family: \" JetBrains Mono\" ; font-size: 64px ; font-weight: 400; margin-right: 100px;" );
259
+ url->setStyleSheet (" font-family: \" JetBrains Mono\" ; font-size: 56px ; font-weight: 400; margin-right: 100px;" );
308
260
main_layout->addWidget (url);
309
261
310
- main_layout->addSpacing (60 );
262
+ main_layout->addSpacing (48 );
311
263
312
- QLabel *body = new QLabel (tr (" No custom software found at this URL." ));
313
264
body->setWordWrap (true );
314
265
body->setAlignment (Qt::AlignTop | Qt::AlignLeft);
315
266
body->setStyleSheet (" font-size: 80px; font-weight: 300; margin-right: 100px;" );
@@ -339,7 +290,7 @@ QWidget * Setup::download_invalid_url(QLabel *url) {
339
290
340
291
widget->setStyleSheet (R"(
341
292
QLabel {
342
- margin-left: 117px ;
293
+ margin-left: 117 ;
343
294
}
344
295
)" );
345
296
return widget;
@@ -367,28 +318,20 @@ Setup::Setup(QWidget *parent) : QStackedWidget(parent) {
367
318
downloading_widget = downloading ();
368
319
addWidget (downloading_widget);
369
320
370
- failed_widget = download_failed ();
321
+ QLabel *url_label = new QLabel ();
322
+ QLabel *body_label = new QLabel ();
323
+ failed_widget = download_failed (url_label, body_label);
371
324
addWidget (failed_widget);
372
325
373
- QLabel *url_label = new QLabel ();
374
- invalid_url_widget = download_invalid_url (url_label);
375
- addWidget (invalid_url_widget);
376
-
377
- QObject::connect (this , &Setup::finished, [=](const DownloadResult &result, const QString &url) {
378
- qDebug () << " finished" << result << url;
379
- switch (result) {
380
- case DownloadResult::ok:
381
- // hide setup on success
382
- QTimer::singleShot (3000 , this , &QWidget::hide);
383
- break ;
384
- case DownloadResult::notExecutable:
385
- url_label->setText (url);
386
- setCurrentWidget (invalid_url_widget);
387
- break ;
388
- case DownloadResult::error:
389
- default :
390
- setCurrentWidget (failed_widget);
391
- break ;
326
+ QObject::connect (this , &Setup::finished, [=](const QString &url, const QString &error) {
327
+ qDebug () << " finished" << url << error;
328
+ if (error.isEmpty ()) {
329
+ // hide setup on success
330
+ QTimer::singleShot (3000 , this , &QWidget::hide);
331
+ } else {
332
+ url_label->setText (url);
333
+ body_label->setText (error);
334
+ setCurrentWidget (failed_widget);
392
335
}
393
336
});
394
337
0 commit comments