Preferences/ConfigurationPages/EmailPage.py

changeset 6559
1265efa7364f
parent 6048
82ad8ec9548c
child 6560
12bf4c8aa165
diff -r db48660ca7c0 -r 1265efa7364f Preferences/ConfigurationPages/EmailPage.py
--- a/Preferences/ConfigurationPages/EmailPage.py	Wed Oct 24 19:59:49 2018 +0200
+++ b/Preferences/ConfigurationPages/EmailPage.py	Thu Oct 25 20:06:44 2018 +0200
@@ -36,6 +36,8 @@
         self.setupUi(self)
         self.setObjectName("EmailPage")
         
+        self.__helpDialog = None
+        
         # set initial values
         try:
             import googleapiclient      # __IGNORE_WARNING__
@@ -49,6 +51,17 @@
                 "<p>The Google Mail Client API is not installed."
                 " Use <code>pip install --upgrade google-api-python-client"
                 "</code> to install it.</p>"))
+            self.googleHelpButton.setEnabled(False)
+            Preferences.setUser("UseGoogleMailOAuth2", False)
+        
+        from E5Network.E5GoogleMail import isCredentialsFileAvailable
+        if not isCredentialsFileAvailable():
+            # credentials file is not installed
+            self.googleMailCheckBox.setChecked(False)
+            self.googleMailCheckBox.setEnabled(False)
+            self.googleMailInfoLabel.setText(self.tr(
+                "<p>The credentials file is not present. Has the Gmail API"
+                " been enabled?</p>"))
             Preferences.setUser("UseGoogleMailOAuth2", False)
         
         self.mailServerEdit.setText(Preferences.getUser("MailServer"))
@@ -259,6 +272,28 @@
                 self.tr("Login Test"),
                 self.tr("""<p>The login test failed.<br>Reason: {0}</p>""")
                 .format(errorStr))
+    
+    @pyqtSlot()
+    def on_googleHelpButton_clicked(self):
+        """
+        Private slot to show some help text "how to turn on the Gmail API".
+        """
+        if self.__helpDialog is None:
+            try:
+                from E5Network.E5GoogleMail import GoogleMailHelp
+                helpStr = GoogleMailHelp()
+            except ImportError:
+                helpStr = self.tr(
+                    "<p>The Google Mail Client API is not installed."
+                    " Use <code>pip install --upgrade google-api-python-client"
+                    "</code> to install it.</p>")
+            
+            from E5Gui.E5SimpleHelpDialog import E5SimpleHelpDialog
+            self.__helpDialog = E5SimpleHelpDialog(
+                title=self.tr("Gmail API Help"),
+                helpStr=helpStr, parent=self)
+        
+        self.__helpDialog.show()
 
 
 def create(dlg):

eric ide

mercurial