~ubuntu-branches/ubuntu/oneiric/file-browser-applet/oneiric

« back to all changes in this revision

Viewing changes to src/utils.c

  • Committer: Bazaar Package Importer
  • Author(s): Andrew Starr-Bochicchio
  • Date: 2009-04-11 17:15:39 UTC
  • mfrom: (1.1.4 upstream) (2.1.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090411171539-jk4kgkvm4i39nv3c
Tags: 0.6.2-1
* New upstream release. (Closes: #504525)
 - Added context menu with a few actions (open-with, new folder here, 
   delete file/folder, create/extract archive, create CD/DVD from 
   file/folder, compile a tex file).
 - Added configuration option to make text vertical/horizontal when 
   the panel is vertical.
 - Added tooltips to configuration dialog.
 - Fixes upstream bugs #21, #30, #34, #37, #39, #43, #44, #45, #49, 
   #51, #56, #59, #60, and #62.
 - Added mnemonic keyboard shortcut to menus for 
   faster keyboard navigation.
 - Added recent documents' support.
 - Improved menu browser focus after context menu close.
 - Added preliminary DnD dragging out of applet. MOVE is the default 
   behaviour.
 - Some code cleanups and plugged memory leaks.
 - Slightly improved "New Folder" dialog.
 - Migrated to gtk+ builder from libglade.
* debian/control:
 - Add suggests on file-roller, brasero, and rubber 
   for new features.
 - Add Vcs-Bzr field.
 - Drop depricated libglade2-dev Build-Depend
 - Drop unneeded libpanel-applet2-0 Depend. Already picked up by 
   shlibs:Depends.
 - Add versionized Build-Depend on libgtk2.0-dev (>= 2.14)
 - Bump Standards-Version to 3.8.1
* debian/copyright:
 - Use /usr/share/common-licenses/GPL-2 rather than just GLP.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 * File:                                utils.c
3
 
 * Created:                             August 2007
4
 
 * Created by:                  Axel von Bertoldi
5
 
 * Last Modified:               January 2008
6
 
 * Last Modified by:    Axel von Bertoldi
7
 
 * (C) 2005-2008                Axel von Bertoldi
 
2
 * File:                utils.c
 
3
 * Created:             August 2007
 
4
 * Created by:          Axel von Bertoldi
 
5
 * Last Modified:       January 2008
 
6
 * Last Modified by:    Axel von Bertoldi
 
7
 * (C) 2005-2008        Axel von Bertoldi
8
8
 *
9
9
 * This program is free software; you can redistribute it and/or modify it
10
10
 * under the terms of the GNU General Public License as published by the Free
31
31
/******************************************************************************/
32
32
void
33
33
garbage_init (Garbage *garabage) {
34
 
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
34
    if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
35
35
    
36
36
    if (*garabage == NULL) {
37
 
        GPtrArray **_garbage = (GPtrArray**)garabage;
38
 
            *_garbage = g_ptr_array_new();
 
37
        GPtrArray **_garbage = (GPtrArray**)garabage;
 
38
        *_garbage = g_ptr_array_new();
39
39
    }
40
40
}
41
41
/******************************************************************************/
42
42
void
43
43
garbage_empty (Garbage *garabage, gboolean reuse) {
44
 
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
44
    if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
45
45
 
46
46
    if (*garabage == NULL)
47
47
        return;
48
48
 
49
 
        GPtrArray **_garbage = (GPtrArray**)garabage;
 
49
    GPtrArray **_garbage = (GPtrArray**)garabage;
50
50
 
51
 
        g_ptr_array_foreach (*_garbage, (GFunc)g_free, NULL);
52
 
        g_ptr_array_free (*_garbage, TRUE);
53
 
        *_garbage = reuse ? g_ptr_array_new() : NULL;
 
51
    g_ptr_array_foreach (*_garbage, (GFunc)g_free, NULL);
 
52
    g_ptr_array_free (*_garbage, TRUE);
 
53
    *_garbage = reuse ? g_ptr_array_new() : NULL;
54
54
}
55
55
/******************************************************************************/
56
56
void
57
57
garbage_add_item (Garbage garabage, gpointer item) {
58
 
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
58
    if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
59
59
 
60
 
        if (garabage) {
61
 
                GPtrArray *_garbage = (GPtrArray*)garabage;
62
 
                g_ptr_array_add (_garbage, item);
63
 
        }
 
60
    if (garabage) {
 
61
        GPtrArray *_garbage = (GPtrArray*)garabage;
 
62
        g_ptr_array_add (_garbage, item);
 
63
    }
64
64
}
65
65
/******************************************************************************/
66
66
gboolean
67
67
utils_gerror_ok (GError **error, gboolean show_error) {
68
 
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
69
 
 
70
 
        if (*error) {
71
 
                if (DEBUG) g_printf ("error: %s\n", (*error)->message);
72
 
 
73
 
                if (show_error)
74
 
                        utils_show_dialog (_("Error"), (*error)->message, GTK_MESSAGE_ERROR);
75
 
 
76
 
                g_error_free (*error);
77
 
                *error = NULL;
78
 
                return FALSE;
79
 
        }
80
 
        return TRUE;
 
68
    if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
69
 
 
70
    if (*error) {
 
71
        if (DEBUG) g_printf ("error: %s\n", (*error)->message);
 
72
 
 
73
        if (show_error)
 
74
            utils_show_dialog (_("Error"), (*error)->message, GTK_MESSAGE_ERROR);
 
75
 
 
76
        g_error_free (*error);
 
77
        *error = NULL;
 
78
        return FALSE;
 
79
    }
 
80
    return TRUE;
81
81
}
82
82
/******************************************************************************/
83
83
void
84
84
utils_show_dialog (const gchar *title, const gchar *message, GtkMessageType type) {
85
 
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
86
 
 
87
 
        GtkWidget *dialog = gtk_message_dialog_new (NULL,
88
 
                                                                                                0,
89
 
                                                                                                type,
90
 
                                                                                                GTK_BUTTONS_CLOSE,
91
 
                                                                                                "%s",
92
 
                                                                                                message);
93
 
        gtk_window_set_title (GTK_WINDOW (dialog), title);
94
 
 
95
 
        g_signal_connect (G_OBJECT (dialog), "destroy", G_CALLBACK (gtk_widget_destroy), dialog);
 
85
    if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
86
 
 
87
    GtkWidget *dialog = gtk_message_dialog_new (NULL,
 
88
                                                0,
 
89
                                                type,
 
90
                                                GTK_BUTTONS_CLOSE,
 
91
                                                "%s",
 
92
                                                message);
 
93
    gtk_window_set_title (GTK_WINDOW (dialog), title);
 
94
 
 
95
    g_signal_connect (G_OBJECT (dialog), "destroy", G_CALLBACK (gtk_widget_destroy), dialog);
96
96
    g_signal_connect (G_OBJECT (dialog), "delete_event", G_CALLBACK (gtk_widget_destroy), dialog);
97
 
        g_signal_connect_swapped (G_OBJECT (dialog), "response", G_CALLBACK (gtk_widget_destroy), dialog);
98
 
        gtk_widget_show_all (dialog);
 
97
    g_signal_connect_swapped (G_OBJECT (dialog), "response", G_CALLBACK (gtk_widget_destroy), dialog);
 
98
    gtk_widget_show_all (dialog);
99
99
 
100
 
        return;
 
100
    return;
101
101
}
102
102
/******************************************************************************/
103
103
GtkWidget*
104
104
utils_get_scaled_image_from_file (const gchar *file_name, int size) {
105
 
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
106
 
 
107
 
        GdkPixbuf *pixbuf   = gdk_pixbuf_new_from_file_at_size (file_name,
108
 
                                                                                                                        size,
109
 
                                                                                                                        size,
110
 
                                                                                                                        NULL);
111
 
                if (pixbuf == NULL) return NULL;
112
 
 
113
 
                GtkWidget *icon = gtk_image_new_from_pixbuf (pixbuf);
114
 
                g_object_unref (pixbuf);
115
 
                return icon;
 
105
    if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
106
 
 
107
    GdkPixbuf *pixbuf   = gdk_pixbuf_new_from_file_at_size (file_name,
 
108
                                                            size,
 
109
                                                            size,
 
110
                                                            NULL);
 
111
        if (pixbuf == NULL) return NULL;
 
112
 
 
113
        GtkWidget *icon = gtk_image_new_from_pixbuf (pixbuf);
 
114
        g_object_unref (pixbuf);
 
115
        return icon;
116
116
}
117
117
/******************************************************************************/
118
118
GSList *
119
119
g_slist_swap_data (GSList *list, guint index) {
120
 
        if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
121
 
 
122
 
        gpointer tmp   = NULL;
123
 
        GSList *first  = g_slist_nth (list, index);
124
 
        GSList *second = first->next;
125
 
 
126
 
        tmp = first->data;
127
 
        first->data  = second->data;
128
 
        second->data = tmp;
129
 
        return list;
 
120
    if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
 
121
 
 
122
    gpointer tmp   = NULL;
 
123
    GSList *first  = g_slist_nth (list, index);
 
124
    GSList *second = first->next;
 
125
 
 
126
    tmp = first->data;
 
127
    first->data  = second->data;
 
128
    second->data = tmp;
 
129
    return list;
130
130
}
131
131
/******************************************************************************/
132
132
gchar*
133
133
utils_escape_str (const gchar *str, const gchar *old_token, const gchar *new_token) {
134
 
        gchar **tokens = g_strsplit (str, old_token, 0);
135
 
        gchar *escaped_str = g_strjoinv (new_token, tokens);
136
 
        g_strfreev (tokens);
137
 
        return escaped_str;
 
134
    gchar **tokens = g_strsplit (str, old_token, 0);
 
135
    gchar *escaped_str = g_strjoinv (new_token, tokens);
 
136
    g_strfreev (tokens);
 
137
    return escaped_str;
138
138
}
139
139
/******************************************************************************/
140
140
gchar**
141
141
g_strv_new (guint size) {
142
 
        gchar **strv = g_new0 (gchar*, size + 1);
143
 
        strv[size] = NULL;
144
 
        return strv;
 
142
    gchar **strv = g_new0 (gchar*, size + 1);
 
143
    strv[size] = NULL;
 
144
    return strv;
145
145
}
146
146
/******************************************************************************/