All pastes #556743 Raw Edit

Untitled

public text v1 · immutable
·published 2007-06-10 18:54 UTC
rendered paste body
#!/usr/bin/env python
# The gui for Scannit
# Author: Harry Mills <hjmills@gmail.com>
# Version: 0.1 beta

import sys
try:
    import pygtk
    pygtk.require("2.0")
except:
    pass
try:
    import gtk
    import gtk.glade
except:
    sys.exit(1)

class Scannit:
    def __init__(self):
        # Get some funktastick scanner finding stuff going on
        import functions
        scanners = functions.find_scanners()
        if scanners: # If we find any scanners
            # Import the glade file
            self.gladefile = 'scannit.glade'
            self.wTree = gtk.glade.XML(self.gladefile)
            # Get the main window and connect the destroy event
            self.window = self.wTree.get_widget('winMain')
            # Create a dictionary of signals to connect
            signals = { 'on_btnRefresh_clicked' : self.btnRefresh_clicked,
                        'on_winMain_destroy' : gtk.main_quit,
                        'on_btnQuit_clicked' : gtk.main_quit,
                        'on_btnInstall_clicked' : self.btnInstall_clicked,
            }
            self.wTree.signal_autoconnect(signals)
            # Set up the list view
            self.scannerView = self.wTree.get_widget('treeScanners')
            self.add_column_to_list('Bus ID')
            self.add_column_to_list('Backend')
            self.add_column_to_list('Scanner')
            self.scannerList = gtk.ListStore(str, str, str)
            self.scannerView.set_model(self.scannerList)
    
    def btnRefresh_clicked(self, widget):
        '''
        Refreshes the scanner list
        '''
        print 'Scanners refreshed'
        self.scannerList.clear()
        import functions
        scanners = functions.find_scanners().items()
        for scanner in scanners:
            print 'Scanner added to list', scanner[0], scanner[1][0], scanner[1][1]
            item = [scanner[0], scanner[1][0], scanner[1][1]]
            self.scannerList.append(item)
    
    def add_column_to_list(self, title):
        '''
        Adds a column to the listview
        '''
        column = gtk.TreeViewColumn(title, gtk.CellRendererText())
        column.set_resizable(True)
        #column.set_sort_column_id(columnID)
        self.scannerView.append_column(column)
    
    def btnInstall_clicked(self, widget):
        '''
        Installs the currently selected scanner
        '''
        print 'Scanner Installed'

if __name__ == '__main__':
    window = Scannit()
    gtk.main()