Network Preflet: EthernetSettingsView::_BuildInterfacesMenu()

needs to call SetTargetForItems(), otherwise selecting interfaces
in the popup menu doesn't work.
This commit is contained in:
Stefano Ceccherini 2014-09-07 07:49:18 +02:00
parent 5bde266926
commit 7da4809bfc

View File

@ -341,6 +341,12 @@ void
EthernetSettingsView::_BuildInterfacesMenu()
{
BMenu* menu = fDeviceMenuField->Menu();
BMenuItem* marked = menu->FindMarked();
BString markedName;
if (marked != NULL) {
markedName = marked->Label();
marked->SetMarked(false);
}
menu->RemoveItems(0, menu->CountItems(), true);
for (int32 i = 0; i < fInterfaces.CountItems(); i++) {
@ -352,9 +358,15 @@ EthernetSettingsView::_BuildInterfacesMenu()
menu->AddItem(item);
}
if (Window() != NULL)
menu->SetTargetForItems(this);
int32 numItems = menu->CountItems();
if (numItems > 0) {
fDeviceMenuField->Menu()->SetEnabled(true);
BMenuItem* item = menu->FindItem(markedName.String());
if (item != NULL)
item->SetMarked(true);
} else {
fDeviceMenuField->Menu()->SetEnabled(false);
}
@ -405,7 +417,6 @@ EthernetSettingsView::_ShowConfiguration(Settings* settings)
fSecondaryDNSTextControl->SetText("");
fDomainTextControl->SetText("");
fDeviceMenuField->SetEnabled(settings != NULL);
fTypeMenuField->SetEnabled(settings != NULL);
bool enableControls = false;