1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-28 22:06:38 +02:00

relay: send event "buffer_line_data_changed" to API clients

This commit is contained in:
Sébastien Helleu
2024-06-27 21:37:47 +02:00
parent e9d46b41a1
commit d5975c96e9
4 changed files with 78 additions and 55 deletions
+1 -1
View File
@@ -23,7 +23,7 @@
- relay: add infos "relay_api_version" and "relay_api_version_number"
- core: add hdata count in evaluation of expressions with `hdata_count:name[list]` or `hdata_count:name[pointer]`
- core: add completion "bars_items"
- api: send new signal "buffer_line_data_changed" when a line is updated in a buffer via hdata
- api, relay: send new signal "buffer_line_data_changed" when a line is updated in a buffer via hdata, send event "buffer_line_data_changed" to API clients
- api: add hashtable type "longlong"
- api: add function line_search_by_id
- doc: add doc on "api" relay
+28 -27
View File
@@ -1466,33 +1466,34 @@ The following events are sent to the client, according to synchronization option
[width="100%",cols="5,3,3,5",options="header"]
|===
| Event | Buffer id | Body type | Body
| `buffer_opened` | buffer id | `buffer` | buffer with all lines and nicks
| `buffer_type_changed` | buffer id | `buffer` | buffer
| `buffer_moved` | buffer id | `buffer` | buffer
| `buffer_merged` | buffer id | `buffer` | buffer
| `buffer_unmerged` | buffer id | `buffer` | buffer
| `buffer_hidden` | buffer id | `buffer` | buffer
| `buffer_unhidden` | buffer id | `buffer` | buffer
| `buffer_renamed` | buffer id | `buffer` | buffer
| `buffer_title_changed` | buffer id | `buffer` | buffer
| `buffer_localvar_added` | buffer id | `buffer` | buffer
| `buffer_localvar_changed` | buffer id | `buffer` | buffer
| `buffer_localvar_removed` | buffer id | `buffer` | buffer
| `buffer_cleared` | buffer id | `buffer` | buffer
| `buffer_closing` | buffer id | `buffer` | buffer
| `buffer_closed` | buffer id | (not defined) | (not defined)
| `buffer_line_added` | buffer id | `line` | buffer line
| `input_text_changed` | buffer id | `buffer` | buffer
| `input_text_cursor_moved` | buffer id | `buffer` | buffer
| `upgrade` ^(1)^ | -1 | (not defined) | (not defined)
| `upgrade_ended` ^(1)^ | -1 | (not defined) | (not defined)
| `nicklist_group_changed` | buffer id | `nick_group` | nick group
| `nicklist_group_added` | buffer id | `nick_group` | nick group
| `nicklist_group_removing` | buffer id | `nick_group` | nick group
| `nicklist_nick_added` | buffer id | `nick` | nick
| `nicklist_nick_removing` | buffer id | `nick` | nick
| `nicklist_nick_changed` | buffer id | `nick` | nick
| Event | Buffer id | Body type | Body
| `buffer_opened` | buffer id | `buffer` | buffer with all lines and nicks
| `buffer_type_changed` | buffer id | `buffer` | buffer
| `buffer_moved` | buffer id | `buffer` | buffer
| `buffer_merged` | buffer id | `buffer` | buffer
| `buffer_unmerged` | buffer id | `buffer` | buffer
| `buffer_hidden` | buffer id | `buffer` | buffer
| `buffer_unhidden` | buffer id | `buffer` | buffer
| `buffer_renamed` | buffer id | `buffer` | buffer
| `buffer_title_changed` | buffer id | `buffer` | buffer
| `buffer_localvar_added` | buffer id | `buffer` | buffer
| `buffer_localvar_changed` | buffer id | `buffer` | buffer
| `buffer_localvar_removed` | buffer id | `buffer` | buffer
| `buffer_cleared` | buffer id | `buffer` | buffer
| `buffer_closing` | buffer id | `buffer` | buffer
| `buffer_closed` | buffer id | (not defined) | (not defined)
| `buffer_line_added` | buffer id | `line` | buffer line
| `buffer_line_data_changed` | buffer id | `line` | buffer line
| `input_text_changed` | buffer id | `buffer` | buffer
| `input_text_cursor_moved` | buffer id | `buffer` | buffer
| `upgrade` ^(1)^ | -1 | (not defined) | (not defined)
| `upgrade_ended` ^(1)^ | -1 | (not defined) | (not defined)
| `nicklist_group_changed` | buffer id | `nick_group` | nick group
| `nicklist_group_added` | buffer id | `nick_group` | nick group
| `nicklist_group_removing` | buffer id | `nick_group` | nick group
| `nicklist_nick_added` | buffer id | `nick` | nick
| `nicklist_nick_removing` | buffer id | `nick` | nick
| `nicklist_nick_changed` | buffer id | `nick` | nick
|===
[NOTE]
+28 -27
View File
@@ -1492,33 +1492,34 @@ Les évènements suivants sont envoyés au client, selon les options de synchron
[width="100%",cols="5,3,3,5",options="header"]
|===
| Évènement | Id tampon | Type de corps | Corps
| `buffer_opened` | id tampon | `buffer` | tampon avec les lignes et pseudos
| `buffer_type_changed` | id tampon | `buffer` | tampon
| `buffer_moved` | id tampon | `buffer` | tampon
| `buffer_merged` | id tampon | `buffer` | tampon
| `buffer_unmerged` | id tampon | `buffer` | tampon
| `buffer_hidden` | id tampon | `buffer` | tampon
| `buffer_unhidden` | id tampon | `buffer` | tampon
| `buffer_renamed` | id tampon | `buffer` | tampon
| `buffer_title_changed` | id tampon | `buffer` | tampon
| `buffer_localvar_added` | id tampon | `buffer` | tampon
| `buffer_localvar_changed` | id tampon | `buffer` | tampon
| `buffer_localvar_removed` | id tampon | `buffer` | tampon
| `buffer_cleared` | id tampon | `buffer` | tampon
| `buffer_closing` | id tampon | `buffer` | tampon
| `buffer_closed` | id tampon | (non défini) | (non défini)
| `buffer_line_added` | id tampon | `line` | ligne de tampon
| `input_text_changed` | id tampon | `buffer` | tampon
| `input_text_cursor_moved` | id tampon | `buffer` | tampon
| `upgrade` ^(1)^ | -1 | (non défini) | (non défini)
| `upgrade_ended` ^(1)^ | -1 | (non défini) | (non défini)
| `nicklist_group_changed` | id tampon | `nick_group` | groupe de pseudos
| `nicklist_group_added` | id tampon | `nick_group` | groupe de pseudos
| `nicklist_group_removing` | id tampon | `nick_group` | groupe de pseudos
| `nicklist_nick_added` | id tampon | `nick` | pseudo
| `nicklist_nick_removing` | id tampon | `nick` | pseudo
| `nicklist_nick_changed` | id tampon | `nick` | pseudo
| Évènement | Id tampon | Type de corps | Corps
| `buffer_opened` | id tampon | `buffer` | tampon avec les lignes et pseudos
| `buffer_type_changed` | id tampon | `buffer` | tampon
| `buffer_moved` | id tampon | `buffer` | tampon
| `buffer_merged` | id tampon | `buffer` | tampon
| `buffer_unmerged` | id tampon | `buffer` | tampon
| `buffer_hidden` | id tampon | `buffer` | tampon
| `buffer_unhidden` | id tampon | `buffer` | tampon
| `buffer_renamed` | id tampon | `buffer` | tampon
| `buffer_title_changed` | id tampon | `buffer` | tampon
| `buffer_localvar_added` | id tampon | `buffer` | tampon
| `buffer_localvar_changed` | id tampon | `buffer` | tampon
| `buffer_localvar_removed` | id tampon | `buffer` | tampon
| `buffer_cleared` | id tampon | `buffer` | tampon
| `buffer_closing` | id tampon | `buffer` | tampon
| `buffer_closed` | id tampon | (non défini) | (non défini)
| `buffer_line_added` | id tampon | `line` | ligne de tampon
| `buffer_line_data_changed` | id tampon | `line` | ligne de tampon
| `input_text_changed` | id tampon | `buffer` | tampon
| `input_text_cursor_moved` | id tampon | `buffer` | tampon
| `upgrade` ^(1)^ | -1 | (non défini) | (non défini)
| `upgrade_ended` ^(1)^ | -1 | (non défini) | (non défini)
| `nicklist_group_changed` | id tampon | `nick_group` | groupe de pseudos
| `nicklist_group_added` | id tampon | `nick_group` | groupe de pseudos
| `nicklist_group_removing` | id tampon | `nick_group` | groupe de pseudos
| `nicklist_nick_added` | id tampon | `nick` | pseudo
| `nicklist_nick_removing` | id tampon | `nick` | pseudo
| `nicklist_nick_changed` | id tampon | `nick` | pseudo
|===
[NOTE]
@@ -193,6 +193,27 @@ relay_api_protocol_signal_buffer_cb (const void *pointer, void *data,
cJSON_Delete (json);
}
}
else if (strcmp (signal, "buffer_line_data_changed") == 0)
{
ptr_line_data = (struct t_gui_line_data *)signal_data;
if (!ptr_line_data)
return WEECHAT_RC_OK;
ptr_buffer = weechat_hdata_pointer (relay_hdata_line_data,
ptr_line_data, "buffer");
if (!ptr_buffer || relay_buffer_is_relay (ptr_buffer))
return WEECHAT_RC_OK;
json = relay_api_msg_line_data_to_json (
ptr_line_data, RELAY_API_DATA(ptr_client, sync_colors));
if (json)
{
buffer_id = relay_api_get_buffer_id (ptr_buffer);
relay_api_msg_send_event (ptr_client, signal, buffer_id,
"line", json);
cJSON_Delete (json);
}
}
return WEECHAT_RC_OK;
}