diff options
Diffstat (limited to 'launcher/MultiMC.h')
-rw-r--r-- | launcher/MultiMC.h | 235 |
1 files changed, 0 insertions, 235 deletions
diff --git a/launcher/MultiMC.h b/launcher/MultiMC.h deleted file mode 100644 index 59fd7345..00000000 --- a/launcher/MultiMC.h +++ /dev/null @@ -1,235 +0,0 @@ -#pragma once - -#include <QApplication> -#include <memory> -#include <QDebug> -#include <QFlag> -#include <QIcon> -#include <QDateTime> -#include <QUrl> -#include <updater/GoUpdate.h> - -#include <BaseInstance.h> - -#include "minecraft/launch/MinecraftServerTarget.h" - -class LaunchController; -class LocalPeer; -class InstanceWindow; -class MainWindow; -class SetupWizard; -class FolderInstanceProvider; -class GenericPageProvider; -class QFile; -class HttpMetaCache; -class SettingsObject; -class InstanceList; -class AccountList; -class IconList; -class QNetworkAccessManager; -class JavaInstallList; -class UpdateChecker; -class BaseProfilerFactory; -class BaseDetachedToolFactory; -class TranslationsModel; -class ITheme; -class MCEditTool; -class GAnalytics; - -#if defined(MMC) -#undef MMC -#endif -#define MMC (static_cast<MultiMC *>(QCoreApplication::instance())) - -class MultiMC : public QApplication -{ - // friends for the purpose of limiting access to deprecated stuff - Q_OBJECT -public: - enum Status - { - StartingUp, - Failed, - Succeeded, - Initialized - }; - -public: - MultiMC(int &argc, char **argv); - virtual ~MultiMC(); - - GAnalytics *analytics() const - { - return m_analytics; - } - - std::shared_ptr<SettingsObject> settings() const - { - return m_settings; - } - - qint64 timeSinceStart() const - { - return startTime.msecsTo(QDateTime::currentDateTime()); - } - - QIcon getThemedIcon(const QString& name); - - void setIconTheme(const QString& name); - - std::vector<ITheme *> getValidApplicationThemes(); - - void setApplicationTheme(const QString& name, bool initial); - - // DownloadUpdateTask - std::shared_ptr<UpdateChecker> updateChecker() - { - return m_updateChecker; - } - - std::shared_ptr<TranslationsModel> translations(); - - std::shared_ptr<JavaInstallList> javalist(); - - std::shared_ptr<InstanceList> instances() const - { - return m_instances; - } - - FolderInstanceProvider * folderProvider() const - { - return m_instanceFolder; - } - - std::shared_ptr<IconList> icons() const - { - return m_icons; - } - - MCEditTool *mcedit() const - { - return m_mcedit.get(); - } - - std::shared_ptr<AccountList> accounts() const - { - return m_accounts; - } - - Status status() const - { - return m_status; - } - - const QMap<QString, std::shared_ptr<BaseProfilerFactory>> &profilers() const - { - return m_profilers; - } - - /// this is the root of the 'installation'. Used for automatic updates - const QString &root() - { - return m_rootPath; - } - - /*! - * Opens a json file using either a system default editor, or, if not empty, the editor - * specified in the settings - */ - bool openJsonEditor(const QString &filename); - - InstanceWindow *showInstanceWindow(InstancePtr instance, QString page = QString()); - MainWindow *showMainWindow(bool minimized = false); - - void updateIsRunning(bool running); - bool updatesAreAllowed(); - - void ShowGlobalSettings(class QWidget * parent, QString open_page = QString()); - -signals: - void updateAllowedChanged(bool status); - void globalSettingsAboutToOpen(); - void globalSettingsClosed(); - -public slots: - bool launch( - InstancePtr instance, - bool online = true, - BaseProfilerFactory *profiler = nullptr, - MinecraftServerTargetPtr serverToJoin = nullptr - ); - bool kill(InstancePtr instance); - -private slots: - void on_windowClose(); - void messageReceived(const QString & message); - void controllerSucceeded(); - void controllerFailed(const QString & error); - void analyticsSettingChanged(const Setting &setting, QVariant value); - void setupWizardFinished(int status); - -private: - bool createSetupWizard(); - void performMainStartupAction(); - - // sets the fatal error message and m_status to Failed. - void showFatalErrorMessage(const QString & title, const QString & content); - -private: - void addRunningInstance(); - void subRunningInstance(); - bool shouldExitNow() const; - -private: - QDateTime startTime; - - std::shared_ptr<SettingsObject> m_settings; - std::shared_ptr<InstanceList> m_instances; - FolderInstanceProvider * m_instanceFolder = nullptr; - std::shared_ptr<IconList> m_icons; - std::shared_ptr<UpdateChecker> m_updateChecker; - std::shared_ptr<AccountList> m_accounts; - std::shared_ptr<JavaInstallList> m_javalist; - std::shared_ptr<TranslationsModel> m_translations; - std::shared_ptr<GenericPageProvider> m_globalSettingsProvider; - std::map<QString, std::unique_ptr<ITheme>> m_themes; - std::unique_ptr<MCEditTool> m_mcedit; - - QMap<QString, std::shared_ptr<BaseProfilerFactory>> m_profilers; - - QString m_rootPath; - Status m_status = MultiMC::StartingUp; - -#if defined Q_OS_WIN32 - // used on Windows to attach the standard IO streams - bool consoleAttached = false; -#endif - - // FIXME: attach to instances instead. - struct InstanceXtras - { - InstanceWindow * window = nullptr; - shared_qobject_ptr<LaunchController> controller; - }; - std::map<QString, InstanceXtras> m_instanceExtras; - - // main state variables - size_t m_openWindows = 0; - size_t m_runningInstances = 0; - bool m_updateRunning = false; - - // main window, if any - MainWindow * m_mainWindow = nullptr; - - // peer MultiMC instance connector - used to implement single instance MultiMC and signalling - LocalPeer * m_peerInstance = nullptr; - - GAnalytics * m_analytics = nullptr; - SetupWizard * m_setupWizard = nullptr; -public: - QString m_instanceIdToLaunch; - QString m_serverToJoin; - bool m_liveCheck = false; - QUrl m_zipToImport; - std::unique_ptr<QFile> logFile; -}; |