From f90236e97e7f47c5b87a8d23e6a4cd3b3660c6f4 Mon Sep 17 00:00:00 2001
From: John Darrington <john@darrington.wattle.id.au>
Date: Sun, 28 Feb 2016 18:53:15 +0100
Subject: [PATCH] Change signal name and signature from "backend-changed" to
 "items-changed"

---
 src/ui/gui/psppire-data-store.c  | 27 ++++++++++++++++-----------
 src/ui/gui/psppire-data-window.c |  2 +-
 src/ui/gui/psppire-dict.c        | 12 ------------
 3 files changed, 17 insertions(+), 24 deletions(-)

diff --git a/src/ui/gui/psppire-data-store.c b/src/ui/gui/psppire-data-store.c
index 1441afa56a..3ad95ccace 100644
--- a/src/ui/gui/psppire-data-store.c
+++ b/src/ui/gui/psppire-data-store.c
@@ -67,7 +67,7 @@ static GObjectClass *parent_class = NULL;
 
 enum
   {
-    BACKEND_CHANGED,
+    ITEMS_CHANGED,
     CASES_DELETED,
     CASE_INSERTED,
     CASE_CHANGED,
@@ -210,15 +210,18 @@ psppire_data_store_class_init (PsppireDataStoreClass *class)
   object_class->finalize = psppire_data_store_finalize;
   object_class->dispose = psppire_data_store_dispose;
 
-  signals [BACKEND_CHANGED] =
-    g_signal_new ("backend-changed",
+    signals [ITEMS_CHANGED] =
+    g_signal_new ("changed",
 		  G_TYPE_FROM_CLASS (class),
 		  G_SIGNAL_RUN_FIRST,
 		  0,
 		  NULL, NULL,
-		  g_cclosure_marshal_VOID__VOID,
+		  psppire_marshal_VOID__UINT_UINT_UINT,
 		  G_TYPE_NONE,
-		  0);
+		  3,
+		  G_TYPE_UINT,
+		  G_TYPE_UINT,
+		  G_TYPE_UINT);
 
   signals [CASE_INSERTED] =
     g_signal_new ("case-inserted",
@@ -385,15 +388,17 @@ psppire_data_store_set_reader (PsppireDataStore *ds,
 			       struct casereader *reader)
 {
   gint i;
-
+  gint old_n = 0;
   if ( ds->datasheet)
-    datasheet_destroy (ds->datasheet);
+    {
+      old_n = datasheet_get_n_rows (ds->datasheet);
+      datasheet_destroy (ds->datasheet);
+    }
 
   ds->datasheet = datasheet_create (reader);
 
-  g_signal_emit_by_name (ds, "notify", 0, 0);
-  g_print ("Datasheet row count %d\n", datasheet_get_n_rows (ds->datasheet));
-
+  gint new_n = datasheet_get_n_rows (ds->datasheet);
+  
   if ( ds->dict )
     for (i = 0 ; i < n_dict_signals; ++i )
       {
@@ -404,7 +409,7 @@ psppire_data_store_set_reader (PsppireDataStore *ds,
 	  }
       }
 
-  g_signal_emit (ds, signals[BACKEND_CHANGED], 0);
+  g_signal_emit (ds, signals[ITEMS_CHANGED], 0, 0, old_n, new_n);
 }
 
 
diff --git a/src/ui/gui/psppire-data-window.c b/src/ui/gui/psppire-data-window.c
index 7917274da5..c2a27c04f4 100644
--- a/src/ui/gui/psppire-data-window.c
+++ b/src/ui/gui/psppire-data-window.c
@@ -1009,7 +1009,7 @@ psppire_data_window_finish_init (PsppireDataWindow *de,
 		    G_CALLBACK (on_split_change),
 		    de);
 
-  g_signal_connect_swapped (de->dict, "backend-changed",
+  g_signal_connect_swapped (de->dict, "changed",
                             G_CALLBACK (enable_save), de);
   g_signal_connect_swapped (de->dict, "variable-inserted",
                             G_CALLBACK (enable_save), de);
diff --git a/src/ui/gui/psppire-dict.c b/src/ui/gui/psppire-dict.c
index a461f4fa37..8558373c85 100644
--- a/src/ui/gui/psppire-dict.c
+++ b/src/ui/gui/psppire-dict.c
@@ -42,7 +42,6 @@
 
 enum  {
   ITEMS_CHANGED,
-  BACKEND_CHANGED,
 
   VARIABLE_CHANGED,
   VARIABLE_INSERTED,
@@ -175,16 +174,6 @@ psppire_dict_class_init (PsppireDictClass *class)
 
   object_class->dispose = psppire_dict_dispose;
 
-  signals [BACKEND_CHANGED] =
-    g_signal_new ("backend-changed",
-		  G_TYPE_FROM_CLASS (class),
-		  G_SIGNAL_RUN_FIRST,
-		  0,
-		  NULL, NULL,
-		  g_cclosure_marshal_VOID__VOID,
-		  G_TYPE_NONE,
-		  0);
-  
   signals [ITEMS_CHANGED] =
     g_signal_new ("changed",
 		  G_TYPE_FROM_CLASS (class),
@@ -388,7 +377,6 @@ psppire_dict_replace_dictionary (PsppireDict *dict, struct dictionary *d)
 
   dict_set_callbacks (dict->dict, &gui_callbacks, dict);
 
-  g_signal_emit (dict, signals [BACKEND_CHANGED], 0);
   g_signal_emit (dict, signals [ITEMS_CHANGED], 0, 0, old_n, new_n);
 }
 
-- 
2.30.2