src/eric7/UI/UserInterface.py

branch
eric7
changeset 10838
2989df16da36
parent 10837
40cdaa4a847d
child 10862
c14dae55e9d8
--- a/src/eric7/UI/UserInterface.py	Tue Jul 09 18:09:27 2024 +0200
+++ b/src/eric7/UI/UserInterface.py	Wed Jul 10 13:52:29 2024 +0200
@@ -1953,44 +1953,6 @@
         self.loadSessionAct.triggered.connect(self.__loadSessionFromFile)
         self.actions.append(self.loadSessionAct)
 
-        self.loadCrashSessionAct = EricAction(
-            self.tr("Load crash session"),
-            self.tr("Load crash session..."),
-            0,
-            0,
-            self,
-            "load_crash_session",
-        )
-        self.loadCrashSessionAct.setStatusTip(self.tr("Load crash session"))
-        self.loadCrashSessionAct.setWhatsThis(
-            self.tr(
-                """<b>Load crash session...</b>"""
-                """<p>This presents a list of available crash session files"""
-                """ to select from and loads the selected one.</p>"""
-            )
-        )
-        self.loadCrashSessionAct.triggered.connect(self.__loadCrashSession)
-        self.actions.append(self.loadCrashSessionAct)
-
-        self.cleanCrashSessionsAct = EricAction(
-            self.tr("Clean crash sessions"),
-            self.tr("Clean crash sessions..."),
-            0,
-            0,
-            self,
-            "clean_crash_sessions",
-        )
-        self.cleanCrashSessionsAct.setStatusTip(self.tr("Clean crash sessions"))
-        self.cleanCrashSessionsAct.setWhatsThis(
-            self.tr(
-                """<b>Clean crash sessions...</b>"""
-                """<p>This asks for confirmation and deletes all stale crash session"""
-                """ files.</p>"""
-            )
-        )
-        self.cleanCrashSessionsAct.triggered.connect(self.__cleanCrashSessions)
-        self.actions.append(self.cleanCrashSessionsAct)
-
         self.newWindowAct = EricAction(
             self.tr("New Window"),
             EricPixmapCache.getIcon("newWindow"),
@@ -3866,11 +3828,7 @@
         ##############################################################
 
         self.__menus["sessions"] = QMenu(self.tr("Sessions"))
-        self.__menus["sessions"].addAction(self.saveSessionAct)
-        self.__menus["sessions"].addAction(self.loadSessionAct)
-        self.__menus["sessions"].addSeparator()
-        self.__menus["sessions"].addAction(self.loadCrashSessionAct)
-        self.__menus["sessions"].addAction(self.cleanCrashSessionsAct)
+        self.__menus["sessions"].aboutToShow.connect(self.__showSessionsMenu)
 
         ##############################################################
         ## File menu
@@ -7747,6 +7705,25 @@
         if os.path.exists(fn):
             self.__tasksFile.readFile(fn)
 
+    @pyqtSlot()
+    def __showSessionsMenu(self):
+        """
+        Private slot to mofify the state of some session actions.
+        """
+        crashSessionsAvailable = bool(self.__getCrashedSessions())
+
+        menu = self.__menus["sessions"]
+        menu.clear()
+        menu.addAction(self.saveSessionAct)
+        menu.addAction(self.loadSessionAct)
+        menu.addSeparator()
+        act = menu.addAction(self.tr("Load crash session..."), self.__loadCrashSession)
+        act.setEnabled(crashSessionsAvailable)
+        act = menu.addAction(
+            self.tr("Clean crash sessions..."), self.__cleanCrashSessions
+        )
+        act.setEnabled(crashSessionsAvailable)
+
     def __writeSession(self, filename=""):
         """
         Private slot to write the session data to a JSON file (.esj).

eric ide

mercurial