コード例 #1
0
static void
add_emblems_dialog_response_cb (GtkWidget *dialog, int response,
				NautilusEmblemSidebar *emblem_sidebar)
{
	Emblem *emblem;
	GSList *emblems;
	GSList *l;

	switch (response) {
	case GTK_RESPONSE_CANCEL:
		gtk_widget_destroy (dialog);
		break;

	case GTK_RESPONSE_HELP:
		g_message ("Implement me!");
		break;

	case GTK_RESPONSE_OK:
		emblems = g_object_get_data (G_OBJECT (dialog),
					     "emblems-to-add");

		for (l = emblems; l; l = l->next) {
			char *keyword;

			emblem = (Emblem *)l->data;
			if (emblem->keyword != NULL) {
				/* this one has already been verified */
				continue;
			}

			keyword = nautilus_emblem_create_unique_keyword (emblem->name);
			if (!nautilus_emblem_verify_keyword
				(GTK_WINDOW (dialog), keyword, emblem->name)) {
				g_free (keyword);
				return;
			} else {
				emblem->keyword = keyword;
			}

		}

		for (l = emblems; l; l = l->next) {
			emblem = (Emblem *)l->data;

			nautilus_emblem_install_custom_emblem (emblem->pixbuf,
							       emblem->keyword,
							       emblem->name,
							       GTK_WINDOW (dialog));
		}

		gtk_widget_destroy (dialog);

		send_emblems_changed ();
		break;
	}
}
コード例 #2
0
static void
nautilus_emblem_sidebar_delete_cb (GtkWidget *menu_item,
				   NautilusEmblemSidebar *emblem_sidebar)
{
	char *error;

	if (nautilus_emblem_remove_emblem (emblem_sidebar->details->popup_emblem_keyword)) {
		send_emblems_changed ();
	} else {
		error = g_strdup_printf (_("Could not remove emblem with name '%s'."), emblem_sidebar->details->popup_emblem_display_name);
		eel_show_error_dialog (error, _("This is probably because the emblem is a permanent one, and not one that you added yourself."),
				       NULL);
		g_free (error);
	}
}
コード例 #3
0
static void
rename_dialog_response_cb (GtkWidget *dialog, int response,
                           CajaEmblemSidebar *emblem_sidebar)
{
    GtkWidget *entry;
    char *keyword, *name, *error;

    keyword = g_object_get_data (G_OBJECT (dialog), "emblem-keyword");

    if (response == GTK_RESPONSE_CANCEL)
    {
        g_free (keyword);
        gtk_widget_destroy (dialog);
        return;
    }
    else if (response == GTK_RESPONSE_HELP)
    {
        g_message ("Implement me!");
        return;
    }

    entry = g_object_get_data (G_OBJECT (dialog), "entry");

    name = g_strdup (gtk_entry_get_text (GTK_ENTRY (entry)));

    gtk_widget_destroy (dialog);

    if (caja_emblem_rename_emblem (keyword, name))
    {
        send_emblems_changed ();
    }
    else
    {
        error = g_strdup_printf (_("Could not rename emblem with name '%s'."), name);
        eel_show_error_dialog (error, _("This is probably because the emblem is a permanent one, and not one that you added yourself."),
                               NULL);
        g_free (error);
    }

    g_free (keyword);
    g_free (name);
}