boot loader: blacklist menu: Add "Return to ..." item

This commit is contained in:
Ingo Weinhold
2013-11-30 19:56:13 +01:00
parent cbfc38c62d
commit ccfc7bea50
+22 -15
View File
@@ -622,26 +622,29 @@ public:
{ {
_DeleteItems(); _DeleteItems();
if (fDirectory == NULL) if (fDirectory != NULL) {
return; void* cookie;
if (fDirectory->Open(&cookie, O_RDONLY) == B_OK) {
Node* node;
while (fDirectory->GetNextNode(cookie, &node) == B_OK) {
BlacklistMenuItem* item = _CreateItem(node);
node->Release();
if (item == NULL)
break;
void* cookie; AddItem(item);
if (fDirectory->Open(&cookie, O_RDONLY) == B_OK) {
Node* node;
while (fDirectory->GetNextNode(cookie, &node) == B_OK) {
BlacklistMenuItem* item = _CreateItem(node);
node->Release();
if (item == NULL)
break;
AddItem(item); item->UpdateBlacklisted();
}
item->UpdateBlacklisted(); fDirectory->Close(cookie);
} }
fDirectory->Close(cookie);
SortItems(&BlacklistMenuItem::Less);
} }
SortItems(&BlacklistMenuItem::Less); if (CountItems() > 0)
AddSeparatorItem();
AddItem(new(nothrow) MenuItem("Return to parent directory"));
} }
virtual void Exited() virtual void Exited()
@@ -725,6 +728,10 @@ public:
SetDirectory(NULL); SetDirectory(NULL);
BlacklistMenu::Entered(); BlacklistMenu::Entered();
// rename last item
if (MenuItem* item = ItemAt(CountItems() - 1))
item->SetLabel("Return to safe mode menu");
} }
virtual void Exited() virtual void Exited()