diff --git a/spritz/src/gui.py b/spritz/src/gui.py index 15bf51ece..43929f8f5 100644 --- a/spritz/src/gui.py +++ b/spritz/src/gui.py @@ -200,7 +200,7 @@ class SpritzGUI: self.queueView = EntropyQueueView(self.ui.queueView,self.queue) self.pkgView = EntropyPackageView(self.ui.viewPkg,self.queueView, self.ui, self.etpbase) self.filesView = EntropyFilesView(self.ui.filesView) - self.advisoriesView = EntropyAdvisoriesView(self.ui.advisoriesView) + self.advisoriesView = EntropyAdvisoriesView(self.ui.advisoriesView, self.ui, self.etpbase) self.queue.connect_objects(self.Entropy, self.etpbase, self.pkgView, self.ui) #self.catView = SpritzCategoryView(self.ui.tvCategory) self.catsView = CategoriesView(self.ui.tvComps,self.queueView) diff --git a/spritz/src/packages.py b/spritz/src/packages.py index bb3dc5e05..53e947c7d 100644 --- a/spritz/src/packages.py +++ b/spritz/src/packages.py @@ -56,15 +56,18 @@ class EntropyPackages: self._categoryPackages = {} self.categories = set() self.selected_treeview_item = None + self.selected_advisory_item = None self.pkgInCats = PkgInCategoryList() def clearPackages(self): self._packages.clear() self.selected_treeview_item = None + self.selected_advisory_item = None def clearCache(self): self.pkgCache.clear() self.selected_treeview_item = None + self.selected_advisory_item = None def populatePackages(self,masks): for flt in masks: diff --git a/spritz/src/spritz.glade b/spritz/src/spritz.glade index 999748a4f..68ad8e39b 100644 --- a/spritz/src/spritz.glade +++ b/spritz/src/spritz.glade @@ -1881,7 +1881,7 @@ - + True False True @@ -1890,6 +1890,7 @@ True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 + True @@ -2271,56 +2272,14 @@ 3 2 - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 150 - - - 1 - 2 - 2 - 3 - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 150 - - - 1 - 2 - 1 - 2 - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 150 - - - 1 - 2 - - - - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 10 - What you were doing + Your Full Name - 2 - 3 GTK_FILL @@ -2339,17 +2298,59 @@ - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 10 - Your Full Name + What you were doing + 2 + 3 GTK_FILL + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 150 + + + 1 + 2 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 150 + + + 1 + 2 + 1 + 2 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 150 + + + 1 + 2 + 2 + 3 + + 3 @@ -2846,103 +2847,18 @@ 10 3 - + True - 0 - Identifier - - - GTK_FILL - - - - - - True - 0 - Description - - - 1 - 2 - GTK_FILL - - - - - - True - 0 - Download mirrors - - - 2 - 3 - GTK_FILL - - - - - - True - 0 - Database URL - - - 3 - 4 - GTK_FILL - - - - - - True - True + bz2 +gz 1 2 - - - - - - True - True - - - 1 - 2 - 1 - 2 - - - - - - True - True - - - 1 - 2 - 3 - 4 - - - - - - True - 0 - Database compression - - 4 5 GTK_FILL - + GTK_FILL @@ -3083,18 +2999,103 @@ - + True - bz2 -gz + 0 + Database compression + + + 4 + 5 + GTK_FILL + + + + + + True + True 1 2 - 4 - 5 + 3 + 4 + + + + + + True + True + + + 1 + 2 + 1 + 2 + + + + + + True + True + + + 1 + 2 + + + + + + True + 0 + Database URL + + + 3 + 4 GTK_FILL - GTK_FILL + + + + + + True + 0 + Download mirrors + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + Description + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + Identifier + + + GTK_FILL + @@ -3563,7 +3564,91 @@ gz 5 5 - + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 12 + 13 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Creation date + True + + + 12 + 13 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 11 + 12 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Install Size + True + + + 11 + 12 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 10 + 11 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Package Size + True + + + 10 + 11 + + + + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 @@ -3574,234 +3659,21 @@ gz 1 2 - 1 - 2 + 9 + 10 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Website + MD5 Signature True - 1 - 2 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Location - True - - - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Version - True - - - 2 - 3 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 2 - 3 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Slot - True - - - 3 - 4 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 3 - 4 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Kernel Tag - True - - - 4 - 5 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 4 - 5 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Revision - True - - - 5 - 6 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 5 - 6 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Branch - True - - - 6 - 7 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 6 - 7 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Entropy API - True - - - 7 - 8 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 7 - 8 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Download Path - True - - - 8 - 9 + 9 + 10 @@ -3822,20 +3694,233 @@ gz - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - MD5 Signature + Download Path True - 9 - 10 + 8 + 9 - + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 7 + 8 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Entropy API + True + + + 7 + 8 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 6 + 7 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Branch + True + + + 6 + 7 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 5 + 6 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Revision + True + + + 5 + 6 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 4 + 5 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Kernel Tag + True + + + 4 + 5 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 3 + 4 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Slot + True + + + 3 + 4 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + 2 + 3 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Version + True + + + 2 + 3 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Location + True + + + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + + + 1 + 2 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Website + True + + + 1 + 2 + GTK_FILL + + + + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 @@ -3846,92 +3931,8 @@ gz 1 2 - 9 - 10 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Package Size - True - - - 10 - 11 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 10 - 11 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Install Size - True - - - 11 - 12 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 11 - 12 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Creation date - True - - - 12 - 13 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - - - 1 - 2 - 12 - 13 + 1 + 2 @@ -3964,7 +3965,7 @@ gz 2 15 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 @@ -3975,115 +3976,21 @@ gz 1 2 - 3 - 4 + 5 + 6 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - CXXFLAGS + Masked True - 3 - 4 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - True - - - 1 - 2 - 2 - 3 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - CFLAGS - True - - - 2 - 3 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - True - - - 1 - 2 - 1 - 2 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - CHOST - True - - - 1 - 2 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True - True - True - - - 1 - 2 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - USE Flags - True - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Eclasses - True - - - 4 - 5 + 5 + 6 @@ -4103,20 +4010,29 @@ gz - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Masked + Eclasses True - 5 - 6 + 4 + 5 - + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + USE Flags + True + + + + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 @@ -4127,8 +4043,93 @@ gz 1 2 - 5 - 6 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + CHOST + True + + + 1 + 2 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + True + + + 1 + 2 + 1 + 2 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + CFLAGS + True + + + 2 + 3 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + True + + + 1 + 2 + 2 + 3 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + CXXFLAGS + True + + + 3 + 4 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + True + True + True + + + 1 + 2 + 3 + 4 diff --git a/spritz/src/spritz.py b/spritz/src/spritz.py index da1a10ae0..f17257535 100644 --- a/spritz/src/spritz.py +++ b/spritz/src/spritz.py @@ -132,6 +132,11 @@ class SpritzController(Controller): return identifier, source, destination return 0,None,None + def on_advInfoButton_clicked( self, widget ): + if self.etpbase.selected_advisory_item: + print "load",self.etpbase.selected_advisory_item + #self.loadAdvInfoMenu(self.etpbase.selected_advisory_item) + def on_pkgInfoButton_clicked( self, widget ): if self.etpbase.selected_treeview_item: self.loadPkgInfoMenu(self.etpbase.selected_treeview_item) @@ -1051,19 +1056,19 @@ class SpritzApplication(SpritzController,SpritzGUI): self.progress.total.show() def populateAdvisories(self, widget, show): + self.setBusy() cached = None try: cached = self.Advisories.get_advisories_cache() except (IOError, EOFError): pass if cached == None: - self.setBusy() self.setPage('output') cached = self.Advisories.get_advisories_metadata() self.setPage('glsa') - self.unsetBusy() if cached: self.advisoriesView.populate(self.Advisories, cached, show) + self.unsetBusy() def populateFilesUpdate(self): # load filesUpdate interface and fill self.filesView diff --git a/spritz/src/views.py b/spritz/src/views.py index d43bf1d14..557ce019f 100644 --- a/spritz/src/views.py +++ b/spritz/src/views.py @@ -232,8 +232,6 @@ class EntropyPackageView: def reposition_menu(self, menu): # devo tradurre x=0,y=20 in posizioni assolute abs_x, abs_y = self.loaded_event.get_root_coords() - #print abs_x,abs_y - #print self.loaded_event.x,self.loaded_event.y abs_x -= self.loaded_event.x event_y = self.loaded_event.y # FIXME: find a better way to properly position menu @@ -670,31 +668,34 @@ class EntropyFilesView: class EntropyAdvisoriesView: """ Queue View Class""" - def __init__( self, widget ): + def __init__( self, widget, ui, etpbase ): self.view = widget - self.adv_metadata = {} self.model = self.setup_view() + self.etpbase = etpbase + self.ui = ui def setup_view( self ): model = gtk.ListStore( - gobject.TYPE_STRING, + gobject.TYPE_PYOBJECT, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING ) self.view.set_model( model ) - cell0 = gtk.CellRendererText() - column0 = gtk.TreeViewColumn( _("Status"), cell0, markup = 0 ) + # Setup resent column + cell0 = gtk.CellRendererPixbuf() + self.set_icon_to_cell(cell0, 'gtk-apply' ) + column0 = gtk.TreeViewColumn( _("Status"), cell0 ) + column0.set_cell_data_func( cell0, self.new_icon ) column0.set_sizing( gtk.TREE_VIEW_COLUMN_FIXED ) column0.set_fixed_width( 50 ) - column0.set_cell_data_func( cell0, self.get_data_text ) self.view.append_column( column0 ) cell1 = gtk.CellRendererText() column1 = gtk.TreeViewColumn( _("GLSA id."), cell1, markup = 1 ) column1.set_sizing( gtk.TREE_VIEW_COLUMN_FIXED ) - column1.set_fixed_width( 85 ) + column1.set_fixed_width( 80 ) column1.set_resizable( True ) column1.set_cell_data_func( cell1, self.get_data_text ) self.view.append_column( column1 ) @@ -702,7 +703,7 @@ class EntropyAdvisoriesView: cell2 = gtk.CellRendererText() column2 = gtk.TreeViewColumn( _( "Package key" ), cell2, markup = 2 ) column2.set_sizing( gtk.TREE_VIEW_COLUMN_FIXED ) - column2.set_fixed_width( 220 ) + column2.set_fixed_width( 210 ) column2.set_resizable( True ) column2.set_cell_data_func( cell2, self.get_data_text ) self.view.append_column( column2 ) @@ -710,20 +711,48 @@ class EntropyAdvisoriesView: cell3 = gtk.CellRendererText() column3 = gtk.TreeViewColumn( _( "Description" ), cell3, markup = 3 ) column3.set_sizing( gtk.TREE_VIEW_COLUMN_FIXED ) - column3.set_fixed_width( 170 ) + column3.set_fixed_width( 190 ) column3.set_resizable( True ) column3.set_cell_data_func( cell3, self.get_data_text ) self.view.append_column( column3 ) - self.view.get_selection().set_mode( gtk.SELECTION_MULTIPLE ) + self.view.connect("button-release-event", self.set_advisory_id) + self.view.get_selection().set_mode( gtk.SELECTION_SINGLE ) return model + def set_advisory_id(self, widget, event): + + model, myiter = widget.get_selection().get_selected() + if myiter: + key, affected, data = model.get_value( myiter, 0 ) + self.enable_properties_menu(key) + else: + self.enable_properties_menu(None) + + def enable_properties_menu(self, key): + self.etpbase.selected_treeview_item = None + do = False + if key: + do = True + self.etpbase.selected_treeview_item = key + self.ui.advInfoButton.set_sensitive(do) + + def set_icon_to_cell(self, cell, icon): + cell.set_property( 'icon-name', icon ) + + def new_icon( self, column, cell, model, iter ): + key, affected, data = model.get_value( iter, 0 ) + if affected: + self.set_icon_to_cell(cell, 'gtk-cancel') + else: + self.set_icon_to_cell(cell, 'gtk-apply') + def get_data_text( self, column, cell, model, iter ): - obj = model.get_value( iter, 0 ) - if obj == "AFF": + key, affected, data = model.get_value( iter, 0 ) + if affected: cell.set_property('background',"#A71B1B") cell.set_property('foreground',"#FFFFFF") - elif obj == "UN": + else: cell.set_property('background',"darkgreen") cell.set_property('foreground',"#FFFFFF") @@ -731,30 +760,30 @@ class EntropyAdvisoriesView: def populate( self, securityConn, adv_metadata, show ): self.model.clear() - self.adv_metadata = adv_metadata + self.enable_properties_menu(None) only_affected = False only_unaffected = False all = False if show == "affected": only_affected = True - elif show == "unaffected": + elif show == "applied": only_unaffected = True else: all = True + identifiers = {} adv_keys = adv_metadata.keys() adv_keys.sort() - identifiers = [] for key in adv_keys: affected = securityConn.is_affected(key) if all: - identifiers.append(key) + identifiers[key] = affected elif only_affected and not affected: continue elif only_unaffected and affected: continue - identifiers.append(key) + identifiers[key] = affected for key in identifiers: if not adv_metadata[key]['affected']: @@ -766,7 +795,7 @@ class EntropyAdvisoriesView: mydata = adv_metadata[key] self.model.append( [ - "AFF", + (key,identifiers[key],adv_metadata[key].copy(),), key, "%s" % (a_key,), "%s" % (mydata['title'],)