Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
    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)
Пример #4
0
 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)