changes in plater.cpp

This commit is contained in:
David Kocik 2019-12-19 14:19:41 +01:00
parent 7b95ec486f
commit d7698a36cb
2 changed files with 23 additions and 22 deletions

View File

@ -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)

View File

@ -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<DriveData> 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<void()> 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)