From 50129064340802d7668b7344ed895469cbae71d3 Mon Sep 17 00:00:00 2001 From: Preetpal Kaur Date: Tue, 2 Apr 2019 19:21:56 +0530 Subject: [PATCH] Disable Touchpad preferences. Show warning in the touchpad preference dialog box when user is not connected and also disable touchpad preferences except touchpad view. Change-Id: I52b80e834ee3bb37d568aa065942eae405001343 Reviewed-on: https://review.haiku-os.org/c/1344 Reviewed-by: Adrien Destugues --- src/preferences/touchpad/TouchpadPref.h | 3 ++- src/preferences/touchpad/TouchpadPrefView.cpp | 24 +++++++++++++++++++ src/preferences/touchpad/TouchpadPrefView.h | 4 ++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/preferences/touchpad/TouchpadPref.h b/src/preferences/touchpad/TouchpadPref.h index 94aab9c345..b25018bcdb 100644 --- a/src/preferences/touchpad/TouchpadPref.h +++ b/src/preferences/touchpad/TouchpadPref.h @@ -37,7 +37,8 @@ public: touchpad_settings& Settings() { return fSettings; } - + bool IsTouchpadConnected() + { return fConnected; } status_t UpdateSettings(); private: diff --git a/src/preferences/touchpad/TouchpadPrefView.cpp b/src/preferences/touchpad/TouchpadPrefView.cpp index be40878437..ba96442af3 100644 --- a/src/preferences/touchpad/TouchpadPrefView.cpp +++ b/src/preferences/touchpad/TouchpadPrefView.cpp @@ -271,6 +271,13 @@ TouchpadPrefView::TouchpadPrefView() SetupView(); // set view values SetValues(&fTouchpadPref.Settings()); + if (fTouchpadPref.IsTouchpadConnected() == false) { + DisablePref(); + fShowWarning->SetText(B_TRANSLATE("No touchpad found, the settings " + "will have no effect.")); + } + else + fShowWarning->Hide(); } @@ -457,8 +464,11 @@ TouchpadPrefView::SetupView() new BMessage(REVERT_SETTINGS)); fRevertButton->SetEnabled(false); + fShowWarning = new BStringView("warning", ""); + BLayoutBuilder::Group<>(this, B_VERTICAL) .SetInsets(B_USE_WINDOW_SPACING) + .Add(fShowWarning) .Add(scrollBox) .Add(tapBox) .AddGroup(B_HORIZONTAL) @@ -485,3 +495,17 @@ TouchpadPrefView::SetValues(touchpad_settings* settings) fScrollAccelSlider->SetValue(settings->scroll_acceleration); fTapSlider->SetValue(settings->tapgesture_sensibility); } + + +void +TouchpadPrefView::DisablePref() +{ + fTwoFingerBox->SetEnabled(false); + fTwoFingerHorizontalBox->SetEnabled(false); + fRevertButton->SetEnabled(false); + fDefaultButton->SetEnabled(false); + fTapSlider->SetEnabled(false); + fScrollAccelSlider->SetEnabled(false); + fScrollStepXSlider->SetEnabled(false); + fScrollStepYSlider->SetEnabled(false); +} diff --git a/src/preferences/touchpad/TouchpadPrefView.h b/src/preferences/touchpad/TouchpadPrefView.h index bd4dd5db0d..81483ae2ab 100644 --- a/src/preferences/touchpad/TouchpadPrefView.h +++ b/src/preferences/touchpad/TouchpadPrefView.h @@ -17,6 +17,7 @@ #include #include #include +#include #include "TouchpadPref.h" #include "touchpad_settings.h" @@ -91,6 +92,8 @@ public: void SetValues(touchpad_settings *settings); private: + void DisablePref(); + TouchpadView* fTouchpadView; BCheckBox* fTwoFingerBox; BCheckBox* fTwoFingerHorizontalBox; @@ -100,6 +103,7 @@ private: BSlider* fTapSlider; BButton* fDefaultButton; BButton* fRevertButton; + BStringView* fShowWarning; TouchpadPref fTouchpadPref; };