コード例 #1
0
ファイル: nautilus-monitor.c プロジェクト: daschuer/nautilus
static void
dir_changed (GFileMonitor      *monitor,
             GFile             *child,
             GFile             *other_file,
             GFileMonitorEvent  event_type,
             gpointer           user_data)
{
    char *uri, *to_uri;

    uri = g_file_get_uri (child);
    to_uri = NULL;
    if (other_file)
    {
        to_uri = g_file_get_uri (other_file);
    }

    switch (event_type)
    {
        default:
        case G_FILE_MONITOR_EVENT_CHANGED:
        {
            /* ignore */
        }
        break;

        case G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED:
        case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT:
        {
            nautilus_file_changes_queue_file_changed (child);
        }
        break;

        case G_FILE_MONITOR_EVENT_UNMOUNTED:
        case G_FILE_MONITOR_EVENT_DELETED:
        {
            nautilus_file_changes_queue_file_removed (child);
        }
        break;

        case G_FILE_MONITOR_EVENT_CREATED:
        {
            nautilus_file_changes_queue_file_added (child);
        }
        break;
    }

    g_free (uri);
    g_free (to_uri);

    schedule_call_consume_changes ();
}
コード例 #2
0
static gboolean
receive_xds (NautilusTreeViewDragDest *dest,
             GtkWidget *widget,
             guint32 time,
             GdkDragContext *context,
             int x, int y)
{
    GFile *location;
    const guchar *selection_data;
    gint selection_format;
    gint selection_length;

    selection_data = gtk_selection_data_get_data (dest->details->drag_data);
    selection_format = gtk_selection_data_get_format (dest->details->drag_data);
    selection_length = gtk_selection_data_get_length (dest->details->drag_data);

    if (selection_format == 8
            && selection_length == 1
            && selection_data[0] == 'F') {
        gtk_drag_get_data (widget, context,
                           gdk_atom_intern (NAUTILUS_ICON_DND_RAW_TYPE,
                                            FALSE),
                           time);
        return FALSE;
    } else if (selection_format == 8
               && selection_length == 1
               && selection_data[0] == 'S') {
        g_assert (dest->details->direct_save_uri != NULL);
        location = g_file_new_for_uri (dest->details->direct_save_uri);

        nautilus_file_changes_queue_file_added (location);
        nautilus_file_changes_consume_changes (TRUE);

        g_object_unref (location);
    }
    return TRUE;
}