added 1 changeset to branch 'refs/remotes/axeld-github/network-preferences' old head: 9ada6ddb0520fe01ab9ace0bae8f0a2aa4d1ba0a new head: c63616cf43f47754fd28621d529642f935232a25 overview: https://github.com/axeld/haiku/compare/9ada6ddb0520...c63616cf43f4 ---------------------------------------------------------------------------- c63616cf43f4: 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. [ Axel Dörfler <axeld@xxxxxxxxxxxxxxxx> ] ---------------------------------------------------------------------------- Commit: c63616cf43f47754fd28621d529642f935232a25 Author: Axel Dörfler <axeld@xxxxxxxxxxxxxxxx> Date: Mon Mar 23 22:35:08 2015 UTC ---------------------------------------------------------------------------- 2 files changed, 22 insertions(+), 14 deletions(-) src/preferences/network/InterfaceView.cpp | 32 +++++++++++++++++---------- src/preferences/network/InterfaceView.h | 4 ++-- ---------------------------------------------------------------------------- diff --git a/src/preferences/network/InterfaceView.cpp b/src/preferences/network/InterfaceView.cpp index 14da864..f5644ad 100644 --- a/src/preferences/network/InterfaceView.cpp +++ b/src/preferences/network/InterfaceView.cpp @@ -85,12 +85,12 @@ InterfaceView::InterfaceView() fNetworkMenuField->Menu()->SetLabelFromMarked(true); // Construct the BButtons - fOnOff = new BButton("onoff", B_TRANSLATE("Disable"), + fToggleButton = new BButton("onoff", B_TRANSLATE("Disable"), new BMessage(kMsgInterfaceToggle)); - fRenegotiate = new BButton("heal", B_TRANSLATE("Renegotiate"), + fRenegotiateButton = new BButton("heal", B_TRANSLATE("Renegotiate"), new BMessage(kMsgInterfaceRenegotiate)); - fRenegotiate->SetEnabled(false); + fRenegotiateButton->SetEnabled(false); BLayoutBuilder::Group<>(this) .AddGrid() @@ -110,8 +110,8 @@ InterfaceView::InterfaceView() .AddGlue() .AddGroup(B_HORIZONTAL) .AddGlue() - .Add(fOnOff) - .Add(fRenegotiate) + .Add(fToggleButton) + .Add(fRenegotiateButton) .End(); } @@ -134,8 +134,8 @@ InterfaceView::AttachedToWindow() _Update(); // Populate the fields - fOnOff->SetTarget(this); - fRenegotiate->SetTarget(this); + fToggleButton->SetTarget(this); + fRenegotiateButton->SetTarget(this); } @@ -161,8 +161,15 @@ InterfaceView::MessageReceived(BMessage* message) } case kMsgInterfaceToggle: { - // TODO: disable/enable interface - _Update(); + // Disable/enable interface + uint32 flags = fInterface.Flags(); + if ((flags & IFF_UP) != 0) + flags &= ~IFF_UP; + else + flags |= IFF_UP; + + if (fInterface.SetFlags(flags) == B_OK) + _Update(); break; } @@ -186,6 +193,8 @@ InterfaceView::Pulse() } +/*! Populate fields with current settings. +*/ status_t InterfaceView::_Update(bool updateWirelessNetworks) { @@ -193,7 +202,6 @@ InterfaceView::_Update(bool updateWirelessNetworks) bool isWireless = device.IsWireless(); bool disabled = (fInterface.Flags() & IFF_UP) == 0; - // Populate fields with current settings if (fInterface.HasLink()) { if (isWireless) { // TODO! @@ -286,8 +294,8 @@ InterfaceView::_Update(bool updateWirelessNetworks) menu->SetTargetForItems(this); } - fRenegotiate->SetEnabled(!disabled); - fOnOff->SetLabel(disabled ? "Enable" : "Disable"); + //fRenegotiateButton->SetEnabled(!disabled); + fToggleButton->SetLabel(disabled ? "Enable" : "Disable"); return B_OK; } diff --git a/src/preferences/network/InterfaceView.h b/src/preferences/network/InterfaceView.h index be49535..977609b 100644 --- a/src/preferences/network/InterfaceView.h +++ b/src/preferences/network/InterfaceView.h @@ -48,8 +48,8 @@ private: BMenuField* fNetworkMenuField; - BButton* fOnOff; - BButton* fRenegotiate; + BButton* fToggleButton; + BButton* fRenegotiateButton; };