diff options
author | Petr Mrázek <peterix@gmail.com> | 2021-07-25 19:11:59 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2021-07-25 19:50:44 +0200 |
commit | 20b9f2b42a3b58b6081af271774fbcc34025dccb (patch) | |
tree | 064fa59facb3357139b47bd4e60bfc8edb35ca11 /application/widgets/ProgressWidget.cpp | |
parent | dd133680858351e3e07690e286882327a4f42ba5 (diff) | |
download | PrismLauncher-20b9f2b42a3b58b6081af271774fbcc34025dccb.tar.gz PrismLauncher-20b9f2b42a3b58b6081af271774fbcc34025dccb.tar.bz2 PrismLauncher-20b9f2b42a3b58b6081af271774fbcc34025dccb.zip |
NOISSUE Flatten gui and logic libraries into MultiMC
Diffstat (limited to 'application/widgets/ProgressWidget.cpp')
-rw-r--r-- | application/widgets/ProgressWidget.cpp | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/application/widgets/ProgressWidget.cpp b/application/widgets/ProgressWidget.cpp deleted file mode 100644 index 911e555d..00000000 --- a/application/widgets/ProgressWidget.cpp +++ /dev/null @@ -1,73 +0,0 @@ -// Licensed under the Apache-2.0 license. See README.md for details. - -#include "ProgressWidget.h" -#include <QProgressBar> -#include <QLabel> -#include <QVBoxLayout> -#include <QEventLoop> - -#include "tasks/Task.h" - -ProgressWidget::ProgressWidget(QWidget *parent) - : QWidget(parent) -{ - m_label = new QLabel(this); - m_label->setWordWrap(true); - m_bar = new QProgressBar(this); - m_bar->setMinimum(0); - m_bar->setMaximum(100); - QVBoxLayout *layout = new QVBoxLayout(this); - layout->addWidget(m_label); - layout->addWidget(m_bar); - layout->addStretch(); - setLayout(layout); -} - -void ProgressWidget::start(std::shared_ptr<Task> task) -{ - if (m_task) - { - disconnect(m_task.get(), 0, this, 0); - } - m_task = task; - connect(m_task.get(), &Task::finished, this, &ProgressWidget::handleTaskFinish); - connect(m_task.get(), &Task::status, this, &ProgressWidget::handleTaskStatus); - connect(m_task.get(), &Task::progress, this, &ProgressWidget::handleTaskProgress); - connect(m_task.get(), &Task::destroyed, this, &ProgressWidget::taskDestroyed); - if (!m_task->isRunning()) - { - QMetaObject::invokeMethod(m_task.get(), "start", Qt::QueuedConnection); - } -} -bool ProgressWidget::exec(std::shared_ptr<Task> task) -{ - QEventLoop loop; - connect(task.get(), &Task::finished, &loop, &QEventLoop::quit); - start(task); - if (task->isRunning()) - { - loop.exec(); - } - return task->wasSuccessful(); -} - -void ProgressWidget::handleTaskFinish() -{ - if (!m_task->wasSuccessful()) - { - m_label->setText(m_task->failReason()); - } -} -void ProgressWidget::handleTaskStatus(const QString &status) -{ - m_label->setText(status); -} -void ProgressWidget::handleTaskProgress(qint64 current, qint64 total) -{ - m_bar->setMaximum(total); - m_bar->setValue(current); -} -void ProgressWidget::taskDestroyed() -{ - m_task = nullptr; -} |