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
|
#include "frontend/bookshelfmanager/installpage/btrefreshprogressdialog.h"
#include <QApplication>
#include "backend/btinstallbackend.h"
#include "util/dialogutil.h"
BtRefreshProgressDialog::BtRefreshProgressDialog(sword::InstallSource &source,
QWidget *parent,
Qt::WindowFlags flags)
: QProgressDialog(parent, flags)
, m_source(source)
{
Q_ASSERT(BtInstallBackend::isRemote(source));
setWindowTitle(tr("Refreshing source %1").arg(QString(source.caption)));
setCancelButtonText(tr("&Cancel"));
setLabelText(tr("Connecting..."));
Q_ASSERT(minimum() == 0);
setMaximum(100);
setValue(0);
setWindowModality(Qt::ApplicationModal);
setMinimumDuration(1000);
connect(this, SIGNAL(canceled()),
this, SLOT(slotCanceled()));
connect(&m_installMgr, SIGNAL(percentCompleted(int,int)),
this, SLOT(slotPercentCompleted(int,int)));
}
void BtRefreshProgressDialog::slotPercentCompleted(int, int current) {
setValue(current);
qApp->processEvents();
}
void BtRefreshProgressDialog::slotCanceled() {
m_installMgr.terminate();
}
bool BtRefreshProgressDialog::runAndDelete() {
show();
qApp->processEvents();
bool r = (m_installMgr.refreshRemoteSource(&m_source) == 0);
if (r) {
setValue(100);
qApp->processEvents();
} else {
util::showWarning(this, tr("Warning"),
tr("Failed to refresh source %1")
.arg(QString(m_source.caption)));
}
deleteLater();
return r;
}
|