UI/UserInterface.py

changeset 3092
f7ec7a3e7270
parent 3071
83d066710d60
child 3111
5366f0647f79
--- a/UI/UserInterface.py	Sun Nov 17 12:24:45 2013 +0100
+++ b/UI/UserInterface.py	Sun Nov 17 13:28:39 2013 +0100
@@ -135,6 +135,8 @@
     BottomSide = 2
     RightSide = 3
     
+    ErrorLogFileName = "eric5_error.log"
+    
     def __init__(self, app, locale, splash, plugin, noOpenAtStartup,
                  restartArguments):
         """
@@ -1618,6 +1620,18 @@
             self.showAvailableVersionsInfo)
         self.actions.append(self.showVersionsAct)
 
+        self.showErrorLogAct = E5Action(
+            self.trUtf8('Show Error Log'),
+            self.trUtf8('Show Error &Log...'),
+            0, 0, self, 'show_error_log')
+        self.showErrorLogAct.setStatusTip(self.trUtf8('Show Error Log'))
+        self.showErrorLogAct.setWhatsThis(self.trUtf8(
+            """<b>Show Error Log...</b>"""
+            """<p>Opens a dialog showing the most recent error log.</p>"""
+        ))
+        self.showErrorLogAct.triggered[()].connect(self.__showErrorLog)
+        self.actions.append(self.showErrorLogAct)
+        
         self.reportBugAct = E5Action(
             self.trUtf8('Report Bug'),
             self.trUtf8('Report &Bug...'),
@@ -2492,6 +2506,7 @@
         self.__menus["help"].addAction(self.checkUpdateAct)
         self.__menus["help"].addAction(self.showVersionsAct)
         self.__menus["help"].addSeparator()
+        self.__menus["help"].addAction(self.showErrorLogAct)
         self.__menus["help"].addAction(self.reportBugAct)
         self.__menus["help"].addAction(self.requestFeatureAct)
         self.__menus["help"].addSeparator()
@@ -2835,6 +2850,7 @@
         """
         self.checkUpdateAct.setEnabled(not self.__inVersionCheck)
         self.showVersionsAct.setEnabled(not self.__inVersionCheck)
+        self.showErrorLogAct.setEnabled(self.__hasErrorLog())
         
         self.showMenu.emit("Help", self.__menus["help"])
     
@@ -3000,12 +3016,32 @@
         user, what to do with it.
         """
         if Preferences.getUI("CheckErrorLog"):
-            logFile = os.path.join(Utilities.getConfigDir(), "eric5_error.log")
+            logFile = os.path.join(Utilities.getConfigDir(),
+                                   self.ErrorLogFileName)
             if os.path.exists(logFile):
                 from .ErrorLogDialog import ErrorLogDialog
-                dlg = ErrorLogDialog(logFile, self)
+                dlg = ErrorLogDialog(logFile, False, self)
                 dlg.exec_()
         
+    def __hasErrorLog(self):
+        """
+        Private method to check, if an error log file exists.
+        """
+        logFile = os.path.join(Utilities.getConfigDir(),
+                               self.ErrorLogFileName)
+        return os.path.exists(logFile)
+        
+    def __showErrorLog(self):
+        """
+        Private slot to show the most recent error log message.
+        """
+        logFile = os.path.join(Utilities.getConfigDir(),
+                               self.ErrorLogFileName)
+        if os.path.exists(logFile):
+            from .ErrorLogDialog import ErrorLogDialog
+            dlg = ErrorLogDialog(logFile, True, self)
+            dlg.show()
+        
     def __compareFiles(self):
         """
         Private slot to handle the Compare Files dialog.

eric ide

mercurial