commit
3bb462ee57
4 changed files with 53 additions and 2 deletions
|
@ -1567,6 +1567,35 @@ static PurpleXferUiOps xferUiOps =
|
|||
NULL
|
||||
};
|
||||
|
||||
static void RoomlistProgress(PurpleRoomlist *list, gboolean in_progress)
|
||||
{
|
||||
if (!in_progress)
|
||||
{
|
||||
GList *rooms;
|
||||
std::list<std::string> m_rooms;
|
||||
for (rooms = list->rooms; rooms != NULL; rooms = rooms->next)
|
||||
{
|
||||
PurpleRoomlistRoom *room = (PurpleRoomlistRoom *)rooms->data;
|
||||
m_rooms.push_back(room->name);
|
||||
}
|
||||
np->handleRoomList("", m_rooms, m_rooms);
|
||||
}
|
||||
}
|
||||
|
||||
static PurpleRoomlistUiOps roomlist_ui_ops =
|
||||
{
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
RoomlistProgress,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
static void transport_core_ui_init(void)
|
||||
{
|
||||
purple_blist_set_ui_ops_wrapped(&blistUiOps);
|
||||
|
@ -1576,6 +1605,8 @@ static void transport_core_ui_init(void)
|
|||
purple_xfers_set_ui_ops_wrapped(&xferUiOps);
|
||||
purple_connections_set_ui_ops_wrapped(&conn_ui_ops);
|
||||
purple_conversations_set_ui_ops_wrapped(&conversation_ui_ops);
|
||||
purple_roomlist_set_ui_ops_wrapped(&roomlist_ui_ops);
|
||||
|
||||
// #ifndef WIN32
|
||||
// purple_dnsquery_set_ui_ops_wrapped(getDNSUiOps());
|
||||
// #endif
|
||||
|
@ -1672,7 +1703,8 @@ static void signed_on(PurpleConnection *gc, gpointer unused) {
|
|||
malloc_trim(0);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
purple_roomlist_get_list_wrapped(gc);
|
||||
|
||||
// For prpl-gg
|
||||
execute_purple_plugin_action(gc, "Download buddylist from Server");
|
||||
}
|
||||
|
@ -1848,7 +1880,7 @@ static void transportDataReceived(gpointer data, gint source, PurpleInputConditi
|
|||
|
||||
if (firstPing) {
|
||||
firstPing = false;
|
||||
NetworkPlugin::PluginConfig cfg;
|
||||
NetworkPlugin::PluginConfig cfg;
|
||||
cfg.setSupportMUC(true);
|
||||
if (CONFIG_STRING(config, "service.protocol") == "prpl-telegram") {
|
||||
cfg.setNeedPassword(false);
|
||||
|
|
|
@ -100,6 +100,8 @@ purple_xfer_unref_wrapped_fnc purple_xfer_unref_wrapped = NULL;
|
|||
purple_xfer_ref_wrapped_fnc purple_xfer_ref_wrapped = NULL;
|
||||
purple_xfers_set_ui_ops_wrapped_fnc purple_xfers_set_ui_ops_wrapped = NULL;
|
||||
purple_xfers_get_handle_wrapped_fnc purple_xfers_get_handle_wrapped = NULL;
|
||||
purple_roomlist_set_ui_ops_wrapped_fnc purple_roomlist_set_ui_ops_wrapped = NULL;
|
||||
purple_roomlist_get_list_wrapped_fnc purple_roomlist_get_list_wrapped = NULL;
|
||||
purple_imgstore_get_data_wrapped_fnc purple_imgstore_get_data_wrapped = NULL;
|
||||
purple_imgstore_get_size_wrapped_fnc purple_imgstore_get_size_wrapped = NULL;
|
||||
purple_imgstore_unref_wrapped_fnc purple_imgstore_unref_wrapped = NULL;
|
||||
|
@ -542,6 +544,14 @@ bool resolvePurpleFunctions() {
|
|||
if (!purple_xfers_get_handle_wrapped)
|
||||
return false;
|
||||
|
||||
purple_roomlist_set_ui_ops_wrapped = (purple_roomlist_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_roomlist_set_ui_ops");
|
||||
if (!purple_roomlist_set_ui_ops_wrapped)
|
||||
return false;
|
||||
|
||||
purple_roomlist_get_list_wrapped = (purple_roomlist_get_list_wrapped_fnc)GetProcAddress(f_hPurple, "purple_roomlist_get_list");
|
||||
if (!purple_roomlist_get_list_wrapped)
|
||||
return false;
|
||||
|
||||
purple_imgstore_get_data_wrapped = (purple_imgstore_get_data_wrapped_fnc)GetProcAddress(f_hPurple, "purple_imgstore_get_data");
|
||||
if (!purple_imgstore_get_data_wrapped)
|
||||
return false;
|
||||
|
|
|
@ -314,6 +314,12 @@ extern purple_xfers_set_ui_ops_wrapped_fnc purple_xfers_set_ui_ops_wrapped;
|
|||
typedef void * (_cdecl * purple_xfers_get_handle_wrapped_fnc)(void);
|
||||
extern purple_xfers_get_handle_wrapped_fnc purple_xfers_get_handle_wrapped;
|
||||
|
||||
typedef void (_cdecl * purple_roomlist_set_ui_ops_wrapped_fnc)(PurpleRoomlistUiOps *ops);
|
||||
extern purple_roomlist_set_ui_ops_wrapped_fnc purple_roomlist_set_ui_ops_wrapped;
|
||||
|
||||
typedef PurpleRoomlist * (_cdecl * purple_roomlist_get_list_wrapped_fnc)(PurpleConnection *con);
|
||||
extern purple_roomlist_get_list_wrapped_fnc purple_roomlist_get_list_wrapped;
|
||||
|
||||
typedef gconstpointer (_cdecl * purple_imgstore_get_data_wrapped_fnc)(PurpleStoredImage *img);
|
||||
extern purple_imgstore_get_data_wrapped_fnc purple_imgstore_get_data_wrapped;
|
||||
|
||||
|
@ -560,6 +566,8 @@ extern wpurple_g_io_channel_win32_new_socket_wrapped_fnc wpurple_g_io_channel_wi
|
|||
#define purple_xfer_ref_wrapped purple_xfer_ref
|
||||
#define purple_xfers_set_ui_ops_wrapped purple_xfers_set_ui_ops
|
||||
#define purple_xfers_get_handle_wrapped purple_xfers_get_handle
|
||||
#define purple_roomlist_set_ui_ops_wrapped purple_roomlist_set_ui_ops
|
||||
#define purple_roomlist_get_list_wrapped purple_roomlist_get_list
|
||||
#define purple_imgstore_get_data_wrapped purple_imgstore_get_data
|
||||
#define purple_imgstore_get_size_wrapped purple_imgstore_get_size
|
||||
#define purple_imgstore_unref_wrapped purple_imgstore_unref
|
||||
|
|
|
@ -153,6 +153,7 @@ bool DiscoInfoResponder::handleGetRequest(const Swift::JID& from, const Swift::J
|
|||
else if (m_rooms.find(to.toBare().toString()) != m_rooms.end()) {
|
||||
boost::shared_ptr<DiscoInfo> res(new DiscoInfo());
|
||||
res->addIdentity(DiscoInfo::Identity(m_rooms[to.toBare().toString()], "conference", "text"));
|
||||
res->addFeature("http://jabber.org/protocol/muc");
|
||||
res->setNode(info->getNode());
|
||||
sendResponse(from, to, id, res);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue