[haiku-commits] haiku: hrev48152 - in src/tests: kits/net/preflet/InterfacesAddOn servers/app/stacktile

  • From: pulkomandy@xxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 29 Oct 2014 22:22:38 +0100 (CET)

hrev48152 adds 2 changesets to branch 'master'
old head: dfb13a87166f6802fa7949f13e73e292034b6672
new head: de6278fec10afe542241c9f4c6b60a1af1e140a5
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=de6278f+%5Edfb13a8

----------------------------------------------------------------------------

afc5d43: Add an app server test for stack&tile
  
  Should help with debugging #8569.

de6278f: NetworkSetup: move renegociate and disable buttons to HardwareView
  
  The idea is making the interface list a generic list to add some stuff
  that are not interfaces there (ie services: DNS, FTP, SSH, ...)

                                 [ Adrien Destugues <pulkomandy@xxxxxxxxx> ]

----------------------------------------------------------------------------

8 files changed, 177 insertions(+), 43 deletions(-)
.../InterfacesAddOn/InterfaceHardwareView.cpp    |  34 ++++++
.../InterfacesAddOn/InterfaceHardwareView.h      |   8 ++
.../net/preflet/InterfacesAddOn/InterfaceView.h  |   2 +
.../preflet/InterfacesAddOn/InterfacesAddOn.cpp  |  40 +------
.../preflet/InterfacesAddOn/InterfacesAddOn.h    |   4 -
src/tests/servers/app/Jamfile                    |   1 +
src/tests/servers/app/stacktile/Jamfile          |  19 ++++
src/tests/servers/app/stacktile/main.cpp         | 112 +++++++++++++++++++

############################################################################

Commit:      afc5d438a7c3279e46fc56bbe44b8047c0f65e20
URL:         http://cgit.haiku-os.org/haiku/commit/?id=afc5d43
Author:      Adrien Destugues <pulkomandy@xxxxxxxxx>
Date:        Wed Oct 29 18:35:04 2014 UTC

Ticket:      https://dev.haiku-os.org/ticket/8569

Add an app server test for stack&tile

Should help with debugging #8569.

----------------------------------------------------------------------------

diff --git a/src/tests/servers/app/Jamfile b/src/tests/servers/app/Jamfile
index 3dcd74e..376d562 100644
--- a/src/tests/servers/app/Jamfile
+++ b/src/tests/servers/app/Jamfile
@@ -244,6 +244,7 @@ SubInclude HAIKU_TOP src tests servers app resize_limits ;
 SubInclude HAIKU_TOP src tests servers app scrollbar ;
 SubInclude HAIKU_TOP src tests servers app scrolling ;
 SubInclude HAIKU_TOP src tests servers app shape_test ;
+SubInclude HAIKU_TOP src tests servers app stacktile ;
 SubInclude HAIKU_TOP src tests servers app statusbar ;
 SubInclude HAIKU_TOP src tests servers app stress_test ;
 SubInclude HAIKU_TOP src tests servers app textview ;
diff --git a/src/tests/servers/app/stacktile/Jamfile 
b/src/tests/servers/app/stacktile/Jamfile
new file mode 100644
index 0000000..b45038e
--- /dev/null
+++ b/src/tests/servers/app/stacktile/Jamfile
@@ -0,0 +1,19 @@
+SubDir HAIKU_TOP src tests servers app stacktile ;
+
+SetSubDirSupportedPlatformsBeOSCompatible ;
+AddSubDirSupportedPlatforms libbe_test ;
+
+UseHeaders [ FDirName $(HAIKU_TOP) os app ] ;
+UseHeaders [ FDirName $(HAIKU_TOP) os interface ] ;
+UsePrivateHeaders interface ;
+
+Application StackTileTest :
+       main.cpp
+       : [ TargetLibstdc++ ] be
+;
+
+if ( $(TARGET_PLATFORM) = libbe_test ) {
+       HaikuInstall install-test-apps : $(HAIKU_APP_TEST_DIR) : StackTileTest
+               : tests!apps ;
+}
+
diff --git a/src/tests/servers/app/stacktile/main.cpp 
b/src/tests/servers/app/stacktile/main.cpp
new file mode 100644
index 0000000..af7dad2
--- /dev/null
+++ b/src/tests/servers/app/stacktile/main.cpp
@@ -0,0 +1,112 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <Application.h>
+#include <OS.h>
+#include <Window.h>
+#include <WindowStack.h>
+
+
+static BRect* sFrames = NULL;
+static uint32 sNumFrames = 0;
+
+
+class TestApp : public BApplication {
+public:
+                                                               TestApp(uint32 
numWindows);
+       virtual                                         ~TestApp();
+
+private:
+                       void                            _CreateFrames(uint32 
numWindows);
+                       int32                           _WindowCreator();
+                       static int32            _ThreadStarter(void* data);
+
+private:
+                       uint32                          fFrameNum;
+                       uint32                          fNumWindows;
+                       uint32                          fMaxWindows;
+};
+
+
+class TestWindow : public BWindow {
+public:
+                                               TestWindow(BRect frame);
+       virtual                         ~TestWindow();
+
+       virtual void            DispatchMessage(BMessage* message, BHandler* 
handler);
+};
+
+
+TestApp::TestApp(uint32 numWindows)
+       :
+       BApplication("application/x.vnd-Haiku.stack-tile"),
+       fNumWindows(0),
+       fMaxWindows(numWindows)
+{
+       _CreateFrames(numWindows);
+}
+
+
+TestApp::~TestApp()
+{
+       delete[] sFrames;
+}
+
+
+void
+TestApp::_CreateFrames(uint32 numWindows)
+{
+       BWindowStack* stack = NULL;
+       while (fNumWindows < fMaxWindows) {
+               if (fFrameNum >= sNumFrames)
+                       fFrameNum = 0;
+
+               BWindow* window = new TestWindow(BRect(20, 20, 300, 200));
+
+               if (!stack) stack = new BWindowStack(window);
+               else stack->AddWindow(window);
+
+               window->Show();
+               fNumWindows++;
+       }
+}
+
+
+TestWindow::TestWindow(BRect frame)
+       :
+       BWindow(frame, "Test", B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS)
+{
+}
+
+
+TestWindow::~TestWindow()
+{
+}
+
+
+void
+TestWindow::DispatchMessage(BMessage* message, BHandler* handler)
+{
+       BWindow::DispatchMessage(message, handler);
+
+       int a = rand();
+       char buf[32];
+       sprintf(buf, "%d", a);
+       SetTitle(buf);
+}
+
+
+int
+main(int argc, char** argv)
+{
+       uint32 numWindows = 2;
+       if (argc > 1)
+               numWindows = atoi(argv[1]);
+
+       TestApp app(numWindows);
+       app.Run();
+
+       return 0;
+}

