Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-07-14 11:53:49 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-07-14 11:53:49 (GMT)
commit1d2f84d0af4a88a0abb2a66dbabd56fe55e8f123 (patch)
treef722f06348ee07322a98395cf63172d7b9938e90 /sugar
parent614d9336cc24ded53c17a3bee43148a90337e6c7 (diff)
#1888 Choose the correct mime type when adding text from Write to the clipboard.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/objects/mime.py36
-rw-r--r--sugar/util.py22
2 files changed, 36 insertions, 22 deletions
diff --git a/sugar/objects/mime.py b/sugar/objects/mime.py
index 8725700..0cba001 100644
--- a/sugar/objects/mime.py
+++ b/sugar/objects/mime.py
@@ -15,6 +15,8 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
+import logging
+
from sugar import _sugarext
def get_for_file(file_name):
@@ -40,3 +42,37 @@ def get_primary_extension(mime_type):
_extensions_cache[mime_type] = None
return None
+
+def choose_most_significant(mime_types):
+ logging.debug('Choosing between %r.' % mime_types)
+ if not mime_types:
+ return ''
+
+ if 'text/uri-list' in mime_types:
+ return 'text/uri-list'
+
+ for mime_category in ['image/', 'text/', 'application/']:
+ for mime_type in mime_types:
+
+ # skip text/plain and text/html, these have lower priority.
+ if mime_type in ['text/plain', 'text/html']:
+ continue
+
+ if mime_type.startswith(mime_category):
+ # skip mozilla private types (second component starts with '_')
+ if mime_type.split('/')[1].startswith('_'):
+ continue
+
+ # take out the specifier after ';' that mozilla likes to add
+ mime_type = mime_type.split(';')[0]
+ logging.debug('Choosed %r!' % mime_type)
+ return mime_type
+
+ if 'text/html' in mime_types:
+ return 'text/html'
+
+ if 'text/plain' in mime_types or 'STRING' in mime_types:
+ return 'text/plain'
+
+ logging.debug('Returning first: %r.' % mime_types[0])
+ return mime_types[0]
diff --git a/sugar/util.py b/sugar/util.py
index 497eb53..814a728 100644
--- a/sugar/util.py
+++ b/sugar/util.py
@@ -128,25 +128,3 @@ def set_proc_title(title):
except:
return False
-def choose_most_significant_mime_type(mime_types):
- logging.debug('Choosing between %r.' % mime_types)
- if not mime_types:
- return ''
-
- if 'text/uri-list' in mime_types:
- return 'text/uri-list'
-
- for mime_category in ['image/', 'text/', 'application/']:
- for mime_type in mime_types:
- 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 mime_types:
- return 'text/plain'
-
- logging.debug('Returning first: %r.' % mime_types[0])
- return mime_types[0]
-