diff --git a/buildconfig/BuildConfig.cpp.in b/buildconfig/BuildConfig.cpp.in index 9e449aec..8c04dd4d 100644 --- a/buildconfig/BuildConfig.cpp.in +++ b/buildconfig/BuildConfig.cpp.in @@ -57,7 +57,7 @@ QString Config::printableVersionString() const QString vstr = QString("%1.%2.%3").arg(QString::number(VERSION_MAJOR), QString::number(VERSION_MINOR), QString::number(VERSION_HOTFIX)); // If the build is not a main release, append the channel - if(VERSION_CHANNEL != "stable") + if(VERSION_CHANNEL != "develop") { vstr += "-" + VERSION_CHANNEL; } diff --git a/launcher/Application.cpp b/launcher/Application.cpp index 475b05a1..b471f469 100644 --- a/launcher/Application.cpp +++ b/launcher/Application.cpp @@ -627,7 +627,6 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv) { m_settings.reset(new INISettingsObject(BuildConfig.LAUNCHER_CONFIGFILE, this)); // Updates - m_settings->registerSetting("UpdateChannel", BuildConfig.VERSION_CHANNEL); m_settings->registerSetting("AutoUpdate", true); // Theming @@ -812,7 +811,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv) auto platform = getIdealPlatform(BuildConfig.BUILD_PLATFORM); auto channelUrl = BuildConfig.UPDATER_BASE + platform + "/channels.json"; qDebug() << "Initializing updater with platform: " << platform << " -- " << channelUrl; - m_updateChecker.reset(new UpdateChecker(m_network, channelUrl, BuildConfig.VERSION_CHANNEL, BuildConfig.VERSION_BUILD)); + m_updateChecker.reset(new UpdateChecker(m_network, channelUrl, BuildConfig.VERSION_BUILD)); qDebug() << "<> Updater started."; } diff --git a/launcher/notifications/NotificationChecker.cpp b/launcher/notifications/NotificationChecker.cpp index c08bcdcb..d91465c6 100644 --- a/launcher/notifications/NotificationChecker.cpp +++ b/launcher/notifications/NotificationChecker.cpp @@ -10,7 +10,7 @@ #include "Application.h" NotificationChecker::NotificationChecker(QObject *parent) - : QObject(parent) + : QObject(parent), m_appVersionChannel("develop") { } @@ -19,11 +19,6 @@ void NotificationChecker::setNotificationsUrl(const QUrl ¬ificationsUrl) m_notificationsUrl = notificationsUrl; } -void NotificationChecker::setApplicationChannel(QString channel) -{ - m_appVersionChannel = channel; -} - void NotificationChecker::setApplicationFullVersion(QString version) { m_appFullVersion = version; diff --git a/launcher/notifications/NotificationChecker.h b/launcher/notifications/NotificationChecker.h index 0f305f33..4049e55b 100644 --- a/launcher/notifications/NotificationChecker.h +++ b/launcher/notifications/NotificationChecker.h @@ -14,7 +14,6 @@ public: void setNotificationsUrl(const QUrl ¬ificationsUrl); void setApplicationPlatform(QString platform); - void setApplicationChannel(QString channel); void setApplicationFullVersion(QString version); struct NotificationEntry diff --git a/launcher/ui/MainWindow.cpp b/launcher/ui/MainWindow.cpp index a3f31f5f..44cb504b 100644 --- a/launcher/ui/MainWindow.cpp +++ b/launcher/ui/MainWindow.cpp @@ -849,14 +849,13 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow // if automatic update checks are allowed, start one. if (APPLICATION->settings()->get("AutoUpdate").toBool() && updatesAllowed) { - updater->checkForUpdate(APPLICATION->settings()->get("UpdateChannel").toString(), false); + updater->checkForUpdate(false); } } { auto checker = new NotificationChecker(); checker->setNotificationsUrl(QUrl(BuildConfig.NOTIFICATION_URL)); - checker->setApplicationChannel(BuildConfig.VERSION_CHANNEL); checker->setApplicationPlatform(BuildConfig.BUILD_PLATFORM); checker->setApplicationFullVersion(BuildConfig.FULL_VERSION_STR); m_notificationChecker.reset(checker); @@ -1639,7 +1638,7 @@ void MainWindow::checkForUpdates() if(BuildConfig.UPDATER_ENABLED) { auto updater = APPLICATION->updateChecker(); - updater->checkForUpdate(APPLICATION->settings()->get("UpdateChannel").toString(), true); + updater->checkForUpdate(true); } else { diff --git a/launcher/ui/dialogs/UpdateDialog.cpp b/launcher/ui/dialogs/UpdateDialog.cpp index c2189c2b..f949ebe6 100644 --- a/launcher/ui/dialogs/UpdateDialog.cpp +++ b/launcher/ui/dialogs/UpdateDialog.cpp @@ -11,14 +11,13 @@ UpdateDialog::UpdateDialog(bool hasUpdate, QWidget *parent) : QDialog(parent), ui(new Ui::UpdateDialog) { ui->setupUi(this); - auto channel = APPLICATION->settings()->get("UpdateChannel").toString(); if(hasUpdate) { - ui->label->setText(tr("A new %1 update is available!").arg(channel)); + ui->label->setText(tr("A new update is available!")); } else { - ui->label->setText(tr("No %1 updates found. You are running the latest version.").arg(channel)); + ui->label->setText(tr("No updates found. You are running the latest version.")); ui->btnUpdateNow->setHidden(true); ui->btnUpdateLater->setText(tr("Close")); } @@ -33,19 +32,10 @@ UpdateDialog::~UpdateDialog() void UpdateDialog::loadChangelog() { - auto channel = APPLICATION->settings()->get("UpdateChannel").toString(); dljob = new NetJob("Changelog", APPLICATION->network()); QString url; - if(channel == "stable") - { - url = QString("https://raw.githubusercontent.com/MultiMC/Launcher/%1/changelog.md").arg(channel); - m_changelogType = CHANGELOG_MARKDOWN; - } - else - { - url = QString("https://api.github.com/repos/MultiMC/Launcher/compare/%1...%2").arg(BuildConfig.GIT_COMMIT, channel); - m_changelogType = CHANGELOG_COMMITS; - } + url = QString("https://api.github.com/repos/MultiMC/Launcher/compare/%1...develop").arg(BuildConfig.GIT_COMMIT); + m_changelogType = CHANGELOG_COMMITS; dljob->addNetAction(Net::Download::makeByteArray(QUrl(url), &changelogData)); connect(dljob.get(), &NetJob::succeeded, this, &UpdateDialog::changelogLoaded); connect(dljob.get(), &NetJob::failed, this, &UpdateDialog::changelogFailed); @@ -65,7 +55,6 @@ QString reprocessMarkdown(QByteArray markdown) QString reprocessCommits(QByteArray json) { - auto channel = APPLICATION->settings()->get("UpdateChannel").toString(); try { QString result; @@ -119,7 +108,7 @@ QString reprocessCommits(QByteArray json) if(status == "identical") { - return QObject::tr("

