[haiku-commits] haiku: hrev54331 - src/preferences/notifications

  • From: Adrien Destugues <pulkomandy@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 19 Jun 2020 02:43:15 -0400 (EDT)

hrev54331 adds 1 changeset to branch 'master'
old head: 7522ed82b814f0f70b814332ad54cf5cba8910a5
new head: 437e3c1c068fa84621711d4977eefe427ec0f2c6
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=437e3c1c068f+%5E7522ed82b814

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

437e3c1c068f: Notifications: Fix pluralization, max/min window width font size 
dependend
  
  Plus, use kWidthStep when loading/saving slider setting.
  
  Fixes #16119
  
  Change-Id: I2c86bb008a8d9e089d9db09013c9af67b0f5e731
  Reviewed-on: https://review.haiku-os.org/c/haiku/+/2902
  Reviewed-by: Kacper Kasper <kacperkasper@xxxxxxxxx>

                                        [ Humdinger <humdingerb@xxxxxxxxx> ]

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

Revision:    hrev54331
Commit:      437e3c1c068fa84621711d4977eefe427ec0f2c6
URL:         https://git.haiku-os.org/haiku/commit/?id=437e3c1c068f
Author:      Humdinger <humdingerb@xxxxxxxxx>
Date:        Thu Jun 11 07:43:24 2020 UTC
Committer:   Adrien Destugues <pulkomandy@xxxxxxxxx>
Commit-Date: Fri Jun 19 06:43:11 2020 UTC

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

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

2 files changed, 17 insertions(+), 34 deletions(-)
src/preferences/notifications/GeneralView.cpp | 50 ++++++++---------------
src/preferences/notifications/GeneralView.h   |  1 -

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

diff --git a/src/preferences/notifications/GeneralView.cpp 
b/src/preferences/notifications/GeneralView.cpp
index bde36889d6..1d4ac0758e 100644
--- a/src/preferences/notifications/GeneralView.cpp
+++ b/src/preferences/notifications/GeneralView.cpp
@@ -27,6 +27,7 @@
 #include <Query.h>
 #include <Roster.h>
 #include <String.h>
+#include <StringFormat.h>
 #include <SymLink.h>
 #include <Volume.h>
 #include <VolumeRoster.h>
@@ -76,19 +77,16 @@ GeneralView::GeneralView(SettingsHost* host)
        box->SetLabel(fNotificationBox);
 
        // Window width