############################################################################

Revision:    hrev48152
Commit:      de6278fec10afe542241c9f4c6b60a1af1e140a5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=de6278f
Author:      Adrien Destugues <pulkomandy@xxxxxxxxx>
Date:        Wed Oct 29 21:15:51 2014 UTC

NetworkSetup: move renegociate and disable buttons to HardwareView

The idea is making the interface list a generic list to add some stuff
that are not interfaces there (ie services: DNS, FTP, SSH, ...)

----------------------------------------------------------------------------

diff --git 
a/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.cpp 
b/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.cpp
index 4b3cdb8..4485d69 100644
--- a/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.cpp
+++ b/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.cpp
@@ -14,6 +14,7 @@
 #include "NetworkSettings.h"
 #include "WirelessNetworkMenuItem.h"
 
+#include <Button.h>
 #include <Catalog.h>
 #include <ControlLook.h>
 #include <LayoutBuilder.h>
@@ -79,6 +80,14 @@ 
InterfaceHardwareView::InterfaceHardwareView(NetworkSettings* settings)
        fNetworkMenuField->SetAlignment(B_ALIGN_RIGHT);
        fNetworkMenuField->Menu()->SetLabelFromMarked(true);
 
+       // Construct the BButtons
+       fOnOff = new BButton("onoff", B_TRANSLATE("Disable"),
+               new BMessage(kMsgInterfaceToggle));
+
+       fRenegotiate = new BButton("heal", B_TRANSLATE("Renegotiate"),
+               new BMessage(kMsgInterfaceRenegotiate));
+       fRenegotiate->SetEnabled(false);
+
        BLayoutBuilder::Group<>(this)
                .AddGrid()
                        .Add(status, 0, 0)
@@ -95,6 +104,11 @@ 
InterfaceHardwareView::InterfaceHardwareView(NetworkSettings* settings)
                        .Add(fLinkRxField, 1, 5)
                .End()
                .AddGlue()
+               .AddGroup(B_HORIZONTAL)
+                       .Add(fOnOff)
+                       .AddGlue()
+                       .Add(fRenegotiate)
+               .End()
                .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING,
                        B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING);
 }
@@ -114,6 +128,9 @@ InterfaceHardwareView::AttachedToWindow()
 {
        Update();
                // Populate the fields
+
+       fOnOff->SetTarget(this);
+       fRenegotiate->SetTarget(this);
 }
 
 
@@ -126,6 +143,20 @@ InterfaceHardwareView::MessageReceived(BMessage* message)
                        
fSettings->SetWirelessNetwork(message->FindString("name"));
                        break;
                }
+               case kMsgInterfaceToggle:
+               {
+                       fSettings->SetDisabled(!fSettings->IsDisabled());
+                       Update();
+                       Window()->FindView("interfaces")->Invalidate();
+                       break;
+               }
+
+               case kMsgInterfaceRenegotiate:
+               {
+                       fSettings->RenegotiateAddresses();
+                       break;
+               }
+
                default:
                        BView::MessageReceived(message);
        }
@@ -233,6 +264,9 @@ InterfaceHardwareView::Update()
                menu->SetTargetForItems(this);
        }
 
+       fRenegotiate->SetEnabled(!fSettings->IsDisabled());
+       fOnOff->SetLabel(fSettings->IsDisabled() ? "Enable" : "Disable");
+
        return B_OK;
 }
 
