71 from eric7.EricWidgets.EricClickableLabel import EricClickableLabel |
69 from eric7.EricWidgets.EricClickableLabel import EricClickableLabel |
72 from eric7.EricWidgets.EricMainWindow import EricMainWindow |
70 from eric7.EricWidgets.EricMainWindow import EricMainWindow |
73 from eric7.EricWidgets.EricSingleApplication import EricSingleApplicationServer |
71 from eric7.EricWidgets.EricSingleApplication import EricSingleApplicationServer |
74 from eric7.EricWidgets.EricToolBarManager import EricToolBarManager |
72 from eric7.EricWidgets.EricToolBarManager import EricToolBarManager |
75 from eric7.EricWidgets.EricZoomWidget import EricZoomWidget |
73 from eric7.EricWidgets.EricZoomWidget import EricZoomWidget |
76 from eric7.EricXML.SessionReader import SessionReader |
|
77 from eric7.EricXML.TasksReader import TasksReader |
|
78 from eric7.Globals import getConfig |
74 from eric7.Globals import getConfig |
79 from eric7.MultiProject.MultiProject import MultiProject |
75 from eric7.MultiProject.MultiProject import MultiProject |
80 from eric7.PipInterface.Pip import Pip |
76 from eric7.PipInterface.Pip import Pip |
81 from eric7.PluginManager.PluginManager import PluginManager |
77 from eric7.PluginManager.PluginManager import PluginManager |
82 from eric7.PluginManager.PluginRepositoryDialog import PluginRepositoryDownloadCleanup |
78 from eric7.PluginManager.PluginRepositoryDialog import PluginRepositoryDownloadCleanup |
1677 try: |
1673 try: |
1678 ext = os.path.normcase(os.path.splitext(filename)[1]) |
1674 ext = os.path.normcase(os.path.splitext(filename)[1]) |
1679 except IndexError: |
1675 except IndexError: |
1680 ext = "" |
1676 ext = "" |
1681 |
1677 |
1682 if ext in (".epj", ".e4p"): |
1678 if ext in (".epj",): |
1683 self.project.openProject(filename) |
1679 self.project.openProject(filename) |
1684 opens += 1 |
1680 opens += 1 |
1685 elif ext in (".emj", ".e4m", ".e5m"): |
1681 elif ext in (".emj",): |
1686 self.multiProject.openMultiProject(filename) |
1682 self.multiProject.openMultiProject(filename) |
1687 opens += 1 |
1683 opens += 1 |
1688 else: |
1684 else: |
1689 self.viewmanager.openFiles(filename) |
1685 self.viewmanager.openFiles(filename) |
1690 opens += 1 |
1686 opens += 1 |
7652 fn = os.path.join(Globals.getConfigDir(), "eric7tasks.etj") |
7646 fn = os.path.join(Globals.getConfigDir(), "eric7tasks.etj") |
7653 self.__tasksFile.writeFile(fn) |
7647 self.__tasksFile.writeFile(fn) |
7654 |
7648 |
7655 def __readTasks(self): |
7649 def __readTasks(self): |
7656 """ |
7650 """ |
7657 Private slot to read in the tasks file (.etj or .e6t). |
7651 Private slot to read in the tasks file (.etj). |
7658 """ |
7652 """ |
7659 fn = os.path.join(Globals.getConfigDir(), "eric7tasks.etj") |
7653 fn = os.path.join(Globals.getConfigDir(), "eric7tasks.etj") |
7660 if os.path.exists(fn): |
7654 if os.path.exists(fn): |
7661 # try new style JSON file first |
|
7662 self.__tasksFile.readFile(fn) |
7655 self.__tasksFile.readFile(fn) |
7663 else: |
|
7664 # try old style XML file second |
|
7665 fn = os.path.join(Globals.getConfigDir(), "eric7tasks.e6t") |
|
7666 if os.path.exists(fn): |
|
7667 f = QFile(fn) |
|
7668 if f.open(QIODevice.OpenModeFlag.ReadOnly): |
|
7669 reader = TasksReader(f, viewer=self.taskViewer) |
|
7670 reader.readXML() |
|
7671 f.close() |
|
7672 else: |
|
7673 EricMessageBox.critical( |
|
7674 self, |
|
7675 self.tr("Read Tasks"), |
|
7676 self.tr( |
|
7677 "<p>The tasks file <b>{0}</b> could not be read.</p>" |
|
7678 ).format(fn), |
|
7679 ) |
|
7680 |
7656 |
7681 def __writeSession(self, filename="", crashSession=False): |
7657 def __writeSession(self, filename="", crashSession=False): |
7682 """ |
7658 """ |
7683 Private slot to write the session data to a JSON file (.esj). |
7659 Private slot to write the session data to a JSON file (.esj). |
7684 |
7660 |
7698 |
7674 |
7699 return self.__sessionFile.writeFile(fn) |
7675 return self.__sessionFile.writeFile(fn) |
7700 |
7676 |
7701 def __readSession(self, filename=""): |
7677 def __readSession(self, filename=""): |
7702 """ |
7678 """ |
7703 Private slot to read in the session file (.esj or .e5s). |
7679 Private slot to read in the session file (.esj). |
7704 |
7680 |
7705 @param filename name of a session file to read |
7681 @param filename name of a session file to read |
7706 @type str |
7682 @type str |
7707 @return flag indicating success |
7683 @return flag indicating success |
7708 @rtype bool |
7684 @rtype bool |
7710 if filename: |
7686 if filename: |
7711 fn = filename |
7687 fn = filename |
7712 else: |
7688 else: |
7713 fn = os.path.join(Globals.getConfigDir(), "eric7session.esj") |
7689 fn = os.path.join(Globals.getConfigDir(), "eric7session.esj") |
7714 if not os.path.exists(fn): |
7690 if not os.path.exists(fn): |
7715 fn = os.path.join(Globals.getConfigDir(), "eric7session.e5s") |
7691 EricMessageBox.critical( |
7716 if not os.path.exists(fn): |
7692 self, |
7717 EricMessageBox.critical( |
7693 self.tr("Read Session"), |
7718 self, |
7694 self.tr( |
7719 self.tr("Read Session"), |
7695 "<p>The session file <b>{0}</b> could not be read.</p>" |
7720 self.tr( |
7696 ).format(fn), |
7721 "<p>The session file <b>{0}</b> could not be read.</p>" |
7697 ) |
7722 ).format(fn), |
7698 fn = "" |
7723 ) |
|
7724 fn = "" |
|
7725 |
7699 |
7726 res = False |
7700 res = False |
7727 if fn: |
7701 if fn: |
7728 if fn.endswith(".esj"): |
7702 self.__readingSession = True |
7729 # new JSON based format |
7703 res = self.__sessionFile.readFile(fn) |
7730 self.__readingSession = True |
7704 self.__readingSession = False |
7731 res = self.__sessionFile.readFile(fn) |
|
7732 self.__readingSession = False |
|
7733 else: |
|
7734 # old XML based format |
|
7735 f = QFile(fn) |
|
7736 if f.open(QIODevice.OpenModeFlag.ReadOnly): |
|
7737 self.__readingSession = True |
|
7738 reader = SessionReader(f, True) |
|
7739 reader.readXML() |
|
7740 self.__readingSession = False |
|
7741 f.close() |
|
7742 res = True |
|
7743 else: |
|
7744 EricMessageBox.critical( |
|
7745 self, |
|
7746 self.tr("Read session"), |
|
7747 self.tr( |
|
7748 "<p>The session file <b>{0}</b> could not be read.</p>" |
|
7749 ).format(fn), |
|
7750 ) |
|
7751 |
7705 |
7752 # Write a crash session after a session was read. |
7706 # Write a crash session after a session was read. |
7753 self.__writeCrashSession() |
7707 self.__writeCrashSession() |
7754 |
7708 |
7755 return res |
7709 return res |
7783 """ |
7737 """ |
7784 sessionFile = EricFileDialog.getOpenFileName( |
7738 sessionFile = EricFileDialog.getOpenFileName( |
7785 self, |
7739 self, |
7786 self.tr("Load session"), |
7740 self.tr("Load session"), |
7787 OSUtilities.getHomeDir(), |
7741 OSUtilities.getHomeDir(), |
7788 self.tr("eric Session Files (*.esj);;eric XML Session Files (*.e5s)"), |
7742 self.tr("eric Session Files (*.esj)"), |
7789 ) |
7743 ) |
7790 |
7744 |
7791 if not sessionFile: |
7745 if not sessionFile: |
7792 return |
7746 return |
7793 |
7747 |
7795 |
7749 |
7796 def __deleteCrashSession(self): |
7750 def __deleteCrashSession(self): |
7797 """ |
7751 """ |
7798 Private slot to delete the crash session file. |
7752 Private slot to delete the crash session file. |
7799 """ |
7753 """ |
7800 for ext in (".esj", ".e5s"): |
7754 fn = os.path.join(Globals.getConfigDir(), "eric7_crash_session.esj") |
7801 fn = os.path.join(Globals.getConfigDir(), f"eric7_crash_session{ext}") |
7755 if os.path.exists(fn): |
7802 if os.path.exists(fn): |
7756 with contextlib.suppress(OSError): |
7803 with contextlib.suppress(OSError): |
7757 os.remove(fn) |
7804 os.remove(fn) |
|
7805 |
7758 |
7806 def __writeCrashSession(self): |
7759 def __writeCrashSession(self): |
7807 """ |
7760 """ |
7808 Private slot to write a crash session file. |
7761 Private slot to write a crash session file. |
7809 """ |
7762 """ |