Commit e6e16ddd18f1e16f83d8c55f80366181714818db

Authored by Perry Werneck
1 parent 10dbb6f7
Exists in master and in 1 other branch develop

Working on the new FT component.

src/include/internals.h
... ... @@ -58,10 +58,13 @@
58 58 return child;
59 59 }
60 60  
61   - G_GNUC_INTERNAL GtkWidget * v3270_box_pack_frame(GtkWidget *box, GtkWidget *child, const gchar *title, GtkAlign align, gboolean expand, gboolean fill, guint padding);
62   - G_GNUC_INTERNAL GtkWidget * v3270_box_pack_frame(GtkWidget *box, GtkWidget *child, const gchar *title, GtkAlign align, gboolean expand, gboolean fill, guint padding);
63   - G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align);
64   - G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_frame(GtkWidget * child, const gchar *title);
  61 + G_GNUC_INTERNAL GtkWidget * v3270_box_pack_frame(GtkWidget *box, GtkWidget *child, const gchar *title, GtkAlign align, gboolean expand, gboolean fill, guint padding);
  62 + G_GNUC_INTERNAL GtkWidget * v3270_box_pack_frame(GtkWidget *box, GtkWidget *child, const gchar *title, GtkAlign align, gboolean expand, gboolean fill, guint padding);
  63 + G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align);
  64 + G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_frame(GtkWidget * child, const gchar *title);
  65 +
  66 + G_GNUC_INTERNAL GtkWidget * v3270_activity_list_new();
  67 + G_GNUC_INTERNAL void v3270_activity_list_append(GtkWidget *widget, GObject *activity);
65 68  
66 69 G_END_DECLS
67 70  
... ...
src/include/v3270/filetransfer.h
... ... @@ -93,6 +93,7 @@
93 93 typedef struct _V3270FTSettingsClass V3270FTSettingsClass;
94 94  
95 95 LIB3270_EXPORT GtkWidget * v3270_ft_settings_new();
  96 + LIB3270_EXPORT void v3270_ft_settings_set_activity(GtkWidget *widget, GObject *activity);
96 97  
97 98 // FT Activity widget
98 99 #define G_TYPE_V3270_FT_ACTIVITY (V3270FTActivity_get_type ())
... ...
src/v3270ft/activity.c
... ... @@ -159,3 +159,54 @@
159 159 g_free(*ptr);
160 160 *ptr = g_strdup(filename);
161 161 }
  162 +
  163 + static void render_local(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data)
  164 + {
  165 + V3270FTActivity * activity;
  166 + gtk_tree_model_get(tree_model, iter, 0, &activity, -1);
  167 + g_object_set(G_OBJECT(cell),"text",activity->file.local,NULL);
  168 + }
  169 +
  170 + static void render_remote(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data)
  171 + {
  172 + V3270FTActivity * activity;
  173 + gtk_tree_model_get(tree_model, iter, 0, &activity, -1);
  174 + g_object_set(G_OBJECT(cell),"text",activity->file.remote,NULL);
  175 + }
  176 +
  177 + GtkWidget * v3270_activity_list_new()
  178 + {
  179 + GtkTreeModel * model = GTK_TREE_MODEL(gtk_list_store_new(1,G_TYPE_OBJECT));
  180 + GtkWidget * widget = gtk_tree_view_new_with_model(model);
  181 +
  182 + gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(widget),TRUE);
  183 + gtk_tree_view_set_reorderable(GTK_TREE_VIEW(widget),TRUE);
  184 +
  185 + gtk_tree_view_insert_column_with_data_func(
  186 + GTK_TREE_VIEW(widget),
  187 + -1,
  188 + _( "Local file" ),
  189 + gtk_cell_renderer_text_new(),
  190 + render_local,
  191 + 0, NULL
  192 + );
  193 +
  194 + gtk_tree_view_insert_column_with_data_func(
  195 + GTK_TREE_VIEW(widget),
  196 + -1,
  197 + _( "Remote file" ),
  198 + gtk_cell_renderer_text_new(),
  199 + render_remote,
  200 + 0, NULL
  201 + );
  202 +
  203 + return widget;
  204 + }
  205 +
  206 + void v3270_activity_list_append(GtkWidget *widget, GObject *activity)
  207 + {
  208 + GtkTreeModel * model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget));
  209 + GtkTreeIter iter;
  210 + gtk_list_store_append((GtkListStore *) model,&iter);
  211 + gtk_list_store_set((GtkListStore *) model, &iter, 0, activity, -1);
  212 + }
