mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-13 18:28:35 +12:00
Qt: fix play button state when booting rpcs3 for the first time
This commit is contained in:
parent
934a2eb9fa
commit
091dcc1052
4 changed files with 34 additions and 13 deletions
|
@ -1,4 +1,4 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <QTableWidget>
|
#include <QTableWidget>
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
|
|
|
@ -126,7 +126,7 @@ game_list_frame::game_list_frame(std::shared_ptr<gui_settings> gui_settings, std
|
||||||
|
|
||||||
// Events
|
// Events
|
||||||
connect(m_game_list, &QTableWidget::customContextMenuRequested, this, &game_list_frame::ShowContextMenu);
|
connect(m_game_list, &QTableWidget::customContextMenuRequested, this, &game_list_frame::ShowContextMenu);
|
||||||
connect(m_game_list, &QTableWidget::currentItemChanged, this, &game_list_frame::itemSelectedSlot);
|
connect(m_game_list, &QTableWidget::itemSelectionChanged, this, &game_list_frame::itemSelectionChangedSlot);
|
||||||
connect(m_game_list, &QTableWidget::itemDoubleClicked, this, &game_list_frame::doubleClickedSlot);
|
connect(m_game_list, &QTableWidget::itemDoubleClicked, this, &game_list_frame::doubleClickedSlot);
|
||||||
|
|
||||||
connect(m_game_list->horizontalHeader(), &QHeaderView::sectionClicked, this, &game_list_frame::OnColClicked);
|
connect(m_game_list->horizontalHeader(), &QHeaderView::sectionClicked, this, &game_list_frame::OnColClicked);
|
||||||
|
@ -138,7 +138,7 @@ game_list_frame::game_list_frame(std::shared_ptr<gui_settings> gui_settings, std
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(m_game_grid, &QTableWidget::customContextMenuRequested, this, &game_list_frame::ShowContextMenu);
|
connect(m_game_grid, &QTableWidget::customContextMenuRequested, this, &game_list_frame::ShowContextMenu);
|
||||||
connect(m_game_grid, &QTableWidget::currentItemChanged, this, &game_list_frame::itemSelectedSlot);
|
connect(m_game_grid, &QTableWidget::itemSelectionChanged, this, &game_list_frame::itemSelectionChangedSlot);
|
||||||
connect(m_game_grid, &QTableWidget::itemDoubleClicked, this, &game_list_frame::doubleClickedSlot);
|
connect(m_game_grid, &QTableWidget::itemDoubleClicked, this, &game_list_frame::doubleClickedSlot);
|
||||||
|
|
||||||
connect(m_game_compat.get(), &game_compatibility::DownloadStarted, [this]()
|
connect(m_game_compat.get(), &game_compatibility::DownloadStarted, [this]()
|
||||||
|
@ -815,7 +815,7 @@ void game_list_frame::Refresh(const bool from_drive, const bool scroll_after)
|
||||||
const int scroll_position = m_game_grid->verticalScrollBar()->value();
|
const int scroll_position = m_game_grid->verticalScrollBar()->value();
|
||||||
PopulateGameGrid(games_per_row, m_icon_size, m_icon_color);
|
PopulateGameGrid(games_per_row, m_icon_size, m_icon_color);
|
||||||
connect(m_game_grid, &QTableWidget::customContextMenuRequested, this, &game_list_frame::ShowContextMenu);
|
connect(m_game_grid, &QTableWidget::customContextMenuRequested, this, &game_list_frame::ShowContextMenu);
|
||||||
connect(m_game_grid, &QTableWidget::currentItemChanged, this, &game_list_frame::itemSelectedSlot);
|
connect(m_game_grid, &QTableWidget::itemSelectionChanged, this, &game_list_frame::itemSelectionChangedSlot);
|
||||||
connect(m_game_grid, &QTableWidget::itemDoubleClicked, this, &game_list_frame::doubleClickedSlot);
|
connect(m_game_grid, &QTableWidget::itemDoubleClicked, this, &game_list_frame::doubleClickedSlot);
|
||||||
m_central_widget->addWidget(m_game_grid);
|
m_central_widget->addWidget(m_game_grid);
|
||||||
m_central_widget->setCurrentWidget(m_game_grid);
|
m_central_widget->setCurrentWidget(m_game_grid);
|
||||||
|
@ -894,16 +894,23 @@ void game_list_frame::doubleClickedSlot(QTableWidgetItem *item)
|
||||||
Q_EMIT RequestBoot(game);
|
Q_EMIT RequestBoot(game);
|
||||||
}
|
}
|
||||||
|
|
||||||
void game_list_frame::itemSelectedSlot(QTableWidgetItem* current, QTableWidgetItem* /*previous*/)
|
void game_list_frame::itemSelectionChangedSlot()
|
||||||
{
|
{
|
||||||
if (current)
|
game_info game = nullptr;
|
||||||
|
|
||||||
|
if (m_is_list_layout)
|
||||||
{
|
{
|
||||||
Q_EMIT NotifyGameSelection(GetGameInfoByMode(current));
|
if (const auto item = m_game_list->item(m_game_list->currentRow(), gui::column_icon); item->isSelected())
|
||||||
|
{
|
||||||
|
game = GetGameInfoByMode(item);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (const auto item = m_game_grid->currentItem(); item->isSelected())
|
||||||
{
|
{
|
||||||
Q_EMIT NotifyGameSelection(nullptr);
|
game = GetGameInfoByMode(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Q_EMIT NotifyGameSelection(game);
|
||||||
}
|
}
|
||||||
|
|
||||||
void game_list_frame::ShowContextMenu(const QPoint &pos)
|
void game_list_frame::ShowContextMenu(const QPoint &pos)
|
||||||
|
@ -1961,6 +1968,7 @@ void game_list_frame::PopulateGameList()
|
||||||
|
|
||||||
std::string selected_item = CurrentSelectionIconPath();
|
std::string selected_item = CurrentSelectionIconPath();
|
||||||
|
|
||||||
|
m_game_list->clearSelection();
|
||||||
m_game_list->clearContents();
|
m_game_list->clearContents();
|
||||||
m_game_list->setRowCount(m_game_data.size());
|
m_game_list->setRowCount(m_game_data.size());
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,7 @@ private Q_SLOTS:
|
||||||
void OnColClicked(int col);
|
void OnColClicked(int col);
|
||||||
void ShowContextMenu(const QPoint &pos);
|
void ShowContextMenu(const QPoint &pos);
|
||||||
void doubleClickedSlot(QTableWidgetItem *item);
|
void doubleClickedSlot(QTableWidgetItem *item);
|
||||||
void itemSelectedSlot(QTableWidgetItem* current, QTableWidgetItem* previous);
|
void itemSelectionChangedSlot();
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void GameListFrameClosed();
|
void GameListFrameClosed();
|
||||||
void NotifyGameSelection(const game_info& game);
|
void NotifyGameSelection(const game_info& game);
|
||||||
|
|
|
@ -132,13 +132,14 @@ void main_window::Init()
|
||||||
|
|
||||||
if (enable_play_last)
|
if (enable_play_last)
|
||||||
{
|
{
|
||||||
ui->sysPauseAct->setEnabled(true);
|
|
||||||
ui->sysPauseAct->setText(tr("&Play last played game\tCtrl+E"));
|
ui->sysPauseAct->setText(tr("&Play last played game\tCtrl+E"));
|
||||||
ui->sysPauseAct->setIcon(m_icon_play);
|
ui->sysPauseAct->setIcon(m_icon_play);
|
||||||
ui->toolbar_start->setToolTip(start_toolip);
|
ui->toolbar_start->setToolTip(start_toolip);
|
||||||
ui->toolbar_start->setEnabled(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ui->sysPauseAct->setEnabled(enable_play_last);
|
||||||
|
ui->toolbar_start->setEnabled(enable_play_last);
|
||||||
|
|
||||||
// create tool buttons for the taskbar thumbnail
|
// create tool buttons for the taskbar thumbnail
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
m_thumb_bar = new QWinThumbnailToolBar(this);
|
m_thumb_bar = new QWinThumbnailToolBar(this);
|
||||||
|
@ -1767,6 +1768,8 @@ void main_window::CreateDockWindows()
|
||||||
{
|
{
|
||||||
QString tooltip;
|
QString tooltip;
|
||||||
|
|
||||||
|
bool enable_play_buttons = true;
|
||||||
|
|
||||||
if (game) // A game was selected
|
if (game) // A game was selected
|
||||||
{
|
{
|
||||||
const std::string title_and_title_id = game->info.name + " [" + game->info.serial + "]";
|
const std::string title_and_title_id = game->info.name + " [" + game->info.serial + "]";
|
||||||
|
@ -1807,9 +1810,19 @@ void main_window::CreateDockWindows()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ui->toolbar_start->setEnabled(false);
|
enable_play_buttons = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
enable_play_buttons = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->toolbar_start->setEnabled(enable_play_buttons);
|
||||||
|
ui->sysPauseAct->setEnabled(enable_play_buttons);
|
||||||
|
#ifdef _WIN32
|
||||||
|
m_thumb_playPause->setEnabled(enable_play_buttons);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!tooltip.isEmpty())
|
if (!tooltip.isEmpty())
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue