[haiku-commits] BRANCH axeld-github.network-preferences [c63616cf43f4] src/preferences/network

  • From: axeld-github.network-preferences <community@xxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 23 Mar 2015 22:46:38 +0100 (CET)

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;
 };
 
 


Other related posts:

  • » [haiku-commits] BRANCH axeld-github.network-preferences [c63616cf43f4] src/preferences/network - axeld-github . network-preferences