* Solved #7038 a bit nicer by disabling the interface.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42196 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2011-06-15 20:12:24 +00:00
parent 4a3a7e3f28
commit 916c873ba3
@@ -114,7 +114,7 @@ EthernetSettingsView::EthernetSettingsView()
rootLayout->SetSpacing(inset); rootLayout->SetSpacing(inset);
layout->SetSpacing(inset, inset); layout->SetSpacing(inset, inset);
BPopUpMenu* deviceMenu = new BPopUpMenu("devices"); BPopUpMenu* deviceMenu = new BPopUpMenu("<No adapter>");
for (int32 i = 0; i < fInterfaces.CountItems(); i++) { for (int32 i = 0; i < fInterfaces.CountItems(); i++) {
BString& name = *fInterfaces.ItemAt(i); BString& name = *fInterfaces.ItemAt(i);
BString label = name; BString label = name;
@@ -235,8 +235,7 @@ EthernetSettingsView::AttachedToWindow()
fNetworkMenuField->Menu()->SetTargetForItems(this); fNetworkMenuField->Menu()->SetTargetForItems(this);
fTypeMenuField->Menu()->SetTargetForItems(this); fTypeMenuField->Menu()->SetTargetForItems(this);
// display settigs of first adapter on startup // Display settigs of first adapter on startup, if any
if (fSettings.ItemAt(0))
_ShowConfiguration(fSettings.ItemAt(0)); _ShowConfiguration(fSettings.ItemAt(0));
} }
@@ -331,10 +330,33 @@ EthernetSettingsView::_ShowConfiguration(Settings* settings)
fSecondaryDNSTextControl->SetText(""); fSecondaryDNSTextControl->SetText("");
fDomainTextControl->SetText(""); fDomainTextControl->SetText("");
fDeviceMenuField->SetEnabled(settings != NULL);
fTypeMenuField->SetEnabled(settings != NULL);
bool enableControls = false;
BMenuItem* item;
if (settings == NULL || settings->IsDisabled())
item = fTypeMenuField->Menu()->FindItem(B_TRANSLATE("Disabled"));
else if (settings->AutoConfigure())
item = fTypeMenuField->Menu()->FindItem(B_TRANSLATE("DHCP"));
else {
item = fTypeMenuField->Menu()->FindItem(B_TRANSLATE("Static"));
enableControls = true;
}
if (item != NULL)
item->SetMarked(true);
if (settings == NULL) {
if (!fNetworkMenuField->IsHidden(fNetworkMenuField))
fNetworkMenuField->Hide();
_EnableTextControls(false);
return;
}
// Show/hide networks menu // Show/hide networks menu
BNetworkDevice device(settings->Name()); BNetworkDevice device(settings->Name());
if (fNetworkMenuField->IsHidden(fNetworkMenuField) if (fNetworkMenuField->IsHidden(fNetworkMenuField) && device.IsWireless()) {
&& device.IsWireless()) {
fNetworkMenuField->Show(); fNetworkMenuField->Show();
Window()->InvalidateLayout(); Window()->InvalidateLayout();
} else if (!fNetworkMenuField->IsHidden(fNetworkMenuField) } else if (!fNetworkMenuField->IsHidden(fNetworkMenuField)
@@ -381,30 +403,14 @@ EthernetSettingsView::_ShowConfiguration(Settings* settings)
menu->SetTargetForItems(this); menu->SetTargetForItems(this);
} }
bool enableControls = false; item = fDeviceMenuField->Menu()->FindItem(settings->Name());
fTypeMenuField->SetEnabled(settings != NULL); if (item != NULL)
BMenuItem* item = fDeviceMenuField->Menu()->FindItem(settings->Name());
if (item)
item->SetMarked(true); item->SetMarked(true);
fIPTextControl->SetText(settings->IP()); fIPTextControl->SetText(settings->IP());
fGatewayTextControl->SetText(settings->Gateway()); fGatewayTextControl->SetText(settings->Gateway());
fNetMaskTextControl->SetText(settings->Netmask()); fNetMaskTextControl->SetText(settings->Netmask());
enableControls = false;
if (settings->IsDisabled())
item = fTypeMenuField->Menu()->FindItem(B_TRANSLATE("Disabled"));
else if (settings->AutoConfigure())
item = fTypeMenuField->Menu()->FindItem(B_TRANSLATE("DHCP"));
else {
item = fTypeMenuField->Menu()->FindItem(B_TRANSLATE("Static"));
enableControls = true;
}
if (item)
item->SetMarked(true);
if (settings->NameServers().CountItems() >= 2) { if (settings->NameServers().CountItems() >= 2) {
fSecondaryDNSTextControl->SetText( fSecondaryDNSTextControl->SetText(
settings->NameServers().ItemAt(1)->String()); settings->NameServers().ItemAt(1)->String());