- Formatted all CodeGen module files (9 files) - Formatted LtsAppDescriptor module files - Formatted LtsAppManager/AppChooser files - Applied clang-format to all DTC and enum headers across modules - Removed coordTransTests from CommonUnitTestsPlaceholder (moved to tests/) Cosmetic changes only, no functional modifications. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
137 lines
4.1 KiB
C++
137 lines
4.1 KiB
C++
#pragma once
|
|
|
|
#include <Lts/Common/ProjectConfig/project_defines.h>
|
|
#include <LtsAppDescriptor/lts_app_descriptor.h>
|
|
#include <LtsSession/lts_session.h>
|
|
#include <LtsWidgets/lts_base_layout_widget.h>
|
|
#include <LtsWidgets/lts_dialog.h>
|
|
#include <QObject>
|
|
#include <QVector>
|
|
#include <memory>
|
|
|
|
#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 LtsSession
|
|
|
|
namespace DeveloperTools
|
|
{
|
|
class DevDialog;
|
|
}
|
|
|
|
class QTcpSocket;
|
|
|
|
namespace LtsAppManager
|
|
{
|
|
|
|
class LTSAPPMANAGER_EXPORT LtsAppManager : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
static LtsAppManager* getInstance();
|
|
|
|
void showLogin();
|
|
|
|
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);
|
|
|
|
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);
|
|
|
|
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();
|
|
|
|
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;
|
|
LtsLogin::LtsLogin* m_login;
|
|
LtsAppDescriptor::AppDescription m_app;
|
|
QString m_loginPluginIid;
|
|
|
|
public slots:
|
|
void slotLogout();
|
|
|
|
private slots:
|
|
void slotQuit();
|
|
void slotSoftQuit();
|
|
void slotShowLogin();
|
|
void slotAppDestroyed();
|
|
void slotStartDebugServer();
|
|
void hideAllOtherBLWs(QObject* _caller);
|
|
void taskSwitch(QObject* _caller);
|
|
|
|
signals:
|
|
void signalLoginDone();
|
|
void signalLogoffDone();
|
|
void signalShowLogin();
|
|
void signalInitializationFinished();
|
|
void signalCommand(QTcpSocket* client, const QStringList argList);
|
|
};
|
|
|
|
} // namespace LtsAppManager
|