static GList *editor_mime_types_to_extensions(gchar **mime_types)
{
- /* FIXME: this should be rewritten to use the shared mime database, as soon as we switch to gio */
+ /** @FIXME this should be rewritten to use the shared mime database, as soon as we switch to gio */
static const gchar *conv_table[][2] = {
{"application/x-ufraw", ".ufraw"},
{"image/*", "*"},
{"image/bmp", ".bmp"},
{"image/gif", ".gif"},
- {"image/jpeg", ".jpeg;.jpg"},
+ {"image/jpeg", ".jpeg;.jpg;.mpo"},
{"image/jpg", ".jpg;.jpeg"},
+ {"image/webp", ".webp"},
{"image/pcx", ".pcx"},
{"image/png", ".png"},
{"image/svg", ".svg"},
{"image/svg+xml", ".svg"},
{"image/svg+xml-compressed", ".svg"},
- {"image/tiff", ".tiff;.tif"},
+ {"image/tiff", ".tiff;.tif;.mef"},
+ {"image/vnd-ms.dds", ".dds"},
+ {"image/x-adobe-dng", ".dng"},
{"image/x-bmp", ".bmp"},
{"image/x-canon-crw", ".crw"},
{"image/x-canon-cr2", ".cr2"},
+ {"image/x-canon-cr3", ".cr3"},
{"image/x-cr2", ".cr2"},
- {"image/x-dcraw", "%raw"},
+ {"image/x-dcraw", "%raw;.mos"},
{"image/x-epson-erf", "%erf"},
{"image/x-ico", ".ico"},
+ {"image/x-kodak-kdc", ".kdc"},
{"image/x-mrw", ".mrw"},
{"image/x-minolta-mrw", ".mrw"},
{"image/x-MS-bmp", ".bmp"},
{"image/x-nef", ".nef"},
{"image/x-nikon-nef", ".nef"},
+ {"image/x-panasonic-raw", ".raw"},
+ {"image/x-panasonic-rw2", ".rw2"},
+ {"image/x-pentax-pef", ".pef"},
{"image/x-orf", ".orf"},
{"image/x-olympus-orf", ".orf"},
{"image/x-pcx", ".pcx"},
{"image/x-raf", ".raf"},
{"image/x-fuji-raf", ".raf"},
{"image/x-sgi", ".sgi"},
+ {"image/x-sony-arw", ".arw"},
+ {"image/x-sony-sr2", ".sr2"},
+ {"image/x-sony-srf", ".srf"},
{"image/x-tga", ".tga"},
{"image/x-xbitmap", ".xbm"},
{"image/x-xcf", ".xcf"},
{"image/x-xpixmap", ".xpm"},
{"image/x-x3f", ".x3f"},
+ {"application/x-navi-animation", ".ani"},
{"application/x-ptoptimizer-script", ".pto"},
{NULL, NULL}};
gchar *try_exec;
GtkTreeIter iter;
gboolean category_geeqie = FALSE;
+ GList *work;
+ gboolean disabled;
if (g_hash_table_lookup(editors, key)) return FALSE; /* the file found earlier wins */
if (editor->ignored) return TRUE;
+ work = options->disabled_plugins;
+
+ disabled = FALSE;
+ while (work)
+ {
+ if (g_strcmp0(path, work->data) == 0)
+ {
+ disabled = TRUE;
+ break;
+ }
+ work = work->next;
+ }
+
+ editor->disabled = disabled;
+
gtk_list_store_append(desktop_file_list, &iter);
gtk_list_store_set(desktop_file_list, &iter,
DESKTOP_FILE_COLUMN_KEY, key,
+ DESKTOP_FILE_COLUMN_DISABLED, editor->disabled,
DESKTOP_FILE_COLUMN_NAME, editor->name,
DESKTOP_FILE_COLUMN_HIDDEN, editor->hidden ? _("yes") : _("no"),
DESKTOP_FILE_COLUMN_WRITABLE, access_file(path, W_OK),
}
else
{
- desktop_file_list = gtk_list_store_new(DESKTOP_FILE_COLUMN_COUNT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_STRING);
+ desktop_file_list = gtk_list_store_new(DESKTOP_FILE_COLUMN_COUNT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_STRING);
}
if (editors)
{
else
xdg_data_dirs = g_strdup("/usr/share");
- all_dirs = g_strconcat(get_rc_dir(), ":", GQ_APP_DIR, ":", xdg_data_home_get(), ":", xdg_data_dirs, NULL);
+ all_dirs = g_strconcat(get_rc_dir(), ":", gq_app_dir, ":", xdg_data_home_get(), ":", xdg_data_dirs, NULL);
g_free(xdg_data_dirs);
strcmp(editor->key, CMD_DELETE) == 0 ||
strcmp(editor->key, CMD_FOLDER) == 0) return;
+ if (editor->disabled)
+ {
+ return;
+ }
+
*listp = g_list_prepend(*listp, editor);
}
{
const EditorDescription *ea = a;
const EditorDescription *eb = b;
+ gchar *caseless_name_ea;
+ gchar *caseless_name_eb;
+ gchar *collate_key_ea;
+ gchar *collate_key_eb;
gint ret;
ret = strcmp(ea->menu_path, eb->menu_path);
if (ret != 0) return ret;
- return g_utf8_collate(ea->name, eb->name);
+ caseless_name_ea = g_utf8_casefold(ea->name, -1);
+ caseless_name_eb = g_utf8_casefold(eb->name, -1);
+ collate_key_ea = g_utf8_collate_key_for_filename(caseless_name_ea, -1);
+ collate_key_eb = g_utf8_collate_key_for_filename(caseless_name_eb, -1);
+ ret = g_strcmp0(collate_key_ea, collate_key_eb);
+
+ g_free(collate_key_ea);
+ g_free(collate_key_eb);
+ g_free(caseless_name_ea);
+ g_free(caseless_name_eb);
+
+ return ret;
}
GList *editor_list_get(void)
NULL, FALSE,
NULL, ed);
buf = g_strdup_printf(_("Output of %s"), text);
- generic_dialog_add_message(vd->gd, NULL, buf, NULL, TRUE);
+ generic_dialog_add_message(vd->gd, NULL, buf, NULL, FALSE);
g_free(buf);
vd->button_stop = generic_dialog_add_button(vd->gd, GTK_STOCK_STOP, NULL,
editor_verbose_window_stop, FALSE);
args[n++] = command;
args[n] = NULL;
- if ((ed->flags & EDITOR_DEST) && fd && fd->change && fd->change->dest) /* FIXME: error handling */
+ if ((ed->flags & EDITOR_DEST) && fd && fd->change && fd->change->dest) /** @FIXME error handling */
{
g_setenv("GEEQIE_DESTINATION", fd->change->dest, TRUE);
}