示例#1
0
    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])
示例#2
0
 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 ])
示例#3
0
    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)
示例#4
0
 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)
示例#5
0
 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)
示例#6
0
    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)
示例#7
0
    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']))
示例#8
0
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
示例#9
0
    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)
示例#10
0
 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']) )
示例#11
0
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
示例#12
0
 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 )