Commit e4fad4b72ca91f319b0c770b595e3ac9c41559ba
1 parent
c718872a
Exists in
master
and in
1 other branch
Fixing use of selection options.
Showing
3 changed files
with
16 additions
and
18 deletions
Show diff stats
src/dialogs/save/save.c
| ... | ... | @@ -386,7 +386,7 @@ static void icon_press(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconPosition icon_ |
| 386 | 386 | break; |
| 387 | 387 | |
| 388 | 388 | case 2: // "HyperText Markup Language (HTML)" |
| 389 | - text = v3270_get_selection_as_html_div(GTK_V3270(dialog->terminal),selection,encoding, dialog->mode == LIB3270_CONTENT_ALL); | |
| 389 | + text = v3270_get_selection_as_html_div(GTK_V3270(dialog->terminal),selection,encoding, dialog->mode == LIB3270_CONTENT_ALL, V3270_SELECTION_DEFAULT); | |
| 390 | 390 | break; |
| 391 | 391 | |
| 392 | 392 | default: | ... | ... |
src/include/clipboard.h
| ... | ... | @@ -92,8 +92,8 @@ |
| 92 | 92 | /// @brief Get contents. |
| 93 | 93 | G_GNUC_INTERNAL gchar * v3270_get_selection_as_text(v3270 * terminal, const GList *selection, const gchar *encoding, gboolean all); |
| 94 | 94 | G_GNUC_INTERNAL gchar * v3270_get_selection_as_table(v3270 * terminal, const GList *selection, const gchar *delimiter, const gchar *encoding, gboolean all); |
| 95 | - G_GNUC_INTERNAL gchar * v3270_get_selection_as_html_div(v3270 * terminal, const GList *selection, const gchar *encoding, gboolean all); | |
| 96 | - G_GNUC_INTERNAL gchar * v3270_get_selection_as_html_table(v3270 * terminal, const GList *selection, const gchar *encoding, gboolean all); | |
| 95 | + G_GNUC_INTERNAL gchar * v3270_get_selection_as_html_div(v3270 * terminal, const GList *selection, const gchar *encoding, gboolean all, const V3270SelectionOption options); | |
| 96 | + G_GNUC_INTERNAL gchar * v3270_get_selection_as_html_table(v3270 * terminal, const GList *selection, const gchar *encoding, gboolean all, const V3270SelectionOption options); | |
| 97 | 97 | |
| 98 | 98 | G_GNUC_INTERNAL const GList * v3270_get_selection_blocks(GtkWidget *widget); |
| 99 | 99 | ... | ... |
src/selection/html.c
| ... | ... | @@ -49,7 +49,7 @@ static void get_element_colors(v3270 * terminal, unsigned short attr, gchar **fg |
| 49 | 49 | } |
| 50 | 50 | |
| 51 | 51 | /// @brief Get formatted contents as HTML DIV. |
| 52 | -static gchar * get_as_div(v3270 * terminal, const GList *selection, gboolean all) | |
| 52 | +static gchar * get_as_div(v3270 * terminal, const GList *selection, gboolean all, const V3270SelectionOption options) | |
| 53 | 53 | { |
| 54 | 54 | const GList * element = selection; |
| 55 | 55 | GString * string = g_string_new(""); |
| ... | ... | @@ -58,12 +58,12 @@ static gchar * get_as_div(v3270 * terminal, const GList *selection, gboolean all |
| 58 | 58 | |
| 59 | 59 | g_string_append(string,"<div style=\"padding:1em;display:inline-block"); |
| 60 | 60 | |
| 61 | - if(terminal->selection.options & V3270_SELECTION_FONT_FAMILY) | |
| 61 | + if(options & V3270_SELECTION_FONT_FAMILY) | |
| 62 | 62 | { |
| 63 | 63 | g_string_append_printf(string,";font-family:%s,monospace",terminal->font.family); |
| 64 | 64 | } |
| 65 | 65 | |
| 66 | - if(terminal->selection.options & V3270_SELECTION_COLORS) | |
| 66 | + if(options & V3270_SELECTION_COLORS) | |
| 67 | 67 | { |
| 68 | 68 | bgColor = gdk_rgba_to_string(terminal->color+V3270_COLOR_BACKGROUND); |
| 69 | 69 | g_string_append_printf(string,";background-color:%s",bgColor); |
| ... | ... | @@ -78,7 +78,7 @@ static gchar * get_as_div(v3270 * terminal, const GList *selection, gboolean all |
| 78 | 78 | unsigned int row, col, src = 0; |
| 79 | 79 | unsigned short flags = block->contents[0].attribute.visual; |
| 80 | 80 | |
| 81 | - if(terminal->selection.options & V3270_SELECTION_COLORS) | |
| 81 | + if(options & V3270_SELECTION_COLORS) | |
| 82 | 82 | { |
| 83 | 83 | get_element_colors(terminal,flags,&fgColor,&bgColor); |
| 84 | 84 | |
| ... | ... | @@ -105,7 +105,7 @@ static gchar * get_as_div(v3270 * terminal, const GList *selection, gboolean all |
| 105 | 105 | { |
| 106 | 106 | flags = block->contents[src].attribute.visual; |
| 107 | 107 | |
| 108 | - if(terminal->selection.options & V3270_SELECTION_COLORS) | |
| 108 | + if(options & V3270_SELECTION_COLORS) | |
| 109 | 109 | { |
| 110 | 110 | get_element_colors(terminal,flags,&fgColor,&bgColor); |
| 111 | 111 | |
| ... | ... | @@ -140,7 +140,7 @@ static gchar * get_as_div(v3270 * terminal, const GList *selection, gboolean all |
| 140 | 140 | #endif // DEBUG |
| 141 | 141 | } |
| 142 | 142 | |
| 143 | - if(terminal->selection.options & V3270_SELECTION_COLORS) | |
| 143 | + if(options & V3270_SELECTION_COLORS) | |
| 144 | 144 | { |
| 145 | 145 | g_string_append(string,"</span>"); |
| 146 | 146 | } |
| ... | ... | @@ -154,14 +154,12 @@ static gchar * get_as_div(v3270 * terminal, const GList *selection, gboolean all |
| 154 | 154 | |
| 155 | 155 | g_string_append(string,"</div>"); |
| 156 | 156 | |
| 157 | - debug("\n%s\n------------> %u",string->str,(unsigned int) terminal->selection.options); | |
| 158 | - | |
| 159 | 157 | return g_string_free(string,FALSE); |
| 160 | 158 | |
| 161 | 159 | } |
| 162 | 160 | |
| 163 | 161 | /// @brief Get formatted contents as HTML TABLE. |
| 164 | -static gchar * get_as_table(v3270 * terminal, const GList *selection, gboolean all) | |
| 162 | +static gchar * get_as_table(v3270 * terminal, const GList *selection, gboolean all, const V3270SelectionOption G_GNUC_UNUSED(options)) // TODO: Use options to set colors & font. | |
| 165 | 163 | { |
| 166 | 164 | const GList * element = selection; |
| 167 | 165 | GString * string = g_string_new("<table><tbody>"); |
| ... | ... | @@ -231,15 +229,15 @@ static gchar * get_as_table(v3270 * terminal, const GList *selection, gboolean a |
| 231 | 229 | |
| 232 | 230 | } |
| 233 | 231 | |
| 234 | -gchar * v3270_get_selection_as_html_div(v3270 * terminal, const GList *selection, const gchar *encoding, gboolean all) | |
| 232 | +gchar * v3270_get_selection_as_html_div(v3270 * terminal, const GList *selection, const gchar *encoding, gboolean all, const V3270SelectionOption options) | |
| 235 | 233 | { |
| 236 | - g_autofree char * text = get_as_div(terminal, selection, all); | |
| 234 | + g_autofree char * text = get_as_div(terminal, selection, all, options); | |
| 237 | 235 | return g_convert(text, -1, (encoding ? encoding : "UTF-8"), lib3270_get_display_charset(terminal->host), NULL, NULL, NULL); |
| 238 | 236 | } |
| 239 | 237 | |
| 240 | -gchar * v3270_get_selection_as_html_table(v3270 * terminal, const GList *selection, const gchar *encoding, gboolean all) | |
| 238 | +gchar * v3270_get_selection_as_html_table(v3270 * terminal, const GList *selection, const gchar *encoding, gboolean all, const V3270SelectionOption options) | |
| 241 | 239 | { |
| 242 | - g_autofree char * text = get_as_table(terminal, selection, all); | |
| 240 | + g_autofree char * text = get_as_table(terminal, selection, all, options); | |
| 243 | 241 | return g_convert(text, -1, (encoding ? encoding : "UTF-8"), lib3270_get_display_charset(terminal->host), NULL, NULL, NULL); |
| 244 | 242 | } |
| 245 | 243 | |
| ... | ... | @@ -247,8 +245,8 @@ gchar * v3270_get_copy_as_html(v3270 * terminal, const gchar *encoding) |
| 247 | 245 | { |
| 248 | 246 | |
| 249 | 247 | if(terminal->selection.format == V3270_COPY_TABLE) |
| 250 | - return v3270_get_selection_as_html_table(terminal, terminal->selection.blocks, encoding, FALSE); | |
| 248 | + return v3270_get_selection_as_html_table(terminal, terminal->selection.blocks, encoding, FALSE, terminal->selection.options); | |
| 251 | 249 | |
| 252 | - return v3270_get_selection_as_html_div(terminal, terminal->selection.blocks, encoding, FALSE); | |
| 250 | + return v3270_get_selection_as_html_div(terminal, terminal->selection.blocks, encoding, FALSE, terminal->selection.options); | |
| 253 | 251 | |
| 254 | 252 | } | ... | ... |