diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index 3b63779c2..bb150d278 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -22,8 +22,12 @@ ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Linux") SET(SIMULATOR_NAME "simulator") ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux") -OPTION(DEBUG_IMPORT "Turns on debug output for EEPROM import") # Disabled by default +OPTION(ALLOW_NIGHTLY_BUILDS "Allow nightly builds download / update") # Disabled by default +IF(ALLOW_NIGHTLY_BUILDS) + ADD_DEFINITIONS(-DALLOW_NIGHTLY_BUILDS) +ENDIF(ALLOW_NIGHTLY_BUILDS) +OPTION(DEBUG_IMPORT "Turn on debug output for EEPROM import") # Disabled by default IF(DEBUG_IMPORT) ADD_DEFINITIONS( -DDEBUG_MODEL_IMPORT) MESSAGE( STATUS "EEPROM import debugging enabled" ) diff --git a/companion/src/apppreferencesdialog.cpp b/companion/src/apppreferencesdialog.cpp index 84616e7f4..0b0ff1b63 100644 --- a/companion/src/apppreferencesdialog.cpp +++ b/companion/src/apppreferencesdialog.cpp @@ -109,9 +109,14 @@ void AppPreferencesDialog::initSettings() ui->snapshotPath->setDisabled(true); ui->snapshotPathButton->setDisabled(true); } +#if defined(ALLOW_NIGHTLY_BUILDS) ui->useCompanionNightlyBuilds->setChecked(g.useCompanionNightlyBuilds()); - ui->autoCheckCompanion->setChecked(g.autoCheckApp()); ui->useFirmwareNightlyBuilds->setChecked(g.useFirmwareNightlyBuilds()); +#else + ui->useCompanionNightlyBuilds->hide(); + ui->useFirmwareNightlyBuilds->hide(); +#endif + ui->autoCheckCompanion->setChecked(g.autoCheckApp()); ui->autoCheckFirmware->setChecked(g.autoCheckFw()); ui->showSplash->setChecked(g.showSplash()); ui->historySize->setValue(g.historySize()); diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 99b6136a0..0a3e41450 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -23,6 +23,9 @@ #include "file.h" #include "appdata.h" +#define OPENTX_FIRMWARE_DOWNLOADS "http://downloads-21.open-tx.org/firmware" +#define OPENTX_NIGHT_FIRMWARE_DOWNLOADS "http://downloads-21.open-tx.org/nightly/firmware" + #define FILE_TYP_GENERAL 1 #define FILE_TYP_MODEL 2 @@ -1046,9 +1049,18 @@ bool OpenTxEepromInterface::loadBackup(RadioData &radioData, uint8_t *eeprom, in return true; } +QString OpenTxFirmware::getFirmwareBaseUrl() +{ +#if defined(ALLOW_NIGHTLY_BUILDS) + return (g.useFirmwareNightlyBuilds() ? OPENTX_NIGHT_FIRMWARE_DOWNLOADS : OPENTX_FIRMWARE_DOWNLOADS); +#else + return OPENTX_FIRMWARE_DOWNLOADS; +#endif +} + QString OpenTxFirmware::getFirmwareUrl() { - QString url = (g.useFirmwareNightlyBuilds() ? OPENTX_NIGHT_FIRMWARE_DOWNLOADS : OPENTX_FIRMWARE_DOWNLOADS); + QString url = getFirmwareBaseUrl(); switch (board) { case BOARD_STOCK: case BOARD_M128: @@ -1072,14 +1084,14 @@ QString OpenTxFirmware::getFirmwareUrl() QString OpenTxFirmware::getReleaseNotesUrl() { - QString url = (g.useFirmwareNightlyBuilds() ? OPENTX_NIGHT_FIRMWARE_DOWNLOADS : OPENTX_FIRMWARE_DOWNLOADS); + QString url = getFirmwareBaseUrl(); url.append("/releasenotes.txt"); return url; } QString OpenTxFirmware::getStampUrl() { - QString url = (g.useFirmwareNightlyBuilds() ? OPENTX_NIGHT_FIRMWARE_DOWNLOADS : OPENTX_FIRMWARE_DOWNLOADS); + QString url = getFirmwareBaseUrl(); url.append("/stamp-opentx.txt"); return url; } diff --git a/companion/src/firmwares/opentx/opentxinterface.h b/companion/src/firmwares/opentx/opentxinterface.h index e43d7cbcb..8938eadb9 100644 --- a/companion/src/firmwares/opentx/opentxinterface.h +++ b/companion/src/firmwares/opentx/opentxinterface.h @@ -19,9 +19,6 @@ #include "eeprominterface.h" -#define OPENTX_FIRMWARE_DOWNLOADS "http://downloads-21.open-tx.org/firmware" -#define OPENTX_NIGHT_FIRMWARE_DOWNLOADS "http://downloads-21.open-tx.org/nightly/firmware" - class RleFile; class OpenTxEepromInterface : public EEPROMInterface @@ -126,6 +123,10 @@ class OpenTxFirmware: public Firmware { virtual bool isTelemetrySourceAvailable(int source); + protected: + + QString getFirmwareBaseUrl(); + }; void registerOpenTxFirmwares(); diff --git a/companion/src/mainwindow.cpp b/companion/src/mainwindow.cpp index edeeefbb8..5dcd49d68 100644 --- a/companion/src/mainwindow.cpp +++ b/companion/src/mainwindow.cpp @@ -216,6 +216,15 @@ void MainWindow::dowloadLastFirmwareUpdate() checkForUpdates(); } +QString MainWindow::getCompanionUpdateBaseUrl() +{ +#if defined(ALLOW_NIGHTLY_BUILDS) + return g.useCompanionNightlyBuilds() ? OPENTX_NIGHT_COMPANION_DOWNLOADS : OPENTX_COMPANION_DOWNLOADS; +#else + return OPENTX_COMPANION_DOWNLOADS; +#endif +} + void MainWindow::checkForUpdates() { if (checkForUpdatesState & SHOW_DIALOG_WAIT) { @@ -229,7 +238,7 @@ void MainWindow::checkForUpdates() // TODO why create each time a network manager? networkManager = new QNetworkAccessManager(this); connect(networkManager, SIGNAL(finished(QNetworkReply*)),this, SLOT(checkForCompanionUpdateFinished(QNetworkReply*))); - QNetworkRequest request(QUrl(QString("%1/%2").arg(g.useCompanionNightlyBuilds() ? OPENTX_NIGHT_COMPANION_DOWNLOADS : OPENTX_COMPANION_DOWNLOADS).arg(COMPANION_STAMP))); + QNetworkRequest request(QUrl(QString("%1/%2").arg(getCompanionUpdateBaseUrl()).arg(COMPANION_STAMP))); request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork); networkManager->get(request); } @@ -296,7 +305,7 @@ void MainWindow::checkForCompanionUpdateFinished(QNetworkReply * reply) #endif if (!fileName.isEmpty()) { g.updatesDir(QFileInfo(fileName).dir().absolutePath()); - downloadDialog * dd = new downloadDialog(this, QString("%1/%2").arg(g.useCompanionNightlyBuilds() ? OPENTX_NIGHT_COMPANION_DOWNLOADS : OPENTX_COMPANION_DOWNLOADS).arg(QString(COMPANION_INSTALLER).arg(version)), fileName); + downloadDialog * dd = new downloadDialog(this, QString("%1/%2").arg(getCompanionUpdateBaseUrl()).arg(QString(COMPANION_INSTALLER).arg(version)), fileName); installer_fileName = fileName; connect(dd, SIGNAL(accepted()), this, SLOT(updateDownloaded())); dd->exec(); diff --git a/companion/src/mainwindow.h b/companion/src/mainwindow.h index abd6bfdcf..759375bc0 100644 --- a/companion/src/mainwindow.h +++ b/companion/src/mainwindow.h @@ -76,6 +76,7 @@ class MainWindow : public QMainWindow MainWindow(); protected: + QString getCompanionUpdateBaseUrl(); void dowloadLastFirmwareUpdate(); void startFirmwareDownload(); void closeEvent(QCloseEvent *event);