فهرست منبع

LibGUI: Allow bypassing hook when setting SpinBox range

Pass false to set_range to avoid on_change side-effects.
thankyouverycool 4 سال پیش
والد
کامیت
99e7ad4b76
2فایلهای تغییر یافته به همراه3 افزوده شده و 3 حذف شده
  1. 2 2
      Userland/Libraries/LibGUI/SpinBox.cpp
  2. 1 1
      Userland/Libraries/LibGUI/SpinBox.h

+ 2 - 2
Userland/Libraries/LibGUI/SpinBox.cpp

@@ -63,7 +63,7 @@ void SpinBox::set_value(int value)
         on_change(value);
 }
 
-void SpinBox::set_range(int min, int max)
+void SpinBox::set_range(int min, int max, bool change)
 {
     VERIFY(min <= max);
     if (m_min == min && m_max == max)
@@ -76,7 +76,7 @@ void SpinBox::set_range(int min, int max)
     m_value = clamp(m_value, m_min, m_max);
     if (m_value != old_value) {
         m_editor->set_text(String::number(m_value));
-        if (on_change)
+        if (change && on_change)
             on_change(m_value);
     }
 

+ 1 - 1
Userland/Libraries/LibGUI/SpinBox.h

@@ -22,7 +22,7 @@ public:
     int max() const { return m_max; }
     void set_min(int min) { set_range(min, max()); }
     void set_max(int max) { set_range(min(), max); }
-    void set_range(int min, int max);
+    void set_range(int min, int max, bool change = true);
 
     Function<void(int value)> on_change;