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