Catch errors creating icon pixbufs and report them with g_warning.
authorJohn Darrington <john@darrington.wattle.id.au>
Thu, 23 Aug 2007 05:15:15 +0000 (05:15 +0000)
committerJohn Darrington <john@darrington.wattle.id.au>
Thu, 23 Aug 2007 05:15:15 +0000 (05:15 +0000)
po/de.po
po/pspp.pot
src/ui/gui/psppire.c

index ae83b71cab4298b32bad155dccda0279ee704eb0..ba91fb534dfdb18b4a68e51ff807e13a2c17a725 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PSPP 0.4.3\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2007-08-18 08:25+0800\n"
+"POT-Creation-Date: 2007-08-23 13:05+0800\n"
 "PO-Revision-Date: 2006-07-28 19:32+0800\n"
 "Last-Translator: John Darrington <john@darrington.wattle.id.au>\n"
 "Language-Team: German <pspp-dev@gnu.org>\n"
@@ -4243,219 +4243,219 @@ msgstr ""
 msgid "Transformations Pending"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:349
+#: src/ui/gui/data-editor.c:395
 #, fuzzy
 msgid "Labels"
 msgstr "Kennsatz"
 
-#: src/ui/gui/data-editor.c:350
+#: src/ui/gui/data-editor.c:396
 msgid "Show/hide value labels"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:368 src/ui/gui/data-editor.c:385
-#: src/ui/gui/data-editor.c:1660 src/ui/gui/data-editor.c:1713
+#: src/ui/gui/data-editor.c:414 src/ui/gui/data-editor.c:431
+#: src/ui/gui/data-editor.c:1704 src/ui/gui/data-editor.c:1757
 msgid "Clear"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:369
+#: src/ui/gui/data-editor.c:415
 msgid "Delete the cases at the selected position(s)"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:386
+#: src/ui/gui/data-editor.c:432
 msgid "Delete the variables at the selected position(s)"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:400 src/ui/gui/data-editor.c:1657
+#: src/ui/gui/data-editor.c:446 src/ui/gui/data-editor.c:1701
 #: src/ui/gui/data-editor.glade:286 src/ui/gui/data-editor.glade:654
 #, fuzzy
 msgid "Insert Variable"
 msgstr "Variableansicht"
 
-#: src/ui/gui/data-editor.c:401
+#: src/ui/gui/data-editor.c:447
 msgid "Create a new variable at the current position"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:419 src/ui/gui/data-editor.c:1710
+#: src/ui/gui/data-editor.c:465 src/ui/gui/data-editor.c:1754
 #: src/ui/gui/data-editor.glade:642
 #, fuzzy
 msgid "Insert Case"
 msgstr "_Stecken"
 
-#: src/ui/gui/data-editor.c:420
+#: src/ui/gui/data-editor.c:466
 msgid "Create a new case at the current position"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:440
+#: src/ui/gui/data-editor.c:486
 #, fuzzy
 msgid "Goto Case"
 msgstr "_Stecken"
 
-#: src/ui/gui/data-editor.c:441
+#: src/ui/gui/data-editor.c:487
 msgid "Jump to a Case in the Data Sheet"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:460
+#: src/ui/gui/data-editor.c:506
 #, fuzzy
 msgid "Weights"
 msgstr "Rechts"
 
-#: src/ui/gui/data-editor.c:461
+#: src/ui/gui/data-editor.c:507
 msgid "Weight cases by variable"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:470 src/ui/gui/data-editor.glade:323
+#: src/ui/gui/data-editor.c:516 src/ui/gui/data-editor.glade:323
 msgid "Transpose"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:471
+#: src/ui/gui/data-editor.c:517
 msgid "Transpose the cases with the variables"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:482
+#: src/ui/gui/data-editor.c:528
 #, fuzzy
 msgid "Split"
 msgstr "Alle Datei"
 
-#: src/ui/gui/data-editor.c:483
+#: src/ui/gui/data-editor.c:529
 msgid "Split the active file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:493
+#: src/ui/gui/data-editor.c:539
 msgid "Sort"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:494
+#: src/ui/gui/data-editor.c:540
 msgid "Sort cases in the active file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:502 src/ui/gui/data-editor.glade:360
