13 import pathlib |
13 import pathlib |
14 |
14 |
15 from PyQt6.QtCore import pyqtSignal, pyqtSlot, QFile, QIODevice, QObject, QUuid |
15 from PyQt6.QtCore import pyqtSignal, pyqtSlot, QFile, QIODevice, QObject, QUuid |
16 from PyQt6.QtWidgets import QMenu, QDialog, QToolBar |
16 from PyQt6.QtWidgets import QMenu, QDialog, QToolBar |
17 |
17 |
18 from Globals import recentNameMultiProject |
18 from eric7.Globals import recentNameMultiProject |
19 |
19 |
20 from EricGui.EricAction import EricAction, createActionGroup |
20 from eric7.EricGui.EricAction import EricAction, createActionGroup |
21 from EricWidgets import EricFileDialog, EricMessageBox, EricPathPickerDialog |
21 from eric7.EricWidgets import EricFileDialog, EricMessageBox, EricPathPickerDialog |
22 from EricWidgets.EricPathPickerDialog import EricPathPickerModes |
22 from eric7.EricWidgets.EricPathPickerDialog import EricPathPickerModes |
23 from EricGui.EricOverrideCursor import EricOverrideCursor |
23 from eric7.EricGui.EricOverrideCursor import EricOverrideCursor |
24 |
24 |
25 import UI.PixmapCache |
25 from eric7.EricGui import EricPixmapCache |
26 |
26 from eric7.UI import Config |
27 import Preferences |
27 |
28 import Utilities |
28 from eric7 import Preferences, Utilities |
29 |
29 |
30 from .MultiProjectFile import MultiProjectFile |
30 from .MultiProjectFile import MultiProjectFile |
31 |
31 |
32 |
32 |
33 class MultiProject(QObject): |
33 class MultiProject(QObject): |
230 else: |
230 else: |
231 # old XML based format |
231 # old XML based format |
232 f = QFile(fn) |
232 f = QFile(fn) |
233 if f.open(QIODevice.OpenModeFlag.ReadOnly): |
233 if f.open(QIODevice.OpenModeFlag.ReadOnly): |
234 with EricOverrideCursor(): |
234 with EricOverrideCursor(): |
235 from EricXML.MultiProjectReader import MultiProjectReader |
235 from eric7.EricXML.MultiProjectReader import MultiProjectReader |
236 |
236 |
237 reader = MultiProjectReader(f, self) |
237 reader = MultiProjectReader(f, self) |
238 reader.readXML() |
238 reader.readXML() |
239 f.close() |
239 f.close() |
240 res = not reader.hasError() |
240 res = not reader.hasError() |
719 act.triggered.connect(self.__newMultiProject) |
719 act.triggered.connect(self.__newMultiProject) |
720 self.actions.append(act) |
720 self.actions.append(act) |
721 |
721 |
722 act = EricAction( |
722 act = EricAction( |
723 self.tr("Open multiproject"), |
723 self.tr("Open multiproject"), |
724 UI.PixmapCache.getIcon("multiProjectOpen"), |
724 EricPixmapCache.getIcon("multiProjectOpen"), |
725 self.tr("&Open..."), |
725 self.tr("&Open..."), |
726 0, |
726 0, |
727 0, |
727 0, |
728 self.actGrp1, |
728 self.actGrp1, |
729 "multi_project_open", |
729 "multi_project_open", |
737 act.triggered.connect(self.openMultiProject) |
737 act.triggered.connect(self.openMultiProject) |
738 self.actions.append(act) |
738 self.actions.append(act) |
739 |
739 |
740 self.closeAct = EricAction( |
740 self.closeAct = EricAction( |
741 self.tr("Close multiproject"), |
741 self.tr("Close multiproject"), |
742 UI.PixmapCache.getIcon("multiProjectClose"), |
742 EricPixmapCache.getIcon("multiProjectClose"), |
743 self.tr("&Close"), |
743 self.tr("&Close"), |
744 0, |
744 0, |
745 0, |
745 0, |
746 self, |
746 self, |
747 "multi_project_close", |
747 "multi_project_close", |
755 self.closeAct.triggered.connect(self.closeMultiProject) |
755 self.closeAct.triggered.connect(self.closeMultiProject) |
756 self.actions.append(self.closeAct) |
756 self.actions.append(self.closeAct) |
757 |
757 |
758 self.saveAct = EricAction( |
758 self.saveAct = EricAction( |
759 self.tr("Save multiproject"), |
759 self.tr("Save multiproject"), |
760 UI.PixmapCache.getIcon("multiProjectSave"), |
760 EricPixmapCache.getIcon("multiProjectSave"), |
761 self.tr("&Save"), |
761 self.tr("&Save"), |
762 0, |
762 0, |
763 0, |
763 0, |
764 self, |
764 self, |
765 "multi_project_save", |
765 "multi_project_save", |
771 self.saveAct.triggered.connect(self.saveMultiProject) |
771 self.saveAct.triggered.connect(self.saveMultiProject) |
772 self.actions.append(self.saveAct) |
772 self.actions.append(self.saveAct) |
773 |
773 |
774 self.saveasAct = EricAction( |
774 self.saveasAct = EricAction( |
775 self.tr("Save multiproject as"), |
775 self.tr("Save multiproject as"), |
776 UI.PixmapCache.getIcon("multiProjectSaveAs"), |
776 EricPixmapCache.getIcon("multiProjectSaveAs"), |
777 self.tr("Save &as..."), |
777 self.tr("Save &as..."), |
778 0, |
778 0, |
779 0, |
779 0, |
780 self, |
780 self, |
781 "multi_project_save_as", |
781 "multi_project_save_as", |
792 self.saveasAct.triggered.connect(self.saveMultiProjectAs) |
792 self.saveasAct.triggered.connect(self.saveMultiProjectAs) |
793 self.actions.append(self.saveasAct) |
793 self.actions.append(self.saveasAct) |
794 |
794 |
795 self.addProjectAct = EricAction( |
795 self.addProjectAct = EricAction( |
796 self.tr("Add project to multiproject"), |
796 self.tr("Add project to multiproject"), |
797 UI.PixmapCache.getIcon("fileProject"), |
797 EricPixmapCache.getIcon("fileProject"), |
798 self.tr("Add &project..."), |
798 self.tr("Add &project..."), |
799 0, |
799 0, |
800 0, |
800 0, |
801 self, |
801 self, |
802 "multi_project_add_project", |
802 "multi_project_add_project", |
814 self.addProjectAct.triggered.connect(self.addNewProject) |
814 self.addProjectAct.triggered.connect(self.addNewProject) |
815 self.actions.append(self.addProjectAct) |
815 self.actions.append(self.addProjectAct) |
816 |
816 |
817 self.propsAct = EricAction( |
817 self.propsAct = EricAction( |
818 self.tr("Multiproject properties"), |
818 self.tr("Multiproject properties"), |
819 UI.PixmapCache.getIcon("multiProjectProps"), |
819 EricPixmapCache.getIcon("multiProjectProps"), |
820 self.tr("&Properties..."), |
820 self.tr("&Properties..."), |
821 0, |
821 0, |
822 0, |
822 0, |
823 self, |
823 self, |
824 "multi_project_properties", |
824 "multi_project_properties", |
883 @param toolbarManager reference to a toolbar manager object |
883 @param toolbarManager reference to a toolbar manager object |
884 (EricToolBarManager) |
884 (EricToolBarManager) |
885 @return the toolbar generated (QToolBar) |
885 @return the toolbar generated (QToolBar) |
886 """ |
886 """ |
887 tb = QToolBar(self.tr("Multiproject"), self.ui) |
887 tb = QToolBar(self.tr("Multiproject"), self.ui) |
888 tb.setIconSize(UI.Config.ToolBarIconSize) |
888 tb.setIconSize(Config.ToolBarIconSize) |
889 tb.setObjectName("MultiProjectToolbar") |
889 tb.setObjectName("MultiProjectToolbar") |
890 tb.setToolTip(self.tr("Multiproject")) |
890 tb.setToolTip(self.tr("Multiproject")) |
891 |
891 |
892 tb.addActions(self.actGrp1.actions()) |
892 tb.addActions(self.actGrp1.actions()) |
893 tb.addAction(self.closeAct) |
893 tb.addAction(self.closeAct) |