Commit 40fbc881fb47ffffbba511a6d33bc29d0bff6c56
1 parent
4ec193c8
Exists in
master
and in
4 other branches
Loading/saving print settings to/from session file.
Showing
1 changed file
with
25 additions
and
1 deletions
Show diff stats
src/objects/window/terminal.c
@@ -32,6 +32,7 @@ | @@ -32,6 +32,7 @@ | ||
32 | #include <lib3270/toggle.h> | 32 | #include <lib3270/toggle.h> |
33 | #include <v3270/settings.h> | 33 | #include <v3270/settings.h> |
34 | #include <v3270/actions.h> | 34 | #include <v3270/actions.h> |
35 | + #include <v3270/print.h> | ||
35 | 36 | ||
36 | struct SessionDescriptor | 37 | struct SessionDescriptor |
37 | { | 38 | { |
@@ -252,12 +253,33 @@ | @@ -252,12 +253,33 @@ | ||
252 | 253 | ||
253 | } | 254 | } |
254 | 255 | ||
255 | - static void toggle_changed(G_GNUC_UNUSED v3270 *widget, G_GNUC_UNUSED LIB3270_TOGGLE_ID toggle_id, gboolean toggle_state, const gchar *toggle_name, struct SessionDescriptor * session) { | 256 | + static void toggle_changed(G_GNUC_UNUSED GtkWidget *widget, G_GNUC_UNUSED LIB3270_TOGGLE_ID toggle_id, gboolean toggle_state, const gchar *toggle_name, struct SessionDescriptor * session) { |
256 | debug("%s(%s)=%s",__FUNCTION__,toggle_name,toggle_state ? "ON" : "OFF"); | 257 | debug("%s(%s)=%s",__FUNCTION__,toggle_name,toggle_state ? "ON" : "OFF"); |
257 | g_key_file_set_boolean(session->key_file,"terminal",toggle_name,toggle_state); | 258 | g_key_file_set_boolean(session->key_file,"terminal",toggle_name,toggle_state); |
258 | session->changed = TRUE; | 259 | session->changed = TRUE; |
259 | } | 260 | } |
260 | 261 | ||
262 | + static void print_done(G_GNUC_UNUSED GtkWidget *widget, GtkPrintOperation *operation, GtkPrintOperationResult result, struct SessionDescriptor * session) { | ||
263 | + debug("%s(%u)",__FUNCTION__,(unsigned int) result); | ||
264 | + | ||
265 | + if(result != GTK_PRINT_OPERATION_RESULT_APPLY) | ||
266 | + return; | ||
267 | + | ||
268 | + debug("%s: Saving print settings",__FUNCTION__); | ||
269 | + | ||
270 | + v3270_print_operation_to_key_file(operation,session->key_file); | ||
271 | + | ||
272 | + g_key_file_save_to_file(session->key_file,session->filename,NULL); | ||
273 | + session->changed = FALSE; | ||
274 | + } | ||
275 | + | ||
276 | + static void print_setup(G_GNUC_UNUSED GtkWidget *widget, GtkPrintOperation *operation, struct SessionDescriptor * session) { | ||
277 | + | ||
278 | + debug("%s(%p)",__FUNCTION__,operation); | ||
279 | + v3270_print_operation_load_key_file(operation,session->key_file); | ||
280 | + | ||
281 | + } | ||
282 | + | ||
261 | static void close_settings(struct SessionDescriptor * session) { | 283 | static void close_settings(struct SessionDescriptor * session) { |
262 | 284 | ||
263 | if(session->key_file) { | 285 | if(session->key_file) { |
@@ -351,6 +373,8 @@ | @@ -351,6 +373,8 @@ | ||
351 | // Setup signals. | 373 | // Setup signals. |
352 | g_signal_connect(G_OBJECT(terminal),"save-settings",G_CALLBACK(save_settings),descriptor); | 374 | g_signal_connect(G_OBJECT(terminal),"save-settings",G_CALLBACK(save_settings),descriptor); |
353 | g_signal_connect(G_OBJECT(terminal),"toggle_changed",G_CALLBACK(toggle_changed),descriptor); | 375 | g_signal_connect(G_OBJECT(terminal),"toggle_changed",G_CALLBACK(toggle_changed),descriptor); |
376 | + g_signal_connect(G_OBJECT(terminal),"print-done",G_CALLBACK(print_done),descriptor); | ||
377 | + g_signal_connect(G_OBJECT(terminal),"print-setup",G_CALLBACK(print_setup),descriptor); | ||
354 | 378 | ||
355 | return terminal; | 379 | return terminal; |
356 | 380 |