mirror of https://github.com/mgba-emu/mgba.git
Qt: Add forwarder building from a specific base file
This commit is contained in:
parent
8770200874
commit
c4384d1d1e
|
@ -65,7 +65,11 @@ void ForwarderController::startBuild(const QString& outFilename) {
|
|||
return;
|
||||
}
|
||||
}
|
||||
downloadManifest();
|
||||
if (m_baseFilename.isEmpty()) {
|
||||
downloadManifest();
|
||||
} else {
|
||||
m_generator->rebuild(m_baseFilename, m_outFilename);
|
||||
}
|
||||
}
|
||||
|
||||
void ForwarderController::downloadForwarderKit() {
|
||||
|
@ -201,7 +205,9 @@ void ForwarderController::gotBuild(QNetworkReply* reply) {
|
|||
}
|
||||
|
||||
void ForwarderController::cleanup() {
|
||||
m_sourceFile.remove();
|
||||
if (m_sourceFile.exists()) {
|
||||
m_sourceFile.remove();
|
||||
}
|
||||
m_inProgress = false;
|
||||
|
||||
#if defined(Q_OS_WIN) || defined(Q_OS_MAC)
|
||||
|
|
|
@ -30,6 +30,10 @@ public:
|
|||
void setGenerator(std::unique_ptr<ForwarderGenerator>&& generator);
|
||||
ForwarderGenerator* generator() { return m_generator.get(); }
|
||||
|
||||
void setBaseFilename(const QString& path) { m_baseFilename = path; }
|
||||
void clearBaseFilename() { m_baseFilename = QString(); }
|
||||
QString baseFilename() const { return m_baseFilename; }
|
||||
|
||||
QString channel() const { return m_channel; }
|
||||
bool inProgress() const { return m_inProgress; }
|
||||
|
||||
|
@ -62,6 +66,7 @@ private:
|
|||
QString m_outFilename;
|
||||
std::unique_ptr<ForwarderGenerator> m_generator;
|
||||
QFile m_sourceFile;
|
||||
QString m_baseFilename;
|
||||
bool m_inProgress = false;
|
||||
QByteArray m_originalPath;
|
||||
};
|
||||
|
|
|
@ -94,6 +94,11 @@ void ForwarderView::build() {
|
|||
}
|
||||
m_controller.generator()->setTitle(m_ui.title->text());
|
||||
m_controller.generator()->setRom(m_ui.romFilename->text());
|
||||
if (m_ui.baseType->currentIndex() == 2) {
|
||||
m_controller.setBaseFilename(m_ui.baseFilename->text());
|
||||
} else {
|
||||
m_controller.clearBaseFilename();
|
||||
}
|
||||
m_controller.startBuild(m_ui.outputFilename->text());
|
||||
m_ui.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
|
||||
m_ui.progressBar->setEnabled(true);
|
||||
|
@ -120,9 +125,21 @@ void ForwarderView::validate() {
|
|||
if (!m_ui.system->checkedButton()) {
|
||||
valid = false;
|
||||
}
|
||||
if (m_ui.baseType->currentIndex() != 1) {
|
||||
if (m_ui.baseType->currentIndex() < 1) {
|
||||
valid = false;
|
||||
}
|
||||
if (m_ui.baseType->currentIndex() == 2) {
|
||||
m_ui.baseFilename->setEnabled(true);
|
||||
m_ui.baseLabel->setEnabled(true);
|
||||
m_ui.baseBrowse->setEnabled(true);
|
||||
if (m_ui.baseFilename->text().isEmpty()) {
|
||||
valid = false;
|
||||
}
|
||||
} else {
|
||||
m_ui.baseFilename->setEnabled(true);
|
||||
m_ui.baseLabel->setEnabled(true);
|
||||
m_ui.baseBrowse->setEnabled(true);
|
||||
}
|
||||
if (m_controller.inProgress()) {
|
||||
valid = false;
|
||||
}
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<widget class="QLabel" name="baseLabel">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
|
|
Loading…
Reference in New Issue