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

« back to all changes in this revision

Viewing changes to src/gnome-cmd-prepare-move-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-prepare-move-dialog.h"
22
23
#include "gnome-cmd-prepare-xfer-dialog.h"
 
24
#include "gnome-cmd-data.h"
23
25
#include "gnome-cmd-dir.h"
24
26
#include "gnome-cmd-xfer.h"
25
27
#include "gnome-cmd-con.h"
32
34
 
33
35
typedef struct
34
36
{
35
 
        GnomeCmdPrepareXferDialog *dialog;
36
 
        GtkWidget *silent;
37
 
        GtkWidget *query;
38
 
        GtkWidget *skip;
39
 
        
 
37
    GnomeCmdPrepareXferDialog *dialog;
 
38
    GtkWidget *silent;
 
39
    GtkWidget *query;
 
40
    GtkWidget *skip;
 
41
 
40
42
} PrepareMoveData;
41
43
 
42
44
 
43
45
static void
44
46
on_ok (GtkButton *button, gpointer user_data)
45
47
{
46
 
        PrepareMoveData *data = (PrepareMoveData*)user_data;
47
 
        GnomeCmdPrepareXferDialog *dlg = data->dialog;
48
 
 
49
 
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->silent)))
50
 
                dlg->xferOverwriteMode = GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE;
51
 
        else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->query)))
52
 
                dlg->xferOverwriteMode = GNOME_VFS_XFER_OVERWRITE_MODE_QUERY;
53
 
        else
54
 
                dlg->xferOverwriteMode = GNOME_VFS_XFER_OVERWRITE_MODE_SKIP;
55
 
 
56
 
        dlg->xferOptions = GNOME_VFS_XFER_REMOVESOURCE;
 
48
    PrepareMoveData *data = (PrepareMoveData*)user_data;
 
49
    GnomeCmdPrepareXferDialog *dlg = data->dialog;
 
50
 
 
51
    if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->silent)))
 
52
        dlg->xferOverwriteMode = GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE;
 
53
    else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->query)))
 
54
        dlg->xferOverwriteMode = GNOME_VFS_XFER_OVERWRITE_MODE_QUERY;
 
55
    else
 
56
        dlg->xferOverwriteMode = GNOME_VFS_XFER_OVERWRITE_MODE_SKIP;
 
57
 
 
58
    dlg->xferOptions = GNOME_VFS_XFER_REMOVESOURCE;
57
59
}
58
60
 
59
61
 
60
62
void
61
63
gnome_cmd_prepare_move_dialog_show (GnomeCmdFileSelector *from,
62
 
                                                                        GnomeCmdFileSelector *to)
 
64
                                    GnomeCmdFileSelector *to)
63
65
{
64
 
        GSList *group = NULL;
65
 
        PrepareMoveData *data = g_new (PrepareMoveData, 1);
66
 
        GnomeCmdFile *finfo;
67
 
        gint num_files;
68
 
        gchar *dest_dir_frame_msg, *text;
69
 
        GList *tmp;
70
 
        GtkWidget *label;
71
 
        
72
 
        tmp = gnome_cmd_file_list_get_selected_files (from->list);
73
 
        if (!tmp) {
74
 
                g_list_free (tmp);
75
 
                return;
76
 
        }
77
 
        
78
 
        data->dialog = GNOME_CMD_PREPARE_XFER_DIALOG (gnome_cmd_prepare_xfer_dialog_new (
79
 
                from, to));
80
 
        gtk_window_set_title (GTK_WINDOW (data->dialog), _("Move"));
81
 
        gtk_widget_ref (GTK_WIDGET (data->dialog));
82
 
        
83
 
 
84
 
        /*
85
 
         * Create prepare copy specific widgets
86
 
         */
87
 
        data->silent = gtk_radio_button_new_with_label (group, _("Silently"));
88
 
        group = gtk_radio_button_group (GTK_RADIO_BUTTON (data->silent));
89
 
        gtk_widget_ref (data->silent);
90
 
        gtk_object_set_data_full (GTK_OBJECT (data->dialog), "silent", data->silent,
91
 
                                                          (GtkDestroyNotify) gtk_widget_unref);
92
 
        gtk_widget_show (data->silent);
93
 
        gtk_box_pack_start (GTK_BOX (data->dialog->left_vbox), data->silent, FALSE, FALSE, 0);
94
 
 
95
 
        
96
 
        data->query = gtk_radio_button_new_with_label (group, _("Query First"));
97
 
        group = gtk_radio_button_group (GTK_RADIO_BUTTON (data->query));
98
 
        gtk_widget_ref (data->query);
99
 
        gtk_object_set_data_full (GTK_OBJECT (data->dialog), "query", data->query,
100
 
                                                          (GtkDestroyNotify) gtk_widget_unref);
101
 
        gtk_widget_show (data->query);
102
 
        gtk_box_pack_start (GTK_BOX (data->dialog->left_vbox), data->query, FALSE, FALSE, 0);
103
 
 
104
 
        
105
 
        data->skip = gtk_radio_button_new_with_label (group, _("Skip All"));
106
 
        group = gtk_radio_button_group (GTK_RADIO_BUTTON (data->skip));
107
 
        gtk_widget_ref (data->skip);
108
 
        gtk_object_set_data_full (GTK_OBJECT (data->dialog), "skip", data->skip,
109
 
                                                          (GtkDestroyNotify) gtk_widget_unref);
110
 
        gtk_widget_show (data->skip);
111
 
        gtk_box_pack_start (GTK_BOX (data->dialog->left_vbox), data->skip, FALSE, FALSE, 0);
112
 
 
113
 
        
114
 
        // Set query as default, this options should really be saved as a config options
115
 
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->query), TRUE);
116
 
 
117
 
        /*
118
 
         * Customize prepare xfer widgets 
119
 
         */
