]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-presence-chooser.c
Updated Oriya Translation
[empathy.git] / libempathy-gtk / empathy-presence-chooser.c
index 4fd524e64c0d9299fe41f1b9d0a33c91eec5028e..7c5850af833d390e94209f3d65a3b76b2e22b80a 100644 (file)
@@ -79,9 +79,9 @@ enum {
 
 /* For combobox's model */
 enum {
+       COL_STATUS_TEXT,
        COL_STATE_ICON_NAME,
        COL_STATE,
-       COL_STATUS_TEXT,
        COL_DISPLAY_MARKUP,
        COL_STATUS_CUSTOMISABLE,
        COL_TYPE,
@@ -162,9 +162,9 @@ presence_chooser_create_model (EmpathyPresenceChooser *self)
        int i;
 
        store = gtk_list_store_new (N_COLUMNS,
+                                   G_TYPE_STRING,    /* COL_STATUS_TEXT */
                                    G_TYPE_STRING,    /* COL_STATE_ICON_NAME */
                                    G_TYPE_UINT,      /* COL_STATE */
-                                   G_TYPE_STRING,    /* COL_STATUS_TEXT */
                                    G_TYPE_STRING,    /* COL_DISPLAY_MARKUP */
                                    G_TYPE_BOOLEAN,   /* COL_STATUS_CUSTOMISABLE */
                                    G_TYPE_INT);      /* COL_TYPE */
@@ -179,9 +179,9 @@ presence_chooser_create_model (EmpathyPresenceChooser *self)
                icon_name = empathy_icon_name_for_presence (states[i].state);
 
                gtk_list_store_insert_with_values (store, NULL, -1,
+                       COL_STATUS_TEXT, status,
                        COL_STATE_ICON_NAME, icon_name,
                        COL_STATE, states[i].state,
-                       COL_STATUS_TEXT, status,
                        COL_DISPLAY_MARKUP, status,
                        COL_STATUS_CUSTOMISABLE, states[i].customisable,
                        COL_TYPE, ENTRY_TYPE_BUILTIN,
@@ -194,9 +194,9 @@ presence_chooser_create_model (EmpathyPresenceChooser *self)
                        for (l = list; l; l = l->next) {
                                gtk_list_store_insert_with_values (store,
                                        NULL, -1,
-                                       COL_STATE_ICON_NAME, icon_name,
-                                       COL_STATE, states[i],
                                        COL_STATUS_TEXT, l->data,
+                                       COL_STATE_ICON_NAME, icon_name,
+                                       COL_STATE, states[i].state,
                                        COL_DISPLAY_MARKUP, l->data,
                                        COL_STATUS_CUSTOMISABLE, TRUE,
                                        COL_TYPE, ENTRY_TYPE_SAVED,
@@ -205,9 +205,9 @@ presence_chooser_create_model (EmpathyPresenceChooser *self)
                        g_list_free (list);
 
                        gtk_list_store_insert_with_values (store, NULL, -1,
+                               COL_STATUS_TEXT, _("Custom Message..."),
                                COL_STATE_ICON_NAME, icon_name,
-                               COL_STATE, states[i],
-                               COL_STATUS_TEXT, "",
+                               COL_STATE, states[i].state,
                                COL_DISPLAY_MARKUP, custom_message,
                                COL_STATUS_CUSTOMISABLE, TRUE,
                                COL_TYPE, ENTRY_TYPE_CUSTOM,
@@ -222,8 +222,8 @@ presence_chooser_create_model (EmpathyPresenceChooser *self)
                        -1);
 
        gtk_list_store_insert_with_values (store, NULL, -1,
+               COL_STATUS_TEXT, _("Edit Custom Messages..."),
                COL_STATE_ICON_NAME, GTK_STOCK_EDIT,
-               COL_STATUS_TEXT, "",
                COL_DISPLAY_MARKUP, _("Edit Custom Messages..."),
                COL_TYPE, ENTRY_TYPE_EDIT_CUSTOM,
                -1);
@@ -293,7 +293,7 @@ presence_chooser_is_preset (EmpathyPresenceChooser *self)
        for (l = presets; l; l = l->next) {
                char *preset = (char *) l->data;
 
-               if (!strcmp (status, preset)) {
+               if (!tp_strdiff (status, preset)) {
                        match = TRUE;
                        break;
                }
@@ -432,7 +432,7 @@ ui_set_custom_state (EmpathyPresenceChooser *self,
        gtk_entry_set_icon_from_icon_name (GTK_ENTRY (entry),
                                           GTK_ENTRY_ICON_PRIMARY,
                                           icon_name);
-       gtk_entry_set_text (GTK_ENTRY (entry), status);
+       gtk_entry_set_text (GTK_ENTRY (entry), status == NULL ? "" : status);
        presence_chooser_set_favorite_icon (self);
 
        priv->block_changed--;
@@ -468,6 +468,10 @@ presence_chooser_entry_icon_release_cb (EmpathyPresenceChooser *self,
                state = empathy_idle_get_state (priv->idle);
                status = empathy_idle_get_status (priv->idle);
 
+               if (!empathy_status_presets_is_valid (state))
+                       /* It doesn't make sense to add such presence as favorite */
+                       return;
+
                if (presence_chooser_is_preset (self)) {
                        /* remove the entry */
                        DEBUG ("REMOVING PRESET (%i, %s)\n", state, status);
@@ -873,7 +877,7 @@ presence_chooser_presence_changed_cb (EmpathyPresenceChooser *chooser)
                                COL_STATUS_TEXT, &m_status,
                                -1);
 
-               match = !strcmp (status, m_status);
+               match = !tp_strdiff (status, m_status);
 
                g_free (m_status);
 
@@ -1045,6 +1049,7 @@ presence_chooser_menu_add_item (GtkWidget   *menu,
        gtk_widget_show (image);
 
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
+       gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE);
        gtk_widget_show (item);
 
        g_object_set_data_full (G_OBJECT (item),