Beispiel #1
0
    def __init__(self,
                 datadir,
                 desktopdir,
                 cache,
                 db,
                 icons,
                 apps_filter=None,  # FIXME: kill this, its not needed anymore?
                 apps_limit=0):

        """ init the widget, takes

        datadir - the base directory of the app-store data
        desktopdir - the dir where the applications.menu file can be found
        db - a Database object
        icons - a Gtk.IconTheme
        apps_filter - ?
        apps_limit - the maximum amount of items to display to query for
        """

        self.cache = cache
        self.db = db
        self.icons = icons
        self.properties_helper = AppPropertiesHelper(
            self.db, self.cache, self.icons)
        self.section = None

        Viewport.__init__(self)
        CategoriesParser.__init__(self, db)

        self.set_name("category-view")

        # setup base widgets
        # we have our own viewport so we know when the viewport grows/shrinks
        # setup widgets

        self.vbox = Gtk.VBox()
        self.add(self.vbox)

        # atk stuff
        atk_desc = self.get_accessible()
        atk_desc.set_name(_("Departments"))

        # appstore stuff
        self.categories = []
        self.header = ""
        #~ self.apps_filter = apps_filter
        self.apps_limit = apps_limit
        # for comparing on refreshes
        self._supported_only = False

        # more stuff
        self._poster_sigs = []
        self._allocation = None

        self._cache_art_assets()
        #~ assets = self._cache_art_assets()
        #~ self.vbox.connect("draw", self.on_draw, assets)
        self._prev_alloc = None
        self.connect("size-allocate", self.on_size_allocate)
        return
Beispiel #2
0
    def __init__(
            self,
            datadir,
            desktopdir,
            cache,
            db,
            icons,
            apps_filter=None,  # FIXME: kill this, its not needed anymore?
            apps_limit=0):
        """ init the widget, takes

        datadir - the base directory of the app-store data
        desktopdir - the dir where the applications.menu file can be found
        db - a Database object
        icons - a Gtk.IconTheme
        apps_filter - ?
        apps_limit - the maximum amount of items to display to query for
        """

        self.cache = cache
        self.db = db
        self.icons = icons
        self.properties_helper = AppPropertiesHelper(self.db, self.cache,
                                                     self.icons)
        self.section = None

        Viewport.__init__(self)
        CategoriesParser.__init__(self, db)

        self.set_name("category-view")

        # setup base widgets
        # we have our own viewport so we know when the viewport grows/shrinks
        # setup widgets

        self.vbox = Gtk.VBox()
        self.add(self.vbox)

        # atk stuff
        atk_desc = self.get_accessible()
        atk_desc.set_name(_("Departments"))

        # appstore stuff
        self.categories = []
        self.header = ""
        #~ self.apps_filter = apps_filter
        self.apps_limit = apps_limit
        # for comparing on refreshes
        self._supported_only = False

        # more stuff
        self._poster_sigs = []
        self._allocation = None

        self._cache_art_assets()
        #~ assets = self._cache_art_assets()
        #~ self.vbox.connect("draw", self.on_draw, assets)
        self._prev_alloc = None
        self.connect("size-allocate", self.on_size_allocate)
        return
    def test_visual_glitch_lp1048912(self):
        win = Gtk.Window()
        win.set_size_request(500, 300)

        scroll = Gtk.ScrolledWindow()
        win.add(scroll)

        viewport = Viewport()
        scroll.add(viewport)

        top_hbox = Gtk.HBox()
        viewport.add(top_hbox)

        right_column = Gtk.Box.new(Gtk.Orientation.VERTICAL, 0)
        top_hbox.pack_start(right_column, True, True, 0)

        apptiles = Gtk.VBox()
        apptiles_frame = FramedHeaderBox()
        apptiles_frame.set_name("apptiles top")
        apptiles_frame.set_header_label("Frame1")
        apptiles_frame.add(apptiles)
        right_column.pack_start(apptiles_frame, True, True, 0)
        apptiles_frame.header_implements_more_button()

        apptiles2 = Gtk.VBox()
        apptiles2_frame = FramedHeaderBox()
        apptiles2_frame.set_name("apptiles bottom")
        apptiles2_frame.set_header_label("Frame2")
        apptiles2_frame.add(apptiles2)
        right_column.pack_start(apptiles2_frame, True, True, 0)
        apptiles2_frame.header_implements_more_button()

        # this delayed adding of the tiles causes a visual glitch like
        # described in #1048912 on the top of the bottom frame the line
        # will not be drawn correctly - any subsequent redraw of the
        # window will fix it
        GLib.timeout_add(1000, add_tiles, apptiles2)

        # this "viewport.queue_draw()" will fix the glitch
        #GLib.timeout_add_seconds(2, lambda: viewport.queue_draw())

        # stop the test
        GLib.timeout_add_seconds(3, Gtk.main_quit)

        win.connect("destroy", Gtk.main_quit)
        win.show_all()
        Gtk.main()
Beispiel #4
0
    def test_visual_glitch_lp1048912(self):
        win = Gtk.Window()
        win.set_size_request(500, 300)

        scroll = Gtk.ScrolledWindow()
        win.add(scroll)

        viewport = Viewport()
        scroll.add(viewport)

        top_hbox = Gtk.HBox()
        viewport.add(top_hbox)

        right_column = Gtk.Box.new(Gtk.Orientation.VERTICAL, 0)
        top_hbox.pack_start(right_column, True, True, 0)

        apptiles = Gtk.VBox()
        apptiles_frame = FramedHeaderBox()
        apptiles_frame.set_name("apptiles top")
        apptiles_frame.set_header_label("Frame1")
        apptiles_frame.add(apptiles)
        right_column.pack_start(apptiles_frame, True, True, 0)
        apptiles_frame.header_implements_more_button()

        apptiles2 = Gtk.VBox()
        apptiles2_frame = FramedHeaderBox()
        apptiles2_frame.set_name("apptiles bottom")
        apptiles2_frame.set_header_label("Frame2")
        apptiles2_frame.add(apptiles2)
        right_column.pack_start(apptiles2_frame, True, True, 0)
        apptiles2_frame.header_implements_more_button()

        # this delayed adding of the tiles causes a visual glitch like
        # described in #1048912 on the top of the bottom frame the line
        # will not be drawn correctly - any subsequent redraw of the
        # window will fix it
        GLib.timeout_add(1000, add_tiles, apptiles2)

        # this "viewport.queue_draw()" will fix the glitch
        #GLib.timeout_add_seconds(2, lambda: viewport.queue_draw())

        # stop the test
        GLib.timeout_add_seconds(3, Gtk.main_quit)

        win.connect("destroy", Gtk.main_quit)
        win.show_all()
        Gtk.main()