Commit cbc69e8d47bed7f27e3197f34628ebee4728ade6
1 parent
43023aba
Exists in
master
and in
5 other branches
Melhorando dialogos de transferencia de arquivos
Showing
1 changed file
with
53 additions
and
8 deletions
Show diff stats
src/pw3270/filetransfer.c
@@ -176,19 +176,68 @@ static void check_entry(GtkEditable *editable, struct ftdialog *dlg) | @@ -176,19 +176,68 @@ static void check_entry(GtkEditable *editable, struct ftdialog *dlg) | ||
176 | { | 176 | { |
177 | gtk_widget_set_sensitive(dlg->ready,is_dialog_ok(editable,dlg)); | 177 | gtk_widget_set_sensitive(dlg->ready,is_dialog_ok(editable,dlg)); |
178 | } | 178 | } |
179 | + | ||
180 | +static GtkWidget * add_filename_entry(GObject *action, int ix, int row, struct ftdialog *dlg, GtkTable *table) | ||
181 | +{ | ||
182 | + static const gchar * label_text[] = { N_( "_Local file name:" ), N_( "_Host file name:" ) }; | ||
183 | + static const gchar * attr[] = { "local", "remote" }; | ||
184 | + | ||
185 | + GtkWidget * entry = gtk_entry_new(); | ||
186 | + GtkWidget * label = gtk_label_new_with_mnemonic(gettext(label_text[ix])); | ||
187 | + gchar * val; | ||
188 | + | ||
189 | + gtk_misc_set_alignment(GTK_MISC(label),0,.5); | ||
190 | + gtk_table_attach(GTK_TABLE(table),label,0,1,row,row+1,GTK_FILL,GTK_FILL,2,2); | ||
191 | + | ||
192 | + gtk_widget_set_name(entry,attr[ix]); | ||
193 | + | ||
194 | + val = get_attribute(action,dlg,attr[ix]); | ||
195 | + gtk_entry_set_text(dlg->file[ix],val); | ||
196 | + g_free(val); | ||
197 | + | ||
198 | + gtk_entry_set_width_chars(GTK_ENTRY(entry),40); | ||
199 | + | ||
200 | + gtk_label_set_mnemonic_widget(GTK_LABEL(label),entry); | ||
201 | + | ||
202 | + gtk_table_attach(GTK_TABLE(table),entry,1,3,row,row+1,GTK_EXPAND|GTK_SHRINK|GTK_FILL,GTK_EXPAND|GTK_SHRINK|GTK_FILL,2,2); | ||
203 | + | ||
204 | + return entry; | ||
205 | +} | ||
179 | 206 | ||
180 | static void add_file_fields(GObject *action, struct ftdialog *dlg) | 207 | static void add_file_fields(GObject *action, struct ftdialog *dlg) |
181 | { | 208 | { |
182 | - static const gchar * label[] = { N_( "_Local file name:" ), N_( "_Host file name:" ) }; | ||
183 | - static const gchar * attr[] = { "local", "remote" }; | ||
184 | GtkTable * table = GTK_TABLE(gtk_table_new(2,3,FALSE)); | 209 | GtkTable * table = GTK_TABLE(gtk_table_new(2,3,FALSE)); |
185 | GtkWidget * widget; | 210 | GtkWidget * widget; |
186 | int f; | 211 | int f; |
187 | 212 | ||
188 | gtk_container_set_border_width(GTK_CONTAINER(table),2); | 213 | gtk_container_set_border_width(GTK_CONTAINER(table),2); |
214 | + | ||
215 | + if(dlg->option&LIB3270_FT_OPTION_RECEIVE) | ||
216 | + { | ||
217 | + // Receiving file, first the remote filename | ||
218 | + dlg->file[1] = add_filename_entry(action,1,0,dlg,table); | ||
219 | + | ||
220 | + dlg->file[0] = add_filename_entry(action,0,1,dlg,table); | ||
221 | + widget = gtk_button_new_with_mnemonic( _( "_Browse" ) ); | ||
222 | + g_signal_connect(G_OBJECT(widget),"clicked",G_CALLBACK(browse_file),dlg); | ||
223 | + gtk_table_attach(GTK_TABLE(table),widget,3,4,1,2,0,0,2,2); | ||
224 | + } | ||
225 | + else | ||
226 | + { | ||
227 | + // Sending file, first the local filename | ||
228 | + dlg->file[0] = add_filename_entry(action,0,0,dlg,table); | ||
229 | + widget = gtk_button_new_with_mnemonic( _( "_Browse" ) ); | ||
230 | + g_signal_connect(G_OBJECT(widget),"clicked",G_CALLBACK(browse_file),dlg); | ||
231 | + gtk_table_attach(GTK_TABLE(table),widget,3,4,0,1,0,0,2,2); | ||
232 | + | ||
233 | + dlg->file[1] = add_filename_entry(action,1,1,dlg,table); | ||
234 | + } | ||
235 | + | ||
189 | 236 | ||
237 | +/* | ||
190 | for(f=0;f<2;f++) | 238 | for(f=0;f<2;f++) |
191 | - { | 239 | + { |
240 | + | ||
192 | gchar *val; | 241 | gchar *val; |
193 | 242 | ||
194 | widget = gtk_label_new_with_mnemonic(gettext(label[f])); | 243 | widget = gtk_label_new_with_mnemonic(gettext(label[f])); |
@@ -209,12 +258,8 @@ static void add_file_fields(GObject *action, struct ftdialog *dlg) | @@ -209,12 +258,8 @@ static void add_file_fields(GObject *action, struct ftdialog *dlg) | ||
209 | gtk_label_set_mnemonic_widget(GTK_LABEL(widget),GTK_WIDGET(dlg->file[f])); | 258 | gtk_label_set_mnemonic_widget(GTK_LABEL(widget),GTK_WIDGET(dlg->file[f])); |
210 | 259 | ||
211 | gtk_table_attach(GTK_TABLE(table),GTK_WIDGET(dlg->file[f]),1,3,f,f+1,GTK_EXPAND|GTK_SHRINK|GTK_FILL,GTK_EXPAND|GTK_SHRINK|GTK_FILL,2,2); | 260 | gtk_table_attach(GTK_TABLE(table),GTK_WIDGET(dlg->file[f]),1,3,f,f+1,GTK_EXPAND|GTK_SHRINK|GTK_FILL,GTK_EXPAND|GTK_SHRINK|GTK_FILL,2,2); |
212 | - | ||
213 | } | 261 | } |
214 | - | ||
215 | - widget = gtk_button_new_with_mnemonic( _( "_Browse" ) ); | ||
216 | - g_signal_connect(G_OBJECT(widget),"clicked",G_CALLBACK(browse_file),dlg); | ||
217 | - gtk_table_attach(GTK_TABLE(table),widget,3,4,0,1,0,0,2,2); | 262 | +*/ |
218 | 263 | ||
219 | gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dlg->dialog))),GTK_WIDGET(table),FALSE,FALSE,2); | 264 | gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dlg->dialog))),GTK_WIDGET(table),FALSE,FALSE,2); |
220 | 265 |