#pragma once #include #include #include #include #include namespace LtsPluginManager { class LtsPluginManager; } namespace LtsUtils { class RequestHelper; } namespace LtsSession { class LtsSession; } namespace DeveloperTools { class DevDialog; } namespace LtsLogin { class LTSLOGIN_EXPORT LtsLogin : public QObject { Q_OBJECT public: LtsLogin(); ~LtsLogin(); void login(); void logoff(); void setLoginPlugin(const QString& loginPluginIid) { m_loginPluginIid = loginPluginIid; } private: friend class DeveloperTools::DevDialog; LtsSession::LtsSession* getAdminSession(); void showLogoutInformationDialog(AssetManagement::ShutdownAction action); LtsPluginManager::LtsPluginManager* m_loginApp; AssetManagement::ShutdownAction m_shutdownAction; std::shared_ptr m_asmDtc; QString m_loginPluginIid; bool m_isInLogoutDialog; private slots: void slotLoginDone(); void slotLogoutShutdown(const AssetManagement::WorkstationLogout& data, DataModification modType); signals: void signalLogout(); void signalStopBlock(); void signalLoginDone(); void signalLogoffDone(); }; } // namespace LtsLogin