[seahorse/refactor: 1/32] Use icon theme instead of stock images.



commit c646cf671bc92f7704a12b48d65ecd313daf77bd
Author: Stef Walter <stefw collabora co uk>
Date:   Mon Sep 5 12:40:34 2011 +0200

    Use icon theme instead of stock images.
    
     * Install seahorse icons properly as part of private icon theme.
     * Use GIcon and icon name instead of stock images.
     * Allows us to use custom GLoadableIcon renderers in the future.

 Makefile.am                                        |    3 +-
 configure.ac                                       |    4 -
 data/icons/Makefile.am                             |   20 +-
 .../hicolor_apps_22x22_seahorse-key-personal.png   |  Bin 1118 -> 1118 bytes
 .../icons/hicolor_apps_22x22_seahorse-key-ssh.png  |  Bin 1022 -> 1022 bytes
 .../icons/hicolor_apps_22x22_seahorse-key.png      |  Bin 686 -> 686 bytes
 .../icons/hicolor_apps_22x22_seahorse-person.png   |  Bin 1128 -> 1128 bytes
 .../hicolor_apps_48x48_seahorse-key-personal.png   |  Bin 3181 -> 3181 bytes
 .../icons/hicolor_apps_48x48_seahorse-key-ssh.png  |  Bin 2836 -> 2836 bytes
 .../icons/hicolor_apps_48x48_seahorse-key.png      |  Bin 1794 -> 1794 bytes
 .../icons/hicolor_apps_48x48_seahorse-person.png   |  Bin 2908 -> 2908 bytes
 .../hicolor_status_22x22_seahorse-sign-bad.png     |  Bin 1254 -> 1254 bytes
 .../hicolor_status_22x22_seahorse-sign-ok.png      |  Bin 1197 -> 1197 bytes
 .../icons/hicolor_status_22x22_seahorse-sign.png   |  Bin 1156 -> 1156 bytes
 .../hicolor_status_48x48_seahorse-sign-bad.png     |  Bin 3698 -> 3698 bytes
 .../hicolor_status_48x48_seahorse-sign-ok.png      |  Bin 3476 -> 3476 bytes
 .../hicolor_status_48x48_seahorse-sign-unknown.png |  Bin 3614 -> 3614 bytes
 .../icons/hicolor_status_48x48_seahorse-sign.png   |  Bin 3251 -> 3251 bytes
 .../icons/svg/seahorse-key-22.svg                  |    0
 .../icons/svg/seahorse-key-48.svg                  |    0
 .../icons/svg/seahorse-key-personal-22.svg         |    0
 .../icons/svg/seahorse-key-personal-48.svg         |    0
 .../icons/svg/seahorse-key-ssh-22.svg              |    0
 .../icons/svg/seahorse-key-ssh-48.svg              |    0
 .../icons/svg/seahorse-person-22.svg               |    0
 .../icons/svg/seahorse-person-48.svg               |    0
 .../icons/svg/seahorse-sign-22.svg                 |   32 +-
 .../icons/svg/seahorse-sign-48.svg                 |   32 +-
 .../icons/svg/seahorse-sign-bad-22.svg             |   34 +-
 .../icons/svg/seahorse-sign-bad-48.svg             |   34 +-
 .../icons/svg/seahorse-sign-ok-22.svg              |   62 +-
 .../icons/svg/seahorse-sign-ok-48.svg              |   62 +-
 .../icons/svg/seahorse-sign-unknown-48.svg         |   64 +-
 gkr/Makefile.am                                    |    6 +-
 gkr/seahorse-gkr-item-properties.c                 |    4 +-
 gkr/seahorse-gkr-item.c                            |   18 +-
 gkr/seahorse-gkr-keyring-properties.c              |    4 +-
 gkr/seahorse-gkr-keyring.c                         |   11 +-
 libseahorse/Makefile.am                            |    5 +-
 libseahorse/seahorse-gtkstock.c                    |  229 --
 libseahorse/seahorse-icons.c                       |   48 +
 .../{seahorse-gtkstock.h => seahorse-icons.h}      |   37 +-
 libseahorse/seahorse-object.c                      |   35 +-
 libseahorse/seahorse-object.h                      |    5 +-
 libseahorse/seahorse-prefs.c                       |    2 +-
 libseahorse/seahorse-widget.c                      |    2 +-
 pgp/Makefile.am                                    |    1 -
 pgp/seahorse-gpgme-generate.c                      |    8 +-
 pgp/seahorse-gpgme-key.c                           |    2 +-
 pgp/seahorse-gpgme-sign.c                          |    6 +-
 pgp/seahorse-pgp-key-properties.c                  |   82 +-
 pgp/seahorse-pgp-key.c                             |   13 +-
 pgp/seahorse-pgp-uid.c                             |    2 +-
 pixmaps/.gitignore                                 |    2 -
 pixmaps/22x22/.gitignore                           |    2 -
 pixmaps/22x22/Makefile.am                          |   19 -
 pixmaps/22x22/seahorse-preferences.png             |  Bin 1320 -> 0 bytes
 pixmaps/22x22/seahorse-preferences.svg             | 1428 -----------
 pixmaps/22x22/seahorse.png                         |  Bin 1015 -> 0 bytes
 pixmaps/22x22/seahorse.svg                         | 2648 --------------------
 pixmaps/48x48/.gitignore                           |    2 -
 pixmaps/48x48/Makefile.am                          |   12 -
 pixmaps/48x48/seahorse-preferences.png             |  Bin 3642 -> 0 bytes
 pixmaps/48x48/seahorse.png                         |  Bin 3538 -> 0 bytes
 pixmaps/Makefile.am                                |   14 -
 pixmaps/scalable/.gitignore                        |    2 -
 pixmaps/scalable/Makefile.am                       |   11 -
 pixmaps/scalable/seahorse-preferences.svg          | 1250 ---------
 pixmaps/scalable/seahorse.svg                      | 1209 ---------
 pkcs11/Makefile.am                                 |    1 -
 src/Makefile.am                                    |    3 -
 src/seahorse-generate-select.c                     |   13 +-
 src/seahorse-key-manager-store.c                   |    7 +-
 src/seahorse-main.c                                |    6 +-
 ssh/Makefile.am                                    |    1 -
 ssh/seahorse-ssh-generate.c                        |    4 +-
 ssh/seahorse-ssh-key-properties.c                  |    4 +-
 ssh/seahorse-ssh-key.c                             |   10 +-
 ssh/seahorse-ssh-upload.c                          |    2 +-
 79 files changed, 374 insertions(+), 7143 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index e60a351..704af37 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -29,8 +29,7 @@ SUBDIRS = libegg \
 	src \
 	po \
 	data \
-	help \
-	pixmaps
+	help
 
 EXTRA_DIST = \
     AUTHORS \
diff --git a/configure.ac b/configure.ac
index d1ca6c5..b33a378 100644
--- a/configure.ac
+++ b/configure.ac
@@ -553,10 +553,6 @@ po/Makefile.in
 help/Makefile
 data/Makefile
 data/icons/Makefile
-pixmaps/Makefile
-pixmaps/22x22/Makefile
-pixmaps/48x48/Makefile
-pixmaps/scalable/Makefile
 pkcs11/Makefile
 src/Makefile
 src/seahorse.desktop.in
diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am
index 6e79e4d..47509c3 100644
--- a/data/icons/Makefile.am
+++ b/data/icons/Makefile.am
@@ -1,4 +1,5 @@
 NULL =
+pkgdatadir = $(datadir)/seahorse
 
 public_icons = \
 	hicolor_apps_16x16_seahorse.png \
@@ -15,6 +16,21 @@ public_icons = \
 	$(NULL)
 
 private_icons = \
+	hicolor_apps_22x22_seahorse-key.png \
+	hicolor_apps_22x22_seahorse-key-personal.png \
+	hicolor_apps_22x22_seahorse-key-ssh.png \
+	hicolor_apps_22x22_seahorse-person.png \
+	hicolor_apps_48x48_seahorse-key.png \
+	hicolor_apps_48x48_seahorse-key-personal.png \
+	hicolor_apps_48x48_seahorse-key-ssh.png \
+	hicolor_apps_48x48_seahorse-person.png \
+	hicolor_status_22x22_seahorse-sign.png \
+	hicolor_status_22x22_seahorse-sign-bad.png \
+	hicolor_status_22x22_seahorse-sign-ok.png \
+	hicolor_status_48x48_seahorse-sign.png \
+	hicolor_status_48x48_seahorse-sign-bad.png \
+	hicolor_status_48x48_seahorse-sign-ok.png \
+	hicolor_status_48x48_seahorse-sign-unknown.png \
 	$(NULL)
 
 noinst_DATA = \
@@ -54,7 +70,7 @@ install-icons:
 		SIZE=`echo $$icon | cut -d_ -f3`; \
 		ICONFILE=`echo $$icon | cut -d_ -f4`; \
 		mkdir -p $(DESTDIR)$(pkgdatadir)/$(BASE_VERSION)/icons/$$THEME/$$SIZE/$$CONTEXT; \
