mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-04-20 19:44:57 +00:00
fix browser
This commit is contained in:
parent
2bf5f25d98
commit
4d0fbc1a87
2 changed files with 69 additions and 12 deletions
|
@ -64,7 +64,61 @@ void NetPlayBrowser::CreateWidgets()
|
|||
{
|
||||
auto* layout = new QVBoxLayout;
|
||||
|
||||
m_table_widget = new QTableWidget;
|
||||
m_table_widget->setTabKeyNavigation(false);
|
||||
|
||||
m_table_widget->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||
m_table_widget->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
m_table_widget->setWordWrap(false);
|
||||
|
||||
m_region_combo = new QComboBox;
|
||||
|
||||
m_region_combo->addItem(tr("Any Region"));
|
||||
|
||||
for (const auto& region : NetPlayIndex::GetRegions())
|
||||
{
|
||||
m_region_combo->addItem(
|
||||
tr("%1 (%2)").arg(tr(region.second.c_str())).arg(QString::fromStdString(region.first)),
|
||||
QString::fromStdString(region.first));
|
||||
}
|
||||
|
||||
m_region_combo->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
|
||||
|
||||
m_status_label = new QLabel;
|
||||
m_button_box = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
m_button_refresh = new NonDefaultQPushButton(tr("Refresh"));
|
||||
m_edit_name = new QLineEdit;
|
||||
m_edit_game_id = new QLineEdit;
|
||||
m_check_hide_incompatible = new QCheckBox(tr("Hide Incompatible Sessions"));
|
||||
m_check_hide_ingame = new QCheckBox(tr("Hide In-Game Sessions"));
|
||||
|
||||
m_check_hide_incompatible->setChecked(true);
|
||||
|
||||
m_radio_all = new QRadioButton(tr("Private and Public"));
|
||||
m_radio_private = new QRadioButton(tr("Private"));
|
||||
m_radio_public = new QRadioButton(tr("Public"));
|
||||
|
||||
m_radio_all->setChecked(true);
|
||||
|
||||
auto* filter_box = new QGroupBox(tr("Filters"));
|
||||
auto* filter_layout = new QGridLayout;
|
||||
filter_box->setLayout(filter_layout);
|
||||
|
||||
filter_layout->addWidget(new QLabel(tr("Region:")), 0, 0);
|
||||
filter_layout->addWidget(m_region_combo, 0, 1, 1, -1);
|
||||
filter_layout->addWidget(new QLabel(tr("Name:")), 1, 0);
|
||||
filter_layout->addWidget(m_edit_name, 1, 1, 1, -1);
|
||||
filter_layout->addWidget(new QLabel(tr("Game ID:")), 2, 0);
|
||||
filter_layout->addWidget(m_edit_game_id, 2, 1, 1, -1);
|
||||
filter_layout->addWidget(m_radio_all, 3, 1);
|
||||
filter_layout->addWidget(m_radio_public, 3, 2);
|
||||
filter_layout->addWidget(m_radio_private, 3, 3);
|
||||
filter_layout->addItem(new QSpacerItem(4, 1, QSizePolicy::Expanding), 3, 4);
|
||||
filter_layout->addWidget(m_check_hide_incompatible, 4, 1, 1, -1);
|
||||
filter_layout->addWidget(m_check_hide_ingame, 5, 1, 1, -1);
|
||||
|
||||
layout->addWidget(m_table_widget);
|
||||
layout->addWidget(filter_box);
|
||||
layout->addWidget(m_status_label);
|
||||
layout->addWidget(m_button_box);
|
||||
|
||||
|
@ -166,7 +220,7 @@ void NetPlayBrowser::UpdateList()
|
|||
|
||||
m_table_widget->clear();
|
||||
m_table_widget->setColumnCount(7);
|
||||
m_table_widget->setHorizontalHeaderLabels({tr("Name"), tr("Password?"),
|
||||
m_table_widget->setHorizontalHeaderLabels({tr("Region"), tr("Name"), tr("Password?"),
|
||||
tr("In-Game?"), tr("Game"), tr("Players"),
|
||||
tr("Version")});
|
||||
|
||||
|
@ -185,20 +239,26 @@ void NetPlayBrowser::UpdateList()
|
|||
{
|
||||
const auto& entry = m_sessions[i];
|
||||
|
||||
auto* region = new QTableWidgetItem(QString::fromStdString(entry.region));
|
||||
auto* name = new QTableWidgetItem(QString::fromStdString(entry.name));
|
||||
auto* password = new QTableWidgetItem(entry.has_password ? tr("Yes") : tr("No"));
|
||||
auto* in_game = new QTableWidgetItem(entry.in_game ? tr("Yes") : tr("No"));
|
||||
auto* game_id = new QTableWidgetItem(QString::fromStdString(entry.game_id));
|
||||
auto* player_count = new QTableWidgetItem(QStringLiteral("%1").arg(entry.player_count));
|
||||
auto* version = new QTableWidgetItem(QString::fromStdString(entry.version));
|
||||
|
||||
const bool enabled = Common::GetScmDescStr() == entry.version;
|
||||
const bool enabled = true;
|
||||
|
||||
for (const auto& item : {name, in_game, game_id, player_count})
|
||||
for (const auto& item : {region, name, password, in_game, game_id, player_count, version})
|
||||
item->setFlags(enabled ? Qt::ItemIsEnabled | Qt::ItemIsSelectable : Qt::NoItemFlags);
|
||||
|
||||
m_table_widget->setItem(i, 0, region);
|
||||
m_table_widget->setItem(i, 1, name);
|
||||
m_table_widget->setItem(i, 2, in_game);
|
||||
m_table_widget->setItem(i, 3, game_id);
|
||||
m_table_widget->setItem(i, 4, player_count);
|
||||
m_table_widget->setItem(i, 2, password);
|
||||
m_table_widget->setItem(i, 3, in_game);
|
||||
m_table_widget->setItem(i, 4, game_id);
|
||||
m_table_widget->setItem(i, 5, player_count);
|
||||
m_table_widget->setItem(i, 6, version);
|
||||
}
|
||||
|
||||
m_status_label->setText(
|
||||
|
@ -318,11 +378,8 @@ void NetPlayBrowser::RestoreSettings()
|
|||
else if (visibility == QStringLiteral("private"))
|
||||
m_radio_private->setChecked(true);
|
||||
|
||||
m_check_hide_incompatible->setChecked(true);
|
||||
m_check_hide_ingame->setChecked(true);
|
||||
|
||||
/* m_check_hide_incompatible->setChecked(
|
||||
m_check_hide_incompatible->setChecked(
|
||||
settings.value(QStringLiteral("netplaybrowser/hide_incompatible"), true).toBool());
|
||||
m_check_hide_ingame->setChecked(
|
||||
settings.value(QStringLiteral("netplaybrowser/hide_ingame")).toBool());*/
|
||||
settings.value(QStringLiteral("netplaybrowser/hide_ingame")).toBool());
|
||||
}
|
||||
|
|
|
@ -605,5 +605,5 @@ void NetPlaySetupDialog::acceptBrowser()
|
|||
else
|
||||
Config::SetBaseOrCurrent(Config::NETPLAY_ADDRESS, server_id);
|
||||
|
||||
emit JoinBrowser();
|
||||
emit Join();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue