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