From 9b7064fea49b1e3d041dcdbf9a24acedca63e3c3 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Jun 2022 11:56:55 -0300 Subject: [PATCH] Adding convenience method to getting booleans from GSettings. --- src/include/pw3270/application.h | 4 ++++ src/objects/application/application.c | 13 ++++++++----- src/objects/window/actions/sessionproperties.c | 32 +++++++++++++++++++------------- src/objects/window/keyfile.c | 14 +++++++++----- win/pack.sh | 2 +- 5 files changed, 41 insertions(+), 24 deletions(-) diff --git a/src/include/pw3270/application.h b/src/include/pw3270/application.h index 51e8ec9..94bc640 100644 --- a/src/include/pw3270/application.h +++ b/src/include/pw3270/application.h @@ -72,6 +72,10 @@ void pw3270_application_open_file(GtkApplication *application, GtkWindow **w /// @return The internal settings object (Do not unref it). GSettings * pw3270_application_settings_new(); GSettings * pw3270_application_get_settings(GApplication *app); + +/// @brief Get boolean from gsettings. +gboolean pw3270_application_get_boolean(GApplication *app, const gchar *option_name, gboolean def); + GList * pw3270_application_get_keypad_models(GApplication *app); void pw3270_application_set_ui_style(GApplication *app, PW3270_UI_STYLE type); diff --git a/src/objects/application/application.c b/src/objects/application/application.c index 00ff813..8df2aec 100644 --- a/src/objects/application/application.c +++ b/src/objects/application/application.c @@ -427,7 +427,7 @@ void startup(GApplication *application) { G_APPLICATION_CLASS(pw3270Application_parent_class)->startup(application); - GSettings *settings = pw3270_application_get_settings(application); +// GSettings *settings = pw3270_application_get_settings(application); // // Common actions @@ -445,14 +445,14 @@ void startup(GApplication *application) { // // Open session actions. // - if(g_settings_get_boolean(settings,"allow-open-session-actions")) { + if(pw3270_application_get_boolean(application,"allow-open-session-actions",TRUE)) { g_action_map_add_action(G_ACTION_MAP(application),pw3270_open_session_action_new()); } // // New tab actions // - if(g_settings_get_boolean(settings,"allow-new-tab-actions")) { + if(pw3270_application_get_boolean(application,"allow-new-tab-actions",TRUE)) { GAction * new_tab_actions[] = { pw3270_open_tab_action_new(), @@ -468,7 +468,7 @@ void startup(GApplication *application) { // // New window actions // - if(g_settings_get_boolean(settings,"allow-new-window-actions")) { + if(pw3270_application_get_boolean(application,"allow-new-window-actions",TRUE)) { GAction * new_window_actions[] = { pw3270_open_window_action_new(), @@ -557,10 +557,13 @@ PW3270_UI_STYLE pw3270_application_get_ui_style(GApplication *app) { } GSettings * pw3270_application_get_settings(GApplication *app) { - g_return_val_if_fail(PW3270_IS_APPLICATION(app),NULL); return PW3270_APPLICATION(app)->settings; +} +gboolean pw3270_application_get_boolean(GApplication *app, const gchar *option_name, gboolean def) { + g_return_val_if_fail(PW3270_IS_APPLICATION(app),def); + return g_settings_get_boolean(PW3270_APPLICATION(app)->settings,option_name); } GSList * pw3270_application_get_plugins(GApplication *app) { diff --git a/src/objects/window/actions/sessionproperties.c b/src/objects/window/actions/sessionproperties.c index bea8c58..5c3a476 100644 --- a/src/objects/window/actions/sessionproperties.c +++ b/src/objects/window/actions/sessionproperties.c @@ -43,29 +43,35 @@ GtkWidget * factory(V3270SimpleAction *action, GtkWidget *terminal) { size_t ix; - GSettings *settings = pw3270_application_get_settings(g_application_get_default()); + GApplication *application = g_application_get_default(); +// GSettings *settings = pw3270_application_get_settings(g_application_get_default()); GtkWidget * dialog = v3270_settings_dialog_new(); gtk_window_set_title(GTK_WINDOW(dialog), action->label); - // Add settings pages. - GtkWidget * elements[] = { - v3270_color_settings_new(), - v3270_font_settings_new(), - v3270_accelerator_settings_new(), - v3270_clipboard_settings_new() - }; - - if(g_settings_get_boolean(settings,"allow-host-settings")) { + // Host settings is conditional. + if(pw3270_application_get_boolean(application,"allow-host-settings",TRUE)) { gtk_container_add(GTK_CONTAINER(dialog), v3270_host_settings_new()); } - for(ix = 0; ix < G_N_ELEMENTS(elements); ix++) { - gtk_container_add(GTK_CONTAINER(dialog), elements[ix]); + // Add commom settings. + { + + GtkWidget * elements[] = { + v3270_color_settings_new(), + v3270_font_settings_new(), + v3270_accelerator_settings_new(), + v3270_clipboard_settings_new() + }; + + for(ix = 0; ix < G_N_ELEMENTS(elements); ix++) { + gtk_container_add(GTK_CONTAINER(dialog), elements[ix]); + } + } pw3270_application_plugin_call( - g_application_get_default(), + application, "pw3270_plugin_set_session_properties", dialog ); diff --git a/src/objects/window/keyfile.c b/src/objects/window/keyfile.c index 4e25853..a334485 100644 --- a/src/objects/window/keyfile.c +++ b/src/objects/window/keyfile.c @@ -216,16 +216,20 @@ V3270KeyFile * v3270_key_file_open(GtkWidget *terminal, const gchar *filename, G if(!*error) { - GSettings * settings = pw3270_application_get_settings(g_application_get_default()); + GApplication *application = g_application_get_default(); - if(settings && g_settings_get_boolean(settings,"update-default-session-file")) { + if(pw3270_application_get_boolean(application,"update-default-session-file",TRUE)) { - g_message("Updating default session file to '%s'",filename); - g_settings_set_string(settings,"default-session-file",filename); + GSettings * settings = pw3270_application_get_settings(application); + + if(settings) { + g_message("Updating default session file to '%s'",filename); + g_settings_set_string(settings,"default-session-file",filename); + } } - if(settings && g_settings_get_boolean(settings,"add-session-to-recent-manager")) { + if(pw3270_application_get_boolean(application,"add-session-to-recent-manager",TRUE)) { // new_session->key_file g_autofree gchar * display_name = g_key_file_get_string(new_session->key_file,"terminal","session-name",NULL); diff --git a/win/pack.sh b/win/pack.sh index 8a5df13..2fd830d 100755 --- a/win/pack.sh +++ b/win/pack.sh @@ -170,7 +170,7 @@ configure() if [ -x ./autogen.sh ]; then NOCONFIGURE=1 ./autogen.sh if [ "$?" != "0" ]; then - failed "Erro em autogen.sh" + failed "autogen.sh has failed" fi fi done -- libgit2 0.21.2