Assamese translation updated
[platform/upstream/evolution-data-server.git] / libedataserverui / e-categories-selector.c
index 4b80e0c..e2eedfa 100644 (file)
 
 #include <config.h>
 #include <glib/gi18n-lib.h>
-#include "libedataserver/e-categories.h"
+
+#include <libedataserver/libedataserver.h>
+
 #include "e-categories-selector.h"
 #include "e-data-server-ui-marshal.h"
 
-G_DEFINE_TYPE (
-       ECategoriesSelector,
-       e_categories_selector,
-       GTK_TYPE_TREE_VIEW)
+#define E_CATEGORIES_SELECTOR_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_CATEGORIES_SELECTOR, ECategoriesSelectorPrivate))
 
 struct _ECategoriesSelectorPrivate {
        gboolean checkable;
@@ -55,6 +56,11 @@ enum {
 
 static gint signals[LAST_SIGNAL] = {0};
 
+G_DEFINE_TYPE (
+       ECategoriesSelector,
+       e_categories_selector,
+       GTK_TYPE_TREE_VIEW)
+
 static void
 categories_selector_build_model (ECategoriesSelector *selector)
 {
@@ -131,7 +137,8 @@ category_toggled_cb (GtkCellRenderer *renderer,
                gchar *category;
                gboolean active;
 
-               gtk_tree_model_get (model, &iter,
+               gtk_tree_model_get (
+                       model, &iter,
                        COLUMN_ACTIVE, &active,
                        COLUMN_CATEGORY, &category, -1);
 
@@ -224,7 +231,7 @@ categories_selector_dispose (GObject *object)
 {
        ECategoriesSelectorPrivate *priv;
 
-       priv = E_CATEGORIES_SELECTOR (object)->priv;
+       priv = E_CATEGORIES_SELECTOR_GET_PRIVATE (object);
 
        if (priv->selected_categories != NULL) {
                g_hash_table_destroy (priv->selected_categories);
@@ -294,9 +301,7 @@ e_categories_selector_init (ECategoriesSelector *selector)
        GtkTreeViewColumn *column;
        GtkTreeSelection *selection;
 
-       selector->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               selector, E_TYPE_CATEGORIES_SELECTOR,
-               ECategoriesSelectorPrivate);
+       selector->priv = E_CATEGORIES_SELECTOR_GET_PRIVATE (selector);
 
        selector->priv->checkable = TRUE;
        selector->priv->selected_categories = g_hash_table_new_full (
@@ -379,6 +384,9 @@ e_categories_selector_set_items_checkable (ECategoriesSelector *selector,
 
        g_return_if_fail (E_IS_CATEGORIES_SELECTOR (selector));
 
+       if ((selector->priv->checkable ? 1 : 0) == (checkable ? 1 : 0))
+               return;
+
        selector->priv->checkable = checkable;
 
        column = gtk_tree_view_get_column (
@@ -391,16 +399,19 @@ e_categories_selector_set_items_checkable (ECategoriesSelector *selector,
 /**
  * e_categories_selector_get_checked:
  *
+ * Free returned pointer with g_free().
+ *
  * Since: 3.2
  **/
-const gchar *
+gchar *
 e_categories_selector_get_checked (ECategoriesSelector *selector)
 {
-       GString *str = g_string_new ("");
+       GString *str;
        GList *list, *category;
 
        g_return_val_if_fail (E_IS_CATEGORIES_SELECTOR (selector), NULL);
 
+       str = g_string_new ("");
        list = g_hash_table_get_values (selector->priv->selected_categories);
 
        /* to get them always in the same order */
@@ -455,7 +466,8 @@ e_categories_selector_set_checked (ECategoriesSelector *selector,
                        gchar *category_name;
                        gboolean found;
 
-                       gtk_tree_model_get (model, &iter,
+                       gtk_tree_model_get (
+                               model, &iter,
                                COLUMN_CATEGORY, &category_name,
                                -1);
                        found = (g_hash_table_lookup (
@@ -506,7 +518,8 @@ e_categories_selector_delete_selection (ECategoriesSelector *selector)
                gchar *category;
 
                gtk_tree_model_get_iter (model, &iter, path);
-               gtk_tree_model_get (model, &iter,
+               gtk_tree_model_get (
+                       model, &iter,
                        COLUMN_CATEGORY, &category, -1);
                gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
                e_categories_remove (category);
@@ -532,9 +545,11 @@ e_categories_selector_delete_selection (ECategoriesSelector *selector)
 /**
  * e_categories_selector_get_selected:
  *
+ * Free returned pointer with g_free().
+ *
  * Since: 3.2
  **/
-const gchar *
+gchar *
 e_categories_selector_get_selected (ECategoriesSelector *selector)
 {
        GtkTreeModel *model;
@@ -556,7 +571,8 @@ e_categories_selector_get_selected (ECategoriesSelector *selector)
                gchar *category;
 
                gtk_tree_model_get_iter (model, &iter, path);
-               gtk_tree_model_get (model, &iter,
+               gtk_tree_model_get (
+                       model, &iter,
                        COLUMN_CATEGORY, &category, -1);
                if (str->len == 0)
                        g_string_assign (str, category);