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(); if (SConfig::GetInstance().m_strVideoBackend != current_backend) { SConfig::GetInstance().m_strVideoBackend = current_backend; if (backend->GetName() == "Software Renderer") { QMessageBox confirm_sw; confirm_sw.setIcon(QMessageBox::Warning); confirm_sw.setStandardButtons(QMessageBox::Yes | QMessageBox::No); 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; } } return; } } SConfig::GetInstance().m_strVideoBackend = current_backend; backend->InitBackendInfo(); emit BackendChanged(QString::fromStdString(current_backend)); break; } } } // Enable Fullscreen SConfig::GetInstance().bFullscreen = m_enable_fullscreen->isChecked(); // Hide Cursor SConfig::GetInstance().bHideCursor = m_hide_cursor->isChecked(); // Render to Main Window SConfig::GetInstance().bRenderToMain = m_render_main_window->isChecked(); // Keep Window on Top Settings::Instance().SetKeepWindowOnTop(m_keep_window_top->isChecked()); // Autoadjust windowsize SConfig::GetInstance().bRenderWindowAutoSize = m_autoadjust_window_size->isChecked(); }
GeneralWidget::GeneralWidget(X11Utils::XRRConfiguration* xrr_config, GraphicsWindow* parent) : GraphicsWidget(parent), m_xrr_config(xrr_config) { CreateWidgets(); LoadSettings(); ConnectWidgets(); AddDescriptions(); emit BackendChanged(QString::fromStdString(SConfig::GetInstance().m_strVideoBackend)); connect(parent, &GraphicsWindow::BackendChanged, this, &GeneralWidget::OnBackendChanged); connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [=](Core::State state) { OnEmulationStateChanged(state != Core::State::Uninitialized); }); }
void GraphicsWindow::OnBackendChanged(const QString& backend) { setWindowTitle(tr("Dolphin %1 Graphics Configuration").arg(backend)); if (backend == QStringLiteral("Software Renderer") && m_tab_widget->count() > 1) { m_tab_widget->clear(); m_tab_widget->addTab(m_software_renderer, tr("Software Renderer")); } if (backend != QStringLiteral("Software Renderer") && m_tab_widget->count() == 1) { m_tab_widget->clear(); m_tab_widget->addTab(m_general_widget, tr("General")); m_tab_widget->addTab(m_enhancements_widget, tr("Enhancements")); m_tab_widget->addTab(m_hacks_widget, tr("Hacks")); m_tab_widget->addTab(m_advanced_widget, tr("Advanced")); } emit BackendChanged(backend); }
void GraphicsWindow::OnBackendChanged(const QString& backend_name) { SConfig::GetInstance().m_strVideoBackend = backend_name.toStdString(); VideoBackendBase::PopulateBackendInfo(); 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(); m_tab_widget->addTab(m_wrapped_software, tr("Software Renderer")); } if (backend_name != QStringLiteral("Software Renderer") && m_tab_widget->count() == 1) { m_tab_widget->clear(); m_tab_widget->addTab(m_wrapped_general, tr("General")); m_tab_widget->addTab(m_wrapped_enhancements, tr("Enhancements")); m_tab_widget->addTab(m_wrapped_hacks, tr("Hacks")); m_tab_widget->addTab(m_wrapped_advanced, tr("Advanced")); } emit BackendChanged(backend_name); }