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" /> | ... | ... |