39
40
def load_icon_from_path (icon_path):
40
41
if os.path.isfile (icon_path):
42
return gtk.gdk.pixbuf_new_from_file_at_size (icon_path, 24, 24)
43
return GdkPixbuf.new_from_file_at_size (icon_path, 24, 24)
99
100
def __init__ (self, menu_files):
100
gtk.TreeStore.__init__ (self, bool, str, str, gtk.gdk.Pixbuf, str, bool, bool)
101
Gtk.TreeStore.__init__ (self, bool, str, str, GdkPixbuf.Pixbuf, str, bool, bool)
102
103
self.entries_list_iter = None
104
self.icon_theme = gtk.icon_theme_get_default ()
105
self.icon_theme = Gtk.IconTheme.get_default ()
106
107
if (len (menu_files) < 1):
107
108
menu_files = ["applications.menu", "settings.menu"]
127
128
iter = self.iter_children (parent_iter)
129
if self[iter][self.COLUMN_ID] == directory.menu_id:
129
while iter is not None:
130
if self.get_value(iter, self.COLUMN_ID) == directory.menu_id:
131
132
iter = self.iter_next (iter)
134
iter = self.append (parent_iter)
136
self[iter][self.COLUMN_IS_ENTRY] = False
137
self[iter][self.COLUMN_ID] = directory.menu_id
138
self[iter][self.COLUMN_NAME] = directory.name
139
self[iter][self.COLUMN_ICON] = load_icon (self.icon_theme, directory.icon)
141
if not menu_file is None:
142
self[iter][self.COLUMN_MENU_FILE] = menu_file
135
row = (False, directory.menu_id, directory.name, load_icon (self.icon_theme, directory.icon), menu_file, False, False)
136
iter = self.append (parent_iter, row)
145
self[iter][self.COLUMN_SYSTEM_VISIBLE] = True
139
self.set_value (iter, self.COLUMN_SYSTEM_VISIBLE, True)
147
self[iter][self.COLUMN_USER_VISIBLE] = True
141
self.set_value (iter, self.COLUMN_USER_VISIBLE, True)
149
143
for child_item in directory.contents:
150
144
if isinstance (child_item, gmenu.Directory):
151
145
self.__append_directory (child_item, iter, system, None)
156
150
child_iter = self.iter_children (iter)
151
while child_iter is not None:
158
152
if child_item.type == gmenu.TYPE_ENTRY and \
159
self[child_iter][self.COLUMN_IS_ENTRY] and \
160
self[child_iter][self.COLUMN_ID] == child_item.desktop_file_id:
153
self.get_value(child_iter, self.COLUMN_IS_ENTRY) and \
154
self.get_value(child_iter, self.COLUMN_ID) == child_item.desktop_file_id:
162
156
child_iter = self.iter_next (child_iter)
165
child_iter = self.append (iter)
167
self[child_iter][self.COLUMN_IS_ENTRY] = True
168
self[child_iter][self.COLUMN_ID] = child_item.desktop_file_id
169
self[child_iter][self.COLUMN_NAME] = child_item.display_name
170
self[child_iter][self.COLUMN_ICON] = load_icon (self.icon_theme,
158
if child_iter is None:
159
row = (True, child_item.desktop_file_id, child_item.display_name, load_icon (self.icon_theme, child_item.icon), None, False, False)
160
child_iter = self.append (iter, row)
174
self[child_iter][self.COLUMN_SYSTEM_VISIBLE] = not child_item.is_excluded
163
self.set_value (child_iter, self.COLUMN_SYSTEM_VISIBLE, not child_item.is_excluded,)
176
self[child_iter][self.COLUMN_USER_VISIBLE] = not child_item.is_excluded
165
self.set_value (child_iter, self.COLUMN_USER_VISIBLE, not child_item.is_excluded,)