diff --git a/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.h 
b/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.h
index d6a7384..abb4cbb 100644
--- a/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.h
+++ b/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.h
@@ -15,6 +15,11 @@
 #include <GroupView.h>
 
 
+static const uint32 kMsgInterfaceToggle = 'onof';
+static const uint32 kMsgInterfaceRenegotiate = 'redo';
+
+
+class BButton;
 class BMenuField;
 class BMessage;
 class BRect;
@@ -45,6 +50,9 @@ private:
                        BStringView*            fLinkRxField;
 
                        BMenuField*                     fNetworkMenuField;
+
+                       BButton*                        fOnOff;
+                       BButton*                        fRenegotiate;
 };
 
 
diff --git a/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceView.h 
b/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceView.h
index 57aeda2..51a5fbb 100644
--- a/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceView.h
+++ b/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceView.h
@@ -41,6 +41,8 @@ public:
                        void                                    Apply();
                        void                                    Revert();
 
+                       NetworkSettings*                Settings() { return 
fNetworkSettings; }
+
 private:
                        status_t                                _PopulateTabs();
 
diff --git a/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.cpp 
b/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.cpp
index 8a916fb..09d9984 100644
--- a/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.cpp
+++ b/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.cpp
@@ -76,25 +76,11 @@ InterfacesAddOn::CreateView()
        BScrollView* scrollView = new BScrollView("scrollView", fListView,
                B_WILL_DRAW | B_FRAME_EVENTS, false, true);
 
-       // Construct the BButtons
-       fOnOff = new BButton("onoff", B_TRANSLATE("Disable"),
-               new BMessage(kMsgInterfaceToggle));
-       fOnOff->SetEnabled(false);
-
-       fRenegotiate = new BButton("heal", B_TRANSLATE("Renegotiate"),
-               new BMessage(kMsgInterfaceRenegotiate));
-       fRenegotiate->SetEnabled(false);
-
        // Build the layout
        SetLayout(new BGroupLayout(B_HORIZONTAL));
 
        AddChild(BGroupLayoutBuilder(B_VERTICAL, B_USE_DEFAULT_SPACING)
                .Add(scrollView)
-               .AddGroup(B_HORIZONTAL, B_USE_SMALL_SPACING)
-                       .Add(fOnOff)
-                       .AddGlue()
-                       .Add(fRenegotiate)
-               .End()
        );
 
        return this;
@@ -105,8 +91,6 @@ void
 InterfacesAddOn::AttachedToWindow()
 {
        fListView->SetTarget(this);
-       fOnOff->SetTarget(this);
-       fRenegotiate->SetTarget(this);
 }
 
 
@@ -142,12 +126,8 @@ InterfacesAddOn::MessageReceived(BMessage* msg)
        switch (msg->what) {
                case kMsgInterfaceSelected:
                {
-                       fOnOff->SetEnabled(item != NULL);
-                       fRenegotiate->SetEnabled(item != NULL);
                        if (item == NULL)
                                break;
-                       fRenegotiate->SetEnabled(!item->IsDisabled());
-                       fOnOff->SetLabel(item->IsDisabled() ? "Enable" : 
"Disable");
 
                        // TODO it would be better to reuse the view instead of 
recreating
                        // one.
@@ -160,27 +140,9 @@ InterfacesAddOn::MessageReceived(BMessage* msg)
                        break;
                }
 
-               case kMsgInterfaceToggle:
-               {
-                       if (item == NULL)
-                               break;
-
-                       item->SetDisabled(!item->IsDisabled());
-                       fOnOff->SetLabel(item->IsDisabled() ? "Enable" : 
"Disable");
-                       fRenegotiate->SetEnabled(!item->IsDisabled());
+               case B_OBSERVER_NOTICE_CHANGE:
                        fListView->Invalidate();
                        break;
-               }
-
-               case kMsgInterfaceRenegotiate:
-               {
-                       if (item == NULL)
-                               break;
-
-                       NetworkSettings* ns = item->GetSettings();
-                       ns->RenegotiateAddresses();
-                       break;
-               }
 
                default:
                        BBox::MessageReceived(msg);
diff --git a/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.h 
b/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.h
index 46636c5..c3bdc0b 100644
--- a/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.h
+++ b/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.h
@@ -19,8 +19,6 @@
 
 
 static const uint32 kMsgInterfaceSelected = 'ifce';
-static const uint32 kMsgInterfaceToggle = 'onof';
-static const uint32 kMsgInterfaceRenegotiate = 'redo';
 
 
 class BButton;
@@ -46,8 +44,6 @@ public:
 private:
                        InterfacesListView*     fListView;
                        InterfaceView*          fSettingsView;
-                       BButton*                        fOnOff;
-                       BButton*                        fRenegotiate;
 };
 
 


Other related posts:

  • » [haiku-commits] haiku: hrev48152 - in src/tests: kits/net/preflet/InterfacesAddOn servers/app/stacktile - pulkomandy