insert columns for check and status
[vuplus_bitbake] / bin / commander / provideritem.py
1 #!/usr/bin/env python
2 # -*- coding: iso8859-15 -*-
3
4 from qt import *
5 from appinfo import *
6 from packages import Packages
7
8 class ProviderItem( QListViewItem ):
9
10     columns = { "PROVIDES":     0,
11                 "CATEGORY":     3,
12                 "SECTION":      4,
13                 "PRIORITY":     5,
14                 "MAINTAINER":   6,
15                 "SRC_URI":      7,
16                 "HOMEPAGE":     8,
17                 "DEPENDS":      9,
18                 "RDEPENDS":    10,
19                 "SHORTNAME":   11 }
20
21     def __init__( self, parent, provider ):
22         self.parent = parent
23         self.p = Packages.instance()
24         self.fullname = provider
25         self.shortname = provider.split( "/" )[-1]
26         self.virtual = self.virtualValue()
27
28         if self.virtual:
29             #
30             # check if a corresponding parent element already has been added
31             #
32             vparent = parent.findItem( self.virtual, 0 )
33             if not vparent:
34                 vparent = ProviderItem( parent, self.virtual )
35                 vparent.setPixmap( 0, QPixmap( imageDir + "virtual.png" ) )
36
37             QListViewItem.__init__( self, vparent, provider )
38         else:
39             QListViewItem.__init__( self, parent, provider )
40
41         self.decorate()
42         self.setPixmap( 0, QPixmap( imageDir + "package.png" ) )
43
44
45     def virtualValue( self ):
46         #print self.p.data(self.fullname, "PROVIDES" )
47         providers = self.p.data(self.fullname, "PROVIDES" ).split()
48         for p in providers:
49             if p.split( '/' )[0] == "virtual": return p
50
51     def decorate( self ):
52         if not self.fullname.startswith( "virtual" ):
53             self.st( "PROVIDES", self.fullname.split('/')[-1] )
54         self.st( "CATEGORY", self.p.data(self.fullname, "CATEGORY") )
55         self.st( "SECTION", self.p.data(self.fullname, "SECTION") )
56         self.st( "PRIORITY", self.p.data(self.fullname, "PRIORITY") )
57         self.st( "MAINTAINER", self.p.data(self.fullname, "MAINTAINER") )
58         self.st( "SRC_URI", self.p.data(self.fullname, "SRC_URI") )
59         self.st( "HOMEPAGE", self.p.data(self.fullname, "HOMEPAGE") )
60         self.st( "DEPENDS", self.p.data(self.fullname, "DEPENDS") )
61         self.st( "RDEPENDS", self.p.data(self.fullname, "RDEPENDS") )
62         self.st( "SHORTNAME", self.shortname )
63
64     def st( self, column, value ):
65         self.setText( ProviderItem.columns[column], value )
66
67 #------------------------------------------------------------------------#
68 # main
69 #------------------------------------------------------------------------#
70
71 if __name__ == "__main__":
72     import sys
73     from qt import *
74     app = QApplication( sys.argv )
75     mw = QListView()
76     app.setMainWidget( mw )
77     app.exec_loop()
78