def previewPreviewButtonClicked(self, widget): preferences = Preferences(Tools.preferencesXML) preferences.load() self.rename.generatePreviews(preferences['filesystem'], preferences['naming-style']) row = self.previewStore.get_iter_first() while (row != None): fileName = self.previewStore.get_value(row, 0) currentFileName = self.previewStore.get_value(row, 1) correctShowName = self.previewStore.get_value(row, 2) generatedFileName = self.previewStore.get_value(row, 3) FileName = self.previewStore.get_value(row, 4) self.previewStore.set_value(row, 0, FileName.fileName) self.previewStore.set_value(row, 1, FileName.currentFileName) self.previewStore.set_value(row, 2, FileName.CorrectShow.name) self.previewStore.set_value(row, 3, FileName.generatedFileName) row = self.previewStore.iter_next(row) showNameColumn = self.previewView.get_column(2) showNameColumn.set_visible(False) previewNameColumn = self.previewView.get_column(3) previewNameColumn.set_visible(True) self.previewView.columns_autosize() self.mainRenameButton.set_sensitive(True)
def showsUpdateButtonClicked(self, widget): self.database.write() preferences = Preferences(Tools.preferencesXML) preferences.load() #update warning dialog = gtk.MessageDialog( None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_QUESTION, gtk.BUTTONS_OK, None) hbox = gtk.HBox() hbox.pack_start( gtk.Label( "The Database is updating. ( The program may appear to freeze during this process. )" ), False, 5, 5) dialog.vbox.pack_end(hbox, True, True, 0) dialog.show_all() dialog.run() if self.to_boolean(preferences['imdbtv-with-tests']) == True: testimdbtv = imdbtvtest() testimdbtv.testDownloadShowList() testimdbtv.testGetShowDetails() se = NewBackendInterface(Tools.databaseDir) se.updateDatabase() dialog.destroy() #Fix treeview. Should manipulate, if necessary. self.showsStore.clear() self.database.loadDB() for Show in self.database.database: self.showsStore.append([Show.name, Show.backend, Show])
def showsUpdateButtonClicked (self, widget) : self.database.write() preferences = Preferences(Tools.preferencesXML) preferences.load() #update warning dialog = gtk.MessageDialog( None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_QUESTION, gtk.BUTTONS_OK, None) hbox = gtk.HBox() hbox.pack_start(gtk.Label("The Database is updating. ( The program may appear to freeze during this process. )"), False, 5, 5) dialog.vbox.pack_end(hbox, True, True, 0) dialog.show_all() dialog.run() if self.to_boolean(preferences['imdbtv-with-tests']) == True : testimdbtv = imdbtvtest() testimdbtv.testDownloadShowList() testimdbtv.testGetShowDetails() se = NewBackendInterface(Tools.databaseDir) se.updateDatabase() dialog.destroy() #Fix treeview. Should manipulate, if necessary. self.showsStore.clear() self.database.loadDB() for Show in self.database.database : self.showsStore.append([ Show.name, Show.backend, Show ])
def previewPreviewButtonClicked (self, widget) : preferences = Preferences(Tools.preferencesXML) preferences.load() self.rename.generatePreviews(preferences['filesystem'], preferences['naming-style']) row = self.previewStore.get_iter_first() while( row != None ) : fileName = self.previewStore.get_value(row, 0) currentFileName = self.previewStore.get_value(row, 1) correctShowName = self.previewStore.get_value(row, 2) generatedFileName = self.previewStore.get_value(row, 3) FileName = self.previewStore.get_value(row, 4) self.previewStore.set_value(row, 0, FileName.fileName) self.previewStore.set_value(row, 1, FileName.currentFileName) self.previewStore.set_value(row, 2, FileName.CorrectShow.name) self.previewStore.set_value(row, 3, FileName.generatedFileName) row = self.previewStore.iter_next(row) showNameColumn = self.previewView.get_column(2) showNameColumn.set_visible(False) previewNameColumn = self.previewView.get_column(3) previewNameColumn.set_visible(True) self.previewView.columns_autosize() self.mainRenameButton.set_sensitive(True)
def mainRenameButtonClicked (self, widget) : preferences = Preferences(Tools.preferencesXML) preferences.load() if self.to_boolean(preferences['confirm-on-rename']) == True : #base this on a message dialog dialog = gtk.MessageDialog( None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_QUESTION, gtk.BUTTONS_OK_CANCEL, None) hbox = gtk.HBox() hbox.pack_start(gtk.Label("Do You Really Want To Rename?"), False, 5, 5) dialog.vbox.pack_end(hbox, True, True, 0) dialog.show_all() result = dialog.run() dialog.destroy() if result == gtk.RESPONSE_CANCEL : return self.rename.rename() row = self.previewStore.get_iter_first() while( row != None ) : fileName = self.previewStore.get_value(row, 0) currentFileName = self.previewStore.get_value(row, 1) correctShowName = self.previewStore.get_value(row, 2) generatedFileName = self.previewStore.get_value(row, 3) FileName = self.previewStore.get_value(row, 4) self.previewStore.set_value(row, 0, FileName.fileName) self.previewStore.set_value(row, 1, FileName.currentFileName) self.previewStore.set_value(row, 2, FileName.CorrectShow.name) self.previewStore.set_value(row, 3, FileName.generatedFileName) row = self.previewStore.iter_next(row) currentNameColumn = self.previewView.get_column(1) currentNameColumn.set_visible(True) self.previewView.columns_autosize() self.mainRenameButton.set_sensitive(False) self.mainRevertButton.set_sensitive(True)
def mainRenameButtonClicked(self, widget): preferences = Preferences(Tools.preferencesXML) preferences.load() if self.to_boolean(preferences['confirm-on-rename']) == True: #base this on a message dialog dialog = gtk.MessageDialog( None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_QUESTION, gtk.BUTTONS_OK_CANCEL, None) hbox = gtk.HBox() hbox.pack_start(gtk.Label("Do You Really Want To Rename?"), False, 5, 5) dialog.vbox.pack_end(hbox, True, True, 0) dialog.show_all() result = dialog.run() dialog.destroy() if result == gtk.RESPONSE_CANCEL: return self.rename.rename() row = self.previewStore.get_iter_first() while (row != None): fileName = self.previewStore.get_value(row, 0) currentFileName = self.previewStore.get_value(row, 1) correctShowName = self.previewStore.get_value(row, 2) generatedFileName = self.previewStore.get_value(row, 3) FileName = self.previewStore.get_value(row, 4) self.previewStore.set_value(row, 0, FileName.fileName) self.previewStore.set_value(row, 1, FileName.currentFileName) self.previewStore.set_value(row, 2, FileName.CorrectShow.name) self.previewStore.set_value(row, 3, FileName.generatedFileName) row = self.previewStore.iter_next(row) currentNameColumn = self.previewView.get_column(1) currentNameColumn.set_visible(True) self.previewView.columns_autosize() self.mainRenameButton.set_sensitive(False) self.mainRevertButton.set_sensitive(True)
class PreferencesDialog: ''' Preferences. ''' def __init__(self): self.gladefile = "veefire-gtk.glade" ## # Initialize dialog from Glade file. ## self.wTree = gtk.glade.XML(self.gladefile, "preferencesDialog") self.dlg = self.wTree.get_widget("preferencesDialog") def to_boolean(self, string): if string == "True" or string == "true" or string == True or string == 1: return True else: return False def changeNamingStyleLabel(self, widget): self.namingStyleComboBoxEntry = self.wTree.get_widget( "naming-styleEntry") self.namingStyleLabel = self.wTree.get_widget("naming-styleLabel") Style = self.namingStyleComboBoxEntry.get_text() fileName = FileName('dummyName', 'dummyDB') fileName.fileSuffix = '' # generateFileName needs this attribute to be set. aShow = Show("Black Books", "dummyDuration", "dummyBackend", "dummyUrl") aShow.addEpisode(Episode("2", "Sample Title", "6 November, 2008"), Season("1")) newLabel = fileName.generateFileName(aShow, Tools.filetypesXML, 'ext3', Style) self.namingStyleLabel.set_text(newLabel) def editFilesystem(self, widget): pass def initPreferences(self): ''' Get values from preferences.xml ''' self.preferences = Preferences(Tools.preferencesXML) self.preferences.load() ## # Set General ## self.namingStyleComboBoxEntry = self.wTree.get_widget( "naming-styleComboBoxEntry") self.namingStyleListstore = gtk.ListStore(str) self.namingStyleComboBoxEntry.set_model(self.namingStyleListstore) self.namingStyleComboBoxEntry.set_text_column(0) for style in self.preferences.getOptions('naming-style'): if style == self.preferences['naming-style']: self.namingStyleListstore.prepend([style]) else: self.namingStyleListstore.append([style]) self.namingStyleEntry = self.wTree.get_widget("naming-styleEntry") self.namingStyleEntry.set_text(self.namingStyleListstore[0][0]) self.namingStyleComboBoxEntry.connect('changed', self.changeNamingStyleLabel) # set example to current preference. self.namingStyleLabel = self.wTree.get_widget("naming-styleLabel") Style = self.namingStyleEntry.get_text() fileName = FileName('dummyName', 'dummyDB') fileName.fileSuffix = '' # generateFileName needs this attribute to be set. aShow = Show("Black Books", "dummyDuration", "dummyBackend", "dummyUrl") aShow.addEpisode(Episode("2", "Sample Title", "6 November, 2008"), Season("1")) newLabel = fileName.generateFileName(aShow, Tools.filetypesXML, 'ext3', Style) self.namingStyleLabel.set_text(newLabel) self.confirmOnRenameCheckButton = self.wTree.get_widget( "confirm-on-renameCheckButton") self.confirmOnRenameCheckButton.set_active( self.to_boolean(self.preferences['confirm-on-rename'])) # Filesystem self.preferencesSelectFilesystemComboBox = self.wTree.get_widget( "preferencesSelectFilesystemComboBox") self.preferencesSelectFilesystemListstore = gtk.ListStore(str) self.preferencesSelectFilesystemComboBox.set_model( self.preferencesSelectFilesystemListstore) for fs in Filesystems(Tools.filetypesXML).loadFilesystems(): if fs.name == self.preferences['filesystem']: self.preferencesSelectFilesystemListstore.prepend([fs.name]) else: self.preferencesSelectFilesystemListstore.append([fs.name]) self.preferencesSelectFilesystemComboBox.set_active(0) self.preferencesEditFilesystemButton = self.wTree.get_widget( "preferencesEditFilesystemButton") self.preferencesEditFilesystemButton.connect('clicked', self.editFilesystem) ## # Set Database ## self.updateOnStartupCheckButton = self.wTree.get_widget( "update-on-startupCheckButton") self.updateOnStartupCheckButton.set_active( self.to_boolean(self.preferences['update-on-startup'])) ## # Set Backends ## self.imdbtvWithTestsCheckButton = self.wTree.get_widget( "imdbtv-with-testsCheckButton") self.imdbtvWithTestsCheckButton.set_active( self.to_boolean(self.preferences['imdbtv-with-tests'])) def run(self): self.initPreferences() self.result = self.dlg.run() ## # Get General ## namingStyle = self.namingStyleEntry.get_text() if namingStyle != self.namingStyleListstore[0][0]: self.preferences['naming-style'] = namingStyle self.preferences['confirm-on-rename'] = str( self.confirmOnRenameCheckButton.get_active()) self.preferences[ 'filesystem'] = self.preferencesSelectFilesystemListstore[ self.preferencesSelectFilesystemComboBox.get_active()][0] ## # Get Database ## self.preferences['update-on-startup'] = str( self.updateOnStartupCheckButton.get_active()) ## # Get Backends ## self.preferences['imdbtv-with-tests'] = str( self.imdbtvWithTestsCheckButton.get_active()) self.dlg.destroy() return self.result, self.preferences
def __init__(self): ## # Initialize Glade file ## self.gladefile = "veefire-gtk.glade" self.wTree = gtk.glade.XML(self.gladefile) dic = { "on_MainWindow_destroy": gtk.main_quit, "on_mainRevertButton_clicked": self.mainRevertButtonClicked, "on_mainRenameButton_clicked": self.mainRenameButtonClicked, "on_mainPreferencesButton_clicked": self.mainPreferencesButtonClicked, "on_mainAboutButton_clicked": self.mainAboutButtonClicked, "on_previewPreviewButton_clicked": self.previewPreviewButtonClicked, "on_previewSelectFolderButton_clicked": self.previewSelectFolderButtonClicked, "on_showsNewShowButton_clicked": self.showsNewShowButtonClicked, "on_showsDeleteShowButton_clicked": self.showsDeleteShowButtonClicked, "on_showsEditShowsButton_clicked": self.showsEditShowsButtonClicked, "on_showsUpdateButton_clicked": self.showsUpdateButtonClicked } self.wTree.signal_autoconnect(dic) ## # Initialize Database and Rename ## self.database = Database(Tools.databaseDir) self.database.loadDB() self.rename = NewRename(Tools.databaseDir, Tools.filetypesXML) ## # Main Buttons (Disable those buttons that depends on other functions) ## self.mainRevertButton = self.wTree.get_widget("mainRevertButton") self.mainRevertButton.set_sensitive(False) self.mainRenameButton = self.wTree.get_widget("mainRenameButton") self.mainRenameButton.set_sensitive(False) ## # Preview Buttons (Disable those buttons that depends on other functions) ## self.previewPreviewButton = self.wTree.get_widget( "previewPreviewButton") self.previewPreviewButton.set_sensitive(False) ## # # Initialize previewTree # ## self.previewStore = gtk.ListStore(str, str, str, str, object) self.previewView = self.wTree.get_widget("previewTree") self.previewView.set_model(self.previewStore) render = gtk.CellRendererText() col = gtk.TreeViewColumn("Original Name", render, text=0) col.set_resizable(True) self.previewView.append_column(col) render = gtk.CellRendererText() col = gtk.TreeViewColumn("Current Name", render, text=1) col.set_resizable(True) col.set_visible(False) self.previewView.append_column(col) render = gtk.CellRendererText() col = gtk.TreeViewColumn("Show", render, text=2) col.set_resizable(True) col.set_visible(False) self.previewView.append_column(col) render = gtk.CellRendererText() col = gtk.TreeViewColumn("Preview", render, text=3) col.set_resizable(True) col.set_visible(False) self.previewView.append_column(col) col = gtk.TreeViewColumn() col.set_visible(False) self.previewView.append_column(col) #Set the selection option so that only one row can be selected sel = self.previewView.get_selection() sel.set_mode(gtk.SELECTION_SINGLE) self.previewView.show() ## # # Initialize showsTree # ## self.showsStore = gtk.ListStore(str, str, object) self.showsStore.clear() self.database = Database(Tools.databaseDir) self.database.loadDB() preferences = Preferences(Tools.preferencesXML) preferences.load() if self.to_boolean(preferences['update-on-startup']) == True: #update warning dialog = gtk.MessageDialog( None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_QUESTION, gtk.BUTTONS_OK, None) hbox = gtk.HBox() hbox.pack_start( gtk.Label( "The Database is updating. ( The program may appear to freeze during this process. )" ), False, 5, 5) dialog.vbox.pack_end(hbox, True, True, 0) dialog.show_all() dialog.run() if self.to_boolean(preferences['imdbtv-with-tests']) == True: testimdbtv = imdbtvtest() testimdbtv.testDownloadShowList() testimdbtv.testGetShowDetails() se = NewBackendInterface(Tools.databaseDir) se.updateDatabase() self.database.loadDB() dialog.destroy() for Show in self.database.database: self.showsStore.append([Show.name, Show.backend, Show]) self.showsView = self.wTree.get_widget("showsTree") self.showsView.set_model(self.showsStore) render = gtk.CellRendererText() col = gtk.TreeViewColumn("Name", render, text=0) self.showsView.append_column(col) render = gtk.CellRendererText() col = gtk.TreeViewColumn("Backend", render, text=1) self.showsView.append_column(col) col = gtk.TreeViewColumn() col.set_visible(False) self.showsView.append_column(col) #set the selection option so that only one row can be selected sel = self.showsView.get_selection() sel.set_mode(gtk.SELECTION_SINGLE) self.showsView.show() ## # # Initialize the showsTree's right-click menu # ## self.editShowMenu = self.wTree.get_widget("editShowMenu") self.editShowMenuUpdate = self.wTree.get_widget("editShowMenuUpdate") self.editShowMenuRemove = self.wTree.get_widget("editShowMenuRemove") self.showsView.connect('button_press_event', self.showMenu) self.editShowMenuUpdate.connect('activate', self.showMenuUpdate) self.editShowMenuRemove.connect('activate', self.showMenuRemove)
class PreferencesDialog : ''' Preferences. ''' def __init__(self) : self.gladefile = "veefire-gtk.glade" ## # Initialize dialog from Glade file. ## self.wTree = gtk.glade.XML( self.gladefile , "preferencesDialog" ) self.dlg = self.wTree.get_widget("preferencesDialog") def to_boolean(self, string ) : if string == "True" or string == "true" or string == True or string == 1 : return True else : return False def changeNamingStyleLabel(self, widget ) : self.namingStyleComboBoxEntry = self.wTree.get_widget("naming-styleEntry") self.namingStyleLabel = self.wTree.get_widget("naming-styleLabel") Style = self.namingStyleComboBoxEntry.get_text() fileName = FileName( 'dummyName', 'dummyDB') fileName.fileSuffix = '' # generateFileName needs this attribute to be set. aShow = Show( "Black Books", "dummyDuration", "dummyBackend", "dummyUrl" ) aShow.addEpisode( Episode( "2", "Sample Title", "6 November, 2008"), Season("1") ) newLabel = fileName.generateFileName( aShow, Tools.filetypesXML, 'ext3', Style ) self.namingStyleLabel.set_text(newLabel) def editFilesystem(self, widget ) : pass def initPreferences(self) : ''' Get values from preferences.xml ''' self.preferences = Preferences(Tools.preferencesXML) self.preferences.load() ## # Set General ## self.namingStyleComboBoxEntry = self.wTree.get_widget("naming-styleComboBoxEntry") self.namingStyleListstore = gtk.ListStore(str) self.namingStyleComboBoxEntry.set_model(self.namingStyleListstore) self.namingStyleComboBoxEntry.set_text_column(0) for style in self.preferences.getOptions('naming-style') : if style == self.preferences['naming-style'] : self.namingStyleListstore.prepend([ style ]) else : self.namingStyleListstore.append([ style ]) self.namingStyleEntry = self.wTree.get_widget("naming-styleEntry") self.namingStyleEntry.set_text( self.namingStyleListstore[0][0] ) self.namingStyleComboBoxEntry.connect('changed', self.changeNamingStyleLabel ) # set example to current preference. self.namingStyleLabel = self.wTree.get_widget("naming-styleLabel") Style = self.namingStyleEntry.get_text() fileName = FileName( 'dummyName', 'dummyDB') fileName.fileSuffix = '' # generateFileName needs this attribute to be set. aShow = Show( "Black Books", "dummyDuration", "dummyBackend", "dummyUrl" ) aShow.addEpisode( Episode( "2", "Sample Title", "6 November, 2008"), Season("1") ) newLabel = fileName.generateFileName( aShow, Tools.filetypesXML, 'ext3', Style ) self.namingStyleLabel.set_text(newLabel) self.confirmOnRenameCheckButton = self.wTree.get_widget("confirm-on-renameCheckButton") self.confirmOnRenameCheckButton.set_active( self.to_boolean(self.preferences['confirm-on-rename']) ) # Filesystem self.preferencesSelectFilesystemComboBox = self.wTree.get_widget("preferencesSelectFilesystemComboBox") self.preferencesSelectFilesystemListstore = gtk.ListStore(str) self.preferencesSelectFilesystemComboBox.set_model(self.preferencesSelectFilesystemListstore) for fs in Filesystems(Tools.filetypesXML).loadFilesystems() : if fs.name == self.preferences['filesystem'] : self.preferencesSelectFilesystemListstore.prepend([ fs.name ]) else : self.preferencesSelectFilesystemListstore.append([ fs.name ]) self.preferencesSelectFilesystemComboBox.set_active(0) self.preferencesEditFilesystemButton = self.wTree.get_widget("preferencesEditFilesystemButton") self.preferencesEditFilesystemButton.connect('clicked', self.editFilesystem ) ## # Set Database ## self.updateOnStartupCheckButton = self.wTree.get_widget("update-on-startupCheckButton") self.updateOnStartupCheckButton.set_active( self.to_boolean(self.preferences['update-on-startup']) ) ## # Set Backends ## self.imdbtvWithTestsCheckButton = self.wTree.get_widget("imdbtv-with-testsCheckButton") self.imdbtvWithTestsCheckButton.set_active( self.to_boolean(self.preferences['imdbtv-with-tests']) ) def run(self): self.initPreferences() self.result = self.dlg.run() ## # Get General ## namingStyle = self.namingStyleEntry.get_text() if namingStyle != self.namingStyleListstore[0][0] : self.preferences['naming-style'] = namingStyle self.preferences['confirm-on-rename'] = str(self.confirmOnRenameCheckButton.get_active()) self.preferences['filesystem'] = self.preferencesSelectFilesystemListstore[self.preferencesSelectFilesystemComboBox.get_active()][0] ## # Get Database ## self.preferences['update-on-startup'] = str(self.updateOnStartupCheckButton.get_active()) ## # Get Backends ## self.preferences['imdbtv-with-tests'] = str(self.imdbtvWithTestsCheckButton.get_active()) self.dlg.destroy() return self.result, self.preferences
def __init__(self): ## # Initialize Glade file ## self.gladefile = "veefire-gtk.glade" self.wTree = gtk.glade.XML(self.gladefile) dic = { "on_MainWindow_destroy" : gtk.main_quit, "on_mainRevertButton_clicked" : self.mainRevertButtonClicked, "on_mainRenameButton_clicked" : self.mainRenameButtonClicked, "on_mainPreferencesButton_clicked" : self.mainPreferencesButtonClicked, "on_mainAboutButton_clicked" : self.mainAboutButtonClicked, "on_previewPreviewButton_clicked" : self.previewPreviewButtonClicked, "on_previewSelectFolderButton_clicked" : self.previewSelectFolderButtonClicked, "on_showsNewShowButton_clicked" : self.showsNewShowButtonClicked, "on_showsDeleteShowButton_clicked" : self.showsDeleteShowButtonClicked, "on_showsEditShowsButton_clicked" : self.showsEditShowsButtonClicked, "on_showsUpdateButton_clicked" : self.showsUpdateButtonClicked } self.wTree.signal_autoconnect(dic) ## # Initialize Database and Rename ## self.database = Database(Tools.databaseDir) self.database.loadDB() self.rename = NewRename( Tools.databaseDir, Tools.filetypesXML ) ## # Main Buttons (Disable those buttons that depends on other functions) ## self.mainRevertButton = self.wTree.get_widget("mainRevertButton") self.mainRevertButton.set_sensitive(False) self.mainRenameButton = self.wTree.get_widget("mainRenameButton") self.mainRenameButton.set_sensitive(False) ## # Preview Buttons (Disable those buttons that depends on other functions) ## self.previewPreviewButton = self.wTree.get_widget("previewPreviewButton") self.previewPreviewButton.set_sensitive(False) ## # # Initialize previewTree # ## self.previewStore = gtk.ListStore( str, str, str, str, object ) self.previewView = self.wTree.get_widget("previewTree") self.previewView.set_model(self.previewStore) render=gtk.CellRendererText() col=gtk.TreeViewColumn("Original Name",render,text=0) col.set_resizable(True) self.previewView.append_column(col) render=gtk.CellRendererText() col=gtk.TreeViewColumn("Current Name",render,text=1) col.set_resizable(True) col.set_visible(False) self.previewView.append_column(col) render=gtk.CellRendererText() col=gtk.TreeViewColumn("Show",render,text=2) col.set_resizable(True) col.set_visible(False) self.previewView.append_column(col) render=gtk.CellRendererText() col=gtk.TreeViewColumn("Preview",render,text=3) col.set_resizable(True) col.set_visible(False) self.previewView.append_column(col) col=gtk.TreeViewColumn() col.set_visible(False) self.previewView.append_column(col) #Set the selection option so that only one row can be selected sel=self.previewView.get_selection() sel.set_mode(gtk.SELECTION_SINGLE) self.previewView.show() ## # # Initialize showsTree # ## self.showsStore = gtk.ListStore( str, str, object ) self.showsStore.clear() self.database = Database(Tools.databaseDir) self.database.loadDB() preferences = Preferences(Tools.preferencesXML) preferences.load() if self.to_boolean(preferences['update-on-startup']) == True : #update warning dialog = gtk.MessageDialog( None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_QUESTION, gtk.BUTTONS_OK, None) hbox = gtk.HBox() hbox.pack_start(gtk.Label("The Database is updating. ( The program may appear to freeze during this process. )"), False, 5, 5) dialog.vbox.pack_end(hbox, True, True, 0) dialog.show_all() dialog.run() if self.to_boolean(preferences['imdbtv-with-tests']) == True : testimdbtv = imdbtvtest() testimdbtv.testDownloadShowList() testimdbtv.testGetShowDetails() se = NewBackendInterface(Tools.databaseDir) se.updateDatabase() self.database.loadDB() dialog.destroy() for Show in self.database.database : self.showsStore.append([ Show.name, Show.backend, Show ]) self.showsView = self.wTree.get_widget("showsTree") self.showsView.set_model(self.showsStore) render=gtk.CellRendererText() col=gtk.TreeViewColumn("Name",render,text=0) self.showsView.append_column(col) render=gtk.CellRendererText() col=gtk.TreeViewColumn("Backend",render,text=1) self.showsView.append_column(col) col=gtk.TreeViewColumn() col.set_visible(False) self.showsView.append_column(col) #set the selection option so that only one row can be selected sel=self.showsView.get_selection() sel.set_mode(gtk.SELECTION_SINGLE) self.showsView.show() ## # # Initialize the showsTree's right-click menu # ## self.editShowMenu = self.wTree.get_widget("editShowMenu") self.editShowMenuUpdate = self.wTree.get_widget("editShowMenuUpdate") self.editShowMenuRemove = self.wTree.get_widget("editShowMenuRemove") self.showsView.connect('button_press_event', self.showMenu ) self.editShowMenuUpdate.connect('activate', self.showMenuUpdate ) self.editShowMenuRemove.connect('activate', self.showMenuRemove )