Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kocik <kocikdav@gmail.com>2019-12-11 16:53:28 +0300
committerDavid Kocik <kocikdav@gmail.com>2019-12-13 15:51:46 +0300
commit8f0eef8f36683a17b1749f52784efc7bbd2f576d (patch)
treeff94ef10cf380eb0865dd19fedb5ddf91d535518 /src/slic3r/GUI/RemovableDriveManager.cpp
parentf5e3750d233d1f9687fa9c906b39150df1eca609 (diff)
eject button functionality
Diffstat (limited to 'src/slic3r/GUI/RemovableDriveManager.cpp')
-rw-r--r--src/slic3r/GUI/RemovableDriveManager.cpp24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/slic3r/GUI/RemovableDriveManager.cpp b/src/slic3r/GUI/RemovableDriveManager.cpp
index 1a964f889..49bf59e11 100644
--- a/src/slic3r/GUI/RemovableDriveManager.cpp
+++ b/src/slic3r/GUI/RemovableDriveManager.cpp
@@ -198,15 +198,16 @@ INT_PTR WINAPI WinProcCallback(HWND hWnd, UINT message, WPARAM wParam, LPARAM lP
DEVICE_NOTIFY_WINDOW_HANDLE // type of recipient handle
);
break;
+ /*
case WM_DEVICECHANGE:
{
if(wParam == DBT_DEVICEREMOVECOMPLETE)
{
- std::cout << "WM_DEVICECHANGE\n";
- RemovableDriveManager::get_instance().update();
+- RemovableDriveManager::get_instance().update(0, true);
}
}
break;
+ */
default:
// Send all other messages on to the default windows handler.
lRet = DefWindowProc(hWnd, message, wParam, lParam);
@@ -403,7 +404,7 @@ RemovableDriveManager::RemovableDriveManager():
void RemovableDriveManager::init()
{
- add_callback([](void) { RemovableDriveManager::get_instance().print(); });
+ //add_callback([](void) { RemovableDriveManager::get_instance().print(); });
#if _WIN32
register_window();
#elif __APPLE__
@@ -441,8 +442,18 @@ bool RemovableDriveManager::is_drive_mounted(const std::string &path)
}
return false;
}
-
-std::string RemovableDriveManager::get_last_drive_path()
+std::string RemovableDriveManager::get_drive_path()
+{
+ if (m_current_drives.size() == 0)
+ {
+ reset_last_save_path();
+ return "";
+ }
+ if (m_last_save_path != "")
+ return m_last_save_path;
+ return m_current_drives.back().path;
+}
+std::string RemovableDriveManager::get_last_save_path()
{
return m_last_save_path;
}
@@ -456,7 +467,7 @@ void RemovableDriveManager::check_and_notify()
if(m_drives_count != m_current_drives.size())
{
//std::cout<<" vs "<< m_current_drives.size();
- if(m_drives_count > m_current_drives.size() && m_last_save_path != "" && !is_drive_mounted(m_last_save_path))
+ if(m_callbacks.size() != 0 && m_drives_count > m_current_drives.size() && m_last_save_path != "" && !is_drive_mounted(m_last_save_path))
{
for (auto it = m_callbacks.begin(); it != m_callbacks.end(); ++it)
{
@@ -485,6 +496,7 @@ void RemovableDriveManager::set_last_save_path(const std::string& path)
}
bool RemovableDriveManager::is_last_drive_removed()
{
+ m_drives_count = m_current_drives.size();
if(m_last_save_path == "")
{
return true;