示例#1
0
 def addUrlsToTree(self, mediums=None):
     self.match_url = None
     
     if mediums is None: mediums = self.mediums
     
     for medium in mediums:
         item = TreeWidgetItem([medium.website+": "+medium.title, ""], medium, self.ui.tree_validLinks)
         item.setCheckState(0, QtCore.Qt.Checked)
         self.ui.tree_validLinks.addTopLevelItem(item)
         combobox = QComboBox(self.ui.tree_validLinks)
  
         try:
             for format in mediums[medium]:
                 combobox.addItem(describe_format(format))
         except TypeError:
             format_desc = describe_format(mediums[medium])
             combobox.addItem(format_desc)
     
         self.ui.tree_validLinks.setItemWidget(item, 1, combobox)
         
     
     for url in self.invalid_urls:
         item = QtGui.QTreeWidgetItem(self.ui.tree_validLinks, [url, ""])
         item.setIcon(0, self.icon_error)
         self.ui.tree_validLinks.addTopLevelItem(item)
         
     self.ui.tedit_pasteLinks.setEnabled(True)
    def __init__(self, parent, settings):
        """Initialize the GUI."""
        
        super(Preferences, self).__init__(parent)
        self.ui = Ui_PreferencesWindow()
        self.ui.setupUi(self)
        
        self.settings = settings
        
        self.parent = parent
        self.ordered_options = []
        self.update_global_quality = True

        #Populate the QTreeWidget with the plugins' names and options
        self.ui.tree_quality.header().resizeSection(0, 350)
        
        quality_options = self.settings.get_quality_options()
        for option in quality_options:
            cb_qualityOptions = QComboBox(self)
            cb_qualityOptions.addItem(self.tr("Ask Quality"))
            cb_qualityOptions.addItem(self.tr("Low Quality"))
            cb_qualityOptions.addItem(self.tr("High Quality"))
            
            item = QtGui.QTreeWidgetItem([option.capitalize(), ""])
            self.ui.tree_quality.addTopLevelItem(item)
            self.ui.tree_quality.setItemWidget(item, 1, cb_qualityOptions)
            
            cb_qualityOptions.setCurrentIndex(quality_options[option])
            cb_qualityOptions.currentIndexChanged.connect(self.updateGlobalQuality)
        
        
        self.ui.cb_applyToAll.setChecked(bool(self.settings.global_video_quality))
        self.updateGlobalQuality()

        self.ui.cb_builtinPlayer.setChecked(self.settings.use_builtin_player)
        if not HAS_PLAYER or not c.HAS_FFMPEG:
            self.ui.cb_builtinPlayer.setEnabled(False)
            self.ui.cb_builtinPlayer.setChecked(0)
        self.on_builtinPlayer_check()
        
        # Update the window to display the current configuration
        self.ui.ledit_player.setText(self.settings.media_player)
        self.last_valid_player=self.settings.media_player
         
        self.ui.edit_folder.setText(self.settings.download_folder)
         
        self.ui.combo_options.setCurrentIndex(self.settings.after_download)
        self.ui.combo_dc.setCurrentIndex(self.settings.play_downloaded)
         
        self.ui.s_notifyDone.setChecked(self.settings.notify_done)
        self.ui.s_notifyError.setChecked(self.settings.notify_error)
        self.ui.cb_checkLinksAuto.setChecked(self.settings.check_links_auto)
        
        if notification.HAS_PYNOTIFY:
            self.ui.f_note.hide()
        
        # Connect signals with slots
        self.ui.btn_player.clicked.connect(self.browseForFile)
        self.ui.button_folder.clicked.connect(self.browseFolder)
        self.ui.buttonBox.accepted.connect(self.saveSettings)
        self.ui.buttonBox.rejected.connect(self.close)
        self.ui.rb_all_high_quality.clicked.connect(self.setGlobalQuality)
        self.ui.rb_all_low_quality.clicked.connect(self.setGlobalQuality)
        self.ui.rb_all_ask.clicked.connect(self.setGlobalQuality)
        self.ui.cb_builtinPlayer.clicked.connect(self.on_builtinPlayer_check)
        self.ui.cb_applyToAll.clicked.connect(self.updateGlobalQuality)
        
        self.visible = True