+#: src/ui/gui/data-editor.c:548 src/ui/gui/data-editor.glade:360
 #: src/ui/gui/data-editor.glade:697
 msgid "Select Cases"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:503
+#: src/ui/gui/data-editor.c:549
 msgid "Select cases from the active file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:512
+#: src/ui/gui/data-editor.c:558
 msgid "Compute"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:513
+#: src/ui/gui/data-editor.c:559
 #, fuzzy
 msgid "Compute new values for a variable"
 msgstr "Unpassend Wert für Variable"
 
-#: src/ui/gui/data-editor.c:521
+#: src/ui/gui/data-editor.c:567
 #, fuzzy
 msgid "Data File Comments"
 msgstr "Datei Fehler"
 
-#: src/ui/gui/data-editor.c:522
+#: src/ui/gui/data-editor.c:568
 msgid "Commentary text for the data file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:530 src/ui/gui/data-editor.glade:267
+#: src/ui/gui/data-editor.c:576 src/ui/gui/data-editor.glade:267
 #: src/ui/gui/data-editor.glade:601
 msgid "Variables"
 msgstr "Variableansicht"
 
-#: src/ui/gui/data-editor.c:531
+#: src/ui/gui/data-editor.c:577
 #, fuzzy
 msgid "Jump to Variable"
 msgstr "Variableansicht"
 
-#: src/ui/gui/data-editor.c:928
+#: src/ui/gui/data-editor.c:972
 msgid "Font Selection"
 msgstr "Schriftwahlung"
 
-#: src/ui/gui/data-editor.c:1135
+#: src/ui/gui/data-editor.c:1179
 msgid "No Split"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1144
+#: src/ui/gui/data-editor.c:1188
 #, fuzzy
 msgid "Split by "
 msgstr "Alle Datei"
 
-#: src/ui/gui/data-editor.c:1169
+#: src/ui/gui/data-editor.c:1213
 msgid "Filter off"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1182
+#: src/ui/gui/data-editor.c:1226
 #, c-format
 msgid "Filter by %s"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1200
+#: src/ui/gui/data-editor.c:1244
 msgid "Weights off"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1213
+#: src/ui/gui/data-editor.c:1257
 #, c-format
 msgid "Weight by %s"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1236 src/ui/gui/data-editor.c:1467
+#: src/ui/gui/data-editor.c:1280 src/ui/gui/data-editor.c:1511
 #: src/ui/gui/data-editor.glade:512
 msgid "Open"
 msgstr "Öffen"
 
-#: src/ui/gui/data-editor.c:1237
+#: src/ui/gui/data-editor.c:1281
 msgid "Open a data file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1245 src/ui/gui/data-editor.c:1352
+#: src/ui/gui/data-editor.c:1289 src/ui/gui/data-editor.c:1396
 #: src/ui/gui/data-editor.glade:522
 msgid "Save"
 msgstr "Speichen"
 
-#: src/ui/gui/data-editor.c:1246 src/ui/gui/data-editor.c:1256
+#: src/ui/gui/data-editor.c:1290 src/ui/gui/data-editor.c:1300
 #, fuzzy
 msgid "Save data to file"
 msgstr "Speichern unter"
 
-#: src/ui/gui/data-editor.c:1255
+#: src/ui/gui/data-editor.c:1299
 #, fuzzy
 msgid "Save As"
 msgstr "Speichern unter"
 
-#: src/ui/gui/data-editor.c:1264
+#: src/ui/gui/data-editor.c:1308
 msgid "New"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1265
+#: src/ui/gui/data-editor.c:1309
 msgid "New data file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1360 src/ui/gui/data-editor.c:1475
+#: src/ui/gui/data-editor.c:1404 src/ui/gui/data-editor.c:1519
 msgid "System Files (*.sav)"
 msgstr "Systemedatein (*.sav)"
 
-#: src/ui/gui/data-editor.c:1366 src/ui/gui/data-editor.c:1481
+#: src/ui/gui/data-editor.c:1410 src/ui/gui/data-editor.c:1525
 msgid "Portable Files (*.por) "
 msgstr "Tragbardatein (*.por)"
 
