mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-29 22:20:48 +00:00
overlays: add dynamic switch for perf overlay
This commit is contained in:
parent
b5f6b27f86
commit
f2b530823b
@ -78,12 +78,12 @@ namespace rsx
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_cfg.video.perf_overlay.center_x)
|
if (m_center_x)
|
||||||
{
|
{
|
||||||
pos.x = (virtual_width - m_body.w) / 2;
|
pos.x = (virtual_width - m_body.w) / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_cfg.video.perf_overlay.center_y)
|
if (m_center_y)
|
||||||
{
|
{
|
||||||
pos.y = (virtual_height - m_body.h - bottom_margin) / 2;
|
pos.y = (virtual_height - m_body.h - bottom_margin) / 2;
|
||||||
}
|
}
|
||||||
@ -125,8 +125,17 @@ namespace rsx
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set body/titles transform
|
// Set body/titles transform
|
||||||
reset_transform(m_body, bottom_margin);
|
if (m_is_initialised && m_force_repaint)
|
||||||
reset_transform(m_titles, bottom_margin);
|
{
|
||||||
|
m_force_repaint = false;
|
||||||
|
reset_body(bottom_margin);
|
||||||
|
reset_titles(bottom_margin);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
reset_transform(m_body, bottom_margin);
|
||||||
|
reset_transform(m_titles, bottom_margin);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_framerate_graph_enabled || m_frametime_graph_enabled)
|
if (m_framerate_graph_enabled || m_frametime_graph_enabled)
|
||||||
{
|
{
|
||||||
@ -156,20 +165,20 @@ namespace rsx
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void perf_metrics_overlay::reset_body()
|
void perf_metrics_overlay::reset_body(u16 bottom_margin)
|
||||||
{
|
{
|
||||||
m_body.set_font(m_font.c_str(), m_font_size);
|
m_body.set_font(m_font.c_str(), m_font_size);
|
||||||
m_body.fore_color = convert_color_code(g_cfg.video.perf_overlay.color_body, m_opacity);
|
m_body.fore_color = convert_color_code(m_color_body, m_opacity);
|
||||||
m_body.back_color = convert_color_code(g_cfg.video.perf_overlay.background_body, m_opacity);
|
m_body.back_color = convert_color_code(m_background_body, m_opacity);
|
||||||
reset_transform(m_body);
|
reset_transform(m_body, bottom_margin);
|
||||||
}
|
}
|
||||||
|
|
||||||
void perf_metrics_overlay::reset_titles()
|
void perf_metrics_overlay::reset_titles(u16 bottom_margin)
|
||||||
{
|
{
|
||||||
m_titles.set_font(m_font.c_str(), m_font_size);
|
m_titles.set_font(m_font.c_str(), m_font_size);
|
||||||
m_titles.fore_color = convert_color_code(g_cfg.video.perf_overlay.color_title, m_opacity);
|
m_titles.fore_color = convert_color_code(m_color_title, m_opacity);
|
||||||
m_titles.back_color = convert_color_code(g_cfg.video.perf_overlay.background_title, m_opacity);
|
m_titles.back_color = convert_color_code(m_background_title, m_opacity);
|
||||||
reset_transform(m_titles);
|
reset_transform(m_titles, bottom_margin);
|
||||||
|
|
||||||
switch (m_detail)
|
switch (m_detail)
|
||||||
{
|
{
|
||||||
@ -182,15 +191,9 @@ namespace rsx
|
|||||||
m_titles.refresh();
|
m_titles.refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
void perf_metrics_overlay::reset_text()
|
|
||||||
{
|
|
||||||
reset_body();
|
|
||||||
reset_titles();
|
|
||||||
}
|
|
||||||
|
|
||||||
void perf_metrics_overlay::init()
|
void perf_metrics_overlay::init()
|
||||||
{
|
{
|
||||||
reset_text();
|
reset_transforms();
|
||||||
force_next_update();
|
force_next_update();
|
||||||
|
|
||||||
m_update_timer.Start();
|
m_update_timer.Start();
|
||||||
@ -203,6 +206,9 @@ namespace rsx
|
|||||||
|
|
||||||
void perf_metrics_overlay::set_framerate_graph_enabled(bool enabled)
|
void perf_metrics_overlay::set_framerate_graph_enabled(bool enabled)
|
||||||
{
|
{
|
||||||
|
if (m_framerate_graph_enabled == enabled)
|
||||||
|
return;
|
||||||
|
|
||||||
m_framerate_graph_enabled = enabled;
|
m_framerate_graph_enabled = enabled;
|
||||||
|
|
||||||
if (enabled)
|
if (enabled)
|
||||||
@ -210,18 +216,18 @@ namespace rsx
|
|||||||
m_fps_graph.set_title("Framerate");
|
m_fps_graph.set_title("Framerate");
|
||||||
m_fps_graph.set_font_size(m_font_size * 0.8);
|
m_fps_graph.set_font_size(m_font_size * 0.8);
|
||||||
m_fps_graph.set_count(50);
|
m_fps_graph.set_count(50);
|
||||||
m_fps_graph.set_color(convert_color_code(g_cfg.video.perf_overlay.color_body));
|
m_fps_graph.set_color(convert_color_code(m_color_body, m_opacity));
|
||||||
m_fps_graph.set_guide_interval(10);
|
m_fps_graph.set_guide_interval(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_is_initialised)
|
m_force_repaint = true;
|
||||||
{
|
|
||||||
reset_transforms();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void perf_metrics_overlay::set_frametime_graph_enabled(bool enabled)
|
void perf_metrics_overlay::set_frametime_graph_enabled(bool enabled)
|
||||||
{
|
{
|
||||||
|
if (m_frametime_graph_enabled == enabled)
|
||||||
|
return;
|
||||||
|
|
||||||
m_frametime_graph_enabled = enabled;
|
m_frametime_graph_enabled = enabled;
|
||||||
|
|
||||||
if (enabled)
|
if (enabled)
|
||||||
@ -229,34 +235,31 @@ namespace rsx
|
|||||||
m_frametime_graph.set_title("Frametime");
|
m_frametime_graph.set_title("Frametime");
|
||||||
m_frametime_graph.set_font_size(m_font_size * 0.8);
|
m_frametime_graph.set_font_size(m_font_size * 0.8);
|
||||||
m_frametime_graph.set_count(170);
|
m_frametime_graph.set_count(170);
|
||||||
m_frametime_graph.set_color(convert_color_code(g_cfg.video.perf_overlay.color_body));
|
m_frametime_graph.set_color(convert_color_code(m_color_body, m_opacity));
|
||||||
m_frametime_graph.set_guide_interval(8);
|
m_frametime_graph.set_guide_interval(8);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_is_initialised)
|
m_force_repaint = true;
|
||||||
{
|
|
||||||
reset_transforms();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void perf_metrics_overlay::set_detail_level(detail_level level)
|
void perf_metrics_overlay::set_detail_level(detail_level level)
|
||||||
{
|
{
|
||||||
|
if (m_detail == level)
|
||||||
|
return;
|
||||||
|
|
||||||
m_detail = level;
|
m_detail = level;
|
||||||
|
|
||||||
if (m_is_initialised)
|
m_force_repaint = true;
|
||||||
{
|
|
||||||
reset_titles();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void perf_metrics_overlay::set_position(screen_quadrant quadrant)
|
void perf_metrics_overlay::set_position(screen_quadrant quadrant)
|
||||||
{
|
{
|
||||||
|
if (m_quadrant == quadrant)
|
||||||
|
return;
|
||||||
|
|
||||||
m_quadrant = quadrant;
|
m_quadrant = quadrant;
|
||||||
|
|
||||||
if (m_is_initialised)
|
m_force_repaint = true;
|
||||||
{
|
|
||||||
reset_transforms();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// In ms
|
// In ms
|
||||||
@ -267,43 +270,67 @@ namespace rsx
|
|||||||
|
|
||||||
void perf_metrics_overlay::set_font(std::string font)
|
void perf_metrics_overlay::set_font(std::string font)
|
||||||
{
|
{
|
||||||
|
if (m_font == font)
|
||||||
|
return;
|
||||||
|
|
||||||
m_font = std::move(font);
|
m_font = std::move(font);
|
||||||
|
|
||||||
if (m_is_initialised)
|
m_force_repaint = true;
|
||||||
{
|
|
||||||
reset_text();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void perf_metrics_overlay::set_font_size(u32 font_size)
|
void perf_metrics_overlay::set_font_size(u32 font_size)
|
||||||
{
|
{
|
||||||
|
if (m_font_size == font_size)
|
||||||
|
return;
|
||||||
|
|
||||||
m_font_size = font_size;
|
m_font_size = font_size;
|
||||||
|
|
||||||
if (m_is_initialised)
|
m_force_repaint = true;
|
||||||
{
|
|
||||||
reset_text();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void perf_metrics_overlay::set_margins(u32 margin_x, u32 margin_y)
|
void perf_metrics_overlay::set_margins(u32 margin_x, u32 margin_y, bool center_x, bool center_y)
|
||||||
{
|
{
|
||||||
|
if (m_margin_x == margin_x && m_margin_y == margin_y && m_center_x == center_x && m_center_y == center_y)
|
||||||
|
return;
|
||||||
|
|
||||||
m_margin_x = margin_x;
|
m_margin_x = margin_x;
|
||||||
m_margin_y = margin_y;
|
m_margin_y = margin_y;
|
||||||
|
m_center_x = center_x;
|
||||||
|
m_center_y = center_y;
|
||||||
|
|
||||||
if (m_is_initialised)
|
m_force_repaint = true;
|
||||||
{
|
|
||||||
reset_transforms();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void perf_metrics_overlay::set_opacity(f32 opacity)
|
void perf_metrics_overlay::set_opacity(f32 opacity)
|
||||||
{
|
{
|
||||||
|
if (m_opacity == opacity)
|
||||||
|
return;
|
||||||
|
|
||||||
m_opacity = opacity;
|
m_opacity = opacity;
|
||||||
|
|
||||||
if (m_is_initialised)
|
m_force_repaint = true;
|
||||||
{
|
}
|
||||||
reset_text();
|
|
||||||
}
|
void perf_metrics_overlay::set_body_colors(std::string color, std::string background)
|
||||||
|
{
|
||||||
|
if (m_color_body == color && m_background_body == background)
|
||||||
|
return;
|
||||||
|
|
||||||
|
m_color_body = std::move(color);
|
||||||
|
m_background_body = std::move(background);
|
||||||
|
|
||||||
|
m_force_repaint = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void perf_metrics_overlay::set_title_colors(std::string color, std::string background)
|
||||||
|
{
|
||||||
|
if (m_color_title == color && m_background_title == background)
|
||||||
|
return;
|
||||||
|
|
||||||
|
m_color_title = std::move(color);
|
||||||
|
m_background_title = std::move(background);
|
||||||
|
|
||||||
|
m_force_repaint = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void perf_metrics_overlay::force_next_update()
|
void perf_metrics_overlay::force_next_update()
|
||||||
@ -315,10 +342,18 @@ namespace rsx
|
|||||||
{
|
{
|
||||||
const auto elapsed_update = m_update_timer.GetElapsedTimeInMilliSec();
|
const auto elapsed_update = m_update_timer.GetElapsedTimeInMilliSec();
|
||||||
|
|
||||||
if (m_is_initialised && m_frametime_graph_enabled)
|
if (m_is_initialised)
|
||||||
{
|
{
|
||||||
const auto elapsed_frame = m_frametime_timer.GetElapsedTimeInMilliSec();
|
if (m_frametime_graph_enabled)
|
||||||
m_frametime_graph.record_datapoint(elapsed_frame);
|
{
|
||||||
|
const auto elapsed_frame = m_frametime_timer.GetElapsedTimeInMilliSec();
|
||||||
|
m_frametime_graph.record_datapoint(elapsed_frame);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_force_repaint)
|
||||||
|
{
|
||||||
|
reset_transforms();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_force_update)
|
if (!m_force_update)
|
||||||
@ -625,10 +660,10 @@ namespace rsx
|
|||||||
const f32 x_stride = f32(w) / m_datapoint_count;
|
const f32 x_stride = f32(w) / m_datapoint_count;
|
||||||
const u32 tail_index_offset = m_datapoints.size() - m_datapoint_count;
|
const u32 tail_index_offset = m_datapoints.size() - m_datapoint_count;
|
||||||
|
|
||||||
for (u32 i = 0; i < m_datapoint_count; ++i)
|
for (size_t i = 0; i < m_datapoint_count; ++i)
|
||||||
{
|
{
|
||||||
const f32 x_line = x + i * x_stride;
|
const f32 x_line = x + i * x_stride;
|
||||||
const f32 y_line = y + h - (m_datapoints[i + tail_index_offset] * normalize_factor);
|
const f32 y_line = y + h - (m_datapoints[tail_index_offset + i] * normalize_factor);
|
||||||
verts_graph.emplace_back(x_line, y_line);
|
verts_graph.emplace_back(x_line, y_line);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -636,5 +671,48 @@ namespace rsx
|
|||||||
|
|
||||||
return compiled_resources;
|
return compiled_resources;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void reset_performance_overlay()
|
||||||
|
{
|
||||||
|
if (!g_cfg.misc.use_native_interface)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (auto manager = g_fxo->get<rsx::overlays::display_manager>())
|
||||||
|
{
|
||||||
|
auto& perf_settings = g_cfg.video.perf_overlay;
|
||||||
|
auto perf_overlay = manager->get<rsx::overlays::perf_metrics_overlay>();
|
||||||
|
|
||||||
|
if (perf_settings.perf_overlay_enabled)
|
||||||
|
{
|
||||||
|
const bool existed = !!perf_overlay;
|
||||||
|
|
||||||
|
if (!existed)
|
||||||
|
{
|
||||||
|
perf_overlay = manager->create<rsx::overlays::perf_metrics_overlay>();
|
||||||
|
}
|
||||||
|
|
||||||
|
perf_overlay->set_detail_level(perf_settings.level);
|
||||||
|
perf_overlay->set_position(perf_settings.position);
|
||||||
|
perf_overlay->set_update_interval(perf_settings.update_interval);
|
||||||
|
perf_overlay->set_font(perf_settings.font);
|
||||||
|
perf_overlay->set_font_size(perf_settings.font_size);
|
||||||
|
perf_overlay->set_margins(perf_settings.margin_x, perf_settings.margin_y, perf_settings.center_x.get(), perf_settings.center_y.get());
|
||||||
|
perf_overlay->set_opacity(perf_settings.opacity / 100.f);
|
||||||
|
perf_overlay->set_body_colors(perf_settings.color_body, perf_settings.background_body);
|
||||||
|
perf_overlay->set_title_colors(perf_settings.color_title, perf_settings.background_title);
|
||||||
|
perf_overlay->set_framerate_graph_enabled(perf_settings.framerate_graph_enabled.get());
|
||||||
|
perf_overlay->set_frametime_graph_enabled(perf_settings.frametime_graph_enabled.get());
|
||||||
|
|
||||||
|
if (!existed)
|
||||||
|
{
|
||||||
|
perf_overlay->init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (perf_overlay)
|
||||||
|
{
|
||||||
|
manager->remove<rsx::overlays::perf_metrics_overlay>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} // namespace overlays
|
} // namespace overlays
|
||||||
} // namespace rsx
|
} // namespace rsx
|
||||||
|
@ -37,7 +37,17 @@ namespace rsx
|
|||||||
u32 m_margin_y{}; // vertical distance to the screen border relative to the screen_quadrant in px
|
u32 m_margin_y{}; // vertical distance to the screen border relative to the screen_quadrant in px
|
||||||
f32 m_opacity{}; // 0..1
|
f32 m_opacity{}; // 0..1
|
||||||
|
|
||||||
|
bool m_center_x{}; // center the overlay horizontally
|
||||||
|
bool m_center_y{}; // center the overlay vertically
|
||||||
|
|
||||||
|
std::string m_color_body;
|
||||||
|
std::string m_background_body;
|
||||||
|
|
||||||
|
std::string m_color_title;
|
||||||
|
std::string m_background_title;
|
||||||
|
|
||||||
bool m_force_update{};
|
bool m_force_update{};
|
||||||
|
bool m_force_repaint{};
|
||||||
bool m_is_initialised{};
|
bool m_is_initialised{};
|
||||||
|
|
||||||
const std::string title1_medium{ "CPU Utilization:" };
|
const std::string title1_medium{ "CPU Utilization:" };
|
||||||
@ -46,9 +56,8 @@ namespace rsx
|
|||||||
|
|
||||||
void reset_transform(label& elm, u16 bottom_margin = 0) const;
|
void reset_transform(label& elm, u16 bottom_margin = 0) const;
|
||||||
void reset_transforms();
|
void reset_transforms();
|
||||||
void reset_body();
|
void reset_body(u16 bottom_margin);
|
||||||
void reset_titles();
|
void reset_titles(u16 bottom_margin);
|
||||||
void reset_text();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void init();
|
void init();
|
||||||
@ -60,13 +69,17 @@ namespace rsx
|
|||||||
void set_update_interval(u32 update_interval);
|
void set_update_interval(u32 update_interval);
|
||||||
void set_font(std::string font);
|
void set_font(std::string font);
|
||||||
void set_font_size(u32 font_size);
|
void set_font_size(u32 font_size);
|
||||||
void set_margins(u32 margin_x, u32 margin_y);
|
void set_margins(u32 margin_x, u32 margin_y, bool center_x, bool center_y);
|
||||||
void set_opacity(f32 opacity);
|
void set_opacity(f32 opacity);
|
||||||
|
void set_body_colors(std::string color, std::string background);
|
||||||
|
void set_title_colors(std::string color, std::string background);
|
||||||
void force_next_update();
|
void force_next_update();
|
||||||
|
|
||||||
void update() override;
|
void update() override;
|
||||||
|
|
||||||
compiled_resource get_compiled() override;
|
compiled_resource get_compiled() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void reset_performance_overlay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -424,25 +424,7 @@ namespace rsx
|
|||||||
return fmt::format("RSX [0x%07x]", +rsx->ctrl->get);
|
return fmt::format("RSX [0x%07x]", +rsx->ctrl->get);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (m_overlay_manager)
|
rsx::overlays::reset_performance_overlay();
|
||||||
{
|
|
||||||
if (g_cfg.video.perf_overlay.perf_overlay_enabled)
|
|
||||||
{
|
|
||||||
auto perf_overlay = m_overlay_manager->create<rsx::overlays::perf_metrics_overlay>();
|
|
||||||
|
|
||||||
auto& perf_settings = g_cfg.video.perf_overlay;
|
|
||||||
perf_overlay->set_detail_level(perf_settings.level);
|
|
||||||
perf_overlay->set_position(perf_settings.position);
|
|
||||||
perf_overlay->set_update_interval(perf_settings.update_interval);
|
|
||||||
perf_overlay->set_font(perf_settings.font);
|
|
||||||
perf_overlay->set_font_size(perf_settings.font_size);
|
|
||||||
perf_overlay->set_margins(perf_settings.margin_x, perf_settings.margin_y);
|
|
||||||
perf_overlay->set_opacity(perf_settings.opacity / 100.f);
|
|
||||||
perf_overlay->set_framerate_graph_enabled(perf_settings.framerate_graph_enabled.get());
|
|
||||||
perf_overlay->set_frametime_graph_enabled(perf_settings.frametime_graph_enabled.get());
|
|
||||||
perf_overlay->init();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
on_init_thread();
|
on_init_thread();
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include "_discord_utils.h"
|
#include "_discord_utils.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "Emu/RSX/Overlays/overlay_perf_metrics.h"
|
||||||
#include "trophy_notification_helper.h"
|
#include "trophy_notification_helper.h"
|
||||||
#include "save_data_dialog.h"
|
#include "save_data_dialog.h"
|
||||||
#include "msg_dialog_frame.h"
|
#include "msg_dialog_frame.h"
|
||||||
@ -83,6 +84,7 @@ void gui_application::InitializeConnects()
|
|||||||
if (m_main_window)
|
if (m_main_window)
|
||||||
{
|
{
|
||||||
connect(m_main_window, &main_window::RequestGlobalStylesheetChange, this, &gui_application::OnChangeStyleSheetRequest);
|
connect(m_main_window, &main_window::RequestGlobalStylesheetChange, this, &gui_application::OnChangeStyleSheetRequest);
|
||||||
|
connect(m_main_window, &main_window::NotifyEmuSettingsChange, this, &gui_application::OnEmuSettingsChange);
|
||||||
|
|
||||||
connect(this, &gui_application::OnEmulatorRun, m_main_window, &main_window::OnEmuRun);
|
connect(this, &gui_application::OnEmulatorRun, m_main_window, &main_window::OnEmuRun);
|
||||||
connect(this, &gui_application::OnEmulatorStop, m_main_window, &main_window::OnEmuStop);
|
connect(this, &gui_application::OnEmulatorStop, m_main_window, &main_window::OnEmuStop);
|
||||||
@ -318,6 +320,11 @@ void gui_application::OnChangeStyleSheetRequest(const QString& path)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void gui_application::OnEmuSettingsChange()
|
||||||
|
{
|
||||||
|
rsx::overlays::reset_performance_overlay();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Using connects avoids timers being unable to be used in a non-qt thread. So, even if this looks stupid to just call func, it's succinct.
|
* Using connects avoids timers being unable to be used in a non-qt thread. So, even if this looks stupid to just call func, it's succinct.
|
||||||
*/
|
*/
|
||||||
|
@ -62,6 +62,7 @@ private:
|
|||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void OnChangeStyleSheetRequest(const QString& path);
|
void OnChangeStyleSheetRequest(const QString& path);
|
||||||
|
void OnEmuSettingsChange();
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void OnEmulatorRun();
|
void OnEmulatorRun();
|
||||||
|
@ -1255,6 +1255,7 @@ void main_window::CreateConnects()
|
|||||||
connect(&dlg, &settings_dialog::GuiSettingsSyncRequest, this, &main_window::ConfigureGuiFromSettings);
|
connect(&dlg, &settings_dialog::GuiSettingsSyncRequest, this, &main_window::ConfigureGuiFromSettings);
|
||||||
connect(&dlg, &settings_dialog::GuiStylesheetRequest, this, &main_window::RequestGlobalStylesheetChange);
|
connect(&dlg, &settings_dialog::GuiStylesheetRequest, this, &main_window::RequestGlobalStylesheetChange);
|
||||||
connect(&dlg, &settings_dialog::GuiRepaintRequest, this, &main_window::RepaintGui);
|
connect(&dlg, &settings_dialog::GuiRepaintRequest, this, &main_window::RepaintGui);
|
||||||
|
connect(&dlg, &settings_dialog::accepted, this, &main_window::NotifyEmuSettingsChange);
|
||||||
dlg.exec();
|
dlg.exec();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -75,6 +75,7 @@ public:
|
|||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void RequestGlobalStylesheetChange(const QString& sheetFilePath);
|
void RequestGlobalStylesheetChange(const QString& sheetFilePath);
|
||||||
void RequestTrophyManagerRepaint();
|
void RequestTrophyManagerRepaint();
|
||||||
|
void NotifyEmuSettingsChange();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void OnEmuStop();
|
void OnEmuStop();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user