From f0fc99bd9d89da26631312412b25554db1235f67 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 8 Feb 2019 20:13:09 -0200 Subject: [PATCH] Working in new FT settings dialog. --- src/include/v3270/filetransfer.h | 1 + src/v3270ft/dialog.c | 22 ++++++++++++++++++++++ src/v3270ft/settings.c | 13 +++++++++++++ 3 files changed, 36 insertions(+), 0 deletions(-) diff --git a/src/include/v3270/filetransfer.h b/src/include/v3270/filetransfer.h index 30597c3..184dcaa 100644 --- a/src/include/v3270/filetransfer.h +++ b/src/include/v3270/filetransfer.h @@ -99,6 +99,7 @@ LIB3270_EXPORT void v3270_ft_settings_update(GtkWidget *widget); LIB3270_EXPORT void v3270_ft_settings_set_options(GtkWidget *widget, LIB3270_FT_OPTION options); + LIB3270_EXPORT gboolean v3270_ft_settings_equals(GtkWidget *widget, GObject *activity); // FT Activity widget #define G_TYPE_V3270_FT_ACTIVITY (V3270FTActivity_get_type ()) diff --git a/src/v3270ft/dialog.c b/src/v3270ft/dialog.c index 11a04e3..d3fd936 100644 --- a/src/v3270ft/dialog.c +++ b/src/v3270ft/dialog.c @@ -124,6 +124,28 @@ static void update_clicked(GtkButton G_GNUC_UNUSED(*button), V3270FTDialog *widg static void insert_clicked(GtkButton G_GNUC_UNUSED(*button), V3270FTDialog *widget) { + GtkTreeIter iter; + GtkTreeModel * model = gtk_tree_view_get_model(widget->queue); + + if(gtk_tree_model_get_iter_first(model,&iter)) + { + do + { + GObject * activity = NULL; + gtk_tree_model_get(model, &iter, 0, &activity, -1); + + if(activity && v3270_ft_settings_equals(widget->settings,activity)) + { + debug("%s: Activity already inserted",__FUNCTION__); + return; + } + + } + while(gtk_tree_model_iter_next(model,&iter)); + } + + // Not found, insert it. + } static void V3270FTDialog_init(V3270FTDialog *widget) diff --git a/src/v3270ft/settings.c b/src/v3270ft/settings.c index e4f3cab..83ef253 100644 --- a/src/v3270ft/settings.c +++ b/src/v3270ft/settings.c @@ -549,6 +549,19 @@ static void open_select_file_dialog(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconP } + LIB3270_EXPORT gboolean v3270_ft_settings_equals(GtkWidget *widget, GObject *activity) + { + V3270FTSettings * settings = GTK_V3270_FT_SETTINGS(widget); + + if(strcmp(gtk_entry_get_text(settings->file.local),v3270_ft_activity_get_local_filename(activity))) + return FALSE; + + if(strcmp(gtk_entry_get_text(settings->file.remote),v3270_ft_activity_get_remote_filename(activity))) + return FALSE; + + return TRUE; + } + LIB3270_EXPORT void v3270_ft_settings_update(GtkWidget *widget) { int ix; -- libgit2 0.21.2