--- a/src/eric7/EricXML/MultiProjectReader.py Fri Dec 15 14:07:43 2023 +0100 +++ b/src/eric7/EricXML/MultiProjectReader.py Fri Dec 15 15:28:54 2023 +0100 @@ -11,6 +11,7 @@ from PyQt6.QtCore import QUuid +from eric7.MultiProject.MultiProjectProjectMeta import MultiProjectProjectMeta from eric7.SystemUtilities import FileSystemUtilities from .Config import multiProjectFileFormatVersion @@ -80,35 +81,31 @@ """ Private method to read the project info. """ - project = {} + uid = self.attribute("uid", "") - uid = self.attribute("uid", "") - if uid: - project["uid"] = uid - else: - # upgrade from pre 5.1 format - project["uid"] = QUuid.createUuid().toString() - project["master"] = self.toBool(self.attribute("isMaster", "False")) + project = MultiProjectProjectMeta( + name="", + file="", + uid=uid if uid else QUuid.createUuid().toString(), + master=self.toBool(self.attribute("isMaster", "False")), + ) while not self.atEnd(): self.readNext() if self.isEndElement() and self.name() == "Project": - if "category" not in project: - # upgrade from 4.2 format - project["category"] = "" self.multiProject.addProject(project) break if self.isStartElement(): if self.name() == "ProjectName": - project["name"] = self.readElementText() + project.name = self.readElementText() elif self.name() == "ProjectFile": - project["file"] = FileSystemUtilities.absoluteUniversalPath( + project.file = FileSystemUtilities.absoluteUniversalPath( self.readElementText(), self.path ) elif self.name() == "ProjectDescription": - project["description"] = self.readElementText() + project.description = self.readElementText() elif self.name() == "ProjectCategory": - project["category"] = self.readElementText() + project.category = self.readElementText() else: self.raiseUnexpectedStartTag(self.name())