Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-07-03 20:42:17 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-07-03 20:42:17 (GMT)
commitcc2b8884c02f70f7a086e3c9aeee0abd42c97135 (patch)
treebded521727e19d6b23449c5cccd28c6ce8469ff1 /services
parentddecddcb420a9f87b203d0f228c6e41b65af5e53 (diff)
Be smarter when choosing one mime type from the targets offered.
Diffstat (limited to 'services')
-rw-r--r--services/clipboard/clipboardobject.py22
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: