summaryrefslogtreecommitdiffstats
path: root/api/logic/minecraft/SkinUpload.h
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic/minecraft/SkinUpload.h')
-rw-r--r--api/logic/minecraft/SkinUpload.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/api/logic/minecraft/SkinUpload.h b/api/logic/minecraft/SkinUpload.h
new file mode 100644
index 00000000..86944b82
--- /dev/null
+++ b/api/logic/minecraft/SkinUpload.h
@@ -0,0 +1,40 @@
+#pragma once
+
+#include <QFile>
+#include <QtNetwork/QtNetwork>
+#include <memory>
+#include <minecraft/auth/AuthSession.h>
+#include "tasks/Task.h"
+#include "multimc_logic_export.h"
+
+typedef std::shared_ptr<class SkinUpload> SkinUploadPtr;
+
+class MULTIMC_LOGIC_EXPORT SkinUpload : public Task\
+{
+Q_OBJECT
+public:
+ enum Model
+ {
+ STEVE,
+ ALEX
+ };
+
+ // Note this class takes ownership of the file.
+ SkinUpload(QObject *parent, AuthSessionPtr session, QByteArray skin, Model model = STEVE);
+
+ virtual ~SkinUpload() {}
+
+private:
+ Model m_model;
+ QByteArray m_skin;
+ AuthSessionPtr m_session;
+ std::shared_ptr<QNetworkReply> m_reply;
+protected:
+ virtual void executeTask();
+
+public slots:
+
+ void downloadError(QNetworkReply::NetworkError);
+
+ void downloadFinished();
+};