Comments from lm regarding previous commit

This commit is contained in:
Lukas Matena 2022-02-10 15:39:20 +01:00 committed by David Kocik
parent 0e9a8f24c3
commit 5a6824273c
2 changed files with 25 additions and 10 deletions

View File

@ -1242,7 +1242,7 @@ bool GUI_App::on_init_inner()
preset_updater = new PresetUpdater(); preset_updater = new PresetUpdater();
Bind(EVT_SLIC3R_VERSION_ONLINE, &GUI_App::on_version_read, this); Bind(EVT_SLIC3R_VERSION_ONLINE, &GUI_App::on_version_read, this);
Bind(EVT_SLIC3R_EXPERIMENTAL_VERSION_ONLINE, [this](const wxCommandEvent& evt) { Bind(EVT_SLIC3R_EXPERIMENTAL_VERSION_ONLINE, [this](const wxCommandEvent& evt) {
app_config->save(); app_config->save();//lm:What is the purpose?
if (this->plater_ != nullptr && app_config->get("notify_release") == "all") { if (this->plater_ != nullptr && app_config->get("notify_release") == "all") {
std::string evt_string = into_u8(evt.GetString()); std::string evt_string = into_u8(evt.GetString());
if (*Semver::parse(SLIC3R_VERSION) < *Semver::parse(evt_string)) { if (*Semver::parse(SLIC3R_VERSION) < *Semver::parse(evt_string)) {
@ -1257,6 +1257,7 @@ bool GUI_App::on_init_inner()
} }
}); });
Bind(EVT_SLIC3R_APP_DOWNLOAD_PROGRESS, [this](const wxCommandEvent& evt) { Bind(EVT_SLIC3R_APP_DOWNLOAD_PROGRESS, [this](const wxCommandEvent& evt) {
//lm:This does not force a render. The progress bar only updateswhen the mouse is moved.
if (this->plater_ != nullptr) if (this->plater_ != nullptr)
this->plater_->get_notification_manager()->set_download_progress_percentage((float)std::stoi(into_u8(evt.GetString())) / 100.f ); this->plater_->get_notification_manager()->set_download_progress_percentage((float)std::stoi(into_u8(evt.GetString())) / 100.f );
}); });
@ -3354,6 +3355,7 @@ void GUI_App::app_updater(bool from_user)
} }
if (boost::filesystem::exists(app_data.target_path)) if (boost::filesystem::exists(app_data.target_path))
{ {
//lm:UI confirmation dialog?
BOOST_LOG_TRIVIAL(error) << "App download: File on target path already exists and will be overwritten. Path: " << app_data.target_path; BOOST_LOG_TRIVIAL(error) << "App download: File on target path already exists and will be overwritten. Path: " << app_data.target_path;
} }
// start download // start download

View File

