diff --git a/TODO b/TODO index 03942fb..2dd81ef 100644 --- a/TODO +++ b/TODO @@ -245,4 +245,4 @@ Show the currently recorded capture in the ui, to preview if everything looks ok Show a question mark beside options. When hovering the question mark show a tooltip that explains the options. -Make led indicator work on wayland (set led with /sys/... blabla with root access). \ No newline at end of file +Make led indicator work on wayland (set led with /sys/... blabla with root access). Maybe add a command in gsr-global-hotkeys for that, set_led true/false . That should loop all input devices and set their led status for the led name. diff --git a/include/gui/ScreenshotSettingsPage.hpp b/include/gui/ScreenshotSettingsPage.hpp index 52f86c5..1c021b9 100644 --- a/include/gui/ScreenshotSettingsPage.hpp +++ b/include/gui/ScreenshotSettingsPage.hpp @@ -46,6 +46,7 @@ namespace gsr { std::unique_ptr create_notifications(); std::unique_ptr create_led_indicator(); std::unique_ptr create_general_section(); + std::unique_ptr create_screenshot_indicator_section(); std::unique_ptr create_settings(); void add_widgets(); diff --git a/include/gui/SettingsPage.hpp b/include/gui/SettingsPage.hpp index 872d760..928242d 100644 --- a/include/gui/SettingsPage.hpp +++ b/include/gui/SettingsPage.hpp @@ -114,6 +114,7 @@ namespace gsr { void update_estimated_record_file_size(); std::unique_ptr create_led_indicator(const char *type); std::unique_ptr create_notifications(const char *type); + std::unique_ptr create_indicator(const char *type); void add_replay_widgets(); void add_record_widgets(); diff --git a/src/gui/ScreenshotSettingsPage.cpp b/src/gui/ScreenshotSettingsPage.cpp index 1a64457..07fd8a6 100644 --- a/src/gui/ScreenshotSettingsPage.cpp +++ b/src/gui/ScreenshotSettingsPage.cpp @@ -239,9 +239,14 @@ namespace gsr { auto list = std::make_unique(List::Orientation::VERTICAL); list->add_widget(create_save_screenshot_in_game_folder()); list->add_widget(create_save_screenshot_to_clipboard()); + return std::make_unique("General", std::move(list), mgl::vec2f(settings_scrollable_page_ptr->get_inner_size().x, 0.0f)); + } + + std::unique_ptr ScreenshotSettingsPage::create_screenshot_indicator_section() { + auto list = std::make_unique(List::Orientation::VERTICAL); list->add_widget(create_notifications()); list->add_widget(create_led_indicator()); - return std::make_unique("General", std::move(list), mgl::vec2f(settings_scrollable_page_ptr->get_inner_size().x, 0.0f)); + return std::make_unique("Screenshot indicator", std::move(list), mgl::vec2f(settings_scrollable_page_ptr->get_inner_size().x, 0.0f)); } std::unique_ptr ScreenshotSettingsPage::create_settings() { @@ -257,6 +262,7 @@ namespace gsr { settings_list->add_widget(create_image_section()); settings_list->add_widget(create_file_info_section()); settings_list->add_widget(create_general_section()); + settings_list->add_widget(create_screenshot_indicator_section()); settings_scrollable_page_ptr->add_widget(std::move(settings_list)); return page_list; } diff --git a/src/gui/SettingsPage.cpp b/src/gui/SettingsPage.cpp index d8f4e08..19bf799 100644 --- a/src/gui/SettingsPage.cpp +++ b/src/gui/SettingsPage.cpp @@ -852,6 +852,13 @@ namespace gsr { return checkbox; } + std::unique_ptr SettingsPage::create_indicator(const char *type) { + auto list = std::make_unique(List::Orientation::VERTICAL); + list->add_widget(create_notifications(type)); + list->add_widget(create_led_indicator(type)); + return list; + } + void SettingsPage::add_replay_widgets() { auto file_info_list = std::make_unique(List::Orientation::VERTICAL); auto file_info_data_list = std::make_unique(List::Orientation::HORIZONTAL); @@ -867,10 +874,9 @@ namespace gsr { general_list->add_widget(create_save_replay_in_game_folder()); if(gsr_info->system_info.gsr_version >= GsrVersion{5, 0, 3}) general_list->add_widget(create_restart_replay_on_save()); - general_list->add_widget(create_notifications("replay")); - general_list->add_widget(create_led_indicator("replay")); settings_list_ptr->add_widget(std::make_unique("General", std::move(general_list), mgl::vec2f(settings_scrollable_page_ptr->get_inner_size().x, 0.0f))); + settings_list_ptr->add_widget(std::make_unique("Replay indicator", create_indicator("replay"), mgl::vec2f(settings_scrollable_page_ptr->get_inner_size().x, 0.0f))); settings_list_ptr->add_widget(std::make_unique("Autostart", create_start_replay_automatically(), mgl::vec2f(settings_scrollable_page_ptr->get_inner_size().x, 0.0f))); view_radio_button_ptr->on_selection_changed = [this](const std::string&, const std::string &id) { @@ -924,10 +930,9 @@ namespace gsr { auto general_list = std::make_unique(List::Orientation::VERTICAL); general_list->add_widget(create_save_recording_in_game_folder()); - general_list->add_widget(create_notifications("recording")); - general_list->add_widget(create_led_indicator("recording")); settings_list_ptr->add_widget(std::make_unique("General", std::move(general_list), mgl::vec2f(settings_scrollable_page_ptr->get_inner_size().x, 0.0f))); + settings_list_ptr->add_widget(std::make_unique("Recording indicator", create_indicator("recording"), mgl::vec2f(settings_scrollable_page_ptr->get_inner_size().x, 0.0f))); view_radio_button_ptr->on_selection_changed = [this](const std::string&, const std::string &id) { view_changed(id == "advanced"); @@ -1055,10 +1060,9 @@ namespace gsr { auto general_list = std::make_unique(List::Orientation::VERTICAL); general_list->add_widget(create_save_recording_in_game_folder()); - general_list->add_widget(create_notifications("streaming")); - general_list->add_widget(create_led_indicator("streaming")); settings_list_ptr->add_widget(std::make_unique("General", std::move(general_list), mgl::vec2f(settings_scrollable_page_ptr->get_inner_size().x, 0.0f))); + settings_list_ptr->add_widget(std::make_unique("Streaming indicator", create_indicator("streaming"), mgl::vec2f(settings_scrollable_page_ptr->get_inner_size().x, 0.0f))); streaming_service_box_ptr->on_selection_changed = [this](const std::string&, const std::string &id) { const bool twitch_option = id == "twitch";