-#: src/ui/gui/data-editor.c:1372 src/ui/gui/data-editor.c:1487
+#: src/ui/gui/data-editor.c:1416 src/ui/gui/data-editor.c:1531
 #: src/ui/gui/syntax-editor.c:138 src/ui/gui/syntax-editor.c:524
 msgid "All Files"
 msgstr "Alle Datei"
 
-#: src/ui/gui/data-editor.c:1380
+#: src/ui/gui/data-editor.c:1424
 #, fuzzy
 msgid "System File"
 msgstr "Systemedatein (*.sav)"
 
-#: src/ui/gui/data-editor.c:1385
+#: src/ui/gui/data-editor.c:1429
 #, fuzzy
 msgid "Portable File"
 msgstr "Tragbardatein (*.por)"
 
-#: src/ui/gui/data-editor.c:1650
+#: src/ui/gui/data-editor.c:1694
 msgid "Sort Ascending"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1653
+#: src/ui/gui/data-editor.c:1697
 msgid "Sort Descending"
 msgstr ""
 
index 15f19e63fac66c3de94fc4c5123bf0be447f226d..e10441d8d78f46b4c3fce83a3a71734dc0bf4e6d 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2007-08-18 08:25+0800\n"
+"POT-Creation-Date: 2007-08-23 13:05+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -4236,205 +4236,205 @@ msgstr ""
 msgid "Transformations Pending"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:349
+#: src/ui/gui/data-editor.c:395
 msgid "Labels"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:350
+#: src/ui/gui/data-editor.c:396
 msgid "Show/hide value labels"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:368 src/ui/gui/data-editor.c:385
-#: src/ui/gui/data-editor.c:1660 src/ui/gui/data-editor.c:1713
+#: src/ui/gui/data-editor.c:414 src/ui/gui/data-editor.c:431
+#: src/ui/gui/data-editor.c:1704 src/ui/gui/data-editor.c:1757
 msgid "Clear"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:369
+#: src/ui/gui/data-editor.c:415
 msgid "Delete the cases at the selected position(s)"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:386
+#: src/ui/gui/data-editor.c:432
 msgid "Delete the variables at the selected position(s)"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:400 src/ui/gui/data-editor.c:1657
+#: src/ui/gui/data-editor.c:446 src/ui/gui/data-editor.c:1701
 #: src/ui/gui/data-editor.glade:286 src/ui/gui/data-editor.glade:654
 msgid "Insert Variable"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:401
+#: src/ui/gui/data-editor.c:447
 msgid "Create a new variable at the current position"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:419 src/ui/gui/data-editor.c:1710
+#: src/ui/gui/data-editor.c:465 src/ui/gui/data-editor.c:1754
 #: src/ui/gui/data-editor.glade:642
 msgid "Insert Case"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:420
+#: src/ui/gui/data-editor.c:466
 msgid "Create a new case at the current position"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:440
+#: src/ui/gui/data-editor.c:486
 msgid "Goto Case"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:441
+#: src/ui/gui/data-editor.c:487
 msgid "Jump to a Case in the Data Sheet"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:460
+#: src/ui/gui/data-editor.c:506
 msgid "Weights"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:461
+#: src/ui/gui/data-editor.c:507
 msgid "Weight cases by variable"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:470 src/ui/gui/data-editor.glade:323
+#: src/ui/gui/data-editor.c:516 src/ui/gui/data-editor.glade:323
 msgid "Transpose"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:471
+#: src/ui/gui/data-editor.c:517
 msgid "Transpose the cases with the variables"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:482
+#: src/ui/gui/data-editor.c:528
 msgid "Split"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:483
+#: src/ui/gui/data-editor.c:529
 msgid "Split the active file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:493
+#: src/ui/gui/data-editor.c:539
 msgid "Sort"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:494
+#: src/ui/gui/data-editor.c:540
 msgid "Sort cases in the active file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:502 src/ui/gui/data-editor.glade:360
+#: src/ui/gui/data-editor.c:548 src/ui/gui/data-editor.glade:360
 #: src/ui/gui/data-editor.glade:697
 msgid "Select Cases"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:503
+#: src/ui/gui/data-editor.c:549
 msgid "Select cases from the active file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:512
+#: src/ui/gui/data-editor.c:558
 msgid "Compute"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:513
