~ubuntu-branches/ubuntu/hardy/gnome-commander/hardy

« back to all changes in this revision

Viewing changes to src/gnome-cmd-make-copy-dialog.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Vogt
  • Date: 2006-06-13 15:39:48 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20060613153948-gvrt3mb2ddk5u62o
Tags: 1.2.0-3
added --disable-scrollkeeper on build

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
    GNOME Commander - A GNOME based file manager 
 
2
    GNOME Commander - A GNOME based file manager
3
3
    Copyright (C) 2001-2006 Marcus Bjurman
4
4
 
5
5
    This program is free software; you can redistribute it and/or modify
15
15
    You should have received a copy of the GNU General Public License
16
16
    along with this program; if not, write to the Free Software
17
17
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
 
*/ 
 
18
*/
 
19
 
19
20
#include <config.h>
20
21
#include "gnome-cmd-includes.h"
21
22
#include "gnome-cmd-make-copy-dialog.h"
25
26
 
26
27
struct _GnomeCmdMakeCopyDialogPrivate
27
28
{
28
 
        GnomeCmdFile *finfo;
29
 
        GnomeCmdDir *dir;
30
 
        GnomeCmdMainWin *mw;
 
29
    GnomeCmdFile *finfo;
 
30
    GnomeCmdDir *dir;
 
31
    GnomeCmdMainWin *mw;
31
32
};
32
33
 
33
34
 
37
38
static void
38
39
copy_file (GnomeCmdFile *finfo, GnomeCmdDir *dir, const gchar *filename)
39
40
{
40
 
        GList *src_files;
41
 
 
42
 
        src_files = g_list_append (NULL, finfo);
43
 
        
44
 
        gnome_cmd_xfer_start (src_files,
45
 
                                                  dir,
46
 
                                                  NULL,
47
 
                                                  g_strdup (filename),
48
 
                                                  GNOME_VFS_XFER_RECURSIVE,
49
 
                                                  GNOME_VFS_XFER_OVERWRITE_MODE_QUERY,
50
 
                                                  NULL,
51
 
                                                  NULL);
 
41
    GList *src_files;
 
42
 
 
43
    src_files = g_list_append (NULL, finfo);
 
44
 
 
45
    gnome_cmd_xfer_start (src_files,
 
46
                          dir,
 
47
                          NULL,
 
48
                          g_strdup (filename),
 
49
                          GNOME_VFS_XFER_RECURSIVE,
 
50
                          GNOME_VFS_XFER_OVERWRITE_MODE_QUERY,
 
51
                          NULL,
 
52
                          NULL);
52
53
}
53
54
 
54
55
 
55
56
static gboolean
56
57
on_ok (GnomeCmdStringDialog *string_dialog,
57
 
           const gchar **values,
58
 
           GnomeCmdMakeCopyDialog *dialog)
 
58
       const gchar **values,
 
59
       GnomeCmdMakeCopyDialog *dialog)
59
60
{
60
 
        const gchar *filename = values[0];
61
 
        
62
 
        g_return_val_if_fail (dialog, TRUE);
63
 
        g_return_val_if_fail (dialog->priv, TRUE);
64
 
        g_return_val_if_fail (dialog->priv->finfo, TRUE);
65
 
        
66
 
        if (!filename) {
67
 
                gnome_cmd_string_dialog_set_error_desc (
68
 
                        string_dialog, g_strdup (_("No filename entered")));
69
 
                return FALSE;
70
 
        }
71
 
 
72
 
        copy_file (dialog->priv->finfo, dialog->priv->dir, filename);
73
 
        
74
 
        return TRUE;
 
61
    const gchar *filename = values[0];
 
62
 
 
63
    g_return_val_if_fail (dialog, TRUE);
 
64
    g_return_val_if_fail (dialog->priv, TRUE);
 
65
    g_return_val_if_fail (dialog->priv->finfo, TRUE);
 
66
 
 
67
    if (!filename) {
 
68
        gnome_cmd_string_dialog_set_error_desc (string_dialog, g_strdup (_("No filename entered")));
 
69
        return FALSE;
 
70
    }
 
71
 
 
72
    copy_file (dialog->priv->finfo, dialog->priv->dir, filename);
 
73
 
 
74
    return TRUE;
75
75
}
76
76
 
