9 |
9 |
10 import os |
10 import os |
11 |
11 |
12 from PyQt6.QtCore import QUuid |
12 from PyQt6.QtCore import QUuid |
13 |
13 |
|
14 from eric7.MultiProject.MultiProjectProjectMeta import MultiProjectProjectMeta |
14 from eric7.SystemUtilities import FileSystemUtilities |
15 from eric7.SystemUtilities import FileSystemUtilities |
15 |
16 |
16 from .Config import multiProjectFileFormatVersion |
17 from .Config import multiProjectFileFormatVersion |
17 from .XMLStreamReaderBase import XMLStreamReaderBase |
18 from .XMLStreamReaderBase import XMLStreamReaderBase |
18 |
19 |
78 |
79 |
79 def __readProject(self): |
80 def __readProject(self): |
80 """ |
81 """ |
81 Private method to read the project info. |
82 Private method to read the project info. |
82 """ |
83 """ |
83 project = {} |
84 uid = self.attribute("uid", "") |
84 |
85 |
85 uid = self.attribute("uid", "") |
86 project = MultiProjectProjectMeta( |
86 if uid: |
87 name="", |
87 project["uid"] = uid |
88 file="", |
88 else: |
89 uid=uid if uid else QUuid.createUuid().toString(), |
89 # upgrade from pre 5.1 format |
90 master=self.toBool(self.attribute("isMaster", "False")), |
90 project["uid"] = QUuid.createUuid().toString() |
91 ) |
91 project["master"] = self.toBool(self.attribute("isMaster", "False")) |
|
92 |
92 |
93 while not self.atEnd(): |
93 while not self.atEnd(): |
94 self.readNext() |
94 self.readNext() |
95 if self.isEndElement() and self.name() == "Project": |
95 if self.isEndElement() and self.name() == "Project": |
96 if "category" not in project: |
|
97 # upgrade from 4.2 format |
|
98 project["category"] = "" |
|
99 self.multiProject.addProject(project) |
96 self.multiProject.addProject(project) |
100 break |
97 break |
101 |
98 |
102 if self.isStartElement(): |
99 if self.isStartElement(): |
103 if self.name() == "ProjectName": |
100 if self.name() == "ProjectName": |
104 project["name"] = self.readElementText() |
101 project.name = self.readElementText() |
105 elif self.name() == "ProjectFile": |
102 elif self.name() == "ProjectFile": |
106 project["file"] = FileSystemUtilities.absoluteUniversalPath( |
103 project.file = FileSystemUtilities.absoluteUniversalPath( |
107 self.readElementText(), self.path |
104 self.readElementText(), self.path |
108 ) |
105 ) |
109 elif self.name() == "ProjectDescription": |
106 elif self.name() == "ProjectDescription": |
110 project["description"] = self.readElementText() |
107 project.description = self.readElementText() |
111 elif self.name() == "ProjectCategory": |
108 elif self.name() == "ProjectCategory": |
112 project["category"] = self.readElementText() |
109 project.category = self.readElementText() |
113 else: |
110 else: |
114 self.raiseUnexpectedStartTag(self.name()) |
111 self.raiseUnexpectedStartTag(self.name()) |