summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/properly_enable_services1
-rw-r--r--src/leap/bitmask/gui/mail_status.py11
-rw-r--r--src/leap/bitmask/gui/mainwindow.py15
3 files changed, 21 insertions, 6 deletions
diff --git a/changes/properly_enable_services b/changes/properly_enable_services
new file mode 100644
index 00000000..1b08fa3c
--- /dev/null
+++ b/changes/properly_enable_services
@@ -0,0 +1 @@
+ o Do not start Soledad if Mail is not enabled. Fixes #3989. \ No newline at end of file
diff --git a/src/leap/bitmask/gui/mail_status.py b/src/leap/bitmask/gui/mail_status.py
index 770d991f..ab9052d7 100644
--- a/src/leap/bitmask/gui/mail_status.py
+++ b/src/leap/bitmask/gui/mail_status.py
@@ -199,7 +199,8 @@ class MailStatusWidget(QtGui.QWidget):
:param status: the status text to display
:type status: unicode
- :param ready: 2 or >2 if mx is ready, 0 if stopped, 1 if it's starting.
+ :param ready: 2 or >2 if mx is ready, 0 if stopped, 1 if it's
+ starting, < 0 if disabled.
:type ready: int
"""
self.ui.lblMailStatus.setText(status)
@@ -219,6 +220,8 @@ class MailStatusWidget(QtGui.QWidget):
icon = self.CONNECTED_ICON
self._mx_status = self.tr('ON')
tray_status = self.tr('Mail is ON')
+ elif ready < 0:
+ tray_status = self.tr("Mail is disabled")
self.ui.lblMailStatusIcon.setPixmap(icon)
self._action_mail_status.setText(tray_status)
@@ -392,6 +395,12 @@ class MailStatusWidget(QtGui.QWidget):
self._set_mail_status(self.tr("About to start, please wait..."),
ready=1)
+ def set_disabled(self):
+ """
+ Displays the correct UI for disabled mail.
+ """
+ self._set_mail_status(self.tr("Disabled"), -1)
+
def stopped_mail(self):
"""
Displayes the correct UI for the stopped state.
diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py
index 7129b670..dd4a341e 100644
--- a/src/leap/bitmask/gui/mainwindow.py
+++ b/src/leap/bitmask/gui/mainwindow.py
@@ -950,17 +950,22 @@ class MainWindow(QtGui.QMainWindow):
self._login_widget.logged_in()
+ self._enabled_services = self._settings.get_enabled_services(
+ self._provider_config.get_domain())
+
# TODO separate UI from logic.
# TODO soledad should check if we want to run only over EIP.
if self._provider_config.provides_mx() and \
self._enabled_services.count(self.MX_SERVICE) > 0:
self._mail_status.about_to_start()
- self._soledad_bootstrapper.run_soledad_setup_checks(
- self._provider_config,
- self._login_widget.get_user(),
- self._login_widget.get_password(),
- download_if_needed=True)
+ self._soledad_bootstrapper.run_soledad_setup_checks(
+ self._provider_config,
+ self._login_widget.get_user(),
+ self._login_widget.get_password(),
+ download_if_needed=True)
+ else:
+ self._mail_status.set_disabled()
self._download_eip_config()