def on_listWidgetMainFiles_itemChanged(self, item): """When one main file is selected""" self.pushButtonAddStyle.setEnabled(True) self.pushButtonAddScript.setEnabled(True) self.listWidgetStyles.mainFile = item.projectFile self.listWidgetScripts.mainFile = item.projectFile #Research of file project which is associated projectFile = None for pf in self.project.files[ProjectFile.MAIN_FILE]: if pf.path == item.projectFile.path: projectFile = pf if projectFile is not None: self.listWidgetStyles.clear() self.listWidgetScripts.clear() for styleFile in projectFile.links[ProjectFile.STYLE_FILE]: path = styleFile.path coupure = path.split('/') if len(coupure) <= 1: coupure = path.split('\\') item = QListWidgetItem(styleFile.name + "(../" + coupure[-3] + "/" + coupure[-2] + ")") item.projectFile = styleFile self.listWidgetStyles.addItem(item) for scriptFile in projectFile.links[ProjectFile.SCRIPT_FILE]: path = scriptFile.path coupure = path.split('/') if len(coupure) <= 1: coupure = path.split('\\') item = QListWidgetItem(scriptFile.name + "(../" + coupure[-3] + "/" + coupure[-2] + ")") item.projectFile = scriptFile self.listWidgetScripts.addItem(item)
def refresh(self, path=None): if path is not None: self.path = path #Nettoyage de listes et des champs self.projectName.setText("Aucun") self.name.setText("Inconnu") self.type.setText("Inconnu") self.mainFilesList.clear() self.styleFilesList.clear() self.scriptFilesList.clear() self.chemin_det.setText("") if self.path is not None: if os.path.isfile(self.path): file = UserFile(self.path) self.name.setText(file.name()) isProjectFile, projectFile = False, None projects = self.window.opennedProjects project = None for p in projects: isProjectFile, projectFile = p.isProjectFile(self.path) if isProjectFile: project = p if isProjectFile: self.projectName.setText(project.name) self.type.setText(projectFile.type) for pf in projectFile.links[ProjectFile.MAIN_FILE]: item = QListWidgetItem(pf.name) item.projectFile = pf self.mainFilesList.addItem(item) for pf in projectFile.links[ProjectFile.STYLE_FILE]: item = QListWidgetItem(pf.name) item.projectFile = pf self.styleFilesList.addItem(item) for pf in projectFile.links[ProjectFile.SCRIPT_FILE]: item = QListWidgetItem(pf.name) item.projectFile = pf self.scriptFilesList.addItem(item) self.mainFilesList.itemClicked.connect( self.on_widgetList_itemClicked) self.styleFilesList.itemClicked.connect( self.on_widgetList_itemClicked) self.scriptFilesList.itemClicked.connect( self.on_widgetList_itemClicked)
def init(self): if self.action == NewProject.ACTION_NEW: self.title.setText(self.tr("Nouveau projet")) coupure = self.path.split('/') if len(coupure) <= 1: coupure = self.path.split('\\') self.lineEditName.setText(coupure[len(coupure) - 1]) self.lineEditPath.setText(self.path) self.comboBoxType.currentTextChanged.connect( self.on_comboBoxType_currentTextChanged) #On vide les listes self.listWidgetMainFiles.clear() self.listWidgetStyles.clear() self.listWidgetScripts.clear() #On masque les boutons d'ajout de styles et de scripts self.pushButtonAddStyle.setEnabled(False) self.pushButtonAddScript.setEnabled(False) #slots if self.action == NewProject.ACTION_MODIFY: self.title.setText(self.tr("Modifier projet")) self.lineEditName.setText(self.project.name) self.lineEditName.setReadOnly(True) self.lineEditPath.setText(self.project.path) self.lineEditPath.setReadOnly(True) self.lineEditUrl.setText(self.project.urlforbrowser) self.lineEditUrl.setReadOnly(True) self.pushButtonChanger.setEnabled(False) self.comboBoxType.setCurrentText(self.project.type) """Ajout des fichiers""" for file in self.project.getAllFiles(): path = file.path coupure = path.split('/') if len(coupure) <= 1: coupure = path.split('\\') item = QListWidgetItem(file.name + "(../" + coupure[-3] + "/" + coupure[-2] + ")") item.projectFile = file if file.type == ProjectFile.MAIN_FILE: self.listWidgetMainFiles.addItem(item) elif file.type == ProjectFile.STYLE_FILE: self.listWidgetStyles.addItem(item) elif file.type == ProjectFile.SCRIPT_FILE: self.listWidgetScripts.addItem(item) self.listWidgetMainFiles.itemClicked.connect( self.on_listWidgetMainFiles_itemChanged) self.listWidgetStyles.itemClicked.connect( self.on_listWidgetStyles_itemChanged) self.listWidgetScripts.itemClicked.connect( self.on_listWidgetScripts_itemChanged)
def addFiles(self, widget: QListWidget, extensions: list, type=None): """Add project files""" filter = "" for ext in extensions: filter += ext.upper() + " " filter += "(" for ext in extensions: filter += "*." + ext + " " filter += ")" paths, filters = QFileDialog.getOpenFileNames( self, self.tr("Selectionnez les fichiers"), self.path, filter) if paths: for path in paths: if path.find(self.path) == 0: file = UserFile(path) if file.extension().lower() not in extensions: message = "Le fichier " + path + " n'a pas l'extension requise (" + ", ".join( extensions) + ")" msg = QMessageBox.information(self, "Echec ajout", message, QMessageBox.Ok) else: coupure = path.split('/') if len(coupure) <= 1: coupure = path.split('\\') projectFile = ProjectFile(file.name(), path, type) item = QListWidgetItem(file.name() + "(../" + coupure[-3] + "/" + coupure[-2] + ")") item.projectFile = projectFile itemExist = False index = 0 while index < widget.count(): if widget.item(index).text() == item.text(): itemExist = True index += 1 if not itemExist: widget.addItem(item) if type != ProjectFile.MAIN_FILE: for pf in self.project.files[ ProjectFile.MAIN_FILE]: if pf.path == widget.mainFile.path: pf.addLink(projectFile) self.project.addFile(projectFile) else: message = "Le fichier " + path + " n'est pas dans le dossier du projet." msg = QMessageBox.information(self, "Echec ajout", message, QMessageBox.Ok)