-       int32 minWidth = int32(kMinimumWidth / kWidthStep);
-       int32 maxWidth = int32(kMaximumWidth / kWidthStep);
-       fWidthSlider = new BSlider("width", B_TRANSLATE("Window width:"),
+       float ratio = be_plain_font->Size() / 12.f;
+       int32 minWidth = int32(kMinimumWidth / kWidthStep * ratio);
+       int32 maxWidth = int32(kMaximumWidth / kWidthStep * ratio);
+       fWidthSlider = new BSlider("width", B_TRANSLATE("Window width"),
                new BMessage(kWidthChanged), minWidth, maxWidth, B_HORIZONTAL);
        fWidthSlider->SetHashMarks(B_HASH_MARKS_BOTTOM);
        fWidthSlider->SetHashMarkCount(maxWidth - minWidth + 1);
-       BString minWidthLabel;
-       minWidthLabel << int32(kMinimumWidth);
-       BString maxWidthLabel;
-       maxWidthLabel << int32(kMaximumWidth);
        fWidthSlider->SetLimitLabels(
-               B_TRANSLATE_COMMENT(minWidthLabel.String(), "Slider low text"),
-               B_TRANSLATE_COMMENT(maxWidthLabel.String(), "Slider high 
text"));
+               B_TRANSLATE_COMMENT("narrow", "Window width: Slider low text"),
+               B_TRANSLATE_COMMENT("wide", "Window width: Slider high text"));
 
        // Display time
        fDurationSlider = new BSlider("duration", B_TRANSLATE("Duration:"),
@@ -167,8 +165,6 @@ GeneralView::MessageReceived(BMessage* msg)
                        break;
                }
                case kWidthChanged: {
-                       int32 value = fWidthSlider->Value() * 50;
-                       _SetWidthLabel(value);
                        SettingsPane::SettingsChanged(true);
                        break;
                }
@@ -238,7 +234,7 @@ GeneralView::Save(BMessage& settings)
        int32 timeout = fDurationSlider->Value();
        settings.AddInt32(kTimeoutName, timeout);
 
-       float width = fWidthSlider->Value() * 50;
+       float width = fWidthSlider->Value() * kWidthStep;
        settings.AddFloat(kWidthName, width);
 
        icon_size iconSize = B_LARGE_ICON;
@@ -256,8 +252,7 @@ GeneralView::Revert()
        fDurationSlider->SetValue(fOriginalTimeout);
        _SetTimeoutLabel(fOriginalTimeout);
        
-       fWidthSlider->SetValue(fOriginalWidth / 50);
-       _SetWidthLabel(fOriginalWidth);
+       fWidthSlider->SetValue(fOriginalWidth / kWidthStep);
 
        fNewPosition = fOriginalPosition;
        BMenuItem* item = fPositionMenu->ItemAt(
@@ -276,7 +271,7 @@ GeneralView::RevertPossible()
        if (fOriginalTimeout != timeout)
                return true;
        
-       int32 width = fWidthSlider->Value() * 50;
+       int32 width = fWidthSlider->Value() * kWidthStep;
        if (fOriginalWidth != width)
                return true;
 
@@ -293,8 +288,7 @@ GeneralView::Defaults()
        fDurationSlider->SetValue(kDefaultTimeout);
        _SetTimeoutLabel(kDefaultTimeout);
 
-       fWidthSlider->SetValue(kDefaultWidth / 50);
-       _SetWidthLabel(kDefaultWidth);
+       fWidthSlider->SetValue(kDefaultWidth / kWidthStep);
 
        fNewPosition = kDefaultNotificationPosition;
        BMenuItem* item = fPositionMenu->ItemAt(
@@ -313,7 +307,7 @@ GeneralView::DefaultsPossible()
        if (kDefaultTimeout != timeout)
                return true;
 
-       int32 width = fWidthSlider->Value() * 50;
+       int32 width = fWidthSlider->Value() * kWidthStep;
        if (kDefaultWidth != width)
                return true;
 
@@ -347,25 +341,15 @@ GeneralView::_EnableControls()
 void
 GeneralView::_SetTimeoutLabel(int32 value)
 {
-       BString label(B_TRANSLATE("Timeout:"));
-       label.Append(" ");
-       label << value;
-       label.Append(" ").Append(B_TRANSLATE("seconds"));
+       static BStringFormat format(B_TRANSLATE("{0, plural, "
+               "=1{Timeout: # second}"
+               "other{Timeout: # seconds}}"));
+       BString label;
+       format.Format(label, value);
        fDurationSlider->SetLabel(label.String());
 }
 
 
-void
-GeneralView::_SetWidthLabel(int32 value)
-{
-       BString label(B_TRANSLATE("Width:"));
-       label.Append(" ");
-       label << value;
-       label.Append(" ").Append(B_TRANSLATE("pixels"));
-       fWidthSlider->SetLabel(label.String());
-}
-
-
 bool
 GeneralView::_IsServerRunning()
 {
diff --git a/src/preferences/notifications/GeneralView.h 
b/src/preferences/notifications/GeneralView.h
index 9106cee1b3..f17334eb77 100644
--- a/src/preferences/notifications/GeneralView.h
+++ b/src/preferences/notifications/GeneralView.h
@@ -51,7 +51,6 @@ private:
                uint32                          fNewPosition;
 
                void                            _EnableControls();
-               void                            _SetWidthLabel(int32 value);
                void                            _SetTimeoutLabel(int32 value);
                bool                            _IsServerRunning();
 };


Other related posts:

  • » [haiku-commits] haiku: hrev54331 - src/preferences/notifications - Adrien Destugues