Skip to content

Commit

Permalink
Showing Eject button only after exporting is finished. Fix of #4212
Browse files Browse the repository at this point in the history
  • Loading branch information
kocikdav committed Jul 26, 2020
1 parent 87824ef commit 67d2f43
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 3 deletions.
5 changes: 4 additions & 1 deletion src/slic3r/GUI/Plater.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3450,7 +3450,7 @@ void Plater::priv::on_slicing_completed(wxCommandEvent &)
break;
default: break;
}
}
}

void Plater::priv::on_process_completed(wxCommandEvent &evt)
{
Expand Down Expand Up @@ -3510,7 +3510,10 @@ void Plater::priv::on_process_completed(wxCommandEvent &evt)
show_action_buttons(true);
}
else if (this->writing_to_removable_device || wxGetApp().get_mode() == comSimple)
{
wxGetApp().removable_drive_manager()->set_exporting_finished(true);
show_action_buttons(false);
}
this->writing_to_removable_device = false;
}

Expand Down
2 changes: 2 additions & 0 deletions src/slic3r/GUI/RemovableDriveManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,7 @@ bool RemovableDriveManager::set_and_verify_last_save_path(const std::string &pat
#endif // REMOVABLE_DRIVE_MANAGER_OS_CALLBACKS

m_last_save_path = this->get_removable_drive_from_path(path);
m_exporting_finished = false;
return ! m_last_save_path.empty();
}

Expand All @@ -407,6 +408,7 @@ RemovableDriveManager::RemovableDrivesStatus RemovableDriveManager::status()
}
if (! out.has_eject)
m_last_save_path.clear();
out.has_eject = out.has_eject && m_exporting_finished;
return out;
}

Expand Down
6 changes: 4 additions & 2 deletions src/slic3r/GUI/RemovableDriveManager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ class RemovableDriveManager
// Public to be accessible from RemovableDriveManagerMM::on_device_unmount OSX notification handler.
// It would be better to make this method private and friend to RemovableDriveManagerMM, but RemovableDriveManagerMM is an ObjectiveC class.
void update();

void set_exporting_finished(bool b) { m_exporting_finished = b; }
#ifdef _WIN32
// Called by Win32 Volume arrived / detached callback.
void volumes_changed();
Expand Down Expand Up @@ -121,7 +121,9 @@ class RemovableDriveManager
std::vector<DriveData>::const_iterator find_last_save_path_drive_data() const;
// Set with set_and_verify_last_save_path() to a removable drive path to be ejected.
std::string m_last_save_path;

// Verifies that exporting was finished so drive can be ejected.
// Set false by set_and_verify_last_save_path() that is called just before exporting.
bool m_exporting_finished;
#if __APPLE__
void register_window_osx();
void unregister_window_osx();
Expand Down

0 comments on commit 67d2f43

Please sign in to comment.