Browse Source

Add game list refresh button

nice race condition

Signed-off-by: swurl <swurl@swurl.xyz>
pull/126/head
swurl 10 months ago
committed by crueter
parent
commit
50e121a705
  1. 12
      dist/qt_themes/default/style.qss
  2. 12
      dist/qt_themes/default_dark/style.qss
  3. 13
      dist/qt_themes/qdarkstyle/style.qss
  4. 13
      dist/qt_themes/qdarkstyle_midnight_blue/style.qss
  5. 5
      src/yuzu/game_list.h
  6. 20
      src/yuzu/main.cpp
  7. 2
      src/yuzu/main.h

12
dist/qt_themes/default/style.qss

@ -38,6 +38,18 @@ QPushButton#RendererStatusBarButton:!checked {
color: #0066ff;
}
QPushButton#RefreshButton {
color: #656565;
border: 1px solid transparent;
background-color: transparent;
padding: 0px 3px 0px 3px;
text-align: center;
}
QPushButton#RefreshButton:hover {
border: 1px solid #76797C;
}
QPushButton#GPUStatusBarButton {
color: #656565;
border: 1px solid transparent;

12
dist/qt_themes/default_dark/style.qss

@ -42,6 +42,18 @@ QPushButton#RendererStatusBarButton:!checked {
color: #00ccdd;
}
QPushButton#RefreshButton {
color: #656565;
border: 1px solid transparent;
background-color: transparent;
padding: 0px 3px 0px 3px;
text-align: center;
}
QPushButton#RefreshButton:hover {
border: 1px solid #76797C;
}
QPushButton#GPUStatusBarButton {
color: #656565;
border: 1px solid transparent;

13
dist/qt_themes/qdarkstyle/style.qss

@ -1283,6 +1283,19 @@ QPushButton#RendererStatusBarButton:!checked {
color: #00ccdd;
}
QPushButton#RefreshButton {
min-width: 0px;
color: #656565;
border: 1px solid transparent;
background-color: transparent;
padding: 0px 3px 0px 3px;
text-align: center;
}
QPushButton#RefreshButton:hover {
border: 1px solid #76797C;
}
QPushButton#GPUStatusBarButton {
min-width: 0px;
color: #656565;

13
dist/qt_themes/qdarkstyle_midnight_blue/style.qss

@ -2186,6 +2186,19 @@ QPushButton#RendererStatusBarButton:!checked {
color: #00ccdd;
}
QPushButton#RefreshButton {
min-width: 0px;
color: #656565;
border: 1px solid transparent;
background-color: transparent;
padding: 0px 3px 0px 3px;
text-align: center;
}
QPushButton#RefreshButton:hover {
border: 1px solid #76797C;
}
QPushButton#GPUStatusBarButton {
min-width: 0px;
color: #656565;

5
src/yuzu/game_list.h

@ -106,6 +106,9 @@ public:
static const QStringList supported_file_extensions;
public slots:
void RefreshGameDirectory();
signals:
void BootGame(const QString& game_path, StartGameType type);
void GameChosen(const QString& game_path, const u64 title_id = 0);
@ -147,8 +150,6 @@ private:
private:
void ValidateEntry(const QModelIndex& item);
void RefreshGameDirectory();
void ToggleFavorite(u64 program_id);
void AddFavorite(u64 program_id);
void RemoveFavorite(u64 program_id);

20
src/yuzu/main.cpp

@ -507,6 +507,10 @@ GMainWindow::GMainWindow(bool has_broken_vulkan)
QStringList args = QApplication::arguments();
if (args.size() < 2) {
// Some moron added a race condition to the status bar
// so now we have to make this completely unnecessary call
// to prevent the UI from blowing up.
UpdateUITheme();
return;
}
@ -1296,6 +1300,15 @@ void GMainWindow::InitializeWidgets() {
});
statusBar()->insertPermanentWidget(0, renderer_status_button);
// Setup Refresh Button
refresh_button = new QPushButton();
refresh_button->setIcon(QIcon::fromTheme(QStringLiteral("view-refresh")));
refresh_button->setObjectName(QStringLiteral("RefreshButton"));
refresh_button->setFocusPolicy(Qt::NoFocus);
connect(refresh_button, &QPushButton::clicked, this, &GMainWindow::OnGameListRefresh);
statusBar()->insertPermanentWidget(0, refresh_button);
statusBar()->setVisible(true);
setStyleSheet(QStringLiteral("QStatusBar::item{border: none;}"));
}
@ -2107,6 +2120,7 @@ void GMainWindow::BootGame(const QString& filename, Service::AM::FrontendAppletP
}
status_bar_update_timer.start(500);
renderer_status_button->setDisabled(true);
refresh_button->setDisabled(true);
if (UISettings::values.hide_mouse || Settings::values.mouse_panning) {
render_window->installEventFilter(render_window);
@ -2279,6 +2293,7 @@ void GMainWindow::OnEmulationStopped() {
game_fps_label->setVisible(false);
emu_frametime_label->setVisible(false);
renderer_status_button->setEnabled(!UISettings::values.has_broken_vulkan);
refresh_button->setEnabled(true);
if (!firmware_label->text().isEmpty()) {
firmware_label->setVisible(true);
@ -4476,6 +4491,11 @@ void GMainWindow::OnToggleStatusBar() {
statusBar()->setVisible(ui->action_Show_Status_Bar->isChecked());
}
void GMainWindow::OnGameListRefresh()
{
game_list->RefreshGameDirectory();
}
void GMainWindow::OnAlbum() {
constexpr u64 AlbumId = static_cast<u64>(Service::AM::AppletProgramId::PhotoViewer);
auto bis_system = system->GetFileSystemController().GetSystemNANDContents();

2
src/yuzu/main.h

@ -389,6 +389,7 @@ private slots:
void OnAbout();
void OnToggleFilterBar();
void OnToggleStatusBar();
void OnGameListRefresh();
void OnDisplayTitleBars(bool);
void InitializeHotkeys();
void ToggleFullscreen();
@ -519,6 +520,7 @@ private:
QLabel* firmware_label = nullptr;
QPushButton* gpu_accuracy_button = nullptr;
QPushButton* renderer_status_button = nullptr;
QPushButton* refresh_button = nullptr;
QPushButton* dock_status_button = nullptr;
QPushButton* filter_status_button = nullptr;
QPushButton* aa_status_button = nullptr;

Loading…
Cancel
Save