From 8dc00672fa382423e3643df3184a7ca5d7e496dd Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Wed, 11 Dec 2013 17:41:23 +0000 Subject: [PATCH] Corrigindo incoerências nos diálogos e APIs --- android/jni/main.cpp | 2 +- src/classlib/local.cc | 8 ++++---- src/classlib/remote.cc | 2 +- src/classlib/session.cc | 7 ++++++- src/include/lib3270.h | 2 +- src/include/pw3270.h | 6 +++--- src/include/pw3270/class.h | 3 ++- src/include/pw3270/v3270.h | 4 ++-- src/lib3270/host.c | 2 +- src/lib3270/macros.c | 4 ++-- src/lib3270/testprogram.c | 2 +- src/plugins/rx3270/pluginmain.cc | 6 +++--- src/pw3270/actions.c | 34 ++++++++-------------------------- src/pw3270/ft/ftdialog.c | 12 +++++++++--- src/pw3270/v3270/widget.c | 24 +++++------------------- src/pw3270/window.c | 61 +++++++++++++++++++++++++++++-------------------------------- 16 files changed, 78 insertions(+), 101 deletions(-) diff --git a/android/jni/main.cpp b/android/jni/main.cpp index fe251ad..5e7605a 100644 --- a/android/jni/main.cpp +++ b/android/jni/main.cpp @@ -337,7 +337,7 @@ JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_setHost(JNIEnv *env, jobjec { PW3270_JNI_BEGIN - lib3270_set_host(PW3270_SESSION,env->GetStringUTFChars(hostname, 0)); + lib3270_set_url(PW3270_SESSION,env->GetStringUTFChars(hostname, 0)); PW3270_JNI_END } diff --git a/src/classlib/local.cc b/src/classlib/local.cc index 5d9e256..729c397 100644 --- a/src/classlib/local.cc +++ b/src/classlib/local.cc @@ -280,7 +280,7 @@ LIB3270_CSTATE (*_get_connection_state)(H3270 *h); int (*_disconnect)(H3270 *h); int (*_connect)(H3270 *h,int wait); - const char (*_set_host)(H3270 *h, const char *n); + const char (*_set_url)(H3270 *h, const char *n); int (*_is_connected)(H3270 *h); void (*_main_iterate)(H3270 *h, int wait); int (*_wait)(H3270 *hSession, int seconds); @@ -335,7 +335,7 @@ { (void **) & _get_version, "lib3270_get_version" }, { (void **) & _disconnect, "lib3270_disconnect" }, { (void **) & _connect, "lib3270_connect" }, - { (void **) & _set_host, "lib3270_set_host" }, + { (void **) & _set_url, "lib3270_set_url" }, { (void **) & _main_iterate, "lib3270_main_iterate" }, { (void **) & _wait, "lib3270_wait" }, { (void **) & _enter, "lib3270_enter" }, @@ -423,9 +423,9 @@ return _connect(hSession,(int) wait); } - int set_host(const char *uri) + int set_url(const char *uri) { - return (_set_host(hSession,uri) == NULL) ? 0 : 1; + return (_set_url(hSession,uri) == NULL) ? 0 : 1; } int disconnect(void) diff --git a/src/classlib/remote.cc b/src/classlib/remote.cc index 31def2f..b1df909 100644 --- a/src/classlib/remote.cc +++ b/src/classlib/remote.cc @@ -681,7 +681,7 @@ } - int set_host(const char *uri) + int set_url(const char *uri) { int rc; diff --git a/src/classlib/session.cc b/src/classlib/session.cc index 8ca6247..4f9f370 100644 --- a/src/classlib/session.cc +++ b/src/classlib/session.cc @@ -469,12 +469,17 @@ return EINVAL; } + int session::set_host(const char *host) + { + return set_url(host); + } + int session::connect(const char *host, bool wait) { int rc = 0; if(host && *host) - rc = set_host(host); + rc = set_url(host); if(!rc) rc = connect(wait); diff --git a/src/include/lib3270.h b/src/include/lib3270.h index a24a53a..e3c5b19 100644 --- a/src/include/lib3270.h +++ b/src/include/lib3270.h @@ -398,7 +398,7 @@ * @return Processed host url * */ - LIB3270_EXPORT const char * lib3270_set_host(H3270 *h, const char *url); + LIB3270_EXPORT const char * lib3270_set_url(H3270 *h, const char *url); /** * Get hostname for the connect/reconnect operations. diff --git a/src/include/pw3270.h b/src/include/pw3270.h index eb0e302..65fdde2 100644 --- a/src/include/pw3270.h +++ b/src/include/pw3270.h @@ -52,9 +52,9 @@ LIB3270_EXPORT GtkWidget * pw3270_new(const gchar *host, const gchar *systype, unsigned short colors); - LIB3270_EXPORT const gchar * pw3270_set_host(GtkWidget *widget, const gchar *uri); + LIB3270_EXPORT const gchar * pw3270_set_url(GtkWidget *widget, const gchar *uri); LIB3270_EXPORT const gchar * pw3270_get_hostname(GtkWidget *widget); - LIB3270_EXPORT void pw3270_connect(GtkWidget *widget, const gchar *uri); + LIB3270_EXPORT void pw3270_connect(GtkWidget *widget); LIB3270_EXPORT gboolean pw3270_get_toggle(GtkWidget *widget, LIB3270_TOGGLE ix); LIB3270_EXPORT gboolean pw3270_set_toggle_by_name(GtkWidget *widget, const gchar *name, gboolean flag); @@ -69,7 +69,7 @@ LIB3270_EXPORT const gchar * pw3270_get_session_name(GtkWidget *widget); LIB3270_EXPORT void pw3270_set_session_name(GtkWidget *widget, const gchar *name); - LIB3270_EXPORT void pw3270_set_session_options(GtkWidget *widget, LIB3270_OPTION options); + LIB3270_EXPORT void pw3270_set_host_type(GtkWidget *widget, const gchar *name); LIB3270_EXPORT int pw3270_set_session_color_type(GtkWidget *widget, unsigned short color_type); LIB3270_EXPORT gchar * pw3270_get_filename(GtkWidget *widget, const gchar *group, const gchar *key, GtkFileFilter **filter, const gchar *title); diff --git a/src/include/pw3270/class.h b/src/include/pw3270/class.h index 5cb984b..cc1bba8 100644 --- a/src/include/pw3270/class.h +++ b/src/include/pw3270/class.h @@ -129,8 +129,9 @@ // Connection & Network int connect(const char *host, bool wait = true); + int set_host(const char *host); virtual int connect(bool wait = true) = 0; - virtual int set_host(const char *hostname) = 0; + virtual int set_url(const char *hostname) = 0; virtual int disconnect(void) = 0; virtual int wait_for_ready(int seconds) = 0; virtual int wait(int seconds) = 0; diff --git a/src/include/pw3270/v3270.h b/src/include/pw3270/v3270.h index ed04df7..3bda914 100644 --- a/src/include/pw3270/v3270.h +++ b/src/include/pw3270/v3270.h @@ -158,7 +158,7 @@ LIB3270_EXPORT H3270 * v3270_get_session(GtkWidget *widget); LIB3270_EXPORT gboolean v3270_is_connected(GtkWidget *widget); - LIB3270_EXPORT int v3270_connect(GtkWidget *widget, const gchar *host); + LIB3270_EXPORT int v3270_connect(GtkWidget *widget); LIB3270_EXPORT void v3270_disconnect(GtkWidget *widget); LIB3270_EXPORT int v3270_set_host_charset(GtkWidget *widget, const gchar *name); @@ -214,7 +214,7 @@ LIB3270_EXPORT void v3270_set_session_options(GtkWidget *widget, LIB3270_OPTION options); LIB3270_EXPORT int v3270_set_session_color_type(GtkWidget *widget, unsigned short colortype); LIB3270_EXPORT int v3270_set_host_type(GtkWidget *widget, const char *name); - LIB3270_EXPORT const gchar * v3270_set_host(GtkWidget *widget, const gchar *uri); + LIB3270_EXPORT const gchar * v3270_set_url(GtkWidget *widget, const gchar *uri); LIB3270_EXPORT const gchar * v3270_get_hostname(GtkWidget *widget); LIB3270_EXPORT GtkWidget * v3270_get_default_widget(void); diff --git a/src/lib3270/host.c b/src/lib3270/host.c index 402320c..3f86d31 100644 --- a/src/lib3270/host.c +++ b/src/lib3270/host.c @@ -506,7 +506,7 @@ static void update_host(H3270 *h) } -LIB3270_EXPORT const char * lib3270_set_host(H3270 *h, const char *n) +LIB3270_EXPORT const char * lib3270_set_url(H3270 *h, const char *n) { CHECK_SESSION_HANDLE(h); diff --git a/src/lib3270/macros.c b/src/lib3270/macros.c index afdead7..21c11af 100644 --- a/src/lib3270/macros.c +++ b/src/lib3270/macros.c @@ -258,12 +258,12 @@ break; case 2: - lib3270_set_host(hSession,argv[1]); + lib3270_set_url(hSession,argv[1]); rc = lib3270_connect(hSession,0); break; case 3: - lib3270_set_host(hSession,argv[1]); + lib3270_set_url(hSession,argv[1]); rc = lib3270_connect(hSession,atoi(argv[2])); break; diff --git a/src/lib3270/testprogram.c b/src/lib3270/testprogram.c index dc7effc..d7ca4b0 100644 --- a/src/lib3270/testprogram.c +++ b/src/lib3270/testprogram.c @@ -40,7 +40,7 @@ int main(int numpar, char *param[]) // rc = lib3270_connect_host(h, "127.0.0.1", "9090", LIB3270_CONNECT_OPTION_WAIT); // lib3270_set_host_url(h,"tn3270://fandezhi.efglobe.com:9090?lu=default"); - lib3270_set_host(h,"tn3270://fandezhi.efglobe.com"); + lib3270_set_url(h,"tn3270://fandezhi.efglobe.com"); printf("\nConnect exits with rc=%d\n",rc); diff --git a/src/plugins/rx3270/pluginmain.cc b/src/plugins/rx3270/pluginmain.cc index 6c59915..520dcca 100644 --- a/src/plugins/rx3270/pluginmain.cc +++ b/src/plugins/rx3270/pluginmain.cc @@ -89,7 +89,7 @@ const string get_version(void); LIB3270_CSTATE get_cstate(void); int disconnect(void); - int set_host(const char *uri); + int set_url(const char *uri); int connect(bool wait = true); bool is_connected(void); bool is_ready(void); @@ -779,9 +779,9 @@ const char * plugin::asc2ebc(unsigned char *str, int sz) return lib3270_asc2ebc(hSession,str,sz); } -int plugin::set_host(const char *uri) +int plugin::set_url(const char *uri) { - return lib3270_set_host(hSession,uri) != NULL ? 1 : 0; + return lib3270_set_url(hSession,uri) != NULL ? 1 : 0; } const char * plugin::ebc2asc(unsigned char *str, int sz) diff --git a/src/pw3270/actions.c b/src/pw3270/actions.c index ebf749b..21e6aee 100644 --- a/src/pw3270/actions.c +++ b/src/pw3270/actions.c @@ -75,39 +75,21 @@ static void connect_action(GtkAction *action, GtkWidget *widget) trace_action(action,widget); - #warning Reimplementar + if(host) + v3270_set_url(widget,host); - /* - if(!systype) - systype = get_string_from_config("host","systype","S390"); + if(systype) + v3270_set_host_type(widget,systype); if(colortype) - colors = atoi(colortype); - else - colors = (unsigned short) get_integer_from_config("host","colortype",16); - - trace("System type=%s System colors=%d",systype,(int) colors); + v3270_set_session_color_type(widget,atoi(colortype)); - v3270_set_session_color_type(widget,colors); - v3270_set_session_options(widget,pw3270_options_by_hosttype(systype)); - */ - - if(host) + host = v3270_get_hostname(widget); + if(host && *host) { - v3270_connect(widget,host); + v3270_connect(widget); return; } - else - { - gchar *ptr = get_string_from_config("host","uri",""); - if(*ptr) - { - v3270_connect(widget,ptr); - g_free(ptr); - return; - } - g_free(ptr); - } hostname_action(action,widget); } diff --git a/src/pw3270/ft/ftdialog.c b/src/pw3270/ft/ftdialog.c index 6519d28..c92fc9d 100644 --- a/src/pw3270/ft/ftdialog.c +++ b/src/pw3270/ft/ftdialog.c @@ -395,13 +395,19 @@ GtkWidget * v3270_ft_dialog_new(GtkWidget *parent, LIB3270_FT_OPTION options) gtk_widget_set_tooltip_text(GTK_WIDGET(browse),_("Select file")); g_signal_connect(G_OBJECT(browse),"clicked",G_CALLBACK(browse_file),dialog); - gtk_dialog_add_button(GTK_DIALOG(dialog),_( "_Cancel" ), GTK_RESPONSE_CANCEL); - dialog->ready = gtk_dialog_add_button(GTK_DIALOG(dialog), (dialog->options & LIB3270_FT_OPTION_RECEIVE) != 0 ? _( "_Receive") : _( "_Send" ), GTK_RESPONSE_ACCEPT); - gtk_widget_set_sensitive(dialog->ready,FALSE); + + gtk_widget_set_tooltip_text(GTK_WIDGET(dialog->ready), + (dialog->options & LIB3270_FT_OPTION_RECEIVE) != 0 ? _("Start download.") : _("Start upload.")); + + + gtk_widget_set_tooltip_text(gtk_dialog_add_button(GTK_DIALOG(dialog),_( "_Cancel" ), GTK_RESPONSE_CANCEL), + (dialog->options & LIB3270_FT_OPTION_RECEIVE) != 0 ? _("Cancel download.") : _("Cancel upload.")); + + g_signal_connect(G_OBJECT(dialog->filename[FILENAME_HOST]),"changed",G_CALLBACK(test_remote_file),dialog); if(options & LIB3270_FT_OPTION_RECEIVE) diff --git a/src/pw3270/v3270/widget.c b/src/pw3270/v3270/widget.c index abaf208..3c68c87 100644 --- a/src/pw3270/v3270/widget.c +++ b/src/pw3270/v3270/widget.c @@ -1389,25 +1389,11 @@ H3270 * v3270_get_session(GtkWidget *widget) return GTK_V3270(widget)->host; } -int v3270_connect(GtkWidget *widget, const gchar *uri) +int v3270_connect(GtkWidget *widget) { - v3270 * terminal; - int rc = -1; - - trace("%s widget=%p host=%p",__FUNCTION__,widget,uri); - g_return_val_if_fail(GTK_IS_V3270(widget),EINVAL); - terminal = GTK_V3270(widget); - - if(uri) - { - trace("%s(%s)",__FUNCTION__,uri); - lib3270_set_host(terminal->host,uri); - } - - return lib3270_connect(terminal->host,0); - + return lib3270_connect(GTK_V3270(widget)->host,0); } static gboolean notify_focus(GtkWidget *widget, GdkEventFocus *event) @@ -1446,7 +1432,7 @@ static void v3270_activate(GtkWidget *widget) if(lib3270_connected(terminal->host)) lib3270_enter(terminal->host); else if(lib3270_get_hostname(terminal->host)) - v3270_connect(widget,NULL); + v3270_connect(widget); else g_warning("Terminal widget %p activated without connection or valid hostname",terminal); } @@ -1500,11 +1486,11 @@ gboolean v3270_get_toggle(GtkWidget *widget, LIB3270_TOGGLE ix) * * Since: 5.0 **/ -const gchar * v3270_set_host(GtkWidget *widget, const gchar *uri) +const gchar * v3270_set_url(GtkWidget *widget, const gchar *uri) { g_return_if_fail(GTK_IS_V3270(widget)); g_return_if_fail(uri != NULL); - return lib3270_set_host(GTK_V3270(widget)->host,uri); + return lib3270_set_url(GTK_V3270(widget)->host,uri); } const gchar * v3270_get_hostname(GtkWidget *widget) diff --git a/src/pw3270/window.c b/src/pw3270/window.c index 559dbdf..6cfa3e6 100644 --- a/src/pw3270/window.c +++ b/src/pw3270/window.c @@ -178,25 +178,38 @@ GtkWidget * pw3270_new(const gchar *host, const gchar *systype, unsigned short colors) { - GtkWidget * widget = g_object_new(GTK_TYPE_PW3270, NULL); + GtkWidget * widget = g_object_new(GTK_TYPE_PW3270, NULL); + gboolean connct = FALSE; - #warning Reimplementar + if(host) + { + set_string_to_config("host","uri","%s",host); + pw3270_set_url(widget,host); + connct = TRUE; + } + else + { + gchar *ptr = get_string_from_config("host","uri",""); + if(*ptr) + { + pw3270_set_url(widget,ptr); + connct = pw3270_get_toggle(widget,LIB3270_TOGGLE_CONNECT_ON_STARTUP) ? TRUE : FALSE; + } + g_free(ptr); + } - /* if(systype) { set_string_to_config("host","uri","%s",systype); - pw3270_set_session_options(widget,pw3270_options_by_hosttype(systype)); + pw3270_set_host_type(widget,systype); } else { gchar *ptr = get_string_from_config("host","systype","S390"); - pw3270_set_session_options(widget,pw3270_options_by_hosttype(ptr)); + pw3270_set_host_type(widget,ptr); g_free(ptr); } - */ - if(colors) set_integer_to_config("host","colortype",colors); else @@ -204,40 +217,24 @@ pw3270_set_session_color_type(widget,colors); - if(host) - { - set_string_to_config("host","uri","%s",host); - pw3270_connect(widget,host); - } - else - { - gchar *ptr = get_string_from_config("host","uri",""); - - if(*ptr) - { - if(pw3270_get_toggle(widget,LIB3270_TOGGLE_CONNECT_ON_STARTUP)) - pw3270_connect(widget,ptr); - else - pw3270_set_host(widget,ptr); - } - g_free(ptr); - } - v3270_set_scaled_fonts(GTK_PW3270(widget)->terminal,get_boolean_from_config("terminal","sfonts",FALSE)); + if(connct) + pw3270_connect(widget); + return widget; } - void pw3270_connect(GtkWidget *widget, const gchar *uri) + void pw3270_connect(GtkWidget *widget) { g_return_if_fail(GTK_IS_PW3270(widget)); - v3270_connect(GTK_PW3270(widget)->terminal,uri); + v3270_connect(GTK_PW3270(widget)->terminal); } - const gchar * pw3270_set_host(GtkWidget *widget, const gchar *uri) + const gchar * pw3270_set_url(GtkWidget *widget, const gchar *uri) { g_return_if_fail(GTK_IS_PW3270(widget)); - return v3270_set_host(GTK_PW3270(widget)->terminal,uri); + return v3270_set_url(GTK_PW3270(widget)->terminal,uri); } const gchar * pw3270_get_hostname(GtkWidget *widget) @@ -295,10 +292,10 @@ update_window_title(widget); } - LIB3270_EXPORT void pw3270_set_session_options(GtkWidget *widget, LIB3270_OPTION options) + LIB3270_EXPORT void pw3270_set_host_type(GtkWidget *widget, const gchar *name) { g_return_if_fail(GTK_IS_PW3270(widget)); - v3270_set_session_options(GTK_PW3270(widget)->terminal,options); + v3270_set_host_type(GTK_PW3270(widget)->terminal,name); } LIB3270_EXPORT int pw3270_set_session_color_type(GtkWidget *widget, unsigned short colortype) -- libgit2 0.21.2