diff options
-rw-r--r-- | libempathy/empathy-chatroom-manager.c | 14 | ||||
-rw-r--r-- | libempathy/empathy-chatroom-manager.dtd | 3 |
2 files changed, 16 insertions, 1 deletions
diff --git a/libempathy/empathy-chatroom-manager.c b/libempathy/empathy-chatroom-manager.c index cf3b75331..57aa75402 100644 --- a/libempathy/empathy-chatroom-manager.c +++ b/libempathy/empathy-chatroom-manager.c @@ -32,6 +32,7 @@ #include <telepathy-glib/account-manager.h> #include <telepathy-glib/interfaces.h> +#include <telepathy-glib/util.h> #include "empathy-tp-chat.h" #include "empathy-chatroom-manager.h" @@ -118,6 +119,9 @@ chatroom_manager_file_save (EmpathyChatroomManager *manager) xmlNewTextChild (node, NULL, (const xmlChar *) "auto_connect", empathy_chatroom_get_auto_connect (chatroom) ? (const xmlChar *) "yes" : (const xmlChar *) "no"); + xmlNewTextChild (node, NULL, (const xmlChar *) "always_urgent", + empathy_chatroom_is_always_urgent (chatroom) ? + (const xmlChar *) "yes" : (const xmlChar *) "no"); } /* Make sure the XML is indented properly */ @@ -190,6 +194,7 @@ chatroom_manager_parse_chatroom (EmpathyChatroomManager *manager, gchar *room; gchar *account_id; gboolean auto_connect; + gboolean always_urgent; priv = GET_PRIV (manager); @@ -197,6 +202,7 @@ chatroom_manager_parse_chatroom (EmpathyChatroomManager *manager, name = NULL; room = NULL; auto_connect = TRUE; + always_urgent = FALSE; account_id = NULL; for (child = node->children; child; child = child->next) { @@ -222,6 +228,13 @@ chatroom_manager_parse_chatroom (EmpathyChatroomManager *manager, auto_connect = FALSE; } } + else if (!tp_strdiff (tag, "always_urgent")) { + if (strcmp (str, "yes") == 0) { + always_urgent = TRUE; + } else { + always_urgent = FALSE; + } + } else if (strcmp (tag, "account") == 0) { account_id = g_strdup (str); } @@ -240,6 +253,7 @@ chatroom_manager_parse_chatroom (EmpathyChatroomManager *manager, chatroom = empathy_chatroom_new_full (account, room, name, auto_connect); empathy_chatroom_set_favorite (chatroom, TRUE); + empathy_chatroom_set_always_urgent (chatroom, always_urgent); add_chatroom (manager, chatroom); g_signal_emit (manager, signals[CHATROOM_ADDED], 0, chatroom); diff --git a/libempathy/empathy-chatroom-manager.dtd b/libempathy/empathy-chatroom-manager.dtd index df6b953f6..d40cae23a 100644 --- a/libempathy/empathy-chatroom-manager.dtd +++ b/libempathy/empathy-chatroom-manager.dtd @@ -8,10 +8,11 @@ <!ELEMENT chatrooms (chatroom*)> <!ELEMENT chatroom - (name,room,account,(auto_connect?))> + (name,room,account,(auto_connect?),(always_urgent?))> <!ELEMENT name (#PCDATA)> <!ELEMENT room (#PCDATA)> <!ELEMENT auto_connect (#PCDATA)> +<!ELEMENT always_urgent (#PCDATA)> <!ELEMENT account (#PCDATA)> |