ATLauncher: Display install messages if applicable
This commit is contained in:
		@@ -95,14 +95,13 @@ void PackInstallTask::onDownloadSucceeded()
 | 
			
		||||
    qDebug() << "PackInstallTask::onDownloadSucceeded: " << QThread::currentThreadId();
 | 
			
		||||
    jobPtr.reset();
 | 
			
		||||
 | 
			
		||||
    QJsonParseError parse_error;
 | 
			
		||||
    QJsonParseError parse_error {};
 | 
			
		||||
    QJsonDocument doc = QJsonDocument::fromJson(response, &parse_error);
 | 
			
		||||
    if(parse_error.error != QJsonParseError::NoError) {
 | 
			
		||||
        qWarning() << "Error while parsing JSON response from FTB at " << parse_error.offset << " reason: " << parse_error.errorString();
 | 
			
		||||
        qWarning() << response;
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    auto obj = doc.object();
 | 
			
		||||
 | 
			
		||||
    ATLauncher::PackVersion version;
 | 
			
		||||
@@ -117,6 +116,10 @@ void PackInstallTask::onDownloadSucceeded()
 | 
			
		||||
    }
 | 
			
		||||
    m_version = version;
 | 
			
		||||
 | 
			
		||||
    // Display install message if one exists
 | 
			
		||||
    if (!m_version.messages.install.isEmpty())
 | 
			
		||||
        m_support->displayMessage(m_version.messages.install);
 | 
			
		||||
 | 
			
		||||
    auto ver = getComponentVersion("net.minecraft", m_version.minecraft);
 | 
			
		||||
    if (!ver) {
 | 
			
		||||
        emitFailed(tr("Failed to get local metadata index for '%1' v%2").arg("net.minecraft", m_version.minecraft));
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +1,37 @@
 | 
			
		||||
// SPDX-License-Identifier: GPL-3.0-only
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2020-2021 Jamie Mansfield <jmansfield@cadixdev.org>
 | 
			
		||||
 * Copyright 2021 Petr Mrazek <peterix@gmail.com>
 | 
			
		||||
 *  PolyMC - Minecraft Launcher
 | 
			
		||||
 *  Copyright (c) 2022 Jamie Mansfield <jmansfield@cadixdev.org>
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *  This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation, version 3.
 | 
			
		||||
 *
 | 
			
		||||
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 *
 | 
			
		||||
 * This file incorporates work covered by the following copyright and
 | 
			
		||||
 * permission notice:
 | 
			
		||||
 *
 | 
			
		||||
 *      Copyright 2020-2021 Jamie Mansfield <jmansfield@cadixdev.org>
 | 
			
		||||
 *      Copyright 2021 Petr Mrazek <peterix@gmail.com>
 | 
			
		||||
 *
 | 
			
		||||
 *      Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 *      you may not use this file except in compliance with the License.
 | 
			
		||||
 *      You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *          http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 *      Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 *      distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 *      See the License for the specific language governing permissions and
 | 
			
		||||
 *      limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
@@ -45,6 +64,10 @@ public:
 | 
			
		||||
     */
 | 
			
		||||
    virtual QString chooseVersion(Meta::VersionListPtr vlist, QString minecraftVersion) = 0;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Requests a user interaction to display a message.
 | 
			
		||||
     */
 | 
			
		||||
    virtual void displayMessage(QString message) = 0;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class PackInstallTask : public InstanceTask
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +1,37 @@
 | 
			
		||||
// SPDX-License-Identifier: GPL-3.0-only
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2020-2021 Jamie Mansfield <jmansfield@cadixdev.org>
 | 
			
		||||
 * Copyright 2021 Petr Mrazek <peterix@gmail.com>
 | 
			
		||||
 *  PolyMC - Minecraft Launcher
 | 
			
		||||
 *  Copyright (c) 2022 Jamie Mansfield <jmansfield@cadixdev.org>
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *  This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation, version 3.
 | 
			
		||||
 *
 | 
			
		||||
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 *
 | 
			
		||||
 * This file incorporates work covered by the following copyright and
 | 
			
		||||
 * permission notice:
 | 
			
		||||
 *
 | 
			
		||||
 *      Copyright 2020-2021 Jamie Mansfield <jmansfield@cadixdev.org>
 | 
			
		||||
 *      Copyright 2021 Petr Mrazek <peterix@gmail.com>
 | 
			
		||||
 *
 | 
			
		||||
 *      Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 *      you may not use this file except in compliance with the License.
 | 
			
		||||
 *      You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *          http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 *      Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 *      distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 *      See the License for the specific language governing permissions and
 | 
			
		||||
 *      limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "ATLPackManifest.h"
 | 
			
		||||
@@ -186,6 +205,12 @@ static void loadVersionMod(ATLauncher::VersionMod & p, QJsonObject & obj) {
 | 
			
		||||
    p.effectively_hidden = p.hidden || p.library;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void loadVersionMessages(ATLauncher::VersionMessages& m, QJsonObject& obj)
 | 
			
		||||
{
 | 
			
		||||
    m.install = Json::ensureString(obj, "install", "");
 | 
			
		||||
    m.update = Json::ensureString(obj, "update", "");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ATLauncher::loadVersion(PackVersion & v, QJsonObject & obj)
 | 
			
		||||
{
 | 
			
		||||
    v.version = Json::requireString(obj, "version");
 | 
			
		||||
@@ -238,4 +263,7 @@ void ATLauncher::loadVersion(PackVersion & v, QJsonObject & obj)
 | 
			
		||||
    for (const auto &key : colourObj.keys()) {
 | 
			
		||||
        v.colours[key] = Json::requireString(colourObj.value(key), "colour");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    auto messages = Json::ensureObject(obj, "messages");
 | 
			
		||||
    loadVersionMessages(v.messages, messages);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,17 +1,36 @@
 | 
			
		||||
// SPDX-License-Identifier: GPL-3.0-only
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2020 Jamie Mansfield <jmansfield@cadixdev.org>
 | 
			
		||||
 *  PolyMC - Minecraft Launcher
 | 
			
		||||
 *  Copyright (c) 2022 Jamie Mansfield <jmansfield@cadixdev.org>
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *  This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation, version 3.
 | 
			
		||||
 *
 | 
			
		||||
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 *
 | 
			
		||||
 * This file incorporates work covered by the following copyright and
 | 
			
		||||
 * permission notice:
 | 
			
		||||
 *
 | 
			
		||||
 *      Copyright 2020 Jamie Mansfield <jmansfield@cadixdev.org>
 | 
			
		||||
 *
 | 
			
		||||
 *      Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 *      you may not use this file except in compliance with the License.
 | 
			
		||||
 *      You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *          http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 *      Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 *      distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 *      See the License for the specific language governing permissions and
 | 
			
		||||
 *      limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
@@ -124,6 +143,12 @@ struct VersionConfigs
 | 
			
		||||
    QString sha1;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct VersionMessages
 | 
			
		||||
{
 | 
			
		||||
    QString install;
 | 
			
		||||
    QString update;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct PackVersion
 | 
			
		||||
{
 | 
			
		||||
    QString version;
 | 
			
		||||
@@ -138,6 +163,7 @@ struct PackVersion
 | 
			
		||||
    VersionConfigs configs;
 | 
			
		||||
 | 
			
		||||
    QMap<QString, QString> colours;
 | 
			
		||||
    VersionMessages messages;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void loadVersion(PackVersion & v, QJsonObject & obj);
 | 
			
		||||
 
 | 
			
		||||
@@ -45,8 +45,12 @@
 | 
			
		||||
 | 
			
		||||
#include <BuildConfig.h>
 | 
			
		||||
 | 
			
		||||
AtlPage::AtlPage(NewInstanceDialog* dialog, QWidget *parent)
 | 
			
		||||
        : QWidget(parent), ui(new Ui::AtlPage), dialog(dialog)
 | 
			
		||||
#include <QMessageBox>
 | 
			
		||||
 | 
			
		||||
AtlPage::AtlPage(NewInstanceDialog* dialog, QWidget* parent)
 | 
			
		||||
    : QWidget(parent)
 | 
			
		||||
    , ui(new Ui::AtlPage)
 | 
			
		||||
    , dialog(dialog)
 | 
			
		||||
{
 | 
			
		||||
    ui->setupUi(this);
 | 
			
		||||
 | 
			
		||||
@@ -211,3 +215,8 @@ QString AtlPage::chooseVersion(Meta::VersionListPtr vlist, QString minecraftVers
 | 
			
		||||
    vselect.exec();
 | 
			
		||||
    return vselect.selectedVersion()->descriptor();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AtlPage::displayMessage(QString message)
 | 
			
		||||
{
 | 
			
		||||
    QMessageBox::information(this, tr("Installing"), message);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -85,6 +85,7 @@ private:
 | 
			
		||||
 | 
			
		||||
    QString chooseVersion(Meta::VersionListPtr vlist, QString minecraftVersion) override;
 | 
			
		||||
    QVector<QString> chooseOptionalMods(ATLauncher::PackVersion version, QVector<ATLauncher::VersionMod> mods) override;
 | 
			
		||||
    void displayMessage(QString message) override;
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
    void triggerSearch();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user