120
 
        text = get_bold_text (_("Overwrite Files"));
121
 
        label = gtk_object_get_data (GTK_OBJECT (data->dialog->left_vbox_frame), "label");
122
 
        gtk_label_set_markup (GTK_LABEL (label), text);
123
 
        g_free (text);
124
 
        
125
 
        text = get_bold_text (_("Options"));
126
 
        label = gtk_object_get_data (GTK_OBJECT (data->dialog->right_vbox_frame), "label");
127
 
        gtk_label_set_markup (GTK_LABEL (label), text);
128
 
        g_free (text);
129
 
 
130
 
        num_files = g_list_length (data->dialog->src_files);
131
 
        finfo = (GnomeCmdFile*)data->dialog->src_files->data;
132
 
        
133
 
        if (num_files == 1) {
134
 
                gchar *fname = get_utf8 (finfo->info->name);
135
 
                dest_dir_frame_msg = g_strdup_printf (_("Move \"%s\" to"), fname);
136
 
                g_free (fname);
137
 
        }
138
 
        else
139
 
                dest_dir_frame_msg = g_strdup_printf (ngettext("move %d file to","move %d files to",num_files), num_files);
140
 
        
141
 
        text = get_bold_text (dest_dir_frame_msg);
142
 
        label = gtk_object_get_data (GTK_OBJECT (data->dialog->dest_dir_frame), "label");
143
 
        gtk_label_set_markup (GTK_LABEL (label), text);
144
 
        g_free (text);
145
 
 
146
 
        g_free  (dest_dir_frame_msg);
147
 
 
148
 
 
149
 
        
150
 
        /*
151
 
         * Connect signals
152
 
         */
153
 
        gtk_signal_connect (GTK_OBJECT (data->dialog->ok_button), "clicked", GTK_SIGNAL_FUNC (on_ok), data);
154
 
 
155
 
        
156
 
        /*
157
 
         * Show the dialog
158
 
         */     
159
 
        gtk_widget_show (GTK_WIDGET (data->dialog));
 
66
    GSList *group = NULL;
 
67
    PrepareMoveData *data = g_new (PrepareMoveData, 1);
 
68
    GnomeCmdFile *finfo;
 
69
    gint num_files;
 
70
    gchar *dest_dir_frame_msg, *text;
 
71
    GtkWidget *label;
 
72
    GList *tmp = gnome_cmd_file_list_get_selected_files (from->list);
 
73
 
 
74
    if (!tmp) {
 
75
        g_list_free (tmp);
 
76
        return;
 
77
    }
 
78
 
 
79
    data->dialog = GNOME_CMD_PREPARE_XFER_DIALOG (gnome_cmd_prepare_xfer_dialog_new (from, to));
 