+#: src/ui/gui/data-editor.c:559
 msgid "Compute new values for a variable"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:521
+#: src/ui/gui/data-editor.c:567
 msgid "Data File Comments"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:522
+#: src/ui/gui/data-editor.c:568
 msgid "Commentary text for the data file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:530 src/ui/gui/data-editor.glade:267
+#: src/ui/gui/data-editor.c:576 src/ui/gui/data-editor.glade:267
 #: src/ui/gui/data-editor.glade:601
 msgid "Variables"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:531
+#: src/ui/gui/data-editor.c:577
 msgid "Jump to Variable"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:928
+#: src/ui/gui/data-editor.c:972
 msgid "Font Selection"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1135
+#: src/ui/gui/data-editor.c:1179
 msgid "No Split"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1144
+#: src/ui/gui/data-editor.c:1188
 msgid "Split by "
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1169
+#: src/ui/gui/data-editor.c:1213
 msgid "Filter off"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1182
+#: src/ui/gui/data-editor.c:1226
 #, c-format
 msgid "Filter by %s"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1200
+#: src/ui/gui/data-editor.c:1244
 msgid "Weights off"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1213
+#: src/ui/gui/data-editor.c:1257
 #, c-format
 msgid "Weight by %s"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1236 src/ui/gui/data-editor.c:1467
+#: src/ui/gui/data-editor.c:1280 src/ui/gui/data-editor.c:1511
 #: src/ui/gui/data-editor.glade:512
 msgid "Open"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1237
+#: src/ui/gui/data-editor.c:1281
 msgid "Open a data file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1245 src/ui/gui/data-editor.c:1352
+#: src/ui/gui/data-editor.c:1289 src/ui/gui/data-editor.c:1396
 #: src/ui/gui/data-editor.glade:522
 msgid "Save"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1246 src/ui/gui/data-editor.c:1256
+#: src/ui/gui/data-editor.c:1290 src/ui/gui/data-editor.c:1300
 msgid "Save data to file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1255
+#: src/ui/gui/data-editor.c:1299
 msgid "Save As"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1264
+#: src/ui/gui/data-editor.c:1308
 msgid "New"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1265
+#: src/ui/gui/data-editor.c:1309
 msgid "New data file"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1360 src/ui/gui/data-editor.c:1475
+#: src/ui/gui/data-editor.c:1404 src/ui/gui/data-editor.c:1519
 msgid "System Files (*.sav)"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1366 src/ui/gui/data-editor.c:1481
+#: src/ui/gui/data-editor.c:1410 src/ui/gui/data-editor.c:1525
 msgid "Portable Files (*.por) "
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1372 src/ui/gui/data-editor.c:1487
+#: src/ui/gui/data-editor.c:1416 src/ui/gui/data-editor.c:1531
 #: src/ui/gui/syntax-editor.c:138 src/ui/gui/syntax-editor.c:524
 msgid "All Files"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1380
+#: src/ui/gui/data-editor.c:1424
 msgid "System File"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1385
+#: src/ui/gui/data-editor.c:1429
 msgid "Portable File"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1650
+#: src/ui/gui/data-editor.c:1694
 msgid "Sort Ascending"
 msgstr ""
 
-#: src/ui/gui/data-editor.c:1653
+#: src/ui/gui/data-editor.c:1697
 msgid "Sort Descending"
 msgstr ""
 
index 0c60fbd2412f90ba360c5d6d753507a304fedc68..e424e212468e0c0a052e6cb201f395cffa239a8e 100644 (file)
@@ -130,84 +130,54 @@ de_initialize (void)
 }
 
 
