diff --git a/rpcs3/rpcs3qt/game_list.cpp b/rpcs3/rpcs3qt/game_list.cpp index cbd359ab48..21f00f2256 100644 --- a/rpcs3/rpcs3qt/game_list.cpp +++ b/rpcs3/rpcs3qt/game_list.cpp @@ -35,6 +35,15 @@ game_list::game_list() : QTableWidget(), game_list_base() }); } +void game_list::stop_movie() +{ + if (m_last_hover_item) + { + m_last_hover_item->set_active(false); + m_last_hover_item = nullptr; + } +} + void game_list::sync_header_actions(std::map& actions, std::function get_visibility) { ensure(get_visibility); diff --git a/rpcs3/rpcs3qt/game_list.h b/rpcs3/rpcs3qt/game_list.h index 6d5a3f5a3e..34e7cba059 100644 --- a/rpcs3/rpcs3qt/game_list.h +++ b/rpcs3/rpcs3qt/game_list.h @@ -23,6 +23,8 @@ class game_list : public QTableWidget, public game_list_base public: game_list(); + void stop_movie(); + void sync_header_actions(std::map& actions, std::function get_visibility); void create_header_actions(std::map& actions, std::function get_visibility, std::function set_visibility); diff --git a/rpcs3/rpcs3qt/game_list_grid.cpp b/rpcs3/rpcs3qt/game_list_grid.cpp index 04dd3a4e98..72cf5816a2 100644 --- a/rpcs3/rpcs3qt/game_list_grid.cpp +++ b/rpcs3/rpcs3qt/game_list_grid.cpp @@ -35,6 +35,17 @@ game_list_grid::game_list_grid() }); } +void game_list_grid::stop_movie() +{ + for (flow_widget_item* flow_item : items()) + { + if (game_list_grid_item* item = static_cast(flow_item)) + { + item->set_active(false); + } + } +} + void game_list_grid::clear_list() { clear(); @@ -145,6 +156,9 @@ void game_list_grid::populate( QApplication::processEvents(); select_items(selected_items); + + // Prevent playing unwanted movie + stop_movie(); } void game_list_grid::repaint_icons(std::vector& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio) diff --git a/rpcs3/rpcs3qt/game_list_grid.h b/rpcs3/rpcs3qt/game_list_grid.h index 0aebbe0547..e888e0ac08 100644 --- a/rpcs3/rpcs3qt/game_list_grid.h +++ b/rpcs3/rpcs3qt/game_list_grid.h @@ -12,6 +12,8 @@ class game_list_grid : public flow_widget, public game_list_base public: explicit game_list_grid(); + void stop_movie(); + void clear_list() override; void populate( diff --git a/rpcs3/rpcs3qt/game_list_table.cpp b/rpcs3/rpcs3qt/game_list_table.cpp index ca157c5183..fc393e4667 100644 --- a/rpcs3/rpcs3qt/game_list_table.cpp +++ b/rpcs3/rpcs3qt/game_list_table.cpp @@ -424,6 +424,9 @@ void game_list_table::populate( } } Q_EMIT itemSelectionChanged(); + + // Prevent playing unwanted movie + stop_movie(); } void game_list_table::repaint_icons(std::vector& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio) diff --git a/rpcs3/rpcs3qt/main_window.cpp b/rpcs3/rpcs3qt/main_window.cpp index b5505592b2..251b1d937f 100644 --- a/rpcs3/rpcs3qt/main_window.cpp +++ b/rpcs3/rpcs3qt/main_window.cpp @@ -3543,10 +3543,10 @@ void main_window::CreateConnects() connect(ui->downloadIntegrityDbAct, &QAction::triggered, this, [this]() { - ensure(m_game_list_frame->GetIsoIntegrity())->download(); - ensure(m_game_list_frame->GetPsnContentIntegrity())->download(); - ensure(m_game_list_frame->GetPsnDlcIntegrity())->download(); - ensure(m_game_list_frame->GetPsnUpdateIntegrity())->download(); + m_game_list_frame->GetIsoIntegrity()->download(); + m_game_list_frame->GetPsnContentIntegrity()->download(); + m_game_list_frame->GetPsnDlcIntegrity()->download(); + m_game_list_frame->GetPsnUpdateIntegrity()->download(); }); connect(ui->downloadCompatDbAct, &QAction::triggered, this, [this]()