void BNavMenu::DoneBuildingItemList() { // add sorted items to menu if (TrackerSettings().SortFolderNamesFirst()) fItemList->SortItems(CompareFolderNamesFirstOne); else fItemList->SortItems(CompareOne); // if the parent link should be shown, it will be the first // entry in the menu - but don't add the item if we're already // at the file system's root if (fFlags & kShowParent) { BDirectory directory(&fNavDir); BEntry entry(&fNavDir); if (!directory.IsRootDirectory() && entry.GetParent(&entry) == B_OK) { Model model(&entry, true); BLooper* looper; AddNavParentDir(&model, fMessage.what, fMessenger.Target(&looper)); } } int32 count = fItemList->CountItems(); for (int32 index = 0; index < count; index++) AddItem(fItemList->ItemAt(index)); fItemList->MakeEmpty(); if (!count) { BMenuItem* item = new BMenuItem(B_TRANSLATE("Empty folder"), 0); item->SetEnabled(false); AddItem(item); } SetTargetForItems(fMessenger); }
void BNavMenu::AddNavParentDir(const Model *model, uint32 what, BHandler *target) { AddNavParentDir("parent folder",model,what,target); }