Skip to content

Commit

Permalink
System Load settings from File: Provide Feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
bkerler committed Mar 6, 2024
1 parent b3ee47a commit 8274b82
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 6 deletions.
17 changes: 17 additions & 0 deletions src/common/str_utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,23 @@ void StringBuilder::append_string(const char *str) {
*current_pos_ = '\0';
}

void StringBuilder::append_string_view(string_view_utf8 str) {

while (true) {
if (is_problem()) {
return;
}

char b;
str.copyToRAM(&b, 1);
if (b == '\0') {
return;
}

append_char(b);
}
}

void StringBuilder::append_printf(const char *fmt, ...) {
va_list args;
va_start(args, fmt);
Expand Down
2 changes: 2 additions & 0 deletions src/common/str_utils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,8 @@ class StringBuilder {

void append_string(const char *str);

void append_string_view(string_view_utf8 str);

/// Appends text to the builder, using vsnprintf under the hood.
void append_printf(const char *fmt, ...);

Expand Down
23 changes: 17 additions & 6 deletions src/gui/MItem_menus.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#include "MItem_menus.hpp"
#include "ScreenHandler.hpp"
#include "str_utils.hpp"
#include <option/buddy_enable_connect.h>
#if BUDDY_ENABLE_CONNECT()
#include <connect/marlin_printer.hpp>
Expand Down Expand Up @@ -403,16 +404,26 @@ MI_LOAD_SETTINGS::MI_LOAD_SETTINGS()
}

void MI_LOAD_SETTINGS::click(IWindowMenu & /*window_menu*/) {
// FIXME: Some error handling/reporting
// TODO: Loading other things than just network
if (netdev_load_ini_to_eeprom()) {
bool network_settings_loaded = netdev_load_ini_to_eeprom();

if (network_settings_loaded) {
notify_reconfigure();
}

// FIXME: Error handling
auto build_message = [](StringBuilder &msg_builder, string_view_utf8 name, bool ok) {
msg_builder.append_string_view(name);
msg_builder.append_string(": ");
msg_builder.append_string_view(ok ? _("Ok") : _("Failed"));
msg_builder.append_string("\n");
};
std::array<char, 150> msg;
StringBuilder msg_builder(msg);
msg_builder.append_string_view(_("\nLoading settings finished.\n\n"));

build_message(msg_builder, _("Network"), network_settings_loaded);
#if BUDDY_ENABLE_CONNECT()
connect_client::MarlinPrinter::load_cfg_from_ini();
build_message(msg_builder, _("Connect"), connect_client::MarlinPrinter::load_cfg_from_ini());
#endif
MsgBoxInfo(string_view_utf8::MakeRAM((const uint8_t *)msg.data()), Responses_Ok);
}

/**********************************************************************************************/
Expand Down

0 comments on commit 8274b82

Please sign in to comment.