Commit 5fd9cfa25e907f025712f22db2702779d9410e86
1 parent
ade002ba
Exists in
master
and in
1 other branch
Fixing windows save dialog.
Showing
3 changed files
with
60 additions
and
22 deletions
Show diff stats
src/dialogs/save/save.c
| ... | ... | @@ -100,7 +100,44 @@ |
| 100 | 100 | gtk_dialog_response(dialog,GTK_RESPONSE_APPLY); |
| 101 | 101 | } |
| 102 | 102 | |
| 103 | - static void icon_press(G_GNUC_UNUSED GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconPosition icon_pos, G_GNUC_UNUSED GdkEvent *event, V3270SaveDialog *widget) { | |
| 103 | +#ifdef WIN32 | |
| 104 | +static void icon_press(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconPosition icon_pos, G_GNUC_UNUSED GdkEvent *event, V3270SaveDialog *widget) | |
| 105 | +{ | |
| 106 | + /* | |
| 107 | + | |
| 108 | + GtkFileChooserNative * dialog = | |
| 109 | + gtk_file_chooser_native_new( | |
| 110 | + _( "Select destination file"), | |
| 111 | + GTK_WINDOW(widget), | |
| 112 | + GTK_FILE_CHOOSER_ACTION_SAVE, | |
| 113 | + _("Select"), | |
| 114 | + _("Cancel") | |
| 115 | + ); | |
| 116 | + | |
| 117 | + gint rc = gtk_native_dialog_run (GTK_NATIVE_DIALOG(dialog)); | |
| 118 | + | |
| 119 | + debug("rc=%d",rc); | |
| 120 | + */ | |
| 121 | + | |
| 122 | + g_autofree gchar *filename = | |
| 123 | + v3270_select_file( | |
| 124 | + GTK_WIDGET(widget), | |
| 125 | + _( "Select destination file"), | |
| 126 | + _("Select"), | |
| 127 | + GTK_FILE_CHOOSER_ACTION_SAVE, | |
| 128 | + gtk_entry_get_text(GTK_ENTRY(widget->filename)), | |
| 129 | + N_("All files"), "*.*", | |
| 130 | + NULL | |
| 131 | + ); | |
| 132 | + | |
| 133 | + if(filename && *filename) { | |
| 134 | + gtk_entry_set_text(GTK_ENTRY(widget->filename),filename); | |
| 135 | + } | |
| 136 | + | |
| 137 | +} | |
| 138 | +#else | |
| 139 | +static void icon_press(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconPosition icon_pos, G_GNUC_UNUSED GdkEvent *event, V3270SaveDialog *widget) | |
| 140 | +{ | |
| 104 | 141 | |
| 105 | 142 | //gint format = gtk_combo_box_get_active(GTK_COMBO_BOX(widget->format)); |
| 106 | 143 | //g_autofree gchar * extension = g_strconcat("*",formats[format].extension,NULL); |
| ... | ... | @@ -118,19 +155,20 @@ |
| 118 | 155 | gtk_window_set_deletable(GTK_WINDOW(dialog),FALSE); |
| 119 | 156 | g_signal_connect(G_OBJECT(dialog),"close",G_CALLBACK(v3270_dialog_close),NULL); |
| 120 | 157 | |
| 121 | - const gchar *filename = gtk_entry_get_text(GTK_ENTRY(widget->filename)); | |
| 158 | + const gchar *filename = gtk_entry_get_text(GTK_ENTRY(dialog->filename)); | |
| 122 | 159 | |
| 123 | 160 | if(filename && *filename) |
| 124 | 161 | gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog),filename); |
| 125 | 162 | else |
| 126 | - gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog),g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS)); | |
| 163 | + gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), _("Untitled document")); | |
| 127 | 164 | |
| 128 | 165 | if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) |
| 129 | - gtk_entry_set_text(GTK_ENTRY(widget->filename),gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog))); | |
| 166 | + gtk_entry_set_text(GTK_ENTRY(dialog->filename),gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog))); | |
| 130 | 167 | |
| 131 | 168 | gtk_widget_destroy(dialog); |
| 132 | 169 | |
| 133 | 170 | } |
| 171 | +#endif // _WIN32 | |
| 134 | 172 | |
| 135 | 173 | static void V3270SaveDialog_init(V3270SaveDialog *dialog) |
| 136 | 174 | { |
| ... | ... | @@ -168,18 +206,16 @@ |
| 168 | 206 | gtk_grid_attach(grid,widget,0,0,1,1); |
| 169 | 207 | gtk_label_set_mnemonic_widget(GTK_LABEL(widget),dialog->filename); |
| 170 | 208 | |
| 171 | -/* | |
| 172 | -#ifdef WIN32 | |
| 173 | - widget = gtk_button_new_from_icon_name("document-open",GTK_ICON_SIZE_BUTTON); | |
| 174 | - g_signal_connect(G_OBJECT(widget),"clicked",G_CALLBACK(select_local_file),dialog); | |
| 175 | - gtk_grid_attach(grid,widget,4,0,1,1); | |
| 176 | -#else | |
| 177 | -*/ | |
| 209 | +//#ifdef WIN32 | |
| 210 | +// widget = gtk_button_new_from_icon_name("document-open",GTK_ICON_SIZE_BUTTON); | |
| 211 | +// g_signal_connect(G_OBJECT(widget),"clicked",G_CALLBACK(select_file),dialog); | |
| 212 | +// gtk_grid_attach(grid,widget,4,0,1,1); | |
| 213 | +//#else | |
| 178 | 214 | gtk_entry_set_icon_from_icon_name(GTK_ENTRY(dialog->filename),GTK_ENTRY_ICON_SECONDARY,"document-open"); |
| 179 | 215 | gtk_entry_set_icon_activatable(GTK_ENTRY(dialog->filename),GTK_ENTRY_ICON_SECONDARY,TRUE); |
| 180 | 216 | gtk_entry_set_icon_tooltip_text(GTK_ENTRY(dialog->filename),GTK_ENTRY_ICON_SECONDARY,_("Select file")); |
| 181 | 217 | g_signal_connect(G_OBJECT(dialog->filename),"icon-press",G_CALLBACK(icon_press),dialog); |
| 182 | -// #endif // WIN32 | |
| 218 | +//#endif // WIN32 | |
| 183 | 219 | |
| 184 | 220 | gtk_entry_set_width_chars(GTK_ENTRY(dialog->filename),60); |
| 185 | 221 | gtk_entry_set_max_length(GTK_ENTRY(dialog->filename),PATH_MAX); | ... | ... |
src/dialogs/windows/select.c
| ... | ... | @@ -165,6 +165,8 @@ gchar * v3270_select_file(GtkWidget *widget, const gchar *title, const gchar *bu |
| 165 | 165 | |
| 166 | 166 | if(filename && *filename) |
| 167 | 167 | gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(chooser),filename); |
| 168 | + else | |
| 169 | + gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(chooser), _("Untitled document")); | |
| 168 | 170 | |
| 169 | 171 | // Setup filters |
| 170 | 172 | /* | ... | ... |
src/filetransfer/v3270ft.c
| ... | ... | @@ -293,11 +293,11 @@ static gboolean spin_format(GtkSpinButton *spin, G_GNUC_UNUSED gpointer data) { |
| 293 | 293 | return TRUE; |
| 294 | 294 | } |
| 295 | 295 | |
| 296 | -#ifdef WIN32 | |
| 297 | -static void select_local_file(GtkButton G_GNUC_UNUSED(*button), v3270ft *dialog) { | |
| 298 | -#else | |
| 296 | +//#ifdef WIN32 | |
| 297 | +//static void select_local_file(GtkButton G_GNUC_UNUSED(*button), v3270ft *dialog) { | |
| 298 | +//#else | |
| 299 | 299 | static void icon_press(G_GNUC_UNUSED GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconPosition icon_pos, G_GNUC_UNUSED GdkEvent *event, v3270ft *dialog) { |
| 300 | -#endif // WIN32 | |
| 300 | +//#endif // WIN32 | |
| 301 | 301 | |
| 302 | 302 | debug("%s",__FUNCTION__); |
| 303 | 303 | |
| ... | ... | @@ -567,16 +567,16 @@ static void v3270ft_init(v3270ft *dialog) { |
| 567 | 567 | |
| 568 | 568 | gtk_widget_set_hexpand(GTK_WIDGET(dialog->local),TRUE); |
| 569 | 569 | |
| 570 | -#ifdef WIN32 | |
| 571 | - widget = gtk_button_new_from_icon_name("document-open",GTK_ICON_SIZE_BUTTON); | |
| 572 | - g_signal_connect(G_OBJECT(widget),"clicked",G_CALLBACK(select_local_file),dialog); | |
| 573 | - gtk_grid_attach(grid,widget,2,1,1,1); | |
| 574 | -#else | |
| 570 | +//#ifdef WIN32 | |
| 571 | +// widget = gtk_button_new_from_icon_name("document-open",GTK_ICON_SIZE_BUTTON); | |
| 572 | +// g_signal_connect(G_OBJECT(widget),"clicked",G_CALLBACK(select_local_file),dialog); | |
| 573 | +// gtk_grid_attach(grid,widget,2,1,1,1); | |
| 574 | +//#else | |
| 575 | 575 | gtk_entry_set_icon_from_icon_name(dialog->local,GTK_ENTRY_ICON_SECONDARY,"document-open"); |
| 576 | 576 | gtk_entry_set_icon_activatable(dialog->local,GTK_ENTRY_ICON_SECONDARY,TRUE); |
| 577 | 577 | gtk_entry_set_icon_tooltip_text(dialog->local,GTK_ENTRY_ICON_SECONDARY,_("Select file")); |
| 578 | 578 | g_signal_connect(G_OBJECT(dialog->local),"icon-press",G_CALLBACK(icon_press),dialog); |
| 579 | -#endif // WIN32 | |
| 579 | +//#endif // WIN32 | |
| 580 | 580 | |
| 581 | 581 | g_signal_connect(G_OBJECT(dialog->local),"changed",G_CALLBACK(local_file_changed),dialog); |
| 582 | 582 | ... | ... |