def set_default_for_type(self, desktopapp, content_type): gio.app_info_reset_type_associations(content_type) #commandline = desktopapp.get_commandline() #app = self.get_app_info(commandline) try: #print desktopapp desktopapp.set_as_default_for_type(content_type) except: print "set app default failed for type ", content_type
def set_default_for_type(self, desktopapp, content_type): gio.app_info_reset_type_associations(content_type) #commandline = desktopapp.get_commandline() #app = self.get_app_info(commandline) try: #print desktopapp desktopapp.set_as_default_for_type(content_type) except: print "set app default failed for type ",content_type
apps.remove(default_app) # get real default app = filter( lambda a: a.get_commandline().split(" ")[0] == default_app. get_commandline().split(" ")[0], apps) if app: apps.remove(app[0]) apps.insert(0, app[0]) return apps if __name__ == "__main__": manager = AppManager() gio.app_info_reset_type_associations(manager.photo_content_type) app = manager.get_default_for_type(manager.photo_content_type) print "default for http:", app print "available list for http:" for app in manager.get_all_for_type(manager.photo_content_type): print app.get_commandline(), app.get_name(), app.get_id() #print "set default for http:" #for app in manager.get_all_for_type(manager.http_content_type): #if app != manager.get_default_for_type(manager.http_content_type): ####attention, let https same as http #manager.set_default_for_type(app, manager.http_content_type) #manager.set_default_for_type(app, manager.https_content_type) #break #else:
apps = gio.app_info_get_all_for_type(content_type) default_app = self.get_default_for_type(content_type) if default_app and default_app.get_id().startswith("userapp"): apps.remove(default_app) # get real default app = filter(lambda a: a.get_commandline().split(" ")[0] == default_app.get_commandline().split(" ")[0], apps) if app: apps.remove(app[0]) apps.insert(0, app[0]) return apps if __name__ == "__main__": manager = AppManager() gio.app_info_reset_type_associations(manager.photo_content_type) app = manager.get_default_for_type(manager.photo_content_type) print "default for http:", app print "available list for http:" for app in manager.get_all_for_type(manager.photo_content_type): print app.get_commandline(), app.get_name(),app.get_id() #print "set default for http:" #for app in manager.get_all_for_type(manager.http_content_type): #if app != manager.get_default_for_type(manager.http_content_type): ####attention, let https same as http #manager.set_default_for_type(app, manager.http_content_type) #manager.set_default_for_type(app, manager.https_content_type) #break