コード例 #1
0
    def button_press(self, column, offset_x, offset_y):
        # init Loading widget
        loading_box = LoadingBox()

        global_event.emit("show-pkg-view", loading_box)

        self.page_box = gtk.VBox()    
            
        self.all_pkg_names = self.data_manager.get_second_category_packages(self.second_category_name)
        self.message_bar = MessageBar(18)
        self.message_bar.set_message(_("%s > %s : %s applications") % (
                get_category_name(self.first_category_name), 
                get_category_name(self.second_category_name), 
                len(self.all_pkg_names),
                ))
        
        self.pkg_icon_view = IconView() 
        self.pkg_icon_view.connect("motion-notify-item", tooltip_aciton)
        if len(self.all_pkg_names) > LOAD_ITEMS_NUMBER:
            self.load_new_items(self.all_pkg_names[:LOAD_ITEMS_NUMBER])
        else:
            self.load_new_items(self.all_pkg_names)

        self.pkg_icon_scrolled_window = ScrolledWindow()
        self.pkg_icon_scrolled_window.connect("vscrollbar-state-changed", self.scrolled_window_vscrollbar_handler)
        self.pkg_icon_scrolled_window.add_child(self.pkg_icon_view)
        self.pkg_icon_view.draw_mask = self.draw_mask
        self.pkg_icon_view.draw_row_mask = self.draw_row_mask
        
        self.page_box.pack_start(self.message_bar, False, False)
        self.page_box.pack_start(self.pkg_icon_scrolled_window, True, True)
        
        global_event.emit("update-current-status-pkg-page", self.pkg_icon_view)
コード例 #2
0
    def render_name(self, cr, rect):
        text_color = "#333333"
        if self.is_select:
            cr.set_source_rgba(*color_hex_to_cairo(
                app_theme.get_color("sidebar_select").get_color()))
            cr.rectangle(rect.x, rect.y, rect.width, rect.height)
            cr.fill()

            text_color = "#FFFFFF"
        elif self.is_hover:
            cr.set_source_rgba(*color_hex_to_cairo(
                app_theme.get_color("sidebar_hover").get_color()))
            cr.rectangle(rect.x, rect.y, rect.width, rect.height)
            cr.fill()

        draw_text(
            cr,
            get_category_name(self.second_category_name),
            rect.x + SECOND_CATEGORY_PADDING_X,
            rect.y,
            rect.width,
            rect.height,
            text_size=SECOND_CATEGORY_ITEM_NAME_SIZE,
            text_color=text_color,
        )
コード例 #3
0
    def button_press(self, column, offset_x, offset_y):
        # init Loading widget
        loading_box = LoadingBox()

        global_event.emit("show-pkg-view", loading_box)

        self.page_box = gtk.VBox()

        self.all_pkg_names = self.data_manager.get_second_category_packages(
            self.second_category_name)
        self.message_bar = MessageBar(18)
        self.message_bar.set_message(
            _("%s > %s : %s applications") % (
                get_category_name(self.first_category_name),
                get_category_name(self.second_category_name),
                len(self.all_pkg_names),
            ))

        self.pkg_icon_view = IconView()
        self.pkg_icon_view.connect("motion-notify-item", tooltip_aciton)
        if len(self.all_pkg_names) > LOAD_ITEMS_NUMBER:
            self.load_new_items(self.all_pkg_names[:LOAD_ITEMS_NUMBER])
        else:
            self.load_new_items(self.all_pkg_names)

        self.pkg_icon_scrolled_window = ScrolledWindow()
        self.pkg_icon_scrolled_window.connect(
            "vscrollbar-state-changed",
            self.scrolled_window_vscrollbar_handler)
        self.pkg_icon_scrolled_window.add_child(self.pkg_icon_view)
        self.pkg_icon_view.draw_mask = self.draw_mask
        self.pkg_icon_view.draw_row_mask = self.draw_row_mask

        self.page_box.pack_start(self.message_bar, False, False)
        self.page_box.pack_start(self.pkg_icon_scrolled_window, True, True)

        global_event.emit("update-current-status-pkg-page", self.pkg_icon_view)
コード例 #4
0
    def render_name(self, cr, rect):
        text_color = "#333333"
        font_image_color = app_theme.get_color("sidebar_select").get_color()
        if self.is_select:
            cr.set_source_rgba(*color_hex_to_cairo(
                app_theme.get_color("sidebar_select").get_color()))
            cr.rectangle(rect.x, rect.y, rect.width, rect.height)
            cr.fill()

            text_color = "#FFFFFF"
            font_image_color = "#FFFFFF"
        elif self.is_hover:
            cr.set_source_rgba(*color_hex_to_cairo(
                app_theme.get_color("sidebar_hover").get_color()))
            cr.rectangle(rect.x, rect.y, rect.width, rect.height)
            cr.fill()

        pixbuf = app_theme.get_pixbuf("category/%s.png" %
                                      (self.index)).get_pixbuf()

        category_img_path = os.path.join(get_parent_dir(__file__, 2), "image",
                                         "category",
                                         "%s.png" % (self.index + 1, ))
        surface = cairo.ImageSurface.create_from_png(category_img_path)
        cr.set_source_rgb(*color_hex_to_cairo(font_image_color))
        cr.mask_surface(surface, rect.x + 14, rect.y + (rect.height - 24) / 2)

        draw_text(
            cr,
            get_category_name(self.first_category_name),
            rect.x + pixbuf.get_width() + 22,
            rect.y,
            rect.width,
            rect.height,
            text_size=CATEGORY_ITEM_NAME_SIZE,
            text_color=text_color,
        )

        if self.is_hover:
            if self.is_expand:
                pixbuf = app_theme.get_pixbuf("sidebar/close.png").get_pixbuf()
            else:
                pixbuf = app_theme.get_pixbuf("sidebar/open.png").get_pixbuf()

            draw_pixbuf(cr, pixbuf,
                        rect.x + rect.width - CATEGORY_ITEM_EXPAND_PADDING_X,
                        rect.y + (rect.height - pixbuf.get_height()) / 2)
