Commit fb2e29f45fdd0593dbbe5978a639b41a71f10954
1 parent
4af8362c
Exists in
master
and in
1 other branch
Implement clipboard settings dialog.
Showing
4 changed files
with
77 additions
and
15 deletions
Show diff stats
locale/pt_BR.po
... | ... | @@ -5,8 +5,8 @@ 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-01-23 09:01-0300\n" | |
9 | -"PO-Revision-Date: 2020-01-23 09:05-0300\n" | |
8 | +"POT-Creation-Date: 2020-01-23 09:02-0300\n" | |
9 | +"PO-Revision-Date: 2020-01-23 09:52-0300\n" | |
10 | 10 | "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" |
11 | 11 | "Language-Team: Português <>\n" |
12 | 12 | "Language: pt_BR\n" |
... | ... | @@ -257,7 +257,7 @@ msgstr "Clique para carregar arquivo" |
257 | 257 | msgid "Click to save file" |
258 | 258 | msgstr "Clique para salvar arquivo" |
259 | 259 | |
260 | -#: src/dialogs/settings/clipboard.c:349 | |
260 | +#: src/dialogs/settings/clipboard.c:365 | |
261 | 261 | msgid "Clipboard" |
262 | 262 | msgstr "Área de transferência" |
263 | 263 | |
... | ... | @@ -265,7 +265,7 @@ msgstr "Área de transferência" |
265 | 265 | msgid "Clipboard name" |
266 | 266 | msgstr "Nome da área de transferência" |
267 | 267 | |
268 | -#: src/dialogs/settings/clipboard.c:348 | |
268 | +#: src/dialogs/settings/clipboard.c:364 | |
269 | 269 | msgid "Clipboard properties" |
270 | 270 | msgstr "Configuração da área de transferência" |
271 | 271 | |
... | ... | @@ -297,7 +297,7 @@ msgstr "Arquivo separado por vírgulas (CSV)" |
297 | 297 | msgid "Command to execute" |
298 | 298 | msgstr "Comando a executar" |
299 | 299 | |
300 | -#: src/dialogs/settings/clipboard.c:315 | |
300 | +#: src/dialogs/settings/clipboard.c:331 | |
301 | 301 | msgid "Complete with terminal attributes" |
302 | 302 | msgstr "Completo incluindo atributos do terminal" |
303 | 303 | |
... | ... | @@ -321,7 +321,7 @@ msgstr "Copiar como texto puro" |
321 | 321 | msgid "Copy as table" |
322 | 322 | msgstr "Copiar como tabela" |
323 | 323 | |
324 | -#: src/dialogs/settings/clipboard.c:184 | |
324 | +#: src/dialogs/settings/clipboard.c:199 | |
325 | 325 | msgid "Copy options" |
326 | 326 | msgstr "Opções da cópia" |
327 | 327 | |
... | ... | @@ -527,7 +527,7 @@ msgstr "Cinza" |
527 | 527 | msgid "Green" |
528 | 528 | msgstr "Verde" |
529 | 529 | |
530 | -#: src/dialogs/settings/clipboard.c:186 | |
530 | +#: src/dialogs/settings/clipboard.c:201 | |
531 | 531 | msgid "HTML options" |
532 | 532 | msgstr "Opções HTML" |
533 | 533 | |
... | ... | @@ -693,11 +693,11 @@ msgstr "Nenhuma transferência" |
693 | 693 | msgid "No transfer in progress" |
694 | 694 | msgstr "Nenhuma transferência em andamento" |
695 | 695 | |
696 | -#: src/dialogs/settings/clipboard.c:248 | |
696 | +#: src/dialogs/settings/clipboard.c:264 | |
697 | 697 | msgid "None (Don't export color)" |
698 | 698 | msgstr "Nenhum (Não exporta cores)" |
699 | 699 | |
700 | -#: src/dialogs/settings/clipboard.c:366 | |
700 | +#: src/dialogs/settings/clipboard.c:382 | |
701 | 701 | msgid "None (Don't export font name)" |
702 | 702 | msgstr "Nenhuma (Não exporta fontes)" |
703 | 703 | |
... | ... | @@ -801,7 +801,7 @@ msgstr "Colar de um arquivo" |
801 | 801 | msgid "Paste from text file" |
802 | 802 | msgstr "Colar de um arquivo texto" |
803 | 803 | |
804 | -#: src/dialogs/settings/clipboard.c:185 | |
804 | +#: src/dialogs/settings/clipboard.c:200 | |
805 | 805 | msgid "Paste options" |
806 | 806 | msgstr "Opções para colar" |
807 | 807 | |
... | ... | @@ -825,7 +825,7 @@ msgstr "Rosa" |
825 | 825 | msgid "Plain text" |
826 | 826 | msgstr "Texto puro" |
827 | 827 | |
828 | -#: src/dialogs/settings/clipboard.c:314 | |
828 | +#: src/dialogs/settings/clipboard.c:330 | |
829 | 829 | msgid "Plain text only" |
830 | 830 | msgstr "Apenas texto puro" |
831 | 831 | |
... | ... | @@ -982,7 +982,7 @@ msgstr "" |
982 | 982 | "SPACE can be specified in units of TRACKS, CYLINDERS, or AVBLOCK, and only " |
983 | 983 | "one option can be used." |
984 | 984 | |
985 | -#: src/dialogs/settings/clipboard.c:249 src/dialogs/settings/clipboard.c:367 | |
985 | +#: src/dialogs/settings/clipboard.c:265 src/dialogs/settings/clipboard.c:383 | |
986 | 986 | msgid "Same of the screen" |
987 | 987 | msgstr "Igual ao terminal" |
988 | 988 | |
... | ... | @@ -1482,6 +1482,11 @@ msgstr "Documento sem título" |
1482 | 1482 | msgid "Use host default record format." |
1483 | 1483 | msgstr "Utilizar o formato de registro padrão do servidor." |
1484 | 1484 | |
1485 | +# Tradução copiada do libre-office | |
1486 | +#: src/dialogs/settings/clipboard.c:135 | |
1487 | +msgid "Use non-breaking Spaces" | |
1488 | +msgstr "Usar espaço inseparável" | |
1489 | + | |
1485 | 1490 | #: src/filetransfer/tables.c:86 |
1486 | 1491 | msgid "Variable" |
1487 | 1492 | msgstr "Variável" |
... | ... | @@ -1490,6 +1495,14 @@ msgstr "Variável" |
1490 | 1495 | msgid "Western Europe (ISO 8859-1)" |
1491 | 1496 | msgstr "Europa ocidental (ISO 8859-1)" |
1492 | 1497 | |
1498 | +#: src/dialogs/settings/clipboard.c:136 | |
1499 | +msgid "" | |
1500 | +"When set the terminal spaces are exported as non-breaking spaces to prevent " | |
1501 | +"line breaks" | |
1502 | +msgstr "" | |
1503 | +"Quando selecionada os espaços do terminal são exportados como inseparáveis " | |
1504 | +"para prevenir quebras de linha" | |
1505 | + | |
1493 | 1506 | #: src/dialogs/settings/colors.c:162 |
1494 | 1507 | msgid "White" |
1495 | 1508 | msgstr "Branco" | ... | ... |
src/dialogs/settings/clipboard.c
... | ... | @@ -129,6 +129,20 @@ |
129 | 129 | |
130 | 130 | }; |
131 | 131 | |
132 | + static const struct CheckBoxDefinition checkboxes[] = { | |
133 | + | |
134 | + { | |
135 | + .label = N_("Use non-breaking Spaces"), | |
136 | + .tooltip = N_("When set the terminal spaces are exported as non-breaking spaces to prevent line breaks"), | |
137 | + .left = 1, | |
138 | + .top = 2, | |
139 | + .width = 1, | |
140 | + .height = 1, | |
141 | + .grid = 2 | |
142 | + } | |
143 | + | |
144 | + }; | |
145 | + | |
132 | 146 | /*--[ Globals ]--------------------------------------------------------------------------------------*/ |
133 | 147 | |
134 | 148 | typedef struct _V3270ClipboardSettings { |
... | ... | @@ -136,8 +150,9 @@ |
136 | 150 | V3270Settings parent; |
137 | 151 | |
138 | 152 | struct { |
139 | - GtkToggleButton * toggles[G_N_ELEMENTS(toggles)]; ///< @brief Toggle checks. | |
140 | - GtkComboBox * combos[G_N_ELEMENTS(combos)]; ///< @brief Combo-boxes. | |
153 | + GtkToggleButton * toggles[G_N_ELEMENTS(toggles)]; ///< @brief Toggle checks. | |
154 | + GtkComboBox * combos[G_N_ELEMENTS(combos)]; ///< @brief Combo-boxes. | |
155 | + GtkToggleButton * checkboxes[G_N_ELEMENTS(checkboxes)]; ///< @brief Checkboxes. | |
141 | 156 | } input; |
142 | 157 | |
143 | 158 | |
... | ... | @@ -231,6 +246,7 @@ static void V3270ClipboardSettings_init(V3270ClipboardSettings *widget) { |
231 | 246 | |
232 | 247 | v3270_settings_create_toggle_buttons(toggles, G_N_ELEMENTS(toggles), grids, widget->input.toggles); |
233 | 248 | v3270_settings_create_combos(combos, G_N_ELEMENTS(combos), grids, widget->input.combos); |
249 | + v3270_settings_create_checkboxes(checkboxes, G_N_ELEMENTS(checkboxes), grids, widget->input.checkboxes); | |
234 | 250 | |
235 | 251 | // Setup combos |
236 | 252 | { |
... | ... | @@ -409,6 +425,8 @@ static void load(GtkWidget *w, GtkWidget *t) { |
409 | 425 | debug("Plain text: %s",((terminal->selection.options & V3270_SELECTION_PLAIN_TEXT) ? "0" : "1")); |
410 | 426 | gtk_combo_box_set_active_id(widget->input.combos[2],(terminal->selection.options & (V3270_SELECTION_ENABLE_HTML|V3270_SELECTION_DIALOG_STATE)) == 0 ? "0" : "1"); |
411 | 427 | |
428 | + gtk_toggle_button_set_active(widget->input.checkboxes[0],(terminal->selection.options & V3270_SELECTION_NON_BREAKABLE_SPACE) != 0); | |
429 | + | |
412 | 430 | // |
413 | 431 | // Set font combo-box |
414 | 432 | // |
... | ... | @@ -474,7 +492,12 @@ static void apply(GtkWidget *w, GtkWidget *t) { |
474 | 492 | } else { |
475 | 493 | |
476 | 494 | terminal->selection.options |= V3270_SELECTION_DIALOG_STATE; |
477 | - terminal->selection.options |= V3270_SELECTION_NON_BREAKABLE_SPACE; // TODO: Use a checkbox to enable-it | |
495 | + | |
496 | + if(gtk_toggle_button_get_active(widget->input.checkboxes[0])) { | |
497 | + terminal->selection.options |= V3270_SELECTION_NON_BREAKABLE_SPACE; | |
498 | + } else { | |
499 | + terminal->selection.options &= ~V3270_SELECTION_NON_BREAKABLE_SPACE; | |
500 | + } | |
478 | 501 | |
479 | 502 | // Get font settings |
480 | 503 | switch(get_active_id(widget,0)) { | ... | ... |
src/dialogs/settings/private.h
... | ... | @@ -74,4 +74,13 @@ |
74 | 74 | |
75 | 75 | G_GNUC_INTERNAL void v3270_settings_create_combos(const struct ComboBoxDefinition * definitions, size_t length, GtkWidget **grids, GtkComboBox **combos); |
76 | 76 | |
77 | + /// @brief Checkbox factory | |
78 | + struct CheckBoxDefinition { | |
79 | + ENTRY_FIELD_HEAD | |
80 | + | |
81 | + unsigned short grid; | |
82 | + }; | |
83 | + | |
84 | + G_GNUC_INTERNAL void v3270_settings_create_checkboxes(const struct CheckBoxDefinition * definitions, size_t length, GtkWidget **grids, GtkToggleButton **buttons); | |
85 | + | |
77 | 86 | #endif // PRIVATE_H_INCLUDED | ... | ... |
src/dialogs/settings/tools.c
... | ... | @@ -131,4 +131,21 @@ |
131 | 131 | |
132 | 132 | } |
133 | 133 | |
134 | + void v3270_settings_create_checkboxes(const struct CheckBoxDefinition * definitions, size_t length, GtkWidget **grids, GtkToggleButton **buttons) { | |
135 | + | |
136 | + size_t checkbox; | |
137 | + | |
138 | + for(checkbox = 0; checkbox < length; checkbox++) { | |
139 | + | |
140 | + buttons[checkbox] = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_label(definitions[checkbox].label)); | |
141 | + | |
142 | + if(definitions[checkbox].tooltip) | |
143 | + gtk_widget_set_tooltip_text(GTK_WIDGET(buttons[checkbox]),definitions[checkbox].tooltip); | |
144 | + | |
145 | + gtk_widget_set_halign(GTK_WIDGET(buttons[checkbox]),GTK_ALIGN_START); | |
146 | + gtk_grid_attach(GTK_GRID(grids[definitions[checkbox].grid]),GTK_WIDGET(buttons[checkbox]),definitions[checkbox].left,definitions[checkbox].top,definitions[checkbox].width,1); | |
147 | + | |
148 | + } | |
149 | + | |
150 | + } | |
134 | 151 | ... | ... |