diff --git a/src/FamilyView.py b/src/FamilyView.py
index 83e27a31a..89f8bae8d 100644
--- a/src/FamilyView.py
+++ b/src/FamilyView.py
@@ -86,6 +86,7 @@ class FamilyView:
self.top.get_widget('del_parents').connect('clicked',self.del_parents_clicked)
self.top.get_widget('add_spparents').connect('clicked',self.add_sp_parents)
self.top.get_widget('del_spparents').connect('clicked',self.del_sp_parents)
+ self.top.get_widget('fam_back').connect('clicked',self.child_back)
column = gtk.TreeViewColumn('',gtk.CellRendererText(),text=0)
self.spouse_list.append_column(column)
@@ -113,19 +114,10 @@ class FamilyView:
self.child_list.set_search_column(0)
self.child_selection = self.child_list.get_selection()
- colno = 0
- for title in [ (_('Order'),0), (_('Name'),1), (_('ID'),2),
- (_('Gender'),3), (_('Birth Date'),4),
- (_('Status'),5), ('',6) ]:
- renderer = gtk.CellRendererText ()
- column = gtk.TreeViewColumn (title[0], renderer, text=colno)
- colno = colno + 1
- column.set_clickable (gtk.TRUE)
- if title[0] == '':
- column.set_clickable(gtk.TRUE)
- column.set_visible(gtk.FALSE)
- column.set_sort_column_id(title[1])
- self.child_list.append_column (column)
+ Utils.build_columns(self.child_list,
+ [ (_(''),30,0), (_('Name'),250,1), (_('ID'),50,2),
+ (_('Gender'),100,3), (_('Birth Date'),150,4),
+ (_('Status'),150,5), ('',0,6) ])
def on_child_list_button_press(self,obj,event):
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
@@ -379,6 +371,14 @@ class FamilyView:
def del_sp_parents(self,obj):
self.parent_deleter(self.selected_spouse,self.sp_selection)
+ def child_back(self,obj):
+ """makes the currently select child the active person"""
+ model, iter = self.child_selection.get_selected()
+ if iter:
+ id = self.child_model.get_value(iter,2)
+ self.parent.change_active_person(self.parent.db.getPerson(id))
+ self.load_family()
+
def parent_editor(self,person,selection):
if not person:
return
diff --git a/src/ImageSelect.py b/src/ImageSelect.py
index 33181c240..0be96f650 100644
--- a/src/ImageSelect.py
+++ b/src/ImageSelect.py
@@ -31,6 +31,7 @@ import string
# GTK/Gnome modules
#
#-------------------------------------------------------------------------
+import gobject
import gtk
import gnome.ui
import gnome.canvas
@@ -52,6 +53,7 @@ import EditPerson
import Marriage
import EditPlace
import EditSource
+import ListModel
from QuestionDialog import ErrorDialog
from intl import gettext as _
@@ -494,8 +496,14 @@ class LocalMediaProperties:
self.attr_type = self.change_dialog.get_widget("attr_type")
self.attr_value = self.change_dialog.get_widget("attr_value")
self.attr_details = self.change_dialog.get_widget("attr_details")
+
+
self.attr_list = self.change_dialog.get_widget("attr_list")
-
+ self.attr_model = gtk.ListStore(gobject.TYPE_STRING,gobject.TYPE_STRING)
+ Utils.build_columns(self.attr_list, [(_('Attribute'),150,-1), (_('Value'),100,-1)])
+ self.attr_list.set_model(self.attr_model)
+ self.attr_list.get_selection().connect('changed',self.on_attr_list_select_row)
+
descr_window.set_text(self.object.getDescription())
mtype = self.object.getMimeType()
@@ -512,7 +520,6 @@ class LocalMediaProperties:
mt = Utils.get_mime_description(mtype)
self.change_dialog.get_widget("type").set_text(mt)
- print self.photo
self.change_dialog.get_widget("notes").get_buffer().set_text(self.photo.getNote())
self.change_dialog.signal_autoconnect({
"on_cancel_clicked" : Utils.destroy_passed_object,
@@ -520,7 +527,6 @@ class LocalMediaProperties:
"on_down_clicked" : self.on_down_clicked,
"on_ok_clicked" : self.on_ok_clicked,
"on_apply_clicked" : self.on_apply_clicked,
- "on_attr_list_select_row" : self.on_attr_list_select_row,
"on_add_attr_clicked": self.on_add_attr_clicked,
"on_delete_attr_clicked" : self.on_delete_attr_clicked,
"on_update_attr_clicked" : self.on_update_attr_clicked,
@@ -528,21 +534,19 @@ class LocalMediaProperties:
self.redraw_attr_list()
def on_up_clicked(self,obj):
- if len(obj.selection) == 0:
- return
- row = obj.selection[0]
- if row != 0:
- obj.select_row(row-1,0)
+ store,iter = obj.get_selected()
+ if iter:
+ row = store.get_path(iter)
+ # select row
def on_down_clicked(self,obj):
- if len(obj.selection) == 0:
- return
- row = obj.selection[0]
- if row != obj.rows-1:
- obj.select_row(row+1,0)
+ store,iter = obj.get_selected()
+ if iter:
+ row = store.get_path(iter)
+ # select row
def redraw_attr_list(self):
- Utils.redraw_list(self.alist,self.attr_list,disp_attr)
+ Utils.redraw_list(self.alist,self.attr_model,disp_attr)
def on_apply_clicked(self, obj):
priv = self.change_dialog.get_widget("private").get_active()
@@ -563,17 +567,24 @@ class LocalMediaProperties:
Utils.destroy_passed_object(obj)
def on_attr_list_select_row(self,obj,row,b,c):
- attr = obj.get_row_data(row)
-
- self.attr_type.set_label(attr.getType())
- self.attr_value.set_text(attr.getValue())
- self.attr_details.set_text(Utils.get_detail_text(attr))
+ store,iter = obj.get_selected()
+ if iter:
+ row = store.get_path(iter)
+ attr = self.alist[row[0]]
+ self.attr_type.set_label(attr.getType())
+ self.attr_value.set_text(attr.getValue())
+ else:
+ self.attr_type.set_label('')
+ self.attr_value.set_text('')
+
def on_update_attr_clicked(self,obj):
import AttrEdit
- if len(obj.selection) > 0:
- row = obj.selection[0]
- attr = obj.get_row_data(row)
+
+ store,iter = obj.get_selected()
+ if iter:
+ row = store.get_path(iter)
+ attr = self.alist[row[0]]
AttrEdit.AttributeEditor(self,attr,"Media Object",
Plugins.get_image_attributes())
@@ -610,7 +621,12 @@ class GlobalMediaProperties:
self.attr_type = self.change_dialog.get_widget("attr_type")
self.attr_value = self.change_dialog.get_widget("attr_value")
self.attr_details = self.change_dialog.get_widget("attr_details")
+
self.attr_list = self.change_dialog.get_widget("attr_list")
+ self.attr_model = gtk.ListStore(gobject.TYPE_STRING,gobject.TYPE_STRING)
+ Utils.build_columns(self.attr_list, [(_('Attribute'),150,-1), (_('Value'),100,-1)])
+ self.attr_list.set_model(self.attr_model)
+ self.attr_list.get_selection().connect('changed',self.on_attr_list_select_row)
self.descr_window.set_text(self.object.getDescription())
mtype = self.object.getMimeType()
@@ -630,7 +646,6 @@ class GlobalMediaProperties:
"on_down_clicked" : self.on_down_clicked,
"on_ok_clicked" : self.on_ok_clicked,
"on_apply_clicked" : self.on_apply_clicked,
- "on_attr_list_select_row": self.on_attr_list_select_row,
"on_add_attr_clicked" : self.on_add_attr_clicked,
"on_notebook_switch_page": self.on_notebook_switch_page,
"on_make_local_clicked" : self.on_make_local_clicked,
@@ -640,18 +655,16 @@ class GlobalMediaProperties:
self.redraw_attr_list()
def on_up_clicked(self,obj):
- if len(obj.selection) == 0:
- return
- row = obj.selection[0]
- if row != 0:
- obj.select_row(row-1,0)
+ store,iter = obj.get_selected()
+ if iter:
+ row = store.get_path(iter)
+ # select row
def on_down_clicked(self,obj):
- if len(obj.selection) == 0:
- return
- row = obj.selection[0]
- if row != obj.rows-1:
- obj.select_row(row+1,0)
+ store,iter = obj.get_selected()
+ if iter:
+ row = store.get_path(iter)
+ # select row
def update_info(self):
fname = self.object.getPath()
@@ -673,50 +686,44 @@ class GlobalMediaProperties:
self.update()
def redraw_attr_list(self):
- Utils.redraw_list(self.alist,self.attr_list,disp_attr)
+ Utils.redraw_list(self.alist,self.attr_model,disp_attr)
def button_press(self,obj,event):
- if len(obj.selection) <= 0:
+ store,iter = self.refmodel.selection.get_selected()
+ if not iter:
return
- if event.button == 1 and event.type == GDK._2BUTTON_PRESS:
- data = obj.get_row_data(obj.selection[0])
- if data != None:
- data[0](data[1],data[2])
-
+ if event.button == 1 and event.type == gtk.gdk._2BUTTON_PRESS:
+ pass
+
def display_refs(self):
if self.refs == 1:
return
self.refs = 1
- index = 0
- ref = self.change_dialog.get_widget("refinfo")
+
+ self.refmodel = ListModel.ListModel(self.change_dialog.get_widget("refinfo"),
+ [(_('Type'),150),(_('ID'),75),(_('Value'),100)])
+ ref = self.refmodel.tree
+
ref.connect('button-press-event',self.button_press)
for key in self.db.getPersonKeys():
p = self.db.getPerson(key)
for o in p.getPhotoList():
if o.getReference() == self.object:
- ref.append([_("Person"),p.getId(),GrampsCfg.nameof(p)])
- ref.set_row_data(index,(EditPerson.EditPerson,p,self.db))
- index = index + 1
+ self.refmodel.add([_("Person"),p.getId(),GrampsCfg.nameof(p)])
for p in self.db.getFamilyMap().values():
for o in p.getPhotoList():
if o.getReference() == self.object:
- ref.append([_("Family"),p.getId(),Utils.family_name(p)])
- ref.set_row_data(index,(Marriage.Marriage,p,self.db))
- index = index + 1
+ self.refmodel.add([_("Family"),p.getId(),Utils.family_name(p)])
for key in self.db.getSourceKeys():
p = self.db.getSource(key)
for o in p.getPhotoList():
if o.getReference() == self.object:
- ref.append([_("Source"),p.getId(),p.getTitle()])
- ref.set_row_data(index,(EditSource.EditSource,p,self.db))
- index = index + 1
+ self.refmodel.add([_("Source"),p.getId(),p.getTitle()])
for key in self.db.getPlaceKeys():
p = self.db.getPlace(key)
for o in p.getPhotoList():
if o.getReference() == self.object:
- ref.append([_("Place"),p.getId(),p.get_title()])
- ref.set_row_data(index,(EditPlace.EditPlace,p,self.db))
- index = index + 1
+ self.refmodel.add([_("Place"),p.getId(),p.get_title()])
def on_notebook_switch_page(self,obj,junk,page):
if page == 3:
@@ -741,17 +748,24 @@ class GlobalMediaProperties:
Utils.destroy_passed_object(obj)
def on_attr_list_select_row(self,obj,row,b,c):
- attr = obj.get_row_data(row)
+ store,iter = obj.get_selected()
+ if iter:
+ row = store.get_path(iter)
+ attr = self.alist[row[0]]
- self.attr_type.set_label(attr.getType())
- self.attr_value.set_text(attr.getValue())
- self.attr_details.set_text(Utils.get_detail_text(attr))
+ self.attr_type.set_label(attr.getType())
+ self.attr_value.set_text(attr.getValue())
+ else:
+ self.attr_type.set_label('')
+ self.attr_value.set_text('')
def on_update_attr_clicked(self,obj):
import AttrEdit
- if len(obj.selection) > 0:
- row = obj.selection[0]
- attr = obj.get_row_data(row)
+
+ store,iter = obj.get_selected()
+ if iter:
+ row = store.get_path(iter)
+ attr = self.alist[row[0]]
AttrEdit.AttributeEditor(self,attr,"Media Object",
Plugins.get_image_attributes())
diff --git a/src/ListModel.py b/src/ListModel.py
new file mode 100644
index 000000000..b0879d7e0
--- /dev/null
+++ b/src/ListModel.py
@@ -0,0 +1,70 @@
+#
+# Gramps - a GTK+/GNOME based genealogy program
+#
+# Copyright (C) 2000 Donald N. Allingham
+#
+# 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
+# the Free Software Foundation; either version 2 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 General Public License for more details.
+#
+# You should have received a copy of the GNU 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
+#
+
+from gobject import TYPE_STRING
+import gtk
+
+class ListModel:
+ def __init__(self,tree,dlist):
+ self.tree = tree
+ l = len(dlist)
+ if l == 1:
+ self.model = gtk.ListStore(TYPE_STRING)
+ elif l == 2:
+ self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING)
+ elif l == 3:
+ self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING, TYPE_STRING)
+ elif l == 4:
+ self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING, TYPE_STRING,
+ TYPE_STRING)
+ elif l == 5:
+ self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING, TYPE_STRING,
+ TYPE_STRING, TYPE_STRING)
+ elif l == 6:
+ self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING, TYPE_STRING,
+ TYPE_STRING, TYPE_STRING, TYPE_STRING)
+ elif l == 7:
+ self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING, TYPE_STRING,
+ TYPE_STRING, TYPE_STRING, TYPE_STRING,
+ TYPE_STRING)
+ elif l == 8:
+ self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING, TYPE_STRING,
+ TYPE_STRING, TYPE_STRING, TYPE_STRING,
+ TYPE_STRING, TYPE_STRING)
+
+ self.selection = self.tree.get_selection()
+ self.tree.set_model(self.model)
+
+ cnum = 0
+
+ for name in dlist:
+ renderer = gtk.CellRendererText()
+ column = gtk.TreeViewColumn(name[0],renderer,text=cnum)
+ column.set_min_width(name[1])
+ cnum = cnum + 1
+ tree.append_column(column)
+
+ def add(self,data):
+ iter = self.model.append()
+ col = 0
+ for object in data:
+ self.model.set_value(iter,col,object)
+ col = col + 1
+
diff --git a/src/Makefile.am b/src/Makefile.am
index 451a73044..4b54d93eb 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -25,22 +25,20 @@ pkgdata_DATA = ${INTLLIBS} ${GLADEFILES} ${GRAPHICS} gramps.desktop
#EXTRA_DIST =@DISTLANGS@
-all: ${INTLLIBS}
+all: ${INTLLIBS} grampslib.so
DIST_SOURCES = intl.c
dist_pkgdata_DATA = ${pkgdata_DATA}
# These can prbably be done in a better or more elegant/generic way
# eventually (libtool?), but this works.
-intl15.so: intl.c
- $(CC) $(CFLAGS) $(LDFLAGS) @P15_INCLUDES@ -DVER15 -o $@ intl.c
-intl20.so: intl.c
- $(CC) $(CFLAGS) $(LDFLAGS) @P20_INCLUDES@ -DVER20 -o $@ intl.c
-intl21.so: intl.c
- $(CC) $(CFLAGS) $(LDFLAGS) @P21_INCLUDES@ -DVER21 -o $@ intl.c
intl22.so: intl.c
$(CC) $(CFLAGS) $(LDFLAGS) @P22_INCLUDES@ -DVER22 -o $@ intl.c
+grampslib.so: grampslib.i
+ swig -python grampslib.i
+ $(CC) $(CFLAGS) $(LDFLAGS) @P22_INCLUDES@ -o $@ grampslib_wrap.c -lgnomevfs-2
+
# In principle the following rule slightly violates the automake/autoconf
# spirit of keeping each subdirectory as a separate entity unto itself.
# But, since the template depends on everything from here, we allow this
diff --git a/src/Makefile.in b/src/Makefile.in
index b81c98ed0..d889744a6 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -444,19 +444,17 @@ uninstall-info: uninstall-info-recursive
#EXTRA_DIST =@DISTLANGS@
-all: ${INTLLIBS}
+all: ${INTLLIBS} grampslib.so
# These can prbably be done in a better or more elegant/generic way
# eventually (libtool?), but this works.
-intl15.so: intl.c
- $(CC) $(CFLAGS) $(LDFLAGS) @P15_INCLUDES@ -DVER15 -o $@ intl.c
-intl20.so: intl.c
- $(CC) $(CFLAGS) $(LDFLAGS) @P20_INCLUDES@ -DVER20 -o $@ intl.c
-intl21.so: intl.c
- $(CC) $(CFLAGS) $(LDFLAGS) @P21_INCLUDES@ -DVER21 -o $@ intl.c
intl22.so: intl.c
$(CC) $(CFLAGS) $(LDFLAGS) @P22_INCLUDES@ -DVER22 -o $@ intl.c
+grampslib.so: grampslib.i
+ swig -python grampslib.i
+ $(CC) $(CFLAGS) $(LDFLAGS) @P22_INCLUDES@ -o $@ grampslib_wrap.c -lgnomevfs-2
+
# In principle the following rule slightly violates the automake/autoconf
# spirit of keeping each subdirectory as a separate entity unto itself.
# But, since the template depends on everything from here, we allow this
diff --git a/src/MediaView.py b/src/MediaView.py
index 796f10870..4c6c6fcee 100644
--- a/src/MediaView.py
+++ b/src/MediaView.py
@@ -89,7 +89,8 @@ class MediaView:
else:
column.set_resizable(gtk.TRUE)
column.set_visible(gtk.TRUE)
- column.set_sort_column_id(title[1])
+ if title[1] >= 0:
+ column.set_sort_column_id(title[1])
column.set_min_width(title[2])
self.list.append_column(column)
diff --git a/src/Utils.py b/src/Utils.py
index 4cc558795..83d7ca318 100644
--- a/src/Utils.py
+++ b/src/Utils.py
@@ -32,8 +32,7 @@ import os
#
#-------------------------------------------------------------------------
import gtk
-#import gnome.util
-#from gnome.ui import GnomeWarningDialog
+import grampslib
#-------------------------------------------------------------------------
#
@@ -48,8 +47,7 @@ import RelImage
# internationalization
#
#-------------------------------------------------------------------------
-from intl import gettext
-_ = gettext
+from intl import gettext as _
#-------------------------------------------------------------------------
#
@@ -362,45 +360,26 @@ def get_place_from_list(obj):
else:
return select[0].get_data(LISTOBJ)
+import os
+
def find_icon(mtype):
- icon = None
- nicon = None
-# for k in gnome.mime.get_keys(mtype):
-# if k == "icon-filename":
-# icon = gnome.mime.get_value(mtype,k)
-# elif k == "icon_filename":
-# nicon = gnome.mime.get_value(mtype,k)
-# if nicon:
-# p = "%s/%s" % (gnome.util.pixmap_file("nautilus"),nicon)
-# if os.path.isfile(p):
-# return p
-# p = "%s.png" % p
-# if os.path.isfile(p):
-# return p
- if icon:
- return icon
- return const.icon
+ n = "%s/icons/%s.png" % (const.rootDir,string.replace(string.replace(mtype,'/','-'),'.','-'))
+ if os.path.isfile(n):
+ return n
+ else:
+ return const.icon
def get_mime_type(file):
- if file[-4:] == ".jpg":
- return "image/jpeg"
+ type = grampslib.gnome_vfs_mime_type_from_name(file)
+ if type:
+ return type
return "unknown"
-# if os.path.isfile(file) or os.path.isdir(file):
-# mtype = gnome.mime.type_of_file(file)
-# if len(string.split(mtype,"/")) != 2:
-# mtype = gnome.mime.type(file)
-# else:
-# mtype = gnome.mime.type(file)
-# return mtype
-
def get_mime_description(type):
+ value = grampslib.gnome_vfs_mime_get_description(type)
+ if value:
+ return value
return ""
-# for key in gnome.mime.get_keys(type):
-# if key == "description":
-# return gnome.mime.get_value(type,key)
-# return type
-
#-------------------------------------------------------------------------
#
@@ -552,3 +531,22 @@ def build_string_optmenu(mapping, start_val):
myMenu.set_active(start_index)
return myMenu
+
+#-------------------------------------------------------------------------
+#
+#
+#
+#-------------------------------------------------------------------------
+def build_columns(tree,list):
+ cnum = 0
+ for name in list:
+ renderer = gtk.CellRendererText()
+ column = gtk.TreeViewColumn(name[0],renderer,text=cnum)
+ column.set_min_width(name[1])
+ if name[2] >= 0:
+ column.set_sort_column_id(name[2])
+ if name[0] == '':
+ column.set_clickable(gtk.TRUE)
+ column.set_visible(gtk.FALSE)
+ cnum = cnum + 1
+ tree.append_column(column)
diff --git a/src/gramps.glade b/src/gramps.glade
index 201a50077..c9b1c49b0 100644
--- a/src/gramps.glade
+++ b/src/gramps.glade
@@ -603,7 +603,7 @@
True
Edit
True
- gtk-yes
+ edit.png
@@ -1186,52 +1186,6 @@
0
0
-
-
- True
- 0
- 0.5
- GTK_SHADOW_ETCHED_IN
-
-
-
- 5
- True
- True
- True
- True
- False
- False
-
-
-
-
-
- True
- <b>Children</b>
- False
- True
- GTK_JUSTIFY_LEFT
- False
- False
- 0.5
- 0.5
- 0
- 0
-
-
- label_item
-
-
-
-
- 0
- 4
- 2
- 3
-
-
-
True
@@ -1816,6 +1770,113 @@
fill
+
+
+
+ True
+ False
+ 0
+
+
+
+ True
+ 0
+ 0.5
+ GTK_SHADOW_ETCHED_IN
+
+
+
+ 5
+ True
+ True
+ True
+ True
+ False
+ False
+
+
+
+
+
+ True
+ <b>Children</b>
+ False
+ True
+ GTK_JUSTIFY_LEFT
+ False
+ False
+ 0.5
+ 0.5
+ 0
+ 0
+
+
+ label_item
+
+
+
+
+ 5
+ True
+ True
+
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+
+
+
+ True
+ Make the selected child the active family
+ True
+ GTK_RELIEF_NORMAL
+
+
+
+ True
+ gtk-go-back
+ 4
+ 0.5
+ 0.5
+ 0
+ 0
+
+
+
+
+ 0
+ False
+ False
+
+
+
+
+
+
+
+
+ 0
+ False
+ True
+
+
+
+
+ 0
+ 4
+ 2
+ 3
+ fill
+
+
diff --git a/src/gramps_main.py b/src/gramps_main.py
index e96cf00c3..5c73ac19d 100755
--- a/src/gramps_main.py
+++ b/src/gramps_main.py
@@ -664,12 +664,6 @@ class Gramps:
else:
obj.set_sensitive(0)
- def on_fv_prev_clicked(self,obj):
- """makes the currently select child the active person"""
- if self.active_child:
- self.change_active_person(self.active_child)
- self.family_view.load_family()
-
def on_add_child_clicked(self,obj):
"""Select an existing child to add to the active family"""
import SelectChild
diff --git a/src/grampslib.i b/src/grampslib.i
new file mode 100644
index 000000000..3b68fb4cd
--- /dev/null
+++ b/src/grampslib.i
@@ -0,0 +1,6 @@
+%module grampslib
+
+extern char* gnome_vfs_mime_get_icon(const char *);
+extern char* gnome_vfs_mime_type_from_name(const char* );
+extern char* gnome_vfs_mime_get_description(const char*);
+extern char* gnome_vfs_mime_get_value(const char*,const char*);
diff --git a/src/icons/application-eps.png b/src/icons/application-eps.png
new file mode 100644
index 000000000..18decb04d
Binary files /dev/null and b/src/icons/application-eps.png differ
diff --git a/src/icons/application-msword.png b/src/icons/application-msword.png
new file mode 100644
index 000000000..e404f9ae6
Binary files /dev/null and b/src/icons/application-msword.png differ
diff --git a/src/icons/application-pdf.png b/src/icons/application-pdf.png
new file mode 100644
index 000000000..175f172aa
Binary files /dev/null and b/src/icons/application-pdf.png differ
diff --git a/src/icons/application-postscript.png b/src/icons/application-postscript.png
new file mode 100644
index 000000000..5d7c8f601
Binary files /dev/null and b/src/icons/application-postscript.png differ
diff --git a/src/icons/application-rtf.png b/src/icons/application-rtf.png
new file mode 100644
index 000000000..8c5013c12
Binary files /dev/null and b/src/icons/application-rtf.png differ
diff --git a/src/icons/application-vnd-ms-excel.png b/src/icons/application-vnd-ms-excel.png
new file mode 100644
index 000000000..aa92bb567
Binary files /dev/null and b/src/icons/application-vnd-ms-excel.png differ
diff --git a/src/icons/application-vnd-ms-powerpoint.png b/src/icons/application-vnd-ms-powerpoint.png
new file mode 100644
index 000000000..11813ab28
Binary files /dev/null and b/src/icons/application-vnd-ms-powerpoint.png differ
diff --git a/src/icons/application-vnd-rn-realmedia.png b/src/icons/application-vnd-rn-realmedia.png
new file mode 100644
index 000000000..5d8f2d75e
Binary files /dev/null and b/src/icons/application-vnd-rn-realmedia.png differ
diff --git a/src/icons/application-vnd-stardivision-calc.png b/src/icons/application-vnd-stardivision-calc.png
new file mode 100644
index 000000000..7efe17d9b
Binary files /dev/null and b/src/icons/application-vnd-stardivision-calc.png differ
diff --git a/src/icons/application-vnd-stardivision-impress.png b/src/icons/application-vnd-stardivision-impress.png
new file mode 100644
index 000000000..03f0d2605
Binary files /dev/null and b/src/icons/application-vnd-stardivision-impress.png differ
diff --git a/src/icons/application-vnd-stardivision-writer.png b/src/icons/application-vnd-stardivision-writer.png
new file mode 100644
index 000000000..85ea2476c
Binary files /dev/null and b/src/icons/application-vnd-stardivision-writer.png differ
diff --git a/src/icons/application-vnd-sun-xml-calc.png b/src/icons/application-vnd-sun-xml-calc.png
new file mode 100644
index 000000000..7efe17d9b
Binary files /dev/null and b/src/icons/application-vnd-sun-xml-calc.png differ
diff --git a/src/icons/application-vnd-sun-xml-impress.png b/src/icons/application-vnd-sun-xml-impress.png
new file mode 100644
index 000000000..03f0d2605
Binary files /dev/null and b/src/icons/application-vnd-sun-xml-impress.png differ
diff --git a/src/icons/application-vnd-sun-xml-writer.png b/src/icons/application-vnd-sun-xml-writer.png
new file mode 100644
index 000000000..85ea2476c
Binary files /dev/null and b/src/icons/application-vnd-sun-xml-writer.png differ
diff --git a/src/icons/application-x-abiword.png b/src/icons/application-x-abiword.png
new file mode 100644
index 000000000..e37b0b927
Binary files /dev/null and b/src/icons/application-x-abiword.png differ
diff --git a/src/icons/application-x-gnumeric.png b/src/icons/application-x-gnumeric.png
new file mode 100644
index 000000000..afce5ffff
Binary files /dev/null and b/src/icons/application-x-gnumeric.png differ
diff --git a/src/icons/application-x-killustrator.png b/src/icons/application-x-killustrator.png
new file mode 100644
index 000000000..95c56d877
Binary files /dev/null and b/src/icons/application-x-killustrator.png differ
diff --git a/src/icons/application-x-kpresenter.png b/src/icons/application-x-kpresenter.png
new file mode 100644
index 000000000..a1b8d8269
Binary files /dev/null and b/src/icons/application-x-kpresenter.png differ
diff --git a/src/icons/application-x-kspread.png b/src/icons/application-x-kspread.png
new file mode 100644
index 000000000..9f095e9f4
Binary files /dev/null and b/src/icons/application-x-kspread.png differ
diff --git a/src/icons/application-x-kword.png b/src/icons/application-x-kword.png
new file mode 100644
index 000000000..9e03d748f
Binary files /dev/null and b/src/icons/application-x-kword.png differ
diff --git a/src/icons/application-x-ogg.png b/src/icons/application-x-ogg.png
new file mode 100644
index 000000000..ead3f62c3
Binary files /dev/null and b/src/icons/application-x-ogg.png differ
diff --git a/src/icons/audio-ac3.png b/src/icons/audio-ac3.png
new file mode 100644
index 000000000..96b58ae67
Binary files /dev/null and b/src/icons/audio-ac3.png differ
diff --git a/src/icons/audio-basic.png b/src/icons/audio-basic.png
new file mode 100644
index 000000000..d118cb66a
Binary files /dev/null and b/src/icons/audio-basic.png differ
diff --git a/src/icons/audio-x-aiff.png b/src/icons/audio-x-aiff.png
new file mode 100644
index 000000000..b53b69012
Binary files /dev/null and b/src/icons/audio-x-aiff.png differ
diff --git a/src/icons/audio-x-midi.png b/src/icons/audio-x-midi.png
new file mode 100644
index 000000000..10d8716af
Binary files /dev/null and b/src/icons/audio-x-midi.png differ
diff --git a/src/icons/audio-x-mp3.png b/src/icons/audio-x-mp3.png
new file mode 100644
index 000000000..afb7e1b0a
Binary files /dev/null and b/src/icons/audio-x-mp3.png differ
diff --git a/src/icons/audio-x-real-audio.png b/src/icons/audio-x-real-audio.png
new file mode 100644
index 000000000..0dd1f7138
Binary files /dev/null and b/src/icons/audio-x-real-audio.png differ
diff --git a/src/icons/audio-x-ulaw.png b/src/icons/audio-x-ulaw.png
new file mode 100644
index 000000000..df85aef6c
Binary files /dev/null and b/src/icons/audio-x-ulaw.png differ
diff --git a/src/icons/audio-x-wav.png b/src/icons/audio-x-wav.png
new file mode 100644
index 000000000..c586fc030
Binary files /dev/null and b/src/icons/audio-x-wav.png differ
diff --git a/src/icons/audio.png b/src/icons/audio.png
new file mode 100644
index 000000000..fb52dc8d4
Binary files /dev/null and b/src/icons/audio.png differ
diff --git a/src/icons/gnome-http-url.png b/src/icons/gnome-http-url.png
new file mode 100644
index 000000000..3c405cc42
Binary files /dev/null and b/src/icons/gnome-http-url.png differ
diff --git a/src/icons/image-x-xcf.png b/src/icons/image-x-xcf.png
new file mode 100644
index 000000000..4e3fb9641
Binary files /dev/null and b/src/icons/image-x-xcf.png differ
diff --git a/src/icons/image.png b/src/icons/image.png
new file mode 100644
index 000000000..abf755ffa
Binary files /dev/null and b/src/icons/image.png differ
diff --git a/src/icons/text-css.png b/src/icons/text-css.png
new file mode 100644
index 000000000..8d1132dd9
Binary files /dev/null and b/src/icons/text-css.png differ
diff --git a/src/icons/text-html.png b/src/icons/text-html.png
new file mode 100644
index 000000000..63f3c9570
Binary files /dev/null and b/src/icons/text-html.png differ
diff --git a/src/icons/text-plain.png b/src/icons/text-plain.png
new file mode 100644
index 000000000..bfe4bad56
Binary files /dev/null and b/src/icons/text-plain.png differ
diff --git a/src/icons/text-x-java.png b/src/icons/text-x-java.png
new file mode 100644
index 000000000..fee68140b
Binary files /dev/null and b/src/icons/text-x-java.png differ
diff --git a/src/icons/text-x-tex.png b/src/icons/text-x-tex.png
new file mode 100644
index 000000000..2c61b52a1
Binary files /dev/null and b/src/icons/text-x-tex.png differ
diff --git a/src/icons/text-xml.png b/src/icons/text-xml.png
new file mode 100644
index 000000000..758774256
Binary files /dev/null and b/src/icons/text-xml.png differ
diff --git a/src/icons/text.png b/src/icons/text.png
new file mode 100644
index 000000000..bfe4bad56
Binary files /dev/null and b/src/icons/text.png differ
diff --git a/src/icons/video-mpeg.png b/src/icons/video-mpeg.png
new file mode 100644
index 000000000..a3baab6c4
Binary files /dev/null and b/src/icons/video-mpeg.png differ
diff --git a/src/icons/video-quicktime.png b/src/icons/video-quicktime.png
new file mode 100644
index 000000000..6631c08c9
Binary files /dev/null and b/src/icons/video-quicktime.png differ
diff --git a/src/icons/video-x-ms-asf.png b/src/icons/video-x-ms-asf.png
new file mode 100644
index 000000000..2333b6ba8
Binary files /dev/null and b/src/icons/video-x-ms-asf.png differ
diff --git a/src/icons/video-x-ms-wmv.png b/src/icons/video-x-ms-wmv.png
new file mode 100644
index 000000000..0dfce3370
Binary files /dev/null and b/src/icons/video-x-ms-wmv.png differ
diff --git a/src/icons/video-x-msvideo.png b/src/icons/video-x-msvideo.png
new file mode 100644
index 000000000..812955b7d
Binary files /dev/null and b/src/icons/video-x-msvideo.png differ
diff --git a/src/imagesel.glade b/src/imagesel.glade
index 0c30b0030..b32f22702 100644
--- a/src/imagesel.glade
+++ b/src/imagesel.glade
@@ -1075,8 +1075,6 @@
yes
yes
-
-
CList:title
@@ -2033,8 +2031,6 @@
100
yes
-
-
CList:title