diff --git a/src/filetransfer/activity.c b/src/filetransfer/activity.c
index f42a5f4..a20ef7f 100644
--- a/src/filetransfer/activity.c
+++ b/src/filetransfer/activity.c
@@ -71,7 +71,7 @@
static void dispose(GObject *object)
{
- debug("%s",__FUNCTION__);
+ debug("activity::%s(%p)",__FUNCTION__,object);
V3270FTActivity * activity = G_V3270_FT_ACTIVITY(object);
diff --git a/src/filetransfer/worker.c b/src/filetransfer/worker.c
index fe68f7f..53e2a83 100644
--- a/src/filetransfer/worker.c
+++ b/src/filetransfer/worker.c
@@ -45,9 +45,10 @@
{
GtkGrid parent;
- GtkProgressBar * pbar; ///< @brief Progress bar.
+ GtkProgressBar * pbar; ///< @brief Progress bar.
+ GObject * activity; ///< @brief File transfer activity;
- GtkEntry * field[PROGRESS_FIELD_COUNT]; ///< @brief Transfer information widgets.
+ GtkEntry * field[PROGRESS_FIELD_COUNT]; ///< @brief Transfer information widgets.
};
@@ -60,8 +61,13 @@
{
debug("%s",__FUNCTION__);
- // V3270FTWorker * worker = GTK_V3270_FT_WORKER(object);
+ V3270FTWorker * worker = GTK_V3270_FT_WORKER(object);
+ if(worker->activity)
+ {
+ g_object_unref(worker->activity);
+ worker->activity = NULL;
+ }
G_OBJECT_CLASS(V3270FTWorker_parent_class)->finalize(object);
@@ -115,7 +121,7 @@
gtk_box_set_homogeneous(GTK_BOX(views),TRUE);
gtk_grid_attach(GTK_GRID(widget),views,0,2,10,1);
g_object_set(G_OBJECT(views),"margin-top",8,NULL);
- g_object_set(G_OBJECT(views),"margin-botton",8,NULL);
+ g_object_set(G_OBJECT(views),"margin-bottom",8,NULL);
{
// Left options
@@ -168,3 +174,37 @@
return GTK_WIDGET(g_object_new(GTK_TYPE_V3270_FT_WORKER, NULL));
}
+ LIB3270_EXPORT void v3270_ft_worker_set_activity(GtkWidget *widget, GObject *activity)
+ {
+ size_t ix;
+
+ V3270FTWorker * worker = GTK_V3270_FT_WORKER(widget);
+
+ if(worker->activity)
+ {
+ g_object_unref(worker->activity);
+ worker->activity = NULL;
+ }
+
+ if(activity)
+ {
+ worker->activity = activity;
+ g_object_ref(worker->activity);
+
+ gtk_entry_set_text(worker->field[PROGRESS_FIELD_LOCAL],v3270_ft_activity_get_local_filename(activity));
+ gtk_entry_set_text(worker->field[PROGRESS_FIELD_REMOTE],v3270_ft_activity_get_remote_filename(activity));
+
+ }
+ else
+ {
+ gtk_entry_set_text(worker->field[PROGRESS_FIELD_LOCAL],"");
+ gtk_entry_set_text(worker->field[PROGRESS_FIELD_REMOTE],"");
+ }
+
+ for(ix = PROGRESS_FIELD_TOTAL; ix < PROGRESS_FIELD_COUNT; ix++)
+ {
+ gtk_entry_set_text(worker->field[ix],"");
+ }
+
+ }
+
diff --git a/src/include/v3270/filetransfer.h b/src/include/v3270/filetransfer.h
index b127402..741cf2d 100644
--- a/src/include/v3270/filetransfer.h
+++ b/src/include/v3270/filetransfer.h
@@ -158,5 +158,6 @@
typedef struct _V3270FTWorkerClass V3270FTWorkerClass;
LIB3270_EXPORT GtkWidget * v3270_ft_worker_new();
+ LIB3270_EXPORT void v3270_ft_worker_set_activity(GtkWidget *widget, GObject *activity);
#endif // V3270FT_H_INCLUDED
diff --git a/src/testprogram/testprogram.c b/src/testprogram/testprogram.c
index f81ebca..5fc3d23 100644
--- a/src/testprogram/testprogram.c
+++ b/src/testprogram/testprogram.c
@@ -153,6 +153,12 @@ static void ft_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal)
GtkWidget * worker = v3270_ft_worker_new();
gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),worker,TRUE,TRUE,2);
+ GObject * activity = v3270_ft_activity_new();
+ v3270_ft_activity_set_local_filename(activity,"local_file");
+ v3270_ft_activity_set_remote_filename(activity,"remove_file");
+ v3270_ft_worker_set_activity(worker,activity);
+ g_object_unref(activity);
+
// GtkWidget * dialog = v3270ftprogress_new();
// GtkWidget * dialog = v3270_ft_dialog_new(terminal);
diff --git a/v3270.cbp b/v3270.cbp
index 7130807..ab02518 100644
--- a/v3270.cbp
+++ b/v3270.cbp
@@ -121,6 +121,9 @@
+
+
+
--
libgit2 0.21.2