Open conversation on message click
authorArtem Garmash <artemgarmash@gmail.com>
Sun, 10 Jan 2010 21:07:53 +0000 (23:07 +0200)
committerArtem Garmash <artem.garmash@nokia.com>
Sun, 27 Jun 2010 19:13:42 +0000 (22:13 +0300)
configure.ac
debian/control
src/Makefile.am
src/el-home-applet.c

index f84d6c9..cc43586 100644 (file)
@@ -21,9 +21,10 @@ AC_SUBST(hildondesktoplibdir)
 
 PKG_CHECK_MODULES([LIBHILDONDESKTOP],
                    [libhildondesktop-1 >= 2.1.7])
-
 PKG_CHECK_MODULES([LIBOSSO_ABOOK],
                    [libosso-abook-1.0])
+PKG_CHECK_MODULES([LIBTP_GLIB],
+                   [telepathy-glib])
 
 AC_ARG_ENABLE([debug],
               [AS_HELP_STRING([--enable-debug], [enable debugging])],
index a2db3dc..24de726 100644 (file)
@@ -3,7 +3,7 @@ Priority: extra
 Section: user/desktop
 Maintainer: Artem Garmash <artemgarmash@gmail.com>
 Build-Depends: debhelper (>= 4.0.0), cdbs, autotools-dev, librtcom-eventlogger-dev,
- libhildondesktop1-dev (>= 2.1.7)
+ libhildondesktop1-dev (>= 2.1.7), libtelepathy-glib-dev
 Standards-Version: 3.6.2
 
 Package: conversations-inbox-widget
index 7e71222..e6a7af6 100644 (file)
@@ -3,10 +3,11 @@ hildondesktoplib_LTLIBRARIES = conversations-inbox-widget.la
 conversations_inbox_widget_la_CPPFLAGS = \
     $(LIBHILDONDESKTOP_CFLAGS) \
     $(LIBEVENT_LOGGER_CFLAGS) \
-    $(LIBOSSO_ABOOK_CFLAGS)
+    $(LIBOSSO_ABOOK_CFLAGS) \
+    $(LIBTP_GLIB_CFLAGS)
 
 conversations_inbox_widget_la_LDFLAGS = -module -avoid-version
-conversations_inbox_widget_la_LIBADD = $(LIBHILDONDESKTOP_LIBS) $(LIBEVENT_LOGGER_LIBS) $(LIBOSSO_ABOOK_LIBS)
+conversations_inbox_widget_la_LIBADD = $(LIBHILDONDESKTOP_LIBS) $(LIBEVENT_LOGGER_LIBS) $(LIBOSSO_ABOOK_LIBS) $(LIBTP_GLIB_LIBS)
 
 conversations_inbox_widget_la_SOURCES = el-home-applet.c el-home-applet.h
 
index 82388c9..4f7858e 100644 (file)
@@ -36,6 +36,8 @@
 #include <libosso-abook/osso-abook-temporary-contact-dialog.h>
 #include <libosso-abook/osso-abook-account-manager.h>
 
+#include <telepathy-glib/interfaces.h>
+
 #define EL_HOME_APPLET_GET_PRIVATE(obj) ( \
         G_TYPE_INSTANCE_GET_PRIVATE (obj, \
                 EL_TYPE_HOME_APPLET, ELHomeAppletPrivate))
@@ -916,6 +918,35 @@ mark_as_read (ELHomeApplet *self)
         }
 }
 
+static void
+open_conversation (ELHomeApplet *self)
+{
+        ELHomeAppletPrivate *priv = self->priv;
+        McAccount *account;
+        McAccountChannelrequestData request;
+
+        if (!(priv->remote_id && priv->local_id))
+                return;
+
+        account = osso_abook_account_manager_lookup_by_name (NULL,
+                                                             priv->local_id);
+        if (!account)
+                return;
+
+        MC_ACCOUNT_CRD_INIT (&request);
+        MC_ACCOUNT_CRD_SET (&request, channel_type, TP_IFACE_QUARK_CHANNEL_TYPE_TEXT);
+        MC_ACCOUNT_CRD_SET (&request, target_handle_type, TP_HANDLE_TYPE_CONTACT);
+        MC_ACCOUNT_CRD_SET (&request, target_id, priv->remote_id);
+
+        mc_account_channelrequest (
+                account,
+                &request,
+                time (NULL),
+                NULL, /* handler */
+                MC_ACCOUNT_CR_FLAG_USE_EXISTING,
+                NULL, NULL, NULL, NULL);
+}
+
 static gboolean
 read_new_event (ELHomeApplet *self)
 {
@@ -1070,7 +1101,8 @@ button_release_event_cb (GtkWidget      *widget,
                 }
                 else {
 #ifndef DEBUG_LAYOUT
-                        mark_as_read (self);
+                        /* mark_as_read (self); */
+                        open_conversation (self);
 #endif
                 }