1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
/*
* 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 <QTimer>
#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")));
}
|