Commit 843162a969ce333d0a0004e905e30754b2458a2b
1 parent
0bac84b2
Exists in
master
and in
1 other branch
Working on the new FT dialog.
Showing
3 changed files
with
51 additions
and
11 deletions
Show diff stats
src/dialogs/settingsdialog.c
| @@ -100,22 +100,25 @@ static void V3270FTSettingsDialog_class_init(G_GNUC_UNUSED V3270FTSettingsDialog | @@ -100,22 +100,25 @@ static void V3270FTSettingsDialog_class_init(G_GNUC_UNUSED V3270FTSettingsDialog | ||
| 100 | G_OBJECT_CLASS(klass)->finalize = finalize; | 100 | G_OBJECT_CLASS(klass)->finalize = finalize; |
| 101 | } | 101 | } |
| 102 | 102 | ||
| 103 | -void activity_selected(GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn G_GNUC_UNUSED(*column), V3270FTSettingsDialog *widget) | 103 | +void activity_selected(GtkWidget G_GNUC_UNUSED(*view), GObject * activity, V3270FTSettingsDialog *widget) |
| 104 | { | 104 | { |
| 105 | - GtkTreeIter iter; | ||
| 106 | - GtkTreeModel * model = gtk_tree_view_get_model(view); | 105 | + debug("%s(widget=%p activity=%p",__FUNCTION__,widget,activity); |
| 107 | 106 | ||
| 108 | - if(gtk_tree_model_get_iter(model, &iter, path)) | ||
| 109 | - { | ||
| 110 | - GObject * activity = NULL; | ||
| 111 | - gtk_tree_model_get(model, &iter, 0, &activity, -1); | ||
| 112 | - v3270_ft_settings_set_activity(widget->settings,activity); | 107 | + v3270_ft_settings_set_activity(widget->settings,activity); |
| 113 | 108 | ||
| 109 | + if(activity) | ||
| 110 | + { | ||
| 114 | gtk_widget_set_sensitive(widget->button.update,TRUE); | 111 | gtk_widget_set_sensitive(widget->button.update,TRUE); |
| 115 | gtk_widget_set_sensitive(widget->button.remove,TRUE); | 112 | gtk_widget_set_sensitive(widget->button.remove,TRUE); |
| 116 | gtk_widget_set_sensitive(widget->button.reset,TRUE); | 113 | gtk_widget_set_sensitive(widget->button.reset,TRUE); |
| 117 | - | ||
| 118 | } | 114 | } |
| 115 | + else | ||
| 116 | + { | ||
| 117 | + gtk_widget_set_sensitive(widget->button.update,FALSE); | ||
| 118 | + gtk_widget_set_sensitive(widget->button.remove,FALSE); | ||
| 119 | + gtk_widget_set_sensitive(widget->button.reset,FALSE); | ||
| 120 | + } | ||
| 121 | + | ||
| 119 | 122 | ||
| 120 | } | 123 | } |
| 121 | 124 | ||
| @@ -356,8 +359,8 @@ static void V3270FTSettingsDialog_init(V3270FTSettingsDialog *widget) | @@ -356,8 +359,8 @@ static void V3270FTSettingsDialog_init(V3270FTSettingsDialog *widget) | ||
| 356 | { | 359 | { |
| 357 | widget->queue.view = v3270_activity_list_new(); | 360 | widget->queue.view = v3270_activity_list_new(); |
| 358 | gtk_widget_set_tooltip_markup(widget->queue.view,_("Files to transfer")); | 361 | gtk_widget_set_tooltip_markup(widget->queue.view,_("Files to transfer")); |
| 359 | - g_signal_connect(G_OBJECT(widget->queue.view),"row-activated",G_CALLBACK(activity_selected),widget); | ||
| 360 | g_signal_connect(G_OBJECT(widget->queue.view),"has-file",G_CALLBACK(enable_queue_save),widget); | 362 | g_signal_connect(G_OBJECT(widget->queue.view),"has-file",G_CALLBACK(enable_queue_save),widget); |
| 363 | + g_signal_connect(G_OBJECT(widget->queue.view),"changed",G_CALLBACK(activity_selected),widget); | ||
| 361 | 364 | ||
| 362 | // Put the view inside a scrolled window. | 365 | // Put the view inside a scrolled window. |
| 363 | GtkWidget * scrolled = gtk_scrolled_window_new(NULL,NULL); | 366 | GtkWidget * scrolled = gtk_scrolled_window_new(NULL,NULL); |
src/filetransfer/activitylist.c
| @@ -36,6 +36,7 @@ | @@ -36,6 +36,7 @@ | ||
| 36 | enum _SIGNALS | 36 | enum _SIGNALS |
| 37 | { | 37 | { |
| 38 | V3270_ACTIVITY_LIST_HAS_FILE_SIGNAL, ///< @brief Indicates if the list has a file name set. | 38 | V3270_ACTIVITY_LIST_HAS_FILE_SIGNAL, ///< @brief Indicates if the list has a file name set. |
| 39 | + V3270_ACTIVITY_LIST_SELECTED_SIGNAL, ///< @brief Indicates if the list has a file name set. | ||
| 39 | 40 | ||
| 40 | V3270_ACTIVITY_LIST_LAST_SIGNAL | 41 | V3270_ACTIVITY_LIST_LAST_SIGNAL |
| 41 | }; | 42 | }; |
| @@ -104,12 +105,36 @@ | @@ -104,12 +105,36 @@ | ||
| 104 | debug("%s",__FUNCTION__); | 105 | debug("%s",__FUNCTION__); |
| 105 | } | 106 | } |
| 106 | 107 | ||
| 108 | + static void row_activated(GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn G_GNUC_UNUSED(*column)) | ||
| 109 | + { | ||
| 110 | + debug("%s",__FUNCTION__); | ||
| 111 | + | ||
| 112 | + GtkTreeIter iter; | ||
| 113 | + GtkTreeModel * model = gtk_tree_view_get_model(view); | ||
| 114 | + | ||
| 115 | + if(gtk_tree_model_get_iter(model, &iter, path)) | ||
| 116 | + { | ||
| 117 | + GObject * activity = NULL; | ||
| 118 | + gtk_tree_model_get(model, &iter, 0, &activity, -1); | ||
| 119 | + | ||
| 120 | + if(activity) | ||
| 121 | + { | ||
| 122 | + debug("%s: activity is %p",__FUNCTION__,activity); | ||
| 123 | + g_signal_emit(view, v3270_activity_list_signals[V3270_ACTIVITY_LIST_SELECTED_SIGNAL], 0, activity); | ||
| 124 | + } | ||
| 125 | + | ||
| 126 | + } | ||
| 127 | + } | ||
| 128 | + | ||
| 107 | static void V3270FTActivityList_class_init(V3270FTActivityListClass *klass) | 129 | static void V3270FTActivityList_class_init(V3270FTActivityListClass *klass) |
| 108 | { | 130 | { |
| 109 | - GObjectClass * gobject_class = G_OBJECT_CLASS(klass); | 131 | + GObjectClass * gobject_class = G_OBJECT_CLASS(klass); |
| 132 | + GtkTreeViewClass * treeview_class = GTK_TREE_VIEW_CLASS(klass); | ||
| 110 | 133 | ||
| 111 | gobject_class->dispose = dispose; | 134 | gobject_class->dispose = dispose; |
| 112 | 135 | ||
| 136 | + treeview_class->row_activated = row_activated; | ||
| 137 | + | ||
| 113 | klass->signal.has_file = V3270FTActivityList_has_file; | 138 | klass->signal.has_file = V3270FTActivityList_has_file; |
| 114 | 139 | ||
| 115 | v3270_activity_list_signals[V3270_ACTIVITY_LIST_HAS_FILE_SIGNAL] = | 140 | v3270_activity_list_signals[V3270_ACTIVITY_LIST_HAS_FILE_SIGNAL] = |
| @@ -121,6 +146,15 @@ | @@ -121,6 +146,15 @@ | ||
| 121 | v3270ft_VOID__VOID_BOOLEAN, | 146 | v3270ft_VOID__VOID_BOOLEAN, |
| 122 | G_TYPE_NONE, 1, G_TYPE_BOOLEAN); | 147 | G_TYPE_NONE, 1, G_TYPE_BOOLEAN); |
| 123 | 148 | ||
| 149 | + v3270_activity_list_signals[V3270_ACTIVITY_LIST_SELECTED_SIGNAL] = | ||
| 150 | + g_signal_new( "changed", | ||
| 151 | + G_OBJECT_CLASS_TYPE (gobject_class), | ||
| 152 | + G_SIGNAL_RUN_FIRST, | ||
| 153 | + 0, | ||
| 154 | + NULL, NULL, | ||
| 155 | + v3270ft_VOID__VOID_POINTER, | ||
| 156 | + G_TYPE_NONE, 1, G_TYPE_POINTER); | ||
| 157 | + | ||
| 124 | 158 | ||
| 125 | } | 159 | } |
| 126 | 160 | ||
| @@ -251,6 +285,7 @@ | @@ -251,6 +285,7 @@ | ||
| 251 | { | 285 | { |
| 252 | debug("%s: Selecting inserted activity",__FUNCTION__); | 286 | debug("%s: Selecting inserted activity",__FUNCTION__); |
| 253 | gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)),&iter); | 287 | gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)),&iter); |
| 288 | + g_signal_emit(widget, v3270_activity_list_signals[V3270_ACTIVITY_LIST_SELECTED_SIGNAL], 0, activity); | ||
| 254 | } | 289 | } |
| 255 | 290 | ||
| 256 | } | 291 | } |