Qt: Add Refresh button

This commit is contained in:
spycrab 2018-06-04 21:44:46 +02:00
parent 5f29e891d3
commit 4415417deb
7 changed files with 26 additions and 0 deletions

View File

@ -27,6 +27,8 @@ GameListModel::GameListModel(QObject* parent) : QAbstractTableModel(parent)
connect(&Settings::Instance(), &Settings::PathRemoved, &m_tracker, &GameTracker::RemoveDirectory);
connect(&Settings::Instance(), &Settings::PathReloadRequested, &m_tracker,
&GameTracker::ReloadDirectory);
connect(&Settings::Instance(), &Settings::TitleDBReloadRequested, this,
[this] { m_title_database = Core::TitleDatabase(); });
for (const QString& dir : Settings::Instance().GetPaths())
m_tracker.AddDirectory(dir);

View File

@ -442,6 +442,7 @@ void MainWindow::ConnectToolBar()
addToolBar(m_tool_bar);
connect(m_tool_bar, &ToolBar::OpenPressed, this, &MainWindow::Open);
connect(m_tool_bar, &ToolBar::RefreshPressed, this, &MainWindow::RefreshGameList);
connect(m_tool_bar, &ToolBar::PlayPressed, this, [this]() { Play(); });
connect(m_tool_bar, &ToolBar::PausePressed, this, &MainWindow::Pause);
@ -516,6 +517,14 @@ void MainWindow::ConnectStack()
tabifyDockWidget(m_log_widget, m_jit_widget);
}
void MainWindow::RefreshGameList()
{
Settings::Instance().ReloadTitleDB();
for (const auto& path : Settings::Instance().GetPaths())
Settings::Instance().ReloadPath(path);
}
QString MainWindow::PromptFileName()
{
return QFileDialog::getOpenFileName(

View File

@ -68,6 +68,7 @@ signals:
private:
void Open();
void RefreshGameList();
void Play(const std::optional<std::string>& savestate_path = {});
void Pause();
void TogglePause();

View File

@ -128,6 +128,11 @@ void Settings::ReloadPath(const QString& qpath)
emit PathReloadRequested(qpath);
}
void Settings::ReloadTitleDB()
{
emit TitleDBReloadRequested();
}
QString Settings::GetDefaultGame() const
{
return QString::fromStdString(SConfig::GetInstance().m_strDefaultISO);

View File

@ -70,6 +70,7 @@ public:
QString GetDefaultGame() const;
void SetDefaultGame(QString path);
void ReloadPath(const QString& qpath);
void ReloadTitleDB();
// Emulation
int GetStateSlot() const;
@ -135,6 +136,7 @@ signals:
void PathRemoved(const QString&);
void DefaultGameChanged(const QString&);
void PathReloadRequested(const QString&);
void TitleDBReloadRequested();
void HideCursorChanged();
void KeepWindowOnTopChanged(bool top);
void VolumeChanged(int volume);

View File

@ -99,6 +99,10 @@ void ToolBar::MakeActions()
m_set_pc_action = AddAction(this, tr("Set PC"), this, &ToolBar::SetPCPressed);
m_open_action = AddAction(this, tr("Open"), this, &ToolBar::OpenPressed);
m_refresh_action = AddAction(this, tr("Refresh"), this, &ToolBar::RefreshPressed);
addSeparator();
m_pause_play_action = AddAction(this, tr("Play"), this, &ToolBar::PlayPressed);
m_stop_action = AddAction(this, tr("Stop"), this, &ToolBar::StopPressed);
@ -160,6 +164,7 @@ void ToolBar::UpdateIcons()
m_set_pc_action->setIcon(Resources::GetScaledThemeIcon("debugger_show_pc"));
m_open_action->setIcon(Resources::GetScaledThemeIcon("open"));
m_refresh_action->setIcon(Resources::GetScaledThemeIcon("refresh"));
const Core::State state = Core::GetState();
const bool playing = state != Core::State::Uninitialized && state != Core::State::Paused;

View File

@ -23,6 +23,7 @@ public:
void closeEvent(QCloseEvent*) override;
signals:
void OpenPressed();
void RefreshPressed();
void PlayPressed();
void PausePressed();
void StopPressed();
@ -49,6 +50,7 @@ private:
void UpdatePausePlayButtonState(bool playing_state);
QAction* m_open_action;
QAction* m_refresh_action;
QAction* m_pause_play_action;
QAction* m_stop_action;
QAction* m_fullscreen_action;