def required_settings_filled(self, ignore_options=False):
        if not self.options_enabled and not ignore_options:
            return False

        red_border = 'QLineEdit{border:3px solid rgba(238, 68, 83, 200); border-radius:5px;}'

        settings_valid = True
        for sgroup in self.settings['setting_groups']+[self.settings['web2exe_settings']]:
            for sname, setting in sgroup.items():
                if setting.type in set(['file', 'folder']) and os.path.isabs(setting.value):
                    setting_path = setting.value
                else:
                    setting_path = utils.path_join(self.project_dir(),
                                                   setting.value)

                if setting.required and not setting.value:
                    settings_valid = False
                    widget = self.find_child_by_name(setting.name)
                    if widget is not None:
                        widget.setStyleSheet(red_border)
                        widget.setToolTip('This setting is required.')
                        tab = self.get_tab_index_for_setting_name(setting.name)
                        self.tab_widget.setTabIcon(tab, self.warning_settings_icon)

                if (setting.type == 'file' and
                        setting.value):
                    setting_path_invalid = not os.path.exists(setting_path)
                    setting_url_invalid = not url_exists(setting.value)
                    if setting_path_invalid and setting_url_invalid:
                        log(setting.value, "does not exist")
                        settings_valid = False
                        widget = self.find_child_by_name(setting.name)
                        if widget is not None:
                            widget.setStyleSheet(red_border)
                            widget.setToolTip(u'The file or url "{}" does not exist.'.format(setting.value))
                            tab = self.get_tab_index_for_setting_name(setting.name)
                            self.tab_widget.setTabIcon(tab, self.warning_settings_icon)

                if (setting.type == 'folder' and
                    setting.value and
                        not os.path.exists(setting_path)):
                    settings_valid = False
                    widget = self.find_child_by_name(setting.name)
                    if widget is not None:
                        widget.setStyleSheet(red_border)
                        widget.setToolTip(u'The folder "{}" does not exist'.format(setting_path))
                        tab = self.get_tab_index_for_setting_name(setting.name)
                        self.tab_widget.setTabIcon(tab, self.warning_settings_icon)
                if settings_valid:
                    widget = self.find_child_by_name(setting.name)
                    if widget is not None:
                        widget.setStyleSheet('')
                        widget.setToolTip('')
                        tab = self.get_tab_index_for_setting_name(setting.name)
                        self.tab_widget.setTabIcon(tab, self.tab_icons[tab])

        export_chosen = False
        for setting_name, setting in self.settings['export_settings'].items():
            if setting.value:
                export_chosen = True

        if not settings_valid:
            return export_chosen and settings_valid

        for setting_name, setting in self.settings['export_settings'].items():
            if not export_chosen:
                widget = self.find_child_by_name(setting.name)
                if widget is not None:
                    widget.setStyleSheet('QCheckBox{border:3px solid rgba(238, 68, 83, 200); border-radius:5px;}')
                    widget.setToolTip('At least one of these options should be selected.')
                    tab = self.get_tab_index_for_setting_name(setting.name)
                    self.tab_widget.setTabIcon(tab, self.warning_settings_icon)
            else:
                widget = self.find_child_by_name(setting.name)
                if widget is not None:
                    widget.setStyleSheet('')
                    widget.setToolTip('')
                    tab = self.get_tab_index_for_setting_name(setting.name)
                    self.tab_widget.setTabIcon(tab, self.tab_icons[tab])

        return export_chosen and settings_valid
dataset/ETHPy150Open jyapayne/Web2Executable/main.py/MainWindow.required_settings_filled/original