diff options
author | Carlos Soriano <csoriano@gnome.org> | 2016-02-03 13:59:30 +0100 |
---|---|---|
committer | Carlos Soriano <csoriano@gnome.org> | 2016-02-03 16:33:55 +0100 |
commit | ac955a26247cd6f0a909f3abe19fb9e362adeae1 (patch) | |
tree | 18f2a2e6150ab0edb5079c447de562ca0f801d68 /src/nautilus-mime-actions.c | |
parent | 1e447d8d7400cc459f914820dc77396dfee5c34c (diff) | |
download | nautilus-ac955a26247cd6f0a909f3abe19fb9e362adeae1.tar.gz |
search: export mime types utilities
Use the same mimetypes utilities and extract the functions to
mime-actions to clean it up and being able to be used outside of
the search popover class.
Diffstat (limited to 'src/nautilus-mime-actions.c')
-rw-r--r-- | src/nautilus-mime-actions.c | 180 |
1 files changed, 179 insertions, 1 deletions
diff --git a/src/nautilus-mime-actions.c b/src/nautilus-mime-actions.c index 6b47d4e53..982dd6f1c 100644 --- a/src/nautilus-mime-actions.c +++ b/src/nautilus-mime-actions.c @@ -1,4 +1,4 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ /* nautilus-mime-actions.c - uri-specific versions of mime action functions @@ -31,6 +31,7 @@ #include <eel/eel-glib-extensions.h> #include <eel/eel-stock-dialogs.h> #include <eel/eel-string.h> +#include <glib.h> #include <glib/gi18n.h> #include <glib/gstdio.h> #include <string.h> @@ -86,6 +87,150 @@ typedef struct { gboolean user_confirmation; } ActivateParameters; +struct { + char *name; + char *mimetypes[20]; +} mimetype_groups[] = { + { + N_("Anything"), + { NULL } + }, + { + N_("Files"), + { "application/octet-stream", + "text/plain", + NULL + } + }, + { + N_("Folders"), + { "inode/directory", + NULL + } + }, + { N_("Documents"), + { "application/rtf", + "application/msword", + "application/vnd.sun.xml.writer", + "application/vnd.sun.xml.writer.global", + "application/vnd.sun.xml.writer.template", + "application/vnd.oasis.opendocument.text", + "application/vnd.oasis.opendocument.text-template", + "application/x-abiword", + "application/x-applix-word", + "application/x-mswrite", + "application/docbook+xml", + "application/x-kword", + "application/x-kword-crypt", + "application/x-lyx", + NULL + } + }, + { N_("Illustration"), + { "application/illustrator", + "application/vnd.corel-draw", + "application/vnd.stardivision.draw", + "application/vnd.oasis.opendocument.graphics", + "application/x-dia-diagram", + "application/x-karbon", + "application/x-killustrator", + "application/x-kivio", + "application/x-kontour", + "application/x-wpg", + NULL + } + }, + { N_("Music"), + { "application/ogg", + "audio/x-vorbis+ogg", + "audio/ac3", + "audio/basic", + "audio/midi", + "audio/x-flac", + "audio/mp4", + "audio/mpeg", + "audio/x-mpeg", + "audio/x-ms-asx", + "audio/x-pn-realaudio", + NULL + } + }, + { N_("PDF / Postscript"), + { "application/pdf", + "application/postscript", + "application/x-dvi", + "image/x-eps", + NULL + } + }, + { N_("Picture"), + { "application/vnd.oasis.opendocument.image", + "application/x-krita", + "image/bmp", + "image/cgm", + "image/gif", + "image/jpeg", + "image/jpeg2000", + "image/png", + "image/svg+xml", + "image/tiff", + "image/x-compressed-xcf", + "image/x-pcx", + "image/x-photo-cd", + "image/x-psd", + "image/x-tga", + "image/x-xcf", + NULL + } + }, + { N_("Presentation"), + { "application/vnd.ms-powerpoint", + "application/vnd.sun.xml.impress", + "application/vnd.oasis.opendocument.presentation", + "application/x-magicpoint", + "application/x-kpresenter", + NULL + } + }, + { N_("Spreadsheet"), + { "application/vnd.lotus-1-2-3", + "application/vnd.ms-excel", + "application/vnd.stardivision.calc", + "application/vnd.sun.xml.calc", + "application/vnd.oasis.opendocument.spreadsheet", + "application/x-applix-spreadsheet", + "application/x-gnumeric", + "application/x-kspread", + "application/x-kspread-crypt", + "application/x-quattropro", + "application/x-sc", + "application/x-siag", + NULL + } + }, + { N_("Text File"), + { "text/plain", + NULL + } + }, + { N_("Video"), + { "video/mp4", + "video/3gpp", + "video/mpeg", + "video/quicktime", + "video/vivo", + "video/x-avi", + "video/x-mng", + "video/x-ms-asf", + "video/x-ms-wmv", + "video/x-msvideo", + "video/x-nsv", + "video/x-real-video", + NULL + } + } +}; + /* Number of seconds until cancel dialog shows up */ #define DELAY_UNTIL_CANCEL_MSECS 5000 @@ -2131,3 +2276,36 @@ nautilus_mime_activate_file (GtkWindow *parent_window, nautilus_mime_activate_files (parent_window, slot, files, launch_directory, flags, FALSE); g_list_free (files); } + +gint +nautilus_mime_types_get_number_of_groups (void) +{ + return G_N_ELEMENTS (mimetype_groups); +} + +const gchar* +nautilus_mime_types_group_get_name (gint group_index) +{ + g_return_val_if_fail (group_index < G_N_ELEMENTS (mimetype_groups), NULL); + + return gettext (mimetype_groups[group_index].name); +} + +GList* +nautilus_mime_types_group_get_mimetypes (gint group_index) +{ + GList *mimetypes; + gint i; + + g_return_val_if_fail (group_index < G_N_ELEMENTS (mimetype_groups), NULL); + + mimetypes = NULL; + + /* Setup the new mimetypes set */ + for (i = 0; mimetype_groups[group_index].mimetypes[i]; i++) + { + mimetypes = g_list_append (mimetypes, mimetype_groups[group_index].mimetypes[i]); + } + + return mimetypes; +} |