Commit bb3d4e4d0719685f45aa992657bbcd940a497703
1 parent
01079aa3
Exists in
master
and in
3 other branches
Implementando novos diálogos de transferência de arquivo
Showing
2 changed files
with
37 additions
and
16 deletions
Show diff stats
| @@ -126,9 +126,8 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); | @@ -126,9 +126,8 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); | ||
| 126 | return 0; | 126 | return 0; |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | - static void def_complete(H3270FT *ft,unsigned long length,double kbytes_sec,const char *mode) | 129 | + static void def_complete(H3270FT *ft,unsigned long length,double kbytes_sec) |
| 130 | { | 130 | { |
| 131 | - | ||
| 132 | } | 131 | } |
| 133 | 132 | ||
| 134 | static void def_message(H3270FT *ft, const char *errmsg) | 133 | static void def_message(H3270FT *ft, const char *errmsg) |
| @@ -157,7 +156,7 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); | @@ -157,7 +156,7 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); | ||
| 157 | } | 156 | } |
| 158 | 157 | ||
| 159 | 158 | ||
| 160 | - LIB3270_EXPORT H3270FT * lib3270_ft_new(H3270 *session, LIB3270_FT_OPTION flags, const char *local, const char *remote, int lrecl, int blksize, int primspace, int secspace, int dft, const char **msg) | 159 | + LIB3270_EXPORT H3270FT * lib3270_ft_new(H3270 *session, LIB3270_FT_OPTION flags, const char *local, const char *remote, int lrecl, int blksize, int primspace, int secspace, int dft) |
| 161 | { | 160 | { |
| 162 | H3270FT * ftHandle = (H3270FT *) session->ft; | 161 | H3270FT * ftHandle = (H3270FT *) session->ft; |
| 163 | FILE * ft_local_file = NULL; | 162 | FILE * ft_local_file = NULL; |
| @@ -166,14 +165,25 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); | @@ -166,14 +165,25 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); | ||
| 166 | // trace("%s(%s)",__FUNCTION__,local); | 165 | // trace("%s(%s)",__FUNCTION__,local); |
| 167 | if(!lib3270_connected(session)) | 166 | if(!lib3270_connected(session)) |
| 168 | { | 167 | { |
| 169 | - *msg = N_( "Disconnected from host" ); | ||
| 170 | - errno = EINVAL; | 168 | + lib3270_popup_dialog( session, |
| 169 | + LIB3270_NOTIFY_ERROR, | ||
| 170 | + _( "Request failed" ), | ||
| 171 | + _( "Can't start file transfer." ), | ||
| 172 | + "%s", | ||
| 173 | + _( "Disconnected from host." )); | ||
| 174 | + errno = ENOTCONN; | ||
| 171 | return NULL; | 175 | return NULL; |
| 172 | } | 176 | } |
| 173 | 177 | ||
| 174 | if(ftHandle) | 178 | if(ftHandle) |
| 175 | { | 179 | { |
| 176 | - *msg = N_( "File transfer is already active in this session" ); | 180 | + lib3270_popup_dialog( session, |
| 181 | + LIB3270_NOTIFY_ERROR, | ||
| 182 | + _( "Request failed" ), | ||
| 183 | + _( "Can't start file transfer." ), | ||
| 184 | + "%s", | ||
| 185 | + _( "File transfer is already active in this session." )); | ||
| 186 | + | ||
| 177 | errno = EBUSY; | 187 | errno = EBUSY; |
| 178 | return NULL; | 188 | return NULL; |
| 179 | } | 189 | } |
| @@ -181,7 +191,12 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); | @@ -181,7 +191,12 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); | ||
| 181 | // Check remote file | 191 | // Check remote file |
| 182 | if(!*remote) | 192 | if(!*remote) |
| 183 | { | 193 | { |
| 184 | - *msg = N_( "The remote file name is invalid" ); | 194 | + lib3270_popup_dialog( session, |
| 195 | + LIB3270_NOTIFY_ERROR, | ||
| 196 | + _( "Request failed" ), | ||
| 197 | + _( "Can't start file transfer." ), | ||
| 198 | + "%s", | ||
| 199 | + _( "The remote file name is invalid." )); | ||
| 185 | errno = EINVAL; | 200 | errno = EINVAL; |
| 186 | return NULL; | 201 | return NULL; |
| 187 | } | 202 | } |
| @@ -195,7 +210,12 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); | @@ -195,7 +210,12 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); | ||
| 195 | 210 | ||
| 196 | if(!ft_local_file) | 211 | if(!ft_local_file) |
| 197 | { | 212 | { |
| 198 | - *msg = N_( "Can't open local file" ); | 213 | + lib3270_popup_dialog( session, |
| 214 | + LIB3270_NOTIFY_ERROR, | ||
| 215 | + _( "Request failed" ), | ||
| 216 | + _( "Can't open local file." ), | ||
| 217 | + "%s", | ||
| 218 | + strerror(errno)); | ||
| 199 | return NULL; | 219 | return NULL; |
| 200 | } | 220 | } |
| 201 | 221 | ||
| @@ -241,8 +261,6 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); | @@ -241,8 +261,6 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); | ||
| 241 | 261 | ||
| 242 | session->ft = ftHandle; | 262 | session->ft = ftHandle; |
| 243 | 263 | ||
| 244 | - | ||
| 245 | - | ||
| 246 | return ftHandle; | 264 | return ftHandle; |
| 247 | } | 265 | } |
| 248 | 266 | ||
| @@ -426,8 +444,10 @@ void ft_complete(H3270FT *ft, const char *errmsg) | @@ -426,8 +444,10 @@ void ft_complete(H3270FT *ft, const char *errmsg) | ||
| 426 | 444 | ||
| 427 | ft_update_length(ft); | 445 | ft_update_length(ft); |
| 428 | 446 | ||
| 429 | - ft->message(ft,errmsg); | ||
| 430 | - ft->complete(ft,ft->ft_length,kbytes_sec,ft->ft_is_cut ? "CUT" : "DFT"); | 447 | + if(errmsg) |
| 448 | + ft->message(ft,errmsg); | ||
| 449 | + | ||
| 450 | + ft->complete(ft,ft->ft_length,kbytes_sec); | ||
| 431 | 451 | ||
| 432 | } | 452 | } |
| 433 | 453 | ||
| @@ -500,10 +520,11 @@ void ft_running(H3270FT *ft, Boolean is_cut) | @@ -500,10 +520,11 @@ void ft_running(H3270FT *ft, Boolean is_cut) | ||
| 500 | void ft_aborting(H3270FT *h) | 520 | void ft_aborting(H3270FT *h) |
| 501 | { | 521 | { |
| 502 | if (h->state == FT_RUNNING || h->state == FT_ABORT_WAIT) | 522 | if (h->state == FT_RUNNING || h->state == FT_ABORT_WAIT) |
| 523 | + { | ||
| 503 | set_ft_state(h,FT_ABORT_SENT); | 524 | set_ft_state(h,FT_ABORT_SENT); |
| 504 | - | ||
| 505 | - h->aborting(h); | ||
| 506 | - | 525 | + h->message(h,N_("Aborting...")); |
| 526 | + h->aborting(h); | ||
| 527 | + } | ||
| 507 | } | 528 | } |
| 508 | 529 | ||
| 509 | /* Process a disconnect abort. */ | 530 | /* Process a disconnect abort. */ |
ft_cut.c
| @@ -331,7 +331,7 @@ static void cut_control_code(H3270 *hSession) | @@ -331,7 +331,7 @@ static void cut_control_code(H3270 *hSession) | ||
| 331 | trace_ds(hSession,"XFER_COMPLETE\n"); | 331 | trace_ds(hSession,"XFER_COMPLETE\n"); |
| 332 | cut_ack(hSession); | 332 | cut_ack(hSession); |
| 333 | hSession->cut_xfer_in_progress = 0; | 333 | hSession->cut_xfer_in_progress = 0; |
| 334 | - ft_complete(ft,N_( "Complete" ) ); | 334 | + ft_complete(ft,N_( "Transfer complete" ) ); |
| 335 | break; | 335 | break; |
| 336 | 336 | ||
| 337 | case SC_ABORT_FILE: | 337 | case SC_ABORT_FILE: |