mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-21 04:45:31 +08:00
refactor: Remove separate login mode buttons
This commit is contained in:
@@ -629,9 +629,6 @@ add_library(gui SHARED
|
|||||||
lineedithistory.h
|
lineedithistory.h
|
||||||
loadindicator.cpp
|
loadindicator.cpp
|
||||||
loadindicator.h
|
loadindicator.h
|
||||||
loginmodebuttons.cpp
|
|
||||||
loginmodebuttons.h
|
|
||||||
loginmodebuttons.ui
|
|
||||||
mainwindowaccess.cpp
|
mainwindowaccess.cpp
|
||||||
mainwindowaccess.h
|
mainwindowaccess.h
|
||||||
managedstatusbar.cpp
|
managedstatusbar.cpp
|
||||||
|
|||||||
@@ -31,7 +31,6 @@
|
|||||||
#include "gui/editors/pilotform.h"
|
#include "gui/editors/pilotform.h"
|
||||||
#include "gui/editors/serverform.h"
|
#include "gui/editors/serverform.h"
|
||||||
#include "gui/guiapplication.h"
|
#include "gui/guiapplication.h"
|
||||||
#include "gui/loginmodebuttons.h"
|
|
||||||
#include "gui/ticklabel.h"
|
#include "gui/ticklabel.h"
|
||||||
#include "gui/uppercasevalidator.h"
|
#include "gui/uppercasevalidator.h"
|
||||||
#include "misc/aviation/aircrafticaocode.h"
|
#include "misc/aviation/aircrafticaocode.h"
|
||||||
|
|||||||
@@ -392,12 +392,6 @@
|
|||||||
<header>gui/components/ownaircraftcomponent.h</header>
|
<header>gui/components/ownaircraftcomponent.h</header>
|
||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
<customwidget>
|
|
||||||
<class>swift::gui::CLoginModeButtons</class>
|
|
||||||
<extends>QFrame</extends>
|
|
||||||
<header>gui/loginmodebuttons.h</header>
|
|
||||||
<container>1</container>
|
|
||||||
</customwidget>
|
|
||||||
<customwidget>
|
<customwidget>
|
||||||
<class>swift::gui::CTickLabel</class>
|
<class>swift::gui::CTickLabel</class>
|
||||||
<extends>QLabel</extends>
|
<extends>QLabel</extends>
|
||||||
|
|||||||
@@ -66,9 +66,16 @@ namespace swift::gui::components
|
|||||||
|
|
||||||
CNetworkDetailsComponent::~CNetworkDetailsComponent() {}
|
CNetworkDetailsComponent::~CNetworkDetailsComponent() {}
|
||||||
|
|
||||||
CLoginMode CNetworkDetailsComponent::getLoginMode() const { return ui->frp_LoginMode->getLoginMode(); }
|
CLoginMode CNetworkDetailsComponent::getLoginMode() const
|
||||||
|
{
|
||||||
|
return ui->cb_observer->isChecked() ? CLoginMode::Observer : CLoginMode::Pilot;
|
||||||
|
}
|
||||||
|
|
||||||
void CNetworkDetailsComponent::setLoginMode(CLoginMode mode) { ui->frp_LoginMode->setLoginMode(mode); }
|
void CNetworkDetailsComponent::setLoginMode(CLoginMode mode)
|
||||||
|
{
|
||||||
|
if (mode == CLoginMode::Observer) { ui->cb_observer->setChecked(true); }
|
||||||
|
else { ui->cb_observer->setChecked(false); }
|
||||||
|
}
|
||||||
|
|
||||||
bool CNetworkDetailsComponent::isVatsimServerSelected() const
|
bool CNetworkDetailsComponent::isVatsimServerSelected() const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -223,12 +223,9 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="swift::gui::CLoginModeButtons" name="frp_LoginMode">
|
<widget class="QCheckBox" name="cb_observer">
|
||||||
<property name="minimumSize">
|
<property name="text">
|
||||||
<size>
|
<string>Observer (co-pilot)</string>
|
||||||
<width>0</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -259,12 +256,6 @@
|
|||||||
<extends>QComboBox</extends>
|
<extends>QComboBox</extends>
|
||||||
<header>gui/components/serverlistselector.h</header>
|
<header>gui/components/serverlistselector.h</header>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
<customwidget>
|
|
||||||
<class>swift::gui::CLoginModeButtons</class>
|
|
||||||
<extends>QFrame</extends>
|
|
||||||
<header>gui/loginmodebuttons.h</header>
|
|
||||||
<container>1</container>
|
|
||||||
</customwidget>
|
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<tabstops>
|
<tabstops>
|
||||||
<tabstop>tw_Network</tabstop>
|
<tabstop>tw_Network</tabstop>
|
||||||
|
|||||||
@@ -1,91 +0,0 @@
|
|||||||
// SPDX-FileCopyrightText: Copyright (C) 2014 swift Project Community / Contributors
|
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
|
|
||||||
|
|
||||||
#include "gui/loginmodebuttons.h"
|
|
||||||
|
|
||||||
#include <QRadioButton>
|
|
||||||
|
|
||||||
#include "ui_loginmodebuttons.h"
|
|
||||||
|
|
||||||
#include "config/buildconfig.h"
|
|
||||||
#include "core/context/contextsimulator.h"
|
|
||||||
#include "gui/guiapplication.h"
|
|
||||||
#include "misc/verify.h"
|
|
||||||
|
|
||||||
using namespace swift::config;
|
|
||||||
using namespace swift::core;
|
|
||||||
using namespace swift::core::context;
|
|
||||||
using namespace swift::misc::network;
|
|
||||||
|
|
||||||
namespace swift::gui
|
|
||||||
{
|
|
||||||
CLoginModeButtons::CLoginModeButtons(QWidget *parent) : QFrame(parent), ui(new Ui::CLoginModeButtons)
|
|
||||||
{
|
|
||||||
ui->setupUi(this);
|
|
||||||
ui->lbl_NoSimulator->setVisible(false);
|
|
||||||
this->configureLoginModes();
|
|
||||||
connect(sGui->getIContextSimulator(), &IContextSimulator::simulatorStatusChanged, this,
|
|
||||||
&CLoginModeButtons::configureLoginModes, Qt::QueuedConnection);
|
|
||||||
}
|
|
||||||
|
|
||||||
CLoginModeButtons::~CLoginModeButtons() {}
|
|
||||||
|
|
||||||
CLoginMode swift::gui::CLoginModeButtons::getLoginMode() const
|
|
||||||
{
|
|
||||||
CLoginMode mode = CLoginMode::Pilot;
|
|
||||||
if (ui->rb_LoginObserver->isChecked()) { mode.setLoginMode(CLoginMode::Observer); }
|
|
||||||
return mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CLoginModeButtons::setLoginMode(CLoginMode mode)
|
|
||||||
{
|
|
||||||
switch (mode.getLoginMode())
|
|
||||||
{
|
|
||||||
case CLoginMode::Observer: ui->rb_LoginObserver->setChecked(true); break;
|
|
||||||
default:
|
|
||||||
case CLoginMode::Pilot: ui->rb_LoginNormal->setChecked(true); break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CLoginModeButtons::setReadOnly(bool readonly)
|
|
||||||
{
|
|
||||||
ui->rb_LoginNormal->setEnabled(!readonly);
|
|
||||||
ui->rb_LoginObserver->setEnabled(!readonly);
|
|
||||||
ui->rb_LoginStealth->setEnabled(!readonly);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CLoginModeButtons::configureLoginModes()
|
|
||||||
{
|
|
||||||
if (!sGui || sGui->isShuttingDown()) { return; }
|
|
||||||
|
|
||||||
// we have no idea how we can get here without the context existing Ref T389
|
|
||||||
if (CBuildConfig::isLocalDeveloperDebugBuild() && !sGui->getIContextSimulator())
|
|
||||||
{
|
|
||||||
// how is this possible? In debug builds I do crosscheck
|
|
||||||
Q_ASSERT_X(false, Q_FUNC_INFO, "No context or sGUI");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!sGui->getIContextSimulator() ||
|
|
||||||
(!sGui->isDeveloperFlagSet() && !sGui->getIContextSimulator()->isSimulatorSimulating()))
|
|
||||||
{
|
|
||||||
// Disable pilot login modes, only observer
|
|
||||||
ui->rb_LoginNormal->setEnabled(false);
|
|
||||||
ui->rb_LoginStealth->setEnabled(false);
|
|
||||||
ui->rb_LoginNormal->setToolTip("No simulator available");
|
|
||||||
ui->rb_LoginStealth->setToolTip("No simulator available");
|
|
||||||
ui->rb_LoginObserver->setChecked(true);
|
|
||||||
ui->lbl_NoSimulator->setVisible(true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ui->rb_LoginNormal->setEnabled(true);
|
|
||||||
ui->rb_LoginStealth->setEnabled(true);
|
|
||||||
ui->rb_LoginNormal->setToolTip({});
|
|
||||||
ui->rb_LoginStealth->setToolTip({});
|
|
||||||
ui->rb_LoginNormal->setChecked(true);
|
|
||||||
ui->lbl_NoSimulator->setVisible(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
ui->rb_LoginStealth->setVisible(false); // 2019-01 hide as based on discussion with RR
|
|
||||||
}
|
|
||||||
} // namespace swift::gui
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
// SPDX-FileCopyrightText: Copyright (C) 2014 swift Project Community / Contributors
|
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
|
|
||||||
|
|
||||||
//! \file
|
|
||||||
|
|
||||||
#ifndef SWIFT_GUI_LOGINMODEBUTTONS_H
|
|
||||||
#define SWIFT_GUI_LOGINMODEBUTTONS_H
|
|
||||||
|
|
||||||
#include <QFrame>
|
|
||||||
#include <QObject>
|
|
||||||
#include <QScopedPointer>
|
|
||||||
|
|
||||||
#include "gui/swiftguiexport.h"
|
|
||||||
#include "misc/network/loginmode.h"
|
|
||||||
|
|
||||||
namespace Ui
|
|
||||||
{
|
|
||||||
class CLoginModeButtons;
|
|
||||||
}
|
|
||||||
namespace swift::gui
|
|
||||||
{
|
|
||||||
//! Display login modes (normal, stealth, ...)
|
|
||||||
class SWIFT_GUI_EXPORT CLoginModeButtons : public QFrame
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
//! Constructor
|
|
||||||
explicit CLoginModeButtons(QWidget *parent = nullptr);
|
|
||||||
|
|
||||||
//! Destructor
|
|
||||||
virtual ~CLoginModeButtons() override;
|
|
||||||
|
|
||||||
//! Get login mode, \sa swift::core::INetwork::LoginMode
|
|
||||||
swift::misc::network::CLoginMode getLoginMode() const;
|
|
||||||
|
|
||||||
//! Set login mode
|
|
||||||
void setLoginMode(swift::misc::network::CLoginMode mode);
|
|
||||||
|
|
||||||
//! Set to read only
|
|
||||||
void setReadOnly(bool readonly);
|
|
||||||
|
|
||||||
private:
|
|
||||||
void configureLoginModes();
|
|
||||||
|
|
||||||
QScopedPointer<Ui::CLoginModeButtons> ui;
|
|
||||||
};
|
|
||||||
} // namespace swift::gui
|
|
||||||
|
|
||||||
#endif // SWIFT_GUI_LOGINMODEBUTTONS_H
|
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>CLoginModeButtons</class>
|
|
||||||
<widget class="QFrame" name="CLoginModeButtons">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>363</width>
|
|
||||||
<height>22</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Login mode</string>
|
|
||||||
</property>
|
|
||||||
<property name="title" stdset="0">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="flat" stdset="0">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="hl_LoginMode">
|
|
||||||
<property name="spacing">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<item alignment="Qt::AlignRight">
|
|
||||||
<widget class="QRadioButton" name="rb_LoginNormal">
|
|
||||||
<property name="text">
|
|
||||||
<string>Normal</string>
|
|
||||||
</property>
|
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item alignment="Qt::AlignRight">
|
|
||||||
<widget class="QRadioButton" name="rb_LoginStealth">
|
|
||||||
<property name="text">
|
|
||||||
<string>Stealth</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item alignment="Qt::AlignRight">
|
|
||||||
<widget class="QRadioButton" name="rb_LoginObserver">
|
|
||||||
<property name="text">
|
|
||||||
<string>Observer (co-pilot)</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="lbl_NoSimulator">
|
|
||||||
<property name="text">
|
|
||||||
<string>No simulator!</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="hs_LoginModeButtons">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
||||||
Reference in New Issue
Block a user