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