-		$(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/$(BASE_VERSION)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \
+		$(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \
 	done
 
 uninstall-icons:
@@ -70,7 +86,7 @@ uninstall-icons:
 		CONTEXT=`echo $$icon | cut -d_ -f2`; \
 		SIZE=`echo $$icon | cut -d_ -f3`; \
 		ICONFILE=`echo $$icon | cut -d_ -f4`; \
-		rm -f $(DESTDIR)$(pkgdatadir)/$(BASE_VERSION)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \
+		rm -f $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \
 	done
 
 install-data-local: install-icons update-icon-cache
diff --git a/pixmaps/22x22/seahorse-key-personal.png b/data/icons/hicolor_apps_22x22_seahorse-key-personal.png
similarity index 100%
rename from pixmaps/22x22/seahorse-key-personal.png
rename to data/icons/hicolor_apps_22x22_seahorse-key-personal.png
diff --git a/pixmaps/22x22/seahorse-key-ssh.png b/data/icons/hicolor_apps_22x22_seahorse-key-ssh.png
similarity index 100%
rename from pixmaps/22x22/seahorse-key-ssh.png
rename to data/icons/hicolor_apps_22x22_seahorse-key-ssh.png
diff --git a/pixmaps/22x22/seahorse-key.png b/data/icons/hicolor_apps_22x22_seahorse-key.png
similarity index 100%
rename from pixmaps/22x22/seahorse-key.png
rename to data/icons/hicolor_apps_22x22_seahorse-key.png
diff --git a/pixmaps/22x22/seahorse-person.png b/data/icons/hicolor_apps_22x22_seahorse-person.png
similarity index 100%
rename from pixmaps/22x22/seahorse-person.png
rename to data/icons/hicolor_apps_22x22_seahorse-person.png
diff --git a/pixmaps/48x48/seahorse-key-personal.png b/data/icons/hicolor_apps_48x48_seahorse-key-personal.png
similarity index 100%
rename from pixmaps/48x48/seahorse-key-personal.png
rename to data/icons/hicolor_apps_48x48_seahorse-key-personal.png
diff --git a/pixmaps/48x48/seahorse-key-ssh.png b/data/icons/hicolor_apps_48x48_seahorse-key-ssh.png
similarity index 100%
rename from pixmaps/48x48/seahorse-key-ssh.png
rename to data/icons/hicolor_apps_48x48_seahorse-key-ssh.png
diff --git a/pixmaps/48x48/seahorse-key.png b/data/icons/hicolor_apps_48x48_seahorse-key.png
similarity index 100%
rename from pixmaps/48x48/seahorse-key.png
rename to data/icons/hicolor_apps_48x48_seahorse-key.png
diff --git a/pixmaps/48x48/seahorse-person.png b/data/icons/hicolor_apps_48x48_seahorse-person.png
similarity index 100%
rename from pixmaps/48x48/seahorse-person.png
rename to data/icons/hicolor_apps_48x48_seahorse-person.png
diff --git a/pixmaps/22x22/seahorse-sign-bad.png b/data/icons/hicolor_status_22x22_seahorse-sign-bad.png
similarity index 100%
rename from pixmaps/22x22/seahorse-sign-bad.png
rename to data/icons/hicolor_status_22x22_seahorse-sign-bad.png
diff --git a/pixmaps/22x22/seahorse-sign-ok.png b/data/icons/hicolor_status_22x22_seahorse-sign-ok.png
similarity index 100%
rename from pixmaps/22x22/seahorse-sign-ok.png
rename to data/icons/hicolor_status_22x22_seahorse-sign-ok.png
diff --git a/pixmaps/22x22/seahorse-sign.png b/data/icons/hicolor_status_22x22_seahorse-sign.png
similarity index 100%
rename from pixmaps/22x22/seahorse-sign.png
rename to data/icons/hicolor_status_22x22_seahorse-sign.png
diff --git a/pixmaps/48x48/seahorse-sign-bad.png b/data/icons/hicolor_status_48x48_seahorse-sign-bad.png
similarity index 100%
rename from pixmaps/48x48/seahorse-sign-bad.png
rename to data/icons/hicolor_status_48x48_seahorse-sign-bad.png
diff --git a/pixmaps/48x48/seahorse-sign-ok.png b/data/icons/hicolor_status_48x48_seahorse-sign-ok.png
similarity index 100%
rename from pixmaps/48x48/seahorse-sign-ok.png
rename to data/icons/hicolor_status_48x48_seahorse-sign-ok.png
diff --git a/pixmaps/48x48/seahorse-sign-unknown.png b/data/icons/hicolor_status_48x48_seahorse-sign-unknown.png
similarity index 100%
rename from pixmaps/48x48/seahorse-sign-unknown.png
rename to data/icons/hicolor_status_48x48_seahorse-sign-unknown.png
diff --git a/pixmaps/48x48/seahorse-sign.png b/data/icons/hicolor_status_48x48_seahorse-sign.png
similarity index 100%
rename from pixmaps/48x48/seahorse-sign.png
rename to data/icons/hicolor_status_48x48_seahorse-sign.png
diff --git a/pixmaps/22x22/seahorse-key.svg b/data/icons/svg/seahorse-key-22.svg
similarity index 100%
rename from pixmaps/22x22/seahorse-key.svg
rename to data/icons/svg/seahorse-key-22.svg
diff --git a/pixmaps/scalable/seahorse-key.svg b/data/icons/svg/seahorse-key-48.svg
similarity index 100%
rename from pixmaps/scalable/seahorse-key.svg
rename to data/icons/svg/seahorse-key-48.svg
diff --git a/pixmaps/22x22/seahorse-key-personal.svg b/data/icons/svg/seahorse-key-personal-22.svg
similarity index 100%
rename from pixmaps/22x22/seahorse-key-personal.svg
rename to data/icons/svg/seahorse-key-personal-22.svg
diff --git a/pixmaps/scalable/seahorse-key-personal.svg b/data/icons/svg/seahorse-key-personal-48.svg
similarity index 100%
rename from pixmaps/scalable/seahorse-key-personal.svg
rename to data/icons/svg/seahorse-key-personal-48.svg
diff --git a/pixmaps/22x22/seahorse-key-ssh.svg b/data/icons/svg/seahorse-key-ssh-22.svg
similarity index 100%
rename from pixmaps/22x22/seahorse-key-ssh.svg
rename to data/icons/svg/seahorse-key-ssh-22.svg
diff --git a/pixmaps/scalable/seahorse-key-ssh.svg b/data/icons/svg/seahorse-key-ssh-48.svg
similarity index 100%
rename from pixmaps/scalable/seahorse-key-ssh.svg
rename to data/icons/svg/seahorse-key-ssh-48.svg
diff --git a/pixmaps/22x22/seahorse-person.svg b/data/icons/svg/seahorse-person-22.svg
similarity index 100%
rename from pixmaps/22x22/seahorse-person.svg
rename to data/icons/svg/seahorse-person-22.svg
diff --git a/pixmaps/scalable/seahorse-person.svg b/data/icons/svg/seahorse-person-48.svg
similarity index 100%
rename from pixmaps/scalable/seahorse-person.svg
rename to data/icons/svg/seahorse-person-48.svg
diff --git a/pixmaps/22x22/seahorse-sign.svg b/data/icons/svg/seahorse-sign-22.svg
similarity index 99%
rename from pixmaps/22x22/seahorse-sign.svg
rename to data/icons/svg/seahorse-sign-22.svg
index 7a0ce4c..3c8e5bd 100644
--- a/pixmaps/22x22/seahorse-sign.svg
+++ b/data/icons/svg/seahorse-sign-22.svg
@@ -156,10 +156,10 @@
 
 
 
-		
-	
-			
-			
+
+
+
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="20.971201"
@@ -186,7 +186,7 @@
 
 
 
-			
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="13.5444"
@@ -213,11 +213,11 @@
 
 
 
-			
-			
-			
-			
-			
+
+
+
+
+
 			<linearGradient
    y2="16.723101"
    x2="23.412001"
@@ -243,9 +243,9 @@
 
 
 
-			
-			
-			
+
+
+
 		<linearGradient
    gradientTransform="matrix(1.135551,0,0,1.135551,-3.259995,-3.266773)"
    y2="16.723101"
@@ -285,7 +285,7 @@
 
 
 
-				
+
 			<linearGradient
    gradientUnits="userSpaceOnUse"
    y2="49.895073"
@@ -383,7 +383,7 @@
 
 
 
-	
+
 
 <path
    style="opacity:0.48044691;color:#000000;fill:url(#radialGradient6675);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
@@ -433,7 +433,7 @@
 
 
 
-	
+
 <path
    style="fill:none;fill-rule:nonzero;stroke:url(#linearGradient6610);stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
    d="M 33.888971,10.030124 C 35.042232,12.698211 37.068232,12.56246 37.118338,16.123571 C 37.146913,18.109565 38.71747,19.152392 38.71747,21.181157 C 38.71747,23.209922 35.213679,24.212359 34.020288,25.405749 C 32.826895,26.599143 34.114436,29.659526 30.876896,30.558842 C 27.670121,31.449613 26.103329,30.200827 24.074563,30.200827 C 22.045797,30.200827 17.191084,34.112744 15.400995,32.322655 C 13.610908,30.532568 13.572716,26.620651 12.021307,25.069242 C 10.350558,23.398493 7.7107989,21.064201 7.7107989,18.080722 C 7.7107989,15.097243 9.4336334,13.522243 11.901968,10.748543 C 14.448666,7.8867861 14.52743,3.5881928 17.510909,3.5881928 C 20.494388,3.5881928 21.637935,4.4065934 24.177221,4.3424188 C 28.224968,4.2401214 28.720998,2.3149204 31.697971,3.8244879 C 34.32271,5.1554433 32.986173,7.9414875 33.888971,10.030124 z "
diff --git a/pixmaps/scalable/seahorse-sign.svg b/data/icons/svg/seahorse-sign-48.svg
similarity index 99%
rename from pixmaps/scalable/seahorse-sign.svg
rename to data/icons/svg/seahorse-sign-48.svg
index 77e2c6e..8351650 100644
--- a/pixmaps/scalable/seahorse-sign.svg
+++ b/data/icons/svg/seahorse-sign-48.svg
@@ -153,10 +153,10 @@
 
 
 
-		
-	
-			
-			
+
+
+
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="20.971201"
@@ -183,7 +183,7 @@
 
 
 
-			
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="13.544400"
@@ -210,11 +210,11 @@
 
 
 
-			
-			
-			
-			
-			
+
+
+
+
+
 			<linearGradient
    y2="16.723101"
    x2="23.412001"
@@ -240,9 +240,9 @@
 
 
 
-			
-			
-			
+
+
+
 		<linearGradient
    gradientTransform="matrix(1.135551,0.000000,0.000000,1.135551,-3.259995,-3.266773)"
    y2="16.7231"
@@ -282,7 +282,7 @@
 
 
 
-				
+
 			<linearGradient
    gradientUnits="userSpaceOnUse"
    y2="49.895073"
@@ -378,7 +378,7 @@
 
 
 
-	
+
 
 <path
    style="opacity:0.48044690;color:#000000;fill:url(#radialGradient6675);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible"
@@ -428,7 +428,7 @@
 
 
 
-	
+
 <path
    style="fill:none;fill-rule:nonzero;stroke:url(#linearGradient6610);stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
    d="M 33.888971,10.030124 C 35.042232,12.698211 37.068232,12.562460 37.118338,16.123571 C 37.146913,18.109565 38.717470,19.152392 38.717470,21.181157 C 38.717470,23.209922 35.213679,24.212359 34.020288,25.405749 C 32.826895,26.599143 34.114436,29.659526 30.876896,30.558842 C 27.670121,31.449613 26.103329,30.200827 24.074563,30.200827 C 22.045797,30.200827 17.191084,34.112744 15.400995,32.322655 C 13.610908,30.532568 13.572716,26.620651 12.021307,25.069242 C 10.350558,23.398493 7.7107989,21.064201 7.7107989,18.080722 C 7.7107989,15.097243 9.4336334,13.522243 11.901968,10.748543 C 14.448666,7.8867861 14.527430,3.5881928 17.510909,3.5881928 C 20.494388,3.5881928 21.637935,4.4065934 24.177221,4.3424188 C 28.224968,4.2401214 28.720998,2.3149204 31.697971,3.8244879 C 34.322710,5.1554433 32.986173,7.9414875 33.888971,10.030124 z "
diff --git a/pixmaps/22x22/seahorse-sign-bad.svg b/data/icons/svg/seahorse-sign-bad-22.svg
similarity index 99%
rename from pixmaps/22x22/seahorse-sign-bad.svg
rename to data/icons/svg/seahorse-sign-bad-22.svg
index 8f7d849..c51d5e4 100644
--- a/pixmaps/22x22/seahorse-sign-bad.svg
+++ b/data/icons/svg/seahorse-sign-bad-22.svg
@@ -154,10 +154,10 @@
 
 
 
-		
-	
-			
-			
+
+
+
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="20.971201"
@@ -184,7 +184,7 @@
 
 
 
-			
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="13.5444"
@@ -211,11 +211,11 @@
 
 
 
-			
-			
-			
-			
-			
+
+
+
+
+
 			<linearGradient
    y2="16.723101"
    x2="23.412001"
@@ -241,9 +241,9 @@
 
 
 
-			
-			
-			
+
+
+
 		<linearGradient
    gradientTransform="matrix(1.135551,0,0,1.135551,-3.259995,-3.266773)"
    y2="16.723101"
@@ -273,8 +273,8 @@
 
 
 
-				
-			
+
+
 
 
 
@@ -501,7 +501,6 @@
 
 
 
-	
 
 
 
@@ -530,7 +529,8 @@
 
 
 
-	
+
+
 
 
 <g
diff --git a/pixmaps/scalable/seahorse-sign-bad.svg b/data/icons/svg/seahorse-sign-bad-48.svg
similarity index 99%
rename from pixmaps/scalable/seahorse-sign-bad.svg
rename to data/icons/svg/seahorse-sign-bad-48.svg
index 3dfd774..feddf3f 100644
--- a/pixmaps/scalable/seahorse-sign-bad.svg
+++ b/data/icons/svg/seahorse-sign-bad-48.svg
@@ -153,10 +153,10 @@
 
 
 
-		
-	
-			
-			
+
+
+
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="20.971201"
@@ -183,7 +183,7 @@
 
 
 
-			
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="13.544400"
@@ -210,11 +210,11 @@
 
 
 
-			
-			
-			
-			
-			
+
+
+
+
+
 			<linearGradient
    y2="16.723101"
    x2="23.412001"
@@ -240,9 +240,9 @@
 
 
 
-			
-			
-			
+
+
+
 		<linearGradient
    gradientTransform="matrix(1.135551,0.000000,0.000000,1.135551,-3.259995,-3.266773)"
    y2="16.7231"
@@ -272,8 +272,8 @@
 
 
 
-				
-			
+
+
 
 
 
@@ -499,7 +499,6 @@
 
 
 
-	
 
 
 
@@ -528,7 +527,8 @@
 
 
 
-	
+
+
 
 
 <g
diff --git a/pixmaps/22x22/seahorse-sign-ok.svg b/data/icons/svg/seahorse-sign-ok-22.svg
similarity index 99%
rename from pixmaps/22x22/seahorse-sign-ok.svg
rename to data/icons/svg/seahorse-sign-ok-22.svg
index 456f179..79dd8b4 100644
--- a/pixmaps/22x22/seahorse-sign-ok.svg
+++ b/data/icons/svg/seahorse-sign-ok-22.svg
@@ -154,10 +154,10 @@
 
 
 
-		
-	
-			
-			
+
+
+
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="20.971201"
@@ -184,7 +184,7 @@
 
 
 
-			
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="13.5444"
@@ -211,11 +211,11 @@
 
 
 
-			
-			
-			
-			
-			
+
+
+
+
+
 			<linearGradient
    y2="16.723101"
    x2="23.412001"
@@ -241,9 +241,9 @@
 
 
 
-			
-			
-			
+
+
+
 		<linearGradient
    gradientTransform="matrix(1.135551,0,0,1.135551,-3.259995,-3.266773)"
    y2="16.723101"
@@ -283,7 +283,7 @@
 
 
 
-				
+
 			<linearGradient
    gradientUnits="userSpaceOnUse"
    y2="49.895073"
@@ -437,8 +437,8 @@
 
 
 
-				
-			
+
+
 
 
 
@@ -471,9 +471,9 @@
 
 
 
-			
-			
-			
+
+
+
 		<linearGradient
    id="linearGradient1487"
    gradientUnits="userSpaceOnUse"
@@ -499,11 +499,11 @@
 
 
 
-			
-			
-			
-			
-			
+
+
+
+
+
 			<radialGradient
    id="radialGradient1481"
    cx="19.292"
@@ -530,7 +530,7 @@
 
 
 
-			
+
 			<radialGradient
    id="radialGradient1475"
    cx="28.789101"
@@ -557,10 +557,10 @@
 
 
 
-		
-	
-			
-			
+
+
+
+
 			<linearGradient
    inkscape:collect="always"
    xlink:href="#aigrd3"
@@ -683,7 +683,7 @@
 
 
 
-	
+
 
 
 <path
@@ -732,7 +732,7 @@
 
 
 
-	
+
 <path
    style="fill:none;fill-rule:nonzero;stroke:url(#linearGradient6610);stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
    d="M 35.559863,13.695887 C 36.940519,16.890056 39.365998,16.727539 39.425983,20.990815 C 39.460193,23.3684 41.340426,24.616847 41.340426,27.045636 C 41.340426,29.474425 37.145771,30.674518 35.717072,32.103216 C 34.288371,33.531919 35.829784,37.195736 31.953879,38.272376 C 28.114804,39.338785 26.239079,37.843769 23.810289,37.843769 C 21.381498,37.843769 15.569552,42.527022 13.426501,40.38397 C 11.283452,38.240921 11.237729,33.557668 9.3804202,31.700358 C 7.3802395,29.700178 4.2199832,26.905619 4.2199832,23.33387 C 4.2199832,19.76212 6.2825193,17.876568 9.2375503,14.555961 C 12.286395,11.129934 12.38069,5.9837607 15.952439,5.9837607 C 19.524189,5.9837607 20.893216,6.9635303 23.933188,6.886702 C 28.779054,6.764234 29.372889,4.4594295 32.93685,6.2666475 C 36.079124,7.8600354 34.479054,11.195421 35.559863,13.695887 z "
diff --git a/pixmaps/scalable/seahorse-sign-ok.svg b/data/icons/svg/seahorse-sign-ok-48.svg
similarity index 99%
rename from pixmaps/scalable/seahorse-sign-ok.svg
rename to data/icons/svg/seahorse-sign-ok-48.svg
index 8be5c9d..ed71f9b 100644
--- a/pixmaps/scalable/seahorse-sign-ok.svg
+++ b/data/icons/svg/seahorse-sign-ok-48.svg
@@ -153,10 +153,10 @@
 
 
 
-		
-	
-			
-			
+
+
+
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="20.971201"
@@ -183,7 +183,7 @@
 
 
 
-			
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="13.544400"
@@ -210,11 +210,11 @@
 
 
 
-			
-			
-			
-			
-			
+
+
+
+
+
 			<linearGradient
    y2="16.723101"
    x2="23.412001"
@@ -240,9 +240,9 @@
 
 
 
-			
-			
-			
+
+
+
 		<linearGradient
    gradientTransform="matrix(1.135551,0.000000,0.000000,1.135551,-3.259995,-3.266773)"
    y2="16.7231"
@@ -282,7 +282,7 @@
 
 
 
-				
+
 			<linearGradient
    gradientUnits="userSpaceOnUse"
    y2="49.895073"
@@ -436,8 +436,8 @@
 
 
 
-				
-			
+
+
 
 
 
@@ -470,9 +470,9 @@
 
 
 
-			
-			
-			
+
+
+
 		<linearGradient
    id="linearGradient1487"
    gradientUnits="userSpaceOnUse"
@@ -498,11 +498,11 @@
 
 
 
-			
-			
-			
-			
-			
+
+
+
+
+
 			<radialGradient
    id="radialGradient1481"
    cx="19.292000"
@@ -529,7 +529,7 @@
 
 
 
-			
+
 			<radialGradient
    id="radialGradient1475"
    cx="28.789101"
@@ -556,10 +556,10 @@
 
 
 
-		
-	
-			
-			
+
+
+
+
 			<linearGradient
    inkscape:collect="always"
    xlink:href="#aigrd3"
@@ -681,7 +681,7 @@
 
 
 
-	
+
 
 
 <path
@@ -721,7 +721,7 @@
 
 
 
-	
+
 <path
    style="fill:none;fill-rule:nonzero;stroke:url(#linearGradient6610);stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
    d="M 35.559863,13.695887 C 36.940519,16.890056 39.365998,16.727539 39.425983,20.990815 C 39.460193,23.368400 41.340426,24.616847 41.340426,27.045636 C 41.340426,29.474425 37.145771,30.674518 35.717072,32.103216 C 34.288371,33.531919 35.829784,37.195736 31.953879,38.272376 C 28.114804,39.338785 26.239079,37.843769 23.810289,37.843769 C 21.381498,37.843769 15.569552,42.527022 13.426501,40.383970 C 11.283452,38.240921 11.237729,33.557668 9.3804202,31.700358 C 7.3802395,29.700178 4.2199832,26.905619 4.2199832,23.333870 C 4.2199832,19.762120 6.2825193,17.876568 9.2375503,14.555961 C 12.286395,11.129934 12.380690,5.9837607 15.952439,5.9837607 C 19.524189,5.9837607 20.893216,6.9635303 23.933188,6.8867020 C 28.779054,6.7642340 29.372889,4.4594295 32.936850,6.2666475 C 36.079124,7.8600354 34.479054,11.195421 35.559863,13.695887 z "
diff --git a/pixmaps/scalable/seahorse-sign-unknown.svg b/data/icons/svg/seahorse-sign-unknown-48.svg
similarity index 99%
rename from pixmaps/scalable/seahorse-sign-unknown.svg
rename to data/icons/svg/seahorse-sign-unknown-48.svg
index 3e51fb2..b5fc739 100644
--- a/pixmaps/scalable/seahorse-sign-unknown.svg
+++ b/data/icons/svg/seahorse-sign-unknown-48.svg
@@ -153,10 +153,10 @@
 
 
 
-		
-	
-			
-			
+
+
+
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="20.971201"
@@ -183,7 +183,7 @@
 
 
 
-			
+
 			<radialGradient
    gradientUnits="userSpaceOnUse"
    fy="13.544400"
@@ -210,11 +210,11 @@
 
 
 
-			
-			
-			
-			
-			
+
+
+
+
+
 			<linearGradient
    y2="16.723101"
    x2="23.412001"
@@ -240,9 +240,9 @@
 
 
 
-			
-			
-			
+
+
+
 		<linearGradient
    gradientTransform="matrix(1.135551,0.000000,0.000000,1.135551,-3.259995,-3.266773)"
    y2="16.7231"
@@ -272,8 +272,8 @@
 
 
 
-				
-			
+
+
 
 
 
@@ -858,8 +858,8 @@
 
 
 
-				
-			
+
+
 
 
 
@@ -892,9 +892,9 @@
 
 
 
-			
-			
-			
+
+
+
 		<linearGradient
    id="linearGradient1672"
    gradientUnits="userSpaceOnUse"
@@ -920,11 +920,11 @@
 
 
 
-			
-			
-			
-			
-			
+
+
+
+
+
 			<radialGradient
    id="radialGradient1666"
    cx="19.292000"
@@ -951,7 +951,7 @@
 
 
 
-			
+
 			<radialGradient
    id="radialGradient1660"
    cx="28.789101"
@@ -978,10 +978,10 @@
 
 
 
-		
-	
-			
-			
+
+
+
+
 			<linearGradient
    inkscape:collect="always"
    xlink:href="#aigrd3"
@@ -1200,7 +1200,6 @@
 
 
 
-	
 
 
 
@@ -1229,7 +1228,8 @@
 
 
 
-	
+
+
 
 
 <g
diff --git a/gkr/Makefile.am b/gkr/Makefile.am
index 42ba1d5..3576e47 100644
--- a/gkr/Makefile.am
+++ b/gkr/Makefile.am
@@ -1,5 +1,6 @@
 
-uidir = $(datadir)/seahorse/ui/
+pkgdatadir = $(datadir)/seahorse
+uidir = $(pkgdatadir)/ui
 localedir = $(datadir)/locale
 seahorselibexecbindir = $(libdir)/seahorse/
 
@@ -7,8 +8,7 @@ INCLUDES = -I$(top_builddir) \
 	-I$(top_srcdir) \
 	-I$(top_srcdir)/libseahorse \
 	$(SEAHORSE_CFLAGS) \
-	-DDATA_DIR=\""$(datadir)"\" \
-	-DSEAHORSE_UIDIR=\""$(uidir)"\" \
+	-DSEAHORSE_UIDIR=\""$(uidir)/"\" \
 	-DLOCALEDIR=\"$(localedir)\" \
 	-DEXECDIR=\""$(seahorselibexecbindir)"\" \
 	-DGETTEXT_PACKAGE=\""seahorse\""
diff --git a/gkr/seahorse-gkr-item-properties.c b/gkr/seahorse-gkr-item-properties.c
index b8a300a..91fcc0d 100644
--- a/gkr/seahorse-gkr-item-properties.c
+++ b/gkr/seahorse-gkr-item-properties.c
@@ -29,7 +29,7 @@
 #include "seahorse-gkr-operation.h"
 
 #include "seahorse-bind.h"
-#include "seahorse-gtkstock.h"
+#include "seahorse-icons.h"
 #include "seahorse-object.h"
 #include "seahorse-object-widget.h"
 #include "seahorse-progress.h"
@@ -400,7 +400,7 @@ setup_main (SeahorseWidget *swidget)
 	object = SEAHORSE_OBJECT_WIDGET (swidget)->object;
 
 	/* Setup the image properly */
-	seahorse_bind_property ("icon", object, "stock", 
+	seahorse_bind_property ("icon", object, "gicon",
 	                        seahorse_widget_get_widget (swidget, "key-image"));
 	
 	/* Setup the label properly */
diff --git a/gkr/seahorse-gkr-item.c b/gkr/seahorse-gkr-item.c
index 6d1886a..8dc61a9 100644
--- a/gkr/seahorse-gkr-item.c
+++ b/gkr/seahorse-gkr-item.c
@@ -27,8 +27,8 @@
 #include <glib/gi18n.h>
 
 #include "seahorse-context.h"
+#include "seahorse-icons.h"
 #include "seahorse-source.h"
-#include "seahorse-gtkstock.h"
 #include "seahorse-util.h"
 #include "seahorse-secure-memory.h"
 
@@ -418,7 +418,8 @@ seahorse_gkr_item_realize (SeahorseGkrItem *self)
 	gchar *display;
 	gchar *markup;
 	gchar *identifier;
-	const gchar *icon;
+	const gchar *icon_name;
+	GIcon *icon;
 
 	display = calc_display_name (self, TRUE);
 	markup = calc_name_markup(self);
@@ -428,19 +429,20 @@ seahorse_gkr_item_realize (SeahorseGkrItem *self)
 	switch (calc_item_type (self))
 	{
 	case GNOME_KEYRING_ITEM_GENERIC_SECRET:
-		icon = GNOME_STOCK_AUTHENTICATION;
+		icon_name = GNOME_STOCK_AUTHENTICATION;
 		break;
 	case GNOME_KEYRING_ITEM_NETWORK_PASSWORD:
-		icon = is_network_item (self, "http") ? SEAHORSE_THEMED_WEBBROWSER : GTK_STOCK_NETWORK;
+		icon_name = is_network_item (self, "http") ? SEAHORSE_ICON_WEBBROWSER : GTK_STOCK_NETWORK;
 		break;
 	case GNOME_KEYRING_ITEM_NOTE:
-		icon = GNOME_STOCK_BOOK_OPEN;
+		icon_name = GNOME_STOCK_BOOK_OPEN;
 		break;
 	default:
-		icon = GNOME_STOCK_BLANK;
+		icon_name = GNOME_STOCK_BLANK;
 		break;
 	}
-	
+
+	icon = g_themed_icon_new (icon_name);
 	g_object_set (self,
 		      "label", display,
 		      "icon", icon,
@@ -448,7 +450,7 @@ seahorse_gkr_item_realize (SeahorseGkrItem *self)
 		      "identifier", identifier,
 		      "flags", SEAHORSE_FLAG_DELETABLE,
 		      NULL);
-	
+	g_object_unref (icon);
 	g_free (display);
 	g_free (markup);
 	g_free (identifier);
diff --git a/gkr/seahorse-gkr-keyring-properties.c b/gkr/seahorse-gkr-keyring-properties.c
index 1bd3052..41c644d 100644
--- a/gkr/seahorse-gkr-keyring-properties.c
+++ b/gkr/seahorse-gkr-keyring-properties.c
@@ -26,7 +26,7 @@
 #include <glib/gi18n.h>
 
 #include "seahorse-bind.h"
-#include "seahorse-gtkstock.h"
+#include "seahorse-icons.h"
 #include "seahorse-object.h"
 #include "seahorse-object-widget.h"
 #include "seahorse-util.h"
@@ -65,7 +65,7 @@ setup_main (SeahorseWidget *swidget)
 	object = SEAHORSE_OBJECT_WIDGET (swidget)->object;
 
 	/* Setup the image properly */
-	seahorse_bind_property ("icon", object, "stock", 
+	seahorse_bind_property ("icon", object, "gicon",
 	                        seahorse_widget_get_widget (swidget, "keyring-image"));
 
 	/* The window title */
diff --git a/gkr/seahorse-gkr-keyring.c b/gkr/seahorse-gkr-keyring.c
index 6d70899..a7d365f 100644
--- a/gkr/seahorse-gkr-keyring.c
+++ b/gkr/seahorse-gkr-keyring.c
@@ -116,20 +116,23 @@ void
 seahorse_gkr_keyring_realize (SeahorseGkrKeyring *self)
 {
 	gchar *name, *markup;
-	
+	GIcon *icon;
+
 	name = g_strdup_printf (_("Passwords: %s"), self->pv->keyring_name);
 	markup = g_markup_printf_escaped (_("<b>Passwords:</b> %s"), self->pv->keyring_name);
-	
+	icon = g_themed_icon_new ("folder");
+
 	g_object_set (self,
 	              "label", name,
 	              "markup", markup,
 	              "nickname", self->pv->keyring_name,
 	              "identifier", "",
 	              "flags", SEAHORSE_FLAG_DELETABLE,
-	              "icon", "folder",
+	              "icon", icon,
 	              "usage", SEAHORSE_USAGE_OTHER,
 	              NULL);
-	
+
+	g_object_unref (icon);
 	g_free (name);
 	g_free (markup);
 }
diff --git a/libseahorse/Makefile.am b/libseahorse/Makefile.am
index 73346ea..421462d 100644
--- a/libseahorse/Makefile.am
+++ b/libseahorse/Makefile.am
@@ -1,16 +1,15 @@
 
 uidir = $(datadir)/seahorse/ui/
 localedir = $(datadir)/locale
-pixmapsdir = $(datadir)/pixmaps/seahorse/
 seahorselibexecbindir = $(libdir)/seahorse/
 
 INCLUDES = -I$(top_builddir) \
 	-I$(top_srcdir) \
 	$(SEAHORSE_CFLAGS) \
+	-DPKGDATADIR=\""$(pkgdatadir)/"\" \
 	-DDATA_DIR=\""$(datadir)"\" \
 	-DSEAHORSE_UIDIR=\""$(uidir)"\" \
 	-DLOCALEDIR=\"$(localedir)\" \
-	-DPIXMAPSDIR=\""$(pixmapsdir)"\" \
 	-DEXECDIR=\""$(seahorselibexecbindir)"\"
 
 MARSHAL_SRCS = \
@@ -35,7 +34,7 @@ libseahorse_la_SOURCES = \
 	seahorse-context.c seahorse-context.h \
 	seahorse-debug.c seahorse-debug.h \
 	seahorse-dns-sd.c seahorse-dns-sd.h \
-	seahorse-gtkstock.c seahorse-gtkstock.h \
+	seahorse-icons.c seahorse-icons.h \
 	seahorse-object.c seahorse-object.h \
 	seahorse-object-list.c seahorse-object-list.h \
 	seahorse-object-model.c seahorse-object-model.h \
diff --git a/libseahorse/seahorse-icons.c b/libseahorse/seahorse-icons.c
new file mode 100644
index 0000000..84b114c
--- /dev/null
+++ b/libseahorse/seahorse-icons.c
@@ -0,0 +1,48 @@
+/*
+ * Seahorse
+ *
+ * Copyright (C) 2011 Collabora Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * Author: Stef Walter <stefw collabora co uk>
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+
+#include "seahorse-icons.h"
+
+/**
+ * seahorse_icons_init:
+ *
+ * Adds the icons to the icon theme
+ *
+ */
+void
+seahorse_icons_init (void)
+{
+	static gboolean icons_initted = FALSE;
+
+	if (icons_initted)
+		return;
+	icons_initted = TRUE;
+
+	gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
+	                                   PKGDATADIR G_DIR_SEPARATOR_S "icons");
+	gtk_window_set_default_icon_name ("seahorse");
+}
diff --git a/libseahorse/seahorse-gtkstock.h b/libseahorse/seahorse-icons.h
similarity index 54%
rename from libseahorse/seahorse-gtkstock.h
rename to libseahorse/seahorse-icons.h
index 1a422de..02f9fee 100644
--- a/libseahorse/seahorse-gtkstock.h
+++ b/libseahorse/seahorse-icons.h
@@ -6,8 +6,8 @@
  * Gaim is the legal property of its developers, whose names are too numerous
  * to list here.  Please refer to the COPYRIGHT file distributed with the gaim
  * source distribution.
- * 
- * Also (c) 2005 Adam Schreiber <sadam clemson edu> 
+ *
+ * Also (c) 2005 Adam Schreiber <sadam clemson edu>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,26 +23,25 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
-#ifndef _SEAHORSE_GTKSTOCK_H_
-#define _SEAHORSE_GTKSTOCK_H_
 
-#include <glib.h>
+#ifndef _SEAHORSE_ICONS_H_
+#define _SEAHORSE_ICONS_H_
 
-/* The default stock icons */
-#define SEAHORSE_STOCK_KEY          "seahorse-key"
-#define SEAHORSE_STOCK_SECRET       "seahorse-key-personal"
-#define SEAHORSE_STOCK_KEY_SSH      "seahorse-key-ssh"
-#define SEAHORSE_STOCK_PERSON       "seahorse-person"
-#define SEAHORSE_STOCK_SIGN         "seahorse-sign"
-#define SEAHORSE_STOCK_SIGN_OK      "seahorse-sign-ok"
-#define SEAHORSE_STOCK_SIGN_BAD     "seahorse-sign-bad"
-#define SEAHORSE_STOCK_SIGN_UNKNOWN "seahorse-sign-unknown"
+#include <glib.h>
 
-#define SEAHORSE_THEMED_WEBBROWSER  "web-browser"
-#define SEAHORSE_THEMED_FOLDER      "folder"
+/* The seahorse icons */
+#define SEAHORSE_ICON_KEY          "seahorse-key"
+#define SEAHORSE_ICON_SECRET       "seahorse-key-personal"
+#define SEAHORSE_ICON_KEY_SSH      "seahorse-key-ssh"
+#define SEAHORSE_ICON_PERSON       "seahorse-person"
+#define SEAHORSE_ICON_SIGN         "seahorse-sign"
+#define SEAHORSE_ICON_SIGN_OK      "seahorse-sign-ok"
+#define SEAHORSE_ICON_SIGN_BAD     "seahorse-sign-bad"
+#define SEAHORSE_ICON_SIGN_UNKNOWN "seahorse-sign-unknown"
 
-void    seahorse_gtkstock_init          (void);
+#define SEAHORSE_ICON_WEBBROWSER  "web-browser"
+#define SEAHORSE_ICON_FOLDER      "folder"
 
-void    seahorse_gtkstock_add_icons     (const gchar **icons);
+void    seahorse_icons_init          (void);
 
-#endif /* _SEAHORSE_GTKSTOCK_H_ */
+#endif /* _SEAHORSE_ICONS_H_ */
diff --git a/libseahorse/seahorse-object.c b/libseahorse/seahorse-object.c
index 3bf8076..9ac740a 100644
--- a/libseahorse/seahorse-object.c
+++ b/libseahorse/seahorse-object.c
@@ -82,7 +82,7 @@ enum _SeahorseObjectProps {
  * @markup_explicit: If TRUE the markup will not be set automatically
  * @nickname: DBUS: "simple-name"
  * @nickname_explicit: If TRUE the nickname will not be set automatically
- * @icon: DBUS: "stock-id"
+ * @icon: GIcon
  * @identifier: DBUS: "key-id", "display-id", "raw-id"
  * @identifier_explicit:
  * @location: describes the loaction of the object (local, remte, invalid...)
@@ -105,7 +105,7 @@ struct _SeahorseObjectPrivate {
     gboolean markup_explicit;
     gchar *nickname;
     gboolean nickname_explicit;
-    gchar *icon;
+    GIcon *icon;
     gchar *identifier;
     gboolean identifier_explicit;
 
@@ -305,7 +305,7 @@ seahorse_object_init (SeahorseObject *self)
 	                                        SeahorseObjectPrivate);
 	self->pv->label = g_strdup ("");
 	self->pv->markup = g_strdup ("");
-	self->pv->icon = g_strdup ("gtk-missing-image");
+	self->pv->icon = g_themed_icon_new ("gtk-missing-image");
 	self->pv->identifier = g_strdup ("");
 	self->pv->location = SEAHORSE_LOCATION_INVALID;
 	self->pv->usage = SEAHORSE_USAGE_NONE;
@@ -394,9 +394,8 @@ seahorse_object_finalize (GObject *obj)
 	g_free (self->pv->nickname);
 	self->pv->nickname = NULL;
 
-	g_free (self->pv->icon);
-	self->pv->icon = NULL;
-	
+	g_clear_object (&self->pv->icon);
+
 	g_free (self->pv->identifier);
 	self->pv->identifier = NULL;
 
@@ -449,7 +448,7 @@ seahorse_object_get_property (GObject *obj, guint prop_id, GValue *value,
 		g_value_set_string (value, seahorse_object_get_markup (self));
 		break;
 	case PROP_ICON:
-		g_value_set_string (value, seahorse_object_get_icon (self));
+		g_value_set_object (value, self->pv->icon);
 		break;
 	case PROP_IDENTIFIER:
 		g_value_set_string (value, seahorse_object_get_identifier (self));
@@ -546,8 +545,9 @@ seahorse_object_set_property (GObject *obj, guint prop_id, const GValue *value,
 		}
 		break;
 	case PROP_ICON:
-		if (set_string_storage (g_value_get_string (value), &self->pv->icon))
-			g_object_notify (obj, "icon");
+		g_clear_object (&self->pv->icon);
+		self->pv->icon = g_value_dup_object (value);
+		g_object_notify (obj, "icon");
 		break;
 	case PROP_IDENTIFIER:
 		if (set_string_storage (g_value_get_string (value), &self->pv->identifier)) {
@@ -637,8 +637,8 @@ seahorse_object_class_init (SeahorseObjectClass *klass)
 	                                "", G_PARAM_READWRITE));
 	
 	g_object_class_install_property (gobject_class, PROP_ICON,
-	           g_param_spec_string ("icon", "Object Icon", "Stock ID for object.", 
-	                                "", G_PARAM_READWRITE));
+	           g_param_spec_object ("icon", "Object Icon", "Stock ID for object.",
+	                                G_TYPE_ICON, G_PARAM_READWRITE));
 	
 	g_object_class_install_property (gobject_class, PROP_MARKUP,
 	           g_param_spec_string ("markup", "Object Display Markup", "This object's displayable markup.", 
@@ -890,19 +890,6 @@ seahorse_object_get_nickname (SeahorseObject *self)
 }
 
 /**
- * seahorse_object_get_icon:
- * @self: Object
- *
- * Returns: the icon of the object @self
- */
-const gchar*
-seahorse_object_get_icon (SeahorseObject *self)
-{
-	g_return_val_if_fail (SEAHORSE_IS_OBJECT (self), NULL);
-	return self->pv->icon;
-}
-
-/**
  * seahorse_object_get_identifier:
  * @self: Object
  *
diff --git a/libseahorse/seahorse-object.h b/libseahorse/seahorse-object.h
index 4f50fae..beff10f 100644
--- a/libseahorse/seahorse-object.h
+++ b/libseahorse/seahorse-object.h
@@ -29,7 +29,7 @@
  * id: GQuark: Unique identifier for this object.
  * tag: GQuark: The module (openpgp, pkcs11, etc...) that handles this object. 
  * label: string: The displayable string label of this object.
- * icon: string: The stock ID of an icon to show for this object.
+ * icon: A GIcon.
  * usage: SeahorseUsage: The usage of this object.
  *  
  * The following will be calculated automatically if not set:
@@ -107,9 +107,6 @@ const gchar*        seahorse_object_get_identifier         (SeahorseObject *self
 
 const gchar*        seahorse_object_get_nickname           (SeahorseObject *self);
 
-const gchar*        seahorse_object_get_icon               (SeahorseObject *self);
-
-
 SeahorseLocation    seahorse_object_get_location           (SeahorseObject *self);
 
 SeahorseUsage       seahorse_object_get_usage              (SeahorseObject *self);
diff --git a/libseahorse/seahorse-prefs.c b/libseahorse/seahorse-prefs.c
index 93f6c2f..3c7954e 100644
--- a/libseahorse/seahorse-prefs.c
+++ b/libseahorse/seahorse-prefs.c
@@ -23,7 +23,7 @@
 #include <glib/gi18n.h>
 
 #include "seahorse-combo-keys.h"
-#include "seahorse-gtkstock.h"
+#include "seahorse-icons.h"
 #include "seahorse-keyserver-control.h"
 #include "seahorse-prefs.h"
 #include "seahorse-registry.h"
diff --git a/libseahorse/seahorse-widget.c b/libseahorse/seahorse-widget.c
index 5838fb6..e150551 100644
--- a/libseahorse/seahorse-widget.c
+++ b/libseahorse/seahorse-widget.c
@@ -26,8 +26,8 @@
 
 #include <glib/gi18n.h>
 
+#include "seahorse-icons.h"
 #include "seahorse-widget.h"
-#include "seahorse-gtkstock.h"
 
 /**
  * SECTION:seahorse-widget
diff --git a/pgp/Makefile.am b/pgp/Makefile.am
index 2fc8a81..fe90dec 100644
--- a/pgp/Makefile.am
+++ b/pgp/Makefile.am
@@ -8,7 +8,6 @@ INCLUDES = -I$(top_builddir) \
 	-I$(top_srcdir)/libegg \
 	-I$(top_srcdir)/libseahorse \
 	$(SEAHORSE_CFLAGS) \
-	-DDATA_DIR=\""$(datadir)"\" \
 	-DSEAHORSE_UIDIR=\""$(uidir)"\" \
 	-DLOCALEDIR=\"$(localedir)\" \
 	-DEXECDIR=\""$(seahorselibexecbindir)"\" \
diff --git a/pgp/seahorse-gpgme-generate.c b/pgp/seahorse-gpgme-generate.c
index f70ca2c..6476002 100644
--- a/pgp/seahorse-gpgme-generate.c
+++ b/pgp/seahorse-gpgme-generate.c
@@ -29,7 +29,7 @@
  
 #include "egg-datetime.h"
 
-#include "seahorse-gtkstock.h"
+#include "seahorse-icons.h"
 #include "seahorse-registry.h"
 #include "seahorse-passphrase.h"
 #include "seahorse-progress.h"
@@ -450,9 +450,9 @@ seahorse_gpgme_generate_show (SeahorseGpgmeSource *sksrc, GtkWindow *parent, con
     
     widget = seahorse_widget_get_widget (swidget, "pgp-image");
     g_return_if_fail (widget != NULL);
-    gtk_image_set_from_stock (GTK_IMAGE (widget), SEAHORSE_STOCK_SECRET, 
-                              GTK_ICON_SIZE_DIALOG);
-    
+    gtk_image_set_from_icon_name (GTK_IMAGE (widget), SEAHORSE_ICON_SECRET,
+                                  GTK_ICON_SIZE_DIALOG);
+
     /* The algoritms */
     widget = seahorse_widget_get_widget (swidget, "algorithm-choice");
     g_return_if_fail (widget != NULL);
diff --git a/pgp/seahorse-gpgme-key.c b/pgp/seahorse-gpgme-key.c
index e5d7697..8f748bc 100644
--- a/pgp/seahorse-gpgme-key.c
+++ b/pgp/seahorse-gpgme-key.c
@@ -26,9 +26,9 @@
 #include <glib/gi18n.h>
 
 #include "seahorse-context.h"
+#include "seahorse-icons.h"
 #include "seahorse-object-list.h"
 #include "seahorse-source.h"
-#include "seahorse-gtkstock.h"
 #include "seahorse-util.h"
 
 #include "pgp/seahorse-pgp-key.h"
diff --git a/pgp/seahorse-gpgme-sign.c b/pgp/seahorse-gpgme-sign.c
index 70a8d07..e7d8dc7 100644
--- a/pgp/seahorse-gpgme-sign.c
+++ b/pgp/seahorse-gpgme-sign.c
@@ -23,7 +23,7 @@
 #include "config.h"
 
 #include "seahorse-combo-keys.h"
-#include "seahorse-gtkstock.h"
+#include "seahorse-icons.h"
 #include "seahorse-object-widget.h"
 #include "seahorse-set.h"
 #include "seahorse-util.h"
@@ -212,8 +212,8 @@ sign_internal (SeahorseObject *to_sign, GtkWindow *parent)
     /* Image */
     w = GTK_WIDGET (seahorse_widget_get_widget (swidget, "sign-image"));
     g_return_if_fail (w != NULL);
-    gtk_image_set_from_stock (GTK_IMAGE (w), SEAHORSE_STOCK_SIGN, GTK_ICON_SIZE_DIALOG);
-    
+    gtk_image_set_from_icon_name (GTK_IMAGE (w), SEAHORSE_ICON_SIGN, GTK_ICON_SIZE_DIALOG);
+
     g_object_unref (skset);
     seahorse_widget_show (swidget);
     
diff --git a/pgp/seahorse-pgp-key-properties.c b/pgp/seahorse-pgp-key-properties.c
index ea15d70..24007ee 100644
--- a/pgp/seahorse-pgp-key-properties.c
+++ b/pgp/seahorse-pgp-key-properties.c
@@ -31,7 +31,7 @@
 #include <glib/gi18n.h>
 
 #include "seahorse-bind.h"
-#include "seahorse-gtkstock.h"
+#include "seahorse-icons.h"
 #include "seahorse-object.h"
 #include "seahorse-object-model.h"
 #include "seahorse-object-widget.h"
@@ -152,14 +152,16 @@ show_gtkbuilder_widget (SeahorseWidget *swidget, const gchar *name, gboolean sho
 }
 
 static void
-set_gtkbuilder_image (SeahorseWidget *swidget, const gchar *name, const gchar *stock)
+set_gtkbuilder_image (SeahorseWidget *swidget,
+                      const gchar *name,
+                      const gchar *icon_name)
 {
     GtkWidget *widget = GTK_WIDGET (gtk_builder_get_object (swidget->gtkbuilder, name));
     
     if (!widget)
         return;
     
-    gtk_image_set_from_stock (GTK_IMAGE (widget), stock, GTK_ICON_SIZE_DIALOG);
+    gtk_image_set_from_icon_name (GTK_IMAGE (widget), icon_name, GTK_ICON_SIZE_DIALOG);
 }
 
 static void
@@ -279,9 +281,9 @@ enum {
     UIDSIG_N_COLUMNS
 };
 
-const GType uidsig_columns[] = {
+static GType uidsig_columns[] = {
     G_TYPE_OBJECT,  /* index */
-    G_TYPE_STRING,  /* icon */
+    0 /* later */,  /* icon */
     G_TYPE_STRING,  /* name */
     G_TYPE_STRING   /* keyid */
 };
@@ -409,7 +411,7 @@ names_update_row (SeahorseObjectModel *skmodel, SeahorseObject *object,
                   GtkTreeIter *iter, SeahorseWidget *swidget)
 {
 	SeahorseObject *preferred;
-	const gchar *icon;
+	GIcon *icon;
 	const gchar *name, *id;
     
 	/* Always use the most preferred key for this keyid */
@@ -422,8 +424,8 @@ names_update_row (SeahorseObjectModel *skmodel, SeahorseObject *object,
 		seahorse_object_model_set_row_object (skmodel, iter, object);
 	}
 
-	icon = seahorse_object_get_location (object) < SEAHORSE_LOCATION_LOCAL ? 
-	                 GTK_STOCK_DIALOG_QUESTION : SEAHORSE_STOCK_SIGN;
+	icon = g_themed_icon_new (seahorse_object_get_location (object) < SEAHORSE_LOCATION_LOCAL ?
+	                          GTK_STOCK_DIALOG_QUESTION : SEAHORSE_ICON_SIGN);
 	name = seahorse_object_get_markup (object);
 	id = seahorse_object_get_identifier (object);
 	
@@ -432,6 +434,7 @@ names_update_row (SeahorseObjectModel *skmodel, SeahorseObject *object,
 	                    UIDSIG_ICON, icon,
 	                    UIDSIG_NAME, name ? name : _("[Unknown]"),
 	                    UIDSIG_KEYID, id, -1);
+	g_object_unref (icon);
 }
 
 static void
@@ -445,6 +448,7 @@ names_populate (SeahorseWidget *swidget, GtkTreeStore *store, SeahorsePgpKey *pk
 	GList *uids, *u;
 	GList *sigs, *s;
 	GCancellable *cancellable;
+	GIcon *icon;
 
 	/* Insert all the fun-ness */
 	uids = seahorse_pgp_key_get_uids (pkey);
@@ -452,15 +456,15 @@ names_populate (SeahorseWidget *swidget, GtkTreeStore *store, SeahorsePgpKey *pk
 	for (u = uids; u; u = g_list_next (u)) {
 
 		uid = SEAHORSE_PGP_UID (u->data);
-
+		icon = g_themed_icon_new (SEAHORSE_ICON_PERSON);
 		gtk_tree_store_append (store, &uiditer, NULL);
 		gtk_tree_store_set (store, &uiditer,  
 		                    UIDSIG_OBJECT, uid,
-		                    UIDSIG_ICON, SEAHORSE_STOCK_PERSON,
+		                    UIDSIG_ICON, icon,
 		                    UIDSIG_NAME, seahorse_object_get_markup (SEAHORSE_OBJECT (uid)),
 		                    -1);
-        
-        
+		g_object_unref (icon);
+
 		/* Build a list of all the keyids */
 		sigs = seahorse_pgp_uid_get_signatures (uid);
 		for (s = sigs; s; s = g_list_next (s)) {
@@ -516,9 +520,11 @@ do_names (SeahorseWidget *swidget)
         gtk_tree_store_clear (store);
         
     } else {
-        
+	    g_assert (UIDSIG_N_COLUMNS == G_N_ELEMENTS (uidsig_columns));
+	    uidsig_columns[UIDSIG_ICON] = G_TYPE_ICON;
+
         /* This is our first time so create a store */
-        store = GTK_TREE_STORE (seahorse_object_model_new (UIDSIG_N_COLUMNS, (GType*)uidsig_columns));
+        store = GTK_TREE_STORE (seahorse_object_model_new (UIDSIG_N_COLUMNS, uidsig_columns));
         g_signal_connect (store, "update-row", G_CALLBACK (names_update_row), swidget);
         
         /* Icon column */
@@ -526,7 +532,7 @@ do_names (SeahorseWidget *swidget)
         g_object_set (renderer, "stock-size", GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
         gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (widget),
                                                      -1, "", renderer,
-                                                     "stock-id", UIDSIG_ICON, NULL);
+                                                     "gicon", UIDSIG_ICON, NULL);
 
         /* The name column */
         gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (widget), 
@@ -722,9 +728,9 @@ set_photoid_state (SeahorseWidget *swidget, SeahorsePgpKey *pkey)
 	if (pixbuf)
 		gtk_image_set_from_pixbuf (GTK_IMAGE (photo_image), pixbuf);
 	else if (etype == SEAHORSE_USAGE_PRIVATE_KEY)
-		gtk_image_set_from_stock (GTK_IMAGE (photo_image), SEAHORSE_STOCK_SECRET, (GtkIconSize)-1);
+		gtk_image_set_from_icon_name (GTK_IMAGE (photo_image), SEAHORSE_ICON_SECRET, (GtkIconSize)-1);
 	else 
-		gtk_image_set_from_stock (GTK_IMAGE (photo_image), SEAHORSE_STOCK_KEY, (GtkIconSize)-1);
+		gtk_image_set_from_icon_name (GTK_IMAGE (photo_image), SEAHORSE_ICON_KEY, (GtkIconSize)-1);
 }
 
 static void
@@ -825,9 +831,9 @@ enum {
     UID_N_COLUMNS
 };
 
-const GType uid_columns[] = {
+static GType uid_columns[] = {
     G_TYPE_OBJECT,  /* object */
-    G_TYPE_STRING,  /* icon */
+    0 /* later */,  /* icon */
     G_TYPE_STRING,  /* name */
     G_TYPE_STRING,  /* email */
     G_TYPE_STRING   /* comment */
@@ -882,6 +888,7 @@ do_owner (SeahorseWidget *swidget)
 	const gchar *markup;
 	const gchar *label;
 	GList *uids, *l;
+	GIcon *icon;
 
 	object = SEAHORSE_OBJECT_WIDGET (swidget)->object;
 	pkey = SEAHORSE_PGP_KEY (object);
@@ -952,7 +959,9 @@ do_owner (SeahorseWidget *swidget)
 			gtk_list_store_clear (GTK_LIST_STORE (store));
             
 		} else {
-    
+			g_assert (UID_N_COLUMNS != G_N_ELEMENTS (uid_columns));
+			uid_columns[1] = G_TYPE_ICON;
+
 			/* This is our first time so create a store */
 			store = gtk_list_store_newv (UID_N_COLUMNS, (GType*)uid_columns);
     
@@ -961,7 +970,7 @@ do_owner (SeahorseWidget *swidget)
 			g_object_set (renderer, "stock-size", GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
 			gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (widget),
 			                                             -1, "", renderer,
-			                                             "stock-id", UID_ICON, NULL);
+			                                             "gicon", UID_ICON, NULL);
 
 			gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (widget), 
 			                                             -1, _("Name"), gtk_cell_renderer_text_new (), 
@@ -971,11 +980,13 @@ do_owner (SeahorseWidget *swidget)
 		for (l = uids; l; l = g_list_next (l)) {
     
 			markup = seahorse_object_get_markup (l->data);
+			icon = g_themed_icon_new (SEAHORSE_ICON_PERSON);
 			gtk_list_store_append (store, &iter);
 			gtk_list_store_set (store, &iter,  
 			                    UID_OBJECT, l->data,
-			                    UID_ICON, SEAHORSE_STOCK_PERSON,
+			                    UID_ICON, icon,
 			                    UID_MARKUP, markup, -1);
+			g_object_unref (icon);
 		} 
         
 		gtk_tree_view_set_model (GTK_TREE_VIEW (widget), GTK_TREE_MODEL(store));
@@ -1529,7 +1540,7 @@ enum {
 
 const GType sign_columns[] = {
     G_TYPE_STRING,
-    G_TYPE_STRING,
+    0 /* later */,
     G_TYPE_STRING,
     G_TYPE_BOOLEAN
 };
@@ -1575,7 +1586,7 @@ trust_update_row (SeahorseObjectModel *skmodel, SeahorseObject *object,
 {
 	SeahorseObject *preferred;
 	gboolean trusted = FALSE;
-	const gchar *icon;
+	GIcon *icon;
 	const gchar *name, *id;
     
     	/* Always use the most preferred key for this keyid */
@@ -1593,18 +1604,19 @@ trust_update_row (SeahorseObjectModel *skmodel, SeahorseObject *object,
 		trusted = TRUE;
 	else if (seahorse_object_get_flags (object) & SEAHORSE_FLAG_TRUSTED)
 		trusted = TRUE;
-    
-	icon = seahorse_object_get_location (object) < SEAHORSE_LOCATION_LOCAL ? 
-	                GTK_STOCK_DIALOG_QUESTION : SEAHORSE_STOCK_SIGN;
+
+	icon = g_themed_icon_new (seahorse_object_get_location (object) < SEAHORSE_LOCATION_LOCAL ?
+	                          GTK_STOCK_DIALOG_QUESTION : SEAHORSE_ICON_SIGN);
 	name = seahorse_object_get_label (object);
 	id = seahorse_object_get_identifier (object);
-	
+
 	gtk_tree_store_set (GTK_TREE_STORE (skmodel), iter,
 	                    SIGN_ICON, icon,
 	                    SIGN_NAME, name ? name : _("[Unknown]"),
 	                    SIGN_KEYID, id,
 	                    SIGN_TRUSTED, trusted,
-                        -1);
+	                    -1);
+	g_object_unref (icon);
 }
 
 static void
@@ -1778,7 +1790,7 @@ do_trust (SeahorseWidget *swidget)
         show_gtkbuilder_widget (swidget, "sign-area", FALSE);
         show_gtkbuilder_widget (swidget, "revoke-area", FALSE);
         sensitive_gtkbuilder_widget (swidget, "trust-marginal-check", FALSE);
-        set_gtkbuilder_image (swidget, "sign-image", SEAHORSE_STOCK_SIGN_UNKNOWN);
+        set_gtkbuilder_image (swidget, "sign-image", SEAHORSE_ICON_SIGN_UNKNOWN);
         
     /* Local keys */
     } else {
@@ -1800,26 +1812,26 @@ do_trust (SeahorseWidget *swidget)
         /* Trust is specified manually */
         case SEAHORSE_VALIDITY_ULTIMATE:
             managed = FALSE;
-            icon = SEAHORSE_STOCK_SIGN_OK;
+            icon = SEAHORSE_ICON_SIGN_OK;
             break;
         
         /* Trust is specified manually */
         case SEAHORSE_VALIDITY_NEVER:
             managed = FALSE;
-            icon = SEAHORSE_STOCK_SIGN_BAD;
+            icon = SEAHORSE_ICON_SIGN_BAD;
             break;
         
         /* We manage the trust through this page */
         case SEAHORSE_VALIDITY_FULL:
         case SEAHORSE_VALIDITY_MARGINAL:
             managed = TRUE;
-            icon = SEAHORSE_STOCK_SIGN_OK;
+            icon = SEAHORSE_ICON_SIGN_OK;
             break;
         
         /* We manage the trust through this page */
         case SEAHORSE_VALIDITY_UNKNOWN:
             managed = TRUE;
-            icon = SEAHORSE_STOCK_SIGN;
+            icon = SEAHORSE_ICON_SIGN;
             break;
         
         default:
@@ -1880,7 +1892,7 @@ do_trust (SeahorseWidget *swidget)
 			g_object_set (renderer, "stock-size", GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
 			gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (widget),
 			                                             -1, "", renderer,
-			                                             "stock-id", SIGN_ICON, NULL);
+			                                             "gicon", SIGN_ICON, NULL);
 			gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (widget), 
 			                                             -1, _("Name/Email"), gtk_cell_renderer_text_new (), 
 			                                             "text", SIGN_NAME, NULL);
diff --git a/pgp/seahorse-pgp-key.c b/pgp/seahorse-pgp-key.c
index 8437b6e..ff7552c 100644
--- a/pgp/seahorse-pgp-key.c
+++ b/pgp/seahorse-pgp-key.c
@@ -24,7 +24,7 @@
 
 #include <glib/gi18n.h>
 
-#include "seahorse-gtkstock.h"
+#include "seahorse-icons.h"
 #include "seahorse-object-list.h"
 #include "seahorse-source.h"
 #include "seahorse-util.h"
@@ -172,10 +172,11 @@ void
 seahorse_pgp_key_realize (SeahorsePgpKey *self)
 {
 	const gchar *nickname, *keyid;
-	const gchar *icon;
+	const gchar *icon_name;
 	gchar *markup, *name, *identifier;
 	SeahorseUsage usage;
 	GList *subkeys;
+	GIcon *icon;
 
 	subkeys = seahorse_pgp_key_get_subkeys (self);
 	if (subkeys) {
@@ -193,13 +194,14 @@ seahorse_pgp_key_realize (SeahorsePgpKey *self)
 
 	/* The type */
 	if (usage == SEAHORSE_USAGE_PRIVATE_KEY) {
-		icon = SEAHORSE_STOCK_SECRET;
+		icon_name = SEAHORSE_ICON_SECRET;
 	} else {
-		icon = SEAHORSE_STOCK_KEY;
+		icon_name = SEAHORSE_ICON_KEY;
 		if (usage == SEAHORSE_USAGE_NONE)
 			g_object_set (self, "usage", SEAHORSE_USAGE_PUBLIC_KEY, NULL);
 	}
 
+	icon = g_themed_icon_new (icon_name);
 	g_object_set (self,
 		      "label", name,
 		      "markup", markup,
@@ -207,7 +209,8 @@ seahorse_pgp_key_realize (SeahorsePgpKey *self)
 		      "identifier", identifier,
 		      "icon", icon,
 		      NULL);
-		
+
+	g_object_unref (icon);
 	g_free (identifier);
 	g_free (markup);
 	g_free (name);
diff --git a/pgp/seahorse-pgp-uid.c b/pgp/seahorse-pgp-uid.c
index de32ccd..01a0d00 100644
--- a/pgp/seahorse-pgp-uid.c
+++ b/pgp/seahorse-pgp-uid.c
@@ -220,7 +220,7 @@ static void
 seahorse_pgp_uid_init (SeahorsePgpUid *self)
 {
 	self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, SEAHORSE_TYPE_PGP_UID, SeahorsePgpUidPrivate);
-	g_object_set (self, "icon", "", "usage", SEAHORSE_USAGE_IDENTITY, NULL);
+	g_object_set (self, "icon", NULL, "usage", SEAHORSE_USAGE_IDENTITY, NULL);
 	g_object_set (self, "tag", SEAHORSE_PGP_TYPE, NULL);
 }
 
diff --git a/pkcs11/Makefile.am b/pkcs11/Makefile.am
index c52093f..eb8e2e2 100644
--- a/pkcs11/Makefile.am
+++ b/pkcs11/Makefile.am
@@ -7,7 +7,6 @@ INCLUDES = -I$(top_builddir) \
 	-I$(top_srcdir) \
 	-I$(top_srcdir)/libseahorse \
 	$(SEAHORSE_CFLAGS) \
-	-DDATA_DIR=\""$(datadir)"\" \
 	-DSEAHORSE_UIDIR=\""$(uidir)"\" \
 	-DLOCALEDIR=\"$(localedir)\" \
 	-DEXECDIR=\""$(seahorselibexecbindir)"\" \
diff --git a/src/Makefile.am b/src/Makefile.am
index 63eebd5..3cb5505 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,17 +1,14 @@
 
 uidir = $(datadir)/seahorse/ui/
 localedir = $(datadir)/locale
-pixmapsdir = $(datadir)/pixmaps/
 
 INCLUDES = -I$(top_builddir) \
 	-I$(top_srcdir) \
 	-I$(top_srcdir)/libegg \
 	-I$(top_srcdir)/libseahorse \
 	$(SEAHORSE_CFLAGS) \
-	-DDATA_DIR=\""$(datadir)"\" \
 	-DSEAHORSE_UIDIR=\""$(uidir)"\" \
 	-DLOCALEDIR=\"$(localedir)\" \
-	-DPIXMAPSDIR=\""$(pixmapsdir)"\" \
 	-DGETTEXT_PACKAGE=\""seahorse\""
 
 if WITH_KEYSERVER
diff --git a/src/seahorse-generate-select.c b/src/seahorse-generate-select.c
index d4dc2f5..02b00ad 100644
--- a/src/seahorse-generate-select.c
+++ b/src/seahorse-generate-select.c
@@ -101,23 +101,24 @@ static GObject*
 seahorse_generate_select_constructor (GType type, guint n_props, GObjectConstructParam *props) 
 {
 	SeahorseGenerateSelect *self = SEAHORSE_GENERATE_SELECT (G_OBJECT_CLASS (seahorse_generate_select_parent_class)->constructor(type, n_props, props));
-	gchar *text, *icon;
+	gchar *text;
 	gchar *label, *tooltip;
 	GtkCellRenderer *pixcell;
 	GtkTreeSelection *selection;
 	GtkTreeIter iter;
 	GList *l;
-	
+	GIcon *icon;
+
 	g_return_val_if_fail (self, NULL);	
 
-	self->pv->store = gtk_list_store_new (COLUMN_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, GTK_TYPE_ACTION);
+	self->pv->store = gtk_list_store_new (COLUMN_N_COLUMNS, G_TYPE_ICON, G_TYPE_STRING, GTK_TYPE_ACTION);
 
 	self->pv->action_groups = seahorse_registry_object_instances (NULL, "generator", NULL);
 	for (l = self->pv->action_groups; l; l = g_list_next (l)) {
 		GList *k, *actions = gtk_action_group_list_actions (l->data);
 		for (k = actions; k; k = g_list_next (k)) {
 			
-			g_object_get (k->data, "label", &label, "tooltip", &tooltip, "stock-id", &icon, NULL);
+			g_object_get (k->data, "label", &label, "tooltip", &tooltip, "gicon", &icon, NULL);
 			text = g_strdup_printf (TEMPLATE, label, tooltip);
 
 			gtk_list_store_append (self->pv->store, &iter);
@@ -129,7 +130,7 @@ seahorse_generate_select_constructor (GType type, guint n_props, GObjectConstruc
 			
 			g_free (text);
 			g_free (label);
-			g_free (icon);
+			g_clear_object (&icon);
 			g_free (tooltip);
 		}
 		
@@ -142,7 +143,7 @@ seahorse_generate_select_constructor (GType type, guint n_props, GObjectConstruc
 	
 	pixcell = gtk_cell_renderer_pixbuf_new ();
 	g_object_set (pixcell, "stock-size", GTK_ICON_SIZE_DND, NULL);
-	gtk_tree_view_insert_column_with_attributes (self->pv->view, -1, "", pixcell, "stock-id", COLUMN_ICON, NULL);
+	gtk_tree_view_insert_column_with_attributes (self->pv->view, -1, "", pixcell, "gicon", COLUMN_ICON, NULL);
 	gtk_tree_view_insert_column_with_attributes (self->pv->view, -1, "", gtk_cell_renderer_text_new (), "markup", COLUMN_TEXT, NULL);
 	gtk_tree_view_set_model (self->pv->view, GTK_TREE_MODEL (self->pv->store));
 
diff --git a/src/seahorse-key-manager-store.c b/src/seahorse-key-manager-store.c
index 481ed16..5b573ac 100644
--- a/src/seahorse-key-manager-store.c
+++ b/src/seahorse-key-manager-store.c
@@ -50,7 +50,7 @@ enum {
 
 enum {
     COL_USAGE,
-    COL_STOCK_ID,
+    COL_ICON,
     COL_NAME,
     COL_KEYID,
     COL_VALIDITY_STR,
@@ -65,7 +65,7 @@ enum {
 
 static SeahorseSetModelColumn column_info[] = {
 	{ "usage", G_TYPE_UINT, "usage" },
-	{ "icon", G_TYPE_STRING, NULL },
+	{ "icon", 0 /* later */, NULL },
 	{ "markup", G_TYPE_STRING, "label" },
 	{ "identifier", G_TYPE_STRING, "id" },
 	{ "validity-str", G_TYPE_STRING, "validity" },
@@ -744,6 +744,7 @@ seahorse_key_manager_store_class_init (SeahorseKeyManagerStoreClass *klass)
     
     /* Some simple checks to make sure all column info is on the same page */
     g_assert (N_COLS == G_N_ELEMENTS (column_info));
+    column_info[1].type = G_TYPE_ICON;
 
     gobject_class->finalize = seahorse_key_manager_store_finalize;
     gobject_class->set_property = seahorse_key_manager_store_set_property;
@@ -792,7 +793,7 @@ seahorse_key_manager_store_new (SeahorseSet *skset, GtkTreeView *view, GSettings
     renderer = gtk_cell_renderer_pixbuf_new ();
     g_object_set (renderer, "stock-size", GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
     g_object_set (renderer, "xpad", 6, NULL);
-    col = gtk_tree_view_column_new_with_attributes ("", renderer, "stock-id", COL_STOCK_ID, NULL);
+    col = gtk_tree_view_column_new_with_attributes ("", renderer, "gicon", COL_ICON, NULL);
     gtk_tree_view_column_set_resizable (col, FALSE);
     gtk_tree_view_append_column (view, col);
     gtk_tree_view_column_set_sort_column_id (col, COL_USAGE);
diff --git a/src/seahorse-main.c b/src/seahorse-main.c
index e7aad3e..e4ec256 100644
--- a/src/seahorse-main.c
+++ b/src/seahorse-main.c
@@ -24,7 +24,7 @@
 
 #include "seahorse-cleanup.h"
 #include "seahorse-context.h"
-#include "seahorse-gtkstock.h"
+#include "seahorse-icons.h"
 #include "seahorse-registry.h"
 #include "seahorse-secure-memory.h"
 #include "seahorse-util.h"
@@ -86,8 +86,8 @@ main (int argc, char **argv)
     }
 
     /* Insert Icons into Stock */ 
-    seahorse_gtkstock_init ();
-    
+    seahorse_icons_init ();
+
     /* Make the default SeahorseContext */
     seahorse_context_create ();
 
diff --git a/ssh/Makefile.am b/ssh/Makefile.am
index e4f3c23..a5a08f6 100644
--- a/ssh/Makefile.am
+++ b/ssh/Makefile.am
@@ -7,7 +7,6 @@ INCLUDES = -I$(top_builddir) \
 	-I$(top_srcdir) \
 	-I$(top_srcdir)/libseahorse \
 	$(SEAHORSE_CFLAGS) \
-	-DDATA_DIR=\""$(datadir)"\" \
 	-DSEAHORSE_UIDIR=\""$(uidir)"\" \
 	-DLOCALEDIR=\"$(localedir)\" \
 	-DEXECDIR=\""$(seahorselibexecbindir)"\" \
diff --git a/ssh/seahorse-ssh-generate.c b/ssh/seahorse-ssh-generate.c
index e6e2512..d80afe6 100644
--- a/ssh/seahorse-ssh-generate.c
+++ b/ssh/seahorse-ssh-generate.c
@@ -32,7 +32,7 @@
 #include "seahorse-ssh.h"
 #include "seahorse-ssh-operation.h"
 
-#include "seahorse-gtkstock.h"
+#include "seahorse-icons.h"
 #include "seahorse-progress.h"
 #include "seahorse-registry.h"
 #include "seahorse-util.h"
@@ -223,7 +223,7 @@ seahorse_ssh_generate_show (SeahorseSSHSource *src, GtkWindow *parent)
 
     widget = seahorse_widget_get_widget (swidget, "ssh-image");
     g_return_if_fail (widget != NULL);
-    gtk_image_set_from_stock (GTK_IMAGE (widget), SEAHORSE_STOCK_KEY_SSH, GTK_ICON_SIZE_DIALOG);
+    gtk_image_set_from_icon_name (GTK_IMAGE (widget), SEAHORSE_ICON_KEY_SSH, GTK_ICON_SIZE_DIALOG);
 
     /* on_change() gets called, bits entry is setup */
     widget = seahorse_widget_get_widget (swidget, "algorithm-choice");
diff --git a/ssh/seahorse-ssh-key-properties.c b/ssh/seahorse-ssh-key-properties.c
index b21c681..3bf2ac8 100644
--- a/ssh/seahorse-ssh-key-properties.c
+++ b/ssh/seahorse-ssh-key-properties.c
@@ -22,7 +22,7 @@
 #include "config.h"
 
 #include "seahorse-bind.h"
-#include "seahorse-gtkstock.h"
+#include "seahorse-icons.h"
 #include "seahorse-object.h"
 #include "seahorse-object-widget.h"
 #include "seahorse-util.h"
@@ -265,7 +265,7 @@ do_main (SeahorseWidget *swidget)
     /* Image */
     widget = GTK_WIDGET (gtk_builder_get_object (swidget->gtkbuilder, "key-image"));
     if (widget)
-        gtk_image_set_from_stock (GTK_IMAGE (widget), SEAHORSE_STOCK_KEY_SSH, GTK_ICON_SIZE_DIALOG);
+        gtk_image_set_from_icon_name (GTK_IMAGE (widget), SEAHORSE_ICON_KEY_SSH, GTK_ICON_SIZE_DIALOG);
 
     /* Name and title */
     label = seahorse_object_get_label (object);
diff --git a/ssh/seahorse-ssh-key.c b/ssh/seahorse-ssh-key.c
index 655e4f6..f51652f 100644
--- a/ssh/seahorse-ssh-key.c
+++ b/ssh/seahorse-ssh-key.c
@@ -36,7 +36,7 @@
 #include "seahorse-ssh-source.h"
 #include "seahorse-ssh-key.h"
 #include "seahorse-ssh-operation.h"
-#include "seahorse-gtkstock.h"
+#include "seahorse-icons.h"
 #include "seahorse-validity.h"
 
 enum {
@@ -74,7 +74,8 @@ changed_key (SeahorseSSHKey *self)
 	const gchar *display = NULL;
 	gchar *identifier;
 	gchar *simple = NULL;
-    
+	GIcon *icon;
+
 	if (self->keydata) {
 
   		 /* Try to make display and simple names */
@@ -117,17 +118,18 @@ changed_key (SeahorseSSHKey *self)
 
 	identifier = seahorse_ssh_key_calc_identifier (self->keydata->fingerprint);
 
+	icon = g_themed_icon_new (SEAHORSE_ICON_KEY_SSH);
 	g_object_set (obj,
 	              "id", seahorse_ssh_key_calc_cannonical_id (self->keydata->fingerprint),
 	              "label", display,
-	              "icon", SEAHORSE_STOCK_KEY_SSH,
+	              "icon", icon,
 	              "usage", usage,
 	              "nickname", simple,
 	              "location", SEAHORSE_LOCATION_LOCAL,
 	              "identifier", identifier,
 	              "flags", (self->keydata->authorized ? SEAHORSE_FLAG_TRUSTED : 0) | SEAHORSE_FLAG_EXPORTABLE | SEAHORSE_FLAG_DELETABLE,
 	              NULL);
-	
+	g_object_unref (icon);
 	g_free (identifier);
 }
 
diff --git a/ssh/seahorse-ssh-upload.c b/ssh/seahorse-ssh-upload.c
index 6a41a79..6a7e543 100644
--- a/ssh/seahorse-ssh-upload.c
+++ b/ssh/seahorse-ssh-upload.c
@@ -26,10 +26,10 @@
 
 #include <glib/gi18n.h>
 
+#include "seahorse-icons.h"
 #include "seahorse-widget.h"
 #include "seahorse-util.h"
 #include "seahorse-progress.h"
-#include "seahorse-gtkstock.h"
 
 #include "ssh/seahorse-ssh-dialogs.h"
 #include "ssh/seahorse-ssh-source.h"



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