mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-04-27 07:48:01 -07:00
60 lines
1.9 KiB
C++
60 lines
1.9 KiB
C++
#include <QtGui>
|
|
#include "window_main.h"
|
|
#include "oracleimporter.h"
|
|
|
|
WindowMain::WindowMain(QWidget *parent)
|
|
: QMainWindow(parent)
|
|
{
|
|
importer = new OracleImporter("../oracle", this);
|
|
|
|
totalLabel = new QLabel(tr("Total progress:"));
|
|
totalProgressBar = new QProgressBar;
|
|
nextSetLabel1 = new QLabel(tr("Current file:"));
|
|
nextSetLabel2 = new QLabel;
|
|
fileLabel = new QLabel(tr("Progress:"));
|
|
fileProgressBar = new QProgressBar;
|
|
|
|
messageLog = new QTextEdit;
|
|
messageLog->setReadOnly(true);
|
|
|
|
QGridLayout *grid = new QGridLayout;
|
|
grid->addWidget(totalLabel, 0, 0);
|
|
grid->addWidget(totalProgressBar, 0, 1);
|
|
grid->addWidget(nextSetLabel1, 1, 0);
|
|
grid->addWidget(nextSetLabel2, 1, 1);
|
|
grid->addWidget(fileLabel, 2, 0);
|
|
grid->addWidget(fileProgressBar, 2, 1);
|
|
grid->addWidget(messageLog, 3, 0, 1, 2);
|
|
|
|
QWidget *centralWidget = new QWidget;
|
|
centralWidget->setLayout(grid);
|
|
setCentralWidget(centralWidget);
|
|
|
|
connect(importer, SIGNAL(setIndexChanged(int, int, const QString &)), this, SLOT(updateTotalProgress(int, int, const QString &)));
|
|
connect(importer, SIGNAL(dataReadProgress(int, int)), this, SLOT(updateFileProgress(int, int)));
|
|
totalProgressBar->setMaximum(importer->getSetsCount());
|
|
|
|
setWindowTitle(tr("Oracle importer"));
|
|
setFixedSize(300, 300);
|
|
|
|
importer->downloadNextFile();
|
|
}
|
|
|
|
void WindowMain::updateTotalProgress(int cardsImported, int setIndex, const QString &nextSetName)
|
|
{
|
|
if (setIndex != 0)
|
|
messageLog->append(QString("%1: %2 cards imported").arg(nextSetLabel2->text()).arg(cardsImported));
|
|
totalProgressBar->setValue(setIndex);
|
|
if (nextSetName.isEmpty()) {
|
|
QMessageBox::information(this, tr("Oracle importer"), tr("Import finished: %1 cards.").arg(importer->getCardList().size()));
|
|
qApp->quit();
|
|
} else {
|
|
nextSetLabel2->setText(nextSetName);
|
|
}
|
|
}
|
|
|
|
void WindowMain::updateFileProgress(int bytesRead, int totalBytes)
|
|
{
|
|
fileProgressBar->setMaximum(totalBytes);
|
|
fileProgressBar->setValue(bytesRead);
|
|
}
|