From 916c873ba3472680ceed0f57875f039fdd54a360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 15 Jun 2011 20:12:24 +0000 Subject: [PATCH] * 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 --- .../network/EthernetSettingsView.cpp | 54 ++++++++++--------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/src/preferences/network/EthernetSettingsView.cpp b/src/preferences/network/EthernetSettingsView.cpp index ad57127c2b..0250b24768 100644 --- a/src/preferences/network/EthernetSettingsView.cpp +++ b/src/preferences/network/EthernetSettingsView.cpp @@ -114,7 +114,7 @@ EthernetSettingsView::EthernetSettingsView() rootLayout->SetSpacing(inset); layout->SetSpacing(inset, inset); - BPopUpMenu* deviceMenu = new BPopUpMenu("devices"); + BPopUpMenu* deviceMenu = new BPopUpMenu(""); for (int32 i = 0; i < fInterfaces.CountItems(); i++) { BString& name = *fInterfaces.ItemAt(i); BString label = name; @@ -235,9 +235,8 @@ EthernetSettingsView::AttachedToWindow() fNetworkMenuField->Menu()->SetTargetForItems(this); fTypeMenuField->Menu()->SetTargetForItems(this); - // display settigs of first adapter on startup - if (fSettings.ItemAt(0)) - _ShowConfiguration(fSettings.ItemAt(0)); + // Display settigs of first adapter on startup, if any + _ShowConfiguration(fSettings.ItemAt(0)); } @@ -331,10 +330,33 @@ EthernetSettingsView::_ShowConfiguration(Settings* settings) fSecondaryDNSTextControl->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 BNetworkDevice device(settings->Name()); - if (fNetworkMenuField->IsHidden(fNetworkMenuField) - && device.IsWireless()) { + if (fNetworkMenuField->IsHidden(fNetworkMenuField) && device.IsWireless()) { fNetworkMenuField->Show(); Window()->InvalidateLayout(); } else if (!fNetworkMenuField->IsHidden(fNetworkMenuField) @@ -381,30 +403,14 @@ EthernetSettingsView::_ShowConfiguration(Settings* settings) menu->SetTargetForItems(this); } - bool enableControls = false; - fTypeMenuField->SetEnabled(settings != NULL); - - BMenuItem* item = fDeviceMenuField->Menu()->FindItem(settings->Name()); - if (item) + item = fDeviceMenuField->Menu()->FindItem(settings->Name()); + if (item != NULL) item->SetMarked(true); fIPTextControl->SetText(settings->IP()); fGatewayTextControl->SetText(settings->Gateway()); 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) { fSecondaryDNSTextControl->SetText( settings->NameServers().ItemAt(1)->String());