/*! Builds the list view items, and adds them to fDriveView. Sets the fHasInstallableItems member to indicate if there are any possible install targets. Automatically selects the boot drive. */ void DrivesPage::_FillDrivesView(const BootMenuList& menus) { const char* selected = fSettings->FindString("disk"); BDiskDeviceRoster roster; BDiskDevice device; while (roster.GetNextDevice(&device) == B_OK) { if (device.HasMedia() && !device.IsReadOnly()) { DriveItem* item = new DriveItem(device, menus); if (item->CanBeInstalled()) fHasInstallableItems = true; fDrivesView->AddItem(item); if ((selected == NULL && item->IsBootDrive()) || (selected != NULL && !strcmp(item->Path(), selected))) { fDrivesView->Select(fDrivesView->CountItems() - 1); _UpdateWizardButtons(item); } } } }