我们的程序会出bug,如果某个installer的 installed() raise 了 Exception。为了解决这个bug,我在
AppObjs.all_objs_reset_status() 里加了这段代码:
failed = []
for obj in cls.appobjs:
try:
obj.showed_in_toggle = obj.cache_installed = obj.installed()
except:
print_traceback()
failed.append(obj)
for o in failed:
cls.appobjs.remove(o)
iter = cls.list_store.get_iter_first()
while iter:
if cls.list_store.get_value(iter, 0) == o:
cls.list_store.remove(iter)
break
iter = cls.list_store.iter_next(iter)
bug 解决了。副作用是 InstallRemovePane 的 right_store 被删去,right_store 改用
AppObjs.list_store。
请 Haofu 留意一下,我们两个都将 right_store 移动到 AppObjs 了。
Homer
_______________________________________________
Mailing list: https://launchpad.net/~ailurus
Post to : [email protected]
Unsubscribe : https://launchpad.net/~ailurus
More help : https://help.launchpad.net/ListHelp