]> git.0d.be Git - empathy.git/blobdiff - libempathy/empathy-chatroom.c
Reorder header inclusions accordingly to the Telepathy coding style
[empathy.git] / libempathy / empathy-chatroom.c
index 5d43a3ec11c595ddd367e964cd92ba7f80d106ca..32bb4ce30afd1a3e67cbdbcde367f167f38aab22 100644 (file)
  */
 
 #include "config.h"
-
-#include <string.h>
-
-#include <glib.h>
-#include <telepathy-glib/util.h>
-
 #include "empathy-chatroom.h"
+
 #include "empathy-utils.h"
 
 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyChatroom)
@@ -41,6 +36,7 @@ typedef struct {
        guint members_count;
        gboolean invite_only;
        gboolean need_password;
+       gboolean always_urgent;
 } EmpathyChatroomPriv;
 
 
@@ -65,7 +61,8 @@ enum {
        PROP_SUBJECT,
        PROP_MEMBERS_COUNT,
        PROP_NEED_PASSWORD,
-       PROP_INVITE_ONLY
+       PROP_INVITE_ONLY,
+       PROP_ALWAYS_URGENT,
 };
 
 G_DEFINE_TYPE (EmpathyChatroom, empathy_chatroom, G_TYPE_OBJECT);
@@ -120,6 +117,14 @@ empathy_chatroom_class_init (EmpathyChatroomClass *klass)
                                                               G_PARAM_READWRITE |
                                                               G_PARAM_CONSTRUCT));
 
+       g_object_class_install_property (object_class,
+                                        PROP_ALWAYS_URGENT,
+                                        g_param_spec_boolean ("always_urgent",
+                                                              "Always Urgent",
+                                                              "TRUE if every message should be considered urgent",
+                                                              FALSE,
+                                                              G_PARAM_READWRITE));
+
        g_object_class_install_property (object_class,
                                         PROP_TP_CHAT,
                                         g_param_spec_object ("tp-chat",
@@ -203,6 +208,7 @@ chatroom_finalize (GObject *object)
        g_object_unref (priv->account);
        g_free (priv->room);
        g_free (priv->name);
+       g_free (priv->subject);
 
        (G_OBJECT_CLASS (empathy_chatroom_parent_class)->finalize) (object);
 }
@@ -233,6 +239,9 @@ chatroom_get_property (GObject    *object,
        case PROP_FAVORITE:
                g_value_set_boolean (value, priv->favorite);
                break;
+       case PROP_ALWAYS_URGENT:
+               g_value_set_boolean (value, priv->always_urgent);
+               break;
        case PROP_TP_CHAT:
                g_value_set_object (value, priv->tp_chat);
                break;
@@ -260,10 +269,6 @@ chatroom_set_property (GObject      *object,
                       const GValue *value,
                       GParamSpec   *pspec)
 {
-       EmpathyChatroomPriv *priv;
-
-       priv = GET_PRIV (object);
-
        switch (param_id) {
        case PROP_ACCOUNT:
                empathy_chatroom_set_account (EMPATHY_CHATROOM (object),
@@ -285,6 +290,10 @@ chatroom_set_property (GObject      *object,
                empathy_chatroom_set_favorite (EMPATHY_CHATROOM (object),
                                               g_value_get_boolean (value));
                break;
+       case PROP_ALWAYS_URGENT:
+               empathy_chatroom_set_always_urgent (EMPATHY_CHATROOM (object),
+                                              g_value_get_boolean (value));
+               break;
        case PROP_TP_CHAT:
                empathy_chatroom_set_tp_chat (EMPATHY_CHATROOM (object),
                                              g_value_get_object (value));
@@ -663,3 +672,32 @@ empathy_chatroom_set_favorite (EmpathyChatroom *chatroom,
        g_object_notify (G_OBJECT (chatroom), "favorite");
 }
 
+gboolean
+empathy_chatroom_is_always_urgent (EmpathyChatroom *chatroom)
+{
+       EmpathyChatroomPriv *priv;
+
+       g_return_val_if_fail (EMPATHY_IS_CHATROOM (chatroom), FALSE);
+
+       priv = GET_PRIV (chatroom);
+
+       return priv->always_urgent;
+}
+
+void
+empathy_chatroom_set_always_urgent (EmpathyChatroom *chatroom,
+                              gboolean         always_urgent)
+{
+       EmpathyChatroomPriv *priv;
+
+       g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom));
+
+       priv = GET_PRIV (chatroom);
+
+       if (priv->always_urgent == always_urgent)
+               return;
+
+       priv->always_urgent = always_urgent;
+       g_object_notify (G_OBJECT (chatroom), "always_urgent");
+}
+