MainWindow::MainWindow(mbp::PatcherConfig *pc, QWidget *parent) : QWidget(parent), d_ptr(new MainWindowPrivate()) { Q_D(MainWindow); setWindowIcon(QIcon(QStringLiteral(":/icons/icon.png"))); setWindowTitle(qApp->applicationName()); // If we're passed an argument, switch to automatic mode if (qApp->arguments().size() > 2) { d->autoMode = true; d->fileName = qApp->arguments().at(1); } else { d->autoMode = false; d->fileName.clear(); } d->pc = pc; addWidgets(); setWidgetActions(); populateDevices(); populateInstallationLocations(); updateWidgetsVisibility(); QString lastDeviceId = d->settings.value( QStringLiteral("last_device"), QString()).toString(); for (size_t i = 0; i < d->devices.size(); ++i) { if (strcmp(mb_device_id(d->devices[i].get()), lastDeviceId.toUtf8().data()) == 0) { d->deviceSel->setCurrentIndex(i); break; } } // Create thread d->thread = new QThread(this); d->task = new PatcherTask(); d->task->moveToThread(d->thread); connect(d->thread, &QThread::finished, d->task, &QObject::deleteLater); connect(this, &MainWindow::runThread, d->task, &PatcherTask::patch); connect(d->task, &PatcherTask::finished, this, &MainWindow::onPatchingFinished); connect(d->task, &PatcherTask::progressUpdated, this, &MainWindow::onProgressUpdated); connect(d->task, &PatcherTask::filesUpdated, this, &MainWindow::onFilesUpdated); connect(d->task, &PatcherTask::detailsUpdated, this, &MainWindow::onDetailsUpdated); d->thread->start(); }
MainWindow::MainWindow(mbp::PatcherConfig *pc, QWidget *parent) : QWidget(parent), d_ptr(new MainWindowPrivate()) { Q_D(MainWindow); setWindowIcon(QIcon(QStringLiteral(":/icons/icon.png"))); setWindowTitle(qApp->applicationName()); // If we're passed an argument, switch to automatic mode if (qApp->arguments().size() > 2) { d->autoMode = true; d->fileName = qApp->arguments().at(1); } else { d->autoMode = false; d->fileName.clear(); } d->pc = pc; d->patcher = pc->createPatcher("MultiBootPatcher"); addWidgets(); setWidgetActions(); populateWidgets(); setWidgetDefaults(); refreshInstallationLocations(); updateWidgetsVisibility(); // Create thread d->thread = new QThread(this); d->task = new PatcherTask(); d->task->moveToThread(d->thread); connect(d->thread, &QThread::finished, d->task, &QObject::deleteLater); connect(this, &MainWindow::runThread, d->task, &PatcherTask::patch); connect(d->task, &PatcherTask::finished, this, &MainWindow::onPatchingFinished); connect(d->task, &PatcherTask::progressUpdated, this, &MainWindow::onProgressUpdated); connect(d->task, &PatcherTask::filesUpdated, this, &MainWindow::onFilesUpdated); connect(d->task, &PatcherTask::detailsUpdated, this, &MainWindow::onDetailsUpdated); d->thread->start(); }