diff --git a/src/slic3r/GUI/ImageGrid.cpp b/src/slic3r/GUI/ImageGrid.cpp index be60185f6..624c0539d 100644 --- a/src/slic3r/GUI/ImageGrid.cpp +++ b/src/slic3r/GUI/ImageGrid.cpp @@ -92,8 +92,12 @@ void Slic3r::GUI::ImageGrid::SetFileType(int type, std::string const &storage) void Slic3r::GUI::ImageGrid::SetGroupMode(int mode) { - if (!m_file_sys || m_file_sys->GetCount() == 0) + if (!m_file_sys) return; + if (m_file_sys->GetCount() == 0) { + m_file_sys->SetGroupMode((PrinterFileSystem::GroupMode) mode); + return; + } wxSize size = GetClientSize(); int index = (m_row_offset + 1 < m_row_count || m_row_count == 0) ? m_row_offset / 4 * m_col_count diff --git a/src/slic3r/GUI/Printer/PrinterFileSystem.cpp b/src/slic3r/GUI/Printer/PrinterFileSystem.cpp index bdd1260e9..170d18687 100644 --- a/src/slic3r/GUI/Printer/PrinterFileSystem.cpp +++ b/src/slic3r/GUI/Printer/PrinterFileSystem.cpp @@ -104,6 +104,7 @@ void PrinterFileSystem::SetFileType(FileType type, std::string const &storage) m_file_list.swap(m_file_list_cache[{m_file_type, m_file_storage}]); m_lock_start = m_lock_end = 0; BuildGroups(); + UpdateGroupSelect(); SendChangedEvent(EVT_FILE_CHANGED); if (type == F_INVALID_TYPE) return; @@ -530,10 +531,10 @@ void PrinterFileSystem::Stop(bool quit) void PrinterFileSystem::BuildGroups() { - if (m_file_list.empty()) - return; m_group_year.clear(); m_group_month.clear(); + if (m_file_list.empty()) + return; wxDateTime t = wxDateTime((time_t) m_file_list.front().time); m_group_year.push_back(0); m_group_month.push_back(0);