... ...
src/v3270ft/dialog.c
... ... @@ -79,20 +79,6 @@ static GtkWidget * create_button(V3270FTDialog *widget, FT_BUTTON id, const gcha
79 79 }
80 80 */
81 81  
82   -static void render_local(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data)
83   -{
84   - GObject * activity;
85   - gtk_tree_model_get(tree_model, iter, 0, &activity, -1);
86   - g_object_set(G_OBJECT(cell),"text",v3270_ft_activity_get_local_filename(activity),NULL);
87   -}
88   -
89   -static void render_remote(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data)
90   -{
91   - GObject * activity;
92   - gtk_tree_model_get(tree_model, iter, 0, &activity, -1);
93   - g_object_set(G_OBJECT(cell),"text",v3270_ft_activity_get_remote_filename(activity),NULL);
94   -}
95   -
96 82 static void V3270FTDialog_init(V3270FTDialog *widget)
97 83 {
98 84 widget->settings = v3270_ft_settings_new();
... ... @@ -112,35 +98,11 @@ static void V3270FTDialog_init(V3270FTDialog *widget)
112 98 gtk_widget_set_vexpand(GTK_WIDGET(widget->settings),FALSE);
113 99 gtk_box_pack_start(GTK_BOX(container),widget->settings,FALSE,FALSE,0);
114 100  
115   -
116 101 // Create file list view
117 102 {
118   - GtkTreeModel * model = GTK_TREE_MODEL(gtk_list_store_new(1,G_TYPE_OBJECT));
119   - GtkWidget * files = gtk_tree_view_new_with_model(model);
120   -
  103 + GtkWidget * files = v3270_activity_list_new();
121 104 gtk_widget_set_tooltip_markup(files,_("Files to transfer"));
122 105  
123   - gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(files),TRUE);
124   - gtk_tree_view_set_reorderable(GTK_TREE_VIEW(files),TRUE);
125   -
126   - gtk_tree_view_insert_column_with_data_func(
127   - GTK_TREE_VIEW(files),
128   - -1,
129   - _( "Local file" ),
130   - gtk_cell_renderer_text_new(),
131   - render_local,
132   - 0, NULL
133   - );
134   -
135   - gtk_tree_view_insert_column_with_data_func(
136   - GTK_TREE_VIEW(files),
137   - -1,
138   - _( "Remote file" ),
139   - gtk_cell_renderer_text_new(),
140   - render_remote,
141   - 0, NULL
142   - );
143   -
144 106 // Put the view inside a scrolled window.
145 107 GtkWidget * scrolled = gtk_scrolled_window_new(NULL,NULL);
146 108 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
... ... @@ -153,15 +115,15 @@ static void V3270FTDialog_init(V3270FTDialog *widget)
153 115  
154 116 gtk_box_pack_start(GTK_BOX(container),frame,TRUE,TRUE,0);
155 117  
156   - /*
  118 +#ifdef DEBUG
157 119 GObject * activity = v3270_ft_activity_new();
  120 +
158 121 v3270_ft_activity_set_local_filename(activity,"local---");
159 122 v3270_ft_activity_set_remote_filename(activity,"remote---");
160 123  
161   - GtkTreeIter iter;
162   - gtk_list_store_append((GtkListStore *) model,&iter);
163   - gtk_list_store_set((GtkListStore *) model, &iter, 0, activity, -1);
164   - */
  124 + v3270_activity_list_append(files,activity);
  125 + v3270_ft_settings_set_activity(widget->settings,activity);
  126 +#endif // DEBUG
165 127  
166 128 }
167 129  
... ...
src/v3270ft/settings.c
... ... @@ -387,3 +387,11 @@ static void open_select_file_dialog(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconP
387 387 return GTK_WIDGET(g_object_new(GTK_TYPE_V3270_FT_SETTINGS, NULL));
388 388 }
389 389  
  390 + LIB3270_EXPORT void v3270_ft_settings_set_activity(GtkWidget *widget, GObject *activity)
  391 + {
  392 + V3270FTSettings * settings = GTK_V3270_FT_SETTINGS(widget);
  393 +
  394 + gtk_entry_set_text(settings->file.local,v3270_ft_activity_get_local_filename(activity));
  395 + gtk_entry_set_text(settings->file.remote,v3270_ft_activity_get_remote_filename(activity));
  396 +
  397 + }
... ...