pcsx2/pcsx2-qt/Settings/BIOSSettingsWidget.h

66 lines
1.3 KiB
C
Raw Normal View History

// SPDX-FileCopyrightText: 2002-2023 PCSX2 Dev Team
// SPDX-License-Identifier: LGPL-3.0+
2021-12-13 12:12:54 +00:00
#pragma once
#include <QtCore/QDir>
#include <QtCore/QPair>
2022-08-22 22:17:01 +00:00
#include <QtCore/QString>
#include <QtCore/QThread>
2021-12-13 12:12:54 +00:00
#include <QtCore/QVector>
#include <QtWidgets/QWidget>
#include <string>
#include "ui_BIOSSettingsWidget.h"
class SettingsWindow;
2021-12-13 12:12:54 +00:00
class QThread;
// TODO: Move to core.
struct BIOSInfo
{
std::string filename;
std::string description;
std::string zone;
u32 version;
u32 region;
};
Q_DECLARE_METATYPE(BIOSInfo);
class BIOSSettingsWidget : public QWidget
{
Q_OBJECT
public:
BIOSSettingsWidget(SettingsWindow* dialog, QWidget* parent);
2021-12-13 12:12:54 +00:00
~BIOSSettingsWidget();
class RefreshThread final : public QThread
{
public:
2023-06-23 13:18:10 +00:00
RefreshThread(QWidget* parent, const QString& directory);
2021-12-13 12:12:54 +00:00
~RefreshThread();
protected:
void run() override;
private:
QString m_directory;
};
2023-06-23 13:18:10 +00:00
static void populateList(QTreeWidget* list, const QVector<BIOSInfo>& items);
private Q_SLOTS:
void refreshList();
void listItemChanged(const QTreeWidgetItem* current, const QTreeWidgetItem* previous);
void listRefreshed(const QVector<BIOSInfo>& items);
void fastBootChanged();
private:
Ui::BIOSSettingsWidget m_ui;
SettingsWindow* m_dialog;
2023-06-23 13:18:10 +00:00
2021-12-13 12:12:54 +00:00
RefreshThread* m_refresh_thread = nullptr;
};