| 4462 | |
| 4463 | #ifdef USE_THUMBNAILS |
| 4464 | void IGFD::FileDialog::m_DrawThumbnailsListView(ImVec2 vSize) { |
| 4465 | auto& fdi = m_FileDialogInternal.fileManager; |
| 4466 | |
| 4467 | ImGui::PushID(this); |
| 4468 | |
| 4469 | static ImGuiTableFlags flags = ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_RowBg | ImGuiTableFlags_Hideable | ImGuiTableFlags_ScrollY | ImGuiTableFlags_NoHostExtendY |
| 4470 | #ifndef USE_CUSTOM_SORTING_ICON |
| 4471 | | ImGuiTableFlags_Sortable |
| 4472 | #endif // USE_CUSTOM_SORTING_ICON |
| 4473 | ; |
| 4474 | auto listViewID = ImGui::GetID("##FileDialog_fileTable"); |
| 4475 | if (ImGui::BeginTableEx("##FileDialog_fileTable", listViewID, 5, flags, vSize, 0.0f)) { |
| 4476 | ImGui::TableSetupScrollFreeze(0, 1); // Make header always visible |
| 4477 | ImGui::TableSetupColumn(fdi.headerFileName.c_str(), ImGuiTableColumnFlags_WidthStretch | (defaultSortOrderFilename ? ImGuiTableColumnFlags_PreferSortAscending : ImGuiTableColumnFlags_PreferSortDescending), -1, 0); |
| 4478 | ImGui::TableSetupColumn(fdi.headerFileType.c_str(), |
| 4479 | ImGuiTableColumnFlags_WidthFixed | (defaultSortOrderType ? ImGuiTableColumnFlags_PreferSortAscending : ImGuiTableColumnFlags_PreferSortDescending) | |
| 4480 | ((m_FileDialogInternal.getDialogConfig().flags & ImGuiFileDialogFlags_HideColumnType) ? ImGuiTableColumnFlags_DefaultHide : 0), |
| 4481 | -1, 1); |
| 4482 | ImGui::TableSetupColumn(fdi.headerFileSize.c_str(), |
| 4483 | ImGuiTableColumnFlags_WidthFixed | (defaultSortOrderSize ? ImGuiTableColumnFlags_PreferSortAscending : ImGuiTableColumnFlags_PreferSortDescending) | |
| 4484 | ((m_FileDialogInternal.getDialogConfig().flags & ImGuiFileDialogFlags_HideColumnSize) ? ImGuiTableColumnFlags_DefaultHide : 0), |
| 4485 | -1, 2); |
| 4486 | ImGui::TableSetupColumn(fdi.headerFileDate.c_str(), |
| 4487 | ImGuiTableColumnFlags_WidthFixed | (defaultSortOrderDate ? ImGuiTableColumnFlags_PreferSortAscending : ImGuiTableColumnFlags_PreferSortDescending) | |
| 4488 | ((m_FileDialogInternal.getDialogConfig().flags & ImGuiFileDialogFlags_HideColumnDate) ? ImGuiTableColumnFlags_DefaultHide : 0), |
| 4489 | -1, 3); |
| 4490 | // not needed to have an option for hide the thumbnails since this is why this view is used |
| 4491 | ImGui::TableSetupColumn(fdi.headerFileThumbnails.c_str(), ImGuiTableColumnFlags_WidthFixed | (defaultSortOrderThumbnails ? ImGuiTableColumnFlags_PreferSortAscending : ImGuiTableColumnFlags_PreferSortDescending), -1, 4); //-V112 |
| 4492 | |
| 4493 | #ifndef USE_CUSTOM_SORTING_ICON |
| 4494 | // Sort our data if sort specs have been changed! |
| 4495 | if (ImGuiTableSortSpecs* sorts_specs = ImGui::TableGetSortSpecs()) { |
| 4496 | if (sorts_specs->SpecsDirty && !fdi.IsFileListEmpty()) { |
| 4497 | bool direction = sorts_specs->Specs->SortDirection == ImGuiSortDirection_Ascending; |
| 4498 | |
| 4499 | if (sorts_specs->Specs->ColumnUserID == 0) { |
| 4500 | fdi.sortingField = IGFD::FileManager::SortingFieldEnum::FIELD_FILENAME; |
| 4501 | fdi.sortingDirection[0] = direction; |
| 4502 | fdi.SortFields(m_FileDialogInternal); |
| 4503 | } else if (sorts_specs->Specs->ColumnUserID == 1) { |
| 4504 | fdi.sortingField = IGFD::FileManager::SortingFieldEnum::FIELD_TYPE; |
| 4505 | fdi.sortingDirection[1] = direction; |
| 4506 | fdi.SortFields(m_FileDialogInternal); |
| 4507 | } else if (sorts_specs->Specs->ColumnUserID == 2) { |
| 4508 | fdi.sortingField = IGFD::FileManager::SortingFieldEnum::FIELD_SIZE; |
| 4509 | fdi.sortingDirection[2] = direction; |
| 4510 | fdi.SortFields(m_FileDialogInternal); |
| 4511 | } else if (sorts_specs->Specs->ColumnUserID == 3) { |
| 4512 | fdi.sortingField = IGFD::FileManager::SortingFieldEnum::FIELD_DATE; |
| 4513 | fdi.sortingDirection[3] = direction; |
| 4514 | fdi.SortFields(m_FileDialogInternal); |
| 4515 | } else // if (sorts_specs->Specs->ColumnUserID == 4) = > always true for the moment, to uncomment if we |
| 4516 | // add another column |
| 4517 | { |
| 4518 | fdi.sortingField = IGFD::FileManager::SortingFieldEnum::FIELD_THUMBNAILS; |
| 4519 | fdi.sortingDirection[4] = direction; |
| 4520 | fdi.SortFields(m_FileDialogInternal); |
| 4521 | } |
nothing calls this directly
no test coverage detected