aboutsummaryrefslogtreecommitdiff
path: root/launcher/InstanceList.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/InstanceList.cpp')
-rw-r--r--launcher/InstanceList.cpp141
1 files changed, 71 insertions, 70 deletions
diff --git a/launcher/InstanceList.cpp b/launcher/InstanceList.cpp
index 0485db19..856eee81 100644
--- a/launcher/InstanceList.cpp
+++ b/launcher/InstanceList.cpp
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
- * PolyMC - Minecraft Launcher
+ * Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@@ -41,9 +41,9 @@
#include <QJsonArray>
#include <QJsonDocument>
#include <QMimeData>
+#include <QPair>
#include <QSet>
#include <QStack>
-#include <QPair>
#include <QTextStream>
#include <QThread>
#include <QTimer>
@@ -96,7 +96,11 @@ Qt::DropActions InstanceList::supportedDropActions() const
return Qt::MoveAction;
}
-bool InstanceList::canDropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) const
+bool InstanceList::canDropMimeData(const QMimeData* data,
+ [[maybe_unused]] Qt::DropAction action,
+ [[maybe_unused]] int row,
+ [[maybe_unused]] int column,
+ [[maybe_unused]] const QModelIndex& parent) const
{
if (data && data->hasFormat("application/x-instanceid")) {
return true;
@@ -104,7 +108,11 @@ bool InstanceList::canDropMimeData(const QMimeData* data, Qt::DropAction action,
return false;
}
-bool InstanceList::dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent)
+bool InstanceList::dropMimeData(const QMimeData* data,
+ [[maybe_unused]] Qt::DropAction action,
+ [[maybe_unused]] int row,
+ [[maybe_unused]] int column,
+ [[maybe_unused]] const QModelIndex& parent)
{
if (data && data->hasFormat("application/x-instanceid")) {
return true;
@@ -129,7 +137,7 @@ QMimeData* InstanceList::mimeData(const QModelIndexList& indexes) const
return mimeData;
}
-QStringList InstanceList::getLinkedInstancesById(const QString &id) const
+QStringList InstanceList::getLinkedInstancesById(const QString& id) const
{
QStringList linkedInstances;
for (auto inst : m_instances) {
@@ -158,42 +166,34 @@ QVariant InstanceList::data(const QModelIndex& index, int role) const
if (!index.isValid()) {
return QVariant();
}
- BaseInstance *pdata = static_cast<BaseInstance *>(index.internalPointer());
- switch (role)
- {
- case InstancePointerRole:
- {
- QVariant v = QVariant::fromValue((void *)pdata);
- return v;
- }
- case InstanceIDRole:
- {
- return pdata->id();
- }
- case Qt::EditRole:
- case Qt::DisplayRole:
- {
- return pdata->name();
- }
- case Qt::AccessibleTextRole:
- {
- return tr("%1 Instance").arg(pdata->name());
- }
- case Qt::ToolTipRole:
- {
- return pdata->instanceRoot();
- }
- case Qt::DecorationRole:
- {
- return pdata->iconKey();
- }
- // HACK: see InstanceView.h in gui!
- case GroupRole:
- {
- return getInstanceGroup(pdata->id());
- }
- default:
- break;
+ BaseInstance* pdata = static_cast<BaseInstance*>(index.internalPointer());
+ switch (role) {
+ case InstancePointerRole: {
+ QVariant v = QVariant::fromValue((void*)pdata);
+ return v;
+ }
+ case InstanceIDRole: {
+ return pdata->id();
+ }
+ case Qt::EditRole:
+ case Qt::DisplayRole: {
+ return pdata->name();
+ }
+ case Qt::AccessibleTextRole: {
+ return tr("%1 Instance").arg(pdata->name());
+ }
+ case Qt::ToolTipRole: {
+ return pdata->instanceRoot();
+ }
+ case Qt::DecorationRole: {
+ return pdata->iconKey();
+ }
+ // HACK: see InstanceView.h in gui!
+ case GroupRole: {
+ return getInstanceGroup(pdata->id());
+ }
+ default:
+ break;
}
return QVariant();
}
@@ -320,16 +320,18 @@ bool InstanceList::trashInstance(const InstanceId& id)
}
qDebug() << "Instance" << id << "has been trashed by the launcher.";
- m_trashHistory.push({id, inst->instanceRoot(), trashedLoc, cachedGroupId});
-
+ m_trashHistory.push({ id, inst->instanceRoot(), trashedLoc, cachedGroupId });
+
return true;
}
-bool InstanceList::trashedSomething() {
+bool InstanceList::trashedSomething()
+{
return !m_trashHistory.empty();
}
-void InstanceList::undoTrashInstance() {
+void InstanceList::undoTrashInstance()
+{
if (m_trashHistory.empty()) {
qWarning() << "Nothing to recover from trash.";
return;
@@ -558,7 +560,7 @@ InstancePtr InstanceList::getInstanceByManagedName(const QString& managed_name)
return {};
}
-QModelIndex InstanceList::getInstanceIndexById(const QString &id) const
+QModelIndex InstanceList::getInstanceIndexById(const QString& id) const
{
return index(getInstIndex(getInstanceById(id).get()));
}
@@ -597,13 +599,11 @@ InstancePtr InstanceList::loadInstance(const InstanceId& id)
QString inst_type = instanceSettings->get("InstanceType").toString();
- // NOTE: Some PolyMC versions didn't save the InstanceType properly. We will just bank on the probability that this is probably a OneSix instance
- if (inst_type == "OneSix" || inst_type.isEmpty())
- {
+ // NOTE: Some PolyMC versions didn't save the InstanceType properly. We will just bank on the probability that this is probably a OneSix
+ // instance
+ if (inst_type == "OneSix" || inst_type.isEmpty()) {
inst.reset(new MinecraftInstance(m_globalSettings, instanceSettings, instanceRoot));
- }
- else
- {
+ } else {
inst.reset(new NullInstance(m_globalSettings, instanceSettings, instanceRoot));
}
qDebug() << "Loaded instance " << inst->name() << " from " << inst->instanceRoot();
@@ -759,7 +759,7 @@ void InstanceList::instanceDirContentsChanged(const QString& path)
emit instancesChanged();
}
-void InstanceList::on_InstFolderChanged(const Setting& setting, QVariant value)
+void InstanceList::on_InstFolderChanged([[maybe_unused]] const Setting& setting, QVariant value)
{
QString newInstDir = QDir(value.toString()).canonicalPath();
if (newInstDir != m_instDir) {
@@ -787,12 +787,17 @@ class InstanceStaging : public Task {
Q_OBJECT
const unsigned minBackoff = 1;
const unsigned maxBackoff = 16;
+
public:
InstanceStaging(InstanceList* parent, InstanceTask* child, QString stagingPath, InstanceName const& instanceName, QString groupName)
- : m_parent(parent), backoff(minBackoff, maxBackoff), m_stagingPath(std::move(stagingPath)), m_instance_name(std::move(instanceName)), m_groupName(std::move(groupName))
+ : m_parent(parent)
+ , backoff(minBackoff, maxBackoff)
+ , m_stagingPath(std::move(stagingPath))
+ , m_instance_name(std::move(instanceName))
+ , m_groupName(std::move(groupName))
{
m_child.reset(child);
- connect(child, &Task::succeeded, this, &InstanceStaging::childSucceded);
+ connect(child, &Task::succeeded, this, &InstanceStaging::childSucceeded);
connect(child, &Task::failed, this, &InstanceStaging::childFailed);
connect(child, &Task::aborted, this, &InstanceStaging::childAborted);
connect(child, &Task::abortStatusChanged, this, &InstanceStaging::setAbortable);
@@ -800,7 +805,7 @@ class InstanceStaging : public Task {
connect(child, &Task::details, this, &InstanceStaging::setDetails);
connect(child, &Task::progress, this, &InstanceStaging::setProgress);
connect(child, &Task::stepProgress, this, &InstanceStaging::propagateStepProgress);
- connect(&m_backoffTimer, &QTimer::timeout, this, &InstanceStaging::childSucceded);
+ connect(&m_backoffTimer, &QTimer::timeout, this, &InstanceStaging::childSucceeded);
}
virtual ~InstanceStaging(){};
@@ -815,21 +820,17 @@ class InstanceStaging : public Task {
return Task::abort();
}
- bool canAbort() const override
- {
- return (m_child && m_child->canAbort());
- }
+ bool canAbort() const override { return (m_child && m_child->canAbort()); }
protected:
virtual void executeTask() override { m_child->start(); }
QStringList warnings() const override { return m_child->warnings(); }
private slots:
- void childSucceded()
+ void childSucceeded()
{
unsigned sleepTime = backoff();
- if (m_parent->commitStagedInstance(m_stagingPath, m_instance_name, m_groupName, *m_child.get()))
- {
+ if (m_parent->commitStagedInstance(m_stagingPath, m_instance_name, m_groupName, *m_child.get())) {
emitSucceeded();
return;
}
@@ -847,13 +848,10 @@ class InstanceStaging : public Task {
emitFailed(reason);
}
- void childAborted()
- {
- emitAborted();
- }
+ void childAborted() { emitAborted(); }
-private:
- InstanceList * m_parent;
+ private:
+ InstanceList* m_parent;
/*
* WHY: the whole reason why this uses an exponential backoff retry scheme is antivirus on Windows.
* Basically, it starts messing things up while the launcher is extracting/creating instances
@@ -892,7 +890,10 @@ QString InstanceList::getStagedInstancePath()
return path;
}
-bool InstanceList::commitStagedInstance(const QString& path, InstanceName const& instanceName, const QString& groupName, InstanceTask const& commiting)
+bool InstanceList::commitStagedInstance(const QString& path,
+ InstanceName const& instanceName,
+ const QString& groupName,
+ InstanceTask const& commiting)
{
QDir dir;
QString instID;