Version changing removes any existing version json.
This commit is contained in:
parent
eaf0cbeafc
commit
73f8bc5c92
@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>527</width>
|
<width>527</width>
|
||||||
<height>68</height>
|
<height>113</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -28,12 +28,6 @@
|
|||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_ModText">
|
<widget class="QLabel" name="label_ModText">
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Select a mod to view title and authors...</string>
|
<string>Select a mod to view title and authors...</string>
|
||||||
</property>
|
</property>
|
||||||
@ -53,12 +47,6 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_ModDescription">
|
<widget class="QLabel" name="label_ModDescription">
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Select a mod to view description...</string>
|
<string>Select a mod to view description...</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -606,6 +606,15 @@ void MainWindow::on_actionChangeInstMCVersion_triggered()
|
|||||||
vselect.setFilter(1, "OneSix");
|
vselect.setFilter(1, "OneSix");
|
||||||
if (vselect.exec() && vselect.selectedVersion())
|
if (vselect.exec() && vselect.selectedVersion())
|
||||||
{
|
{
|
||||||
|
if (m_selectedInstance->versionIsCustom())
|
||||||
|
{
|
||||||
|
auto result = QMessageBox::warning(
|
||||||
|
this, tr("Are you sure?"),
|
||||||
|
tr("This will remove any library/version customization you did previously. "
|
||||||
|
"This includes things like Forge install and similar."), QMessageBox::Ok, QMessageBox::Abort);
|
||||||
|
if(result != QMessageBox::Ok)
|
||||||
|
return;
|
||||||
|
}
|
||||||
m_selectedInstance->setIntendedVersionId(vselect.selectedVersion()->descriptor());
|
m_selectedInstance->setIntendedVersionId(vselect.selectedVersion()->descriptor());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,15 +44,19 @@ class BaseInstance : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
protected:
|
protected:
|
||||||
/// no-touchy!
|
/// no-touchy!
|
||||||
BaseInstance(BaseInstancePrivate * d, const QString &rootDir, SettingsObject * settings, QObject *parent = 0);
|
BaseInstance(BaseInstancePrivate *d, const QString &rootDir, SettingsObject *settings,
|
||||||
|
QObject *parent = 0);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/// virtual destructor to make sure the destruction is COMPLETE
|
/// virtual destructor to make sure the destruction is COMPLETE
|
||||||
virtual ~BaseInstance() {};
|
virtual ~BaseInstance() {};
|
||||||
|
|
||||||
/// nuke thoroughly - deletes the instance contents, notifies the list/model which is responsible of cleaning up the husk
|
/// nuke thoroughly - deletes the instance contents, notifies the list/model which is
|
||||||
|
/// responsible of cleaning up the husk
|
||||||
void nuke();
|
void nuke();
|
||||||
|
|
||||||
/// The instance's ID. The ID SHALL be determined by MMC internally. The ID IS guaranteed to be unique.
|
/// The instance's ID. The ID SHALL be determined by MMC internally. The ID IS guaranteed to
|
||||||
|
/// be unique.
|
||||||
QString id() const;
|
QString id() const;
|
||||||
|
|
||||||
/// get the type of this instance
|
/// get the type of this instance
|
||||||
@ -77,10 +81,11 @@ public:
|
|||||||
void setGroupInitial(QString val);
|
void setGroupInitial(QString val);
|
||||||
void setGroupPost(QString val);
|
void setGroupPost(QString val);
|
||||||
|
|
||||||
|
|
||||||
virtual QString intendedVersionId() const = 0;
|
virtual QString intendedVersionId() const = 0;
|
||||||
virtual bool setIntendedVersionId(QString version) = 0;
|
virtual bool setIntendedVersionId(QString version) = 0;
|
||||||
|
|
||||||
|
virtual bool versionIsCustom() = 0;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* The instance's current version.
|
* The instance's current version.
|
||||||
* This value represents the instance's current version. If this value is
|
* This value represents the instance's current version. If this value is
|
||||||
@ -96,7 +101,8 @@ public:
|
|||||||
virtual bool shouldUpdate() const = 0;
|
virtual bool shouldUpdate() const = 0;
|
||||||
virtual void setShouldUpdate(bool val) = 0;
|
virtual void setShouldUpdate(bool val) = 0;
|
||||||
|
|
||||||
/// Get the curent base jar of this instance. By default, it's the versions/$version/$version.jar
|
/// Get the curent base jar of this instance. By default, it's the
|
||||||
|
/// versions/$version/$version.jar
|
||||||
QString baseJar() const;
|
QString baseJar() const;
|
||||||
|
|
||||||
/// the default base jar of this instance
|
/// the default base jar of this instance
|
||||||
@ -150,7 +156,8 @@ public:
|
|||||||
/// returns a valid minecraft process, ready for launch
|
/// returns a valid minecraft process, ready for launch
|
||||||
virtual MinecraftProcess *prepareForLaunch(LoginResponse response) = 0;
|
virtual MinecraftProcess *prepareForLaunch(LoginResponse response) = 0;
|
||||||
|
|
||||||
/// do any necessary cleanups after the instance finishes. also runs before 'prepareForLaunch'
|
/// do any necessary cleanups after the instance finishes. also runs before
|
||||||
|
/// 'prepareForLaunch'
|
||||||
virtual void cleanupAfterRun() = 0;
|
virtual void cleanupAfterRun() = 0;
|
||||||
|
|
||||||
/// create a mod edit dialog for the instance
|
/// create a mod edit dialog for the instance
|
||||||
@ -184,4 +191,3 @@ protected:
|
|||||||
|
|
||||||
// pointer for lazy people
|
// pointer for lazy people
|
||||||
typedef std::shared_ptr<BaseInstance> InstancePtr;
|
typedef std::shared_ptr<BaseInstance> InstancePtr;
|
||||||
|
|
||||||
|
@ -10,7 +10,8 @@ class LegacyInstance : public BaseInstance
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
|
||||||
explicit LegacyInstance(const QString &rootDir, SettingsObject * settings, QObject *parent = 0);
|
explicit LegacyInstance(const QString &rootDir, SettingsObject *settings,
|
||||||
|
QObject *parent = 0);
|
||||||
|
|
||||||
/// Path to the instance's minecraft.jar
|
/// Path to the instance's minecraft.jar
|
||||||
QString runnableJar() const;
|
QString runnableJar() const;
|
||||||
@ -52,6 +53,12 @@ public:
|
|||||||
|
|
||||||
virtual QString intendedVersionId() const;
|
virtual QString intendedVersionId() const;
|
||||||
virtual bool setIntendedVersionId(QString version);
|
virtual bool setIntendedVersionId(QString version);
|
||||||
|
// the `version' of Legacy instances is defined by the launcher code.
|
||||||
|
// in contrast with OneSix, where `version' is described in a json file
|
||||||
|
virtual bool versionIsCustom() override
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
virtual bool shouldUpdate() const;
|
virtual bool shouldUpdate() const;
|
||||||
virtual void setShouldUpdate(bool val);
|
virtual void setShouldUpdate(bool val);
|
||||||
@ -67,6 +74,7 @@ public:
|
|||||||
bool menuActionEnabled(QString action_name) const;
|
bool menuActionEnabled(QString action_name) const;
|
||||||
virtual QString getStatusbarDescription();
|
virtual QString getStatusbarDescription();
|
||||||
|
|
||||||
protected slots:
|
protected
|
||||||
|
slots:
|
||||||
virtual void jarModsChanged();
|
virtual void jarModsChanged();
|
||||||
};
|
};
|
@ -57,7 +57,7 @@ void LegacyUpdate::lwjglStart()
|
|||||||
auto worker = MMC->qnam();
|
auto worker = MMC->qnam();
|
||||||
QNetworkRequest req(realUrl);
|
QNetworkRequest req(realUrl);
|
||||||
req.setRawHeader("Host", hostname.toLatin1());
|
req.setRawHeader("Host", hostname.toLatin1());
|
||||||
req.setHeader(QNetworkRequest::UserAgentHeader, "Wget/1.14 (linux-gnu)");
|
req.setHeader(QNetworkRequest::UserAgentHeader, "MultiMC/5.0 (Cached)");
|
||||||
QNetworkReply *rep = worker->get(req);
|
QNetworkReply *rep = worker->get(req);
|
||||||
|
|
||||||
m_reply = std::shared_ptr<QNetworkReply>(rep);
|
m_reply = std::shared_ptr<QNetworkReply>(rep);
|
||||||
@ -100,7 +100,7 @@ void LegacyUpdate::lwjglFinished(QNetworkReply *reply)
|
|||||||
QString hostname = realUrl.host();
|
QString hostname = realUrl.host();
|
||||||
QNetworkRequest req(redirectedTo);
|
QNetworkRequest req(redirectedTo);
|
||||||
req.setRawHeader("Host", hostname.toLatin1());
|
req.setRawHeader("Host", hostname.toLatin1());
|
||||||
req.setHeader(QNetworkRequest::UserAgentHeader, "Wget/1.14 (linux-gnu)");
|
req.setHeader(QNetworkRequest::UserAgentHeader, "MultiMC/5.0 (Cached)");
|
||||||
QNetworkReply *rep = worker->get(req);
|
QNetworkReply *rep = worker->get(req);
|
||||||
connect(rep, SIGNAL(downloadProgress(qint64, qint64)),
|
connect(rep, SIGNAL(downloadProgress(qint64, qint64)),
|
||||||
SIGNAL(progress(qint64, qint64)));
|
SIGNAL(progress(qint64, qint64)));
|
||||||
|
@ -192,6 +192,11 @@ bool OneSixInstance::setIntendedVersionId(QString version)
|
|||||||
{
|
{
|
||||||
settings().set("IntendedVersion", version);
|
settings().set("IntendedVersion", version);
|
||||||
setShouldUpdate(true);
|
setShouldUpdate(true);
|
||||||
|
auto pathCustom = PathCombine(instanceRoot(), "custom.json");
|
||||||
|
auto pathOrig = PathCombine(instanceRoot(), "version.json");
|
||||||
|
QFile::remove(pathCustom);
|
||||||
|
QFile::remove(pathOrig);
|
||||||
|
reloadFullVersion();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -271,8 +276,12 @@ bool OneSixInstance::reloadFullVersion()
|
|||||||
d->version = version;
|
d->version = version;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
d->version.reset();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::shared_ptr<OneSixVersion> OneSixInstance::getFullVersion()
|
std::shared_ptr<OneSixVersion> OneSixInstance::getFullVersion()
|
||||||
{
|
{
|
||||||
|
@ -10,8 +10,8 @@ class OneSixInstance : public BaseInstance
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit OneSixInstance(const QString &rootDir, SettingsObject * settings, QObject *parent = 0);
|
explicit OneSixInstance(const QString &rootDir, SettingsObject *settings,
|
||||||
|
QObject *parent = 0);
|
||||||
|
|
||||||
////// Mod Lists //////
|
////// Mod Lists //////
|
||||||
std::shared_ptr<ModList> loaderModList();
|
std::shared_ptr<ModList> loaderModList();
|
||||||
@ -46,13 +46,14 @@ public:
|
|||||||
/// customize the current base version
|
/// customize the current base version
|
||||||
bool customizeVersion();
|
bool customizeVersion();
|
||||||
/// is the current version original, or custom?
|
/// is the current version original, or custom?
|
||||||
bool versionIsCustom();
|
virtual bool versionIsCustom() override;
|
||||||
|
|
||||||
virtual QString defaultBaseJar() const;
|
virtual QString defaultBaseJar() const;
|
||||||
virtual QString defaultCustomBaseJar() const;
|
virtual QString defaultCustomBaseJar() const;
|
||||||
|
|
||||||
virtual bool menuActionEnabled(QString action_name) const;
|
virtual bool menuActionEnabled(QString action_name) const;
|
||||||
virtual QString getStatusbarDescription();
|
virtual QString getStatusbarDescription();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QStringList processMinecraftArgs(LoginResponse response);
|
QStringList processMinecraftArgs(LoginResponse response);
|
||||||
};
|
};
|
Loading…
Reference in New Issue
Block a user