blob: 2c12371ebd225449da4b3e6ab5e30ffd2c0d354f (
plain)
| 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
 | /*
 * 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(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);
    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")));
    QTimer::singleShot(2000, this, SLOT(hide()));
}
 |