コード例 #5
0
    def render_name(self, cr, rect):
        text_color = "#333333"
        font_image_color = app_theme.get_color("sidebar_select").get_color()
        if self.is_select:
            cr.set_source_rgba(*color_hex_to_cairo(app_theme.get_color("sidebar_select").get_color()))
            cr.rectangle(rect.x, rect.y, rect.width, rect.height)
            cr.fill()
            
            text_color = "#FFFFFF"
            font_image_color = "#FFFFFF"
        elif self.is_hover:
            cr.set_source_rgba(*color_hex_to_cairo(app_theme.get_color("sidebar_hover").get_color()))
            cr.rectangle(rect.x, rect.y, rect.width, rect.height)
            cr.fill()
        
        pixbuf = app_theme.get_pixbuf("category/%s.png" % (self.index)).get_pixbuf()

        category_img_path = os.path.join(get_parent_dir(__file__, 2), "image", "category", "%s.png" % (self.index+1, ))
        surface = cairo.ImageSurface.create_from_png(category_img_path)
        cr.set_source_rgb(*color_hex_to_cairo(font_image_color))
        cr.mask_surface(surface, rect.x+14, rect.y+(rect.height-24)/2)

        draw_text(cr, 
                  get_category_name(self.first_category_name),
                  rect.x + pixbuf.get_width() + 22, 
                  rect.y,
                  rect.width,
                  rect.height,
                  text_size=CATEGORY_ITEM_NAME_SIZE,
                  text_color=text_color,
                  )
        
        if self.is_hover:
            if self.is_expand:
                pixbuf = app_theme.get_pixbuf("sidebar/close.png").get_pixbuf()
            else:
                pixbuf = app_theme.get_pixbuf("sidebar/open.png").get_pixbuf()
                
            draw_pixbuf(
                cr,
                pixbuf,
                rect.x + rect.width - CATEGORY_ITEM_EXPAND_PADDING_X,
                rect.y + (rect.height - pixbuf.get_height()) / 2)
コード例 #6
0
 def render_name(self, cr, rect):
     text_color = "#333333"
     if self.is_select:
         cr.set_source_rgba(*color_hex_to_cairo(app_theme.get_color("sidebar_select").get_color()))
         cr.rectangle(rect.x, rect.y, rect.width, rect.height)
         cr.fill()
         
         text_color = "#FFFFFF"
     elif self.is_hover:
         cr.set_source_rgba(*color_hex_to_cairo(app_theme.get_color("sidebar_hover").get_color()))
         cr.rectangle(rect.x, rect.y, rect.width, rect.height)
         cr.fill()
     
     draw_text(cr, 
               get_category_name(self.second_category_name),
               rect.x + SECOND_CATEGORY_PADDING_X,
               rect.y,
               rect.width,
               rect.height,
               text_size=SECOND_CATEGORY_ITEM_NAME_SIZE,
               text_color=text_color,
               )
コード例 #7
0
    def single_click(self, column, offset_x, offset_y):

        # init Loading widget
        loading_box = LoadingBox()

        global_event.emit("show-pkg-view", loading_box)

        self.page_box = gtk.VBox()    

        self.all_pkg_names = []
        self.all_desktop_infos = {}
        for (second_category, pkg_dict) in self.second_category_items.items():
            for (pkg_name, desktop_info) in pkg_dict.items():
                self.all_pkg_names.append(pkg_name)
                self.all_desktop_infos[pkg_name] = desktop_info
            
        self.message_bar = MessageBar(18)
        self.message_bar.set_message(_("%s: %s applications") % (
                    get_category_name(self.first_category_name), 
                    len(self.all_pkg_names),
                    ))
        
        self.pkg_icon_view = IconView() 
        self.pkg_icon_view.connect("motion-notify-item", tooltip_aciton)
        if len(self.all_pkg_names) > LOAD_ITEMS_NUMBER:
            self.load_new_items(self.all_pkg_names[:LOAD_ITEMS_NUMBER])
        else:
            self.load_new_items(self.all_pkg_names)

        self.pkg_icon_view.draw_mask = self.draw_mask
        self.pkg_icon_view.draw_row_mask = self.draw_row_mask
        self.pkg_icon_scrolled_window = ScrolledWindow()
        self.pkg_icon_scrolled_window.connect("vscrollbar-state-changed", self.scrolled_window_vscrollbar_handler)
        self.pkg_icon_scrolled_window.add_child(self.pkg_icon_view)
        
        self.page_box.pack_start(self.message_bar, False, False)
        self.page_box.pack_start(self.pkg_icon_scrolled_window, True, True)
        global_event.emit("update-current-status-pkg-page", self.pkg_icon_view)
コード例 #8
0
ファイル: detail_page.py プロジェクト: kissthink/deepin-store
    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.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(5.0, 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)

        self.fetch_pkg_status()

        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("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;"),
                                         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()
コード例 #9
0
    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.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(5.0, 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)

        self.fetch_pkg_status()

        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("&", "&amp;").replace("<", "&lt;").replace(
                ">", "&gt;"), 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()