Commit 40fbc881fb47ffffbba511a6d33bc29d0bff6c56

Authored by Perry Werneck
1 parent 4ec193c8

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