Commit c6395548a314e640966a7fd0cbca530018f03018
1 parent
9b94498c
Exists in
master
and in
1 other branch
Adjustments on print dialog & callback.
Showing
5 changed files
with
57 additions
and
32 deletions
Show diff stats
src/dialogs/colorscheme.c
@@ -316,6 +316,7 @@ | @@ -316,6 +316,7 @@ | ||
316 | { | 316 | { |
317 | if(!gdk_rgba_equal(colora+f,colorb+f)) | 317 | if(!gdk_rgba_equal(colora+f,colorb+f)) |
318 | { | 318 | { |
319 | +/* | ||
319 | #ifdef DEBUG | 320 | #ifdef DEBUG |
320 | g_autofree gchar * cla = gdk_rgba_to_string(colora+f); | 321 | g_autofree gchar * cla = gdk_rgba_to_string(colora+f); |
321 | g_autofree gchar * clb = gdk_rgba_to_string(colorb+f); | 322 | g_autofree gchar * clb = gdk_rgba_to_string(colorb+f); |
@@ -328,7 +329,7 @@ | @@ -328,7 +329,7 @@ | ||
328 | clb | 329 | clb |
329 | ); | 330 | ); |
330 | #endif // DEBUG | 331 | #endif // DEBUG |
331 | - | 332 | +*/ |
332 | return FALSE; | 333 | return FALSE; |
333 | } | 334 | } |
334 | } | 335 | } |
@@ -378,7 +379,7 @@ | @@ -378,7 +379,7 @@ | ||
378 | gtk_tree_model_get_value(model,&iter,1,&value); | 379 | gtk_tree_model_get_value(model,&iter,1,&value); |
379 | clr = g_value_get_pointer(&value); | 380 | clr = g_value_get_pointer(&value); |
380 | 381 | ||
381 | - debug("%p",clr); | 382 | +// debug("%p",clr); |
382 | 383 | ||
383 | if(clr && compare_colors(clr,colors)) | 384 | if(clr && compare_colors(clr,colors)) |
384 | { | 385 | { |
src/dialogs/print/print.c
@@ -207,29 +207,42 @@ V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_PRINT | @@ -207,29 +207,42 @@ V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_PRINT | ||
207 | 207 | ||
208 | /*--[ Convenience ]----------------------------------------------------------------------------------*/ | 208 | /*--[ Convenience ]----------------------------------------------------------------------------------*/ |
209 | 209 | ||
210 | - void v3270_print(GtkWidget *widget, LIB3270_PRINT_MODE mode) | 210 | + int v3270_print(GtkWidget *widget, LIB3270_PRINT_MODE mode, GError **error) |
211 | { | 211 | { |
212 | - g_autoptr(GError) err = NULL; | 212 | + if(*error) |
213 | + { | ||
214 | + return -1; | ||
215 | + } | ||
216 | + | ||
217 | + lib3270_trace_event(v3270_get_session(widget),"print action activated (type=%d)",(int) mode); | ||
218 | + | ||
219 | + if(v3270_is_connected(widget)) | ||
220 | + { | ||
221 | + V3270PrintOperation * operation = v3270_print_operation_new(widget, mode); | ||
222 | + gtk_print_operation_run(GTK_PRINT_OPERATION(operation),GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,GTK_WINDOW(gtk_widget_get_toplevel(widget)),error); | ||
223 | + g_object_unref(operation); | ||
224 | + return (*error != NULL); | ||
225 | + } | ||
226 | + | ||
227 | + *error = g_error_new(g_quark_from_static_string(PACKAGE_NAME),ENOTCONN,"%s",strerror(ENOTCONN)); | ||
213 | 228 | ||
214 | - V3270PrintOperation * operation = v3270_print_operation_new(widget, mode); | ||
215 | - gtk_print_operation_run(GTK_PRINT_OPERATION(operation),GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,GTK_WINDOW(gtk_widget_get_toplevel(widget)),&err); | ||
216 | - g_object_unref(operation); | 229 | + return -1; |
217 | 230 | ||
218 | } | 231 | } |
219 | 232 | ||
220 | - void v3270_print_all(GtkWidget *widget) | 233 | + int v3270_print_all(GtkWidget *widget, GError **error) |
221 | { | 234 | { |
222 | - v3270_print(widget,LIB3270_PRINT_ALL); | 235 | + return v3270_print(widget,LIB3270_PRINT_ALL,error); |
223 | } | 236 | } |
224 | 237 | ||
225 | - void v3270_print_selected(GtkWidget *widget) | 238 | + int v3270_print_selected(GtkWidget *widget, GError **error) |
226 | { | 239 | { |
227 | - v3270_print(widget,LIB3270_PRINT_SELECTED); | 240 | + return v3270_print(widget,LIB3270_PRINT_SELECTED,error); |
228 | } | 241 | } |
229 | 242 | ||
230 | - void v3270_print_copy(GtkWidget *widget) | 243 | + int v3270_print_copy(GtkWidget *widget, GError **error) |
231 | { | 244 | { |
232 | - v3270_print(widget,LIB3270_PRINT_COPY); | 245 | + return v3270_print(widget,LIB3270_PRINT_COPY,error); |
233 | } | 246 | } |
234 | 247 | ||
235 | void V3270PrintOperation_set_text_by_mode(V3270PrintOperation * operation, LIB3270_PRINT_MODE mode) | 248 | void V3270PrintOperation_set_text_by_mode(V3270PrintOperation * operation, LIB3270_PRINT_MODE mode) |
src/include/v3270.h
@@ -263,10 +263,11 @@ | @@ -263,10 +263,11 @@ | ||
263 | LIB3270_EXPORT void v3270_select_host(GtkWidget *widget); | 263 | LIB3270_EXPORT void v3270_select_host(GtkWidget *widget); |
264 | 264 | ||
265 | 265 | ||
266 | - LIB3270_EXPORT void v3270_print(GtkWidget *widget, LIB3270_PRINT_MODE mode); | ||
267 | - LIB3270_EXPORT void v3270_print_all(GtkWidget *widget); | ||
268 | - LIB3270_EXPORT void v3270_print_selected(GtkWidget *widget); | ||
269 | - LIB3270_EXPORT void v3270_print_copy(GtkWidget *widget); | 266 | + LIB3270_EXPORT int v3270_print(GtkWidget *widget, LIB3270_PRINT_MODE mode, GError **error); |
267 | + | ||
268 | + LIB3270_EXPORT int v3270_print_all(GtkWidget *widget, GError **error); | ||
269 | + LIB3270_EXPORT int v3270_print_selected(GtkWidget *widget, GError **error); | ||
270 | + LIB3270_EXPORT int v3270_print_copy(GtkWidget *widget, GError **error); | ||
270 | 271 | ||
271 | G_END_DECLS | 272 | G_END_DECLS |
272 | 273 |
src/testprogram/testprogram.c
@@ -125,26 +125,13 @@ static void color_scheme_changed(GtkWidget G_GNUC_UNUSED(*widget), const GdkRGBA | @@ -125,26 +125,13 @@ static void color_scheme_changed(GtkWidget G_GNUC_UNUSED(*widget), const GdkRGBA | ||
125 | 125 | ||
126 | static void print_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal) | 126 | static void print_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal) |
127 | { | 127 | { |
128 | - debug("%s",__FUNCTION__); | ||
129 | - v3270_print_all(terminal); | 128 | + lib3270_print_all(v3270_get_session(terminal)); |
130 | } | 129 | } |
131 | 130 | ||
132 | static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) { | 131 | static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) { |
133 | 132 | ||
134 | - /* | ||
135 | - const gchar * search[] = { | ||
136 | - | ||
137 | - g_get_user_config_dir(), | ||
138 | - g_get_user_data_dir(), | ||
139 | - g_get_home_dir(), | ||
140 | - NULL | ||
141 | - | ||
142 | - }; | ||
143 | - */ | ||
144 | - | ||
145 | GtkWidget * window = gtk_application_window_new(app); | 133 | GtkWidget * window = gtk_application_window_new(app); |
146 | GtkWidget * terminal = v3270_new(); | 134 | GtkWidget * terminal = v3270_new(); |
147 | -// gchar * filename = NULL; | ||
148 | GValue val = G_VALUE_INIT; | 135 | GValue val = G_VALUE_INIT; |
149 | 136 | ||
150 | g_signal_connect(terminal,"field_clicked",G_CALLBACK(field_clicked),window); | 137 | g_signal_connect(terminal,"field_clicked",G_CALLBACK(field_clicked),window); |
src/v3270/callbacks.c
@@ -329,7 +329,30 @@ static void message(H3270 *session, LIB3270_NOTIFY id , const char *title, const | @@ -329,7 +329,30 @@ static void message(H3270 *session, LIB3270_NOTIFY id , const char *title, const | ||
329 | 329 | ||
330 | static int print(H3270 *session, LIB3270_PRINT_MODE mode) | 330 | static int print(H3270 *session, LIB3270_PRINT_MODE mode) |
331 | { | 331 | { |
332 | - v3270_print(GTK_WIDGET(lib3270_get_user_data(session)), mode); | 332 | + GtkWidget *widget = GTK_WIDGET(lib3270_get_user_data(session)); |
333 | + g_autoptr(GError) error = NULL; | ||
334 | + | ||
335 | + v3270_print(widget, mode, &error); | ||
336 | + | ||
337 | + if(error) | ||
338 | + { | ||
339 | + GtkWidget *dialog = | ||
340 | + gtk_message_dialog_new_with_markup( | ||
341 | + GTK_WINDOW(gtk_widget_get_toplevel(widget)), | ||
342 | + GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,GTK_MESSAGE_ERROR,GTK_BUTTONS_CLOSE, | ||
343 | + _( "Operation has failed" )); | ||
344 | + | ||
345 | + gtk_window_set_title(GTK_WINDOW(dialog),_("Can't print")); | ||
346 | + | ||
347 | + gtk_message_dialog_format_secondary_markup(GTK_MESSAGE_DIALOG(dialog),"%s",error->message); | ||
348 | + | ||
349 | + gtk_dialog_run(GTK_DIALOG(dialog)); | ||
350 | + gtk_widget_destroy(dialog); | ||
351 | + | ||
352 | + return -1; | ||
353 | + | ||
354 | + } | ||
355 | + | ||
333 | return 0; | 356 | return 0; |
334 | } | 357 | } |
335 | 358 |