MCPcopy Create free account
hub / github.com/aiekick/ImGuiFileDialog / m_DrawThumbnailsListView

Method m_DrawThumbnailsListView

ImGuiFileDialog.cpp:4464–4665  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4462
4463#ifdef USE_THUMBNAILS
4464void 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 }

Callers

nothing calls this directly

Calls 8

IsFileListEmptyMethod · 0.80
SortFieldsMethod · 0.80
IsFilteredListEmptyMethod · 0.80
GetFilteredListSizeMethod · 0.80
GetFilteredFileAtMethod · 0.80
IsFileNameSelectedMethod · 0.80
emptyMethod · 0.80
isDirMethod · 0.80

Tested by

no test coverage detected