aboutsummaryrefslogtreecommitdiff
path: root/launcher/tasks
diff options
context:
space:
mode:
authorSefa Eyeoglu <contact@scrumplex.net>2022-05-21 12:06:34 +0200
committerGitHub <noreply@github.com>2022-05-21 12:06:34 +0200
commitb4707f46ad0e2381c4dc9477abf3229ebc4cad49 (patch)
treee5d69dd4f862b12e3c0d5291f38fae1a024c35f6 /launcher/tasks
parent482e049ac7eb4d77c5c7a655b28820a2a643785d (diff)
parentff9f3cb31ff75c2d657146cf8fe646084439fd0f (diff)
downloadPrismLauncher-b4707f46ad0e2381c4dc9477abf3229ebc4cad49.tar.gz
PrismLauncher-b4707f46ad0e2381c4dc9477abf3229ebc4cad49.tar.bz2
PrismLauncher-b4707f46ad0e2381c4dc9477abf3229ebc4cad49.zip
Merge pull request #500 from flowln/net_refactor
Refactor a little the code in `launcher/net/` files
Diffstat (limited to 'launcher/tasks')
-rw-r--r--launcher/tasks/Task.cpp42
-rw-r--r--launcher/tasks/Task.h55
2 files changed, 68 insertions, 29 deletions
diff --git a/launcher/tasks/Task.cpp b/launcher/tasks/Task.cpp
index 57307b43..bb71b98c 100644
--- a/launcher/tasks/Task.cpp
+++ b/launcher/tasks/Task.cpp
@@ -1,16 +1,36 @@
-/* Copyright 2013-2021 MultiMC Contributors
+// SPDX-License-Identifier: GPL-3.0-only
+/*
+ * PolyMC - Minecraft Launcher
+ * Copyright (c) 2022 flowln <flowlnlnln@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
+ * 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 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.
*/
#include "Task.h"
@@ -99,7 +119,7 @@ void Task::emitAborted()
m_state = State::AbortedByUser;
m_failReason = "Aborted.";
qDebug() << "Task" << describe() << "aborted.";
- emit failed(m_failReason);
+ emit aborted();
emit finished();
}
diff --git a/launcher/tasks/Task.h b/launcher/tasks/Task.h
index 344a024e..f7765c3d 100644
--- a/launcher/tasks/Task.h
+++ b/launcher/tasks/Task.h
@@ -1,24 +1,40 @@
-/* Copyright 2013-2021 MultiMC Contributors
+// SPDX-License-Identifier: GPL-3.0-only
+/*
+ * PolyMC - Minecraft Launcher
+ * Copyright (c) 2022 flowln <flowlnlnln@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
+ * 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 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 <QObject>
-#include <QString>
-#include <QStringList>
-
#include "QObjectPtr.h"
class Task : public QObject {
@@ -52,6 +68,8 @@ class Task : public QObject {
virtual bool canAbort() const { return false; }
+ auto getState() const -> State { return m_state; }
+
QString getStatus() { return m_status; }
virtual auto getStepStatus() const -> QString { return m_status; }
@@ -68,15 +86,16 @@ class Task : public QObject {
signals:
void started();
- virtual void progress(qint64 current, qint64 total);
+ void progress(qint64 current, qint64 total);
void finished();
void succeeded();
+ void aborted();
void failed(QString reason);
void status(QString status);
public slots:
virtual void start();
- virtual bool abort() { return false; };
+ virtual bool abort() { if(canAbort()) emitAborted(); return canAbort(); };
protected:
virtual void executeTask() = 0;
@@ -84,13 +103,13 @@ class Task : public QObject {
protected slots:
virtual void emitSucceeded();
virtual void emitAborted();
- virtual void emitFailed(QString reason);
+ virtual void emitFailed(QString reason = "");
public slots:
void setStatus(const QString& status);
void setProgress(qint64 current, qint64 total);
- private:
+ protected:
State m_state = State::Inactive;
QStringList m_Warnings;
QString m_failReason = "";