diff options
| author | Sophia Pearson <codergal89@gmail.com> | 2022-10-03 22:22:50 +0200 |
|---|---|---|
| committer | Sophia Pearson <codergal89@gmail.com> | 2022-10-04 22:18:18 +0200 |
| commit | e127ad39e742396030352240d829bc903b1d4464 (patch) | |
| tree | 10cc21d70bf13181aef7c8ad0344077ff63579a3 /addons/gut/gui/gut_config_gui.gd | |
| parent | ddbb045f6387a8ba23b1210b27a745516a387a52 (diff) | |
| download | texty-e127ad39e742396030352240d829bc903b1d4464.tar.xz texty-e127ad39e742396030352240d829bc903b1d4464.zip | |
godot: inital Godot 4 migration
Diffstat (limited to 'addons/gut/gui/gut_config_gui.gd')
| -rw-r--r-- | addons/gut/gui/gut_config_gui.gd | 411 |
1 files changed, 0 insertions, 411 deletions
diff --git a/addons/gut/gui/gut_config_gui.gd b/addons/gut/gui/gut_config_gui.gd deleted file mode 100644 index 4f056ff..0000000 --- a/addons/gut/gui/gut_config_gui.gd +++ /dev/null @@ -1,411 +0,0 @@ -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class DirectoryCtrl: - extends HBoxContainer - - var text = '' setget set_text, get_text - var _txt_path = LineEdit.new() - var _btn_dir = Button.new() - var _dialog = FileDialog.new() - - func _init(): - _btn_dir.text = '...' - _btn_dir.connect('pressed', self, '_on_dir_button_pressed') - - _txt_path.size_flags_horizontal = _txt_path.SIZE_EXPAND_FILL - - _dialog.mode = _dialog.MODE_OPEN_DIR - _dialog.resizable = true - _dialog.connect("dir_selected", self, '_on_selected') - _dialog.connect("file_selected", self, '_on_selected') - _dialog.rect_size = Vector2(1000, 700) - - func _on_selected(path): - set_text(path) - - - func _on_dir_button_pressed(): - _dialog.current_dir = _txt_path.text - _dialog.popup_centered() - - - func _ready(): - add_child(_txt_path) - add_child(_btn_dir) - add_child(_dialog) - - func get_text(): - return _txt_path.text - - func set_text(t): - text = t - _txt_path.text = text - - func get_line_edit(): - return _txt_path - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class FileCtrl: - extends DirectoryCtrl - - func _init(): - _dialog.mode = _dialog.MODE_OPEN_FILE - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -class Vector2Ctrl: - extends VBoxContainer - - var value = Vector2(-1, -1) setget set_value, get_value - var disabled = false setget set_disabled, get_disabled - var x_spin = SpinBox.new() - var y_spin = SpinBox.new() - - func _init(): - add_child(_make_one('x: ', x_spin)) - add_child(_make_one('y: ', y_spin)) - - func _make_one(txt, spinner): - var hbox = HBoxContainer.new() - var lbl = Label.new() - lbl.text = txt - hbox.add_child(lbl) - hbox.add_child(spinner) - spinner.min_value = -1 - spinner.max_value = 10000 - spinner.size_flags_horizontal = spinner.SIZE_EXPAND_FILL - return hbox - - func set_value(v): - if(v != null): - x_spin.value = v[0] - y_spin.value = v[1] - - # Returns array instead of vector2 b/c that is what is stored in - # in the dictionary and what is expected everywhere else. - func get_value(): - return [x_spin.value, y_spin.value] - - func set_disabled(should): - get_parent().visible = !should - x_spin.visible = !should - y_spin.visible = !should - - func get_disabled(): - pass - - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ -var _base_container = null -var _base_control = null -const DIRS_TO_LIST = 6 -var _cfg_ctrls = {} -var _avail_fonts = ['AnonymousPro', 'CourierPrime', 'LobsterTwo', 'Default'] - - -func _init(cont): - _base_container = cont - - _base_control = HBoxContainer.new() - _base_control.size_flags_horizontal = _base_control.SIZE_EXPAND_FILL - _base_control.mouse_filter = _base_control.MOUSE_FILTER_PASS - - # I don't remember what this is all about at all. Could be - # garbage. Decided to spend more time typing this message - # than figuring it out. - var lbl = Label.new() - lbl.size_flags_horizontal = lbl.SIZE_EXPAND_FILL - lbl.mouse_filter = lbl.MOUSE_FILTER_STOP - _base_control.add_child(lbl) - - -# ------------------ -# Private -# ------------------ -func _new_row(key, disp_text, value_ctrl, hint): - var ctrl = _base_control.duplicate() - var lbl = ctrl.get_node("Label") - - lbl.hint_tooltip = hint - lbl.text = disp_text - _base_container.add_child(ctrl) - - _cfg_ctrls[key] = value_ctrl - ctrl.add_child(value_ctrl) - - var rpad = CenterContainer.new() - rpad.rect_min_size.x = 5 - ctrl.add_child(rpad) - - return ctrl - - -func _add_title(text): - var row = _base_control.duplicate() - var lbl = row.get_node('Label') - - lbl.text = text - lbl.align = Label.ALIGN_CENTER - _base_container.add_child(row) - - row.connect('draw', self, '_on_title_cell_draw', [row]) - - -func _add_number(key, value, disp_text, v_min, v_max, hint=''): - var value_ctrl = SpinBox.new() - value_ctrl.value = value - value_ctrl.size_flags_horizontal = value_ctrl.SIZE_EXPAND_FILL - value_ctrl.min_value = v_min - value_ctrl.max_value = v_max - _wire_select_on_focus(value_ctrl.get_line_edit()) - - _new_row(key, disp_text, value_ctrl, hint) - - -func _add_select(key, value, values, disp_text, hint=''): - var value_ctrl = OptionButton.new() - var select_idx = 0 - for i in range(values.size()): - value_ctrl.add_item(values[i]) - if(value == values[i]): - select_idx = i - value_ctrl.selected = select_idx - value_ctrl.size_flags_horizontal = value_ctrl.SIZE_EXPAND_FILL - - _new_row(key, disp_text, value_ctrl, hint) - - -func _add_value(key, value, disp_text, hint=''): - var value_ctrl = LineEdit.new() - value_ctrl.size_flags_horizontal = value_ctrl.SIZE_EXPAND_FILL - value_ctrl.text = value - _wire_select_on_focus(value_ctrl) - - _new_row(key, disp_text, value_ctrl, hint) - - -func _add_boolean(key, value, disp_text, hint=''): - var value_ctrl = CheckBox.new() - value_ctrl.pressed = value - - _new_row(key, disp_text, value_ctrl, hint) - - -func _add_directory(key, value, disp_text, hint=''): - var value_ctrl = DirectoryCtrl.new() - value_ctrl.size_flags_horizontal = value_ctrl.SIZE_EXPAND_FILL - value_ctrl.text = value - _wire_select_on_focus(value_ctrl.get_line_edit()) - - _new_row(key, disp_text, value_ctrl, hint) - - -func _add_file(key, value, disp_text, hint=''): - var value_ctrl = FileCtrl.new() - value_ctrl.size_flags_horizontal = value_ctrl.SIZE_EXPAND_FILL - value_ctrl.text = value - _wire_select_on_focus(value_ctrl.get_line_edit()) - - _new_row(key, disp_text, value_ctrl, hint) - - -func _add_color(key, value, disp_text, hint=''): - var value_ctrl = ColorPickerButton.new() - value_ctrl.size_flags_horizontal = value_ctrl.SIZE_EXPAND_FILL - value_ctrl.color = value - - _new_row(key, disp_text, value_ctrl, hint) - - -func _add_vector2(key, value, disp_text, hint=''): - var value_ctrl = Vector2Ctrl.new() - value_ctrl.size_flags_horizontal = value_ctrl.SIZE_EXPAND_FILL - value_ctrl.value = value - _wire_select_on_focus(value_ctrl.x_spin.get_line_edit()) - _wire_select_on_focus(value_ctrl.y_spin.get_line_edit()) - - _new_row(key, disp_text, value_ctrl, hint) -# ----------------------------- - - -# ------------------ -# Events -# ------------------ -func _wire_select_on_focus(which): - which.connect('focus_entered', self, '_on_ctrl_focus_highlight', [which]) - which.connect('focus_exited', self, '_on_ctrl_focus_unhighlight', [which]) - - -func _on_ctrl_focus_highlight(which): - if(which.has_method('select_all')): - which.call_deferred('select_all') - - -func _on_ctrl_focus_unhighlight(which): - if(which.has_method('select')): - which.select(0, 0) - - -func _on_title_cell_draw(which): - which.draw_rect(Rect2(Vector2(0, 0), which.rect_size), Color(0, 0, 0, .15)) - - -# ------------------ -# Public -# ------------------ -func get_config_issues(): - var to_return = [] - var has_directory = false - var dir = Directory.new() - - for i in range(DIRS_TO_LIST): - var key = str('directory_', i) - var path = _cfg_ctrls[key].text - if(path != null and path != ''): - has_directory = true - if(!dir.dir_exists(path)): - to_return.append(str('Test directory ', path, ' does not exist.')) - - if(!has_directory): - to_return.append('You do not have any directories set.') - - if(!_cfg_ctrls['suffix'].text.ends_with('.gd')): - to_return.append("Script suffix must end in '.gd'") - - return to_return - - -func set_options(options): - _add_title("Settings") - _add_number("log_level", options.log_level, "Log Level", 0, 3, - "Detail level for log messages.\n" + \ - "\t0: Errors and failures only.\n" + \ - "\t1: Adds all test names + warnings + info\n" + \ - "\t2: Shows all asserts\n" + \ - "\t3: Adds more stuff probably, maybe not.") - _add_boolean('ignore_pause', options.ignore_pause, 'Ignore Pause', - "Ignore calls to pause_before_teardown") - _add_boolean('hide_orphans', options.hide_orphans, 'Hide Orphans', - 'Do not display orphan counts in output.') - _add_boolean('should_exit', options.should_exit, 'Exit on Finish', - "Exit when tests finished.") - _add_boolean('should_exit_on_success', options.should_exit_on_success, 'Exit on Success', - "Exit if there are no failures. Does nothing if 'Exit on Finish' is enabled.") - - - _add_title("Panel Output") - _add_select('output_font_name', options.panel_options.font_name, _avail_fonts, 'Font', - "The name of the font to use when running tests and in the output panel to the left.") - _add_number('output_font_size', options.panel_options.font_size, 'Font Size', 5, 100, - "The font size to use when running tests and in the output panel to the left.") - - - _add_title('Runner Window') - _add_boolean("gut_on_top", options.gut_on_top, "On Top", - "The GUT Runner appears above children added during tests.") - _add_number('opacity', options.opacity, 'Opacity', 0, 100, - "The opacity of GUT when tests are running.") - _add_boolean('should_maximize', options.should_maximize, 'Maximize', - "Maximize GUT when tests are being run.") - _add_boolean('compact_mode', options.compact_mode, 'Compact Mode', - 'The runner will be in compact mode. This overrides Maximize.') - - _add_title('Runner Appearance') - _add_select('font_name', options.font_name, _avail_fonts, 'Font', - "The font to use for text output in the Gut Runner.") - _add_number('font_size', options.font_size, 'Font Size', 5, 100, - "The font size for text output in the Gut Runner.") - _add_color('font_color', options.font_color, 'Font Color', - "The font color for text output in the Gut Runner.") - _add_color('background_color', options.background_color, 'Background Color', - "The background color for text output in the Gut Runner.") - _add_boolean('disable_colors', options.disable_colors, 'Disable Formatting', - 'Disable formatting and colors used in the Runner. Does not affect panel output.') - - _add_title('Test Directories') - _add_boolean('include_subdirs', options.include_subdirs, 'Include Subdirs', - "Include subdirectories of the directories configured below.") - for i in range(DIRS_TO_LIST): - var value = '' - if(options.dirs.size() > i): - value = options.dirs[i] - - _add_directory(str('directory_', i), value, str('Directory ', i)) - - _add_title("XML Output") - _add_value("junit_xml_file", options.junit_xml_file, "Output Path", - "Path and filename where GUT should create a JUnit compliant XML file. " + - "This file will contain the results of the last test run. To avoid " + - "overriding the file use Include Timestamp.") - _add_boolean("junit_xml_timestamp", options.junit_xml_timestamp, "Include Timestamp", - "Include a timestamp in the filename so that each run gets its own xml file.") - - - _add_title('Hooks') - _add_file('pre_run_script', options.pre_run_script, 'Pre-Run Hook', - 'This script will be run by GUT before any tests are run.') - _add_file('post_run_script', options.post_run_script, 'Post-Run Hook', - 'This script will be run by GUT after all tests are run.') - - - _add_title('Misc') - _add_value('prefix', options.prefix, 'Script Prefix', - "The filename prefix for all test scripts.") - _add_value('suffix', options.suffix, 'Script Suffix', - "Script suffix, including .gd extension. For example '_foo.gd'.") - - -func get_options(base_opts): - var to_return = base_opts.duplicate() - - # Settings - to_return.log_level = _cfg_ctrls.log_level.value - to_return.ignore_pause = _cfg_ctrls.ignore_pause.pressed - to_return.hide_orphans = _cfg_ctrls.hide_orphans.pressed - to_return.should_exit = _cfg_ctrls.should_exit.pressed - to_return.should_exit_on_success = _cfg_ctrls.should_exit_on_success.pressed - - #Output - to_return.panel_options.font_name = _cfg_ctrls.output_font_name.get_item_text( - _cfg_ctrls.output_font_name.selected) - to_return.panel_options.font_size = _cfg_ctrls.output_font_size.value - - # Runner Appearance - to_return.font_name = _cfg_ctrls.font_name.get_item_text( - _cfg_ctrls.font_name.selected) - to_return.font_size = _cfg_ctrls.font_size.value - to_return.should_maximize = _cfg_ctrls.should_maximize.pressed - to_return.compact_mode = _cfg_ctrls.compact_mode.pressed - to_return.opacity = _cfg_ctrls.opacity.value - to_return.background_color = _cfg_ctrls.background_color.color.to_html() - to_return.font_color = _cfg_ctrls.font_color.color.to_html() - to_return.disable_colors = _cfg_ctrls.disable_colors.pressed - to_return.gut_on_top = _cfg_ctrls.gut_on_top.pressed - - - # Directories - to_return.include_subdirs = _cfg_ctrls.include_subdirs.pressed - var dirs = [] - for i in range(DIRS_TO_LIST): - var key = str('directory_', i) - var val = _cfg_ctrls[key].text - if(val != '' and val != null): - dirs.append(val) - to_return.dirs = dirs - - # XML Output - to_return.junit_xml_file = _cfg_ctrls.junit_xml_file.text - to_return.junit_xml_timestamp = _cfg_ctrls.junit_xml_timestamp.pressed - - # Hooks - to_return.pre_run_script = _cfg_ctrls.pre_run_script.text - to_return.post_run_script = _cfg_ctrls.post_run_script.text - - # Misc - to_return.prefix = _cfg_ctrls.prefix.text - to_return.suffix = _cfg_ctrls.suffix.text - - return to_return |
