def update(self, database, entry): """Updates and returns the new entry.""" new = None text = self.buff.get_text(self.buff.get_start_iter(), self.buff.get_end_iter()) try: text = text.encode("latin-1") except UnicodeError: Compat.error_dialog_parented(_("Your text contains non Latin-1 symbols"), self.w.get_toplevel()) return None try: new = self.database.create_native(text) except Exceptions.ParserError, msg: Utils.error_dialog(_("Error in native string parsing"), str(msg)) return None
def StartViewer (entry, key, stringuri, parent=None, document=None): if not is_interactive (): return from Legacy.GnomeUI import Compat, Utils uri = Fields.URL (stringuri) scheme, location, path, parameters, query, fragment = uri.url fileuri = uri.get_url () if uri.invalid or uri.inexact: message = Utils.Callback ( _("Warning: This URL is marked as Invalid or Approximate: %s\nContinue?") % fileuri) if not message.answer (): return if document: document.statusbar.set_status (_("Determining Mime Type ... ")) try: mimetype = Compat.get_mime_type (fileuri) except RuntimeError, mesg: Utils.error_dialog(_("Cannot determine mime type for item %s ") % entry.key.key, _("URL in question is: %s\n" "You should check the url or path given for errors.\n" "Details: %s") % (fileuri, mesg)) if document: document.statusbar.pop () return
def update(self, entry): (day, month, year) = (None, None, None) text = string.strip(self.day.get_chars(0, -1)).encode("latin-1") if text != "": try: day = int(text) except ValueError: Compat.error_dialog_parented(_("Invalid day field in date"), self.day.get_toplevel()) return -1 text = string.strip(self.month.get_chars(0, -1)).encode("latin-1") if text != "": try: month = int(text) except ValueError, err: Compat.error_dialog_parented(_("Invalid month field in date"), self.day.get_toplevel()) return -1
def update(self, database, entry): modified = False key = string.strip(self.key.get_text()) if key == "": self.entry.key = None modified = True else: if not key_re.match(key): Compat.error_dialog_parented(_("Invalid key format"), self.w.get_toplevel()) return None key = Key.Key(database, key) if key != self.entry.key: if database.has_key(key): Compat.error_dialog_parented(_("Key `%s' already exists") % str(key.key), self.w.get_toplevel()) return None self.entry.key = key modified = True modified = self.type != self.entry.type or modified for item in self.content: try: result = item.update(self.entry) except UnicodeError: f = Types.get_field(item.field) Compat.error_dialog_parented( _("The `%s' field contains a non Latin-1 symbol") % f.name, self.w.get_toplevel() ) return None if result == -1: return None modified = result or modified modified |= self.lt_update() if not modified: fields = self.entry.keys() fields.sort() if fields != self.fields: modified = 1 if modified: return self.entry return entry
if scheme == 'file' and not location: filename = path elif mimetype in ['text/html', 'text/plain']: filename = fileuri else: filename, headers = urllib.urlretrieve (fileuri) if mimetype == 'application/x-gzip': try: tempname = os.tmpnam () os.system ("gzip -d < %s >%s" %(filename, tempname)) filename = tempname mimetype = Compat.get_mime_type (filename) except RuntimeError, mesg: Utils.error_dialog (_("IOError for item %s: cannot uncompress resource.") % entry.key.key, _("URL: %s\nDetails: %s") % (filename, mesg)) if document: document.statusbar.pop () return viewers = [ item [1] for item in Config.get (config_viewers).data if item [0] == mimetype] or [ item [1] for item in Config.get (config_viewers).data if item [0].endswith ('/*') and item [0] [:-2] == mimetype1]