Qt: Fix inability to select translated video backend names

This commit is contained in:
Techjar 2018-06-30 04:28:45 -04:00
parent e22c5333ab
commit b59387a65d
2 changed files with 28 additions and 58 deletions

View File

@ -62,7 +62,8 @@ void GeneralWidget::CreateWidgets()
m_video_box->setLayout(m_video_layout);
for (auto& backend : g_available_video_backends)
m_backend_combo->addItem(tr(backend->GetDisplayName().c_str()));
m_backend_combo->addItem(tr(backend->GetDisplayName().c_str()),
QVariant(QString::fromStdString(backend->GetName())));
m_video_layout->addWidget(new QLabel(tr("Backend:")), 0, 0);
m_video_layout->addWidget(m_backend_combo, 0, 1);
@ -148,16 +149,8 @@ void GeneralWidget::ConnectWidgets()
void GeneralWidget::LoadSettings()
{
// Video Backend
for (const auto& backend : g_available_video_backends)
{
if (backend->GetName() == SConfig::GetInstance().m_strVideoBackend)
{
backend->InitBackendInfo();
m_backend_combo->setCurrentIndex(
m_backend_combo->findText(tr(backend->GetDisplayName().c_str())));
break;
}
}
m_backend_combo->setCurrentIndex(m_backend_combo->findData(
QVariant(QString::fromStdString(SConfig::GetInstance().m_strVideoBackend))));
// Enable Fullscreen
m_enable_fullscreen->setChecked(SConfig::GetInstance().bFullscreen);
@ -172,43 +165,28 @@ void GeneralWidget::LoadSettings()
void GeneralWidget::SaveSettings()
{
// Video Backend
for (const auto& backend : g_available_video_backends)
{
if (backend->GetDisplayName() == m_backend_combo->currentText().toStdString())
{
const auto current_backend = backend->GetName();
const auto current_backend = m_backend_combo->currentData().toString().toStdString();
if (SConfig::GetInstance().m_strVideoBackend != current_backend)
{
if (backend->GetName() == "Software Renderer")
if (current_backend == "Software Renderer")
{
QMessageBox confirm_sw(this);
confirm_sw.setIcon(QMessageBox::Warning);
confirm_sw.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
confirm_sw.setWindowTitle(tr("Confirm backend change"));
confirm_sw.setText(
tr("Software rendering is an order of magnitude slower than using the "
confirm_sw.setText(tr("Software rendering is an order of magnitude slower than using the "
"other backends.\nIt's only useful for debugging purposes.\nDo you "
"really want to enable software rendering? If unsure, select 'No'."));
if (confirm_sw.exec() != QMessageBox::Yes)
{
for (const auto& prv_backend : g_available_video_backends)
{
if (prv_backend->GetName() == SConfig::GetInstance().m_strVideoBackend)
{
m_backend_combo->setCurrentIndex(
m_backend_combo->findText(tr(prv_backend->GetDisplayName().c_str())));
break;
}
}
m_backend_combo->setCurrentIndex(m_backend_combo->findData(
QVariant(QString::fromStdString(SConfig::GetInstance().m_strVideoBackend))));
return;
}
}
emit BackendChanged(QString::fromStdString(current_backend));
break;
}
}
}
// Enable Fullscreen
@ -319,15 +297,7 @@ void GeneralWidget::AddDescriptions()
void GeneralWidget::OnBackendChanged(const QString& backend_name)
{
for (const auto& backend : g_available_video_backends)
{
if (QString::fromStdString(backend->GetName()) == backend_name)
{
m_backend_combo->setCurrentIndex(
m_backend_combo->findText(tr(backend->GetDisplayName().c_str())));
break;
}
}
m_backend_combo->setCurrentIndex(m_backend_combo->findData(QVariant(backend_name)));
const bool old = m_adapter_combo->blockSignals(true);
@ -343,10 +313,10 @@ void GeneralWidget::OnBackendChanged(const QString& backend_name)
m_adapter_combo->setCurrentIndex(g_Config.iAdapter);
m_adapter_combo->setEnabled(supports_adapters);
m_adapter_combo->setToolTip(
supports_adapters ? QStringLiteral("") :
m_adapter_combo->setToolTip(supports_adapters ?
QStringLiteral("") :
tr("%1 doesn't support this feature.")
.arg(QString::fromStdString(g_video_backend->GetDisplayName())));
.arg(tr(g_video_backend->GetDisplayName().c_str())));
m_adapter_combo->blockSignals(old);
}

View File

@ -111,8 +111,8 @@ void GraphicsWindow::OnBackendChanged(const QString& backend_name)
}
}
setWindowTitle(tr("%1 Graphics Configuration")
.arg(QString::fromStdString(g_video_backend->GetDisplayName())));
setWindowTitle(
tr("%1 Graphics Configuration").arg(tr(g_video_backend->GetDisplayName().c_str())));
if (backend_name == QStringLiteral("Software Renderer") && m_tab_widget->count() > 1)
{
m_tab_widget->clear();