80
    gtk_window_set_title (GTK_WINDOW (data->dialog), _("Move"));
 
81
    gtk_widget_ref (GTK_WIDGET (data->dialog));
 
82
 
 
83
 
 
84
    /*
 
85
     * Create prepare copy specific widgets
 
86
     */
 
87
    data->silent = gtk_radio_button_new_with_label (group, _("Silently"));
 
88
    group = gtk_radio_button_group (GTK_RADIO_BUTTON (data->silent));
 
89
    gtk_widget_ref (data->silent);
 
90
    gtk_object_set_data_full (GTK_OBJECT (data->dialog), "silent", data->silent, (GtkDestroyNotify) gtk_widget_unref);
 
91
    gtk_widget_show (data->silent);
 
92
    gtk_box_pack_start (GTK_BOX (data->dialog->left_vbox), data->silent, FALSE, FALSE, 0);
 
93
 
 
94
    data->query = gtk_radio_button_new_with_label (group, _("Query First"));
 
95
    group = gtk_radio_button_group (GTK_RADIO_BUTTON (data->query));
 
96
    gtk_widget_ref (data->query);
 
97
    gtk_object_set_data_full (GTK_OBJECT (data->dialog), "query", data->query, (GtkDestroyNotify) gtk_widget_unref);
 
98
    gtk_widget_show (data->query);
 
99
    gtk_box_pack_start (GTK_BOX (data->dialog->left_vbox), data->query, FALSE, FALSE, 0);
 
100
 
 
101
    data->skip = gtk_radio_button_new_with_label (group, _("Skip All"));
 
102
    group = gtk_radio_button_group (GTK_RADIO_BUTTON (data->skip));
 
103
    gtk_widget_ref (data->skip);
 
104
    gtk_object_set_data_full (GTK_OBJECT (data->dialog), "skip", data->skip, (GtkDestroyNotify) gtk_widget_unref);
 
105
    gtk_widget_show (data->skip);
 
106
    gtk_box_pack_start (GTK_BOX (data->dialog->left_vbox), data->skip, FALSE, FALSE, 0);
 
107
 
 
108
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (g_slist_nth_data (group, gnome_cmd_data_get_confirm_overwrite_move ())), TRUE);
 
109
 
 
110
    /*
 
111
     * Customize prepare xfer widgets
 
112
     */
 
113
    text = get_bold_text (_("Overwrite Files"));
 
114
    label = gtk_object_get_data (GTK_OBJECT (data->dialog->left_vbox_frame), "label");
 
115
    gtk_label_set_markup (GTK_LABEL (label), text);
 
116
    g_free (text);
 
117
 
 
118
    text = get_bold_text (_("Options"));
 
119
    label = gtk_object_get_data (GTK_OBJECT (data->dialog->right_vbox_frame), "label");
 
120
    gtk_label_set_markup (GTK_LABEL (label), text);
 
121
    g_free (text);
 
122
 
 
123
    num_files = g_list_length (data->dialog->src_files);
 
124
    finfo = (GnomeCmdFile*)data->dialog->src_files->data;
 
125
 
 
126
    if (num_files == 1) {
 
127
        gchar *fname = get_utf8 (finfo->info->name);
 
128
        dest_dir_frame_msg = g_strdup_printf (_("Move \"%s\" to"), fname);
 
129
        g_free (fname);
 
130
    }
 
131
    else
 
132
        dest_dir_frame_msg = g_strdup_printf (ngettext("move %d file to","move %d files to",num_files), num_files);
 
133
 
 
134
    text = get_bold_text (dest_dir_frame_msg);
 
135
    label = gtk_object_get_data (GTK_OBJECT (data->dialog->dest_dir_frame), "label");
 
136
    gtk_label_set_markup (GTK_LABEL (label), text);
 
137
    g_free (text);
 
138
 
 
139
    g_free  (dest_dir_frame_msg);
 
140
 
 
141
 
 
142
 
 
143
    /*
 
144
     * Connect signals
 
145
     */
 
146
    gtk_signal_connect (GTK_OBJECT (data->dialog->ok_button), "clicked", GTK_SIGNAL_FUNC (on_ok), data);
 
147
 
 
148
 
 
149
    /*
 
150
     * Show the dialog
 
151
     */
 
152
    gtk_widget_show (GTK_WIDGET (data->dialog));
160
153
}