[gthumb] orginaze files: fixed wrong catalog cardinality



commit 9876103853bc663a6058478b76a2b85105fa3631
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Mon Aug 15 14:35:29 2016 +0200

    orginaze files: fixed wrong catalog cardinality

 extensions/catalogs/gth-catalog.c       |    7 ++++++
 extensions/catalogs/gth-catalog.h       |    1 +
 extensions/catalogs/gth-organize-task.c |   37 +++++++++++++++++-------------
 3 files changed, 29 insertions(+), 16 deletions(-)
---
diff --git a/extensions/catalogs/gth-catalog.c b/extensions/catalogs/gth-catalog.c
index 807e239..2a7bbcc 100644
--- a/extensions/catalogs/gth-catalog.c
+++ b/extensions/catalogs/gth-catalog.c
@@ -777,6 +777,13 @@ gth_catalog_update_metadata (GthCatalog  *catalog,
 }
 
 
+int
+gth_catalog_get_size (GthCatalog *catalog)
+{
+       return g_hash_table_size (catalog->priv->file_hash);
+}
+
+
 /* utils */
 
 
diff --git a/extensions/catalogs/gth-catalog.h b/extensions/catalogs/gth-catalog.h
index c1765c7..45f42d5 100644
--- a/extensions/catalogs/gth-catalog.h
+++ b/extensions/catalogs/gth-catalog.h
@@ -109,6 +109,7 @@ void          gth_catalog_list_async      (GthCatalog           *catalog,
 void          gth_catalog_cancel          (GthCatalog           *catalog);
 void          gth_catalog_update_metadata (GthCatalog           *catalog,
                                           GthFileData          *file_data);
+int           gth_catalog_get_size        (GthCatalog           *catalog);
 
 /* utils */
 
diff --git a/extensions/catalogs/gth-organize-task.c b/extensions/catalogs/gth-organize-task.c
index ce4cebf..a42afe5 100644
--- a/extensions/catalogs/gth-organize-task.c
+++ b/extensions/catalogs/gth-organize-task.c
@@ -166,20 +166,24 @@ done_func (GError   *error,
                                                    CARDINALITY_COLUMN, &n,
                                                    -1);
                                if (n == 1) {
-                                       GthCatalog *catalog;
-                                       GList      *file_list;
-
                                        gtk_list_store_set (self->priv->results_liststore, &iter,
                                                            CREATE_CATALOG_COLUMN, FALSE,
                                                            -1);
                                        singletons++;
-                                       catalog = g_hash_table_lookup (self->priv->catalogs, key);
-                                       file_list = gth_catalog_get_file_list (catalog);
-                                       gth_catalog_insert_file (self->priv->singletons_catalog, 
file_list->data, -1);
-                                       if (singletons == 1)
-                                               g_hash_table_insert (self->priv->catalogs,
-                                                                    g_strdup (gth_catalog_get_name 
(self->priv->singletons_catalog)),
-                                                                    g_object_ref 
(self->priv->singletons_catalog));
+
+                                       if (self->priv->singletons_catalog != NULL) {
+                                               GthCatalog *catalog;
+                                               GList      *file_list;
+
+                                               catalog = g_hash_table_lookup (self->priv->catalogs, key);
+                                               file_list = gth_catalog_get_file_list (catalog);
+
+                                               gth_catalog_insert_file (self->priv->singletons_catalog, 
file_list->data, -1);
+                                               if (singletons == 1)
+                                                       g_hash_table_insert (self->priv->catalogs,
+                                                                            g_strdup (gth_catalog_get_name 
(self->priv->singletons_catalog)),
+                                                                            g_object_ref 
(self->priv->singletons_catalog));
+                                       }
                                }
 
                                g_free (key);
@@ -192,7 +196,7 @@ done_func (GError   *error,
                        gtk_list_store_set (self->priv->results_liststore, &iter,
                                            KEY_COLUMN, gth_catalog_get_name (self->priv->singletons_catalog),
                                            NAME_COLUMN, gth_catalog_get_name 
(self->priv->singletons_catalog),
-                                           CARDINALITY_COLUMN, singletons,
+                                           CARDINALITY_COLUMN, gth_catalog_get_size 
(self->priv->singletons_catalog),
                                            CREATE_CATALOG_COLUMN, TRUE,
                                            ICON_COLUMN, self->priv->icon_pixbuf,
                                            -1);
@@ -417,6 +421,9 @@ add_file_to_catalog (GthOrganizeTask *self,
        GtkTreeIter iter;
        int         n = 0;
 
+       if (! gth_catalog_insert_file (catalog, file_data->file, -1))
+               return;
+
        if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (self->priv->results_liststore), &iter)) {
                do {
                        char *k;
@@ -427,11 +434,11 @@ add_file_to_catalog (GthOrganizeTask *self,
                                            CARDINALITY_COLUMN, &n,
                                            -1);
                        if (g_strcmp0 (k, catalog_key) == 0) {
+                               self->priv->n_files++;
+                               n += 1;
                                gtk_list_store_set (self->priv->results_liststore, &iter,
-                                                   CARDINALITY_COLUMN, n + 1,
+                                                   CARDINALITY_COLUMN, n,
                                                    -1);
-                               self->priv->n_files++;
-
                                g_free (k);
                                break;
                        }
@@ -440,8 +447,6 @@ add_file_to_catalog (GthOrganizeTask *self,
                }
                while (gtk_tree_model_iter_next (GTK_TREE_MODEL (self->priv->results_liststore), &iter));
        }
-
-       gth_catalog_insert_file (catalog, file_data->file, -1);
 }
 
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]