2015-02-06 19:28:49 +08:00
|
|
|
#ifndef NEXUS_H
|
|
|
|
#define NEXUS_H
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
|
|
|
|
class Widget;
|
|
|
|
class AndroidGUI;
|
2015-06-04 07:30:17 +08:00
|
|
|
class Profile;
|
|
|
|
class LoginScreen;
|
|
|
|
class Core;
|
2015-02-06 19:28:49 +08:00
|
|
|
|
|
|
|
/// This class is in charge of connecting various systems together
|
|
|
|
/// and forwarding signals appropriately to the right objects
|
|
|
|
/// It is in charge of starting the GUI and the Core
|
|
|
|
class Nexus : public QObject
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
2015-06-04 07:30:17 +08:00
|
|
|
void start(); ///< Sets up invariants and calls showLogin
|
2015-06-04 17:56:19 +08:00
|
|
|
void showLogin(); ///< Hides the man GUI, delete the profile, and shows the login screen
|
2015-06-04 07:30:17 +08:00
|
|
|
/// Hides the login screen and shows the GUI for the given profile.
|
|
|
|
/// Will delete the current GUI, if it exists.
|
|
|
|
void showMainGUI();
|
2015-02-06 19:28:49 +08:00
|
|
|
|
|
|
|
static Nexus& getInstance();
|
2015-02-07 02:38:08 +08:00
|
|
|
static void destroyInstance();
|
2015-02-06 19:28:49 +08:00
|
|
|
static Core* getCore(); ///< Will return 0 if not started
|
2015-06-04 07:30:17 +08:00
|
|
|
static Profile* getProfile(); ///< Will return 0 if not started
|
|
|
|
static void setProfile(Profile* profile); ///< Delete the current profile, if any, and replaces it
|
2015-02-07 02:01:31 +08:00
|
|
|
static AndroidGUI* getAndroidGUI(); ///< Will return 0 if not started
|
|
|
|
static Widget* getDesktopGUI(); ///< Will return 0 if not started
|
2015-02-16 07:35:27 +08:00
|
|
|
static QString getSupportedImageFilter();
|
2015-04-26 23:39:39 +08:00
|
|
|
static bool tryRemoveFile(const QString& filepath); ///< Dangerous way to find out if a path is writable
|
2015-02-06 19:28:49 +08:00
|
|
|
|
|
|
|
private:
|
|
|
|
explicit Nexus(QObject *parent = 0);
|
|
|
|
~Nexus();
|
|
|
|
|
|
|
|
private:
|
2015-06-04 07:30:17 +08:00
|
|
|
Profile* profile;
|
2015-02-06 19:28:49 +08:00
|
|
|
Widget* widget;
|
|
|
|
AndroidGUI* androidgui;
|
2015-06-04 07:30:17 +08:00
|
|
|
LoginScreen* loginScreen;
|
2015-02-06 19:28:49 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // NEXUS_H
|