diff options
Diffstat (limited to 'api/logic/minecraft/PackProfile.h')
-rw-r--r-- | api/logic/minecraft/PackProfile.h | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/api/logic/minecraft/PackProfile.h b/api/logic/minecraft/PackProfile.h deleted file mode 100644 index e55e6a58..00000000 --- a/api/logic/minecraft/PackProfile.h +++ /dev/null @@ -1,152 +0,0 @@ -/* Copyright 2013-2021 MultiMC Contributors - * - * 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 - -#include <QAbstractListModel> - -#include <QString> -#include <QList> -#include <memory> - -#include "Library.h" -#include "LaunchProfile.h" -#include "Component.h" -#include "ProfileUtils.h" -#include "BaseVersion.h" -#include "MojangDownloadInfo.h" -#include "multimc_logic_export.h" -#include "net/Mode.h" - -class MinecraftInstance; -struct PackProfileData; -class ComponentUpdateTask; - -class MULTIMC_LOGIC_EXPORT PackProfile : public QAbstractListModel -{ - Q_OBJECT - friend ComponentUpdateTask; -public: - enum Columns - { - NameColumn = 0, - VersionColumn, - NUM_COLUMNS - }; - - explicit PackProfile(MinecraftInstance * instance); - virtual ~PackProfile(); - - virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; - virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; - virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const override; - virtual int rowCount(const QModelIndex &parent = QModelIndex()) const override; - virtual int columnCount(const QModelIndex &parent) const override; - virtual Qt::ItemFlags flags(const QModelIndex &index) const override; - - /// call this to explicitly mark the component list as loaded - this is used to build a new component list from scratch. - void buildingFromScratch(); - - /// install more jar mods - void installJarMods(QStringList selectedFiles); - - /// install a jar/zip as a replacement for the main jar - void installCustomJar(QString selectedFile); - - enum MoveDirection { MoveUp, MoveDown }; - /// move component file # up or down the list - void move(const int index, const MoveDirection direction); - - /// remove component file # - including files/records - bool remove(const int index); - - /// remove component file by id - including files/records - bool remove(const QString id); - - bool customize(int index); - - bool revertToBase(int index); - - /// reload the list, reload all components, resolve dependencies - void reload(Net::Mode netmode); - - // reload all components, resolve dependencies - void resolve(Net::Mode netmode); - - /// get current running task... - shared_qobject_ptr<Task> getCurrentTask(); - - std::shared_ptr<LaunchProfile> getProfile() const; - - // NOTE: used ONLY by MinecraftInstance to provide legacy version mappings from instance config - void setOldConfigVersion(const QString &uid, const QString &version); - - QString getComponentVersion(const QString &uid) const; - - bool setComponentVersion(const QString &uid, const QString &version, bool important = false); - - bool installEmpty(const QString &uid, const QString &name); - - QString patchFilePathForUid(const QString &uid) const; - - /// if there is a save scheduled, do it now. - void saveNow(); - -signals: - void minecraftChanged(); - -public: - /// get the profile component by id - Component * getComponent(const QString &id); - - /// get the profile component by index - Component * getComponent(int index); - - /// Add the component to the internal list of patches - // todo(merged): is this the best approach - void appendComponent(ComponentPtr component); - -private: - void scheduleSave(); - bool saveIsScheduled() const; - - /// apply the component patches. Catches all the errors and returns true/false for success/failure - void invalidateLaunchProfile(); - - /// insert component so that its index is ideally the specified one (returns real index) - void insertComponent(size_t index, ComponentPtr component); - - QString componentsFilePath() const; - QString patchesPattern() const; - -private slots: - void save_internal(); - void updateSucceeded(); - void updateFailed(const QString & error); - void componentDataChanged(); - void disableInteraction(bool disable); - -private: - bool load(); - bool installJarMods_internal(QStringList filepaths); - bool installCustomJar_internal(QString filepath); - bool removeComponent_internal(ComponentPtr patch); - - bool migratePreComponentConfig(); - -private: /* data */ - - std::unique_ptr<PackProfileData> d; -}; |