Started working on task system and login system.
This commit is contained in:
		@@ -96,11 +96,15 @@ data/instancebase.cpp
 | 
				
			|||||||
data/instancemodel.cpp
 | 
					data/instancemodel.cpp
 | 
				
			||||||
data/stdinstance.cpp
 | 
					data/stdinstance.cpp
 | 
				
			||||||
data/version.cpp
 | 
					data/version.cpp
 | 
				
			||||||
 | 
					data/userinfo.cpp
 | 
				
			||||||
 | 
					data/loginresponse.cpp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
gui/mainwindow.cpp
 | 
					gui/mainwindow.cpp
 | 
				
			||||||
gui/modeditwindow.cpp
 | 
					gui/modeditwindow.cpp
 | 
				
			||||||
gui/settingsdialog.cpp
 | 
					gui/settingsdialog.cpp
 | 
				
			||||||
gui/newinstancedialog.cpp
 | 
					gui/newinstancedialog.cpp
 | 
				
			||||||
 | 
					gui/logindialog.cpp
 | 
				
			||||||
 | 
					gui/taskdialog.cpp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util/pathutils.cpp
 | 
					util/pathutils.cpp
 | 
				
			||||||
util/osutils.cpp
 | 
					util/osutils.cpp
 | 
				
			||||||
@@ -109,6 +113,7 @@ java/javautils.cpp
 | 
				
			|||||||