77
77
 
78
78
static void
79
79
on_cancel (GtkWidget *widget, GnomeCmdMakeCopyDialog *dialog)
80
80
{
81
 
        gnome_cmd_file_unref (dialog->priv->finfo);
 
81
    gnome_cmd_file_unref (dialog->priv->finfo);
82
82
}
83
83
 
84
84
 
89
89
static void
90
90
destroy (GtkObject *object)
91
91
{
92
 
        GnomeCmdMakeCopyDialog *dialog = GNOME_CMD_MAKE_COPY_DIALOG (object);
93
 
 
94
 
        g_free (dialog->priv);
95
 
        
96
 
        if (GTK_OBJECT_CLASS (parent_class)->destroy)
97
 
                (*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
 
92
    GnomeCmdMakeCopyDialog *dialog = GNOME_CMD_MAKE_COPY_DIALOG (object);
 
93
 
 
94
    g_free (dialog->priv);
 
95
 
 
96
    if (GTK_OBJECT_CLASS (parent_class)->destroy)
 
97
        (*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
98
98
}
99
99
 
100
100
 
101
101
static void
102
102
map (GtkWidget *widget)
103
103
{
104
 
        if (GTK_WIDGET_CLASS (parent_class)->map != NULL)
105
 
                GTK_WIDGET_CLASS (parent_class)->map (widget);
 
104
    if (GTK_WIDGET_CLASS (parent_class)->map != NULL)
 
105
        GTK_WIDGET_CLASS (parent_class)->map (widget);
106
106
}
107
107
 
108
108
 
109
109
static void
110
110
class_init (GnomeCmdMakeCopyDialogClass *class)
111
111
{
112
 
        GtkObjectClass *object_class;
113
 
        GtkWidgetClass *widget_class;
114
 
 
115
 
        object_class = GTK_OBJECT_CLASS (class);
116
 
        widget_class = GTK_WIDGET_CLASS (class);
117
 
 
118
 
        parent_class = gtk_type_class (gnome_cmd_string_dialog_get_type ());
119
 
        object_class->destroy = destroy;
120
 
        widget_class->map = map;
 
112
    GtkObjectClass *object_class = GTK_OBJECT_CLASS (class);
 
113
    GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
 
114
 
 
115
    parent_class = gtk_type_class (gnome_cmd_string_dialog_get_type ());
 
116
    object_class->destroy = destroy;
 
117
    widget_class->map = map;
121
118
}
122
119
 
123
120
 
124
121
static void
125
122
init (GnomeCmdMakeCopyDialog *dialog)
126
123
{
127
 
        dialog->priv = g_new (GnomeCmdMakeCopyDialogPrivate, 1);
 
124
    dialog->priv = g_new (GnomeCmdMakeCopyDialogPrivate, 1);
128
125
}
129
126
 
130
127
 
131
 
 
132
 
 
133
128
/***********************************
134
129
 * Public functions
135
130
 ***********************************/
137
132
GtkWidget*
138
133
gnome_cmd_make_copy_dialog_new (GnomeCmdFile *finfo, GnomeCmdDir *dir)
139
134
{
140
 
        const gchar *labels[] = {""};
141
 
        gchar *msg;
142
 
        GtkWidget *msg_label;
143
 
        GnomeCmdMakeCopyDialog *dialog;
144
 
 
145
 
        g_return_val_if_fail (finfo != NULL, NULL);
146
 
        
147
 
        dialog = gtk_type_new (gnome_cmd_make_copy_dialog_get_type ());
148
 
 
149
 
        dialog->priv->finfo = finfo;
150
 
        dialog->priv->dir = dir;
151
 
        gnome_cmd_file_ref (finfo);
152
 
        gnome_cmd_file_ref (GNOME_CMD_FILE (dir));
153
 
 
154
 
        msg = g_strdup_printf (_("Copy \"%s\" to"), gnome_cmd_file_get_name (finfo));
155
 
        msg_label = create_label (GTK_WIDGET (dialog), msg);
156
 
        g_free (msg);
157
 
        
158
 
        gnome_cmd_dialog_add_category (GNOME_CMD_DIALOG (dialog), msg_label);
159
 
 
160
 
        gnome_cmd_string_dialog_setup_with_cancel (
161
 
                GNOME_CMD_STRING_DIALOG (dialog),
162
 
                _("Copy File"),
163
 
                labels,
164
 
                1,
165
 
                (GnomeCmdStringDialogCallback)on_ok,
166
 
                GTK_SIGNAL_FUNC (on_cancel),
167
 
                dialog);
168
 
 
169
 
        gnome_cmd_string_dialog_set_value (
170
 
                GNOME_CMD_STRING_DIALOG (dialog), 0, finfo->info->name);
171
 
        
172
 
        return GTK_WIDGET (dialog);
 
135
    const gchar *labels[] = {""};
 
136
    gchar *msg;
 
137
    GtkWidget *msg_label;
 
138
    GnomeCmdMakeCopyDialog *dialog;
 
139
 
 
140
    g_return_val_if_fail (finfo != NULL, NULL);
 
141
 
 
142
    dialog = gtk_type_new (gnome_cmd_make_copy_dialog_get_type ());
 
143
 
 
144
    dialog->priv->finfo = finfo;
 
145
    dialog->priv->dir = dir;
 
146
    gnome_cmd_file_ref (finfo);
 
147
    gnome_cmd_file_ref (GNOME_CMD_FILE (dir));
 
148
 
 
149
    msg = g_strdup_printf (_("Copy \"%s\" to"), gnome_cmd_file_get_name (finfo));
 
150
    msg_label = create_label (GTK_WIDGET (dialog), msg);
 
151
    g_free (msg);
 
152
 
 
153
    gnome_cmd_dialog_add_category (GNOME_CMD_DIALOG (dialog), msg_label);
 
154
 
 
155
    gnome_cmd_string_dialog_setup_with_cancel (
 
156
        GNOME_CMD_STRING_DIALOG (dialog),
 
157
        _("Copy File"),
 
158
        labels,
 
159
        1,
 
160
        (GnomeCmdStringDialogCallback)on_ok,
 
161
        GTK_SIGNAL_FUNC (on_cancel),
 
162
        dialog);
 
163
 
 
164
    gnome_cmd_string_dialog_set_value (GNOME_CMD_STRING_DIALOG (dialog), 0, finfo->info->name);
 
165
 
 
166
    return GTK_WIDGET (dialog);
173
167
}
174
168
 
175
169
 
176
 
 
177
170
GtkType
178
171
gnome_cmd_make_copy_dialog_get_type         (void)
179
172
{
180
 
        static GtkType dlg_type = 0;
181
 
 
182
 
        if (dlg_type == 0)
183
 
        {
184
 
                GtkTypeInfo dlg_info =
185
 
                {
186
 
                        "GnomeCmdMakeCopyDialog",
187
 
                        sizeof (GnomeCmdMakeCopyDialog),
188
 
                        sizeof (GnomeCmdMakeCopyDialogClass),
189
 
                        (GtkClassInitFunc) class_init,
190
 
                        (GtkObjectInitFunc) init,
191
 
                        /* reserved_1 */ NULL,
192
 
                        /* reserved_2 */ NULL,
193
 
                        (GtkClassInitFunc) NULL
194
 
                };
195
 
 
196
 
                dlg_type = gtk_type_unique (gnome_cmd_string_dialog_get_type (), &dlg_info);
197
 
        }
198
 
        return dlg_type;
 
173
    static GtkType dlg_type = 0;
 
174
 
 
175
    if (dlg_type == 0)
 
176
    {
 
177
        GtkTypeInfo dlg_info =
 
178
        {
 
179
            "GnomeCmdMakeCopyDialog",
 
180
            sizeof (GnomeCmdMakeCopyDialog),
 
181
            sizeof (GnomeCmdMakeCopyDialogClass),
 
182
            (GtkClassInitFunc) class_init,
 
183
            (GtkObjectInitFunc) init,
 
184
            /* reserved_1 */ NULL,
 
185
            /* reserved_2 */ NULL,
 
186
            (GtkClassInitFunc) NULL
 
187
        };
 
188
 
 
189
        dlg_type = gtk_type_unique (gnome_cmd_string_dialog_get_type (), &dlg_info);
 
190
    }
 
191
    return dlg_type;
199
192
}
200
 
 
201
 
 
202