From 2f54215e6537eaab9442dc203b0c140b865a66b1 Mon Sep 17 00:00:00 2001 From: Person Date: Thu, 30 Mar 2017 17:10:44 -0700 Subject: [PATCH] --Bug fixes -On delete, select the library item closest to the last one which was deleted. --- Source/Fractorium/FractoriumLibrary.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Source/Fractorium/FractoriumLibrary.cpp b/Source/Fractorium/FractoriumLibrary.cpp index 8efe718..1c7cd6f 100644 --- a/Source/Fractorium/FractoriumLibrary.cpp +++ b/Source/Fractorium/FractoriumLibrary.cpp @@ -358,11 +358,13 @@ template void FractoriumEmberController::Delete(const vector>& v) { size_t offset = 0; + uint last = 0; for (auto& p : v) { if (p.second && m_EmberFile.Delete(p.first - offset)) { + last = uint(p.first - offset); delete p.second; SyncLibrary(eLibraryUpdate::INDEX); m_Fractorium->SyncFileCountToSequenceCount(); @@ -371,12 +373,15 @@ void FractoriumEmberController::Delete(const vectorui.LibraryTree->topLevelItem(0)) - if (top->childCount() == 1) - if (auto item = dynamic_cast*>(top->child(0))) - if (item->GetEmber()->m_Name != m_Ember.m_Name) - EmberTreeItemDoubleClicked(top->child(0), 0); + { + last = std::min(top->childCount() - 1, last); + + if (auto item = dynamic_cast*>(top->child(last))) + if (item->GetEmber()->m_Name != m_Ember.m_Name) + EmberTreeItemDoubleClicked(item, 0); + } } ///