ui: Status bars dock button becomes dock/undock button

For people not used to the Yuzu UI it's not always clear if the emulated
console is docked or not.  The other items update their text when clicked,
this PR brings the DOCK button in line with this.

DOCK -> DOCKED or HANDHELD
This commit is contained in:
Kyle Kienapfel 2022-06-01 00:59:58 -07:00
parent 8a858c2623
commit 054732210e
5 changed files with 50 additions and 5 deletions

View File

@ -58,6 +58,19 @@ QPushButton#GPUStatusBarButton:!checked {
color: #109010; color: #109010;
} }
QPushButton#DockingStatusBarButton {
min-width: 0px;
color: #000000;
border: 1px solid transparent;
background-color: transparent;
padding: 0px 3px 0px 3px;
text-align: center;
}
QPushButton#DockingStatusBarButton:hover {
border: 1px solid #76797C;
}
QPushButton#buttonRefreshDevices { QPushButton#buttonRefreshDevices {
min-width: 21px; min-width: 21px;
min-height: 21px; min-height: 21px;

View File

@ -1304,6 +1304,19 @@ QPushButton#GPUStatusBarButton:!checked {
color: #40dd40; color: #40dd40;
} }
QPushButton#DockingStatusBarButton {
min-width: 0px;
color: #ffffff;
border: 1px solid transparent;
background-color: transparent;
padding: 0px 3px 0px 3px;
text-align: center;
}
QPushButton#DockingStatusBarButton:hover {
border: 1px solid #76797C;
}
QPushButton#buttonRefreshDevices { QPushButton#buttonRefreshDevices {
min-width: 23px; min-width: 23px;
min-height: 23px; min-height: 23px;

View File

@ -2207,6 +2207,19 @@ QPushButton#GPUStatusBarButton:!checked {
color: #40dd40; color: #40dd40;
} }
QPushButton#DockingStatusBarButton {
min-width: 0px;
color: #ffffff;
border: 1px solid transparent;
background-color: transparent;
padding: 0px 3px 0px 3px;
text-align: center;
}
QPushButton#DockingStatusBarButton:hover {
border: 1px solid #76797C;
}
QPushButton#buttonRefreshDevices { QPushButton#buttonRefreshDevices {
min-width: 19px; min-width: 19px;
min-height: 19px; min-height: 19px;

View File

@ -827,12 +827,11 @@ void GMainWindow::InitializeWidgets() {
// Setup Dock button // Setup Dock button
dock_status_button = new QPushButton(); dock_status_button = new QPushButton();
dock_status_button->setObjectName(QStringLiteral("TogglableStatusBarButton")); dock_status_button->setObjectName(QStringLiteral("DockingStatusBarButton"));
dock_status_button->setFocusPolicy(Qt::NoFocus); dock_status_button->setFocusPolicy(Qt::NoFocus);
connect(dock_status_button, &QPushButton::clicked, this, &GMainWindow::OnToggleDockedMode); connect(dock_status_button, &QPushButton::clicked, this, &GMainWindow::OnToggleDockedMode);
dock_status_button->setText(tr("DOCK"));
dock_status_button->setCheckable(true); dock_status_button->setCheckable(true);
dock_status_button->setChecked(Settings::values.use_docked_mode.GetValue()); UpdateDockedButton();
statusBar()->insertPermanentWidget(0, dock_status_button); statusBar()->insertPermanentWidget(0, dock_status_button);
gpu_accuracy_button = new QPushButton(); gpu_accuracy_button = new QPushButton();
@ -2858,7 +2857,7 @@ void GMainWindow::OnToggleDockedMode() {
} }
Settings::values.use_docked_mode.SetValue(!is_docked); Settings::values.use_docked_mode.SetValue(!is_docked);
dock_status_button->setChecked(!is_docked); UpdateDockedButton();
OnDockedModeChanged(is_docked, !is_docked, *system); OnDockedModeChanged(is_docked, !is_docked, *system);
} }
@ -3224,6 +3223,12 @@ void GMainWindow::UpdateGPUAccuracyButton() {
} }
} }
void GMainWindow::UpdateDockedButton() {
const bool is_docked = Settings::values.use_docked_mode.GetValue();
dock_status_button->setChecked(is_docked);
dock_status_button->setText(is_docked ? tr("DOCKED") : tr("HANDHELD"));
}
void GMainWindow::UpdateFilterText() { void GMainWindow::UpdateFilterText() {
const auto filter = Settings::values.scaling_filter.GetValue(); const auto filter = Settings::values.scaling_filter.GetValue();
switch (filter) { switch (filter) {
@ -3267,10 +3272,10 @@ void GMainWindow::UpdateAAText() {
} }
void GMainWindow::UpdateStatusButtons() { void GMainWindow::UpdateStatusButtons() {
dock_status_button->setChecked(Settings::values.use_docked_mode.GetValue());
renderer_status_button->setChecked(Settings::values.renderer_backend.GetValue() == renderer_status_button->setChecked(Settings::values.renderer_backend.GetValue() ==
Settings::RendererBackend::Vulkan); Settings::RendererBackend::Vulkan);
UpdateGPUAccuracyButton(); UpdateGPUAccuracyButton();
UpdateDockedButton();
UpdateFilterText(); UpdateFilterText();
UpdateAAText(); UpdateAAText();
} }

View File

@ -320,6 +320,7 @@ private:
void MigrateConfigFiles(); void MigrateConfigFiles();
void UpdateWindowTitle(std::string_view title_name = {}, std::string_view title_version = {}, void UpdateWindowTitle(std::string_view title_name = {}, std::string_view title_version = {},
std::string_view gpu_vendor = {}); std::string_view gpu_vendor = {});
void UpdateDockedButton();
void UpdateFilterText(); void UpdateFilterText();
void UpdateAAText(); void UpdateAAText();
void UpdateStatusBar(); void UpdateStatusBar();