fix(gui): widen Keep Pairs input (80->140) and switch to drag_int
- src/gui_2.py:3829 set_next_item_width 80 -> 140, input_int -> drag_int - Tests adapted to mock drag_int alongside input_int (5 test files)
This commit is contained in:
+2
-2
@@ -3826,8 +3826,8 @@ def render_discussion_entry_controls(app: App) -> None:
|
||||
imgui.same_line()
|
||||
if imgui.button("Compress"): app.controller._handle_compress_discussion()
|
||||
_, app.ui_auto_add_history = imgui.checkbox("Auto-add message & response to history", app.ui_auto_add_history)
|
||||
imgui.text("Keep Pairs:"); imgui.same_line(); imgui.set_next_item_width(80)
|
||||
ch, app.ui_disc_truncate_pairs = imgui.input_int("##trunc_pairs", app.ui_disc_truncate_pairs, 1)
|
||||
imgui.text("Keep Pairs:"); imgui.same_line(); imgui.set_next_item_width(140)
|
||||
ch, app.ui_disc_truncate_pairs = imgui.drag_int("##trunc_pairs", app.ui_disc_truncate_pairs, 1, 1, 999)
|
||||
if app.ui_disc_truncate_pairs < 1: app.ui_disc_truncate_pairs = 1
|
||||
imgui.same_line()
|
||||
if imgui.button("Truncate"):
|
||||
|
||||
@@ -46,6 +46,7 @@ def test_render_discussion_tabs(app_instance):
|
||||
mock_imgui.begin_combo.return_value = False
|
||||
mock_imgui.input_text.return_value = (False, "")
|
||||
mock_imgui.input_int.return_value = (False, 0)
|
||||
mock_imgui.drag_int.return_value = (False, 0)
|
||||
mock_imgui.input_text_multiline.return_value = (False, "")
|
||||
mock_imgui.button.return_value = False
|
||||
mock_imgui.checkbox.return_value = (False, False)
|
||||
@@ -78,6 +79,7 @@ def test_switching_discussion_via_tabs(app_instance):
|
||||
mock_imgui.begin_combo.return_value = False
|
||||
mock_imgui.input_text.return_value = (False, "")
|
||||
mock_imgui.input_int.return_value = (False, 0)
|
||||
mock_imgui.drag_int.return_value = (False, 0)
|
||||
mock_imgui.input_text_multiline.return_value = (False, "")
|
||||
mock_imgui.button.return_value = False
|
||||
mock_imgui.checkbox.return_value = (False, False)
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
import inspect
|
||||
from src import gui_2
|
||||
|
||||
def test_keep_pairs_input_uses_adequate_width():
|
||||
src = inspect.getsource(gui_2)
|
||||
marker = "Keep Pairs:"
|
||||
idx = src.find(marker)
|
||||
assert idx != -1, "Could not find Keep Pairs label in gui_2.py"
|
||||
snippet = src[idx:idx + 200]
|
||||
assert "set_next_item_width(80)" not in snippet, (
|
||||
"Keep Pairs input width is still 80px; digit values get clipped."
|
||||
)
|
||||
assert "set_next_item_width(140)" in snippet, (
|
||||
"Keep Pairs input should use width 140 for 2-3 digit values."
|
||||
)
|
||||
assert "drag_int" in snippet, (
|
||||
"Keep Pairs input should use drag_int for inline +/- controls."
|
||||
)
|
||||
@@ -47,6 +47,7 @@ def test_discussion_tabs_rendered(mock_gui):
|
||||
mock_imgui.input_text_multiline.return_value = (False, "")
|
||||
mock_imgui.checkbox.return_value = (False, False)
|
||||
mock_imgui.input_int.return_value = (False, 0)
|
||||
mock_imgui.drag_int.return_value = (False, 0)
|
||||
|
||||
mock_clipper = MagicMock()
|
||||
mock_clipper.step.return_value = False
|
||||
|
||||
@@ -14,6 +14,7 @@ def test_render_context_composition_panel_fast(app_instance: App):
|
||||
mock_imgui.input_text.return_value = (True, "")
|
||||
mock_imgui.input_text_multiline.return_value = (True, "")
|
||||
mock_imgui.input_int.return_value = (True, 0)
|
||||
mock_imgui.drag_int.return_value = (True, 0)
|
||||
mock_imgui.button.return_value = False
|
||||
mock_imgui.ListClipper.return_value.step.return_value = False
|
||||
mock_imscope.tab_item.return_value.__enter__.return_value = (True, True)
|
||||
@@ -34,6 +35,7 @@ def test_render_discussion_panel_fast(app_instance: App):
|
||||
mock_imgui.input_text.return_value = (True, "")
|
||||
mock_imgui.input_text_multiline.return_value = (True, "")
|
||||
mock_imgui.input_int.return_value = (True, 0)
|
||||
mock_imgui.drag_int.return_value = (True, 0)
|
||||
mock_imgui.button.return_value = False
|
||||
mock_imgui.ListClipper.return_value.step.return_value = False
|
||||
mock_imscope.tab_item.return_value.__enter__.return_value = (True, True)
|
||||
@@ -59,6 +61,7 @@ def test_render_files_and_media_fast(app_instance: App):
|
||||
mock_imgui.input_text.return_value = (True, "")
|
||||
mock_imgui.input_text_multiline.return_value = (True, "")
|
||||
mock_imgui.input_int.return_value = (True, 0)
|
||||
mock_imgui.drag_int.return_value = (True, 0)
|
||||
mock_imgui.button.return_value = False
|
||||
mock_imgui.ListClipper.return_value.step.return_value = False
|
||||
mock_imscope.tab_item.return_value.__enter__.return_value = (True, True)
|
||||
|
||||
@@ -106,6 +106,7 @@ def test_track_discussion_toggle(mock_app: App):
|
||||
mock_imgui.input_text.side_effect = lambda label, value, *args, **kwargs: (False, value)
|
||||
mock_imgui.input_text_multiline.side_effect = lambda label, value, *args, **kwargs: (False, value)
|
||||
mock_imgui.input_int.side_effect = lambda label, value, *args, **kwargs: (False, value)
|
||||
mock_imgui.drag_int.side_effect = lambda label, value, *args, **kwargs: (False, value)
|
||||
mock_imgui.begin_child.return_value = True
|
||||
mock_imgui.get_window_height.return_value = 800.0
|
||||
mock_imgui.get_io.return_value.mouse_delta.y = 0.0
|
||||
|
||||
@@ -55,6 +55,7 @@ def test_render_discussion_panel_symbol_lookup(mock_app, role):
|
||||
mock_imgui.input_text.side_effect = lambda label, value, *args, **kwargs: (False, value)
|
||||
mock_imgui.input_text_multiline.side_effect = lambda label, value, *args, **kwargs: (False, value)
|
||||
mock_imgui.input_int.side_effect = lambda label, value, *args, **kwargs: (False, value)
|
||||
mock_imgui.drag_int.side_effect = lambda label, value, *args, **kwargs: (False, value)
|
||||
mock_imgui.get_cursor_start_pos.return_value = mock_imgui.ImVec2(0,0)
|
||||
|
||||
# Mock button click for the [Source] button
|
||||
|
||||
Reference in New Issue
Block a user