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()