Commit 02b4046ad5d811eadbab557581f209a7d99cfde6

Authored by Perry Werneck
1 parent b0f51585

Finalizing action editor.

src/include/pw3270/settings.h
... ... @@ -101,7 +101,8 @@
101 101  
102 102 GType PW3270SettingsActions_get_type(void);
103 103 GtkWidget * pw3270_settings_actions_new();
104   - Pw3270ActionList * pw3270_settings_action_load(GtkWidget *widget, Pw3270ActionList *available, const gchar *value);
  104 + Pw3270ActionList * pw3270_settings_action_set(GtkWidget *widget, Pw3270ActionList *available, const gchar *value);
  105 + gchar * pw3270_settings_action_get(GtkWidget *widget);
105 106  
106 107 G_END_DECLS
107 108  
... ...
src/objects/actions/view.c
... ... @@ -436,10 +436,24 @@
436 436  
437 437 }
438 438  
  439 + struct MoveData {
  440 + GtkWidget *from;
  441 + GtkWidget *to;
  442 + };
  443 +
  444 + static void move_clicked(GtkButton G_GNUC_UNUSED(*button), struct MoveData *args) {
  445 + pw3270_action_view_move_selected(args->from,args->to);
  446 + }
  447 +
439 448 GtkWidget * pw3270_action_view_move_button_new(GtkWidget *from, GtkWidget *to, const gchar *icon_name) {
440 449  
441 450 GtkWidget * button = gtk_button_new_from_icon_name(icon_name,GTK_ICON_SIZE_DND);
442 451  
  452 + struct MoveData * data = g_new0(struct MoveData,1);
  453 + data->from = from;
  454 + data->to = to;
  455 + g_object_set_data_full(G_OBJECT(button),"move-control-data",data,g_free);
  456 +
443 457 gtk_widget_set_focus_on_click(button,FALSE);
444 458 gtk_button_set_relief(GTK_BUTTON(button),GTK_RELIEF_NONE);
445 459 gtk_widget_set_sensitive(button,FALSE);
... ... @@ -453,5 +467,12 @@
453 467 button
454 468 );
455 469  
  470 + g_signal_connect(
  471 + button,
  472 + "clicked",
  473 + G_CALLBACK(move_clicked),
  474 + data
  475 + );
  476 +
456 477 return button;
457 478 }
... ...
src/objects/settings/actionview.c
... ... @@ -129,6 +129,10 @@
129 129  
130 130 }
131 131  
  132 + gtk_tree_view_set_reorderable(GTK_TREE_VIEW(grid->views[0]),TRUE);
  133 + gtk_tree_view_set_reorderable(GTK_TREE_VIEW(grid->views[2]),TRUE);
  134 + pw3270_action_view_order_by_label(grid->views[1]);
  135 +
132 136 // Create buttons
133 137 {
134 138 GtkWidget *buttons[] = {
... ... @@ -157,7 +161,7 @@
157 161  
158 162 }
159 163  
160   - Pw3270ActionList * pw3270_settings_action_load(GtkWidget *widget, Pw3270ActionList *action_list, const gchar *action_names) {
  164 + Pw3270ActionList * pw3270_settings_action_set(GtkWidget *widget, Pw3270ActionList *action_list, const gchar *action_names) {
161 165  
162 166 PW3270SettingsActions *editor = (PW3270SettingsActions *) widget;
163 167  
... ... @@ -192,26 +196,12 @@
192 196 return action_list;
193 197 }
194 198  
195   - /*
196   - static void remove_from_left(GtkButton G_GNUC_UNUSED(*button), PW3270SettingsPrivate *settings) {
197   - debug("%s(%p)",__FUNCTION__,settings);
198   - pw3270_action_view_move_selected(settings->views[0],settings->views[2]);
199   - }
  199 + gchar * pw3270_settings_action_get(GtkWidget *widget) {
200 200  
201   - static void add_to_left(GtkButton G_GNUC_UNUSED(*button), PW3270SettingsPrivate *settings) {
202   - debug("%s(%p)",__FUNCTION__,settings);
203   - pw3270_action_view_move_selected(settings->views[2],settings->views[0]);
204   - }
  201 + PW3270SettingsActions *editor = (PW3270SettingsActions *) widget;
205 202  
206   - static void remove_from_right(GtkButton G_GNUC_UNUSED(*button), PW3270SettingsPrivate *settings) {
207   - debug("%s(%p)",__FUNCTION__,settings);
208   - pw3270_action_view_move_selected(settings->views[1],settings->views[2]);
209   - }
  203 + g_autofree gchar * left_names = pw3270_action_view_get_action_names(editor->views[0]);
  204 + g_autofree gchar * right_names = pw3270_action_view_get_action_names(editor->views[2]);
  205 + return g_strconcat(left_names,":",right_names,NULL);
210 206  
211   - static void add_to_right(GtkButton G_GNUC_UNUSED(*button), PW3270SettingsPrivate *settings) {
212   - debug("%s(%p)",__FUNCTION__,settings);
213   - pw3270_action_view_move_selected(settings->views[2],settings->views[1]);
214 207 }
215   -
216   -
217   -*/
... ...
src/objects/window/header-settings.c
... ... @@ -277,45 +277,16 @@
277 277 // Load settings
278 278 g_autofree gchar * action_names = g_settings_get_string(settings,"header-action-names");
279 279  
280   - action_list = pw3270_settings_action_load(page->editor, action_list, action_names);
281   -
282   - /*
283   - gchar **views = g_strsplit(action_names,":",-1);
284   -
285   - for(view = 0; view < 2; view++) {
286   -
287   - if(!views[view])
288   - break;
289   -
290   - gchar ** actions = g_strsplit(views[view],",",-1);
291   -
292   - for(action = 0; actions[action];action++) {
293   - action_list = pw3270_action_list_move_action(action_list,actions[action],page->views[view]);
294   - }
295   -
296   - g_strfreev(actions);
297   - }
298   -
299   - g_strfreev(views);
300   -
301   - pw3270_action_view_set_actions(page->views[2], action_list);
302   -
303   - */
  280 + action_list = pw3270_settings_action_set(page->editor, action_list, action_names);
304 281  
305 282 pw3270_action_list_free(action_list);
306 283 }
307 284  
308 285 void apply(GtkWidget *widget, PW3270SettingsPrivate *page) {
309 286  
310   - /*
311   - g_autofree gchar * left_names = pw3270_action_view_get_action_names(page->views[0]);
312   - g_autofree gchar * right_names = pw3270_action_view_get_action_names(page->views[1]);
313   - g_autofree gchar * action_names = g_strconcat(left_names,":",right_names,NULL);
314   -
315   - debug("Header actions: [%s]",action_names);
316   -
  287 + g_autofree gchar * action_names = pw3270_settings_action_get(page->editor);
317 288 g_autoptr(GSettings) settings = pw3270_application_window_settings_new();
318 289 g_settings_set_string(settings,"header-action-names",action_names);
319   - */
  290 +
320 291 }
321 292  
... ...