Commit 957b5cd8004c20865b0df3a76cfb6c471fc47971
1 parent
22bbe2c0
Exists in
master
and in
1 other branch
Adding notifications on param change.
Showing
5 changed files
with
23 additions
and
9 deletions
Show diff stats
src/include/terminal.h
@@ -50,6 +50,9 @@ G_BEGIN_DECLS | @@ -50,6 +50,9 @@ G_BEGIN_DECLS | ||
50 | GParamSpec * luname; | 50 | GParamSpec * luname; |
51 | GParamSpec * model; | 51 | GParamSpec * model; |
52 | GParamSpec * selection; | 52 | GParamSpec * selection; |
53 | + GParamSpec * session_name; | ||
54 | + GParamSpec * auto_disconnect; | ||
55 | + GParamSpec * remap_file; | ||
53 | 56 | ||
54 | struct | 57 | struct |
55 | { | 58 | { |
src/include/v3270.h
@@ -238,8 +238,10 @@ | @@ -238,8 +238,10 @@ | ||
238 | LIB3270_EXPORT const gchar * v3270_get_default_font_name(); | 238 | LIB3270_EXPORT const gchar * v3270_get_default_font_name(); |
239 | 239 | ||
240 | LIB3270_EXPORT void v3270_popup_message(GtkWidget *widget, LIB3270_NOTIFY type, const gchar *title, const gchar *message, const gchar *text); | 240 | LIB3270_EXPORT void v3270_popup_message(GtkWidget *widget, LIB3270_NOTIFY type, const gchar *title, const gchar *message, const gchar *text); |
241 | + | ||
241 | LIB3270_EXPORT const gchar * v3270_get_session_name(GtkWidget *widget); | 242 | LIB3270_EXPORT const gchar * v3270_get_session_name(GtkWidget *widget); |
242 | LIB3270_EXPORT void v3270_set_session_name(GtkWidget *widget, const gchar *name); | 243 | LIB3270_EXPORT void v3270_set_session_name(GtkWidget *widget, const gchar *name); |
244 | + | ||
243 | LIB3270_EXPORT int v3270_set_script(GtkWidget *widget, const gchar id); | 245 | LIB3270_EXPORT int v3270_set_script(GtkWidget *widget, const gchar id); |
244 | LIB3270_EXPORT void v3270_set_scaled_fonts(GtkWidget *widget, gboolean on); | 246 | LIB3270_EXPORT void v3270_set_scaled_fonts(GtkWidget *widget, gboolean on); |
245 | LIB3270_EXPORT int v3270_set_session_color_type(GtkWidget *widget, unsigned short colortype); | 247 | LIB3270_EXPORT int v3270_set_session_color_type(GtkWidget *widget, unsigned short colortype); |
src/terminal/charset.c
@@ -302,11 +302,9 @@ | @@ -302,11 +302,9 @@ | ||
302 | 302 | ||
303 | if(text && !error) | 303 | if(text && !error) |
304 | { | 304 | { |
305 | - | ||
306 | GMarkupParseContext * context = g_markup_parse_context_new(&parser,G_MARKUP_TREAT_CDATA_AS_TEXT|G_MARKUP_PREFIX_ERROR_POSITION,&cfg,NULL); | 305 | GMarkupParseContext * context = g_markup_parse_context_new(&parser,G_MARKUP_TREAT_CDATA_AS_TEXT|G_MARKUP_PREFIX_ERROR_POSITION,&cfg,NULL); |
307 | g_markup_parse_context_parse(context,text,strlen(text),&error); | 306 | g_markup_parse_context_parse(context,text,strlen(text),&error); |
308 | g_markup_parse_context_free(context); | 307 | g_markup_parse_context_free(context); |
309 | - | ||
310 | } | 308 | } |
311 | 309 | ||
312 | debug("error=%p",error); | 310 | debug("error=%p",error); |
@@ -338,5 +336,7 @@ | @@ -338,5 +336,7 @@ | ||
338 | g_free(cfg.host); | 336 | g_free(cfg.host); |
339 | g_free(cfg.display); | 337 | g_free(cfg.display); |
340 | 338 | ||
339 | + g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.remap_file); | ||
340 | + | ||
341 | } | 341 | } |
342 | 342 |
src/terminal/properties/init.c
@@ -93,7 +93,7 @@ | @@ -93,7 +93,7 @@ | ||
93 | ); | 93 | ); |
94 | 94 | ||
95 | // Session name. | 95 | // Session name. |
96 | - spec = g_param_spec_string( | 96 | + klass->properties.session_name = g_param_spec_string( |
97 | "session_name", | 97 | "session_name", |
98 | "session_name", | 98 | "session_name", |
99 | _("TN3270 Session name"), | 99 | _("TN3270 Session name"), |
@@ -104,11 +104,11 @@ | @@ -104,11 +104,11 @@ | ||
104 | g_object_class_install_property( | 104 | g_object_class_install_property( |
105 | gobject_class, | 105 | gobject_class, |
106 | V3270_PROPERTY_SESSION_NAME, | 106 | V3270_PROPERTY_SESSION_NAME, |
107 | - spec | 107 | + klass->properties.session_name |
108 | ); | 108 | ); |
109 | 109 | ||
110 | // Auto disconnect | 110 | // Auto disconnect |
111 | - spec = g_param_spec_string( | 111 | + klass->properties.auto_disconnect = g_param_spec_string( |
112 | "auto_disconnect", | 112 | "auto_disconnect", |
113 | "auto_disconnect", | 113 | "auto_disconnect", |
114 | _("IDLE minutes for automatic disconnection"), | 114 | _("IDLE minutes for automatic disconnection"), |
@@ -119,7 +119,7 @@ | @@ -119,7 +119,7 @@ | ||
119 | g_object_class_install_property( | 119 | g_object_class_install_property( |
120 | gobject_class, | 120 | gobject_class, |
121 | V3270_PROPERTY_AUTO_DISCONNECT, | 121 | V3270_PROPERTY_AUTO_DISCONNECT, |
122 | - spec | 122 | + klass->properties.auto_disconnect |
123 | ); | 123 | ); |
124 | 124 | ||
125 | // Clipboard | 125 | // Clipboard |
@@ -138,7 +138,7 @@ | @@ -138,7 +138,7 @@ | ||
138 | ); | 138 | ); |
139 | 139 | ||
140 | // Remap file | 140 | // Remap file |
141 | - spec = g_param_spec_string( | 141 | + klass->properties.remap_file = g_param_spec_string( |
142 | "remap", | 142 | "remap", |
143 | "remap", | 143 | "remap", |
144 | _("XML file with remap table"), | 144 | _("XML file with remap table"), |
@@ -149,7 +149,7 @@ | @@ -149,7 +149,7 @@ | ||
149 | g_object_class_install_property( | 149 | g_object_class_install_property( |
150 | gobject_class, | 150 | gobject_class, |
151 | V3270_PROPERTY_REMAP_FILE, | 151 | V3270_PROPERTY_REMAP_FILE, |
152 | - spec | 152 | + klass->properties.remap_file |
153 | ); | 153 | ); |
154 | 154 | ||
155 | // | 155 | // |
src/terminal/properties/set.c
@@ -171,6 +171,7 @@ LIB3270_EXPORT void v3270_set_session_name(GtkWidget *widget, const gchar *name) | @@ -171,6 +171,7 @@ LIB3270_EXPORT void v3270_set_session_name(GtkWidget *widget, const gchar *name) | ||
171 | debug("New session name is \"%s\"",GTK_V3270(widget)->session_name); | 171 | debug("New session name is \"%s\"",GTK_V3270(widget)->session_name); |
172 | 172 | ||
173 | g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[V3270_SIGNAL_SESSION_CHANGED], 0); | 173 | g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[V3270_SIGNAL_SESSION_CHANGED], 0); |
174 | + g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.session_name); | ||
174 | 175 | ||
175 | } | 176 | } |
176 | 177 | ||
@@ -203,6 +204,14 @@ void v3270_set_cursor(GtkWidget *widget, LIB3270_POINTER id) | @@ -203,6 +204,14 @@ void v3270_set_cursor(GtkWidget *widget, LIB3270_POINTER id) | ||
203 | LIB3270_EXPORT void v3270_set_auto_disconnect(GtkWidget *widget, guint minutes) | 204 | LIB3270_EXPORT void v3270_set_auto_disconnect(GtkWidget *widget, guint minutes) |
204 | { | 205 | { |
205 | g_return_if_fail(GTK_IS_V3270(widget)); | 206 | g_return_if_fail(GTK_IS_V3270(widget)); |
206 | - GTK_V3270(widget)->activity.disconnect = minutes; | 207 | + |
208 | + v3270 * terminal = GTK_V3270(widget); | ||
209 | + | ||
210 | + if(terminal->activity.disconnect != minutes) | ||
211 | + { | ||
212 | + terminal->activity.disconnect = minutes; | ||
213 | + g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.auto_disconnect); | ||
214 | + } | ||
215 | + | ||
207 | } | 216 | } |
208 | 217 |