280 self.__projectTypes = { |
280 self.__projectTypes = { |
281 "PyQt5": self.tr("PyQt5 GUI"), |
281 "PyQt5": self.tr("PyQt5 GUI"), |
282 "PyQt5C": self.tr("PyQt5 Console"), |
282 "PyQt5C": self.tr("PyQt5 Console"), |
283 "PyQt6": self.tr("PyQt6 GUI"), |
283 "PyQt6": self.tr("PyQt6 GUI"), |
284 "PyQt6C": self.tr("PyQt6 Console"), |
284 "PyQt6C": self.tr("PyQt6 Console"), |
285 "E6Plugin": self.tr("Eric6 Plugin"), |
285 "E7Plugin": self.tr("Eric7 Plugin"), |
286 "Console": self.tr("Console"), |
286 "Console": self.tr("Console"), |
287 "Other": self.tr("Other"), |
287 "Other": self.tr("Other"), |
288 } |
288 } |
289 |
289 |
290 self.__projectProgLanguages = { |
290 self.__projectProgLanguages = { |
291 "Python3": ["PyQt5", "PyQt5C", "PyQt6", "PyQt6C", "E6Plugin", |
291 "Python3": ["PyQt5", "PyQt5C", "PyQt6", "PyQt6C", "E7Plugin", |
292 "Console", "Other"], |
292 "Console", "Other"], |
293 "MicroPython": ["Console", "Other"], |
293 "MicroPython": ["Console", "Other"], |
294 "Ruby": ["Console", "Other"], |
294 "Ruby": ["Console", "Other"], |
295 "JavaScript": ["Other"], |
295 "JavaScript": ["Other"], |
296 } |
296 } |
358 @param progLanguages programming languages supported by the |
358 @param progLanguages programming languages supported by the |
359 project type (list of string) |
359 project type (list of string) |
360 """ |
360 """ |
361 if progLanguages: |
361 if progLanguages: |
362 for progLanguage in progLanguages: |
362 for progLanguage in progLanguages: |
363 if progLanguage in ["Python", "Python2"]: |
|
364 # ignore that silently for Python2 |
|
365 return |
|
366 |
|
367 if progLanguage not in self.__projectProgLanguages: |
363 if progLanguage not in self.__projectProgLanguages: |
368 E5MessageBox.critical( |
364 E5MessageBox.critical( |
369 self.ui, |
365 self.ui, |
370 self.tr("Registering Project Type"), |
366 self.tr("Registering Project Type"), |
371 self.tr( |
367 self.tr( |
620 |
616 |
621 # Protobuf Files |
617 # Protobuf Files |
622 self.pdata["FILETYPES"]["*.proto"] = "PROTOCOLS" |
618 self.pdata["FILETYPES"]["*.proto"] = "PROTOCOLS" |
623 |
619 |
624 # Forms |
620 # Forms |
625 if self.pdata["PROJECTTYPE"] in ["E6Plugin", |
621 if self.pdata["PROJECTTYPE"] in ["E7Plugin", |
626 "PyQt5", |
622 "PyQt5", |
627 "PyQt6", |
623 "PyQt6", |
628 "PySide2", |
624 "PySide2", |
629 "PySide6"]: |
625 "PySide6"]: |
630 self.pdata["FILETYPES"]["*.ui"] = "FORMS" |
626 self.pdata["FILETYPES"]["*.ui"] = "FORMS" |
631 |
627 |
632 # Resources |
628 # Resources |
633 if self.pdata["PROJECTTYPE"] in ["E6Plugin", |
629 if self.pdata["PROJECTTYPE"] in ["PyQt5", "PyQt5C", |
634 "PyQt5", "PyQt5C", |
|
635 "PySide2", "PySide2C", |
630 "PySide2", "PySide2C", |
636 "PySide6", "PySide6C"]: |
631 "PySide6", "PySide6C"]: |
637 self.pdata["FILETYPES"]["*.qrc"] = "RESOURCES" |
632 self.pdata["FILETYPES"]["*.qrc"] = "RESOURCES" |
638 |
633 |
639 # Translations |
634 # Translations |
640 if self.pdata["PROJECTTYPE"] in ["E6Plugin", |
635 if self.pdata["PROJECTTYPE"] in ["E7Plugin", |
641 "PyQt5", "PyQt5C", |
636 "PyQt5", "PyQt5C", |
642 "PyQt6", "PyQt6C", |
637 "PyQt6", "PyQt6C", |
643 "PySide2", "PySide2C", |
638 "PySide2", "PySide2C", |
644 "PySide6", "PySide6C"]: |
639 "PySide6", "PySide6C"]: |
645 self.pdata["FILETYPES"]["*.ts"] = "TRANSLATIONS" |
640 self.pdata["FILETYPES"]["*.ts"] = "TRANSLATIONS" |
657 def updateFileTypes(self): |
652 def updateFileTypes(self): |
658 """ |
653 """ |
659 Public method to update the filetype associations with new default |
654 Public method to update the filetype associations with new default |
660 values. |
655 values. |
661 """ |
656 """ |
662 if self.pdata["PROJECTTYPE"] in ["E6Plugin", |
657 if self.pdata["PROJECTTYPE"] in ["E7Plugin", |
663 "PyQt5", "PyQt5C", |
658 "PyQt5", "PyQt5C", |
664 "PyQt6", "PyQt6C", |
659 "PyQt6", "PyQt6C", |
665 "PySide2", "PySide2C", |
660 "PySide2", "PySide2C", |
666 "PySide6", "PySide6C"]: |
661 "PySide6", "PySide6C"]: |
667 if "*.ts" not in self.pdata["FILETYPES"]: |
662 if "*.ts" not in self.pdata["FILETYPES"]: |
1425 from .AddLanguageDialog import AddLanguageDialog |
1420 from .AddLanguageDialog import AddLanguageDialog |
1426 dlg = AddLanguageDialog(self.parent()) |
1421 dlg = AddLanguageDialog(self.parent()) |
1427 if dlg.exec() == QDialog.DialogCode.Accepted: |
1422 if dlg.exec() == QDialog.DialogCode.Accepted: |
1428 lang = dlg.getSelectedLanguage() |
1423 lang = dlg.getSelectedLanguage() |
1429 if self.pdata["PROJECTTYPE"] in [ |
1424 if self.pdata["PROJECTTYPE"] in [ |
1430 "PyQt5", "PyQt5C", "PyQt6", "PyQt6C", "E6Plugin", |
1425 "PyQt5", "PyQt5C", "PyQt6", "PyQt6C", "E7Plugin", |
1431 "PySide2", "PySide2C", "PySide6", "PySide6C" |
1426 "PySide2", "PySide2C", "PySide6", "PySide6C" |
1432 ]: |
1427 ]: |
1433 langFile = self.pdata["TRANSLATIONPATTERN"].replace( |
1428 langFile = self.pdata["TRANSLATIONPATTERN"].replace( |
1434 "%language%", lang) |
1429 "%language%", lang) |
1435 self.appendFile(langFile) |
1430 self.appendFile(langFile) |
2345 self.menuShowAct.setEnabled(True) |
2340 self.menuShowAct.setEnabled(True) |
2346 self.menuDiagramAct.setEnabled(True) |
2341 self.menuDiagramAct.setEnabled(True) |
2347 self.menuApidocAct.setEnabled(True) |
2342 self.menuApidocAct.setEnabled(True) |
2348 self.menuPackagersAct.setEnabled(True) |
2343 self.menuPackagersAct.setEnabled(True) |
2349 self.pluginGrp.setEnabled( |
2344 self.pluginGrp.setEnabled( |
2350 self.pdata["PROJECTTYPE"] in ["E6Plugin"]) |
2345 self.pdata["PROJECTTYPE"] in ["E7Plugin"]) |
2351 self.addLanguageAct.setEnabled( |
2346 self.addLanguageAct.setEnabled( |
2352 bool(self.pdata["TRANSLATIONPATTERN"])) |
2347 bool(self.pdata["TRANSLATIONPATTERN"])) |
2353 self.makeGrp.setEnabled( |
2348 self.makeGrp.setEnabled( |
2354 self.pdata["MAKEPARAMS"]["MakeEnabled"]) |
2349 self.pdata["MAKEPARAMS"]["MakeEnabled"]) |
2355 self.menuMakeAct.setEnabled( |
2350 self.menuMakeAct.setEnabled( |
2806 os.makedirs(tp) |
2801 os.makedirs(tp) |
2807 if tp != self.ppath and tp not in self.subdirs: |
2802 if tp != self.ppath and tp not in self.subdirs: |
2808 self.subdirs.append(tp) |
2803 self.subdirs.append(tp) |
2809 |
2804 |
2810 self.pluginGrp.setEnabled( |
2805 self.pluginGrp.setEnabled( |
2811 self.pdata["PROJECTTYPE"] in ["E6Plugin"]) |
2806 self.pdata["PROJECTTYPE"] in ["E7Plugin"]) |
2812 |
2807 |
2813 self.__model.projectPropertiesChanged() |
2808 self.__model.projectPropertiesChanged() |
2814 self.projectPropertiesChanged.emit() |
2809 self.projectPropertiesChanged.emit() |
2815 |
2810 |
2816 if self.pdata["PROJECTTYPE"] != projectType: |
2811 if self.pdata["PROJECTTYPE"] != projectType: |
3037 self.menuShowAct.setEnabled(True) |
3032 self.menuShowAct.setEnabled(True) |
3038 self.menuDiagramAct.setEnabled(True) |
3033 self.menuDiagramAct.setEnabled(True) |
3039 self.menuApidocAct.setEnabled(True) |
3034 self.menuApidocAct.setEnabled(True) |
3040 self.menuPackagersAct.setEnabled(True) |
3035 self.menuPackagersAct.setEnabled(True) |
3041 self.pluginGrp.setEnabled( |
3036 self.pluginGrp.setEnabled( |
3042 self.pdata["PROJECTTYPE"] in ["E6Plugin"]) |
3037 self.pdata["PROJECTTYPE"] in ["E7Plugin"]) |
3043 self.addLanguageAct.setEnabled( |
3038 self.addLanguageAct.setEnabled( |
3044 bool(self.pdata["TRANSLATIONPATTERN"])) |
3039 bool(self.pdata["TRANSLATIONPATTERN"])) |
3045 self.makeGrp.setEnabled( |
3040 self.makeGrp.setEnabled( |
3046 self.pdata["MAKEPARAMS"]["MakeEnabled"]) |
3041 self.pdata["MAKEPARAMS"]["MakeEnabled"]) |
3047 self.menuMakeAct.setEnabled( |
3042 self.menuMakeAct.setEnabled( |
3582 """ |
3577 """ |
3583 Public method to get the path of the management directory. |
3578 Public method to get the path of the management directory. |
3584 |
3579 |
3585 @return path of the management directory (string) |
3580 @return path of the management directory (string) |
3586 """ |
3581 """ |
3587 if Utilities.isWindowsPlatform(): |
|
3588 # migrate the old project management directory ( < v18.06) |
|
3589 oldDir = os.path.join(self.ppath, "_eric6project") |
|
3590 if os.path.exists(oldDir): |
|
3591 os.rename( |
|
3592 oldDir, |
|
3593 os.path.join(self.ppath, ".eric6project") |
|
3594 ) |
|
3595 |
|
3596 return os.path.join(self.ppath, ".eric7project") |
3582 return os.path.join(self.ppath, ".eric7project") |
3597 |
3583 |
3598 def createProjectManagementDir(self): |
3584 def createProjectManagementDir(self): |
3599 """ |
3585 """ |
3600 Public method to create the project management directory. |
3586 Public method to create the project management directory. |
3601 |
3587 |
3602 It does nothing, if it already exists. |
3588 It does nothing, if it already exists. |