Ref T659, login dialog to test new login design

* mockup for login dialog
* can be used with SHIFT key
This commit is contained in:
Klaus Basan
2019-07-17 01:22:59 +02:00
parent 81fa66f80d
commit 372cb0e73c
8 changed files with 2248 additions and 3 deletions

View File

@@ -10,6 +10,7 @@
#include "blackgui/components/logcomponent.h"
#include "blackgui/components/dbloaddatadialog.h"
#include "blackgui/components/autopublishdialog.h"
#include "blackgui/components/logindialog.h"
#include "blackgui/components/settingscomponent.h"
#include "blackgui/guiapplication.h"
#include "blackgui/guiutility.h"
@@ -239,6 +240,7 @@ bool SwiftGuiStd::isMainPageSelected(SwiftGuiStd::MainPageIndex mainPage) const
void SwiftGuiStd::loginRequested()
{
if (!sGui || sGui->isShuttingDown() || !sGui->getIContextNetwork()) { return; }
if (ui->sw_MainMiddle->currentIndex() == static_cast<int>(MainPageLogin))
{
// already main page, we fake a re-trigger here
@@ -247,7 +249,17 @@ void SwiftGuiStd::loginRequested()
}
else
{
this->setMainPage(MainPageLogin);
const bool shift = QApplication::keyboardModifiers() & Qt::ShiftModifier;
const bool connected = sGui->getIContextNetwork()->isConnected();
if (!connected && shift)
{
if (!m_loginDialog) { m_loginDialog.reset(new CLoginDialog(this)); }
m_loginDialog->show();
}
else
{
this->setMainPage(MainPageLogin);
}
}
}

View File

@@ -54,6 +54,7 @@ namespace BlackGui
{
class CDbLoadDataDialog;
class CAutoPublishDialog;
class CLoginDialog;
}
}
namespace Ui { class SwiftGuiStd; }
@@ -114,18 +115,18 @@ private:
QScopedPointer<BlackGui::Components::CNavigatorDialog> m_navigator{ new BlackGui::Components::CNavigatorDialog() }; //!< navigator dialog bar, if I pass the parent, the dialog is always centered over the parent
QScopedPointer<BlackGui::Components::CDbLoadDataDialog> m_dbLoadDialog; //!< load DB data, lazy init UI component
QScopedPointer<BlackGui::Components::CAutoPublishDialog> m_autoPublishDialog; //!< auto publish dialog
QScopedPointer<BlackGui::Components::CLoginDialog> m_loginDialog; //!< login dialog
QScopedPointer<BlackGui::Components::CAircraftModelSetValidationDialog> m_validationDialog; //!< aircraft model validation dialog
BlackMisc::CData<BlackMisc::Simulation::Data::TLastAutoPublish> m_lastAutoPublish { this };
BlackCore::CActionBind m_actionPtt { BlackMisc::Input::pttHotkeyAction(), BlackMisc::CIcons::radio16(), this, &SwiftGuiStd::onPttChanged };
BlackCore::CActionBindings m_menuHotkeyHandlers;
BlackGui::CManagedStatusBar m_statusBar;
BlackMisc::CLogSubscriber m_logSubscriber { this, &SwiftGuiStd::displayStatusMessageInGui };
bool m_init = false;
// contexts
static constexpr int MaxCoreFailures = 5; //!< Failures counted before reconnecting
int m_coreFailures = 0; //!< failed access to core
bool m_init = false;
bool m_coreAvailable = false; //!< core already available?
bool m_contextNetworkAvailable = false; //!< network context available?
bool m_contextAudioAvailable = false; //!< audio context available?