Ref T659, network details component for FSD/voice setup

This commit is contained in:
Klaus Basan
2019-07-19 03:13:33 +02:00
committed by Mat Sutcliffe
parent 298b040e26
commit 83254e97aa
3 changed files with 615 additions and 89 deletions

View File

@@ -14,9 +14,14 @@
#include <QFrame>
#include <QScopedPointer>
#include "blackcore/data/networksetup.h"
#include "blackcore/network.h"
#include "blackmisc/network/data/lastserver.h"
#include "blackmisc/network/entityflags.h"
#include "blackmisc/network/fsdsetup.h"
#include "blackmisc/audio/voicesetup.h"
#include "blackcore/network.h"
#include "blackmisc/settingscache.h"
#include "blackmisc/datacache.h"
namespace Ui { class CNetworkDetailsComponent; }
namespace BlackGui
@@ -29,6 +34,28 @@ namespace BlackGui
Q_OBJECT
public:
//! The tabs
enum Tab
{
LoginVATSIM,
LoginOthers,
};
//! Pages
enum Page
{
PageServer,
PageDetails
};
//! Details
enum Details
{
DetailsServer,
DetailsVoice,
DetailsBack
};
//! Ctor
explicit CNetworkDetailsComponent(QWidget *parent = nullptr);
@@ -38,13 +65,69 @@ namespace BlackGui
//! FSD setup
BlackMisc::Network::CFsdSetup getFsdSetup() const;
//! Specific setup enabled?
bool isFsdSetupOverrideEnabled() const;
//! Voice setup
BlackMisc::Audio::CVoiceSetup getVoiceSetup() const;
//! Specific setup enabled?
bool isVoiceSetupOverrideEnabled() const;
//! Login mode
BlackCore::INetwork::LoginMode getLoginMode() const;
//! Login mode
void setLoginMode(BlackCore::INetwork::LoginMode mode);
//! Selected server @{
bool isVatsimServerSelected() const;
bool isOtherServerSelected() const;
//! @}
//! Selected server (VATSIM)
BlackMisc::Network::CServer getCurrentVatsimServer() const;
//! Selected server (others)
BlackMisc::Network::CServer getCurrentOtherServer() const;
//! Current server based on selected tab
BlackMisc::Network::CServer getCurrentServer() const;
signals:
//! Override the pilot
void overridePilot(const BlackMisc::Network::CUser &user);
//! Request network settings
void requestNetworkSettings();
private:
//! Settings have been changed
void reloadOtherServersSetup();
//! Tab widget (server) changed
void onServerTabWidgetChanged(int index);
//! Server changed
void onSelectedServerChanged(const BlackMisc::Network::CServer &server);
//! Set the server buttons visible
void setServerButtonsVisible(bool visible);
//! Tab index changed
void onDetailsTabChanged(int index);
//! Override credentials
void onOverrideCredentialsToPilot();
//! VATSIM data file was loaded
void onWebServiceDataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number);
//! Change page
void onChangePage();
BlackCore::Data::CNetworkSetup m_networkSetup; //!< servers last used
bool m_updatePilotOnServerChanges = true;
QScopedPointer<Ui::CNetworkDetailsComponent> ui;
};
} // ns