[haiku-commits] r42196 - haiku/trunk/src/preferences/network

  • From: axeld@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 15 Jun 2011 22:12:25 +0200 (CEST)

Author: axeld
Date: 2011-06-15 22:12:24 +0200 (Wed, 15 Jun 2011)
New Revision: 42196
Changeset: https://dev.haiku-os.org/changeset/42196
Ticket: https://dev.haiku-os.org/ticket/7038

Modified:
   haiku/trunk/src/preferences/network/EthernetSettingsView.cpp
Log:
* Solved #7038 a bit nicer by disabling the interface.


Modified: haiku/trunk/src/preferences/network/EthernetSettingsView.cpp
===================================================================
--- haiku/trunk/src/preferences/network/EthernetSettingsView.cpp        
2011-06-15 20:11:35 UTC (rev 42195)
+++ haiku/trunk/src/preferences/network/EthernetSettingsView.cpp        
2011-06-15 20:12:24 UTC (rev 42196)
@@ -114,7 +114,7 @@
        rootLayout->SetSpacing(inset);
        layout->SetSpacing(inset, inset);
 
-       BPopUpMenu* deviceMenu = new BPopUpMenu("devices");
+       BPopUpMenu* deviceMenu = new BPopUpMenu("<No adapter>");
        for (int32 i = 0; i < fInterfaces.CountItems(); i++) {
                BString& name = *fInterfaces.ItemAt(i);
                BString label = name;
@@ -235,9 +235,8 @@
        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 @@
        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 @@
                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());


Other related posts:

  • » [haiku-commits] r42196 - haiku/trunk/src/preferences/network - axeld