/* * This file is part of smolbote. It's copyrighted by the contributors recorded * in the version control history of the file, available from its original * location: https://neueland.iserlohn-fortress.net/smolbote.hg * * SPDX-License-Identifier: GPL-3.0 */ #include "loadingbar.h" #include #include "webengine/webview.h" LoadingBar::LoadingBar(QWidget *parent) : QProgressBar(parent) { setMaximum(100); } void LoadingBar::connectWebView(WebView *view) { Q_CHECK_PTR(view); disconnect(loadStartedConnection); disconnect(loadProgressConnection); disconnect(loadedConnection); disconnect(loadFinishedConnection); if(view->isLoaded()) { this->hide(); } else { loadStarted(); setValue(view->loadProgress()); } loadStartedConnection = connect(view, &QWebEngineView::loadStarted, this, &LoadingBar::loadStarted); loadProgressConnection = connect(view, &QWebEngineView::loadProgress, this, &QProgressBar::setValue); loadedConnection = connect(view, &WebView::loaded, this, [this]() { QTimer::singleShot(2000, this, &LoadingBar::hide); }); loadFinishedConnection = connect(view, &QWebEngineView::loadFinished, this, &LoadingBar::loadFinished); } void LoadingBar::loadStarted() { resetFormat(); show(); setValue(0); } void LoadingBar::loadFinished(bool ok) { setFormat(QString("%p% %1").arg(ok ? tr("Finished") : tr("Failed"))); }