java/annotations.cpp
 | 
					java/annotations.cpp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tasks/task.cpp
 | 
					tasks/task.cpp
 | 
				
			||||||
 | 
					tasks/logintask.cpp
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SET(MULTIMC_HEADERS
 | 
					SET(MULTIMC_HEADERS
 | 
				
			||||||
@@ -116,6 +121,8 @@ gui/mainwindow.h
 | 
				
			|||||||
gui/modeditwindow.h
 | 
					gui/modeditwindow.h
 | 
				
			||||||
gui/settingsdialog.h
 | 
					gui/settingsdialog.h
 | 
				
			||||||
gui/newinstancedialog.h
 | 
					gui/newinstancedialog.h
 | 
				
			||||||
 | 
					gui/logindialog.h
 | 
				
			||||||
 | 
					gui/taskdialog.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
data/appsettings.h
 | 
					data/appsettings.h
 | 
				
			||||||
data/inifile.h
 | 
					data/inifile.h
 | 
				
			||||||
@@ -123,6 +130,8 @@ data/instancebase.h
 | 
				
			|||||||
data/instancemodel.h
 | 
					data/instancemodel.h
 | 
				
			||||||
data/stdinstance.h
 | 
					data/stdinstance.h
 | 
				
			||||||
data/version.h
 | 
					data/version.h
 | 
				
			||||||
 | 
					data/userinfo.h
 | 
				
			||||||
 | 
					data/loginresponse.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util/apputils.h
 | 
					util/apputils.h
 | 
				
			||||||
util/pathutils.h
 | 
					util/pathutils.h
 | 
				
			||||||
@@ -139,6 +148,7 @@ java/javautils.h
 | 
				
			|||||||
java/membuffer.h
 | 
					java/membuffer.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tasks/task.h
 | 
					tasks/task.h
 | 
				
			||||||
 | 
					tasks/logintask.h
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SET(MULTIMC5_UIS
 | 
					SET(MULTIMC5_UIS
 | 
				
			||||||
@@ -146,6 +156,8 @@ gui/mainwindow.ui
 | 
				
			|||||||
gui/modeditwindow.ui
 | 
					gui/modeditwindow.ui
 | 
				
			||||||
gui/settingsdialog.ui
 | 
					gui/settingsdialog.ui
 | 
				
			||||||
gui/newinstancedialog.ui
 | 
					gui/newinstancedialog.ui
 | 
				
			||||||
 | 
					gui/logindialog.ui
 | 
				
			||||||
 | 
					gui/taskdialog.ui
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
IF(WIN32)
 | 
					IF(WIN32)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										49
									
								
								data/loginresponse.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								data/loginresponse.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
				
			|||||||
 | 
					/* Copyright 2013 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 "loginresponse.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LoginResponse::LoginResponse(const QString& username, const QString& sessionID, QObject *parent) :
 | 
				
			||||||
 | 
						QObject(parent)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						this->username = username;
 | 
				
			||||||
 | 
						this->sessionID = sessionID;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LoginResponse::LoginResponse(const LoginResponse &other)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						this->username = other.username;
 | 
				
			||||||
 | 
						this->sessionID = other.sessionID;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString LoginResponse::getUsername() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return username;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LoginResponse::setUsername(const QString& username)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						this->username = username;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString LoginResponse::getSessionID() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return sessionID;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LoginResponse::setSessionID(const QString& sessionID)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						this->sessionID = sessionID;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										39
									
								
								data/loginresponse.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								data/loginresponse.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					/* Copyright 2013 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.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef LOGINRESPONSE_H
 | 
				
			||||||
 | 
					#define LOGINRESPONSE_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class LoginResponse : public QObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						Q_OBJECT
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						explicit LoginResponse(const QString &username, const QString &sessionID, QObject *parent = 0);
 | 
				
			||||||
 | 
						LoginResponse(const LoginResponse& other);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						QString getUsername() const;
 | 
				
			||||||
 | 
						void setUsername(const QString& username);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						QString getSessionID() const;
 | 
				
			||||||
 | 
						void setSessionID(const QString& sessionID);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
						QString username;
 | 
				
			||||||
 | 
						QString sessionID;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // LOGINRESPONSE_H
 | 
				
			||||||
							
								
								
									
										49
									
								
								data/userinfo.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								data/userinfo.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
				
			|||||||
 | 
					/* Copyright 2013 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 "userinfo.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					UserInfo::UserInfo(const QString &username, const QString &password, QObject *parent) :
 | 
				
			||||||
 | 
						QObject(parent)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						this->username = username;
 | 
				
			||||||
 | 
						this->password = password;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					UserInfo::UserInfo(const UserInfo &other)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						this->username = other.username;
 | 
				
			||||||
 | 
						this->password = other.password;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString UserInfo::getUsername() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return username;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void UserInfo::setUsername(const QString &username)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						this->username = username;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString UserInfo::getPassword() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return password;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void UserInfo::setPassword(const QString &password)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						this->password = password;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										39
									
								
								data/userinfo.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								data/userinfo.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					/* Copyright 2013 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.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef USERINFO_H
 | 
				
			||||||
 | 
					#define USERINFO_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class UserInfo : public QObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						Q_OBJECT
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						explicit UserInfo(const QString& username, const QString& password, QObject *parent = 0);
 | 
				
			||||||
 | 
						explicit UserInfo(const UserInfo& other);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						QString getUsername() const;
 | 
				
			||||||
 | 
						void setUsername(const QString& username);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						QString getPassword() const;
 | 
				
			||||||
 | 
						void setPassword(const QString& password);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
						QString username;
 | 
				
			||||||
 | 
						QString password;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // USERINFO_H
 | 
				
			||||||
							
								
								
									
										51
									
								
								gui/logindialog.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								gui/logindialog.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					/* Copyright 2013 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 "logindialog.h"
 | 
				
			||||||
 | 
					#include "ui_logindialog.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LoginDialog::LoginDialog(QWidget *parent, const QString& loginErrMsg) :
 | 
				
			||||||
 | 
						QDialog(parent),
 | 
				
			||||||
 | 
						ui(new Ui::LoginDialog)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						ui->setupUi(this);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						if (loginErrMsg.isEmpty())
 | 
				
			||||||
 | 
							ui->loginErrorLabel->setVisible(false);
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							ui->loginErrorLabel->setVisible(true);
 | 
				
			||||||
 | 
							ui->loginErrorLabel->setText(QString("<span style=\" color:#ff0000;\">%1</span>").
 | 
				
			||||||
 | 
													   arg(loginErrMsg));
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						resize(minimumSizeHint());
 | 
				
			||||||
 | 
						layout()->setSizeConstraint(QLayout::SetFixedSize);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LoginDialog::~LoginDialog()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString LoginDialog::getUsername() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return ui->usernameTextBox->text();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString LoginDialog::getPassword() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return ui->passwordTextBox->text();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										40
									
								
								gui/logindialog.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								gui/logindialog.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					/* Copyright 2013 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.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef LOGINDIALOG_H
 | 
				
			||||||
 | 
					#define LOGINDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class LoginDialog;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class LoginDialog : public QDialog
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						Q_OBJECT
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						explicit LoginDialog(QWidget *parent = 0, const QString& loginErrMsg = "");
 | 
				
			||||||
 | 
						~LoginDialog();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						QString getUsername() const;
 | 
				
			||||||
 | 
						QString getPassword() const;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
						Ui::LoginDialog *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // LOGINDIALOG_H
 | 
				
			||||||
							
								
								
									
										146
									
								
								gui/logindialog.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								gui/logindialog.ui
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,146 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>LoginDialog</class>
 | 
				
			||||||
 | 
					 <widget class="QDialog" name="LoginDialog">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>365</width>
 | 
				
			||||||
 | 
					    <height>145</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Login</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QVBoxLayout" name="verticalLayout">
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QLabel" name="loginErrorLabel">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string><span style=" color:#ff0000;">Error</span></string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <layout class="QGridLayout" name="gridLayout">
 | 
				
			||||||
 | 
					     <item row="0" column="0">
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="usernameLabel">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Username:</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="0" column="1">
 | 
				
			||||||
 | 
					      <widget class="QLineEdit" name="usernameTextBox">
 | 
				
			||||||
 | 
					       <property name="placeholderText">
 | 
				
			||||||
 | 
					        <string>Username</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="1" column="0">
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="passwordLabel">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Password:</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="1" column="1">
 | 
				
			||||||
 | 
					      <widget class="QLineEdit" name="passwordTextBox">
 | 
				
			||||||
 | 
					       <property name="echoMode">
 | 
				
			||||||
 | 
					        <enum>QLineEdit::Password</enum>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="placeholderText">
 | 
				
			||||||
 | 
					        <string>Password</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					    </layout>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <layout class="QHBoxLayout" name="checkboxLayout">
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QPushButton" name="forceUpdateButton">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>&Force Update</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="checkable">
 | 
				
			||||||
 | 
					        <bool>true</bool>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QCheckBox" name="rememberUsernameCheckbox">
 | 
				
			||||||
 | 
					       <property name="sizePolicy">
 | 
				
			||||||
 | 
					        <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
 | 
				
			||||||
 | 
					         <horstretch>1</horstretch>
 | 
				
			||||||
 | 
					         <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					        </sizepolicy>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>&Remember Username?</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QCheckBox" name="rememberPasswordCheckbox">
 | 
				
			||||||
 | 
					       <property name="sizePolicy">
 | 
				
			||||||
 | 
					        <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
 | 
				
			||||||
 | 
					         <horstretch>1</horstretch>
 | 
				
			||||||
 | 
					         <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					        </sizepolicy>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>R&emember Password?</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					    </layout>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QDialogButtonBox" name="loginButtonBox">
 | 
				
			||||||
 | 
					     <property name="orientation">
 | 
				
			||||||
 | 
					      <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="standardButtons">
 | 
				
			||||||
 | 
					      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>loginButtonBox</sender>
 | 
				
			||||||
 | 
					   <signal>accepted()</signal>
 | 
				
			||||||
 | 
					   <receiver>LoginDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>accept()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>248</x>
 | 
				
			||||||
 | 
					     <y>254</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>157</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>loginButtonBox</sender>
 | 
				
			||||||
 | 
					   <signal>rejected()</signal>
 | 
				
			||||||
 | 
					   <receiver>LoginDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>reject()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>316</x>
 | 
				
			||||||
 | 
					     <y>260</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>286</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					 </connections>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
@@ -26,10 +26,14 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "gui/settingsdialog.h"
 | 
					#include "gui/settingsdialog.h"
 | 
				
			||||||
#include "gui/newinstancedialog.h"
 | 
					#include "gui/newinstancedialog.h"
 | 
				
			||||||
 | 
					#include "gui/logindialog.h"
 | 
				
			||||||
 | 
					#include "gui/taskdialog.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "data/appsettings.h"
 | 
					#include "data/appsettings.h"
 | 
				
			||||||
#include "data/version.h"
 | 
					#include "data/version.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "tasks/logintask.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MainWindow::MainWindow(QWidget *parent) :
 | 
					MainWindow::MainWindow(QWidget *parent) :
 | 
				
			||||||
	QMainWindow(parent),
 | 
						QMainWindow(parent),
 | 
				
			||||||
	ui(new Ui::MainWindow)
 | 
						ui(new Ui::MainWindow)
 | 
				
			||||||
@@ -121,3 +125,31 @@ void MainWindow::on_instanceView_customContextMenuRequested(const QPoint &pos)
 | 
				
			|||||||
	
 | 
						
 | 
				
			||||||
	instContextMenu->exec(ui->instanceView->mapToGlobal(pos));
 | 
						instContextMenu->exec(ui->instanceView->mapToGlobal(pos));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::on_actionLaunchInstance_triggered()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						doLogin();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::doLogin(const QString &errorMsg)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						LoginDialog* loginDlg = new LoginDialog(this, errorMsg);
 | 
				
			||||||
 | 
						if (loginDlg->exec())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							UserInfo uInfo(loginDlg->getUsername(), loginDlg->getPassword());
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							TaskDialog* tDialog = new TaskDialog(this);
 | 
				
			||||||
 | 
							LoginTask* loginTask = new LoginTask(uInfo, tDialog);
 | 
				
			||||||
 | 
							connect(loginTask, SIGNAL(loginComplete(LoginResponse)),
 | 
				
			||||||
 | 
									SLOT(onLoginComplete(LoginResponse)));
 | 
				
			||||||
 | 
							connect(loginTask, SIGNAL(loginFailed(QString)),
 | 
				
			||||||
 | 
									SLOT(doLogin(QString)));
 | 
				
			||||||
 | 
							tDialog->exec(loginTask);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::onLoginComplete(LoginResponse response)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <QMainWindow>
 | 
					#include <QMainWindow>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../data/instancemodel.h"
 | 
					#include "data/instancemodel.h"
 | 
				
			||||||
 | 
					#include "data/loginresponse.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Ui
 | 
					namespace Ui
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -58,6 +59,14 @@ private slots:
 | 
				
			|||||||
	
 | 
						
 | 
				
			||||||
	void on_instanceView_customContextMenuRequested(const QPoint &pos);
 | 
						void on_instanceView_customContextMenuRequested(const QPoint &pos);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
						void on_actionLaunchInstance_triggered();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						void doLogin(const QString& errorMsg = "");
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						void onLoginComplete(LoginResponse response);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
	Ui::MainWindow *ui;
 | 
						Ui::MainWindow *ui;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										109
									
								
								gui/taskdialog.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								gui/taskdialog.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,109 @@
 | 
				
			|||||||
 | 
					/* Copyright 2013 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 "taskdialog.h"
 | 
				
			||||||
 | 
					#include "ui_taskdialog.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QKeyEvent>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "tasks/task.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TaskDialog::TaskDialog(QWidget *parent) :
 | 
				
			||||||
 | 
						QDialog(parent),
 | 
				
			||||||
 | 
						ui(new Ui::TaskDialog)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						ui->setupUi(this);
 | 
				
			||||||
 | 
						updateSize();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						changeProgress(0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TaskDialog::~TaskDialog()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TaskDialog::updateSize()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						resize(QSize(480, minimumSizeHint().height()));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TaskDialog::exec(Task *task)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						this->task = task;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						// Connect signals.
 | 
				
			||||||
 | 
						connect(task, SIGNAL(taskStarted(Task*)),
 | 
				
			||||||
 | 
								this, SLOT(onTaskStarted(Task*)));
 | 
				
			||||||
 | 
						connect(task, SIGNAL(taskEnded(Task*)),
 | 
				
			||||||
 | 
								this, SLOT(onTaskEnded(Task*)));
 | 
				
			||||||
 | 
						connect(task, SIGNAL(statusChanged(const QString&)),
 | 
				
			||||||
 | 
								this, SLOT(changeStatus(const QString&)));
 | 
				
			||||||
 | 
						connect(task, SIGNAL(progressChanged(int)),
 | 
				
			||||||
 | 
								this, SLOT(changeProgress(int)));
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						task->startTask();
 | 
				
			||||||
 | 
						QDialog::exec();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Task* TaskDialog::getTask()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return task;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TaskDialog::onTaskStarted(Task*)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TaskDialog::onTaskEnded(Task*)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						close();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TaskDialog::changeStatus(const QString &status)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						ui->statusLabel->setText(status);
 | 
				
			||||||
 | 
						updateSize();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TaskDialog::changeProgress(int progress)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (progress < 0)
 | 
				
			||||||
 | 
							progress = 0;
 | 
				
			||||||
 | 
						else if (progress > 100)
 | 
				
			||||||
 | 
							progress = 100;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						ui->taskProgressBar->setValue(progress);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TaskDialog::keyPressEvent(QKeyEvent* e)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (e->key() == Qt::Key_Escape)
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						QDialog::keyPressEvent(e);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TaskDialog::closeEvent(QCloseEvent* e)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (task && task->isRunning())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							e->ignore();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							QDialog::closeEvent(e);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										63
									
								
								gui/taskdialog.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								gui/taskdialog.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
				
			|||||||
 | 
					/* Copyright 2013 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.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef TASKDIALOG_H
 | 
				
			||||||
 | 
					#define TASKDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Task;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class TaskDialog;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TaskDialog : public QDialog
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						Q_OBJECT
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						explicit TaskDialog(QWidget *parent = 0);
 | 
				
			||||||
 | 
						~TaskDialog();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						void updateSize();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						void exec(Task* task);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						Task* getTask();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
						void onTaskStarted(Task*);
 | 
				
			||||||
 | 
						void onTaskEnded(Task*);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						void changeStatus(const QString& status);
 | 
				
			||||||
 | 
						void changeProgress(int progress);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						void test() { qDebug("Lol"); }
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					signals:
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
						virtual void keyPressEvent(QKeyEvent* e);
 | 
				
			||||||
 | 
						virtual void closeEvent(QCloseEvent* e);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
						Ui::TaskDialog *ui;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						Task* task;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // TASKDIALOG_H
 | 
				
			||||||
							
								
								
									
										53
									
								
								gui/taskdialog.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								gui/taskdialog.ui
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>TaskDialog</class>
 | 
				
			||||||
 | 
					 <widget class="QDialog" name="TaskDialog">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>400</width>
 | 
				
			||||||
 | 
					    <height>58</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="minimumSize">
 | 
				
			||||||
 | 
					   <size>
 | 
				
			||||||
 | 
					    <width>400</width>
 | 
				
			||||||
 | 
					    <height>0</height>
 | 
				
			||||||
 | 
					   </size>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="maximumSize">
 | 
				
			||||||
 | 
					   <size>
 | 
				
			||||||
 | 
					    <width>600</width>
 | 
				
			||||||
 | 
					    <height>16777215</height>
 | 
				
			||||||
 | 
					   </size>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Please wait...</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QVBoxLayout" name="verticalLayout">
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QLabel" name="statusLabel">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Task Status...</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="wordWrap">
 | 
				
			||||||
 | 
					      <bool>true</bool>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QProgressBar" name="taskProgressBar">
 | 
				
			||||||
 | 
					     <property name="value">
 | 
				
			||||||
 | 
					      <number>24</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="textVisible">
 | 
				
			||||||
 | 
					      <bool>false</bool>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections/>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										44
									
								
								tasks/logintask.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								tasks/logintask.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					/* Copyright 2013 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 "logintask.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LoginTask::LoginTask(const UserInfo &uInfo, QObject *parent) :
 | 
				
			||||||
 | 
						Task(parent), uInfo(uInfo)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LoginTask::executeTask()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						setStatus("Logging in...");
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						// TODO: PLACEHOLDER
 | 
				
			||||||
 | 
						for (int p = 0; p < 100; p++)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							msleep(25);
 | 
				
			||||||
 | 
							setProgress(p);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						if (uInfo.getUsername() == "test")
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							LoginResponse response("test", "Fake Session ID");
 | 
				
			||||||
 | 
							emit loginComplete(response);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							emit loginFailed("Testing");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										40
									
								
								tasks/logintask.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								tasks/logintask.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					/* Copyright 2013 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.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef LOGINTASK_H
 | 
				
			||||||
 | 
					#define LOGINTASK_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "task.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "data/userinfo.h"
 | 
				
			||||||
 | 
					#include "data/loginresponse.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class LoginTask : public Task
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						Q_OBJECT
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						explicit LoginTask(const UserInfo& uInfo, QObject *parent = 0);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					signals:
 | 
				
			||||||
 | 
						void loginComplete(const LoginResponse& loginResponse);
 | 
				
			||||||
 | 
						void loginFailed(const QString& errorMsg);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
						void executeTask();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						UserInfo uInfo;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // LOGINTASK_H
 | 
				
			||||||
@@ -29,7 +29,7 @@ QString Task::getStatus() const
 | 
				
			|||||||
void Task::setStatus(const QString &status)
 | 
					void Task::setStatus(const QString &status)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	this->status = status;
 | 
						this->status = status;
 | 
				
			||||||
	statusChanged(status);
 | 
						emit statusChanged(status);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int Task::getProgress() const
 | 
					int Task::getProgress() const
 | 
				
			||||||
@@ -40,7 +40,7 @@ int Task::getProgress() const
 | 
				
			|||||||
void Task::setProgress(int progress)
 | 
					void Task::setProgress(int progress)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	this->progress = progress;
 | 
						this->progress = progress;
 | 
				
			||||||
	progressChanged(progress);
 | 
						emit progressChanged(progress);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Task::startTask()
 | 
					void Task::startTask()
 | 
				
			||||||
@@ -50,7 +50,7 @@ void Task::startTask()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void Task::run()
 | 
					void Task::run()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	taskStarted(this);
 | 
						emit taskStarted(this);
 | 
				
			||||||
	executeTask();
 | 
						executeTask();
 | 
				
			||||||
	taskEnded(this);
 | 
						emit taskEnded(this);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,6 +32,10 @@ public:
 | 
				
			|||||||
	QString getStatus() const;
 | 
						QString getStatus() const;
 | 
				
			||||||
	int getProgress() const;
 | 
						int getProgress() const;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
						void setStatus(const QString& status);
 | 
				
			||||||
 | 
						void setProgress(int progress);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
signals:
 | 
					signals:
 | 
				
			||||||
	void taskStarted(Task* task);
 | 
						void taskStarted(Task* task);
 | 
				
			||||||
	void taskEnded(Task* task);
 | 
						void taskEnded(Task* task);
 | 
				
			||||||
@@ -40,9 +44,6 @@ signals:
 | 
				
			|||||||
	void progressChanged(int progress);
 | 
						void progressChanged(int progress);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
	void setStatus(const QString& status);
 | 
					 | 
				
			||||||
	void setProgress(int progress);
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	virtual void run();
 | 
						virtual void run();
 | 
				
			||||||
	virtual void executeTask() = 0;
 | 
						virtual void executeTask() = 0;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user