*/
#include "config.h"
-
-#include <string.h>
-#include <stdlib.h>
+#include "empathy-log-window.h"
#include <glib/gi18n-lib.h>
-#include <gtk/gtk.h>
-#include <webkit/webkit.h>
-
-#include <telepathy-glib/telepathy-glib.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-logger/telepathy-logger.h>
-
-#include <extensions/extensions.h>
-
-#include <libempathy/action-chain-internal.h>
-#include <libempathy/empathy-camera-monitor.h>
-#include <libempathy/empathy-chatroom-manager.h>
-#include <libempathy/empathy-chatroom.h>
-#include <libempathy/empathy-gsettings.h>
-#include <libempathy/empathy-message.h>
-#include <libempathy/empathy-request-util.h>
-#include <libempathy/empathy-utils.h>
-#include <libempathy/empathy-time.h>
-
-#include "empathy-log-window.h"
+#include "action-chain-internal.h"
#include "empathy-account-chooser.h"
#include "empathy-call-utils.h"
-#include "empathy-individual-information-dialog.h"
+#include "empathy-geometry.h"
+#include "empathy-gsettings.h"
#include "empathy-images.h"
+#include "empathy-individual-information-dialog.h"
+#include "empathy-request-util.h"
#include "empathy-theme-manager.h"
#include "empathy-ui-utils.h"
+#include "empathy-utils.h"
#include "empathy-webkit-utils.h"
-#include "empathy-geometry.h"
+#include "extensions.h"
#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
-#include <libempathy/empathy-debug.h>
+#include "empathy-debug.h"
#define EMPATHY_NS "http://live.gnome.org/Empathy"
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 */
{
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,
GtkTreeStore *store = log_window->priv->store_events;
GtkTreeIter iter, parent;
gchar *pretty_date, *alias, *body;
- gchar *msg_escaped;
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);
- msg_escaped = g_strescape (msg->str, NULL);
-
if (tpl_text_event_get_message_type (TPL_TEXT_EVENT (event))
== TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION)
{
/* Translators: this is an emote: '* Danielle waves' */
- body = g_strdup_printf (_("<i>* %s %s</i>"), alias, msg_escaped);
+ body = g_strdup_printf (_("<i>* %s %s</i>"), alias, msg->str);
}
else
{
/* Translators: this is a message: 'Danielle: hello'
* The string in bold is the sender's name */
- body = g_strdup_printf (_("<b>%s:</b> %s"), alias, msg_escaped);
+ body = g_strdup_printf (_("<b>%s:</b> %s"), alias, msg->str);
}
- g_free (msg_escaped);
-
gtk_tree_store_append (store, &iter, &parent);
gtk_tree_store_set (store, &iter,
COL_EVENTS_TS, tpl_event_get_timestamp (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 (