Merge pull request #11601 from Dentomologist/bluetooth_adapter_missing_message

Config: Restore Bluetooth adapter missing message in Controller Settings
This commit is contained in:
Admiral H. Curtiss 2023-03-09 16:10:14 +01:00 committed by GitHub
commit 8c7997d6ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 28 additions and 0 deletions

View File

@ -131,6 +131,11 @@ void ProcessWiimotePool()
} }
} }
bool IsScannerReady()
{
return s_wiimote_scanner.IsReady();
}
void AddWiimoteToPool(std::unique_ptr<Wiimote> wiimote) void AddWiimoteToPool(std::unique_ptr<Wiimote> wiimote)
{ {
// Our real wiimote class requires an index. // Our real wiimote class requires an index.

View File

@ -223,4 +223,5 @@ void InitAdapterClass();
void HandleWiimotesInControllerInterfaceSettingChange(); void HandleWiimotesInControllerInterfaceSettingChange();
void PopulateDevices(); void PopulateDevices();
void ProcessWiimotePool(); void ProcessWiimotePool();
bool IsScannerReady();
} // namespace WiimoteReal } // namespace WiimoteReal

View File

@ -23,6 +23,12 @@ ControllersWindow::ControllersWindow(QWidget* parent) : QDialog(parent)
ConnectWidgets(); ConnectWidgets();
} }
void ControllersWindow::showEvent(QShowEvent* event)
{
QDialog::showEvent(event);
m_wiimote_controllers->UpdateBluetoothAvailableStatus();
}
void ControllersWindow::CreateMainLayout() void ControllersWindow::CreateMainLayout()
{ {
auto* layout = new QVBoxLayout(); auto* layout = new QVBoxLayout();

View File

@ -8,6 +8,7 @@
class CommonControllersWidget; class CommonControllersWidget;
class GamecubeControllersWidget; class GamecubeControllersWidget;
class QDialogButtonBox; class QDialogButtonBox;
class QShowEvent;
class WiimoteControllersWidget; class WiimoteControllersWidget;
class ControllersWindow final : public QDialog class ControllersWindow final : public QDialog
@ -16,6 +17,9 @@ class ControllersWindow final : public QDialog
public: public:
explicit ControllersWindow(QWidget* parent); explicit ControllersWindow(QWidget* parent);
protected:
void showEvent(QShowEvent* event) override;
private: private:
void CreateMainLayout(); void CreateMainLayout();
void ConnectWidgets(); void ConnectWidgets();

View File

@ -50,6 +50,11 @@ WiimoteControllersWidget::WiimoteControllersWidget(QWidget* parent) : QWidget(pa
LoadSettings(Core::GetState()); LoadSettings(Core::GetState());
} }
void WiimoteControllersWidget::UpdateBluetoothAvailableStatus()
{
m_bluetooth_unavailable->setHidden(WiimoteReal::IsScannerReady());
}
static int GetRadioButtonIndicatorWidth() static int GetRadioButtonIndicatorWidth()
{ {
const QStyle* style = QApplication::style(); const QStyle* style = QApplication::style();
@ -151,6 +156,10 @@ void WiimoteControllersWidget::CreateLayout()
m_wiimote_layout->addWidget(m_wiimote_continuous_scanning, continuous_scanning_row, 0, 1, 3); m_wiimote_layout->addWidget(m_wiimote_continuous_scanning, continuous_scanning_row, 0, 1, 3);
m_wiimote_layout->addWidget(m_wiimote_refresh, continuous_scanning_row, 3); m_wiimote_layout->addWidget(m_wiimote_refresh, continuous_scanning_row, 3);
m_bluetooth_unavailable = new QLabel(tr("A supported Bluetooth device could not be found.\n"
"You must manually connect your Wii Remote."));
m_wiimote_layout->addWidget(m_bluetooth_unavailable, m_wiimote_layout->rowCount(), 1, 1, -1);
auto* layout = new QVBoxLayout; auto* layout = new QVBoxLayout;
layout->setContentsMargins(0, 0, 0, 0); layout->setContentsMargins(0, 0, 0, 0);
layout->setAlignment(Qt::AlignTop); layout->setAlignment(Qt::AlignTop);

View File

@ -27,6 +27,8 @@ class WiimoteControllersWidget final : public QWidget
public: public:
explicit WiimoteControllersWidget(QWidget* parent); explicit WiimoteControllersWidget(QWidget* parent);
void UpdateBluetoothAvailableStatus();
private: private:
void SaveSettings(); void SaveSettings();
void OnBluetoothPassthroughSyncPressed(); void OnBluetoothPassthroughSyncPressed();
@ -55,4 +57,5 @@ private:
QCheckBox* m_wiimote_speaker_data; QCheckBox* m_wiimote_speaker_data;
QCheckBox* m_wiimote_ciface; QCheckBox* m_wiimote_ciface;
QPushButton* m_wiimote_refresh; QPushButton* m_wiimote_refresh;
QLabel* m_bluetooth_unavailable;
}; };