diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-07-03 20:42:17 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-07-03 20:42:17 (GMT) |
commit | cc2b8884c02f70f7a086e3c9aeee0abd42c97135 (patch) | |
tree | bded521727e19d6b23449c5cccd28c6ce8469ff1 /services | |
parent | ddecddcb420a9f87b203d0f228c6e41b65af5e53 (diff) |
Be smarter when choosing one mime type from the targets offered.
Diffstat (limited to 'services')
-rw-r--r-- | services/clipboard/clipboardobject.py | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/services/clipboard/clipboardobject.py b/services/clipboard/clipboardobject.py index d042fb5..133e667 100644 --- a/services/clipboard/clipboardobject.py +++ b/services/clipboard/clipboardobject.py @@ -20,6 +20,7 @@ import urlparse from sugar.objects import mime from sugar import activity +from sugar import util import objecttypeservice @@ -106,32 +107,21 @@ class ClipboardObject: return self._formats def get_mime_type(self): - logging.debug('Choosing between %r.' % self._formats.keys()) if not self._formats: return '' - if 'text/uri-list' in self._formats.keys(): + format = util.choose_most_significant_mime_type(self._formats.keys()) + + if format == 'text/uri-list': data = self._formats['text/uri-list'].get_data() uris = data.split('\n') if len(uris) == 1 or not uris[1]: uri = urlparse.urlparse(uris[0], 'file') if uri.scheme == 'file': logging.debug('Choosed %r!' % mime.get_for_file(uri.path)) - return mime.get_for_file(uri.path) - - for mime_category in ['image/', 'text/', 'application/']: - for mime_type in self._formats.keys(): - if mime_type.startswith(mime_category) and \ - not mime_type.split('/')[1].startswith('_'): - mime_type = mime_type.split(';')[0] - logging.debug('Choosed %r!' % mime_type) - return mime_type - - if 'STRING' in self._formats.keys(): - return 'text/plain' + format = mime.get_for_file(uri.path) - logging.debug('Returning first: %r.' % self._formats.keys()[0]) - return self._formats.keys()[0] + return format class Format: |