From d7698a36cbf0752a00fc5bd9789ffc2668e5e6d0 Mon Sep 17 00:00:00 2001 From: David Kocik Date: Thu, 19 Dec 2019 14:19:41 +0100 Subject: [PATCH] changes in plater.cpp --- src/slic3r/GUI/Plater.cpp | 26 +++++++++++------------- src/slic3r/GUI/RemovableDriveManager.cpp | 19 +++++++++-------- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 174d6b189..26647a729 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -3611,17 +3611,14 @@ void Plater::priv::on_process_completed(wxCommandEvent &evt) } else if (wxGetApp().get_mode() == comSimple) show_action_buttons(false); - if(RemovableDriveManager::get_instance().get_is_writing()) - { - RemovableDriveManager::get_instance().set_is_writing(false); - RemovableDriveManager::get_instance().verify_last_save_path(); - if (!RemovableDriveManager::get_instance().is_last_drive_removed()) - { - RemovableDriveManager::get_instance().erase_callbacks(); - RemovableDriveManager::get_instance().add_callback(std::bind(&Plater::drive_ejected_callback, q)); + if(!canceled && RemovableDriveManager::get_instance().get_is_writing()) + { + //if (!RemovableDriveManager::get_instance().is_last_drive_removed()) + //{ + RemovableDriveManager::get_instance().set_is_writing(false); show_action_buttons(false); - } + //} } } @@ -4755,19 +4752,20 @@ void Plater::export_gcode() if (! output_path.empty()) { std::string path = output_path.string(); - RemovableDriveManager::get_instance().set_is_writing(true); - RemovableDriveManager::get_instance().update(0, true); p->export_gcode(std::move(output_path), PrintHostJob()); + + RemovableDriveManager::get_instance().update(0, false); RemovableDriveManager::get_instance().set_last_save_path(path); - /* + RemovableDriveManager::get_instance().verify_last_save_path(); + if(!RemovableDriveManager::get_instance().is_last_drive_removed()) { + RemovableDriveManager::get_instance().set_is_writing(true); RemovableDriveManager::get_instance().erase_callbacks(); RemovableDriveManager::get_instance().add_callback(std::bind(&Plater::drive_ejected_callback, this)); } - */ + } - } void Plater::export_stl(bool extended, bool selection_only) diff --git a/src/slic3r/GUI/RemovableDriveManager.cpp b/src/slic3r/GUI/RemovableDriveManager.cpp index 736984755..603994770 100644 --- a/src/slic3r/GUI/RemovableDriveManager.cpp +++ b/src/slic3r/GUI/RemovableDriveManager.cpp @@ -449,7 +449,11 @@ bool RemovableDriveManager::update(const long time,const bool check) } } search_for_drives(); - if(check)check_and_notify(); + if (m_drives_count != m_current_drives.size()) + { + if (check)check_and_notify(); + m_drives_count = m_current_drives.size(); + } return !m_current_drives.empty(); } @@ -491,16 +495,12 @@ std::vector RemovableDriveManager::get_all_drives() } void RemovableDriveManager::check_and_notify() { - if(m_drives_count != m_current_drives.size()) + if(m_callbacks.size() != 0 && m_drives_count > m_current_drives.size() && m_last_save_path_verified && !is_drive_mounted(m_last_save_path)) { - if(m_callbacks.size() != 0 && m_drives_count > m_current_drives.size() && m_last_save_path_verified && !is_drive_mounted(m_last_save_path)) + for (auto it = m_callbacks.begin(); it != m_callbacks.end(); ++it) { - for (auto it = m_callbacks.begin(); it != m_callbacks.end(); ++it) - { - (*it)(); - } + (*it)(); } - m_drives_count = m_current_drives.size(); } } void RemovableDriveManager::add_callback(std::function callback) @@ -524,6 +524,9 @@ void RemovableDriveManager::verify_last_save_path() m_last_save_path_verified = true; m_last_save_path = last_drive; m_last_save_name = get_drive_name(last_drive); + }else + { + reset_last_save_path(); } } std::string RemovableDriveManager::get_drive_name(const std::string& path)