def fetch_comment(self): if is_network_connected(): container_remove_all(self.right_comment_box) loading_label = Label(_("Loading comments...")) loading_label_align = gtk.Alignment(0.5, 0, 0, 0) loading_label_align.add(loading_label) loading_label_align.set_padding(10, 0, 0, 0) self.right_comment_box.pack_start(loading_label_align, False, False) web_view = WebView(os.path.join(CONFIG_DIR, "cookie.txt")) web_view.connect("new-window-policy-decision-requested", self.open_url) web_view.connect('console-message', self.webview_console_message_handler) web_view_align = gtk.Alignment() web_view_align.set(0.5, 0, 0, 0) web_view_align.set_padding(33, 33, 33, 33) web_view_align.add(web_view) web_settings = web_view.get_settings() web_settings.set_property("enable-plugins", False) web_settings.set_property("enable-scripts", True) web_view.open("%s/softcenter/v1/comment?n=%s&hl=%s" % ( SERVER_ADDRESS, self.pkg_name, LANGUAGE, )) web_view.connect("load-finished", self.comment_load_finished_cb, web_view_align) create_thread(self.fetch_screenshot).start()
def install_pkgs(self, pkg_names): for pkg_name in pkg_names: self.install_page.download_wait(pkg_name) create_thread(lambda : self.bus_interface.install_pkg( pkg_names, reply_handler=lambda :handle_dbus_reply("install_pkg"), error_handler=lambda e:handle_dbus_error("install_pkg", e))).start() for pkg_name in pkg_names: SendDownloadCount(pkg_name).start()
def finish(source, icon_window, bus_interface, pkg_names): icon_window.destroy() # Send install command. create_thread(lambda : bus_interface.install_pkg( pkg_names, reply_handler=lambda :handle_dbus_reply("install_pkg"), error_handler=lambda e:handle_dbus_error("install_pkg", e))).start() for pkg_name in pkg_names: SendDownloadCount(pkg_name).start()
def update_pkg_info(self, pkg_name): current_time = time.time() if current_time - self.update_pkg_time < self.update_pkg_interval: return False else: self.update_pkg_time = current_time FetchPackageInfo(pkg_name, self.update_some_info).start() self.pkg_name = pkg_name detail_info = self.data_manager.get_pkg_detail_info(self.pkg_name) self.category = detail_info['category'] self.long_desc = detail_info['long_desc'] self.version = detail_info['version'] self.homepage = detail_info['homepage'] self.star = detail_info['star_value'] self.download = detail_info['download_number'] self.alias_name = detail_info['alias_name'] self.recommend_pkgs = detail_info['recommend_pkgs'] self.pkg_star_view = StarView() self.pkg_star_view.connect("clicked", lambda w: self.grade_pkg()) self.pkg_star_mark = StarMark(self.star, self.MARK_SIZE, self.MARK_PADDING_X, self.MARK_PADDING_Y) container_remove_all(self.star_box) self.star_box.pack_start(self.pkg_star_view, False, False) self.star_box.pack_start(self.pkg_star_mark, False, False) create_thread(self.fetch_pkg_status).start() container_remove_all(self.left_category_box) if self.category != None: self.left_category_name_label.set_text(_("Category: ")) self.left_category_label.set_text(get_category_name(self.category[1])) self.left_category_box.add(self.left_category_label_box) self.left_version_label.set_text(_("Version: %s") % self.version) self.left_download_label.set_text(_("Download: 0")) self.left_size_label.set_text(_("Size: calculating...")) container_remove_all(self.left_homepage_box) if self.homepage != "": homepage_label = Label(_("Visit Homepage"), text_color=app_theme.get_color("homepage"), hover_color=app_theme.get_color("homepage_hover")) homepage_label.set_clickable() homepage_label.connect("button-press-event", lambda w, e: run_command("xdg-open %s" % self.homepage)) self.left_homepage_box.pack_start(homepage_label) container_remove_all(self.left_recommend_box) if len(self.recommend_pkgs) > 0: self.left_recommend_box.pack_start(self.left_recommend_label, False, False, 8) for (recommend_pkg_name, alias_name, star) in self.recommend_pkgs: self.left_recommend_box.pack_start(RecommendPkgItem(self, recommend_pkg_name, alias_name, star), False, False, 4) container_remove_all(self.right_desc_box) resizable_label = ResizableLabel(self.long_desc.replace("&", "&").replace("<", "<").replace(">", ">"), self.LONG_DESC_WRAP_WIDTH, self.LONG_DESC_INIT_HEIGHT, 3) resizable_align = gtk.Alignment() resizable_align.set(0.5, 0.5, 1, 1) resizable_align.set_padding(0, 0, self.RIGHT_INFO_PADDING_X, self.RIGHT_INFO_PADDING_X) resizable_align.add(resizable_label) resizable_align.connect("expose-event", self.expose_resizable_label_background) self.right_desc_box.pack_start(resizable_align, False, False) self.show_screenshot() self.fetch_comment() self.show_all()