From 0c1d58440e9ce2a5dc9e7826e54cf267bb983afd Mon Sep 17 00:00:00 2001 From: Jonathan Schultz Date: Wed, 30 Aug 2017 09:51:32 +1000 Subject: [PATCH] Highlight invalid fields, including @chriskeihl review --- gooey/gui/model.py | 17 +++++++++++++++-- gooey/gui/windows/advanced_config.py | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/gooey/gui/model.py b/gooey/gui/model.py index 5762777..ed4c061 100644 --- a/gooey/gui/model.py +++ b/gooey/gui/model.py @@ -4,6 +4,7 @@ from itertools import chain from gooey.gui.lang.i18n import _ from gooey.gui.util.quoting import quote +import wx ArgumentGroup = namedtuple('ArgumentGroup', 'name command required_args optional_args') @@ -207,8 +208,20 @@ class MyModel(object): return self.build_spec['manual_start'] def is_required_section_complete(self): - completed_values = list(filter(None, [arg.value for arg in self.required_args])) - return len(self.required_args) == len(completed_values) + error_found = False + for arg in self.required_args: + widget = arg.widget_instance.widget_pack.widget + if arg.value: + widget.SetBackgroundColour(wx.NullColour) + else: + if not error_found: + error_found = True + widget.SetFocus() + widget.SetBackgroundColour("#EF9A9A") + + widget.Refresh() + + return not error_found def build_command_line_string(self): optional_args = [arg.value for arg in self.optional_args] diff --git a/gooey/gui/windows/advanced_config.py b/gooey/gui/windows/advanced_config.py index ae74a2b..2cde317 100644 --- a/gooey/gui/windows/advanced_config.py +++ b/gooey/gui/windows/advanced_config.py @@ -51,6 +51,7 @@ class WidgetContainer(wx.Panel): for index, widget in enumerate(widgets): widget_class = getattr(components, widget.type) widget_instance = widget_class(self, widget.title, widget.help, widget.choices) + widget.widget_instance = widget_instance self.widgets.append(widget_instance) self.layout(num_columns)