update
authorMichael 'Mickey' Lauer <mickey@vanille-media.de>
Fri, 27 Feb 2004 00:03:36 +0000 (00:03 +0000)
committerMichael 'Mickey' Lauer <mickey@vanille-media.de>
Fri, 27 Feb 2004 00:03:36 +0000 (00:03 +0000)
bin/commander/commander.pro
bin/commander/packageview.py
bin/commander/provideritem.py

index aa7a29d..4d9a2f0 100644 (file)
@@ -7,3 +7,4 @@ FORMS   = mainwindowbase.ui \
        aboutdialogbase.ui
 TEMPLATE       =app
 CONFIG += qt warn_on release
+LANGUAGE       = C++
index f5cdac1..9f48e1b 100644 (file)
@@ -3,10 +3,12 @@
 
 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
@@ -15,9 +17,39 @@ class PackageView( QListView ):
         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
index df5b168..31dc5cc 100644 (file)
@@ -5,20 +5,35 @@ from qt import *
 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
@@ -35,22 +50,40 @@ class ProviderItem( QListViewItem ):
                 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") )
@@ -63,6 +96,9 @@ class ProviderItem( QListViewItem ):
 
     def st( self, column, value ):
         self.setText( ProviderItem.columns[column], value )
+        
+    def toggleCheck( self ):
+        self.setCheckStatus( not self.checked )
 
 #------------------------------------------------------------------------#
 # main