From b4e98e07e30d2c21d7a9c4237658aa73d713727c Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 11 Feb 2019 10:30:06 -0200 Subject: [PATCH] Working on the new FT dialog. --- Makefile.in | 8 ++++---- src/include/v3270/filetransfer.h | 2 ++ src/v3270ft/dialog.c | 32 ++++++++++++++++++++++++++------ src/v3270ft/settings.c | 8 ++++++++ 4 files changed, 40 insertions(+), 10 deletions(-) diff --git a/Makefile.in b/Makefile.in index 4c7fa58..0a37a83 100644 --- a/Makefile.in +++ b/Makefile.in @@ -252,7 +252,7 @@ $(BINRLS)/$(LIBNAME)@DLLEXT@: \ @echo $< ... @rm -f $@ @$(LN_S) \ - $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \ + $^ \ $@ $(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \ @@ -260,7 +260,7 @@ $(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \ @rm -f $@ @$(LN_S) \ - $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \ + $^ \ $@ $(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \ @@ -437,7 +437,7 @@ $(BINDBG)/$(LIBNAME)@DLLEXT@: \ @echo $< ... @rm -f $@ @$(LN_S) \ - $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \ + $^ \ $@ $(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \ @@ -445,7 +445,7 @@ $(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \ @rm -f $@ @$(LN_S) \ - $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \ + $^ \ $@ $(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \ diff --git a/src/include/v3270/filetransfer.h b/src/include/v3270/filetransfer.h index 184dcaa..bfa5575 100644 --- a/src/include/v3270/filetransfer.h +++ b/src/include/v3270/filetransfer.h @@ -93,7 +93,9 @@ typedef struct _V3270FTSettingsClass V3270FTSettingsClass; LIB3270_EXPORT GtkWidget * v3270_ft_settings_new(); + LIB3270_EXPORT void v3270_ft_settings_set_activity(GtkWidget *widget, GObject *activity); + LIB3270_EXPORT GObject * v3270_ft_settings_create_activity(GtkWidget *widget); LIB3270_EXPORT void v3270_ft_settings_reset(GtkWidget *widget); LIB3270_EXPORT void v3270_ft_settings_update(GtkWidget *widget); diff --git a/src/v3270ft/dialog.c b/src/v3270ft/dialog.c index d3fd936..123f574 100644 --- a/src/v3270ft/dialog.c +++ b/src/v3270ft/dialog.c @@ -122,10 +122,10 @@ static void update_clicked(GtkButton G_GNUC_UNUSED(*button), V3270FTDialog *widg //gtk_widget_queue_draw(widget->queue); } -static void insert_clicked(GtkButton G_GNUC_UNUSED(*button), V3270FTDialog *widget) +static void insert_clicked(GtkWidget *button, V3270FTDialog *widget) { GtkTreeIter iter; - GtkTreeModel * model = gtk_tree_view_get_model(widget->queue); + GtkTreeModel * model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget->queue)); if(gtk_tree_model_get_iter_first(model,&iter)) { @@ -136,7 +136,26 @@ static void insert_clicked(GtkButton G_GNUC_UNUSED(*button), V3270FTDialog *widg if(activity && v3270_ft_settings_equals(widget->settings,activity)) { - debug("%s: Activity already inserted",__FUNCTION__); + // Activity already exist + GtkWidget * dialog = + gtk_message_dialog_new( + GTK_WINDOW(gtk_widget_get_toplevel(button)), + GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_CLOSE, + _("Activity already on the queue") + ); + + gtk_message_dialog_format_secondary_text( + GTK_MESSAGE_DIALOG(dialog), + _( "You can't add more than one acitivity with the same files.") + ); + + gtk_window_set_title(GTK_WINDOW(dialog),_("Can't add activity")); + + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); + return; } @@ -145,6 +164,7 @@ static void insert_clicked(GtkButton G_GNUC_UNUSED(*button), V3270FTDialog *widg } // Not found, insert it. + v3270_activity_list_append(widget->queue,v3270_ft_settings_create_activity(widget->settings)); } @@ -175,13 +195,13 @@ static void V3270FTDialog_init(V3270FTDialog *widget) g_object_set(G_OBJECT(widget->button.valid),"margin-top",6,NULL); widget->button.reset = v3270_box_pack_end(widget->button.valid,gtk_button_new_with_mnemonic("_Reset"),FALSE,FALSE,0); - g_signal_connect(widget->button.reset,"clicked",reset_clicked,widget); + g_signal_connect(widget->button.reset,"clicked",G_CALLBACK(reset_clicked),widget); widget->button.update = v3270_box_pack_end(widget->button.valid,gtk_button_new_with_mnemonic("_Update"),FALSE,FALSE,0); - g_signal_connect(widget->button.update,"clicked",update_clicked,widget); + g_signal_connect(widget->button.update,"clicked",G_CALLBACK(update_clicked),widget); widget->button.insert = v3270_box_pack_end(widget->button.valid,gtk_button_new_with_mnemonic("_Insert"),FALSE,FALSE,0); - g_signal_connect(widget->button.insert,"clicked",insert_clicked,widget); + g_signal_connect(widget->button.insert,"clicked",G_CALLBACK(insert_clicked),widget); gtk_widget_set_sensitive(widget->button.update,FALSE); gtk_widget_set_sensitive(widget->button.reset,FALSE); diff --git a/src/v3270ft/settings.c b/src/v3270ft/settings.c index 83ef253..e6ce160 100644 --- a/src/v3270ft/settings.c +++ b/src/v3270ft/settings.c @@ -591,6 +591,14 @@ static void open_select_file_dialog(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconP } } + LIB3270_EXPORT GObject * v3270_ft_settings_create_activity(GtkWidget *widget) + { + V3270FTSettings * settings = GTK_V3270_FT_SETTINGS(widget); + settings->activity = v3270_ft_activity_new(); + v3270_ft_settings_update(widget); + return settings->activity; + } + LIB3270_EXPORT void v3270_ft_settings_set_options(GtkWidget *widget, LIB3270_FT_OPTION options) { int ix; -- libgit2 0.21.2