#include <glib/gi18n-lib.h>
#include <telepathy-glib/proxy-subclass.h>
+#include <tp-account-widgets/tpaw-builder.h>
+#include <tp-account-widgets/tpaw-images.h>
+#include <tp-account-widgets/tpaw-camera-monitor.h>
+#include <tp-account-widgets/tpaw-utils.h>
+#include <telepathy-glib/telepathy-glib-dbus.h>
#include "action-chain-internal.h"
#include "empathy-account-chooser.h"
#include "empathy-call-utils.h"
-#include "empathy-camera-monitor.h"
#include "empathy-geometry.h"
#include "empathy-gsettings.h"
#include "empathy-images.h"
EmpathyContact *selected_contact;
EmpathyContact *events_contact;
- EmpathyCameraMonitor *camera_monitor;
+ TpawCameraMonitor *camera_monitor;
GBinding *button_video_binding;
/* Used to cancel logger calls when no longer needed */
empathy_call_new_with_streams (
empathy_contact_get_id (self->priv->selected_contact),
empathy_contact_get_account (self->priv->selected_contact),
- TRUE, video, gtk_get_current_event_time ());
+ video, gtk_get_current_event_time ());
}
static void
{
char *str = gtk_tree_path_to_string (path);
char *script, *text, *date, *stock_icon;
+ GString *escaped_text;
char *icon = NULL;
+ gint i;
gtk_tree_model_get (model, iter,
COL_EVENTS_TEXT, &text,
if (icon_info != NULL)
icon = g_strdup (gtk_icon_info_get_filename (icon_info));
- gtk_icon_info_free (icon_info);
+ g_object_unref (icon_info);
+ }
+
+ escaped_text = g_string_new (NULL);
+
+ /* Only need to deal with «'» and «\».
+ *
+ * Note that these never appear in non-ascii utf8 characters, so just
+ * pretend like we have an ascii string...
+ */
+ for (i = 0; text && text[i]; i++)
+ {
+ gchar c = text[i];
+
+ if (c == '\'' || c == '\\')
+ g_string_append_c (escaped_text, '\\');
+
+ g_string_append_c (escaped_text, c);
}
script = g_strdup_printf ("javascript:%s([%s], '%s', '%s', '%s');",
method,
g_strdelimit (str, ":", ','),
- text,
+ escaped_text->str,
icon != NULL ? icon : "",
date);
webkit_web_view_execute_script (WEBKIT_WEB_VIEW (self->priv->webview),
script);
+ g_string_free (escaped_text, TRUE);
g_free (str);
g_free (text);
g_free (date);
self->priv->chain = _tpl_action_chain_new_async (NULL, NULL, NULL);
- self->priv->camera_monitor = empathy_camera_monitor_dup_singleton ();
+ self->priv->camera_monitor = tpaw_camera_monitor_dup_singleton ();
self->priv->log_manager = tpl_log_manager_dup_singleton ();
gtk_window_set_default_size (GTK_WINDOW (self), 800, 600);
filename = empathy_file_lookup ("empathy-log-window.ui", "libempathy-gtk");
- gui = empathy_builder_get_file (filename,
+ gui = tpaw_builder_get_file (filename,
"vbox1", &self->priv->vbox,
"toolbutton_profile", &self->priv->button_profile,
"toolbutton_chat", &self->priv->button_chat,
NULL);
g_free (filename);
- empathy_builder_connect (gui, self,
+ tpaw_builder_connect (gui, self,
"toolbutton_profile", "clicked", toolbutton_profile_clicked,
"toolbutton_chat", "clicked", toolbutton_chat_clicked,
"toolbutton_call", "clicked", toolbutton_av_clicked,
if (!tp_strdiff (type, TP_IFACE_CHANNEL_TYPE_TEXT) &&
!(event_mask & TPL_EVENT_MASK_TEXT))
goto out;
- if ((!tp_strdiff (type, TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA) ||
- !tp_strdiff (type, TP_IFACE_CHANNEL_TYPE_CALL)) &&
+ if ((!tp_strdiff (type, TP_IFACE_CHANNEL_TYPE_CALL)) &&
!(event_mask & TPL_EVENT_MASK_CALL))
goto out;
tp_g_signal_connect_object (channel, "invalidated",
G_CALLBACK (on_channel_ended), self, 0);
}
- else if (!tp_strdiff (type, TP_IFACE_CHANNEL_TYPE_CALL) ||
- !tp_strdiff (type, TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA))
+ else if (!tp_strdiff (type, TP_IFACE_CHANNEL_TYPE_CALL))
{
g_hash_table_insert (self->priv->channels,
g_object_ref (channel), g_object_ref (account));
TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
TP_IFACE_CHANNEL_TYPE_TEXT,
NULL));
- tp_base_client_take_observer_filter (self->priv->observer,
- tp_asv_new (
- TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
- TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA,
- NULL));
tp_base_client_take_observer_filter (self->priv->observer,
tp_asv_new (
TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
GtkTreeIter iter, parent;
gchar *pretty_date, *alias, *body;
GDateTime *date;
- EmpathyStringParser *parsers;
+ TpawStringParser *parsers;
GString *msg;
date = g_date_time_new_from_unix_local (
EMPATHY_PREFS_CHAT_SHOW_SMILEYS));
msg = g_string_new ("");
- empathy_string_parser_substr (empathy_message_get_body (message), -1,
+ tpaw_string_parser_substr (empathy_message_get_body (message), -1,
parsers, msg);
if (tpl_text_event_get_message_type (TPL_TEXT_EVENT (event))
GTimeSpan span;
/* If searching, only add the call if the search string appears anywhere */
- if (!EMP_STR_EMPTY (log_window->priv->last_find))
+ if (!TPAW_STR_EMPTY (log_window->priv->last_find))
{
if (strstr (tpl_entity_get_identifier (tpl_event_get_sender (event)),
log_window->priv->last_find) == NULL &&
gtk_list_store_insert_with_values (store, NULL, -1,
COL_WHO_TYPE, COL_TYPE_NORMAL,
COL_WHO_ICON, room ? EMPATHY_IMAGE_GROUP_MESSAGE
- : EMPATHY_IMAGE_AVATAR_DEFAULT,
+ : TPAW_IMAGE_AVATAR_DEFAULT,
COL_WHO_NAME, name,
COL_WHO_NAME_SORT_KEY, sort_key,
COL_WHO_ID, tpl_entity_get_identifier (entity),
gtk_list_store_clear (store);
- if (EMP_STR_EMPTY (search_criteria))
+ if (TPAW_STR_EMPTY (search_criteria))
{
tp_clear_pointer (&self->priv->hits, tpl_log_manager_search_free);
webkit_web_view_set_highlight_text_matches (