#!/usr/bin/env python # The gui for Scannit # Author: Harry Mills # 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()