Commit 7daf2ea7978618321281194a8c74c63e29358434
Committed by
GitHub
Exists in
master
and in
1 other branch
Merge pull request #13 from PerryWerneck/develop
Update to latest developmento level.
Showing
11 changed files
with
674 additions
and
339 deletions
Show diff stats
Makefile.in
| ... | ... | @@ -109,7 +109,8 @@ DEPENDS= \ |
| 109 | 109 | src/filetransfer/marshal.h \ |
| 110 | 110 | src/filetransfer/private.h \ |
| 111 | 111 | src/terminal/marshal.h \ |
| 112 | - src/trace/marshal.h | |
| 112 | + src/trace/marshal.h \ | |
| 113 | + src/dialogs/settings/marshal.h | |
| 113 | 114 | |
| 114 | 115 | DATE_FMT = +%Y%m%d |
| 115 | 116 | ifdef SOURCE_DATE_EPOCH |
| ... | ... | @@ -239,6 +240,14 @@ src/terminal/marshal.h: \ |
| 239 | 240 | |
| 240 | 241 | @$(GENMARSHAL) --prefix=v3270 --header $< > $@ |
| 241 | 242 | |
| 243 | +src/dialogs/settings/marshal.h: \ | |
| 244 | + src/dialogs/settings/marshal | |
| 245 | + | |
| 246 | + @echo $@ ... | |
| 247 | + @$(MKDIR) $(@D) | |
| 248 | + | |
| 249 | + @$(GENMARSHAL) --prefix=v3270 --header $< > $@ | |
| 250 | + | |
| 242 | 251 | $(OBJDIR)/marshal/v3270.c: \ |
| 243 | 252 | src/terminal/marshal |
| 244 | 253 | ... | ... |
locale/pt_BR.po
| 1 | 1 | # |
| 2 | -# Perry Werneck <perry.werneck@gmail.com>, 2012, 2013, 2014, 2016, 2017, 2018, 2019, 2020. | |
| 2 | +# Perry Werneck <perry.werneck@gmail.com>, 2012, 2013, 2014, 2016, 2017, 2018, 2019, 2020, 2021. | |
| 3 | 3 | # |
| 4 | 4 | msgid "" |
| 5 | 5 | msgstr "" |
| 6 | 6 | "Project-Id-Version: pw3270 5.0\n" |
| 7 | 7 | "Report-Msgid-Bugs-To: \n" |
| 8 | -"POT-Creation-Date: 2020-10-24 11:11-0300\n" | |
| 9 | -"PO-Revision-Date: 2020-10-15 15:37-0300\n" | |
| 8 | +"POT-Creation-Date: 2021-04-19 00:14-0300\n" | |
| 9 | +"PO-Revision-Date: 2021-04-19 00:49-0300\n" | |
| 10 | 10 | "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" |
| 11 | -"Language-Team: Português <>\n" | |
| 11 | +"Language-Team: Português <perry.werneck@gmail.com>\n" | |
| 12 | 12 | "Language: pt_BR\n" |
| 13 | 13 | "MIME-Version: 1.0\n" |
| 14 | 14 | "Content-Type: text/plain; charset=UTF-8\n" |
| ... | ... | @@ -16,11 +16,10 @@ msgstr "" |
| 16 | 16 | "X-Poedit-Language: Portuguese\n" |
| 17 | 17 | "X-Poedit-Country: BRAZIL\n" |
| 18 | 18 | "X-Poedit-SourceCharset: utf-8\n" |
| 19 | -"Plural-Forms: nplurals=4; plural= (n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != " | |
| 20 | -"11) ? 2 : 3;\n" | |
| 19 | +"Plural-Forms: nplurals=2; plural=(n > 1);\n" | |
| 21 | 20 | "X-Generator: Gtranslator 2.91.7\n" |
| 22 | 21 | |
| 23 | -#: src/dialogs/settings/host.c:170 | |
| 22 | +#: src/dialogs/settings/host.c:169 | |
| 24 | 23 | msgid "16 colors" |
| 25 | 24 | msgstr "16 cores" |
| 26 | 25 | |
| ... | ... | @@ -31,15 +30,15 @@ msgstr "16 cores" |
| 31 | 30 | msgid "3270 File transfer" |
| 32 | 31 | msgstr "Transferência de arquivos 3270" |
| 33 | 32 | |
| 34 | -#: src/terminal/accessible.c:101 | |
| 33 | +#: src/terminal/accessible.c:100 | |
| 35 | 34 | msgid "3270 screen" |
| 36 | 35 | msgstr "Tela 3270" |
| 37 | 36 | |
| 38 | -#: src/dialogs/settings/host.c:169 | |
| 37 | +#: src/dialogs/settings/host.c:168 | |
| 39 | 38 | msgid "8 colors" |
| 40 | 39 | msgstr "8 cores" |
| 41 | 40 | |
| 42 | -#: src/terminal/widget.c:158 | |
| 41 | +#: src/terminal/widget.c:159 | |
| 43 | 42 | msgid "" |
| 44 | 43 | "<b>Identity not verified</b>\n" |
| 45 | 44 | "Disconnected from host" |
| ... | ... | @@ -55,7 +54,7 @@ msgstr "<b>Opções de texto</b>" |
| 55 | 54 | msgid "A_ppend to file" |
| 56 | 55 | msgstr "_Adicionar ao arquivo" |
| 57 | 56 | |
| 58 | -#: src/dialogs/security.c:241 | |
| 57 | +#: src/dialogs/security.c:238 | |
| 59 | 58 | msgid "About security" |
| 60 | 59 | msgstr "Sobre a segurança" |
| 61 | 60 | |
| ... | ... | @@ -84,11 +83,11 @@ msgstr "Atividade já está na fila" |
| 84 | 83 | msgid "Add to copy" |
| 85 | 84 | msgstr "Adicionar à cópia" |
| 86 | 85 | |
| 87 | -#: src/dialogs/settings/host.c:216 | |
| 86 | +#: src/dialogs/settings/url.c:209 | |
| 88 | 87 | msgid "Address or name of the host to connect." |
| 89 | 88 | msgstr "Endereço ou nome do host a conectar." |
| 90 | 89 | |
| 91 | -#: src/tools/entry.c:121 | |
| 90 | +#: src/tools/entry.c:122 | |
| 92 | 91 | msgid "All files" |
| 93 | 92 | msgstr "Todos os arquivos" |
| 94 | 93 | |
| ... | ... | @@ -129,7 +128,7 @@ msgstr "Adiciona conteúdo do arquivo origem ao final do arquivo destino." |
| 129 | 128 | msgid "Assign it to action (<b>%s</b>)?" |
| 130 | 129 | msgstr "Associar com a ação (<b>%s</b>)?" |
| 131 | 130 | |
| 132 | -#: src/dialogs/settings/host.c:510 | |
| 131 | +#: src/dialogs/settings/host.c:463 | |
| 133 | 132 | msgid "Auto _disconnect" |
| 134 | 133 | msgstr "Desconexão automática" |
| 135 | 134 | |
| ... | ... | @@ -166,7 +165,7 @@ msgstr "Azul" |
| 166 | 165 | msgid "Bold" |
| 167 | 166 | msgstr "Negrito" |
| 168 | 167 | |
| 169 | -#: src/dialogs/load.c:181 src/dialogs/save/save.c:268 | |
| 168 | +#: src/dialogs/load.c:199 src/dialogs/save/save.c:276 | |
| 170 | 169 | msgid "C_haracter Coding" |
| 171 | 170 | msgstr "C_odificação de caracteres" |
| 172 | 171 | |
| ... | ... | @@ -188,7 +187,7 @@ msgstr "Não encontrei uma fonte válida com o nome \"%s\"" |
| 188 | 187 | msgid "Can't load %s" |
| 189 | 188 | msgstr "Não foi possível carregar %s" |
| 190 | 189 | |
| 191 | -#: src/dialogs/load.c:323 | |
| 190 | +#: src/dialogs/load.c:317 | |
| 192 | 191 | #, c-format |
| 193 | 192 | msgid "Can't open %s" |
| 194 | 193 | msgstr "Não foi possível abrir %s" |
| ... | ... | @@ -215,26 +214,25 @@ msgid "Can't paste text" |
| 215 | 214 | msgstr "Não é possível colar texto" |
| 216 | 215 | |
| 217 | 216 | #: src/filetransfer/save.c:117 src/filetransfer/activitylist.c:436 |
| 218 | -#: src/trace/trace.c:484 src/dialogs/transfer.c:91 src/dialogs/save/save.c:625 | |
| 217 | +#: src/trace/trace.c:484 src/dialogs/transfer.c:91 src/dialogs/save/save.c:608 | |
| 219 | 218 | #, c-format |
| 220 | 219 | msgid "Can't save %s" |
| 221 | 220 | msgstr "Não foi possível salvar arquivo %s" |
| 222 | 221 | |
| 223 | -#: src/filetransfer/worker.c:610 src/filetransfer/v3270ftprogress.c:773 | |
| 222 | +#: src/filetransfer/worker.c:618 src/filetransfer/v3270ftprogress.c:781 | |
| 224 | 223 | msgid "Can't set callback table" |
| 225 | 224 | msgstr "Não foi possível setar a tabela de retornos" |
| 226 | 225 | |
| 227 | -#: src/terminal/iocallback.c:200 | |
| 226 | +#: src/terminal/iocallback.c:196 | |
| 228 | 227 | msgid "Can't set lib3270 I/O controller" |
| 229 | 228 | msgstr "Não foi possível registrar manipuladores de I/O 3270" |
| 230 | 229 | |
| 231 | -#: src/filetransfer/worker.c:591 src/filetransfer/v3270ftprogress.c:760 | |
| 230 | +#: src/filetransfer/worker.c:599 src/filetransfer/v3270ftprogress.c:768 | |
| 232 | 231 | msgid "Can't start file transfer session" |
| 233 | 232 | msgstr "Não foi possível iniciar transferência de arquivo" |
| 234 | 233 | |
| 235 | 234 | #: src/filetransfer/v3270ftprogress.c:433 src/filetransfer/transfer.c:89 |
| 236 | -#: src/dialogs/load.c:111 src/dialogs/save/save.c:117 | |
| 237 | -#: src/dialogs/settings/host.c:401 src/tools/entry.c:99 | |
| 235 | +#: src/dialogs/settings/host.c:366 src/tools/entry.c:99 | |
| 238 | 236 | msgid "Cancel" |
| 239 | 237 | msgstr "Cancelar" |
| 240 | 238 | |
| ... | ... | @@ -246,18 +244,6 @@ msgstr "Cancelar transferência" |
| 246 | 244 | msgid "Check this if the file consists of character data only." |
| 247 | 245 | msgstr "Marque se o arquivo contem apenas texto." |
| 248 | 246 | |
| 249 | -#: src/dialogs/load.c:206 src/dialogs/save/save.c:343 | |
| 250 | -msgid "Click to cancel operation" | |
| 251 | -msgstr "Clique para cancelar operação" | |
| 252 | - | |
| 253 | -#: src/dialogs/load.c:211 | |
| 254 | -msgid "Click to load file" | |
| 255 | -msgstr "Clique para carregar arquivo" | |
| 256 | - | |
| 257 | -#: src/dialogs/save/save.c:348 | |
| 258 | -msgid "Click to save file" | |
| 259 | -msgstr "Clique para salvar arquivo" | |
| 260 | - | |
| 261 | 247 | #: src/dialogs/settings/clipboard.c:420 |
| 262 | 248 | msgid "Clipboard" |
| 263 | 249 | msgstr "Área de transferência" |
| ... | ... | @@ -286,11 +272,11 @@ msgstr "Cores" |
| 286 | 272 | msgid "Comma separated list of LU names" |
| 287 | 273 | msgstr "Lista de LUs separadas por vírgula" |
| 288 | 274 | |
| 289 | -#: src/dialogs/settings/host.c:268 | |
| 275 | +#: src/dialogs/settings/host.c:241 | |
| 290 | 276 | msgid "Comma separated list of LU names." |
| 291 | 277 | msgstr "Lista de LUs separadas por vírgula." |
| 292 | 278 | |
| 293 | -#: src/dialogs/save/save.c:55 | |
| 279 | +#: src/dialogs/save/save.c:56 | |
| 294 | 280 | msgid "Comma-separated values (CSV)" |
| 295 | 281 | msgstr "Arquivo separado por vírgulas (CSV)" |
| 296 | 282 | |
| ... | ... | @@ -298,7 +284,7 @@ msgstr "Arquivo separado por vírgulas (CSV)" |
| 298 | 284 | msgid "Command to execute" |
| 299 | 285 | msgstr "Comando a executar" |
| 300 | 286 | |
| 301 | -#: src/dialogs/settings/host.c:471 | |
| 287 | +#: src/dialogs/settings/host.c:430 | |
| 302 | 288 | msgid "Connection" |
| 303 | 289 | msgstr "Conexão" |
| 304 | 290 | |
| ... | ... | @@ -355,7 +341,7 @@ msgstr "Cria arquivo com registros de tamanho variável." |
| 355 | 341 | msgid "Cross hair cursor" |
| 356 | 342 | msgstr "Cursor mira" |
| 357 | 343 | |
| 358 | -#: src/dialogs/tools.c:182 | |
| 344 | +#: src/dialogs/tools.c:178 | |
| 359 | 345 | #, c-format |
| 360 | 346 | msgid "Current (%s)" |
| 361 | 347 | msgstr "Atual (%s)" |
| ... | ... | @@ -372,7 +358,7 @@ msgstr "Posição atual da transferência" |
| 372 | 358 | msgid "Current:" |
| 373 | 359 | msgstr "Atual:" |
| 374 | 360 | |
| 375 | -#: src/dialogs/settings/host.c:254 | |
| 361 | +#: src/dialogs/settings/host.c:227 | |
| 376 | 362 | msgid "Custom Remap" |
| 377 | 363 | msgstr "Mapeamento personalizado" |
| 378 | 364 | |
| ... | ... | @@ -417,7 +403,7 @@ msgstr "Turquesa Escuro" |
| 417 | 403 | msgid "Default" |
| 418 | 404 | msgstr "Padrão" |
| 419 | 405 | |
| 420 | -#: src/dialogs/popups.c:149 | |
| 406 | +#: src/dialogs/popups.c:155 | |
| 421 | 407 | msgid "Don't ask again" |
| 422 | 408 | msgstr "Não perguntar de novo" |
| 423 | 409 | |
| ... | ... | @@ -433,7 +419,7 @@ msgstr "ETA:" |
| 433 | 419 | msgid "Emit a PA Key action" |
| 434 | 420 | msgstr "Emite uma ação de tecla PA" |
| 435 | 421 | |
| 436 | -#: src/dialogs/settings/host.c:481 | |
| 422 | +#: src/dialogs/settings/host.c:440 | |
| 437 | 423 | msgid "Emulation" |
| 438 | 424 | msgstr "Emulação" |
| 439 | 425 | |
| ... | ... | @@ -445,7 +431,7 @@ msgstr "Habilitado" |
| 445 | 431 | msgid "Error on print operation" |
| 446 | 432 | msgstr "Erro na operação de impressão" |
| 447 | 433 | |
| 448 | -#: src/dialogs/save/save.c:579 | |
| 434 | +#: src/dialogs/save/save.c:562 | |
| 449 | 435 | msgid "Error saving image" |
| 450 | 436 | msgstr "Erro ao salvar imagem" |
| 451 | 437 | |
| ... | ... | @@ -457,7 +443,7 @@ msgstr "Tempo estimado para a transferência" |
| 457 | 443 | msgid "Field colors" |
| 458 | 444 | msgstr "Cor dos campos" |
| 459 | 445 | |
| 460 | -#: src/dialogs/save/save.c:282 | |
| 446 | +#: src/dialogs/save/save.c:290 | |
| 461 | 447 | msgid "File _Format" |
| 462 | 448 | msgstr "_Formato do arquivo" |
| 463 | 449 | |
| ... | ... | @@ -544,27 +530,31 @@ msgstr "Verde" |
| 544 | 530 | msgid "HTML options" |
| 545 | 531 | msgstr "Opções HTML" |
| 546 | 532 | |
| 547 | -#: src/dialogs/settings/host.c:664 | |
| 533 | +#: src/dialogs/settings/host.c:580 | |
| 548 | 534 | msgid "Host" |
| 549 | 535 | msgstr "Servidor" |
| 550 | 536 | |
| 551 | -#: src/dialogs/settings/host.c:663 | |
| 537 | +#: src/dialogs/settings/host.c:579 | |
| 552 | 538 | msgid "Host settings" |
| 553 | 539 | msgstr "Configurações do servidor" |
| 554 | 540 | |
| 555 | -#: src/dialogs/save/save.c:59 | |
| 541 | +#: src/dialogs/settings/url.c:208 | |
| 542 | +msgid "Hostname" | |
| 543 | +msgstr "Nome do host" | |
| 544 | + | |
| 545 | +#: src/dialogs/save/save.c:60 | |
| 556 | 546 | msgid "HyperText Markup Language (HTML)" |
| 557 | 547 | msgstr "Documento HTML" |
| 558 | 548 | |
| 559 | -#: src/dialogs/settings/host.c:140 | |
| 549 | +#: src/dialogs/settings/host.c:139 | |
| 560 | 550 | msgid "IBM AS/400" |
| 561 | 551 | msgstr "IBM AS/400" |
| 562 | 552 | |
| 563 | -#: src/dialogs/settings/host.c:139 | |
| 553 | +#: src/dialogs/settings/host.c:138 | |
| 564 | 554 | msgid "IBM S/390" |
| 565 | 555 | msgstr "IBM S/390" |
| 566 | 556 | |
| 567 | -#: src/terminal/properties/init.c:113 src/dialogs/settings/host.c:514 | |
| 557 | +#: src/terminal/properties/init.c:113 src/dialogs/settings/host.c:467 | |
| 568 | 558 | msgid "IDLE minutes for automatic disconnection" |
| 569 | 559 | msgstr "Minutos para desconexão automática" |
| 570 | 560 | |
| ... | ... | @@ -608,7 +598,7 @@ msgstr "Intensificado/Protegido" |
| 608 | 598 | msgid "Intensified/Unprotected" |
| 609 | 599 | msgstr "Intensificado/Desprotegido" |
| 610 | 600 | |
| 611 | -#: src/terminal/callbacks.c:440 | |
| 601 | +#: src/terminal/callbacks.c:463 | |
| 612 | 602 | #, c-format |
| 613 | 603 | msgid "" |
| 614 | 604 | "Invalid callback table, the release %s of lib%s can't be used (expecting " |
| ... | ... | @@ -625,7 +615,7 @@ msgstr "Valor cgcsgid é inválido" |
| 625 | 615 | msgid "Invalid remap scope" |
| 626 | 616 | msgstr "Escopo de mapeamento inválido" |
| 627 | 617 | |
| 628 | -#: src/dialogs/security.c:186 | |
| 618 | +#: src/dialogs/security.c:185 | |
| 629 | 619 | msgid "Invalid state" |
| 630 | 620 | msgstr "Estado inválido" |
| 631 | 621 | |
| ... | ... | @@ -634,7 +624,7 @@ msgstr "Estado inválido" |
| 634 | 624 | msgid "Keyboard accelerators" |
| 635 | 625 | msgstr "Atalhos de teclado" |
| 636 | 626 | |
| 637 | -#: src/dialogs/settings/host.c:267 | |
| 627 | +#: src/dialogs/settings/host.c:240 | |
| 638 | 628 | msgid "L_U Names" |
| 639 | 629 | msgstr "Nomes de L_U" |
| 640 | 630 | |
| ... | ... | @@ -654,7 +644,7 @@ msgstr "Arquivo local:" |
| 654 | 644 | msgid "Local:" |
| 655 | 645 | msgstr "Local:" |
| 656 | 646 | |
| 657 | -#: src/dialogs/settings/host.c:242 | |
| 647 | +#: src/dialogs/settings/host.c:215 | |
| 658 | 648 | msgid "Makes the screen larger than the default for the chosen model number." |
| 659 | 649 | msgstr "Usa tamanho maior do que o padrão para o modelo escolhido." |
| 660 | 650 | |
| ... | ... | @@ -662,23 +652,23 @@ msgstr "Usa tamanho maior do que o padrão para o modelo escolhido." |
| 662 | 652 | msgid "Misc colors" |
| 663 | 653 | msgstr "Cores diversas" |
| 664 | 654 | |
| 665 | -#: src/dialogs/settings/host.c:197 | |
| 655 | +#: src/dialogs/settings/host.c:196 | |
| 666 | 656 | msgid "Model 2 - 80x24" |
| 667 | 657 | msgstr "Modelo 2 - 80x24" |
| 668 | 658 | |
| 669 | -#: src/dialogs/settings/host.c:198 | |
| 659 | +#: src/dialogs/settings/host.c:197 | |
| 670 | 660 | msgid "Model 3 - 80x32" |
| 671 | 661 | msgstr "Modelo 3 - 80x32" |
| 672 | 662 | |
| 673 | -#: src/dialogs/settings/host.c:199 | |
| 663 | +#: src/dialogs/settings/host.c:198 | |
| 674 | 664 | msgid "Model 4 - 80x43" |
| 675 | 665 | msgstr "Modelo 4 - 80x43" |
| 676 | 666 | |
| 677 | -#: src/dialogs/settings/host.c:200 | |
| 667 | +#: src/dialogs/settings/host.c:199 | |
| 678 | 668 | msgid "Model 5 - 132x27" |
| 679 | 669 | msgstr "Modelo 5 - 132x27" |
| 680 | 670 | |
| 681 | -#: src/dialogs/settings/host.c:168 | |
| 671 | +#: src/dialogs/settings/host.c:167 | |
| 682 | 672 | msgid "Monochrome" |
| 683 | 673 | msgstr "Monocromático" |
| 684 | 674 | |
| ... | ... | @@ -690,7 +680,7 @@ msgstr "Mostarda" |
| 690 | 680 | msgid "Name" |
| 691 | 681 | msgstr "Nome" |
| 692 | 682 | |
| 693 | -#: src/dialogs/settings/host.c:471 | |
| 683 | +#: src/dialogs/settings/host.c:430 | |
| 694 | 684 | msgid "Network connection settings" |
| 695 | 685 | msgstr "Configuração da conexão de rede" |
| 696 | 686 | |
| ... | ... | @@ -698,6 +688,10 @@ msgstr "Configuração da conexão de rede" |
| 698 | 688 | msgid "No active transfer" |
| 699 | 689 | msgstr "Nenhuma transferência ativa" |
| 700 | 690 | |
| 691 | +#: src/dialogs/popups.c:141 | |
| 692 | +msgid "No host" | |
| 693 | +msgstr "Nenhum servidor" | |
| 694 | + | |
| 701 | 695 | #: src/terminal/properties/get.c:205 |
| 702 | 696 | msgid "No host defined" |
| 703 | 697 | msgstr "Nenhum servidor definido" |
| ... | ... | @@ -710,7 +704,7 @@ msgstr "Sem etiqueta" |
| 710 | 704 | msgid "No transfer" |
| 711 | 705 | msgstr "Nenhuma transferência" |
| 712 | 706 | |
| 713 | -#: src/filetransfer/worker.c:601 | |
| 707 | +#: src/filetransfer/worker.c:609 | |
| 714 | 708 | msgid "No transfer in progress" |
| 715 | 709 | msgstr "Nenhuma transferência em andamento" |
| 716 | 710 | |
| ... | ... | @@ -762,10 +756,6 @@ msgstr "Estado inválido na OIA" |
| 762 | 756 | msgid "OIA status ok" |
| 763 | 757 | msgstr "Estado normal na OIA" |
| 764 | 758 | |
| 765 | -#: src/dialogs/load.c:93 src/dialogs/load.c:112 | |
| 766 | -msgid "Open" | |
| 767 | -msgstr "Abrir" | |
| 768 | - | |
| 769 | 759 | #: src/dialogs/save/convenience.c:65 src/dialogs/save/convenience.c:93 |
| 770 | 760 | msgid "Operation has failed" |
| 771 | 761 | msgstr "Operação falhou" |
| ... | ... | @@ -778,15 +768,15 @@ msgstr "Opções" |
| 778 | 768 | msgid "Orange" |
| 779 | 769 | msgstr "Laranja" |
| 780 | 770 | |
| 781 | -#: src/dialogs/settings/host.c:141 | |
| 771 | +#: src/dialogs/settings/host.c:140 | |
| 782 | 772 | msgid "Other (TSO)" |
| 783 | 773 | msgstr "Outro (TSO)" |
| 784 | 774 | |
| 785 | -#: src/dialogs/settings/host.c:142 | |
| 775 | +#: src/dialogs/settings/host.c:141 | |
| 786 | 776 | msgid "Other (VM/CMS)" |
| 787 | 777 | msgstr "Outro (VM/CMS)" |
| 788 | 778 | |
| 789 | -#: src/dialogs/settings/host.c:241 | |
| 779 | +#: src/dialogs/settings/host.c:214 | |
| 790 | 780 | msgid "Oversize" |
| 791 | 781 | msgstr "Oversize" |
| 792 | 782 | |
| ... | ... | @@ -814,7 +804,7 @@ msgstr "Colar arquivo" |
| 814 | 804 | msgid "Paste formatted screen" |
| 815 | 805 | msgstr "Colar tela formatada" |
| 816 | 806 | |
| 817 | -#: src/dialogs/load.c:249 | |
| 807 | +#: src/dialogs/load.c:243 | |
| 818 | 808 | msgid "Paste from file" |
| 819 | 809 | msgstr "Colar de um arquivo" |
| 820 | 810 | |
| ... | ... | @@ -834,11 +824,11 @@ msgstr "Colar tela semelhante" |
| 834 | 824 | msgid "Path and name of the local file" |
| 835 | 825 | msgstr "Caminho e nome do arquivo local" |
| 836 | 826 | |
| 837 | -#: src/dialogs/settings/host.c:255 | |
| 827 | +#: src/dialogs/settings/host.c:228 | |
| 838 | 828 | msgid "Path to XML file with custom charset mapping." |
| 839 | 829 | msgstr "Caminho do arquivo XML com o mapeamento personalizado de caracteres." |
| 840 | 830 | |
| 841 | -#: src/dialogs/security.c:138 src/dialogs/security.c:157 | |
| 831 | +#: src/dialogs/security.c:137 src/dialogs/security.c:156 | |
| 842 | 832 | msgid "Peer certificate" |
| 843 | 833 | msgstr "Certificado apresentado" |
| 844 | 834 | |
| ... | ... | @@ -846,7 +836,7 @@ msgstr "Certificado apresentado" |
| 846 | 836 | msgid "Pink" |
| 847 | 837 | msgstr "Rosa" |
| 848 | 838 | |
| 849 | -#: src/dialogs/save/save.c:51 | |
| 839 | +#: src/dialogs/save/save.c:52 | |
| 850 | 840 | msgid "Plain text" |
| 851 | 841 | msgstr "Texto puro" |
| 852 | 842 | |
| ... | ... | @@ -854,7 +844,7 @@ msgstr "Texto puro" |
| 854 | 844 | msgid "Plain text only" |
| 855 | 845 | msgstr "Apenas texto puro" |
| 856 | 846 | |
| 857 | -#: src/dialogs/settings/host.c:229 | |
| 847 | +#: src/dialogs/settings/url.c:215 | |
| 858 | 848 | msgid "Port or service name." |
| 859 | 849 | msgstr "Nº da porta ou nome do serviço." |
| 860 | 850 | |
| ... | ... | @@ -890,7 +880,7 @@ msgstr "Imprimir cópia" |
| 890 | 880 | msgid "Print operation failed" |
| 891 | 881 | msgstr "Operação de impressão falhou" |
| 892 | 882 | |
| 893 | -#: src/dialogs/print/convenience.c:102 | |
| 883 | +#: src/dialogs/print/convenience.c:103 | |
| 894 | 884 | msgid "Print operation has failed" |
| 895 | 885 | msgstr "Operação de impressão falhou" |
| 896 | 886 | |
| ... | ... | @@ -938,7 +928,7 @@ msgstr "Receber arquivo" |
| 938 | 928 | msgid "Receive text file" |
| 939 | 929 | msgstr "Receber arquivo texto" |
| 940 | 930 | |
| 941 | -#: src/filetransfer/v3270ftprogress.c:739 src/dialogs/transfer.c:124 | |
| 931 | +#: src/filetransfer/v3270ftprogress.c:747 src/dialogs/transfer.c:124 | |
| 942 | 932 | msgid "Receiving file" |
| 943 | 933 | msgstr "Recebendo arquivo" |
| 944 | 934 | |
| ... | ... | @@ -1001,7 +991,7 @@ msgstr "" |
| 1001 | 991 | msgid "Retry" |
| 1002 | 992 | msgstr "Repetir" |
| 1003 | 993 | |
| 1004 | -#: src/dialogs/security.c:144 | |
| 994 | +#: src/dialogs/security.c:143 | |
| 1005 | 995 | msgid "Revocation list" |
| 1006 | 996 | msgstr "Lista de revogados" |
| 1007 | 997 | |
| ... | ... | @@ -1013,7 +1003,7 @@ msgstr "" |
| 1013 | 1003 | "SPACE can be specified in units of TRACKS, CYLINDERS, or AVBLOCK, and only " |
| 1014 | 1004 | "one option can be used." |
| 1015 | 1005 | |
| 1016 | -#: src/dialogs/settings/host.c:560 | |
| 1006 | +#: src/dialogs/settings/url.c:264 | |
| 1017 | 1007 | msgid "SSL/TLS" |
| 1018 | 1008 | msgstr "SSL/TLS" |
| 1019 | 1009 | |
| ... | ... | @@ -1039,7 +1029,7 @@ msgstr "Salvar _Como" |
| 1039 | 1029 | msgid "Save all" |
| 1040 | 1030 | msgstr "Salvar tela" |
| 1041 | 1031 | |
| 1042 | -#: src/terminal/actions/table.c:286 src/dialogs/save/save.c:377 | |
| 1032 | +#: src/terminal/actions/table.c:286 src/dialogs/save/save.c:363 | |
| 1043 | 1033 | msgid "Save copy" |
| 1044 | 1034 | msgstr "Salvar cópia" |
| 1045 | 1035 | |
| ... | ... | @@ -1059,11 +1049,11 @@ msgstr "Salvar tela ou seleção" |
| 1059 | 1049 | msgid "Save selected" |
| 1060 | 1050 | msgstr "Salvar seleção" |
| 1061 | 1051 | |
| 1062 | -#: src/terminal/actions/table.c:277 src/dialogs/save/save.c:376 | |
| 1052 | +#: src/terminal/actions/table.c:277 src/dialogs/save/save.c:362 | |
| 1063 | 1053 | msgid "Save selected area" |
| 1064 | 1054 | msgstr "Salvar área selecionada" |
| 1065 | 1055 | |
| 1066 | -#: src/dialogs/save/save.c:375 | |
| 1056 | +#: src/dialogs/save/save.c:361 | |
| 1067 | 1057 | msgid "Save terminal contents" |
| 1068 | 1058 | msgstr "Salvar conteúdo da tela" |
| 1069 | 1059 | |
| ... | ... | @@ -1075,7 +1065,7 @@ msgstr "Salvar trace para arquivo" |
| 1075 | 1065 | msgid "Save transfer activity to file" |
| 1076 | 1066 | msgstr "Salvar atividade de transferência para arquivo" |
| 1077 | 1067 | |
| 1078 | -#: src/dialogs/transfer.c:189 | |
| 1068 | +#: src/dialogs/transfer.c:187 | |
| 1079 | 1069 | msgid "Save transfer information to file" |
| 1080 | 1070 | msgstr "Salvar informações da transferência para arquivo" |
| 1081 | 1071 | |
| ... | ... | @@ -1115,27 +1105,33 @@ msgstr "" |
| 1115 | 1105 | msgid "Secondary space" |
| 1116 | 1106 | msgstr "Secondary space" |
| 1117 | 1107 | |
| 1108 | +#: src/dialogs/settings/url.c:220 | |
| 1109 | +msgid "Security" | |
| 1110 | +msgstr "Segurança" | |
| 1111 | + | |
| 1112 | +#: src/dialogs/settings/url.c:221 | |
| 1113 | +msgid "Security engine" | |
| 1114 | +msgstr "Mecanismo de segurança" | |
| 1115 | + | |
| 1118 | 1116 | #: src/filetransfer/v3270ft.c:303 src/filetransfer/settings.c:209 |
| 1119 | -#: src/dialogs/save/save.c:98 src/dialogs/save/save.c:118 | |
| 1120 | -#: src/dialogs/settings/host.c:402 | |
| 1117 | +#: src/dialogs/settings/host.c:367 | |
| 1121 | 1118 | msgid "Select" |
| 1122 | 1119 | msgstr "Selecionar" |
| 1123 | 1120 | |
| 1124 | -#: src/dialogs/settings/host.c:497 | |
| 1121 | +#: src/dialogs/settings/host.c:452 | |
| 1125 | 1122 | msgid "Select charset remap file" |
| 1126 | 1123 | msgstr "Selecionar arquivo com mapeamento personalizado" |
| 1127 | 1124 | |
| 1128 | -#: src/dialogs/settings/host.c:398 | |
| 1125 | +#: src/dialogs/settings/host.c:363 | |
| 1129 | 1126 | msgid "Select custom charset mapping" |
| 1130 | 1127 | msgstr "Seleciona mapeamento de teclado personalizado" |
| 1131 | 1128 | |
| 1132 | -#: src/dialogs/save/save.c:97 src/dialogs/save/save.c:114 | |
| 1129 | +#: src/dialogs/save/save.c:263 | |
| 1133 | 1130 | msgid "Select destination file" |
| 1134 | 1131 | msgstr "Selecionar arquivo destino" |
| 1135 | 1132 | |
| 1136 | 1133 | #: src/filetransfer/v3270ft.c:591 src/filetransfer/settings.c:467 |
| 1137 | -#: src/dialogs/load.c:92 src/dialogs/load.c:108 src/dialogs/load.c:171 | |
| 1138 | -#: src/dialogs/save/save.c:258 | |
| 1134 | +#: src/dialogs/load.c:186 | |
| 1139 | 1135 | msgid "Select file" |
| 1140 | 1136 | msgstr "Selecionar arquivo" |
| 1141 | 1137 | |
| ... | ... | @@ -1175,10 +1171,14 @@ msgstr "Enviar arquivo" |
| 1175 | 1171 | msgid "Send text file" |
| 1176 | 1172 | msgstr "Enviar arquivo texto" |
| 1177 | 1173 | |
| 1178 | -#: src/filetransfer/v3270ftprogress.c:739 src/dialogs/transfer.c:124 | |
| 1174 | +#: src/filetransfer/v3270ftprogress.c:747 src/dialogs/transfer.c:124 | |
| 1179 | 1175 | msgid "Sending file" |
| 1180 | 1176 | msgstr "Enviando arquivo" |
| 1181 | 1177 | |
| 1178 | +#: src/dialogs/settings/url.c:214 | |
| 1179 | +msgid "Service/Port" | |
| 1180 | +msgstr "Serviço/Porta" | |
| 1181 | + | |
| 1182 | 1182 | #: src/terminal/actions/table.c:241 |
| 1183 | 1183 | msgid "Set the font to the best size for window" |
| 1184 | 1184 | msgstr "Ajusta a fonte para o melhor tamanho" |
| ... | ... | @@ -1255,11 +1255,11 @@ msgstr "Iniciar transferência de arquivo" |
| 1255 | 1255 | msgid "Start transfer" |
| 1256 | 1256 | msgstr "Iniciar transferência" |
| 1257 | 1257 | |
| 1258 | -#: src/filetransfer/v3270ftprogress.c:790 | |
| 1258 | +#: src/filetransfer/v3270ftprogress.c:798 | |
| 1259 | 1259 | msgid "Starting" |
| 1260 | 1260 | msgstr "Iniciando" |
| 1261 | 1261 | |
| 1262 | -#: src/filetransfer/worker.c:314 src/dialogs/transfer.c:142 | |
| 1262 | +#: src/filetransfer/worker.c:314 src/dialogs/transfer.c:140 | |
| 1263 | 1263 | msgid "Starting transfer" |
| 1264 | 1264 | msgstr "Iniciando transferência" |
| 1265 | 1265 | |
| ... | ... | @@ -1279,22 +1279,26 @@ msgstr "Estado do espaçamento dinâmico" |
| 1279 | 1279 | msgid "Summary" |
| 1280 | 1280 | msgstr "Sumário" |
| 1281 | 1281 | |
| 1282 | -#: src/dialogs/settings/host.c:125 | |
| 1282 | +#: src/dialogs/settings/host.c:124 | |
| 1283 | 1283 | msgid "System _type" |
| 1284 | 1284 | msgstr "_Tipo de servidor" |
| 1285 | 1285 | |
| 1286 | -#: src/dialogs/settings/host.c:167 | |
| 1286 | +#: src/dialogs/settings/host.c:166 | |
| 1287 | 1287 | msgid "System default" |
| 1288 | 1288 | msgstr "Padrão do sistema" |
| 1289 | 1289 | |
| 1290 | -#: src/dialogs/settings/host.c:411 | |
| 1290 | +#: src/dialogs/settings/host.c:376 | |
| 1291 | 1291 | msgid "TN3270 Custom charset" |
| 1292 | 1292 | msgstr "Código de página TN3270 personalizado" |
| 1293 | 1293 | |
| 1294 | -#: src/dialogs/settings/host.c:481 | |
| 1294 | +#: src/dialogs/settings/host.c:440 | |
| 1295 | 1295 | msgid "TN3270 Emulation settings" |
| 1296 | 1296 | msgstr "Configuração da emulação TN3270" |
| 1297 | 1297 | |
| 1298 | +#: src/dialogs/settings/url.c:122 | |
| 1299 | +msgid "TN3270 Host URL" | |
| 1300 | +msgstr "URL do servidor TN3270" | |
| 1301 | + | |
| 1298 | 1302 | #: src/terminal/properties/init.c:97 |
| 1299 | 1303 | msgid "TN3270 Session name" |
| 1300 | 1304 | msgstr "Nome da sessão TN3270" |
| ... | ... | @@ -1308,6 +1312,10 @@ msgstr "Cores do terminal" |
| 1308 | 1312 | msgid "Terminal font" |
| 1309 | 1313 | msgstr "Fonte do terminal" |
| 1310 | 1314 | |
| 1315 | +#: src/dialogs/load.c:189 | |
| 1316 | +msgid "Text files" | |
| 1317 | +msgstr "Arquivos de texto" | |
| 1318 | + | |
| 1311 | 1319 | #: src/filetransfer/v3270ftprogress.c:211 |
| 1312 | 1320 | msgid "" |
| 1313 | 1321 | "The CMS disk is full, or the maximum number of files on the minidisk (3400) " |
| ... | ... | @@ -1318,7 +1326,7 @@ msgstr "" |
| 1318 | 1326 | "has been reached, or the maximum number of data blocks per file (16060) has " |
| 1319 | 1327 | "been reached." |
| 1320 | 1328 | |
| 1321 | -#: src/dialogs/settings/host.c:645 | |
| 1329 | +#: src/dialogs/settings/host.c:561 | |
| 1322 | 1330 | msgid "The EBCDIC host character set. " |
| 1323 | 1331 | msgstr "A tabela de caracteres EBCDIC." |
| 1324 | 1332 | |
| ... | ... | @@ -1330,7 +1338,7 @@ msgstr "A etiqueda da ação" |
| 1330 | 1338 | msgid "The action tooltip" |
| 1331 | 1339 | msgstr "Dicas sobre a ação" |
| 1332 | 1340 | |
| 1333 | -#: src/filetransfer/worker.c:622 | |
| 1341 | +#: src/filetransfer/worker.c:630 | |
| 1334 | 1342 | msgid "" |
| 1335 | 1343 | "The callback table for file transfer was rejected, possible version mismatch " |
| 1336 | 1344 | "on lib3270" |
| ... | ... | @@ -1338,7 +1346,7 @@ msgstr "" |
| 1338 | 1346 | "Tabela de callbacks para transferência de arquivos inválida, possível " |
| 1339 | 1347 | "divergência de versão na lib3270" |
| 1340 | 1348 | |
| 1341 | -#: src/dialogs/save/save.c:425 | |
| 1349 | +#: src/dialogs/save/save.c:408 | |
| 1342 | 1350 | #, c-format |
| 1343 | 1351 | msgid "The file \"%s\" already exists. Replace it?" |
| 1344 | 1352 | msgstr "O arquivo \"%s\" já existe, substituir?" |
| ... | ... | @@ -1366,7 +1374,7 @@ msgstr "O host detectou um erro no arquivo durante a operação de recebimento." |
| 1366 | 1374 | msgid "The label for the action" |
| 1367 | 1375 | msgstr "A etiqueta da ação" |
| 1368 | 1376 | |
| 1369 | -#: src/dialogs/settings/host.c:182 | |
| 1377 | +#: src/dialogs/settings/host.c:181 | |
| 1370 | 1378 | msgid "The model of 3270 display to be emulated" |
| 1371 | 1379 | msgstr "Modelo de tela 3270 a ser emulada" |
| 1372 | 1380 | |
| ... | ... | @@ -1430,7 +1438,7 @@ msgstr "The type of the state kept by the action" |
| 1430 | 1438 | msgid "There is not enough space available for data on the host." |
| 1431 | 1439 | msgstr "Não existe espaço suficiente no host para os dados." |
| 1432 | 1440 | |
| 1433 | -#: src/dialogs/security.c:193 | |
| 1441 | +#: src/dialogs/security.c:192 | |
| 1434 | 1442 | msgid "There's no security information in the session" |
| 1435 | 1443 | msgstr "Não existe informação de segurança na sessão" |
| 1436 | 1444 | |
| ... | ... | @@ -1462,11 +1470,11 @@ msgstr "Janela de trace" |
| 1462 | 1470 | msgid "Tracks" |
| 1463 | 1471 | msgstr "Trilhas" |
| 1464 | 1472 | |
| 1465 | -#: src/filetransfer/worker.c:568 src/filetransfer/v3270ftprogress.c:721 | |
| 1473 | +#: src/filetransfer/worker.c:576 src/filetransfer/v3270ftprogress.c:729 | |
| 1466 | 1474 | msgid "Transfer failed" |
| 1467 | 1475 | msgstr "Transferência falhou" |
| 1468 | 1476 | |
| 1469 | -#: src/filetransfer/worker.c:554 | |
| 1477 | +#: src/filetransfer/worker.c:562 | |
| 1470 | 1478 | msgid "Transfer operation has timed out" |
| 1471 | 1479 | msgstr "Operação de transferência esgotou o tempo de espera" |
| 1472 | 1480 | |
| ... | ... | @@ -1500,7 +1508,7 @@ msgstr "Tente de novo com o mesmo arquivo." |
| 1500 | 1508 | msgid "Turquoise" |
| 1501 | 1509 | msgstr "Turquesa" |
| 1502 | 1510 | |
| 1503 | -#: src/dialogs/tools.c:171 | |
| 1511 | +#: src/dialogs/tools.c:167 | |
| 1504 | 1512 | msgid "UTF-8" |
| 1505 | 1513 | msgstr "UTF-8" |
| 1506 | 1514 | |
| ... | ... | @@ -1513,17 +1521,17 @@ msgstr "Incapaz de colar dados formatados." |
| 1513 | 1521 | msgid "Undefined" |
| 1514 | 1522 | msgstr "Indefinido" |
| 1515 | 1523 | |
| 1516 | -#: src/terminal/callbacks.c:449 | |
| 1524 | +#: src/terminal/callbacks.c:472 | |
| 1517 | 1525 | #, c-format |
| 1518 | 1526 | msgid "Unexpected callback table, the release %s of lib%s is invalid" |
| 1519 | 1527 | msgstr "Tabela de callbacks inesperada, a revisão %s da lib%s é inválida" |
| 1520 | 1528 | |
| 1521 | -#: src/dialogs/save/save.c:495 | |
| 1529 | +#: src/dialogs/save/save.c:478 | |
| 1522 | 1530 | #, c-format |
| 1523 | 1531 | msgid "Unexpected format %d" |
| 1524 | 1532 | msgstr "Formato inesperado %d" |
| 1525 | 1533 | |
| 1526 | -#: src/dialogs/save/save.c:463 src/dialogs/save/save.c:559 | |
| 1534 | +#: src/dialogs/save/save.c:446 src/dialogs/save/save.c:542 | |
| 1527 | 1535 | #, c-format |
| 1528 | 1536 | msgid "Unexpected mode %d" |
| 1529 | 1537 | msgstr "Modo inesperado %d" |
| ... | ... | @@ -1533,14 +1541,10 @@ msgstr "Modo inesperado %d" |
| 1533 | 1541 | msgid "Unexpected status %d in print operation" |
| 1534 | 1542 | msgstr "Estado inesperado %d na operação de impressão" |
| 1535 | 1543 | |
| 1536 | -#: src/dialogs/settings/host.c:559 | |
| 1544 | +#: src/dialogs/settings/url.c:263 | |
| 1537 | 1545 | msgid "Unsecure" |
| 1538 | 1546 | msgstr "Insegura" |
| 1539 | 1547 | |
| 1540 | -#: src/dialogs/save/save.c:130 | |
| 1541 | -msgid "Untitled document" | |
| 1542 | -msgstr "Documento sem título" | |
| 1543 | - | |
| 1544 | 1548 | #: src/filetransfer/tables.c:75 |
| 1545 | 1549 | msgid "Use host default record format." |
| 1546 | 1550 | msgstr "Utilizar o formato de registro padrão do servidor." |
| ... | ... | @@ -1554,7 +1558,7 @@ msgstr "Usar espaço inseparável" |
| 1554 | 1558 | msgid "Variable" |
| 1555 | 1559 | msgstr "Variável" |
| 1556 | 1560 | |
| 1557 | -#: src/dialogs/tools.c:172 | |
| 1561 | +#: src/dialogs/tools.c:168 | |
| 1558 | 1562 | msgid "Western Europe (ISO 8859-1)" |
| 1559 | 1563 | msgstr "Europa ocidental (ISO 8859-1)" |
| 1560 | 1564 | |
| ... | ... | @@ -1591,52 +1595,52 @@ msgstr "" |
| 1591 | 1595 | msgid "White" |
| 1592 | 1596 | msgstr "Branco" |
| 1593 | 1597 | |
| 1594 | -#: src/dialogs/tools.c:173 | |
| 1598 | +#: src/dialogs/tools.c:169 | |
| 1595 | 1599 | msgid "Windows Western languages (CP1252)" |
| 1596 | 1600 | msgstr "Windows ocidental (CP1252)" |
| 1597 | 1601 | |
| 1598 | -#: src/terminal/drawing/oia.c:431 src/terminal/drawing/oia.c:455 | |
| 1599 | -#: src/terminal/drawing/oia.c:459 | |
| 1602 | +#: src/terminal/drawing/oia.c:490 src/terminal/drawing/oia.c:514 | |
| 1603 | +#: src/terminal/drawing/oia.c:518 | |
| 1600 | 1604 | msgid "X" |
| 1601 | 1605 | msgstr "X" |
| 1602 | 1606 | |
| 1603 | -#: src/terminal/drawing/oia.c:435 | |
| 1607 | +#: src/terminal/drawing/oia.c:494 | |
| 1604 | 1608 | msgid "X -f" |
| 1605 | 1609 | msgstr "X -f" |
| 1606 | 1610 | |
| 1607 | -#: src/terminal/drawing/oia.c:467 | |
| 1611 | +#: src/terminal/drawing/oia.c:526 | |
| 1608 | 1612 | msgid "X Connecting" |
| 1609 | 1613 | msgstr "X Conectando" |
| 1610 | 1614 | |
| 1611 | -#: src/terminal/drawing/oia.c:451 | |
| 1615 | +#: src/terminal/drawing/oia.c:510 | |
| 1612 | 1616 | msgid "X Inhibit" |
| 1613 | 1617 | msgstr "X Inibido" |
| 1614 | 1618 | |
| 1615 | -#: src/terminal/drawing/oia.c:427 | |
| 1619 | +#: src/terminal/drawing/oia.c:486 | |
| 1616 | 1620 | msgid "X Not Connected" |
| 1617 | 1621 | msgstr "X Desconectado" |
| 1618 | 1622 | |
| 1619 | -#: src/terminal/drawing/oia.c:443 | |
| 1623 | +#: src/terminal/drawing/oia.c:502 | |
| 1620 | 1624 | msgid "X Numeric" |
| 1621 | 1625 | msgstr "X Numérico" |
| 1622 | 1626 | |
| 1623 | -#: src/terminal/drawing/oia.c:447 | |
| 1627 | +#: src/terminal/drawing/oia.c:506 | |
| 1624 | 1628 | msgid "X Overflow" |
| 1625 | 1629 | msgstr "X Estouro" |
| 1626 | 1630 | |
| 1627 | -#: src/terminal/drawing/oia.c:439 | |
| 1631 | +#: src/terminal/drawing/oia.c:498 | |
| 1628 | 1632 | msgid "X Protected" |
| 1629 | 1633 | msgstr "X Protegido" |
| 1630 | 1634 | |
| 1631 | -#: src/terminal/drawing/oia.c:463 | |
| 1635 | +#: src/terminal/drawing/oia.c:522 | |
| 1632 | 1636 | msgid "X Resolving" |
| 1633 | 1637 | msgstr "X Resolvendo" |
| 1634 | 1638 | |
| 1635 | -#: src/terminal/drawing/oia.c:415 | |
| 1639 | +#: src/terminal/drawing/oia.c:474 | |
| 1636 | 1640 | msgid "X System" |
| 1637 | 1641 | msgstr "X Sistema" |
| 1638 | 1642 | |
| 1639 | -#: src/terminal/drawing/oia.c:419 | |
| 1643 | +#: src/terminal/drawing/oia.c:478 | |
| 1640 | 1644 | msgid "X Wait" |
| 1641 | 1645 | msgstr "X Aguarde" |
| 1642 | 1646 | |
| ... | ... | @@ -1739,33 +1743,33 @@ msgstr "Reduzir" |
| 1739 | 1743 | msgid "_ASCII text" |
| 1740 | 1744 | msgstr "Texto _ASCII" |
| 1741 | 1745 | |
| 1742 | -#: src/dialogs/settings/dialog.c:232 | |
| 1746 | +#: src/dialogs/settings/dialog.c:213 | |
| 1743 | 1747 | msgid "_Apply" |
| 1744 | 1748 | msgstr "_Aplicar" |
| 1745 | 1749 | |
| 1746 | -#: src/selection/linux/paste.c:85 src/dialogs/popups.c:173 | |
| 1747 | -#: src/dialogs/load.c:205 src/dialogs/load.c:224 src/dialogs/linux/select.c:51 | |
| 1750 | +#: src/selection/linux/paste.c:85 src/dialogs/popups.c:179 | |
| 1751 | +#: src/dialogs/load.c:214 src/dialogs/linux/select.c:51 | |
| 1748 | 1752 | #: src/dialogs/linux/select.c:77 src/dialogs/print/settingsdialog.c:410 |
| 1749 | -#: src/dialogs/print/settingsdialog.c:429 src/dialogs/save/save.c:342 | |
| 1750 | -#: src/dialogs/save/save.c:361 src/dialogs/settings/dialog.c:231 | |
| 1753 | +#: src/dialogs/print/settingsdialog.c:429 src/dialogs/save/save.c:341 | |
| 1754 | +#: src/dialogs/settings/dialog.c:212 | |
| 1751 | 1755 | msgid "_Cancel" |
| 1752 | 1756 | msgstr "_Cancelar" |
| 1753 | 1757 | |
| 1754 | -#: src/dialogs/settings/host.c:644 | |
| 1758 | +#: src/dialogs/settings/host.c:560 | |
| 1755 | 1759 | msgid "_Charset" |
| 1756 | 1760 | msgstr "Tabela de _Caracteres" |
| 1757 | 1761 | |
| 1758 | -#: src/trace/tracewindow.c:125 src/dialogs/transfer.c:161 | |
| 1759 | -#: src/dialogs/transfer.c:181 src/dialogs/security.c:236 | |
| 1760 | -#: src/dialogs/popups.c:104 | |
| 1762 | +#: src/trace/tracewindow.c:125 src/dialogs/transfer.c:159 | |
| 1763 | +#: src/dialogs/transfer.c:179 src/dialogs/security.c:233 | |
| 1764 | +#: src/dialogs/popups.c:101 | |
| 1761 | 1765 | msgid "_Close" |
| 1762 | 1766 | msgstr "_Close" |
| 1763 | 1767 | |
| 1764 | -#: src/dialogs/settings/host.c:153 | |
| 1768 | +#: src/dialogs/settings/host.c:152 | |
| 1765 | 1769 | msgid "_Color table" |
| 1766 | 1770 | msgstr "_Tabela de cores" |
| 1767 | 1771 | |
| 1768 | -#: src/tools/entry.c:175 | |
| 1772 | +#: src/tools/entry.c:172 | |
| 1769 | 1773 | msgid "_Continue" |
| 1770 | 1774 | msgstr "_Continuar" |
| 1771 | 1775 | |
| ... | ... | @@ -1773,7 +1777,7 @@ msgstr "_Continuar" |
| 1773 | 1777 | msgid "_File" |
| 1774 | 1778 | msgstr "_Arquivo" |
| 1775 | 1779 | |
| 1776 | -#: src/dialogs/load.c:163 src/dialogs/save/save.c:250 | |
| 1780 | +#: src/dialogs/load.c:168 src/dialogs/save/save.c:247 | |
| 1777 | 1781 | msgid "_Filename" |
| 1778 | 1782 | msgstr "Nome do _Arquivo" |
| 1779 | 1783 | |
| ... | ... | @@ -1781,11 +1785,7 @@ msgstr "Nome do _Arquivo" |
| 1781 | 1785 | msgid "_Font:" |
| 1782 | 1786 | msgstr "_Fonte:" |
| 1783 | 1787 | |
| 1784 | -#: src/dialogs/settings/host.c:215 | |
| 1785 | -msgid "_Host" | |
| 1786 | -msgstr "_Servidor" | |
| 1787 | - | |
| 1788 | -#: src/dialogs/load.c:210 src/dialogs/load.c:225 | |
| 1788 | +#: src/dialogs/load.c:215 | |
| 1789 | 1789 | msgid "_Load" |
| 1790 | 1790 | msgstr "_Carregar" |
| 1791 | 1791 | |
| ... | ... | @@ -1793,16 +1793,16 @@ msgstr "_Carregar" |
| 1793 | 1793 | msgid "_Local file" |
| 1794 | 1794 | msgstr "Arquivo _local:" |
| 1795 | 1795 | |
| 1796 | -#: src/dialogs/settings/host.c:181 | |
| 1796 | +#: src/dialogs/settings/host.c:180 | |
| 1797 | 1797 | msgid "_Model" |
| 1798 | 1798 | msgstr "_Modelo" |
| 1799 | 1799 | |
| 1800 | -#: src/dialogs/popups.c:86 src/dialogs/popups.c:92 src/dialogs/popups.c:98 | |
| 1801 | -#: src/dialogs/popups.c:110 | |
| 1800 | +#: src/dialogs/popups.c:83 src/dialogs/popups.c:89 src/dialogs/popups.c:95 | |
| 1801 | +#: src/dialogs/popups.c:107 | |
| 1802 | 1802 | msgid "_Ok" |
| 1803 | 1803 | msgstr "_Ok" |
| 1804 | 1804 | |
| 1805 | -#: src/tools/entry.c:167 | |
| 1805 | +#: src/tools/entry.c:164 | |
| 1806 | 1806 | msgid "_Open" |
| 1807 | 1807 | msgstr "_Abrir" |
| 1808 | 1808 | |
| ... | ... | @@ -1818,19 +1818,11 @@ msgstr "_Colar como texto" |
| 1818 | 1818 | msgid "_Remote file" |
| 1819 | 1819 | msgstr "Arquivo _remoto:" |
| 1820 | 1820 | |
| 1821 | -#: src/trace/tracewindow.c:123 src/dialogs/save/save.c:347 | |
| 1822 | -#: src/dialogs/save/save.c:362 src/tools/entry.c:171 | |
| 1821 | +#: src/trace/tracewindow.c:123 src/dialogs/save/save.c:342 | |
| 1822 | +#: src/tools/entry.c:168 | |
| 1823 | 1823 | msgid "_Save" |
| 1824 | 1824 | msgstr "_Salvar" |
| 1825 | 1825 | |
| 1826 | -#: src/dialogs/settings/host.c:545 | |
| 1827 | -msgid "_Security" | |
| 1828 | -msgstr "_Segurança" | |
| 1829 | - | |
| 1830 | -#: src/dialogs/settings/host.c:228 | |
| 1831 | -msgid "_Service" | |
| 1832 | -msgstr "_Serviço" | |
| 1833 | - | |
| 1834 | 1826 | #: src/filetransfer/tables.c:43 |
| 1835 | 1827 | msgid "_Text file" |
| 1836 | 1828 | msgstr "Arquivo _texto" |
| ... | ... | @@ -2366,6 +2358,15 @@ msgstr "Diminui o tamanho da fonte" |
| 2366 | 2358 | #~ msgid "Clear AID key" |
| 2367 | 2359 | #~ msgstr "Clear AID" |
| 2368 | 2360 | |
| 2361 | +#~ msgid "Click to cancel operation" | |
| 2362 | +#~ msgstr "Clique para cancelar operação" | |
| 2363 | + | |
| 2364 | +#~ msgid "Click to load file" | |
| 2365 | +#~ msgstr "Clique para carregar arquivo" | |
| 2366 | + | |
| 2367 | +#~ msgid "Click to save file" | |
| 2368 | +#~ msgstr "Clique para salvar arquivo" | |
| 2369 | + | |
| 2369 | 2370 | #~ msgid "Color setup" |
| 2370 | 2371 | #~ msgstr "Configuração de cores" |
| 2371 | 2372 | |
| ... | ... | @@ -2717,9 +2718,6 @@ msgstr "Diminui o tamanho da fonte" |
| 2717 | 2718 | #~ msgid "Host to connect" |
| 2718 | 2719 | #~ msgstr "Servidor a conectar" |
| 2719 | 2720 | |
| 2720 | -#~ msgid "Host type name" | |
| 2721 | -#~ msgstr "Nome do tipo de host" | |
| 2722 | - | |
| 2723 | 2721 | #~ msgid "Hostname syntax error" |
| 2724 | 2722 | #~ msgstr "Formato inválido no nome do servidor" |
| 2725 | 2723 | |
| ... | ... | @@ -2998,6 +2996,9 @@ msgstr "Diminui o tamanho da fonte" |
| 2998 | 2996 | #~ "Permitida apenas uma opção dentre TRACKS, CYLINDERS, AVBLOCK: " |
| 2999 | 2997 | #~ "Transferência cancelada" |
| 3000 | 2998 | |
| 2999 | +#~ msgid "Open" | |
| 3000 | +#~ msgstr "Abrir" | |
| 3001 | + | |
| 3001 | 3002 | #~ msgid "Operation failed" |
| 3002 | 3003 | #~ msgstr "Operação falhou" |
| 3003 | 3004 | |
| ... | ... | @@ -3404,9 +3405,6 @@ msgstr "Diminui o tamanho da fonte" |
| 3404 | 3405 | #~ msgid "Secure connection was successful." |
| 3405 | 3406 | #~ msgstr "Conexão segura efetuada com sucesso." |
| 3406 | 3407 | |
| 3407 | -#~ msgid "Security warning" | |
| 3408 | -#~ msgstr "Alerta de segurança" | |
| 3409 | - | |
| 3410 | 3408 | #~ msgid "Select Field" |
| 3411 | 3409 | #~ msgstr "Selecionar campo" |
| 3412 | 3410 | |
| ... | ... | @@ -3572,9 +3570,6 @@ msgstr "Diminui o tamanho da fonte" |
| 3572 | 3570 | #~ msgid "Text file" |
| 3573 | 3571 | #~ msgstr "Arquivo texto" |
| 3574 | 3572 | |
| 3575 | -#~ msgid "Text files" | |
| 3576 | -#~ msgstr "Arquivos de texto" | |
| 3577 | - | |
| 3578 | 3573 | #~ msgid "The CRL has expired." |
| 3579 | 3574 | #~ msgstr "A lista de certificados revogados expirou." |
| 3580 | 3575 | |
| ... | ... | @@ -4032,6 +4027,9 @@ msgstr "Diminui o tamanho da fonte" |
| 4032 | 4027 | #~ msgid "Unsupported socks 4 proxy" |
| 4033 | 4028 | #~ msgstr "Unsupported socks 4 proxy" |
| 4034 | 4029 | |
| 4030 | +#~ msgid "Untitled document" | |
| 4031 | +#~ msgstr "Documento sem título" | |
| 4032 | + | |
| 4035 | 4033 | #~ msgid "Uppercase only" |
| 4036 | 4034 | #~ msgstr "Apenas maiúsculas" |
| 4037 | 4035 | |
| ... | ... | @@ -4099,6 +4097,9 @@ msgstr "Diminui o tamanho da fonte" |
| 4099 | 4097 | #~ msgid "_Edit" |
| 4100 | 4098 | #~ msgstr "_Editar" |
| 4101 | 4099 | |
| 4100 | +#~ msgid "_Host" | |
| 4101 | +#~ msgstr "_Servidor" | |
| 4102 | + | |
| 4102 | 4103 | #~ msgid "_Network" |
| 4103 | 4104 | #~ msgstr "_Rede" |
| 4104 | 4105 | ... | ... |
src/dialogs/settings/host.c
| ... | ... | @@ -38,6 +38,7 @@ |
| 38 | 38 | #include <lib3270/log.h> |
| 39 | 39 | #include <lib3270/toggle.h> |
| 40 | 40 | #include <lib3270/properties.h> |
| 41 | + #include <v3270/settings/url.h> | |
| 41 | 42 | |
| 42 | 43 | /*--[ Globals ]--------------------------------------------------------------------------------------*/ |
| 43 | 44 | |
| ... | ... | @@ -52,21 +53,21 @@ |
| 52 | 53 | { |
| 53 | 54 | { |
| 54 | 55 | .left = 2, |
| 55 | - .top = 2, | |
| 56 | + .top = 3, | |
| 56 | 57 | .width = 2, |
| 57 | 58 | .grid = CONNECTION, |
| 58 | 59 | .id = LIB3270_TOGGLE_CONNECT_ON_STARTUP, |
| 59 | 60 | }, |
| 60 | 61 | { |
| 61 | 62 | .left = 4, |
| 62 | - .top = 2, | |
| 63 | + .top = 3, | |
| 63 | 64 | .width = 1, |
| 64 | 65 | .grid = CONNECTION, |
| 65 | 66 | .id = LIB3270_TOGGLE_RECONNECT, |
| 66 | 67 | }, |
| 67 | 68 | { |
| 68 | 69 | .left = 5, |
| 69 | - .top = 2, | |
| 70 | + .top = 3, | |
| 70 | 71 | .width = 1, |
| 71 | 72 | .grid = CONNECTION, |
| 72 | 73 | .id = LIB3270_TOGGLE_KEEP_ALIVE, |
| ... | ... | @@ -94,8 +95,6 @@ |
| 94 | 95 | |
| 95 | 96 | enum _entry |
| 96 | 97 | { |
| 97 | - ENTRY_HOSTNAME, | |
| 98 | - ENTRY_SRVCNAME, | |
| 99 | 98 | ENTRY_OVERSIZE, |
| 100 | 99 | ENTRY_REMAP_FILE, |
| 101 | 100 | ENTRY_LU_NAMES, |
| ... | ... | @@ -206,32 +205,6 @@ |
| 206 | 205 | |
| 207 | 206 | static const struct EntryFieldDefinition entryfields[] = { |
| 208 | 207 | { |
| 209 | - .left = 0, | |
| 210 | - .top = 0, | |
| 211 | - .width = 5, | |
| 212 | - .height = 1, | |
| 213 | - .grid = CONNECTION, | |
| 214 | - | |
| 215 | - .label = N_( "_Host" ), | |
| 216 | - .tooltip = N_("Address or name of the host to connect."), | |
| 217 | - .max_length = 0xFF, | |
| 218 | - .width_chars = 50, | |
| 219 | - | |
| 220 | - }, | |
| 221 | - { | |
| 222 | - .left = 0, | |
| 223 | - .top = 1, | |
| 224 | - .width = 1, | |
| 225 | - .height = 1, | |
| 226 | - .grid = CONNECTION, | |
| 227 | - | |
| 228 | - .label = N_( "_Service" ), | |
| 229 | - .tooltip = N_("Port or service name."), | |
| 230 | - .max_length = 6, | |
| 231 | - .width_chars = 7, | |
| 232 | - }, | |
| 233 | - | |
| 234 | - { | |
| 235 | 208 | .top = 1, |
| 236 | 209 | .left = 3, |
| 237 | 210 | .width = 2, |
| ... | ... | @@ -258,9 +231,9 @@ |
| 258 | 231 | }, |
| 259 | 232 | |
| 260 | 233 | { |
| 261 | - .left = 2, | |
| 262 | - .top = 1, | |
| 263 | - .width = 3, | |
| 234 | + .left = 0, | |
| 235 | + .top = 2, | |
| 236 | + .width = 5, | |
| 264 | 237 | .height = 1, |
| 265 | 238 | .grid = CONNECTION, |
| 266 | 239 | |
| ... | ... | @@ -279,12 +252,12 @@ |
| 279 | 252 | struct |
| 280 | 253 | { |
| 281 | 254 | GtkEntry * entry[G_N_ELEMENTS(entryfields)]; ///< @brief Entry fields for host & service name. |
| 282 | - GtkComboBox * ssl; ///< @brief SSL Connection? | |
| 283 | 255 | GtkComboBox * combos[G_N_ELEMENTS(combos)]; ///< @brief Combo-boxes. |
| 284 | 256 | GtkComboBox * charset; ///< @brief Charset combo box. |
| 285 | 257 | GtkToggleButton * toggles[G_N_ELEMENTS(toggleList)]; ///< @brief Toggle checks. |
| 286 | 258 | GtkSpinButton * auto_disconnect; ///< @brief Auto disconnect. |
| 287 | 259 | GtkSpinButton * unlock_delay; ///< @brief Unlock delay. |
| 260 | + GtkWidget * url; ///< @brief The URL entry widget. | |
| 288 | 261 | |
| 289 | 262 | } input; |
| 290 | 263 | |
| ... | ... | @@ -307,7 +280,7 @@ static void update_message(GtkWidget *widget, GtkWidget *terminal) |
| 307 | 280 | gtk_widget_set_sensitive(widget, lib3270_is_disconnected(v3270_get_session(terminal))); |
| 308 | 281 | } |
| 309 | 282 | |
| 310 | -static void V3270HostSelectWidget_class_init(G_GNUC_UNUSED V3270HostSelectWidgetClass *klass) | |
| 283 | +static void V3270HostSelectWidget_class_init(V3270HostSelectWidgetClass *klass) | |
| 311 | 284 | { |
| 312 | 285 | V3270SettingsClass * widget = GTK_V3270_SETTINGS_CLASS(klass); |
| 313 | 286 | |
| ... | ... | @@ -339,19 +312,7 @@ static gboolean oversize_validate(GtkEditable *editable) { |
| 339 | 312 | static void update_valid(V3270HostSelectWidget *settings, gboolean valid) { |
| 340 | 313 | |
| 341 | 314 | if(valid) { |
| 342 | - | |
| 343 | - // Check required inputs. | |
| 344 | - | |
| 345 | - static const int required[] = { ENTRY_HOSTNAME, ENTRY_SRVCNAME }; | |
| 346 | - size_t ix; | |
| 347 | - | |
| 348 | - for(ix = 0; ix < G_N_ELEMENTS(required); ix++) { | |
| 349 | - const gchar * chars = gtk_editable_get_chars(GTK_EDITABLE(settings->input.entry[required[ix]]),0,-1); | |
| 350 | - if(!*chars) { | |
| 351 | - valid = FALSE; | |
| 352 | - break; | |
| 353 | - } | |
| 354 | - } | |
| 315 | + valid = v3270_url_edit_is_valid(settings->input.url); | |
| 355 | 316 | } |
| 356 | 317 | |
| 357 | 318 | if(valid) { |
| ... | ... | @@ -362,10 +323,14 @@ static void update_valid(V3270HostSelectWidget *settings, gboolean valid) { |
| 362 | 323 | |
| 363 | 324 | } |
| 364 | 325 | |
| 365 | -static void required_changed(GtkEditable *editable, GtkWidget *settings) { | |
| 326 | +static void url_valid(GtkWidget G_GNUC_UNUSED(*url), gboolean valid, V3270HostSelectWidget *settings) { | |
| 366 | 327 | |
| 367 | - const gchar * chars = gtk_editable_get_chars(editable,0,-1); | |
| 368 | - update_valid(GTK_V3270HostSelectWidget(settings),(*chars ? TRUE : FALSE)); | |
| 328 | + if(valid) { | |
| 329 | + update_valid(settings,valid); | |
| 330 | + return; | |
| 331 | + } | |
| 332 | + | |
| 333 | + v3270_settings_set_valid(GTK_WIDGET(settings),valid); | |
| 369 | 334 | |
| 370 | 335 | } |
| 371 | 336 | |
| ... | ... | @@ -454,18 +419,12 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
| 454 | 419 | { |
| 455 | 420 | GtkWidget *grids[GRID_COUNT]; |
| 456 | 421 | |
| 457 | - { | |
| 458 | - size_t grid; | |
| 422 | + grids[CONNECTION] = widget->input.url = v3270_url_edit_new(); | |
| 423 | + g_signal_connect(grids[CONNECTION],"valid",G_CALLBACK(url_valid),widget); | |
| 459 | 424 | |
| 460 | - for(grid = 0; grid < G_N_ELEMENTS(grids); grid++) | |
| 461 | - grids[grid] = gtk_grid_new(); | |
| 462 | - | |
| 463 | - } | |
| 425 | + grids[EMULATION] = gtk_grid_new(); | |
| 464 | 426 | |
| 465 | 427 | // Connection properties |
| 466 | - gtk_grid_set_row_spacing(GTK_GRID(grids[CONNECTION]),6); | |
| 467 | - gtk_grid_set_column_spacing(GTK_GRID(grids[CONNECTION]),12); | |
| 468 | - | |
| 469 | 428 | gtk_grid_attach( |
| 470 | 429 | GTK_GRID(widget), |
| 471 | 430 | v3270_dialog_section_new(_("Connection"),_("Network connection settings"),grids[CONNECTION]), |
| ... | ... | @@ -486,10 +445,6 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
| 486 | 445 | { |
| 487 | 446 | v3270_settings_create_entry_fields(entryfields, G_N_ELEMENTS(entryfields), grids, widget->input.entry); |
| 488 | 447 | |
| 489 | - // Custom settings | |
| 490 | - // gtk_entry_set_placeholder_text(widget->input.entry[ENTRY_SRVCNAME],"telnet"); | |
| 491 | - | |
| 492 | - gtk_widget_set_hexpand(GTK_WIDGET(widget->input.entry[ENTRY_HOSTNAME]),TRUE); | |
| 493 | 448 | gtk_widget_set_hexpand(GTK_WIDGET(widget->input.entry[ENTRY_REMAP_FILE]),TRUE); |
| 494 | 449 | |
| 495 | 450 | gtk_entry_set_icon_from_icon_name(widget->input.entry[ENTRY_REMAP_FILE],GTK_ENTRY_ICON_SECONDARY,"document-open"); |
| ... | ... | @@ -500,8 +455,6 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
| 500 | 455 | g_signal_connect(G_OBJECT(widget->input.entry[ENTRY_REMAP_FILE]),"changed",G_CALLBACK(remap_file_changed),widget); |
| 501 | 456 | |
| 502 | 457 | g_signal_connect(G_OBJECT(widget->input.entry[ENTRY_OVERSIZE]),"changed",G_CALLBACK(oversize_changed),widget); |
| 503 | - g_signal_connect(G_OBJECT(widget->input.entry[ENTRY_HOSTNAME]),"changed",G_CALLBACK(required_changed),widget); | |
| 504 | - g_signal_connect(G_OBJECT(widget->input.entry[ENTRY_SRVCNAME]),"changed",G_CALLBACK(required_changed),widget); | |
| 505 | 458 | |
| 506 | 459 | } |
| 507 | 460 | |
| ... | ... | @@ -516,8 +469,8 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
| 516 | 469 | |
| 517 | 470 | gtk_spin_button_set_increments(widget->input.auto_disconnect,1,1); |
| 518 | 471 | |
| 519 | - gtk_grid_attach(GTK_GRID(grids[CONNECTION]),label,0,2,1,1); | |
| 520 | - gtk_grid_attach(GTK_GRID(grids[CONNECTION]),GTK_WIDGET(widget->input.auto_disconnect),1,2,1,1); | |
| 472 | + gtk_grid_attach(GTK_GRID(grids[CONNECTION]),label,0,3,1,1); | |
| 473 | + gtk_grid_attach(GTK_GRID(grids[CONNECTION]),GTK_WIDGET(widget->input.auto_disconnect),1,3,1,1); | |
| 521 | 474 | g_signal_connect(G_OBJECT(widget->input.auto_disconnect),"output",G_CALLBACK(spin_format),widget); |
| 522 | 475 | } |
| 523 | 476 | |
| ... | ... | @@ -540,43 +493,6 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
| 540 | 493 | |
| 541 | 494 | } |
| 542 | 495 | |
| 543 | - // SSL input | |
| 544 | - { | |
| 545 | - GtkWidget *label = gtk_label_new_with_mnemonic(_( "_Security" )); | |
| 546 | - gtk_widget_set_halign(label,GTK_ALIGN_END); | |
| 547 | - gtk_grid_attach(GTK_GRID(grids[CONNECTION]),label,0,3,1,1); | |
| 548 | - | |
| 549 | - GtkTreeModel * model = (GtkTreeModel *) gtk_list_store_new(1,G_TYPE_STRING); | |
| 550 | - | |
| 551 | - widget->input.ssl = GTK_COMBO_BOX(gtk_combo_box_new_with_model(model)); | |
| 552 | - | |
| 553 | - GtkCellRenderer * text_renderer = gtk_cell_renderer_text_new(); | |
| 554 | - gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(widget->input.ssl), text_renderer, TRUE); | |
| 555 | - gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(widget->input.ssl), text_renderer, "text", 0, NULL); | |
| 556 | - | |
| 557 | - static const gchar * levels[] = | |
| 558 | - { | |
| 559 | - N_("Unsecure"), | |
| 560 | - N_("SSL/TLS") | |
| 561 | - }; | |
| 562 | - | |
| 563 | - size_t level; | |
| 564 | - for(level = 0; level < G_N_ELEMENTS(levels); level++) | |
| 565 | - { | |
| 566 | - GtkTreeIter iter; | |
| 567 | - gtk_list_store_append((GtkListStore *) model, &iter); | |
| 568 | - gtk_list_store_set((GtkListStore *) model, &iter, 0, levels[level], -1); | |
| 569 | - }; | |
| 570 | - | |
| 571 | - /* | |
| 572 | - widget->input.ssl = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic(_( "_Secure connection." ))); | |
| 573 | - gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.ssl),_( "Check for SSL secure connection." )); | |
| 574 | - gtk_widget_set_halign(GTK_WIDGET(widget->input.ssl),GTK_ALIGN_START); | |
| 575 | - */ | |
| 576 | - | |
| 577 | - gtk_grid_attach(GTK_GRID(grids[CONNECTION]),GTK_WIDGET(widget->input.ssl),1,3,2,1); | |
| 578 | - } | |
| 579 | - | |
| 580 | 496 | // Toggle checkboxes |
| 581 | 497 | v3270_settings_create_toggle_buttons(toggleList, G_N_ELEMENTS(toggleList), grids, widget->input.toggles); |
| 582 | 498 | |
| ... | ... | @@ -725,20 +641,7 @@ static void apply(GtkWidget *w, GtkWidget *terminal) |
| 725 | 641 | H3270 *hSession = v3270_get_session(terminal); |
| 726 | 642 | |
| 727 | 643 | // Apply URL |
| 728 | - { | |
| 729 | - g_autofree gchar * url = | |
| 730 | - g_strconcat( | |
| 731 | - (gtk_combo_box_get_active(widget->input.ssl) > 0 ? "tn3270s://" : "tn3270://"), | |
| 732 | - gtk_entry_get_text(widget->input.entry[ENTRY_HOSTNAME]), | |
| 733 | - ":", | |
| 734 | - gtk_entry_get_text(widget->input.entry[ENTRY_SRVCNAME]), | |
| 735 | - NULL | |
| 736 | - ); | |
| 737 | - | |
| 738 | - debug("URL=[%s]",url); | |
| 739 | - lib3270_set_url(hSession,url); | |
| 740 | - | |
| 741 | - } | |
| 644 | + lib3270_set_url(hSession,v3270_url_edit_get_url(widget->input.url)); | |
| 742 | 645 | |
| 743 | 646 | // Apply LU names |
| 744 | 647 | v3270_set_lunames(terminal,gtk_entry_get_text(widget->input.entry[ENTRY_LU_NAMES])); |
| ... | ... | @@ -801,42 +704,7 @@ static void load(GtkWidget *w, GtkWidget *terminal) |
| 801 | 704 | H3270 *hSession = v3270_get_session(terminal); |
| 802 | 705 | V3270HostSelectWidget *widget = GTK_V3270HostSelectWidget(w); |
| 803 | 706 | |
| 804 | - const gchar * u = lib3270_get_url(hSession); | |
| 805 | - | |
| 806 | - if(u) | |
| 807 | - { | |
| 808 | - | |
| 809 | - g_autofree gchar * url = g_strdup(u); | |
| 810 | - | |
| 811 | - gtk_combo_box_set_active(widget->input.ssl,(g_str_has_prefix(u,"tn3270s") ? 1 : 0)); | |
| 812 | -// gtk_toggle_button_set_active(widget->input.ssl,g_str_has_prefix(u,"tn3270s")); | |
| 813 | - | |
| 814 | - gchar *hostname = strstr(url,"://"); | |
| 815 | - if(!hostname) | |
| 816 | - { | |
| 817 | - g_message("Invalid URL: \"%s\" (no scheme)",url); | |
| 818 | - } | |
| 819 | - else | |
| 820 | - { | |
| 821 | - hostname += 3; | |
| 822 | - | |
| 823 | - gchar *srvcname = strchr(hostname,':'); | |
| 824 | - | |
| 825 | - if(srvcname) | |
| 826 | - { | |
| 827 | - *(srvcname++) = 0; | |
| 828 | - } | |
| 829 | - else | |
| 830 | - { | |
| 831 | - srvcname = "23"; | |
| 832 | - } | |
| 833 | - | |
| 834 | - gtk_entry_set_text(widget->input.entry[ENTRY_HOSTNAME],hostname); | |
| 835 | - gtk_entry_set_text(widget->input.entry[ENTRY_SRVCNAME],srvcname); | |
| 836 | - | |
| 837 | - } | |
| 838 | - | |
| 839 | - } | |
| 707 | + v3270_url_edit_set_url(widget->input.url,lib3270_get_url(hSession)); | |
| 840 | 708 | |
| 841 | 709 | // Load LU names |
| 842 | 710 | g_autofree gchar * lunames = v3270_get_lunames(terminal); | ... | ... |
| ... | ... | @@ -0,0 +1,382 @@ |
| 1 | +/* SPDX-License-Identifier: LGPL-3.0-or-later */ | |
| 2 | + | |
| 3 | +/* | |
| 4 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
| 5 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
| 6 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
| 7 | + * | |
| 8 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | |
| 9 | + * | |
| 10 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
| 11 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
| 12 | + * Free Software Foundation. | |
| 13 | + * | |
| 14 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
| 15 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
| 16 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
| 17 | + * obter mais detalhes. | |
| 18 | + * | |
| 19 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
| 20 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | |
| 21 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | |
| 22 | + * | |
| 23 | + * Este programa está nomeado como - e possui - linhas de código. | |
| 24 | + * | |
| 25 | + * Contatos: | |
| 26 | + * | |
| 27 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
| 28 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
| 29 | + * | |
| 30 | + */ | |
| 31 | + | |
| 32 | + #include "private.h" | |
| 33 | + #include "marshal.h" | |
| 34 | + #include <v3270/settings/url.h> | |
| 35 | + #include <ctype.h> | |
| 36 | + | |
| 37 | + enum { | |
| 38 | + PROP_0, | |
| 39 | + PROP_URL | |
| 40 | + }; | |
| 41 | + | |
| 42 | + enum { | |
| 43 | + SIGNAL_VALID, | |
| 44 | + LAST_SIGNAL | |
| 45 | + }; | |
| 46 | + | |
| 47 | + static guint signals[LAST_SIGNAL] = { 0 }; | |
| 48 | + | |
| 49 | + struct _V3270URLEdit { | |
| 50 | + | |
| 51 | + GtkGrid parent; | |
| 52 | + | |
| 53 | + /// @brief Entry fields | |
| 54 | + struct { | |
| 55 | + GtkWidget *host; ///< @brief The hostname | |
| 56 | + GtkWidget *service; ///< @brief The service/port name | |
| 57 | + GtkWidget *ssl; ///< @brief The Security Drop-Down | |
| 58 | + } entry; | |
| 59 | + | |
| 60 | + /// @brief Current URL | |
| 61 | + gchar *url; | |
| 62 | + | |
| 63 | + /// @brief Is the entry valid? | |
| 64 | + gboolean isValid; | |
| 65 | + | |
| 66 | + }; | |
| 67 | + | |
| 68 | + struct _V3270URLEditClass { | |
| 69 | + | |
| 70 | + GtkGridClass parent; | |
| 71 | + | |
| 72 | + GParamSpec *url; | |
| 73 | + | |
| 74 | + }; | |
| 75 | + | |
| 76 | + G_DEFINE_TYPE(V3270URLEdit, V3270URLEdit, GTK_TYPE_GRID); | |
| 77 | + | |
| 78 | + GtkWidget * v3270_url_edit_new() { | |
| 79 | + return g_object_new(GTK_TYPE_V3270URLEdit, NULL); | |
| 80 | + } | |
| 81 | + | |
| 82 | + static void finalize(GObject *object) { | |
| 83 | + | |
| 84 | + V3270URLEdit *edit = GTK_V3270URLEdit(object); | |
| 85 | + | |
| 86 | + if(edit->url) { | |
| 87 | + g_free(edit->url); | |
| 88 | + edit->url = NULL; | |
| 89 | + } | |
| 90 | + | |
| 91 | + G_OBJECT_CLASS(V3270URLEdit_parent_class)->finalize(object); | |
| 92 | + } | |
| 93 | + | |
| 94 | + static void set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec G_GNUC_UNUSED(*pspec)) { | |
| 95 | + | |
| 96 | + switch(prop_id) { | |
| 97 | + case PROP_URL: | |
| 98 | + v3270_url_edit_set_url(GTK_WIDGET(object),g_value_get_string(value)); | |
| 99 | + break; | |
| 100 | + } | |
| 101 | + } | |
| 102 | + | |
| 103 | + static void get_property(GObject *object, guint prop_id, GValue *value, GParamSpec G_GNUC_UNUSED(*pspec)) { | |
| 104 | + switch(prop_id) { | |
| 105 | + case PROP_URL: | |
| 106 | + g_value_set_string(value,v3270_url_edit_get_url(GTK_WIDGET(object))); | |
| 107 | + break; | |
| 108 | + } | |
| 109 | + } | |
| 110 | + | |
| 111 | + static void V3270URLEdit_class_init(V3270URLEditClass *klass) { | |
| 112 | + | |
| 113 | + GObjectClass *goc = G_OBJECT_CLASS(klass); | |
| 114 | + | |
| 115 | + goc->finalize = finalize; | |
| 116 | + goc->set_property = set_property; | |
| 117 | + goc->get_property = get_property; | |
| 118 | + | |
| 119 | + klass->url = | |
| 120 | + g_param_spec_string( | |
| 121 | + "url", "url", | |
| 122 | + _( "TN3270 Host URL" ), | |
| 123 | + lib3270_get_default_host(NULL), | |
| 124 | + G_PARAM_READWRITE | |
| 125 | + ); | |
| 126 | + | |
| 127 | + g_object_class_install_property( | |
| 128 | + goc, | |
| 129 | + PROP_URL, | |
| 130 | + klass->url | |
| 131 | + ); | |
| 132 | + | |
| 133 | + signals[SIGNAL_VALID] = | |
| 134 | + g_signal_new( | |
| 135 | + I_("valid"), | |
| 136 | + G_OBJECT_CLASS_TYPE(goc), | |
| 137 | + G_SIGNAL_RUN_FIRST, | |
| 138 | + 0, | |
| 139 | + NULL, NULL, | |
| 140 | + v3270_VOID__BOOLEAN, | |
| 141 | + G_TYPE_NONE, 1, G_TYPE_BOOLEAN, 0 | |
| 142 | + ); | |
| 143 | + | |
| 144 | + } | |
| 145 | + | |
| 146 | + static void entry_changed(GtkEntry *entry, V3270URLEdit *widget) { | |
| 147 | + | |
| 148 | + g_object_notify_by_pspec(G_OBJECT(widget),GTK_V3270URLEdit_GET_CLASS(widget)->url); | |
| 149 | + | |
| 150 | + gboolean isValid = (gtk_entry_get_text(entry)[0] != 0); | |
| 151 | + if(widget->isValid == isValid) { | |
| 152 | + return; | |
| 153 | + } | |
| 154 | + | |
| 155 | + if(isValid) { | |
| 156 | + | |
| 157 | + size_t ix; | |
| 158 | + | |
| 159 | + // Verify entry-fields | |
| 160 | + GtkWidget *widgets[] = { | |
| 161 | + widget->entry.host, | |
| 162 | + widget->entry.service | |
| 163 | + }; | |
| 164 | + | |
| 165 | + for(ix = 0; ix < G_N_ELEMENTS(widgets); ix++) { | |
| 166 | + | |
| 167 | + const gchar *str = gtk_entry_get_text(GTK_ENTRY(widgets[ix])); | |
| 168 | + while(*str && isspace(*str)) { | |
| 169 | + str++; | |
| 170 | + } | |
| 171 | + | |
| 172 | + if(!*str) { | |
| 173 | + isValid = FALSE; | |
| 174 | + break; | |
| 175 | + } | |
| 176 | + | |
| 177 | + } | |
| 178 | + | |
| 179 | + } | |
| 180 | + | |
| 181 | + if(isValid == widget->isValid) { | |
| 182 | + return; | |
| 183 | + } | |
| 184 | + | |
| 185 | + debug("The URL box is %s", isValid ? "valid" : "invalid"); | |
| 186 | + | |
| 187 | + widget->isValid = isValid; | |
| 188 | + g_signal_emit(widget, signals[SIGNAL_VALID], 0, isValid); | |
| 189 | + | |
| 190 | + } | |
| 191 | + | |
| 192 | + static void V3270URLEdit_init(V3270URLEdit *widget) { | |
| 193 | + | |
| 194 | + size_t ix; | |
| 195 | + | |
| 196 | + widget->isValid = FALSE; | |
| 197 | + | |
| 198 | + // Table of constants. | |
| 199 | + static const struct _labels { | |
| 200 | + int row; | |
| 201 | + int col; | |
| 202 | + const char *text; | |
| 203 | + const char *tooltip; | |
| 204 | + } labels[] = { | |
| 205 | + { | |
| 206 | + .row = 0, | |
| 207 | + .col = 0, | |
| 208 | + .text = N_("Hostname"), | |
| 209 | + .tooltip = N_("Address or name of the host to connect."), | |
| 210 | + }, | |
| 211 | + { | |
| 212 | + .row = 1, | |
| 213 | + .col = 0, | |
| 214 | + .text = N_("Service/Port"), | |
| 215 | + .tooltip = N_("Port or service name."), | |
| 216 | + }, | |
| 217 | + { | |
| 218 | + .row = 1, | |
| 219 | + .col = 2, | |
| 220 | + .text = N_("Security"), | |
| 221 | + .tooltip = N_("Security engine"), | |
| 222 | + } | |
| 223 | + }; | |
| 224 | + | |
| 225 | + // setup grid | |
| 226 | + gtk_widget_set_vexpand(GTK_WIDGET(widget),FALSE); | |
| 227 | + gtk_grid_set_row_spacing(GTK_GRID(widget),6); | |
| 228 | + gtk_grid_set_column_spacing(GTK_GRID(widget),12); | |
| 229 | + | |
| 230 | + // Create hostname field. | |
| 231 | + { | |
| 232 | + widget->entry.host = gtk_entry_new(); | |
| 233 | + gtk_widget_set_hexpand(widget->entry.host,TRUE); | |
| 234 | + gtk_entry_set_width_chars(GTK_ENTRY(widget->entry.host),50); | |
| 235 | + gtk_widget_set_tooltip_text(widget->entry.host,g_dgettext(GETTEXT_PACKAGE,labels[0].tooltip)); | |
| 236 | + gtk_grid_attach(GTK_GRID(widget),widget->entry.host,1,0,5,1); | |
| 237 | + g_signal_connect(widget->entry.host,"changed",G_CALLBACK(entry_changed),widget); | |
| 238 | + } | |
| 239 | + | |
| 240 | + // Create the service/port field. | |
| 241 | + { | |
| 242 | + widget->entry.service = gtk_entry_new(); | |
| 243 | + gtk_widget_set_hexpand(widget->entry.service,FALSE); | |
| 244 | + gtk_entry_set_max_length(GTK_ENTRY(widget->entry.service),6); | |
| 245 | + gtk_entry_set_width_chars(GTK_ENTRY(widget->entry.service),7); | |
| 246 | + gtk_widget_set_tooltip_text(widget->entry.service,g_dgettext(GETTEXT_PACKAGE,labels[1].tooltip)); | |
| 247 | + gtk_grid_attach(GTK_GRID(widget),widget->entry.service,1,1,1,1); | |
| 248 | + g_signal_connect(widget->entry.service,"changed",G_CALLBACK(entry_changed),widget); | |
| 249 | + } | |
| 250 | + | |
| 251 | + // Create the security dropbox. | |
| 252 | + { | |
| 253 | + GtkTreeModel * model = (GtkTreeModel *) gtk_list_store_new(1,G_TYPE_STRING); | |
| 254 | + widget->entry.ssl = gtk_combo_box_new_with_model(model); | |
| 255 | + gtk_widget_set_hexpand(widget->entry.ssl,TRUE); | |
| 256 | + | |
| 257 | + GtkCellRenderer * text_renderer = gtk_cell_renderer_text_new(); | |
| 258 | + gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(widget->entry.ssl), text_renderer, TRUE); | |
| 259 | + gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(widget->entry.ssl), text_renderer, "text", 0, NULL); | |
| 260 | + | |
| 261 | + static const gchar * levels[] = | |
| 262 | + { | |
| 263 | + N_("Unsecure"), | |
| 264 | + N_("SSL/TLS") | |
| 265 | + }; | |
| 266 | + | |
| 267 | + size_t level; | |
| 268 | + for(level = 0; level < G_N_ELEMENTS(levels); level++) | |
| 269 | + { | |
| 270 | + GtkTreeIter iter; | |
| 271 | + gtk_list_store_append((GtkListStore *) model, &iter); | |
| 272 | + gtk_list_store_set((GtkListStore *) model, &iter, 0, g_dgettext(GETTEXT_PACKAGE,levels[level]), -1); | |
| 273 | + }; | |
| 274 | + | |
| 275 | + gtk_widget_set_tooltip_text(widget->entry.ssl,g_dgettext(GETTEXT_PACKAGE,labels[2].tooltip)); | |
| 276 | + gtk_grid_attach(GTK_GRID(widget),widget->entry.ssl,3,1,3,1); | |
| 277 | + } | |
| 278 | + | |
| 279 | + // Create labels. | |
| 280 | + { | |
| 281 | + | |
| 282 | + for(ix = 0; ix < G_N_ELEMENTS(labels);ix++) { | |
| 283 | + GtkWidget * label = gtk_label_new(g_dgettext(GETTEXT_PACKAGE,labels[ix].text)); | |
| 284 | + gtk_widget_set_halign(label,GTK_ALIGN_END); | |
| 285 | + gtk_widget_set_hexpand(label,FALSE); | |
| 286 | + gtk_grid_attach(GTK_GRID(widget),label,labels[ix].col,labels[ix].row,1,1); | |
| 287 | + gtk_widget_set_tooltip_text(label,g_dgettext(GETTEXT_PACKAGE,labels[ix].tooltip)); | |
| 288 | + } | |
| 289 | + | |
| 290 | + | |
| 291 | + } | |
| 292 | + | |
| 293 | + v3270_url_edit_set_url(GTK_WIDGET(widget),NULL); | |
| 294 | + | |
| 295 | + } | |
| 296 | + | |
| 297 | + void v3270_url_edit_set_url(GtkWidget *widget, const gchar *url) { | |
| 298 | + | |
| 299 | + g_return_if_fail(GTK_IS_V3270URLEdit(widget)); | |
| 300 | + V3270URLEdit *edit = GTK_V3270URLEdit(widget); | |
| 301 | + | |
| 302 | + if(edit->url) { | |
| 303 | + g_free(edit->url); | |
| 304 | + edit->url = NULL; | |
| 305 | + } | |
| 306 | + | |
| 307 | + if(!(url && *url)) { | |
| 308 | + gtk_combo_box_set_active(GTK_COMBO_BOX(edit->entry.ssl),0); | |
| 309 | + gtk_entry_set_text(GTK_ENTRY(edit->entry.host),""); | |
| 310 | + gtk_entry_set_text(GTK_ENTRY(edit->entry.service),""); | |
| 311 | + return; | |
| 312 | + } | |
| 313 | + | |
| 314 | + edit->url = g_strdup(url); | |
| 315 | + | |
| 316 | + gtk_combo_box_set_active(GTK_COMBO_BOX(edit->entry.ssl),(g_str_has_prefix(edit->url,"tn3270s") ? 1 : 0)); | |
| 317 | + | |
| 318 | + gchar *hostname = strstr(url,"://"); | |
| 319 | + if(!hostname) | |
| 320 | + { | |
| 321 | + g_message("Invalid URL: \"%s\" (no scheme)",url); | |
| 322 | + gtk_entry_set_text(GTK_ENTRY(edit->entry.host),""); | |
| 323 | + gtk_entry_set_text(GTK_ENTRY(edit->entry.service),""); | |
| 324 | + return; | |
| 325 | + } | |
| 326 | + | |
| 327 | + hostname += 3; | |
| 328 | + g_autofree gchar *str = g_strdup(hostname); | |
| 329 | + | |
| 330 | + gchar *srvcname = strchr(str,':'); | |
| 331 | + | |
| 332 | + if(srvcname) { | |
| 333 | + *(srvcname++) = 0; | |
| 334 | + } else { | |
| 335 | + srvcname = "3270"; | |
| 336 | + } | |
| 337 | + | |
| 338 | + gtk_entry_set_text(GTK_ENTRY(edit->entry.host),str); | |
| 339 | + gtk_entry_set_text(GTK_ENTRY(edit->entry.service),srvcname); | |
| 340 | + | |
| 341 | + } | |
| 342 | + | |
| 343 | + const gchar * v3270_url_edit_get_url(GtkWidget *widget) { | |
| 344 | + | |
| 345 | + g_return_val_if_fail(GTK_IS_V3270URLEdit(widget),NULL); | |
| 346 | + V3270URLEdit *edit = GTK_V3270URLEdit(widget); | |
| 347 | + | |
| 348 | + if(edit->url) { | |
| 349 | + return edit->url; | |
| 350 | + } | |
| 351 | + | |
| 352 | + const gchar *host = gtk_entry_get_text(GTK_ENTRY(edit->entry.host)); | |
| 353 | + if(!*host) | |
| 354 | + return ""; | |
| 355 | + | |
| 356 | + const gchar *service = gtk_entry_get_text(GTK_ENTRY(edit->entry.service)); | |
| 357 | + if(!*service) | |
| 358 | + service = "3270"; | |
| 359 | + | |
| 360 | + edit->url = | |
| 361 | + g_strconcat( | |
| 362 | + (gtk_combo_box_get_active(GTK_COMBO_BOX(edit->entry.ssl)) > 0 ? "tn3270s://" : "tn3270://"), | |
| 363 | + host, | |
| 364 | + ":", | |
| 365 | + service, | |
| 366 | + NULL | |
| 367 | + ); | |
| 368 | + | |
| 369 | + return edit->url; | |
| 370 | + } | |
| 371 | + | |
| 372 | + gboolean v3270_url_edit_is_valid(GtkWidget *widget) { | |
| 373 | + g_return_val_if_fail(GTK_IS_V3270URLEdit(widget),FALSE); | |
| 374 | + | |
| 375 | + V3270URLEdit *edit = GTK_V3270URLEdit(widget); | |
| 376 | + | |
| 377 | + const gchar *host = gtk_entry_get_text(GTK_ENTRY(edit->entry.host)); | |
| 378 | + if(!*host) | |
| 379 | + return FALSE; | |
| 380 | + | |
| 381 | + return TRUE; | |
| 382 | + } | ... | ... |
| ... | ... | @@ -0,0 +1,59 @@ |
| 1 | +/* SPDX-License-Identifier: LGPL-3.0-or-later */ | |
| 2 | + | |
| 3 | +/* | |
| 4 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
| 5 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
| 6 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
| 7 | + * | |
| 8 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | |
| 9 | + * | |
| 10 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
| 11 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
| 12 | + * Free Software Foundation. | |
| 13 | + * | |
| 14 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
| 15 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
| 16 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
| 17 | + * obter mais detalhes. | |
| 18 | + * | |
| 19 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
| 20 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | |
| 21 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | |
| 22 | + * | |
| 23 | + * Este programa está nomeado como - e possui - linhas de código. | |
| 24 | + * | |
| 25 | + * Contatos: | |
| 26 | + * | |
| 27 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
| 28 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
| 29 | + * | |
| 30 | + */ | |
| 31 | + | |
| 32 | +#ifndef V3270_SETTINGS_URL_H_INCLUDED | |
| 33 | + | |
| 34 | + #define V3270_SETTINGS_URL_H_INCLUDED | |
| 35 | + | |
| 36 | + #include <gtk/gtk.h> | |
| 37 | + | |
| 38 | + /*--[ URL Settings Widget ]--------------------------------------------------------------------------*/ | |
| 39 | + | |
| 40 | + G_BEGIN_DECLS | |
| 41 | + | |
| 42 | + #define GTK_TYPE_V3270URLEdit (V3270URLEdit_get_type ()) | |
| 43 | + #define GTK_V3270URLEdit(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_V3270URLEdit, V3270URLEdit)) | |
| 44 | + #define GTK_V3270URLEdit_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_V3270URLEdit, V3270URLEditClass)) | |
| 45 | + #define GTK_IS_V3270URLEdit(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_V3270URLEdit)) | |
| 46 | + #define GTK_IS_V3270URLEdit_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_V3270URLEdit)) | |
| 47 | + #define GTK_V3270URLEdit_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_V3270URLEdit, V3270URLEditClass)) | |
| 48 | + | |
| 49 | + typedef struct _V3270URLEdit V3270URLEdit; | |
| 50 | + typedef struct _V3270URLEditClass V3270URLEditClass; | |
| 51 | + | |
| 52 | + GtkWidget * v3270_url_edit_new(); | |
| 53 | + void v3270_url_edit_set_url(GtkWidget *widget, const gchar *url); | |
| 54 | + const gchar * v3270_url_edit_get_url(GtkWidget *widget); | |
| 55 | + gboolean v3270_url_edit_is_valid(GtkWidget *widget); | |
| 56 | + | |
| 57 | + G_END_DECLS | |
| 58 | + | |
| 59 | +#endif // V3270_SETTINGS_URL_H_INCLUDED | ... | ... |
src/terminal/drawing/oia.c
| ... | ... | @@ -144,7 +144,7 @@ static void setup_cursor_position(GdkRectangle *rect, v3270FontInfo *metrics, ca |
| 144 | 144 | rect->width = metrics->width * 8; |
| 145 | 145 | rect->x -= rect->width; |
| 146 | 146 | |
| 147 | - if(lib3270_get_toggle(host,LIB3270_TOGGLE_CURSOR_POS)) | |
| 147 | + if(lib3270_get_toggle(host,LIB3270_TOGGLE_CURSOR_POS) && lib3270_is_connected(host)) | |
| 148 | 148 | { |
| 149 | 149 | int addr = lib3270_get_cursor_address(host); |
| 150 | 150 | draw_cursor_position(cr,rect,metrics,addr/cols,addr%cols); |
| ... | ... | @@ -871,7 +871,7 @@ void v3270_update_cursor(H3270 *session, unsigned short row, unsigned short col, |
| 871 | 871 | v3270_queue_draw_area(GTK_WIDGET(terminal),terminal->cursor.rect.x,0,1,terminal->oia.rect->y-3); |
| 872 | 872 | } |
| 873 | 873 | |
| 874 | - if(lib3270_get_toggle(session,LIB3270_TOGGLE_CURSOR_POS)) | |
| 874 | + if(lib3270_get_toggle(session,LIB3270_TOGGLE_CURSOR_POS) && lib3270_is_connected(session)) | |
| 875 | 875 | { |
| 876 | 876 | // Update OIA |
| 877 | 877 | GdkRectangle * rect; | ... | ... |
src/terminal/keyboard/accelerator.c
| ... | ... | @@ -160,24 +160,24 @@ |
| 160 | 160 | |
| 161 | 161 | switch(accel->type) { |
| 162 | 162 | case V3270_ACCELERATOR_TYPE_LIB3270_ACTION: |
| 163 | - debug("%s","V3270_ACCELERATOR_TYPE_LIB3270_ACTION"); | |
| 163 | +// debug("%s","V3270_ACCELERATOR_TYPE_LIB3270_ACTION"); | |
| 164 | 164 | description = lib3270_property_get_summary(property); |
| 165 | 165 | break; |
| 166 | 166 | |
| 167 | 167 | case V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE: |
| 168 | - debug("%s","V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE"); | |
| 168 | +// debug("%s","V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE"); | |
| 169 | 169 | description = lib3270_property_get_summary(property); |
| 170 | 170 | break; |
| 171 | 171 | |
| 172 | 172 | case V3270_ACCELERATOR_TYPE_INTERNAL: |
| 173 | - debug("%s","V3270_ACCELERATOR_TYPE_INTERNAL"); | |
| 173 | +// debug("%s","V3270_ACCELERATOR_TYPE_INTERNAL"); | |
| 174 | 174 | if(property->summary) |
| 175 | 175 | description = g_dgettext(GETTEXT_PACKAGE,property->summary); |
| 176 | 176 | break; |
| 177 | 177 | |
| 178 | 178 | } |
| 179 | 179 | |
| 180 | - debug("%s=%s",__FUNCTION__,description); | |
| 180 | +// debug("%s=%s",__FUNCTION__,description); | |
| 181 | 181 | |
| 182 | 182 | if(description && *description) |
| 183 | 183 | return description; | ... | ... |
src/terminal/keyboard/keyfile.c
src/terminal/widget.c
| ... | ... | @@ -868,20 +868,30 @@ LIB3270_EXPORT GtkIMContext * v3270_get_im_context(GtkWidget *widget) |
| 868 | 868 | static gboolean bg_emit_save_settings(v3270 *terminal) |
| 869 | 869 | { |
| 870 | 870 | GdkWindow * window = gtk_widget_get_window(GTK_WIDGET(terminal)); |
| 871 | - gdk_window_set_cursor( | |
| 872 | - window, | |
| 873 | - GTK_V3270_GET_CLASS(terminal)->cursors[LIB3270_POINTER_WAITING] | |
| 874 | - ); | |
| 875 | 871 | |
| 876 | - gdk_display_sync(gtk_widget_get_display(GTK_WIDGET(terminal))); | |
| 872 | + if(window) { | |
| 877 | 873 | |
| 878 | - terminal->freeze = 0; | |
| 879 | - g_signal_emit(terminal,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); | |
| 874 | + gdk_window_set_cursor( | |
| 875 | + window, | |
| 876 | + GTK_V3270_GET_CLASS(terminal)->cursors[LIB3270_POINTER_WAITING] | |
| 877 | + ); | |
| 880 | 878 | |
| 881 | - gdk_window_set_cursor( | |
| 882 | - window, | |
| 883 | - NULL | |
| 884 | - ); | |
| 879 | + gdk_display_sync(gtk_widget_get_display(GTK_WIDGET(terminal))); | |
| 880 | + | |
| 881 | + terminal->freeze = 0; | |
| 882 | + g_signal_emit(terminal,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); | |
| 883 | + | |
| 884 | + gdk_window_set_cursor( | |
| 885 | + window, | |
| 886 | + NULL | |
| 887 | + ); | |
| 888 | + | |
| 889 | + } else { | |
| 890 | + | |
| 891 | + terminal->freeze = 0; | |
| 892 | + g_signal_emit(terminal,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); | |
| 893 | + | |
| 894 | + } | |
| 885 | 895 | |
| 886 | 896 | g_object_unref(terminal); |
| 887 | 897 | ... | ... |
v3270.cbp
| ... | ... | @@ -121,6 +121,9 @@ |
| 121 | 121 | <Unit filename="src/dialogs/settings/tools.c"> |
| 122 | 122 | <Option compilerVar="CC" /> |
| 123 | 123 | </Unit> |
| 124 | + <Unit filename="src/dialogs/settings/url.c"> | |
| 125 | + <Option compilerVar="CC" /> | |
| 126 | + </Unit> | |
| 124 | 127 | <Unit filename="src/dialogs/settings/widget.c"> |
| 125 | 128 | <Option compilerVar="CC" /> |
| 126 | 129 | </Unit> |
| ... | ... | @@ -197,6 +200,7 @@ |
| 197 | 200 | <Unit filename="src/include/v3270/security.h" /> |
| 198 | 201 | <Unit filename="src/include/v3270/selection.h" /> |
| 199 | 202 | <Unit filename="src/include/v3270/settings.h" /> |
| 203 | + <Unit filename="src/include/v3270/settings/url.h" /> | |
| 200 | 204 | <Unit filename="src/include/v3270/toggle.h" /> |
| 201 | 205 | <Unit filename="src/include/v3270/tools.h" /> |
| 202 | 206 | <Unit filename="src/include/v3270/trace.h" /> | ... | ... |