47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* 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 "MessageLevel.h"
 | |
| #include "tasks/Task.h"
 | |
| 
 | |
| #include <QStringList>
 | |
| 
 | |
| class LaunchTask;
 | |
| class LaunchStep : public Task {
 | |
|     Q_OBJECT
 | |
|    public: /* methods */
 | |
|     explicit LaunchStep(LaunchTask* parent) : Task(nullptr), m_parent(parent) { bind(parent); };
 | |
|     virtual ~LaunchStep(){};
 | |
| 
 | |
|    private: /* methods */
 | |
|     void bind(LaunchTask* parent);
 | |
| 
 | |
|    signals:
 | |
|     void logLines(QStringList lines, MessageLevel::Enum level);
 | |
|     void logLine(QString line, MessageLevel::Enum level);
 | |
|     void readyForLaunch();
 | |
|     void progressReportingRequest();
 | |
| 
 | |
|    public slots:
 | |
|     virtual void proceed(){};
 | |
|     // called in the opposite order than the Task launch(), used to clean up or otherwise undo things after the launch ends
 | |
|     virtual void finalize(){};
 | |
| 
 | |
|    protected: /* data */
 | |
|     LaunchTask* m_parent;
 | |
| };
 | 
