|
2010-07-12
, 15:46
|
|
Posts: 4,274 |
Thanked: 5,358 times |
Joined on Sep 2007
@ Looking at y'all and sighing
|
#14
|
I wished I could open the conversation app for the conversation
search result, but I couldn't find a way to do so.
--- scout-0.0.1.orig/src/scout-window.cpp +++ scout-0.0.1/src/scout-window.cpp @@ -4,6 +4,10 @@ #include <libosso.h> #include "scout-window.h" #include <rtcom-eventlogger/event.h> +#include <rtcom-eventlogger-plugins/chat.h> +#include <telepathy-glib/interfaces.h> +#include <telepathy-glib/dbus.h> +#include <rtcom-telepathy-glib/extensions.h> #include <string.h> #include <libintl.h> #include <locale.h> @@ -899,37 +903,82 @@ const gchar* user_id, int event_id) { - GtkWidget* window; - window = hildon_stackable_window_new(); RTComElQuery *query = rtcom_el_query_new (self->priv->rt_el); rtcom_el_query_prepare (query, "id", event_id, RTCOM_EL_OP_EQUAL, NULL); RTComElIter* iter = rtcom_el_get_events(self->priv->rt_el, query); g_object_unref(query); - GtkWidget* text_view = hildon_text_view_new(); - gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_view), GTK_WRAP_CHAR); - gtk_text_view_set_editable(GTK_TEXT_VIEW(text_view), FALSE); gboolean it = rtcom_el_iter_first(iter); - if(it) - { - gchar* text = NULL; - rtcom_el_iter_get_values(iter, "free-text", &text, NULL); + if (!it) + return; + + gchar* remote_uid = NULL; + gchar* channel = NULL; + gint flags = 0; + gchar* local_uid = NULL; + rtcom_el_iter_get_values(iter, "remote-uid", &remote_uid, "channel", &channel, "flags", &flags, "local-uid", &local_uid, NULL); - hildon_text_view_set_placeholder (HILDON_TEXT_VIEW (text_view), - text); - GtkTextBuffer* buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view)); - gtk_text_buffer_insert_at_cursor(buffer, - text, - strlen(text)); + if (!((remote_uid || channel) && local_uid)) + return; + + McAccount *account = osso_abook_account_manager_lookup_by_name (NULL, local_uid); + if (!account) + goto finally; + + if ((flags & RTCOM_EL_FLAG_CHAT_GROUP) && (flags & RTCOM_EL_FLAG_CHAT_OPAQUE)) + { + if (!channel) + goto finally; + + GHashTable *properties = tp_asv_new(TP_IFACE_CHANNEL ".ChannelType", G_TYPE_STRING, + TP_IFACE_CHANNEL_TYPE_TEXT, + TP_IFACE_CHANNEL ".TargetHandleType", G_TYPE_UINT, + TP_HANDLE_TYPE_NONE, + RTCOM_TP_IFACE_CHANNEL_INTERFACE_PERSISTENT ".PersistentID", + G_TYPE_STRING, channel, + NULL); + + mc_account_channelrequest_ht (account, + properties, + time (NULL), + NULL, + MC_ACCOUNT_CR_FLAG_USE_EXISTING, + NULL, NULL, NULL, NULL); + + g_hash_table_unref (properties); } else { - hildon_text_view_set_placeholder (HILDON_TEXT_VIEW (text_view), - "no text"); + McAccountChannelrequestData request; + + MC_ACCOUNT_CRD_INIT (&request); + MC_ACCOUNT_CRD_SET (&request, channel_type, TP_IFACE_QUARK_CHANNEL_TYPE_TEXT); + + if ((flags & RTCOM_EL_FLAG_CHAT_ROOM) && channel) + { + MC_ACCOUNT_CRD_SET (&request, target_handle_type, TP_HANDLE_TYPE_ROOM); + MC_ACCOUNT_CRD_SET (&request, target_id, channel); + } + else if (remote_uid) + { + MC_ACCOUNT_CRD_SET (&request, target_handle_type, TP_HANDLE_TYPE_CONTACT); + MC_ACCOUNT_CRD_SET (&request, target_id, remote_uid); + } + else + goto finally; + + mc_account_channelrequest (account, + &request, + time (NULL), + NULL, + MC_ACCOUNT_CR_FLAG_USE_EXISTING, + NULL, NULL, NULL, NULL); } - gtk_container_add(GTK_CONTAINER(window), text_view); - gtk_window_set_title(GTK_WINDOW(window), user_id); - gtk_widget_show_all(window); + +finally: + g_free (remote_uid); + g_free (channel); + g_free (local_uid); } static void
|
2010-07-12
, 19:15
|
|
Posts: 111 |
Thanked: 74 times |
Joined on Feb 2010
@ Germany
|
#15
|
|
2010-07-12
, 19:25
|
Posts: 4,556 |
Thanked: 1,624 times |
Joined on Dec 2007
|
#16
|
|
2010-07-14
, 15:53
|
Posts: 287 |
Thanked: 165 times |
Joined on Oct 2009
@ The Netherlands
|
#17
|
|
2010-07-14
, 15:58
|
Posts: 228 |
Thanked: 145 times |
Joined on Dec 2009
|
#18
|
|
2010-07-14
, 16:06
|
|
Posts: 327 |
Thanked: 249 times |
Joined on Sep 2009
@ Λεμεσιανός, ρε!
|
#19
|
|
2010-07-14
, 17:46
|
Posts: 53 |
Thanked: 18 times |
Joined on Dec 2007
|
#20
|
nicolai
my contributions:
Desktop Clock Widget|Calendar Home Widget|Lens Cover Reminder|ConnectNow|Scout|App Search Widget|ProfilesX|
Desktop-Switcher|SMS-Messageblocker
-Donate-