Network: disabling/enabling devices is now working.

* Disabled the "renegotiate" button for now -- this will move to the
  interface add-ons, at least some day.
This commit is contained in:
Axel Dörfler
2015-03-27 13:25:31 +01:00
parent 81ba2a0474
commit 386b6f15e6
2 changed files with 22 additions and 14 deletions
+20 -12
View File
@@ -85,12 +85,12 @@ InterfaceView::InterfaceView()
fNetworkMenuField->Menu()->SetLabelFromMarked(true); fNetworkMenuField->Menu()->SetLabelFromMarked(true);
// Construct the BButtons // Construct the BButtons
fOnOff = new BButton("onoff", B_TRANSLATE("Disable"), fToggleButton = new BButton("onoff", B_TRANSLATE("Disable"),
new BMessage(kMsgInterfaceToggle)); new BMessage(kMsgInterfaceToggle));
fRenegotiate = new BButton("heal", B_TRANSLATE("Renegotiate"), fRenegotiateButton = new BButton("heal", B_TRANSLATE("Renegotiate"),
new BMessage(kMsgInterfaceRenegotiate)); new BMessage(kMsgInterfaceRenegotiate));
fRenegotiate->SetEnabled(false); fRenegotiateButton->SetEnabled(false);
BLayoutBuilder::Group<>(this) BLayoutBuilder::Group<>(this)
.AddGrid() .AddGrid()
@@ -110,8 +110,8 @@ InterfaceView::InterfaceView()
.AddGlue() .AddGlue()
.AddGroup(B_HORIZONTAL) .AddGroup(B_HORIZONTAL)
.AddGlue() .AddGlue()
.Add(fOnOff) .Add(fToggleButton)
.Add(fRenegotiate) .Add(fRenegotiateButton)
.End(); .End();
} }
@@ -134,8 +134,8 @@ InterfaceView::AttachedToWindow()
_Update(); _Update();
// Populate the fields // Populate the fields
fOnOff->SetTarget(this); fToggleButton->SetTarget(this);
fRenegotiate->SetTarget(this); fRenegotiateButton->SetTarget(this);
} }
@@ -161,8 +161,15 @@ InterfaceView::MessageReceived(BMessage* message)
} }
case kMsgInterfaceToggle: case kMsgInterfaceToggle:
{ {
// TODO: disable/enable interface // Disable/enable interface
_Update(); uint32 flags = fInterface.Flags();
if ((flags & IFF_UP) != 0)
flags &= ~IFF_UP;
else
flags |= IFF_UP;
if (fInterface.SetFlags(flags) == B_OK)
_Update();
break; break;
} }
@@ -186,6 +193,8 @@ InterfaceView::Pulse()
} }
/*! Populate fields with current settings.
*/
status_t status_t
InterfaceView::_Update(bool updateWirelessNetworks) InterfaceView::_Update(bool updateWirelessNetworks)
{ {
@@ -193,7 +202,6 @@ InterfaceView::_Update(bool updateWirelessNetworks)
bool isWireless = device.IsWireless(); bool isWireless = device.IsWireless();
bool disabled = (fInterface.Flags() & IFF_UP) == 0; bool disabled = (fInterface.Flags() & IFF_UP) == 0;
// Populate fields with current settings
if (fInterface.HasLink()) { if (fInterface.HasLink()) {
if (isWireless) { if (isWireless) {
// TODO! // TODO!
@@ -286,8 +294,8 @@ InterfaceView::_Update(bool updateWirelessNetworks)
menu->SetTargetForItems(this); menu->SetTargetForItems(this);
} }
fRenegotiate->SetEnabled(!disabled); //fRenegotiateButton->SetEnabled(!disabled);
fOnOff->SetLabel(disabled ? "Enable" : "Disable"); fToggleButton->SetLabel(disabled ? "Enable" : "Disable");
return B_OK; return B_OK;
} }
+2 -2
View File
@@ -48,8 +48,8 @@ private:
BMenuField* fNetworkMenuField; BMenuField* fNetworkMenuField;
BButton* fOnOff; BButton* fToggleButton;
BButton* fRenegotiate; BButton* fRenegotiateButton;
}; };