/
dialogloading.cpp
52 lines (43 loc) · 1.17 KB
/
dialogloading.cpp
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
#include "dialogloading.h"
#include "ui_dialogloading.h"
#include <QtDebug>
DialogLoading::DialogLoading(QWidget *parent) :
QDialog(parent),
ui(new Ui::DialogLoading)
{
ui->setupUi(this);
}
DialogLoading::~DialogLoading()
{
delete ui;
}
void DialogLoading::start()
{
ui->progressBar->setMaximum(0);
ui->progressBar->setValue(0);
connect(&workerThread, SIGNAL(loadSucceeded()), this, SLOT(workerDone()));
connect(&workerThread, SIGNAL(readLine(int, QString)), this, SLOT(onLineRead(int,QString)));
connect(&workerThread, SIGNAL(gotFileSize(int)), this, SLOT(onGotFileSize(int)));
connect(&workerThread, SIGNAL(loadFailed()), this, SLOT(onLoadFailed()));
workerThread.start();
}
void DialogLoading::onLoadFailed()
{
emit failed();
close();
}
void DialogLoading::onGotFileSize(int size)
{
ui->progressBar->setMaximum(size);
}
void DialogLoading::onLineRead(int filePos, QString line)
{
m_Lines.push_back(line);
ui->progressBar->setValue(filePos);
ui->label->setText(QString("Reading dictionary entries... (%1 entries read)").arg(m_Lines.size()));
}
void DialogLoading::workerDone()
{
emit succeeded();
close();
}