aboutsummaryrefslogtreecommitdiffstats
path: root/bin/commander/packageview.py
blob: cf04f7e62655394e9ed6c8782dd52297587ac4f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/env python
# -*- coding: iso8859-15 -*-

from qt import *
from packages import Packages
from appinfo import *
connect = QObject.connect

class PackageView( QListView ):

    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

    def __init__( self, *args ):
        QListView.__init__( self, *args )

        for c in PackageView.columns:
            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 and col == self.coldict["CHECK"]: item.toggleCheck()
        
    def expandAll( self, expand = True ):
        it = QListViewItemIterator( self )
        while it.current():
            it.current().setOpen( expand )
            it += 1
            
#------------------------------------------------------------------------#
# main
#------------------------------------------------------------------------#

if __name__ == "__main__":
    import sys
    from qt import *
    app = QApplication( sys.argv )
    mw = PackageView()
    app.setMainWidget( mw )
    app.exec_loop()