]> git.sur5r.net Git - minitube/blobdiff - src/aboutview.cpp
Upload 3.9.3-2 to unstable
[minitube] / src / aboutview.cpp
index 8820f2df0a26dc262ccf43f90d67d364567dd467..e60c173bdac0a082181e3055230d9ebb9b6a4ee2 100644 (file)
@@ -36,6 +36,11 @@ $END_LICENSE */
 #include "iconutils.h"
 #include "mainwindow.h"
 
+#ifdef UPDATER
+#include "updater.h"
+#include "waitingspinnerwidget.h"
+#endif
+
 AboutView::AboutView(QWidget *parent) : View(parent) {
     const int padding = 30;
     const char *buildYear = __DATE__ + 7;
@@ -67,6 +72,7 @@ AboutView::AboutView(QWidget *parent) : View(parent) {
     QBoxLayout *layout = new QVBoxLayout();
     layout->setAlignment(Qt::AlignCenter);
     layout->setSpacing(padding);
+    layout->setMargin(padding / 2);
     aboutlayout->addLayout(layout);
 
     QColor lightTextColor = palette().text().color();
@@ -146,8 +152,42 @@ AboutView::AboutView(QWidget *parent) : View(parent) {
     infoLabel->setWordWrap(true);
     layout->addWidget(infoLabel);
 
+#ifdef UPDATER
+    int capHeight = fontMetrics().capHeight();
+
+    QBoxLayout *updateLayout = new QHBoxLayout();
+    updateLayout->setMargin(0);
+    updateLayout->setSpacing(capHeight);
+    updateLayout->setAlignment(Qt::AlignLeft);
+
+    auto spinner = new WaitingSpinnerWidget(this, false, false);
+    spinner->setColor(palette().windowText().color());
+    spinner->setLineLength(capHeight / 2);
+    spinner->setNumberOfLines(spinner->lineLength() * 2);
+    spinner->setInnerRadius(spinner->lineLength());
+    auto spinnerStartStop = [spinner](auto status) {
+        if (status == Updater::Status::DownloadingUpdate)
+            spinner->start();
+        else
+            spinner->stop();
+    };
+    connect(&Updater::instance(), &Updater::statusChanged, this, spinnerStartStop);
+    updateLayout->addWidget(spinner);
+    spinnerStartStop(Updater::instance().getStatus());
+
+    updateLayout->addWidget(Updater::instance().getLabel());
+
+    layout->addLayout(updateLayout);
+#endif
+
     QLayout *buttonLayout = new QHBoxLayout();
+    buttonLayout->setMargin(0);
     buttonLayout->setAlignment(Qt::AlignLeft);
+
+#ifdef UPDATER
+    buttonLayout->addWidget(Updater::instance().getButton());
+#endif
+
     closeButton = new QPushButton(tr("&Close"), this);
     closeButton->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
     closeButton->setDefault(true);
@@ -158,9 +198,14 @@ AboutView::AboutView(QWidget *parent) : View(parent) {
 
     layout->addLayout(buttonLayout);
 
+#ifndef APP_WIN_STORE
     verticalLayout->addWidget(new AppsWidget());
+#endif
 }
 
 void AboutView::appear() {
     closeButton->setFocus();
+#ifdef UPDATER
+    Updater::instance().checkWithoutUI();
+#endif
 }