Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
Executable
+136
@@ -0,0 +1,136 @@
|
||||
#pragma once
|
||||
|
||||
#include <LtsAppDescriptor/lts_app_descriptor.h>
|
||||
#include <Common/ProjectConfig/project_defines.h>
|
||||
#include <LtsWidgets/lts_dialog.h>
|
||||
#include <LtsWidgets/lts_base_layout_widget.h>
|
||||
#include <LtsSession/lts_session.h>
|
||||
#include <memory>
|
||||
#include <QObject>
|
||||
#include <QVector>
|
||||
|
||||
|
||||
#ifndef LTSAPPMANAGER_EXPORT
|
||||
# ifdef BUILD_STATIC_LIBRARIES
|
||||
# define LTSAPPMANAGER_EXPORT
|
||||
# else
|
||||
# if defined(MAKE_LTSAPPMANAGER_LIB)
|
||||
# define LTSAPPMANAGER_EXPORT Q_DECL_EXPORT
|
||||
# else
|
||||
# define LTSAPPMANAGER_EXPORT Q_DECL_IMPORT
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
namespace LtsPluginManager
|
||||
{
|
||||
class LtsPluginManager;
|
||||
}
|
||||
|
||||
namespace LtsLogin
|
||||
{
|
||||
class LtsLogin;
|
||||
}
|
||||
|
||||
namespace LtsSession
|
||||
{
|
||||
class LtsSession;
|
||||
struct DdsConnectionParams;
|
||||
}
|
||||
|
||||
namespace DeveloperTools
|
||||
{
|
||||
class DevDialog;
|
||||
}
|
||||
|
||||
class QTcpSocket;
|
||||
|
||||
|
||||
namespace LtsAppManager
|
||||
{
|
||||
|
||||
class LTSAPPMANAGER_EXPORT LtsAppManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
static LtsAppManager* getInstance();
|
||||
|
||||
void showLogin();
|
||||
/**
|
||||
* @brief createApp
|
||||
* @param appId
|
||||
* @param connParams
|
||||
* @return Warning: can be null!!
|
||||
*/
|
||||
LtsPluginManager::LtsPluginManager *createApp(LtsAppDescriptor::App appId, const LtsSession::DdsConnectionParams &connParams,
|
||||
const QString &workspaceId = QString(), bool hidden = false, bool force = false);
|
||||
bool startAppOrLetUserChoose(LtsAppDescriptor::App appId, const LtsSession::DdsConnectionParams &connParams, bool force = false);
|
||||
void setLoginPluginIid(const QString &loginPluginIid) { m_loginPluginIid = loginPluginIid; }
|
||||
void setMainApp(LtsAppDescriptor::App appId = LtsAppDescriptor::App::Login); // main app which is started after login
|
||||
QVector<LtsPluginManager::LtsPluginManager *> getAppList() const { return m_appList ;}
|
||||
LtsAppDescriptor::AppDescriptionVector getAvailableApps() const { return m_availableApps; }
|
||||
void setAvailableApps(const LtsAppDescriptor::AppDescriptionVector &availableApps);
|
||||
bool hasRightForApp(const LtsAppDescriptor::AppDescription &appDescription) const;
|
||||
LtsAppDescriptor::AppDescription getApp(LtsAppDescriptor::App appId) const;
|
||||
bool hasApp(LtsAppDescriptor::App appId) const;
|
||||
int getNumberOfSituationMapInstances() const;
|
||||
void debugSendMessage(const QString &msg);
|
||||
|
||||
/**
|
||||
* @brief otherSessionsResponsibility checks if there is a session in all apps that can take a specified responsibility
|
||||
* Example: Open a window in ONE session only. E.g. when receiving an alert via dtc to many sessions.
|
||||
* @param thisSession
|
||||
* @param requiredAppTypes
|
||||
* @param requiredPartitionTypes
|
||||
* @param menuGroup
|
||||
* @param identifier
|
||||
* @param area
|
||||
* @return
|
||||
*/
|
||||
bool otherSessionsResponsibility(LtsSession::LtsSession *thisSession, const QVector<LtsAppDescriptor::App> &requiredAppTypes,
|
||||
const QVector<IDL::PartitionType> &requiredPartitionTypes, const QString &menuGroup,
|
||||
const QString &identifier, LtsWidgets::LayoutArea area);
|
||||
|
||||
private:
|
||||
friend struct LtsAppManagerHandler;
|
||||
friend class DeveloperTools::DevDialog;
|
||||
|
||||
LtsAppManager();
|
||||
~LtsAppManager(); // no need to remove all apps, as the application only exits if all apps are closed
|
||||
|
||||
bool startAppOrLetUserChoose(const LtsAppDescriptor::AppDescription &appDescription, const LtsSession::DdsConnectionParams &connParams, bool force = false);
|
||||
LtsPluginManager::LtsPluginManager *createApp(const LtsAppDescriptor::AppDescription &appDescription,
|
||||
const LtsSession::DdsConnectionParams &connParams,
|
||||
const QString &workspaceId = QString(),
|
||||
bool hidden = false, bool force = false);
|
||||
void saveState();
|
||||
|
||||
LtsAppDescriptor::AppDescriptionVector m_availableApps;
|
||||
QVector<LtsPluginManager::LtsPluginManager *> m_appList; // started apps
|
||||
LtsLogin::LtsLogin *m_login;
|
||||
LtsAppDescriptor::AppDescription m_app; // the app to be started when the event loop is running
|
||||
QString m_loginPluginIid;
|
||||
|
||||
public slots:
|
||||
void slotLogout();
|
||||
|
||||
private slots:
|
||||
void slotQuit(); // quit an app
|
||||
void slotSoftQuit(); // quit an app, but make sure aboutToClose, etc. is called before deleting the app
|
||||
void slotShowLogin();
|
||||
void slotAppDestroyed();
|
||||
void slotStartDebugServer();
|
||||
void hideAllOtherBLWs(QObject *_caller);
|
||||
void taskSwitch(QObject *_caller);
|
||||
|
||||
signals:
|
||||
void signalLoginDone();
|
||||
void signalLogoffDone();
|
||||
void signalShowLogin();
|
||||
void signalInitializationFinished(); // emit a signal if the base layout is shown (to notify that an app has been fully started)
|
||||
void signalCommand(QTcpSocket *client, const QStringList argList);
|
||||
};
|
||||
|
||||
} // namespace LtsAppManager
|
||||
Reference in new issue
Block a user