MCPcopy Create free account
hub / github.com/chrxh/alien / processSimulationList

Method processSimulationList

source/Gui/BrowserWindow.cpp:552–658  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

550}
551
552void BrowserWindow::processSimulationList()
553{
554 ImGui::PushID("SimulationList");
555 static ImGuiTableFlags flags = ImGuiTableFlags_Resizable | ImGuiTableFlags_Reorderable | ImGuiTableFlags_Hideable | ImGuiTableFlags_Sortable
556 | ImGuiTableFlags_SortMulti | ImGuiTableFlags_RowBg | ImGuiTableFlags_BordersOuter | ImGuiTableFlags_BordersV
557 | ImGuiTableFlags_ScrollY | ImGuiTableFlags_ScrollX;
558
559 if (ImGui::BeginTable("Browser", 11, flags, ImVec2(-1, -scale(WorkspaceBottomSpace)), 0.0f)) {
560 ImGui::TableSetupColumn("Simulation", ImGuiTableColumnFlags_WidthFixed, scale(210.0f), NetworkResourceColumnId_SimulationName);
561 ImGui::TableSetupColumn("Description", ImGuiTableColumnFlags_WidthFixed, scale(200.0f), NetworkResourceColumnId_Description);
562 ImGui::TableSetupColumn("Reactions", ImGuiTableColumnFlags_WidthFixed, scale(140.0f), NetworkResourceColumnId_Likes);
563 ImGui::TableSetupColumn(
564 "Timestamp",
565 ImGuiTableColumnFlags_DefaultSort | ImGuiTableColumnFlags_WidthFixed | ImGuiTableColumnFlags_PreferSortDescending,
566 scale(135.0f),
567 NetworkResourceColumnId_Timestamp);
568 ImGui::TableSetupColumn("User name", ImGuiTableColumnFlags_WidthFixed, scale(120.0f), NetworkResourceColumnId_UserName);
569 ImGui::TableSetupColumn("Downloads", ImGuiTableColumnFlags_WidthFixed, 0.0f, NetworkResourceColumnId_NumDownloads);
570 ImGui::TableSetupColumn("Width", ImGuiTableColumnFlags_WidthFixed, 0.0f, NetworkResourceColumnId_Width);
571 ImGui::TableSetupColumn("Height", ImGuiTableColumnFlags_WidthFixed, 0.0f, NetworkResourceColumnId_Height);
572 ImGui::TableSetupColumn("Objects", ImGuiTableColumnFlags_WidthFixed, 0.0f, NetworkResourceColumnId_Particles);
573 ImGui::TableSetupColumn("File size", ImGuiTableColumnFlags_WidthFixed, 0.0f, NetworkResourceColumnId_FileSize);
574 ImGui::TableSetupColumn("Version", ImGuiTableColumnFlags_WidthFixed, 0.0f, NetworkResourceColumnId_Version);
575 ImGui::TableSetupScrollFreeze(0, 1);
576 ImGui::TableHeadersRow();
577 ImGui::TableSetBgColor(ImGuiTableBgTarget_RowBg0, Const::TableHeaderColor);
578
579 //create treeTOs if sorting changed
580 if (auto sortSpecs = ImGui::TableGetSortSpecs()) {
581 if (sortSpecs->SpecsDirty) {
582 for (WorkspaceType workspaceType = 0; workspaceType < WorkspaceType_Count; ++workspaceType) {
583 auto& workspace = _workspaces.at(WorkspaceId{NetworkResourceType_Simulation, workspaceType});
584 workspace.sortSpecs.clear();
585 for (int i = 0; i < sortSpecs->SpecsCount; ++i) {
586 workspace.sortSpecs.emplace_back(sortSpecs->Specs[i]);
587 }
588 createTreeTOs(workspace);
589 }
590 sortSpecs->SpecsDirty = false;
591 }
592 }
593
594 //process treeTOs
595 auto& workspace = _workspaces.at(_currentWorkspace);
596 auto scheduleRecreateTreeTOs = false;
597
598 ImGuiListClipper clipper;
599 clipper.Begin(workspace.treeTOs.size());
600 while (clipper.Step())
601 for (int row = clipper.DisplayStart; row < clipper.DisplayEnd; row++) {
602 auto treeTO = workspace.treeTOs.at(row);
603 if (treeTO->isLeaf()) {
604 _lastSessionData.registrate(treeTO->getLeaf().rawTO);
605 }
606
607 ImGui::PushID(row);
608 ImGui::TableNextRow(0, scale(RowHeight));
609 ImGui::TableNextColumn();

Callers

nothing calls this directly

Calls 6

ImVec2Class · 0.85
scaleFunction · 0.85
sizeMethod · 0.80
isLeafMethod · 0.80
registrateMethod · 0.80
clearMethod · 0.45

Tested by

no test coverage detected