310 for project in self.__projects.values(): |
310 for project in self.__projects.values(): |
311 if project.file == newProject.file: |
311 if project.file == newProject.file: |
312 return |
312 return |
313 |
313 |
314 # step 2: check, if main should be changed |
314 # step 2: check, if main should be changed |
315 if newProject.master: |
315 if newProject.main: |
316 for project in self.__projects.values(): |
316 for project in self.__projects.values(): |
317 if project.master: |
317 if project.main: |
318 project.master = False |
318 project.main = False |
319 self.projectDataChanged.emit(project) |
319 self.projectDataChanged.emit(project) |
320 self.setDirty(True) |
320 self.setDirty(True) |
321 break |
321 break |
322 |
322 |
323 # step 3: add the project entry |
323 # step 3: add the project entry |
369 dstProject = MultiProjectProjectMeta( |
369 dstProject = MultiProjectProjectMeta( |
370 name=self.tr("{0} - Copy").format(srcProject["name"]), |
370 name=self.tr("{0} - Copy").format(srcProject["name"]), |
371 file=os.path.join( |
371 file=os.path.join( |
372 dstProjectDirectory, os.path.basename(srcProject["file"]) |
372 dstProjectDirectory, os.path.basename(srcProject["file"]) |
373 ), |
373 ), |
374 master=False, |
374 main=False, |
375 description=srcProject.description, |
375 description=srcProject.description, |
376 category=srcProject.category, |
376 category=srcProject.category, |
377 uid=dstUid, |
377 uid=dstUid, |
378 ) |
378 ) |
379 self.__projects[dstUid] = dstProject |
379 self.__projects[dstUid] = dstProject |
386 |
386 |
387 @param pro dictionary with the project data |
387 @param pro dictionary with the project data |
388 @type str |
388 @type str |
389 """ |
389 """ |
390 # step 1: check, if main should be changed |
390 # step 1: check, if main should be changed |
391 if pro.master: |
391 if pro.main: |
392 for project in self.__projects.values(): |
392 for project in self.__projects.values(): |
393 if project.master: |
393 if project.main: |
394 if project.uid != pro.uid: |
394 if project.uid != pro.uid: |
395 project.master = False |
395 project.main = False |
396 self.projectDataChanged.emit(project) |
396 self.projectDataChanged.emit(project) |
397 self.setDirty(True) |
397 self.setDirty(True) |
398 break |
398 break |
399 |
399 |
400 # step 2: change the entry |
400 # step 2: change the entry |
401 project = self.__projects[pro.uid] |
401 project = self.__projects[pro.uid] |
402 # project UID is not changeable via interface |
402 # project UID is not changeable via interface |
403 project.file = pro.file |
403 project.file = pro.file |
404 project.name = pro.name |
404 project.name = pro.name |
405 project.master = pro.master |
405 project.main = pro.main |
406 project.description = pro.description |
406 project.description = pro.description |
407 project.category = pro.category |
407 project.category = pro.category |
408 if project.category not in self.categories: |
408 if project.category not in self.categories: |
409 self.categories.append(project.category) |
409 self.categories.append(project.category) |
410 self.projectDataChanged.emit(project) |
410 self.projectDataChanged.emit(project) |
539 self.addProjectAct.setEnabled(True) |
539 self.addProjectAct.setEnabled(True) |
540 self.propsAct.setEnabled(True) |
540 self.propsAct.setEnabled(True) |
541 |
541 |
542 self.multiProjectOpened.emit() |
542 self.multiProjectOpened.emit() |
543 |
543 |
544 if openMain and Preferences.getMultiProject("OpenMasterAutomatically"): |
544 if openMain and Preferences.getMultiProject("OpenMainAutomatically"): |
545 self.__openMainProject(False) |
545 self.__openMainProject(False) |
546 |
546 |
547 def saveMultiProject(self): |
547 def saveMultiProject(self): |
548 """ |
548 """ |
549 Public slot to save the current multi project. |
549 Public slot to save the current multi project. |
1025 reopened, if it has been opened already |
1025 reopened, if it has been opened already |
1026 @type bool |
1026 @type bool |
1027 """ |
1027 """ |
1028 for project in self.__projects.values(): |
1028 for project in self.__projects.values(): |
1029 if ( |
1029 if ( |
1030 project.master |
1030 project.main |
1031 and not project.removed |
1031 and not project.removed |
1032 and ( |
1032 and ( |
1033 reopen |
1033 reopen |
1034 or not self.projectObject.isOpen() |
1034 or not self.projectObject.isOpen() |
1035 or self.projectObject.getProjectFile() != project.file |
1035 or self.projectObject.getProjectFile() != project.file |