-#define PIXBUF_NEW_FROM_FILE(FILE) \
-  gdk_pixbuf_new_from_file (relocate (PKGDATADIR "/" FILE), 0)
-
+struct icon_info
+{
+  const char *file_name;
+  const gchar *id;
+};
+
+
+static const struct icon_info icons[] =
+  {
+    {PKGDATADIR "/value-labels.png",    "pspp-value-labels"},
+    {PKGDATADIR "/weight-cases.png",    "pspp-weight-cases"},
+    {PKGDATADIR "/goto-variable.png",   "pspp-goto-variable"},
+    {PKGDATADIR "/insert-variable.png", "pspp-insert-variable"},
+    {PKGDATADIR "/insert-case.png",     "pspp-insert-case"},
+    {PKGDATADIR "/split-file.png",      "pspp-split-file"},
+    {PKGDATADIR "/select-cases.png",    "pspp-select-cases"},
+    {PKGDATADIR "/recent-dialogs.png",  "pspp-recent-dialogs"},
+    {PKGDATADIR "/nominal.png",         "var-nominal"},
+    {PKGDATADIR "/ordinal.png",         "var-ordinal"},
+    {PKGDATADIR "/scale.png",           "var-scale"},
+    {PKGDATADIR "/string.png",          "var-string"},
+    {PKGDATADIR "/date-scale.png",      "var-date-scale"}
+  };
 
 static void
 create_icon_factory (void)
 {
+  gint i;
   GtkIconFactory *factory = gtk_icon_factory_new ();
 
-  GtkIconSet *icon_set;
-
-  GdkPixbuf *pixbuf;
-
-  pixbuf = PIXBUF_NEW_FROM_FILE ("value-labels.png");
-  icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
-  gtk_icon_factory_add ( factory, "pspp-value-labels", icon_set);
-
-  pixbuf = PIXBUF_NEW_FROM_FILE ("weight-cases.png");
-  icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
-  gtk_icon_factory_add ( factory, "pspp-weight-cases", icon_set);
-
-  pixbuf = PIXBUF_NEW_FROM_FILE ("goto-variable.png");
-  icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
-  gtk_icon_factory_add ( factory, "pspp-goto-variable", icon_set);
-
-  pixbuf = PIXBUF_NEW_FROM_FILE ("insert-variable.png");
-  icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
-  gtk_icon_factory_add ( factory, "pspp-insert-variable", icon_set);
-
-  pixbuf = PIXBUF_NEW_FROM_FILE ("insert-case.png");
-  icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
-  gtk_icon_factory_add ( factory, "pspp-insert-case", icon_set);
-
-  pixbuf = PIXBUF_NEW_FROM_FILE ("split-file.png");
-  icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
-  gtk_icon_factory_add ( factory, "pspp-split-file", icon_set);
-
-  pixbuf = PIXBUF_NEW_FROM_FILE ("select-cases.png");
-  icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
-  gtk_icon_factory_add ( factory, "pspp-select-cases", icon_set);
-
-  pixbuf = PIXBUF_NEW_FROM_FILE ("recent-dialogs.png");
-  icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
-  gtk_icon_factory_add ( factory, "pspp-recent-dialogs", icon_set);
-
-  pixbuf = PIXBUF_NEW_FROM_FILE ("nominal.png");
-  icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
-  gtk_icon_factory_add ( factory, "var-nominal", icon_set);
-
-  pixbuf = PIXBUF_NEW_FROM_FILE ("ordinal.png");
-  icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
-  gtk_icon_factory_add ( factory, "var-ordinal", icon_set);
-
-  pixbuf = PIXBUF_NEW_FROM_FILE ("scale.png");
-  icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
-  gtk_icon_factory_add ( factory, "var-scale", icon_set);
-
-  pixbuf = PIXBUF_NEW_FROM_FILE ("string.png");
-  icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
-  gtk_icon_factory_add ( factory, "var-string", icon_set);
-
-  pixbuf = PIXBUF_NEW_FROM_FILE ("date-scale.png");
-  icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-  g_object_unref (pixbuf);
-  gtk_icon_factory_add ( factory, "var-date-scale", icon_set);
-
+  for (i = 0 ; i < sizeof (icons) / sizeof(icons[0]); ++i)
+    {
+      GError *err = NULL;
+      GdkPixbuf *pixbuf =
+       gdk_pixbuf_new_from_file (relocate (icons[i].file_name), &err);
+
+      if ( pixbuf )
+       {
+         GtkIconSet *icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
+         g_object_unref (pixbuf);
+         gtk_icon_factory_add ( factory, icons[i].id, icon_set);
+       }
+      else
+       {
+         g_warning ("Cannot create icon: %s", err->message);
+         g_clear_error (&err);
+       }
+    }
 
   gtk_icon_factory_add_default (factory);
 }