1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-22 02:32:36 +01:00

Qt: Replace some instances of QMap, QPair and QList

This commit is contained in:
Megamouse 2024-11-12 20:21:44 +01:00
parent e8f730e61f
commit c3729d06d0
26 changed files with 126 additions and 140 deletions

View File

@ -1491,7 +1491,7 @@ namespace vm
{ {
if (auto rsxthr = g_fxo->try_get<rsx::thread>()) if (auto rsxthr = g_fxo->try_get<rsx::thread>())
{ {
for (const auto [event_data1, event_data2] : event_data) for (const auto& [event_data1, event_data2] : event_data)
{ {
rsxthr->on_notify_post_memory_unmapped(event_data1, event_data2); rsxthr->on_notify_post_memory_unmapped(event_data1, event_data2);
} }
@ -1991,7 +1991,7 @@ namespace vm
{ {
if (auto rsxthr = g_fxo->try_get<rsx::thread>()) if (auto rsxthr = g_fxo->try_get<rsx::thread>())
{ {
for (const auto [event_data1, event_data2] : unmap_data) for (const auto& [event_data1, event_data2] : unmap_data)
{ {
rsxthr->on_notify_post_memory_unmapped(event_data1, event_data2); rsxthr->on_notify_post_memory_unmapped(event_data1, event_data2);
} }

View File

@ -538,7 +538,7 @@ bool ds4_pad_handler::GetCalibrationData(DS4Device* ds4Dev) const
// Make sure data 'looks' valid, dongle will report invalid calibration data with no controller connected // Make sure data 'looks' valid, dongle will report invalid calibration data with no controller connected
for (size_t i = 0; i < ds4Dev->calib_data.size(); i++) for (usz i = 0; i < ds4Dev->calib_data.size(); i++)
{ {
CalibData& data = ds4Dev->calib_data[i]; CalibData& data = ds4Dev->calib_data[i];

View File

@ -489,7 +489,7 @@ bool dualsense_pad_handler::get_calibration_data(DualSenseDevice* dev) const
// Make sure data 'looks' valid, dongle will report invalid calibration data with no controller connected // Make sure data 'looks' valid, dongle will report invalid calibration data with no controller connected
for (size_t i = 0; i < dev->calib_data.size(); i++) for (usz i = 0; i < dev->calib_data.size(); i++)
{ {
CalibData& data = dev->calib_data[i]; CalibData& data = dev->calib_data[i];

View File

@ -54,20 +54,20 @@
flow_layout::flow_layout(QWidget* parent, int margin, bool dynamic_spacing, int hSpacing, int vSpacing) flow_layout::flow_layout(QWidget* parent, int margin, bool dynamic_spacing, int hSpacing, int vSpacing)
: QLayout(parent) : QLayout(parent)
, m_dynamic_spacing(dynamic_spacing) , m_dynamic_spacing(dynamic_spacing)
, m_hSpaceInitial(hSpacing) , m_h_space_initial(hSpacing)
, m_vSpaceInitial(vSpacing) , m_v_space_initial(vSpacing)
, m_hSpace(hSpacing) , m_h_space(hSpacing)
, m_vSpace(vSpacing) , m_v_space(vSpacing)
{ {
setContentsMargins(margin, margin, margin, margin); setContentsMargins(margin, margin, margin, margin);
} }
flow_layout::flow_layout(int margin, bool dynamic_spacing, int hSpacing, int vSpacing) flow_layout::flow_layout(int margin, bool dynamic_spacing, int hSpacing, int vSpacing)
: m_dynamic_spacing(dynamic_spacing) : m_dynamic_spacing(dynamic_spacing)
, m_hSpaceInitial(hSpacing) , m_h_space_initial(hSpacing)
, m_vSpaceInitial(vSpacing) , m_v_space_initial(vSpacing)
, m_hSpace(hSpacing) , m_h_space(hSpacing)
, m_vSpace(vSpacing) , m_v_space(vSpacing)
{ {
setContentsMargins(margin, margin, margin, margin); setContentsMargins(margin, margin, margin, margin);
} }
@ -84,21 +84,21 @@ void flow_layout::clear()
delete item->widget(); delete item->widget();
delete item; delete item;
} }
itemList.clear(); m_item_list.clear();
m_positions.clear(); m_positions.clear();
} }
void flow_layout::addItem(QLayoutItem* item) void flow_layout::addItem(QLayoutItem* item)
{ {
m_positions.append(position{ .row = -1, .col = -1 }); m_positions.append(position{ .row = -1, .col = -1 });
itemList.append(item); m_item_list.append(item);
} }
int flow_layout::horizontalSpacing() const int flow_layout::horizontalSpacing() const
{ {
if (m_hSpace >= 0) if (m_h_space >= 0)
{ {
return m_hSpace; return m_h_space;
} }
return smartSpacing(QStyle::PM_LayoutHorizontalSpacing); return smartSpacing(QStyle::PM_LayoutHorizontalSpacing);
@ -106,9 +106,9 @@ int flow_layout::horizontalSpacing() const
int flow_layout::verticalSpacing() const int flow_layout::verticalSpacing() const
{ {
if (m_vSpace >= 0) if (m_v_space >= 0)
{ {
return m_vSpace; return m_v_space;
} }
return smartSpacing(QStyle::PM_LayoutVerticalSpacing); return smartSpacing(QStyle::PM_LayoutVerticalSpacing);
@ -116,20 +116,20 @@ int flow_layout::verticalSpacing() const
int flow_layout::count() const int flow_layout::count() const
{ {
return itemList.size(); return m_item_list.size();
} }
QLayoutItem* flow_layout::itemAt(int index) const QLayoutItem* flow_layout::itemAt(int index) const
{ {
return itemList.value(index); return m_item_list.value(index);
} }
QLayoutItem* flow_layout::takeAt(int index) QLayoutItem* flow_layout::takeAt(int index)
{ {
if (index >= 0 && index < itemList.size()) if (index >= 0 && index < m_item_list.size())
{ {
m_positions.takeAt(index); m_positions.takeAt(index);
return itemList.takeAt(index); return m_item_list.takeAt(index);
} }
return nullptr; return nullptr;
@ -164,7 +164,7 @@ QSize flow_layout::sizeHint() const
QSize flow_layout::minimumSize() const QSize flow_layout::minimumSize() const
{ {
QSize size; QSize size;
for (const QLayoutItem* item : itemList) for (const QLayoutItem* item : m_item_list)
{ {
if (item) if (item)
{ {
@ -196,9 +196,9 @@ int flow_layout::doLayout(const QRect& rect, bool testOnly) const
int width = 0; int width = 0;
int index = 0; int index = 0;
for (; index < itemList.size(); index++) for (; index < m_item_list.size(); index++)
{ {
if (QLayoutItem* item = itemList.at(index)) if (QLayoutItem* item = m_item_list.at(index))
{ {
const int new_width = width + item->sizeHint().width() + (width > 0 ? min_spacing : 0); const int new_width = width + item->sizeHint().width() + (width > 0 ? min_spacing : 0);
@ -213,22 +213,22 @@ int flow_layout::doLayout(const QRect& rect, bool testOnly) const
} }
// Try to evenly distribute the items across the width // Try to evenly distribute the items across the width
m_hSpace = (index == 0) ? -1 : ((available_width - width) / index); m_h_space = (index == 0) ? -1 : ((available_width - width) / index);
if (fits_into_width) if (fits_into_width)
{ {
// Make sure there aren't huge gaps between the items // Make sure there aren't huge gaps between the items
m_hSpace = smartSpacing(QStyle::PM_LayoutHorizontalSpacing); m_h_space = smartSpacing(QStyle::PM_LayoutHorizontalSpacing);
} }
} }
else else
{ {
m_hSpace = m_hSpaceInitial; m_h_space = m_h_space_initial;
} }
for (int i = 0, row = 0, col = 0; i < itemList.size(); i++) for (int i = 0, row = 0, col = 0; i < m_item_list.size(); i++)
{ {
QLayoutItem* item = itemList.at(i); QLayoutItem* item = m_item_list.at(i);
if (!item) if (!item)
continue; continue;

View File

@ -68,7 +68,7 @@ public:
~flow_layout(); ~flow_layout();
void clear(); void clear();
const QList<QLayoutItem*>& item_list() const { return itemList; } const QList<QLayoutItem*>& item_list() const { return m_item_list; }
const QList<position>& positions() const { return m_positions; } const QList<position>& positions() const { return m_positions; }
int rows() const { return m_rows; } int rows() const { return m_rows; }
int cols() const { return m_cols; } int cols() const { return m_cols; }
@ -90,12 +90,12 @@ private:
int doLayout(const QRect& rect, bool testOnly) const; int doLayout(const QRect& rect, bool testOnly) const;
int smartSpacing(QStyle::PixelMetric pm) const; int smartSpacing(QStyle::PixelMetric pm) const;
QList<QLayoutItem*> itemList; QList<QLayoutItem*> m_item_list;
bool m_dynamic_spacing{}; bool m_dynamic_spacing{};
int m_hSpaceInitial{-1}; int m_h_space_initial{-1};
int m_vSpaceInitial{-1}; int m_v_space_initial{-1};
mutable int m_hSpace{-1}; mutable int m_h_space{-1};
mutable int m_vSpace{-1}; mutable int m_v_space{-1};
mutable QList<position> m_positions; mutable QList<position> m_positions;
mutable int m_rows{}; mutable int m_rows{};

View File

@ -34,7 +34,7 @@ void flow_widget::add_widget(flow_widget_item* widget)
{ {
if (widget) if (widget)
{ {
m_widgets << widget; m_widgets.push_back(widget);
m_flow_layout->addWidget(widget); m_flow_layout->addWidget(widget);
connect(widget, &flow_widget_item::navigate, this, &flow_widget::on_navigate); connect(widget, &flow_widget_item::navigate, this, &flow_widget::on_navigate);
@ -48,14 +48,9 @@ void flow_widget::clear()
m_flow_layout->clear(); m_flow_layout->clear();
} }
QList<flow_widget_item*>& flow_widget::items()
{
return m_widgets;
}
flow_widget_item* flow_widget::selected_item() const flow_widget_item* flow_widget::selected_item() const
{ {
if (m_selected_index >= 0 && m_selected_index < m_widgets.size()) if (m_selected_index >= 0 && static_cast<usz>(m_selected_index) < m_widgets.size())
{ {
return ::at32(m_widgets, m_selected_index); return ::at32(m_widgets, m_selected_index);
} }
@ -63,11 +58,6 @@ flow_widget_item* flow_widget::selected_item() const
return nullptr; return nullptr;
} }
QScrollArea* flow_widget::scroll_area() const
{
return m_scroll_area;
}
void flow_widget::paintEvent(QPaintEvent* /*event*/) void flow_widget::paintEvent(QPaintEvent* /*event*/)
{ {
// Needed for stylesheets to apply to QWidgets // Needed for stylesheets to apply to QWidgets
@ -77,7 +67,7 @@ void flow_widget::paintEvent(QPaintEvent* /*event*/)
style()->drawPrimitive(QStyle::PE_Widget, &option, &painter, this); style()->drawPrimitive(QStyle::PE_Widget, &option, &painter, this);
} }
int flow_widget::find_item(const flow_layout::position& pos) s64 flow_widget::find_item(const flow_layout::position& pos)
{ {
if (pos.row < 0 || pos.col < 0) if (pos.row < 0 || pos.col < 0)
{ {
@ -86,7 +76,7 @@ int flow_widget::find_item(const flow_layout::position& pos)
const auto& positions = m_flow_layout->positions(); const auto& positions = m_flow_layout->positions();
for (int i = 0; i < positions.size(); i++) for (s64 i = 0; i < positions.size(); i++)
{ {
if (const auto& other = ::at32(positions, i); other.row == pos.row && other.col == pos.col) if (const auto& other = ::at32(positions, i); other.row == pos.row && other.col == pos.col)
{ {
@ -97,7 +87,7 @@ int flow_widget::find_item(const flow_layout::position& pos)
return -1; return -1;
} }
flow_layout::position flow_widget::find_item(flow_widget_item* item) flow_layout::position flow_widget::find_item(flow_widget_item* item)
{ {
if (item) if (item)
{ {
@ -105,7 +95,7 @@ int flow_widget::find_item(const flow_layout::position& pos)
const auto& positions = m_flow_layout->positions(); const auto& positions = m_flow_layout->positions();
ensure(item_list.size() == positions.size()); ensure(item_list.size() == positions.size());
for (int i = 0; i < item_list.size(); i++) for (s64 i = 0; i < item_list.size(); i++)
{ {
if (const auto& layout_item = ::at32(item_list, i); layout_item && layout_item->widget() == item) if (const auto& layout_item = ::at32(item_list, i); layout_item && layout_item->widget() == item)
{ {
@ -196,9 +186,9 @@ flow_layout::position flow_widget::find_next_item(flow_layout::position current_
void flow_widget::select_item(flow_widget_item* item) void flow_widget::select_item(flow_widget_item* item)
{ {
const flow_layout::position selected_pos = find_item(item); const flow_layout::position selected_pos = find_item(item);
const int selected_index = find_item(selected_pos); const s64 selected_index = find_item(selected_pos);
if (selected_index < 0 || selected_index >= items().size()) if (selected_index < 0 || static_cast<usz>(selected_index) >= items().size())
{ {
m_selected_index = -1; m_selected_index = -1;
return; return;
@ -207,12 +197,12 @@ void flow_widget::select_item(flow_widget_item* item)
m_selected_index = selected_index; m_selected_index = selected_index;
Q_EMIT ItemSelectionChanged(m_selected_index); Q_EMIT ItemSelectionChanged(m_selected_index);
for (int i = 0; i < items().size(); i++) for (usz i = 0; i < items().size(); i++)
{ {
if (flow_widget_item* item = items().at(i)) if (flow_widget_item* item = items().at(i))
{ {
// We need to polish the widgets in order to re-apply any stylesheet changes for the selected property. // We need to polish the widgets in order to re-apply any stylesheet changes for the selected property.
item->selected = i == m_selected_index; item->selected = m_selected_index >= 0 && i == static_cast<usz>(m_selected_index);
item->polish_style(); item->polish_style();
} }
} }
@ -229,8 +219,8 @@ void flow_widget::on_item_focus()
void flow_widget::on_navigate(flow_navigation value) void flow_widget::on_navigate(flow_navigation value)
{ {
const flow_layout::position selected_pos = find_next_item(find_item(static_cast<flow_widget_item*>(QObject::sender())), value); const flow_layout::position selected_pos = find_next_item(find_item(static_cast<flow_widget_item*>(QObject::sender())), value);
const int selected_index = find_item(selected_pos); const s64 selected_index = find_item(selected_pos);
if (selected_index < 0 || selected_index >= items().size()) if (selected_index < 0 || static_cast<usz>(selected_index) >= items().size())
{ {
return; return;
} }

View File

@ -1,5 +1,6 @@
#pragma once #pragma once
#include "util/types.hpp"
#include "flow_widget_item.h" #include "flow_widget_item.h"
#include "flow_layout.h" #include "flow_layout.h"
@ -18,9 +19,9 @@ public:
void add_widget(flow_widget_item* widget); void add_widget(flow_widget_item* widget);
void clear(); void clear();
QList<flow_widget_item*>& items(); std::vector<flow_widget_item*>& items() { return m_widgets; }
flow_widget_item* selected_item() const; flow_widget_item* selected_item() const;
QScrollArea* scroll_area() const; QScrollArea* scroll_area() const { return m_scroll_area; }
void paintEvent(QPaintEvent* event) override; void paintEvent(QPaintEvent* event) override;
@ -36,12 +37,12 @@ protected:
void mouseDoubleClickEvent(QMouseEvent* event) override; void mouseDoubleClickEvent(QMouseEvent* event) override;
private: private:
int find_item(const flow_layout::position& pos); s64 find_item(const flow_layout::position& pos);
flow_layout::position find_item(flow_widget_item* item); flow_layout::position find_item(flow_widget_item* item);
flow_layout::position find_next_item(flow_layout::position current_pos, flow_navigation value); flow_layout::position find_next_item(flow_layout::position current_pos, flow_navigation value);
flow_layout* m_flow_layout{}; flow_layout* m_flow_layout{};
QScrollArea* m_scroll_area{}; QScrollArea* m_scroll_area{};
QList<flow_widget_item*> m_widgets{}; std::vector<flow_widget_item*> m_widgets;
int m_selected_index = -1; s64 m_selected_index = -1;
}; };

View File

@ -14,7 +14,7 @@ game_list_base::game_list_base()
{ {
} }
void game_list_base::repaint_icons(QList<game_info>& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio) void game_list_base::repaint_icons(std::vector<game_info>& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio)
{ {
m_icon_size = icon_size; m_icon_size = icon_size;
m_icon_color = icon_color; m_icon_color = icon_color;

View File

@ -43,7 +43,7 @@ public:
void set_icon_color(QColor color) { m_icon_color = std::move(color); } void set_icon_color(QColor color) { m_icon_color = std::move(color); }
void set_draw_compat_status_to_grid(bool enabled) { m_draw_compat_status_to_grid = enabled; } void set_draw_compat_status_to_grid(bool enabled) { m_draw_compat_status_to_grid = enabled; }
virtual void repaint_icons(QList<game_info>& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio); virtual void repaint_icons(std::vector<game_info>& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio);
// Returns the visible version string in the game list // Returns the visible version string in the game list
static std::string GetGameVersion(const game_info& game); static std::string GetGameVersion(const game_info& game);

View File

@ -258,7 +258,7 @@ void game_list_frame::OnColClicked(int col)
m_gui_settings->SetValue(gui::gl_sortAsc, m_col_sort_order == Qt::AscendingOrder, false); m_gui_settings->SetValue(gui::gl_sortAsc, m_col_sort_order == Qt::AscendingOrder, false);
m_gui_settings->SetValue(gui::gl_sortCol, col, true); m_gui_settings->SetValue(gui::gl_sortCol, col, true);
m_game_list->sort(m_game_data.count(), m_sort_column, m_col_sort_order); m_game_list->sort(m_game_data.size(), m_sort_column, m_col_sort_order);
} }
// Get visibility of entries // Get visibility of entries
@ -546,7 +546,7 @@ void game_list_frame::Refresh(const bool from_drive, const std::vector<std::stri
m_game_grid->clear_list(); m_game_grid->clear_list();
const int scroll_position = m_game_list->verticalScrollBar()->value(); const int scroll_position = m_game_list->verticalScrollBar()->value();
m_game_list->populate(matching_apps, m_notes, m_titles, selected_item, m_play_hover_movies); m_game_list->populate(matching_apps, m_notes, m_titles, selected_item, m_play_hover_movies);
m_game_list->sort(m_game_data.count(), m_sort_column, m_col_sort_order); m_game_list->sort(m_game_data.size(), m_sort_column, m_col_sort_order);
RepaintIcons(); RepaintIcons();
if (scroll_after) if (scroll_after)
@ -2277,11 +2277,11 @@ void game_list_frame::RemoveHDD1Cache(const std::string& base_dir, const std::st
game_list_log.fatal("Only %d/%d HDD1 cache directories could be removed in %s (%s)", dirs_removed, dirs_total, base_dir, title_id); game_list_log.fatal("Only %d/%d HDD1 cache directories could be removed in %s (%s)", dirs_removed, dirs_total, base_dir, title_id);
} }
void game_list_frame::BatchCreateCPUCaches(const QList<game_info>& game_data) void game_list_frame::BatchCreateCPUCaches(const std::vector<game_info>& game_data)
{ {
const std::string vsh_path = g_cfg_vfs.get_dev_flash() + "vsh/module/"; const std::string vsh_path = g_cfg_vfs.get_dev_flash() + "vsh/module/";
const bool vsh_exists = game_data.isEmpty() && fs::is_file(vsh_path + "vsh.self"); const bool vsh_exists = game_data.empty() && fs::is_file(vsh_path + "vsh.self");
const u32 total = !game_data.isEmpty() ? game_data.size() : (m_game_data.size() + (vsh_exists ? 1 : 0)); const usz total = !game_data.empty() ? game_data.size() : (m_game_data.size() + (vsh_exists ? 1 : 0));
if (total == 0) if (total == 0)
{ {
@ -2296,7 +2296,7 @@ void game_list_frame::BatchCreateCPUCaches(const QList<game_info>& game_data)
const QString main_label = tr("Creating all LLVM caches"); const QString main_label = tr("Creating all LLVM caches");
progress_dialog* pdlg = new progress_dialog(tr("LLVM Cache Batch Creation"), main_label, tr("Cancel"), 0, total, false, this); progress_dialog* pdlg = new progress_dialog(tr("LLVM Cache Batch Creation"), main_label, tr("Cancel"), 0, ::narrow<s32>(total), false, this);
pdlg->setWindowFlags(Qt::Window | Qt::WindowMinimizeButtonHint); pdlg->setWindowFlags(Qt::Window | Qt::WindowMinimizeButtonHint);
pdlg->setAutoClose(false); pdlg->setAutoClose(false);
pdlg->setAutoReset(false); pdlg->setAutoReset(false);
@ -2329,7 +2329,7 @@ void game_list_frame::BatchCreateCPUCaches(const QList<game_info>& game_data)
} }
} }
for (const auto& game : (game_data.isEmpty() ? m_game_data : game_data)) for (const auto& game : (game_data.empty() ? m_game_data : game_data))
{ {
if (pdlg->wasCanceled() || g_system_progress_canceled) if (pdlg->wasCanceled() || g_system_progress_canceled)
{ {
@ -2995,7 +2995,7 @@ void game_list_frame::SetPlayHoverGifs(bool play)
} }
} }
const QList<game_info>& game_list_frame::GetGameInfo() const const std::vector<game_info>& game_list_frame::GetGameInfo() const
{ {
return m_game_data; return m_game_data;
} }

View File

@ -58,14 +58,14 @@ public:
game_compatibility* GetGameCompatibility() const { return m_game_compat; } game_compatibility* GetGameCompatibility() const { return m_game_compat; }
const QList<game_info>& GetGameInfo() const; const std::vector<game_info>& GetGameInfo() const;
void CreateShortcuts(const game_info& gameinfo, const std::set<gui::utils::shortcut_location>& locations); void CreateShortcuts(const game_info& gameinfo, const std::set<gui::utils::shortcut_location>& locations);
bool IsEntryVisible(const game_info& game, bool search_fallback = false) const; bool IsEntryVisible(const game_info& game, bool search_fallback = false) const;
public Q_SLOTS: public Q_SLOTS:
void BatchCreateCPUCaches(const QList<game_info>& game_data = QList<game_info>{}); void BatchCreateCPUCaches(const std::vector<game_info>& game_data = {});
void BatchRemovePPUCaches(); void BatchRemovePPUCaches();
void BatchRemoveSPUCaches(); void BatchRemoveSPUCaches();
void BatchRemoveCustomConfigurations(); void BatchRemoveCustomConfigurations();
@ -181,7 +181,7 @@ private:
std::shared_ptr<gui_settings> m_gui_settings; std::shared_ptr<gui_settings> m_gui_settings;
std::shared_ptr<emu_settings> m_emu_settings; std::shared_ptr<emu_settings> m_emu_settings;
std::shared_ptr<persistent_settings> m_persistent_settings; std::shared_ptr<persistent_settings> m_persistent_settings;
QList<game_info> m_game_data; std::vector<game_info> m_game_data;
struct path_entry struct path_entry
{ {
std::string path; std::string path;

View File

@ -137,7 +137,7 @@ void game_list_grid::populate(
select_item(selected_item); select_item(selected_item);
} }
void game_list_grid::repaint_icons(QList<game_info>& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio) void game_list_grid::repaint_icons(std::vector<game_info>& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio)
{ {
m_icon_size = icon_size; m_icon_size = icon_size;
m_icon_color = icon_color; m_icon_color = icon_color;
@ -178,9 +178,9 @@ void game_list_grid::repaint_icons(QList<game_info>& game_data, const QColor& ic
void game_list_grid::FocusAndSelectFirstEntryIfNoneIs() void game_list_grid::FocusAndSelectFirstEntryIfNoneIs()
{ {
if (items().empty() == false) if (!items().empty())
{ {
items().first()->setFocus(); items().front()->setFocus();
} }
} }

View File

@ -21,7 +21,7 @@ public:
const std::string& selected_item_id, const std::string& selected_item_id,
bool play_hover_movies) override; bool play_hover_movies) override;
void repaint_icons(QList<game_info>& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio) override; void repaint_icons(std::vector<game_info>& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio) override;
bool eventFilter(QObject* watched, QEvent* event) override; bool eventFilter(QObject* watched, QEvent* event) override;
void keyPressEvent(QKeyEvent* event) override; void keyPressEvent(QKeyEvent* event) override;

View File

@ -113,11 +113,11 @@ void game_list_table::adjust_icon_column()
resizeColumnToContents(static_cast<int>(gui::game_list_columns::count) - 1); resizeColumnToContents(static_cast<int>(gui::game_list_columns::count) - 1);
} }
void game_list_table::sort(int game_count, int sort_column, Qt::SortOrder col_sort_order) void game_list_table::sort(usz game_count, int sort_column, Qt::SortOrder col_sort_order)
{ {
// Back-up old header sizes to handle unwanted column resize in case of zero search results // Back-up old header sizes to handle unwanted column resize in case of zero search results
const int old_row_count = rowCount(); const int old_row_count = rowCount();
const int old_game_count = game_count; const usz old_game_count = game_count;
std::vector<int> column_widths(columnCount()); std::vector<int> column_widths(columnCount());
for (int i = 0; i < columnCount(); i++) for (int i = 0; i < columnCount(); i++)
@ -395,7 +395,7 @@ void game_list_table::populate(
selectRow(selected_row); selectRow(selected_row);
} }
void game_list_table::repaint_icons(QList<game_info>& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio) void game_list_table::repaint_icons(std::vector<game_info>& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio)
{ {
game_list_base::repaint_icons(game_data, icon_color, icon_size, device_pixel_ratio); game_list_base::repaint_icons(game_data, icon_color, icon_size, device_pixel_ratio);
adjust_icon_column(); adjust_icon_column();

View File

@ -20,7 +20,7 @@ public:
void adjust_icon_column(); void adjust_icon_column();
void sort(int game_count, int sort_column, Qt::SortOrder col_sort_order); void sort(usz game_count, int sort_column, Qt::SortOrder col_sort_order);
void set_custom_config_icon(const game_info& game); void set_custom_config_icon(const game_info& game);
@ -31,7 +31,7 @@ public:
const std::string& selected_item_id, const std::string& selected_item_id,
bool play_hover_movies) override; bool play_hover_movies) override;
void repaint_icons(QList<game_info>& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio) override; void repaint_icons(std::vector<game_info>& game_data, const QColor& icon_color, const QSize& icon_size, qreal device_pixel_ratio) override;
Q_SIGNALS: Q_SIGNALS:
void size_on_disk_ready(const game_info& game); void size_on_disk_ready(const game_info& game);

View File

@ -974,23 +974,23 @@ void gui_application::OnChangeStyleSheetRequest()
{ {
QString stylesheet_path; QString stylesheet_path;
QString stylesheet_dir; QString stylesheet_dir;
QList<QDir> locs; std::vector<QDir> locs;
locs << m_gui_settings->GetSettingsDir(); locs.push_back(m_gui_settings->GetSettingsDir());
#if !defined(_WIN32) #if !defined(_WIN32)
#ifdef __APPLE__ #ifdef __APPLE__
locs << QCoreApplication::applicationDirPath() + "/../Resources/GuiConfigs/"; locs.push_back(QCoreApplication::applicationDirPath() + "/../Resources/GuiConfigs/");
#else #else
#ifdef DATADIR #ifdef DATADIR
const QString data_dir = (DATADIR); const QString data_dir = (DATADIR);
locs << data_dir + "/GuiConfigs/"; locs.push_back(data_dir + "/GuiConfigs/");
#endif #endif
locs << QCoreApplication::applicationDirPath() + "/../share/rpcs3/GuiConfigs/"; locs.push_back(QCoreApplication::applicationDirPath() + "/../share/rpcs3/GuiConfigs/");
#endif #endif
locs << QCoreApplication::applicationDirPath() + "/GuiConfigs/"; locs.push_back(QCoreApplication::applicationDirPath() + "/GuiConfigs/");
#endif #endif
for (auto&& loc : locs) for (QDir& loc : locs)
{ {
QFileInfo file_info(loc.absoluteFilePath(stylesheet_name + QStringLiteral(".qss"))); QFileInfo file_info(loc.absoluteFilePath(stylesheet_name + QStringLiteral(".qss")));
if (file_info.exists()) if (file_info.exists())

View File

@ -479,21 +479,21 @@ void log_frame::LoadSettings()
void log_frame::RepaintTextColors() void log_frame::RepaintTextColors()
{ {
// Backup old colors // Backup old colors
QList<QColor> old_colors = m_color; std::vector<QColor> old_colors = m_color;
QColor old_stack_color = m_color_stack; QColor old_stack_color = m_color_stack;
const QColor color = gui::utils::get_foreground_color(); const QColor color = gui::utils::get_foreground_color();
// Get text color. Do this once to prevent possible slowdown // Get text color. Do this once to prevent possible slowdown
m_color.clear(); m_color.clear();
m_color.append(gui::utils::get_label_color("log_level_always", Qt::darkCyan, Qt::cyan)); m_color.push_back(gui::utils::get_label_color("log_level_always", Qt::darkCyan, Qt::cyan));
m_color.append(gui::utils::get_label_color("log_level_fatal", Qt::darkMagenta, Qt::magenta)); m_color.push_back(gui::utils::get_label_color("log_level_fatal", Qt::darkMagenta, Qt::magenta));
m_color.append(gui::utils::get_label_color("log_level_error", Qt::red, Qt::red)); m_color.push_back(gui::utils::get_label_color("log_level_error", Qt::red, Qt::red));
m_color.append(gui::utils::get_label_color("log_level_todo", Qt::darkYellow, Qt::darkYellow)); m_color.push_back(gui::utils::get_label_color("log_level_todo", Qt::darkYellow, Qt::darkYellow));
m_color.append(gui::utils::get_label_color("log_level_success", Qt::darkGreen, Qt::green)); m_color.push_back(gui::utils::get_label_color("log_level_success", Qt::darkGreen, Qt::green));
m_color.append(gui::utils::get_label_color("log_level_warning", Qt::darkYellow, Qt::darkYellow)); m_color.push_back(gui::utils::get_label_color("log_level_warning", Qt::darkYellow, Qt::darkYellow));
m_color.append(gui::utils::get_label_color("log_level_notice", color, color)); m_color.push_back(gui::utils::get_label_color("log_level_notice", color, color));
m_color.append(gui::utils::get_label_color("log_level_trace", color, color)); m_color.push_back(gui::utils::get_label_color("log_level_trace", color, color));
m_color_stack = gui::utils::get_label_color("log_stack", color, color); m_color_stack = gui::utils::get_label_color("log_stack", color, color);

View File

@ -49,7 +49,7 @@ private:
QTimer* m_timer = nullptr; QTimer* m_timer = nullptr;
QList<QColor> m_color; std::vector<QColor> m_color;
QColor m_color_stack; QColor m_color_stack;
QPlainTextEdit* m_log = nullptr; QPlainTextEdit* m_log = nullptr;
std::string m_old_log_text; std::string m_old_log_text;

View File

@ -2399,7 +2399,7 @@ void main_window::ShowOptionalGamePreparations(const QString& title, const QStri
locations.insert(gui::utils::shortcut_location::applications); locations.insert(gui::utils::shortcut_location::applications);
} }
QList<game_info> game_data; std::vector<game_info> game_data;
for (const auto& [boot_path, title_id] : paths) for (const auto& [boot_path, title_id] : paths)
{ {
@ -2422,7 +2422,7 @@ void main_window::ShowOptionalGamePreparations(const QString& title, const QStri
} }
} }
if (!game_data.isEmpty()) if (!game_data.empty())
{ {
m_game_list_frame->BatchCreateCPUCaches(game_data); m_game_list_frame->BatchCreateCPUCaches(game_data);
} }

View File

@ -323,24 +323,29 @@ void patch_manager_dialog::populate_tree()
const QString q_description = QString::fromStdString(description); const QString q_description = QString::fromStdString(description);
QString visible_description = q_description; QString visible_description = q_description;
const QList<QPair<int, QVariant>> match_criteria = QList<QPair<int, QVariant>>() const std::vector<std::pair<int, QVariant>> match_criteria =
<< QPair<int, QVariant>(description_role, q_description) {
<< QPair<int, QVariant>(persistance_role, true); std::pair<int, QVariant>(description_role, q_description),
std::pair<int, QVariant>(persistance_role, true)
};
// Add counter to leafs if the name already exists due to different hashes of the same game (PPU, SPU, PRX, OVL) // Add counter to leafs if the name already exists due to different hashes of the same game (PPU, SPU, PRX, OVL)
if (const auto matches = gui::utils::find_children_by_data(serial_level_item, match_criteria, false); matches.count() > 0) std::vector<QTreeWidgetItem*> matches;
gui::utils::find_children_by_data(serial_level_item, matches, match_criteria, false);
if (!matches.empty())
{ {
if (auto only_match = matches.count() == 1 ? matches[0] : nullptr) if (auto only_match = matches.size() == 1 ? matches[0] : nullptr)
{ {
only_match->setText(0, q_description + QStringLiteral(" (01)")); only_match->setText(0, q_description + QStringLiteral(" (01)"));
} }
const int counter = matches.count() + 1; const usz counter = matches.size() + 1;
visible_description += QStringLiteral(" ("); visible_description += QStringLiteral(" (");
if (counter < 10) visible_description += '0'; if (counter < 10) visible_description += '0';
visible_description += QString::number(counter) + ')'; visible_description += QString::number(counter) + ')';
} }
QMap<QString, QVariant> q_config_values; QVariantMap q_config_values;
for (const auto& [key, default_config_value] : patch.default_config_values) for (const auto& [key, default_config_value] : patch.default_config_values)
{ {
@ -375,8 +380,10 @@ void patch_manager_dialog::populate_tree()
} }
} }
const QList<QPair<int, QVariant>> match_criteria = QList<QPair<int, QVariant>>() const std::vector<std::pair<int, QVariant>> match_criteria =
<< QPair<int, QVariant>(persistance_role, true); {
std::pair<int, QVariant>(persistance_role, true)
};
for (int i = ui->patch_tree->topLevelItemCount() - 1; i >= 0; i--) for (int i = ui->patch_tree->topLevelItemCount() - 1; i >= 0; i--)
{ {
@ -578,7 +585,7 @@ void patch_manager_dialog::update_patch_info(const patch_manager_dialog::gui_pat
ui->configurable_double_spin_box->setVisible(false); ui->configurable_double_spin_box->setVisible(false);
// Fetch the config values of this item // Fetch the config values of this item
const QVariant& variant = info.config_values.value(key); const QVariant& variant = ::at32(info.config_values, key);
ensure(variant.canConvert<patch_engine::patch_config_value>()); ensure(variant.canConvert<patch_engine::patch_config_value>());
const patch_engine::patch_config_value config_value = variant.value<patch_engine::patch_config_value>(); const patch_engine::patch_config_value config_value = variant.value<patch_engine::patch_config_value>();
@ -662,7 +669,7 @@ void patch_manager_dialog::handle_item_selected(QTreeWidgetItem* current, QTreeW
info.notes = QString::fromStdString(found_info.notes); info.notes = QString::fromStdString(found_info.notes);
info.description = QString::fromStdString(found_info.description); info.description = QString::fromStdString(found_info.description);
info.patch_version = QString::fromStdString(found_info.patch_version); info.patch_version = QString::fromStdString(found_info.patch_version);
info.config_values = current->data(0, config_values_role).toMap(); info.config_values = current->data(0, config_values_role).toMap().toStdMap();
info.config_value_key = current->data(0, config_key_role).toString(); info.config_value_key = current->data(0, config_key_role).toString();
if (current != previous) if (current != previous)
@ -670,11 +677,9 @@ void patch_manager_dialog::handle_item_selected(QTreeWidgetItem* current, QTreeW
// Update the config value combo box with the new config keys // Update the config value combo box with the new config keys
ui->configurable_selector->blockSignals(true); ui->configurable_selector->blockSignals(true);
ui->configurable_selector->clear(); ui->configurable_selector->clear();
for (const QString& key : info.config_values.keys()) for (const auto& [key, variant] : info.config_values)
{ {
const QVariant& variant = info.config_values.value(key);
ensure(variant.canConvert<patch_engine::patch_config_value>()); ensure(variant.canConvert<patch_engine::patch_config_value>());
const patch_engine::patch_config_value config_value = variant.value<patch_engine::patch_config_value>();
ui->configurable_selector->addItem(key, key); ui->configurable_selector->addItem(key, key);
} }
if (ui->configurable_selector->count() > 0) if (ui->configurable_selector->count() > 0)

View File

@ -31,7 +31,7 @@ class patch_manager_dialog : public QDialog
QString description; QString description;
QString patch_version; QString patch_version;
QString config_value_key; QString config_value_key;
QMap<QString, QVariant> config_values; std::map<QString, QVariant> config_values;
}; };
const QString tr_all_titles = tr("All titles - Warning: These patches apply to all games!"); const QString tr_all_titles = tr("All titles - Warning: These patches apply to all games!");

View File

@ -501,10 +501,8 @@ namespace gui
return nullptr; return nullptr;
} }
QList<QTreeWidgetItem*> find_children_by_data(QTreeWidgetItem* parent, const QList<QPair<int /*role*/, QVariant /*data*/>>& criteria, bool recursive) void find_children_by_data(QTreeWidgetItem* parent, std::vector<QTreeWidgetItem*>& children, const std::vector<std::pair<int /*role*/, QVariant /*data*/>>& criteria, bool recursive)
{ {
QList<QTreeWidgetItem*> list;
if (parent) if (parent)
{ {
for (int i = 0; i < parent->childCount(); i++) for (int i = 0; i < parent->childCount(); i++)
@ -524,18 +522,16 @@ namespace gui
if (match) if (match)
{ {
list << item; children.push_back(item);
} }
if (recursive) if (recursive)
{ {
list << find_children_by_data(item, criteria, recursive); find_children_by_data(item, children, criteria, recursive);
} }
} }
} }
} }
return list;
} }
QTreeWidgetItem* add_child(QTreeWidgetItem *parent, const QString& text, int column) QTreeWidgetItem* add_child(QTreeWidgetItem *parent, const QString& text, int column)
@ -561,7 +557,7 @@ namespace gui
} }
} }
void remove_children(QTreeWidgetItem* parent, const QList<QPair<int /*role*/, QVariant /*data*/>>& criteria, bool recursive) void remove_children(QTreeWidgetItem* parent, const std::vector<std::pair<int /*role*/, QVariant /*data*/>>& criteria, bool recursive)
{ {
if (parent) if (parent)
{ {

View File

@ -131,7 +131,7 @@ namespace gui
QTreeWidgetItem* find_child(QTreeWidgetItem* parent, const QString& text); QTreeWidgetItem* find_child(QTreeWidgetItem* parent, const QString& text);
// Finds all children of a QTreeWidgetItem that match the given criteria // Finds all children of a QTreeWidgetItem that match the given criteria
QList<QTreeWidgetItem*> find_children_by_data(QTreeWidgetItem* parent, const QList<QPair<int /*role*/, QVariant /*data*/>>& criteria, bool recursive); void find_children_by_data(QTreeWidgetItem* parent, std::vector<QTreeWidgetItem*>& children, const std::vector<std::pair<int /*role*/, QVariant /*data*/>>& criteria, bool recursive);
// Constructs and adds a child to a QTreeWidgetItem // Constructs and adds a child to a QTreeWidgetItem
QTreeWidgetItem* add_child(QTreeWidgetItem* parent, const QString& text, int column = 0); QTreeWidgetItem* add_child(QTreeWidgetItem* parent, const QString& text, int column = 0);
@ -140,7 +140,7 @@ namespace gui
void remove_children(QTreeWidgetItem* parent); void remove_children(QTreeWidgetItem* parent);
// Removes all children of a QTreeWidgetItem that don't match the given criteria // Removes all children of a QTreeWidgetItem that don't match the given criteria
void remove_children(QTreeWidgetItem* parent, const QList<QPair<int /*role*/, QVariant /*data*/>>& criteria, bool recursive); void remove_children(QTreeWidgetItem* parent, const std::vector<std::pair<int /*role*/, QVariant /*data*/>>& criteria, bool recursive);
// Sort a QTreeWidget (currently only column 0) // Sort a QTreeWidget (currently only column 0)
void sort_tree(QTreeWidget* tree, Qt::SortOrder sort_order, bool recursive); void sort_tree(QTreeWidget* tree, Qt::SortOrder sort_order, bool recursive);

View File

@ -2644,7 +2644,7 @@ int settings_dialog::exec()
void settings_dialog::SubscribeDescription(QLabel* description) void settings_dialog::SubscribeDescription(QLabel* description)
{ {
description->setFixedHeight(description->sizeHint().height()); description->setFixedHeight(description->sizeHint().height());
m_description_labels.append(QPair<QLabel*, QString>(description, description->text())); m_description_labels.push_back(std::pair<QLabel*, QString>(description, description->text()));
} }
void settings_dialog::SubscribeTooltip(QObject* object, const QString& tooltip) void settings_dialog::SubscribeTooltip(QObject* object, const QString& tooltip)
@ -2677,11 +2677,9 @@ bool settings_dialog::eventFilter(QObject* object, QEvent* event)
{ {
const int i = ui->tab_widget_settings->currentIndex(); const int i = ui->tab_widget_settings->currentIndex();
if (i < m_description_labels.size()) if (i >= 0 && static_cast<usz>(i) < m_description_labels.size())
{ {
QLabel* label = m_description_labels[i].first; if (QLabel* label = m_description_labels[i].first)
if (label)
{ {
if (event->type() == QEvent::Enter) if (event->type() == QEvent::Enter)
{ {
@ -2689,8 +2687,7 @@ bool settings_dialog::eventFilter(QObject* object, QEvent* event)
} }
else if (event->type() == QEvent::Leave) else if (event->type() == QEvent::Leave)
{ {
const QString description = m_description_labels[i].second; label->setText(m_description_labels[i].second);
label->setText(description);
} }
} }
} }

View File

@ -62,7 +62,7 @@ private:
QString m_discord_state; QString m_discord_state;
// Descriptions // Descriptions
QList<QPair<QLabel*, QString>> m_description_labels; std::vector<std::pair<QLabel*, QString>> m_description_labels;
QHash<QObject*, QString> m_descriptions; QHash<QObject*, QString> m_descriptions;
void SubscribeDescription(QLabel* description); void SubscribeDescription(QLabel* description);
void SubscribeTooltip(QObject* object, const QString& tooltip); void SubscribeTooltip(QObject* object, const QString& tooltip);

View File

@ -569,11 +569,8 @@ void trophy_manager_dialog::ResizeGameIcons()
placeholder.fill(Qt::transparent); placeholder.fill(Qt::transparent);
qRegisterMetaType<QVector<int>>("QVector<int>"); qRegisterMetaType<QVector<int>>("QVector<int>");
QList<int> indices;
for (int i = 0; i < m_game_table->rowCount(); ++i) for (int i = 0; i < m_game_table->rowCount(); ++i)
{ {
indices.append(i);
if (QTableWidgetItem* icon_item = m_game_table->item(i, static_cast<int>(gui::trophy_game_list_columns::icon))) if (QTableWidgetItem* icon_item = m_game_table->item(i, static_cast<int>(gui::trophy_game_list_columns::icon)))
{ {
icon_item->setData(Qt::DecorationRole, placeholder); icon_item->setData(Qt::DecorationRole, placeholder);