asset directories, part 6

This commit is contained in:
tildearrow 2023-05-16 00:04:26 -05:00
parent 442ccd0e09
commit 22638d5199
2 changed files with 10 additions and 2 deletions

View File

@ -1599,6 +1599,13 @@ void DivEngine::checkAssetDir(std::vector<DivAssetDir>& dir, size_t entries) {
j--;
continue;
}
// erase duplicate entry
if (inAssetDir[j]) {
i.entries.erase(i.entries.begin()+j);
j--;
continue;
}
// mark entry as present
inAssetDir[j]=true;

View File

@ -59,7 +59,7 @@ const char* sampleNote[12]={
e->lockEngine([&]() { \
int val=_type[dirToMove].entries[assetToMove]; \
_type[dirToMove].entries.erase(_type[dirToMove].entries.begin()+assetToMove); \
_type[_d].entries.insert(_type[_d].entries.begin()+MAX(_a,0),val); \
_type[_d].entries.insert((_a<0)?(_type[_d].entries.end()):(_type[_d].entries.begin()+_a),val); \
}); \
} \
} \
@ -592,7 +592,8 @@ void FurnaceGUI::drawInsList(bool asChild) {
insListItem(-1,-1,-1);
int dirIndex=0;
for (DivAssetDir& i: e->song.insDir) {
bool treeNode=ImGui::TreeNode(i.name.empty()?"<uncategorized>":i.name.c_str());
String nodeName=fmt::sprintf("%s %s##_AD%d",i.name.empty()?ICON_FA_FOLDER_O:ICON_FA_FOLDER,i.name.empty()?"<uncategorized>":i.name,i.name.empty()?-1:dirIndex);
bool treeNode=ImGui::TreeNodeEx(nodeName.c_str(),ImGuiTreeNodeFlags_SpanAvailWidth|(i.name.empty()?ImGuiTreeNodeFlags_DefaultOpen:0));
DRAG_SOURCE(dirIndex,-1);
DRAG_TARGET(dirIndex,-1,e->song.insDir);
if (treeNode) {