@ -35,7 +35,7 @@ namespace {
// run updater. Original args: /silent -restartapp prusa-slicer.exe -startappfirst // run updater. Original args: /silent -restartapp prusa-slicer.exe -startappfirst
// Using quoted string as mentioned in CreateProcessW docs, silent execution parameter. // Using quoted string as mentioned in CreateProcessW docs, silent execution parameter.
std::wstring wcmd = L"\"" + path.wstring(); std::wstring wcmd = L"\"" + path.wstring(); //lm: closing quote?
// additional information // additional information
STARTUPINFOW si; STARTUPINFOW si;
@ -64,7 +64,7 @@ namespace {
return true; return true;
} }
else { else {
BOOST_LOG_TRIVIAL(error) << "Failed to run " << wcmd; BOOST_LOG_TRIVIAL(error) << "Failed to run " << wcmd; //lm: maybe a UI error message?
} }
} }
return false; return false;
@ -86,6 +86,8 @@ namespace {
{ {
// this command can run the installer exe as well, but is it better than CreateProcessW? // this command can run the installer exe as well, but is it better than CreateProcessW?
ShellExecuteW(NULL, NULL, path.wstring().c_str(), NULL, NULL, SW_SHOWNORMAL); ShellExecuteW(NULL, NULL, path.wstring().c_str(), NULL, NULL, SW_SHOWNORMAL);
//lm:I would make it explicit that the folder should be opened.
//lm:Also, this always returns true.
return true; return true;
} }
@ -100,6 +102,9 @@ namespace {
wxString command = "xdg-user-dir DOWNLOAD"; wxString command = "xdg-user-dir DOWNLOAD";
wxArrayString output; wxArrayString output;
//lm:It might be a good idea to make the following a separate function in GUI_Utils or something
// It is already used in four different places in almost the same way.
//Check if we're running in an AppImage container, if so, we need to remove AppImage's env vars, //Check if we're running in an AppImage container, if so, we need to remove AppImage's env vars,
// because they may mess up the environment expected by the file manager. // because they may mess up the environment expected by the file manager.
// Mostly this is about LD_LIBRARY_PATH, but we remove a few more too for good measure. // Mostly this is about LD_LIBRARY_PATH, but we remove a few more too for good measure.
@ -131,7 +136,7 @@ namespace {
::wxExecute(command, output); ::wxExecute(command, output);
} }
if (output.GetCount() > 0) { if (output.GetCount() > 0) {
return boost::nowide::narrow(output[0]); return boost::nowide::narrow(output[0]); //lm:I would use wxString::ToUTF8(), although on Linux, nothing at all should work too.
} }
return std::string(); return std::string();
} }
@ -141,6 +146,8 @@ namespace {
if (boost::filesystem::is_directory(path)) { if (boost::filesystem::is_directory(path)) {
const char *argv[] = { "xdg-open", path.string().c_str(), nullptr }; const char *argv[] = { "xdg-open", path.string().c_str(), nullptr };
//lm:This is a copy of desktop_open_datadir_folder, it would make sense to instead call it.
// Check if we're running in an AppImage container, if so, we need to remove AppImage's env vars, // Check if we're running in an AppImage container, if so, we need to remove AppImage's env vars,
// because they may mess up the environment expected by the file manager. // because they may mess up the environment expected by the file manager.
// Mostly this is about LD_LIBRARY_PATH, but we remove a few more too for good measure. // Mostly this is about LD_LIBRARY_PATH, but we remove a few more too for good measure.
@ -264,7 +271,7 @@ AppUpdater::priv::priv() :
if (!downloads_path.empty()) { if (!downloads_path.empty()) {
m_default_dest_folder = std::move(downloads_path); m_default_dest_folder = std::move(downloads_path);
} }
BOOST_LOG_TRIVIAL(error) << "Default download path: " << m_default_dest_folder; BOOST_LOG_TRIVIAL(error) << "Default download path: " << m_default_dest_folder; //lm:Is this an error?
} }
@ -277,7 +284,7 @@ bool AppUpdater::priv::http_get_file(const std::string& url, size_t size_limit,
// progress function returns true as success (to continue) // progress function returns true as success (to continue)
cancel = (this->m_cancel ? true : !progress_fn(std::move(progress))); cancel = (this->m_cancel ? true : !progress_fn(std::move(progress)));
if (cancel) { if (cancel) {
error_message = GUI::format("Error getting: `%1%`: Download was canceled.", error_message = GUI::format("Error getting: `%1%`: Download was canceled.", //lm:typo
url); url);
BOOST_LOG_TRIVIAL(debug) << "AppUpdater::priv::http_get_file message: "<< error_message; BOOST_LOG_TRIVIAL(debug) << "AppUpdater::priv::http_get_file message: "<< error_message;
} }
@ -311,7 +318,7 @@ boost::filesystem::path AppUpdater::priv::download_file(const DownloadAppData& d
return boost::filesystem::path(); return boost::filesystem::path();
} }
std::string error_message; std::string error_message;
bool res = http_get_file(data.url, 80 * 1024 * 1024 //TODO: what value here bool res = http_get_file(data.url, 80 * 1024 * 1024 //TODO: what value here //lm:I don't know, but larger. The binaries will grow.
// on_progress // on_progress
, [&last_gui_progress, expected_size](Http::Progress progress) { , [&last_gui_progress, expected_size](Http::Progress progress) {
// size check // size check
@ -322,7 +329,7 @@ boost::filesystem::path AppUpdater::priv::download_file(const DownloadAppData& d
evt->SetString(message); evt->SetString(message);
GUI::wxGetApp().QueueEvent(evt); GUI::wxGetApp().QueueEvent(evt);
return false; return false;
} else if (progress.dltotal > 0 && progress.dltotal < expected_size) { } else if (progress.dltotal > 0 && progress.dltotal < expected_size) { //lm:When will this happen? Is that not an error?
BOOST_LOG_TRIVIAL(error) << GUI::format("Downloading new %1% has incorrect size. The download will continue. \nExpected size: %2%\nDownload size: %3%", SLIC3R_APP_NAME, expected_size, progress.dltotal);; BOOST_LOG_TRIVIAL(error) << GUI::format("Downloading new %1% has incorrect size. The download will continue. \nExpected size: %2%\nDownload size: %3%", SLIC3R_APP_NAME, expected_size, progress.dltotal);;
} }
// progress event // progress event
@ -341,6 +348,7 @@ boost::filesystem::path AppUpdater::priv::download_file(const DownloadAppData& d
// Size check. Does always 1 char == 1 byte? // Size check. Does always 1 char == 1 byte?
size_t body_size = body.size(); size_t body_size = body.size();
if (body_size != expected_size) { if (body_size != expected_size) {
//lm:UI message?
BOOST_LOG_TRIVIAL(error) << "Downloaded file has wrong size. Expected size: " << expected_size << " Downloaded size: " << body_size; BOOST_LOG_TRIVIAL(error) << "Downloaded file has wrong size. Expected size: " << expected_size << " Downloaded size: " << body_size;
return false; return false;
} }
@ -366,7 +374,7 @@ boost::filesystem::path AppUpdater::priv::download_file(const DownloadAppData& d
{ {
if (this->m_cancel) if (this->m_cancel)
{ {
BOOST_LOG_TRIVIAL(error) << error_message; BOOST_LOG_TRIVIAL(error) << error_message; //lm:Is this an error?
} else { } else {
std::string message = GUI::format("Downloading new %1% has failed:\n%2%", SLIC3R_APP_NAME, error_message); std::string message = GUI::format("Downloading new %1% has failed:\n%2%", SLIC3R_APP_NAME, error_message);
BOOST_LOG_TRIVIAL(error) << message; BOOST_LOG_TRIVIAL(error) << message;
@ -403,6 +411,9 @@ void AppUpdater::priv::version_check(const std::string& version_check_url)
} }
, error_message , error_message
); );
//lm:In case the internet is not available, it will report no updates if run by user.
// We might save a flag that we don't know or try to run the version_check again, reporting
// the failure.
if (!res) if (!res)
BOOST_LOG_TRIVIAL(error) << "Failed to download version file: " << error_message; BOOST_LOG_TRIVIAL(error) << "Failed to download version file: " << error_message;
} }
@ -444,6 +455,8 @@ void AppUpdater::priv::parse_version_string(const std::string& body)
#else #else
"release:osx" "release:osx"
#endif #endif
//lm:Related to the ifdefs. We should also support BSD, which behaves similar to Linux in most cases.
// Unless you have a reason not to, I would consider doing _WIN32, elif __APPLE__, else ... Not just here.
) { ) {
for (const auto& data : section.second) { for (const auto& data : section.second) {
if (data.first == "url") { if (data.first == "url") {
@ -517,7 +530,7 @@ void AppUpdater::priv::parse_version_string(const std::string& body)
GUI::wxGetApp().QueueEvent(evt); GUI::wxGetApp().QueueEvent(evt);
} }
#if 0 #if 0 //lm:is this meant to be ressurected?
void AppUpdater::priv::parse_version_string_old(const std::string& body) const void AppUpdater::priv::parse_version_string_old(const std::string& body) const
{ {