def _is_valid_re(self, pattern, flags): """ Check the validity of the regular expression and inform the user if it fails. """ LOGGER.log() try: is_valid = bool(re.compile(pattern, flags)) except (re.error, re_error): is_valid = False title = 'Click Config: error in input' flag_text = '\n I (IGNORECASE)' * bool(flags & re.I) flag_text += '\n M (MULTILINE)' * bool(flags & re.M) flag_text += '\n S (DOTALL)' * bool(flags & re.S) flag_text += '\n X (VERBOSE)' * bool(flags & re.X) flag_text = flag_text or '\n (None)' message = ('Invalid regular expression pattern.' '\n\nError:\n %s' '\n\nPattern:\n %s' '\n\nFlags:%s' % (re_error.message, pattern, flag_text)) dialogs.show_message(title, message, Gtk.MessageType.ERROR, self.window) return is_valid
def _get_new_name(self, name='', existing_names=(), desc=''): """Ask the user for a new name, and ensure it is new.""" while 1: name = dialogs.ask_for_text(parent=self.window, title='Add %s' % desc, prompt='Enter a new name:', default=name) if name: name = name.strip() if name not in existing_names: break dialogs.show_message(title='Error adding %s name' % desc, message='"%s" already exists.' % name, type_=Gtk.MessageType.ERROR, parent=self.window) return name