class DownloadMenu(TabBase): def __init__(self, window): """ Init Downloader :param window: QMainWindow :return: None """ self.downloader = Downloader(window, self.ConfigHandler) self.NameList = [] super().__init__(window) def setupUi(self, window): """ Connect all Events Load File list :param window: QMainWindow :return: None """ super().setupUi(window) self.RefreshBtn.pressed.connect(self.loadFileList) self.FileList.itemClicked.connect(self.listItemChange) self.DownloadBtn.pressed.connect(self.download) self.DeleteBtn.pressed.connect(self.deleteFile) self.loadFileList() def loadFileList(self): """ Get List of Meta Files and list them on the UI :return: None """ self.metaList = None self.FileList.setCurrentItem(None) # Reset Info self.NameInfo.setText("") self.AuthorInfo.setText("") self.DateInfo.setText("") self.DescInfo.setPlainText("") # Clear List self.FileList.clear() self.FileList.addItem("Lade...") filelist = self.downloader.getFileList() self.FileList.clear() if filelist is not False: if self.FileList.currentRow() == -1: self.DownloadBtn.setEnabled(False) for file in filelist["files"]: self.FileList.addItem(file["name"].capitalize()) self.metaList = self.downloader.getMetaFiles() else: self.DownloadBtn.setEnabled(False) def listItemChange(self): """ Display Info about current item on List Check if List is empty :return: """ if self.FileList.currentRow() != -1: self.DownloadBtn.setEnabled(True) else: self.DownloadBtn.setEnabled(False) id = self.FileList.currentRow() #id = id[0].id() self.NameInfo.setText(self.metaList[id]["Meta"]["name"].capitalize()) self.AuthorInfo.setText(self.metaList[id]["Meta"]["author"].capitalize()) self.DateInfo.setText(self.metaList[id]["Meta"]["date"]) self.DescInfo.setPlainText(self.metaList[id]["Meta"]["comments"]) def download(self): """ Download currently selected ListItem and Popup on complete :return: """ id = self.FileList.currentRow() if id != -1: self.downloader.download(self.metaList[id]["Meta"]["fullFile"]) def deleteFile(self): id = self.FileList.currentRow() if id: requests.post()