There are no code changes between your current version and latest %1.

").arg(channel); + return QObject::tr("

There are no code changes between your current version and the latest.

"); } else if(status == "ahead") { diff --git a/launcher/ui/pages/global/LauncherPage.cpp b/launcher/ui/pages/global/LauncherPage.cpp index 2eb73e44..1f986c19 100644 --- a/launcher/ui/pages/global/LauncherPage.cpp +++ b/launcher/ui/pages/global/LauncherPage.cpp @@ -56,23 +56,12 @@ LauncherPage::LauncherPage(QWidget *parent) : QWidget(parent), ui(new Ui::Launch m_languageModel = APPLICATION->translations(); loadSettings(); - if(BuildConfig.UPDATER_ENABLED) - { - QObject::connect(APPLICATION->updateChecker().get(), &UpdateChecker::channelListLoaded, this, &LauncherPage::refreshUpdateChannelList); - - if (APPLICATION->updateChecker()->hasChannels()) - { - refreshUpdateChannelList(); - } - else - { - APPLICATION->updateChecker()->updateChanList(false); - } - } - else + // Updater + if(!BuildConfig.UPDATER_ENABLED) { ui->updateSettingsBox->setHidden(true); } + // Analytics if(BuildConfig.ANALYTICS_ID.isEmpty()) { @@ -163,78 +152,6 @@ void LauncherPage::on_migrateDataFolderMacBtn_clicked() qApp->quit(); } -void LauncherPage::refreshUpdateChannelList() -{ - // Stop listening for selection changes. It's going to change a lot while we update it and - // we don't need to update the - // description label constantly. - QObject::disconnect(ui->updateChannelComboBox, SIGNAL(currentIndexChanged(int)), this, - SLOT(updateChannelSelectionChanged(int))); - - QList channelList = APPLICATION->updateChecker()->getChannelList(); - ui->updateChannelComboBox->clear(); - int selection = -1; - for (int i = 0; i < channelList.count(); i++) - { - UpdateChecker::ChannelListEntry entry = channelList.at(i); - - // When it comes to selection, we'll rely on the indexes of a channel entry being the - // same in the - // combo box as it is in the update checker's channel list. - // This probably isn't very safe, but the channel list doesn't change often enough (or - // at all) for - // this to be a big deal. Hope it doesn't break... - ui->updateChannelComboBox->addItem(entry.name); - - // If the update channel we just added was the selected one, set the current index in - // the combo box to it. - if (entry.id == m_currentUpdateChannel) - { - qDebug() << "Selected index" << i << "channel id" << m_currentUpdateChannel; - selection = i; - } - } - - ui->updateChannelComboBox->setCurrentIndex(selection); - - // Start listening for selection changes again and update the description label. - QObject::connect(ui->updateChannelComboBox, SIGNAL(currentIndexChanged(int)), this, - SLOT(updateChannelSelectionChanged(int))); - refreshUpdateChannelDesc(); - - // Now that we've updated the channel list, we can enable the combo box. - // It starts off disabled so that if the channel list hasn't been loaded, it will be - // disabled. - ui->updateChannelComboBox->setEnabled(true); -} - -void LauncherPage::updateChannelSelectionChanged(int index) -{ - refreshUpdateChannelDesc(); -} - -void LauncherPage::refreshUpdateChannelDesc() -{ - // Get the channel list. - QList channelList = APPLICATION->updateChecker()->getChannelList(); - int selectedIndex = ui->updateChannelComboBox->currentIndex(); - if (selectedIndex < 0) - { - return; - } - if (selectedIndex < channelList.count()) - { - // Find the channel list entry with the given index. - UpdateChecker::ChannelListEntry selected = channelList.at(selectedIndex); - - // Set the description text. - ui->updateChannelDescLabel->setText(selected.description); - - // Set the currently selected channel ID. - m_currentUpdateChannel = selected.id; - } -} - void LauncherPage::applySettings() { auto s = APPLICATION->settings(); @@ -246,7 +163,6 @@ void LauncherPage::applySettings() // Updates s->set("AutoUpdate", ui->autoUpdateCheckBox->isChecked()); - s->set("UpdateChannel", m_currentUpdateChannel); auto original = s->get("IconTheme").toString(); //FIXME: make generic switch (ui->themeComboBox->currentIndex()) @@ -333,7 +249,6 @@ void LauncherPage::loadSettings() auto s = APPLICATION->settings(); // Updates ui->autoUpdateCheckBox->setChecked(s->get("AutoUpdate").toBool()); - m_currentUpdateChannel = s->get("UpdateChannel").toString(); //FIXME: make generic auto theme = s->get("IconTheme").toString(); if (theme == "pe_dark") diff --git a/launcher/ui/pages/global/LauncherPage.h b/launcher/ui/pages/global/LauncherPage.h index 4d0cf3c9..d5ea2353 100644 --- a/launcher/ui/pages/global/LauncherPage.h +++ b/launcher/ui/pages/global/LauncherPage.h @@ -69,31 +69,14 @@ slots: void on_iconsDirBrowseBtn_clicked(); void on_migrateDataFolderMacBtn_clicked(); - /*! - * Updates the list of update channels in the combo box. - */ - void refreshUpdateChannelList(); - - /*! - * Updates the channel description label. - */ - void refreshUpdateChannelDesc(); - /*! * Updates the font preview */ void refreshFontPreview(); - void updateChannelSelectionChanged(int index); - private: Ui::LauncherPage *ui; - /*! - * Stores the currently selected update channel. - */ - QString m_currentUpdateChannel; - // default format for the font preview... QTextCharFormat *defaultFormat; diff --git a/launcher/ui/pages/global/LauncherPage.ui b/launcher/ui/pages/global/LauncherPage.ui index 62a66d73..d1728fed 100644 --- a/launcher/ui/pages/global/LauncherPage.ui +++ b/launcher/ui/pages/global/LauncherPage.ui @@ -58,33 +58,6 @@ - - - - Up&date Channel: - - - updateChannelComboBox - - - - - - - false - - - - - - - No channel selected. - - - true - - - @@ -555,7 +528,6 @@ tabWidget autoUpdateCheckBox - updateChannelComboBox instDirTextBox instDirBrowseBtn modsDirTextBox diff --git a/launcher/updater/UpdateChecker.cpp b/launcher/updater/UpdateChecker.cpp index efdb6093..c0505908 100644 --- a/launcher/updater/UpdateChecker.cpp +++ b/launcher/updater/UpdateChecker.cpp @@ -26,11 +26,11 @@ #include "BuildConfig.h" #include "sys.h" -UpdateChecker::UpdateChecker(shared_qobject_ptr nam, QString channelUrl, QString currentChannel, int currentBuild) +UpdateChecker::UpdateChecker(shared_qobject_ptr nam, QString channelUrl, int currentBuild) { m_network = nam; m_channelUrl = channelUrl; - m_currentChannel = currentChannel; + m_currentChannel = "develop"; m_currentBuild = currentBuild; } @@ -44,9 +44,10 @@ bool UpdateChecker::hasChannels() const return !m_channels.isEmpty(); } -void UpdateChecker::checkForUpdate(QString updateChannel, bool notifyNoUpdate) +void UpdateChecker::checkForUpdate(bool notifyNoUpdate) { qDebug() << "Checking for updates."; + QString updateChannel = "develop"; // If the channel list hasn't loaded yet, load it and defer checking for updates until // later. @@ -54,7 +55,6 @@ void UpdateChecker::checkForUpdate(QString updateChannel, bool notifyNoUpdate) { qDebug() << "Channel list isn't loaded yet. Loading channel list and deferring update check."; m_checkUpdateWaiting = true; - m_deferredUpdateChannel = updateChannel; updateChanList(notifyNoUpdate); return; } @@ -67,13 +67,13 @@ void UpdateChecker::checkForUpdate(QString updateChannel, bool notifyNoUpdate) // Find the desired channel within the channel list and get its repo URL. If if cannot be // found, error. - QString stableUrl; + QString developUrl; m_newRepoUrl = ""; for (ChannelListEntry entry : m_channels) { qDebug() << "channelEntry = " << entry.id; - if(entry.id == "stable") { - stableUrl = entry.url; + if(entry.id == "develop") { + developUrl = entry.url; } if (entry.id == updateChannel) { m_newRepoUrl = entry.url; @@ -88,8 +88,8 @@ void UpdateChecker::checkForUpdate(QString updateChannel, bool notifyNoUpdate) qDebug() << "m_repoUrl = " << m_newRepoUrl; if (m_newRepoUrl.isEmpty()) { - qWarning() << "m_repoUrl was empty. defaulting to 'stable': " << stableUrl; - m_newRepoUrl = stableUrl; + qWarning() << "m_repoUrl was empty. defaulting to 'develop': " << developUrl; + m_newRepoUrl = developUrl; } // If nothing applies, error @@ -255,7 +255,7 @@ void UpdateChecker::chanListDownloadFinished(bool notifyNoUpdate) // If we're waiting to check for updates, do that now. if (m_checkUpdateWaiting) { - checkForUpdate(m_deferredUpdateChannel, notifyNoUpdate); + checkForUpdate(notifyNoUpdate); } emit channelListLoaded(); diff --git a/launcher/updater/UpdateChecker.h b/launcher/updater/UpdateChecker.h index 13ee4efd..6fe41807 100644 --- a/launcher/updater/UpdateChecker.h +++ b/launcher/updater/UpdateChecker.h @@ -23,8 +23,8 @@ class UpdateChecker : public QObject Q_OBJECT public: - UpdateChecker(shared_qobject_ptr nam, QString channelUrl, QString currentChannel, int currentBuild); - void checkForUpdate(QString updateChannel, bool notifyNoUpdate); + UpdateChecker(shared_qobject_ptr nam, QString channelUrl, int currentBuild); + void checkForUpdate(bool notifyNoUpdate); /*! * Causes the update checker to download the channel list from the URL specified in config.h (generated by CMake). @@ -107,11 +107,6 @@ private: */ bool m_checkUpdateWaiting = false; - /*! - * if m_checkUpdateWaiting, this is the last used update channel - */ - QString m_deferredUpdateChannel; - int m_currentBuild = -1; QString m_currentChannel; QString m_currentRepoUrl; diff --git a/launcher/updater/UpdateChecker_test.cpp b/launcher/updater/UpdateChecker_test.cpp index ec55a40e..845ed993 100644 --- a/launcher/updater/UpdateChecker_test.cpp +++ b/launcher/updater/UpdateChecker_test.cpp @@ -42,38 +42,32 @@ slots: void tst_ChannelListParsing_data() { - QTest::addColumn("channel"); QTest::addColumn("channelUrl"); QTest::addColumn("hasChannels"); QTest::addColumn("valid"); QTest::addColumn >("result"); QTest::newRow("garbage") - << QString() << findTestDataUrl("data/garbageChannels.json") << false << false << QList(); QTest::newRow("errors") - << QString() << findTestDataUrl("data/errorChannels.json") << false << true << QList(); QTest::newRow("no channels") - << QString() << findTestDataUrl("data/noChannels.json") << false << true << QList(); QTest::newRow("one channel") - << QString("develop") << findTestDataUrl("data/oneChannel.json") << true << true << (QList() << UpdateChecker::ChannelListEntry{"develop", "Develop", "The channel called \"develop\"", "http://example.org/stuff"}); QTest::newRow("several channels") - << QString("develop") << findTestDataUrl("data/channels.json") << true << true @@ -84,15 +78,13 @@ slots: } void tst_ChannelListParsing() { - - QFETCH(QString, channel); QFETCH(QString, channelUrl); QFETCH(bool, hasChannels); QFETCH(bool, valid); QFETCH(QList, result); shared_qobject_ptr nam = new QNetworkAccessManager(); - UpdateChecker checker(nam, channelUrl, channel, 0); + UpdateChecker checker(nam, channelUrl, 0); QSignalSpy channelListLoadedSpy(&checker, SIGNAL(channelListLoaded())); QVERIFY(channelListLoadedSpy.isValid()); @@ -116,12 +108,11 @@ slots: void tst_UpdateChecking() { - QString channel = "develop"; QString channelUrl = findTestDataUrl("data/channels.json"); int currentBuild = 2; shared_qobject_ptr nam = new QNetworkAccessManager(); - UpdateChecker checker(nam, channelUrl, channel, currentBuild); + UpdateChecker checker(nam, channelUrl, currentBuild); QSignalSpy updateAvailableSpy(&checker, SIGNAL(updateAvailable(GoUpdate::Status))); QVERIFY(updateAvailableSpy.isValid()); @@ -133,7 +124,7 @@ slots: qDebug() << "CWD:" << QDir::current().absolutePath(); checker.m_channels[0].url = findTestDataUrl("data/"); - checker.checkForUpdate(channel, false); + checker.checkForUpdate(false); QVERIFY(updateAvailableSpy.wait());