dolphin/Source/Core/DolphinQt/NetPlay/NetPlayBrowser.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

70 lines
1.4 KiB
C
Raw Normal View History

2019-03-30 07:50:57 -06:00
// Copyright 2019 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.
#pragma once
#include <map>
#include <mutex>
#include <optional>
#include <thread>
2019-03-30 07:50:57 -06:00
#include <vector>
#include <QDialog>
#include "Common/Event.h"
#include "Common/Flag.h"
2019-03-30 07:50:57 -06:00
#include "UICommon/NetPlayIndex.h"
2019-04-07 15:53:13 -06:00
class QCheckBox;
2019-03-30 07:50:57 -06:00
class QComboBox;
class QDialogButtonBox;
class QLabel;
class QLineEdit;
class QPushButton;
class QRadioButton;
class QTableWidget;
class NetPlayBrowser : public QDialog
{
Q_OBJECT
public:
explicit NetPlayBrowser(QWidget* parent = nullptr);
~NetPlayBrowser();
2019-03-30 07:50:57 -06:00
void accept() override;
signals:
void Join();
private:
void CreateWidgets();
void ConnectWidgets();
void Refresh();
void RefreshLoop();
void UpdateList();
2019-03-30 07:50:57 -06:00
void OnSelectionChanged();
QComboBox* m_region_combo;
QLabel* m_status_label;
QPushButton* m_button_refresh;
QTableWidget* m_table_widget;
QDialogButtonBox* m_button_box;
QLineEdit* m_edit_name;
QLineEdit* m_edit_game_id;
2019-04-07 15:53:13 -06:00
QCheckBox* m_check_hide_incompatible;
2019-03-30 07:50:57 -06:00
QRadioButton* m_radio_all;
QRadioButton* m_radio_private;
QRadioButton* m_radio_public;
std::vector<NetPlaySession> m_sessions;
std::thread m_refresh_thread;
std::optional<std::map<std::string, std::string>> m_refresh_filters;
std::mutex m_refresh_filters_mutex;
Common::Flag m_refresh_run;
Common::Event m_refresh_event;
2019-03-30 07:50:57 -06:00
};