from qt import *
from packages import Packages
+from appinfo import *
+connect = QObject.connect
class PackageView( QListView ):
- columns = "PROVIDES CHECK STATUS CATEGORY SECTION PRIORITY MAINTAINER SRC_URI HOMEPAGE DEPENDS RDEPENDS SHORTNAME".split()
+ columns = "PROVIDES CHECK A B C D E F STATUS CATEGORY SECTION PRIORITY MAINTAINER SRC_URI HOMEPAGE DEPENDS RDEPENDS SHORTNAME".split()
coldict = {}
for i in range( 0, len( columns ) ):
coldict[ columns[i] ] = i
QListView.__init__( self, *args )
for c in PackageView.columns:
- self.addColumn( c.title() )
+ if len( c ) > 1: self.addColumn( c.title() )
+ else: self.addColumn( " " )
+
+ self.setColumnWidthMode( 2, QListView.Manual )
+ self.setColumnWidthMode( 3, QListView.Manual )
+ self.setColumnWidthMode( 4, QListView.Manual )
+ self.setColumnWidthMode( 5, QListView.Manual )
+ self.setColumnWidthMode( 6, QListView.Manual )
+ self.setColumnWidthMode( 7, QListView.Manual )
+
+ header = self.header()
+
+ header.setLabel( 0, QIconSet( QPixmap( imageDir + "package.png" ) ), "Provider" )
+
+ header.setLabel( 2, QIconSet( QPixmap( imageDir + "do_unpack.png" ) ), "" )
+ header.setLabel( 3, QIconSet( QPixmap( imageDir + "do_patch.png" ) ), "" )
+ header.setLabel( 4, QIconSet( QPixmap( imageDir + "do_configure.png" ) ), "" )
+ header.setLabel( 5, QIconSet( QPixmap( imageDir + "do_compile.png" ) ), "" )
+ header.setLabel( 6, QIconSet( QPixmap( imageDir + "do_stage.png" ) ), "" )
+ header.setLabel( 7, QIconSet( QPixmap( imageDir + "do_install.png" ) ), "" )
+
self.setRootIsDecorated( True )
+ self.setAllColumnsShowFocus( True )
+ self.setShowSortIndicator( True )
+ self.setShowToolTips( True )
+ self.setColumnAlignment( PackageView.coldict["CHECK"], Qt.AlignCenter )
+
+ connect( self, SIGNAL( "mouseButtonClicked( int, QListViewItem*, const QPoint&, int )" ),
+ self.handleMouseButtonClicked )
+
+ def handleMouseButtonClicked( self, button, item, pos, col ):
+ if item: item.toggleCheck()
#------------------------------------------------------------------------#
# main
from appinfo import *
from packages import Packages
-class ProviderItem( QListViewItem ):
+class ProviderItem( QListViewItem ): #QCheckListItem
columns = { "PROVIDES": 0,
- "CATEGORY": 3,
- "SECTION": 4,
- "PRIORITY": 5,
- "MAINTAINER": 6,
- "SRC_URI": 7,
- "HOMEPAGE": 8,
- "DEPENDS": 9,
- "RDEPENDS": 10,
- "SHORTNAME": 11 }
+ "CHECK": 1,
+ "unpack":2, "patch":3, "configure":4, "compile":5, "stage":6, "install":7,
+ "STATUS": 8,
+ "CATEGORY": 9,
+ "SECTION": 10,
+ "PRIORITY": 11,
+ "MAINTAINER": 12,
+ "SRC_URI": 13,
+ "HOMEPAGE": 14,
+ "DEPENDS": 15,
+ "RDEPENDS": 16,
+ "SHORTNAME": 17 }
+ icons = {}
+
def __init__( self, parent, provider ):
+
+ if not ProviderItem.icons:
+ ProviderItem.icons = { "unpack" : QPixmap( imageDir + "do_unpack.png" ),
+ "patch" : QPixmap( imageDir + "do_patch.png" ),
+ "configure" : QPixmap( imageDir + "do_configure.png" ),
+ "compile" : QPixmap( imageDir + "do_compile.png" ),
+ "stage" : QPixmap( imageDir + "do_stage.png" ),
+ "install" : QPixmap( imageDir + "do_install.png" ) }
+
+
self.parent = parent
self.p = Packages.instance()
self.fullname = provider
vparent.setPixmap( 0, QPixmap( imageDir + "virtual.png" ) )
QListViewItem.__init__( self, vparent, provider )
+ #QCheckListItem.__init__( self, vparent, provider, QCheckListItem.CheckBox )
else:
QListViewItem.__init__( self, parent, provider )
+ #QCheckListItem.__init__( self, parent, provider, QCheckListItem.CheckBox )
self.decorate()
self.setPixmap( 0, QPixmap( imageDir + "package.png" ) )
-
-
+
+ self.setCheckStatus( False )
+
def virtualValue( self ):
#print self.p.data(self.fullname, "PROVIDES" )
providers = self.p.data(self.fullname, "PROVIDES" ).split()
for p in providers:
if p.split( '/' )[0] == "virtual": return p
+ def setCheckStatus( self, checked ):
+ self.checked = checked
+ if self.checked:
+ self.setPixmap( 1, QPixmap( imageDir + "checked.png" ) )
+ else:
+ self.setPixmap( 1, QPixmap( imageDir + "unchecked.png" ) )
+
+ def setBuildStatus( self, **args ):
+ for el in args:
+ if el in ProviderItem.columns:
+ self.setPixmap( ProviderItem.columns[el], ( QPixmap(), ProviderItem.icons[el] )[ args[el] ] )
+ if "status" in args:
+ self.setText( ProviderItem.columns["STATUS"], args["status"] )
+
def decorate( self ):
- if not self.fullname.startswith( "virtual" ):
- self.st( "PROVIDES", self.fullname.split('/')[-1] )
+ if self.fullname.startswith( "virtual" ):
+ return
+ self.st( "PROVIDES", self.fullname.split('/')[-1] )
self.st( "CATEGORY", self.p.data(self.fullname, "CATEGORY") )
self.st( "SECTION", self.p.data(self.fullname, "SECTION") )
self.st( "PRIORITY", self.p.data(self.fullname, "PRIORITY") )
def st( self, column, value ):
self.setText( ProviderItem.columns[column], value )
+
+ def toggleCheck( self ):
+ self.setCheckStatus( not self.checked )
#------------------------------------------------------------------------#
# main