def __init__(self, propEditorWidget: QTableWidget, tracker: videotrackr.video.video_tracker, DEBUG): self.debug_logger = logger(DEBUG) self.editor = propEditorWidget self.tracker = tracker self.editor.setRowCount(6) hframesLabel = QTableWidgetItem(ui_strings.HISTORY_FRAMES) hframesLabel.setFlags(Qt.ItemIsEnabled) self.editor.setItem(0, 0, hframesLabel) hframes = QTableWidgetItem(str(self.tracker.data.history_frames)) hframes.setFlags(Qt.ItemIsEditable | Qt.ItemIsEnabled) self.editor.setItem(0, 1, hframes) distLabel = QTableWidgetItem(ui_strings.DIST_THRESHOLD) distLabel.setFlags(Qt.ItemIsEnabled) self.editor.setItem(1, 0, distLabel) dist = QTableWidgetItem(str(self.tracker.data.dist_threshold)) dist.setFlags(Qt.ItemIsEditable | Qt.ItemIsEnabled) self.editor.setItem(1, 1, dist) shadowsLabel = QTableWidgetItem(ui_strings.SHADOWS) shadowsLabel.setFlags(Qt.ItemIsEnabled) self.editor.setItem(2, 0, shadowsLabel) shadows = QTableWidgetItem() shadows.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) if self.tracker.data.shadows: shadows.setCheckState(Qt.Checked) else: shadows.setCheckState(Qt.Unchecked) self.editor.setItem(2, 1, shadows) minareaLabel = QTableWidgetItem(ui_strings.MIN_AREA) minareaLabel.setFlags(Qt.ItemIsEnabled) self.editor.setItem(3, 0, minareaLabel) minarea = QTableWidgetItem(str(self.tracker.data.min_area)) minarea.setFlags(Qt.ItemIsEditable | Qt.ItemIsEnabled) self.editor.setItem(3, 1, minarea) maxareaLabel = QTableWidgetItem(ui_strings.MAX_AREA) maxareaLabel.setFlags(Qt.ItemIsEnabled) self.editor.setItem(4, 0, maxareaLabel) maxarea = QTableWidgetItem(str(self.tracker.data.max_area)) maxarea.setFlags(Qt.ItemIsEditable | Qt.ItemIsEnabled) self.editor.setItem(4, 1, maxarea) zoomLabel = QTableWidgetItem(ui_strings.ZOOM_LEVEL) zoomLabel.setFlags(Qt.ItemIsEnabled) self.editor.setItem(5, 0, zoomLabel) zoom = QTableWidgetItem(str(self.tracker.data.zoom_level)) zoom.setFlags(Qt.ItemIsEditable | Qt.ItemIsEnabled) self.editor.setItem(5, 1, zoom) self.editor.itemChanged.connect(self.update_properties)
def __init__(self, parent, file_path, callback, persepolis_setting): super().__init__(persepolis_setting) self.persepolis_setting = persepolis_setting self.callback = callback self.file_path = file_path self.parent = parent global icons icons = ':/' + \ str(self.persepolis_setting.value('settings/icons')) + '/' # read text file lines and put links in list format. f = open(self.file_path) f_links_list = f.readlines() f.close() f_links_list.reverse() # check links! links must be started with http or https or ftp link_list = [] for link in f_links_list: text = link.strip() if ("tp:/" in text[2:6]) or ("tps:/" in text[2:7]): link_list.append(text) k = 1 for link in link_list: self.links_table.insertRow(0) # file_name file_name = '***' dict = {'link': link} # spider finds file name new_spider = QueueSpiderThread(dict) self.parent.threadPool.append(new_spider) self.parent.threadPool[len(self.parent.threadPool) - 1].start() self.parent.threadPool[len(self.parent.threadPool) - 1].QUEUESPIDERRETURNEDFILENAME.connect( partial(self.parent.queueSpiderCallBack, child=self, row_number=len(link_list) - k)) k = k + 1 item = QTableWidgetItem(file_name) # add checkbox to the item item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) item.setCheckState(Qt.Checked) # insert file_name self.links_table.setItem(0, 0, item) # insert link item = QTableWidgetItem(str(link)) self.links_table.setItem(0, 1, item) # get categories name and add them to add_queue_comboBox categories_list = self.parent.persepolis_db.categoriesList() for queue in categories_list: if queue != 'All Downloads': self.add_queue_comboBox.addItem(queue) self.add_queue_comboBox.addItem(QIcon(icons + 'add_queue'), 'Create new queue') # entry initialization # get values from persepolis_setting global connections connections = int( self.persepolis_setting.value('settings/connections')) global download_path download_path = str( self.persepolis_setting.value('settings/download_path')) self.connections_spinBox.setValue(connections) self.download_folder_lineEdit.setText(download_path) self.download_folder_lineEdit.setEnabled(False) # ip_lineEdit initialization settings_ip = self.persepolis_setting.value( 'add_link_initialization/ip', None) if settings_ip: self.ip_lineEdit.setText(str(settings_ip)) # proxy user lineEdit initialization settings_proxy_user = self.persepolis_setting.value( 'add_link_initialization/proxy_user', None) if settings_proxy_user: self.proxy_user_lineEdit.setText(str(settings_proxy_user)) # port_spinBox initialization settings_port = self.persepolis_setting.value( 'add_link_initialization/port', 0) self.port_spinBox.setValue(int(int(settings_port))) # download UserName initialization settings_download_user = self.persepolis_setting.value( 'add_link_initialization/download_user', None) if settings_download_user: self.download_user_lineEdit.setText(str(settings_download_user)) # connect folder_pushButton self.folder_pushButton.clicked.connect(self.changeFolder) # connect OK and cancel button self.cancel_pushButton.clicked.connect(self.close) self.ok_pushButton.clicked.connect(self.okButtonPressed) # connect select_all_pushButton deselect_all_pushButton self.select_all_pushButton.clicked.connect(self.selectAll) self.deselect_all_pushButton.clicked.connect(self.deselectAll) #frames and checkBoxes self.proxy_frame.setEnabled(False) self.proxy_checkBox.toggled.connect(self.proxyFrame) self.download_frame.setEnabled(False) self.download_checkBox.toggled.connect(self.downloadFrame) self.limit_frame.setEnabled(False) self.limit_checkBox.toggled.connect(self.limitFrame) # set focus to ok button self.ok_pushButton.setFocus() # add_queue_comboBox event self.add_queue_comboBox.currentIndexChanged.connect(self.queueChanged) # setting window size and position size = self.persepolis_setting.value('TextQueue/size', QSize(700, 500)) position = self.persepolis_setting.value('TextQueue/position', QPoint(300, 300)) self.resize(size) self.move(position)
def __init__(self, parent, list_of_links, callback, persepolis_setting): super().__init__(persepolis_setting) self.persepolis_setting = persepolis_setting self.callback = callback self.parent = parent self.list_of_links = list_of_links global icons icons = ':/' + \ str(self.persepolis_setting.value('settings/icons')) + '/' self.list_of_links.reverse() k = 1 for dict in self.list_of_links: # add row to the links_table self.links_table.insertRow(0) # file_name if 'out' in dict: if dict['out']: file_name = dict['out'] else: file_name = '***' else: file_name = '***' if file_name == '***': # spider finds file name new_spider = QueueSpiderThread(dict) self.parent.threadPool.append(new_spider) self.parent.threadPool[len(self.parent.threadPool) - 1].start() self.parent.threadPool[len(self.parent.threadPool) - 1].QUEUESPIDERRETURNEDFILENAME.connect( partial( self.parent.queueSpiderCallBack, child=self, row_number=len( self.list_of_links) - k)) k = k + 1 item = QTableWidgetItem(file_name) # add checkbox to the item item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) item.setCheckState(Qt.Checked) # insert file_name self.links_table.setItem(0, 0, item) # find link link = dict['link'] item = QTableWidgetItem(str(link)) # insert link self.links_table.setItem(0, 1, item) # get categories name and add them to add_queue_comboBox categories_list = self.parent.persepolis_db.categoriesList() for queue in categories_list: if queue != 'All Downloads': self.add_queue_comboBox.addItem(queue) self.add_queue_comboBox.addItem(QIcon(icons + 'add_queue'), 'Create new queue') # entry initialization global connections connections = int( self.persepolis_setting.value('settings/connections')) global download_path download_path = str( self.persepolis_setting.value('settings/download_path')) # initialization self.connections_spinBox.setValue(connections) self.download_folder_lineEdit.setText(download_path) self.download_folder_lineEdit.setEnabled(False) # ip_lineEdit initialization settings_ip = self.persepolis_setting.value( 'add_link_initialization/ip', None) if settings_ip: self.ip_lineEdit.setText(str(settings_ip)) # proxy user lineEdit initialization settings_proxy_user = self.persepolis_setting.value( 'add_link_initialization/proxy_user', None) if settings_proxy_user: self.proxy_user_lineEdit.setText(str(settings_proxy_user)) # port_spinBox initialization settings_port = self.persepolis_setting.value( 'add_link_initialization/port', 0) self.port_spinBox.setValue(int(int(settings_port))) # download UserName initialization settings_download_user = self.persepolis_setting.value( 'add_link_initialization/download_user', None) if settings_download_user: self.download_user_lineEdit.setText(str(settings_download_user)) # connect folder_pushButton self.folder_pushButton.clicked.connect(self.changeFolder) # connect OK and cancel button self.cancel_pushButton.clicked.connect(self.close) self.ok_pushButton.clicked.connect(self.okButtonPressed) # connect select_all_pushButton deselect_all_pushButton self.select_all_pushButton.clicked.connect(self.selectAll) self.deselect_all_pushButton.clicked.connect(self.deselectAll) #frames and checkBoxes self.proxy_frame.setEnabled(False) self.proxy_checkBox.toggled.connect(self.proxyFrame) self.download_frame.setEnabled(False) self.download_checkBox.toggled.connect(self.downloadFrame) self.limit_frame.setEnabled(False) self.limit_checkBox.toggled.connect(self.limitFrame) # set focus to ok button self.ok_pushButton.setFocus() # add_queue_comboBox event self.add_queue_comboBox.currentIndexChanged.connect(self.queueChanged) # set window size and position size = self.persepolis_setting.value('TextQueue/size', QSize(700, 500)) position = self.persepolis_setting.value('TextQueue/position', QPoint(300, 300)) self.resize(size) self.move(position)