summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2014-06-04 11:31:31 -0500
committerKali Kaneko <kali@leap.se>2014-06-04 14:01:49 -0500
commit532a4f63d219e9d9daa1a3252aa8909ca6d8030a (patch)
tree46261e3a8f1ba1f6fc10f11f95f7fccf220c785c
parent0626d6349472bdcd934328165cfe1a0e7d891bfe (diff)
fix status errors during first eip connection
- show eip button - update systray action - remove the provider update on disconnection.
-rw-r--r--src/leap/bitmask/gui/eip_status.py9
-rw-r--r--src/leap/bitmask/gui/mainwindow.py22
2 files changed, 9 insertions, 22 deletions
diff --git a/src/leap/bitmask/gui/eip_status.py b/src/leap/bitmask/gui/eip_status.py
index 7649f840..f03a1a1d 100644
--- a/src/leap/bitmask/gui/eip_status.py
+++ b/src/leap/bitmask/gui/eip_status.py
@@ -332,6 +332,7 @@ class EIPStatusWidget(QtGui.QWidget):
:type message: str or unicode
"""
self.ui.lblEIPMessage.setText(message)
+ self.ui.lblEIPMessage.show()
def set_eip_status(self, status, error=False):
"""
@@ -515,6 +516,8 @@ class EIPStatusWidget(QtGui.QWidget):
# when we detect vpn authentication is happening
msg = self.tr("Encrypted Internet is starting")
self.set_eip_message(msg)
+ # on the first-run path, we hadn't showed the button yet.
+ self.eip_button.show()
elif vpn_state == "GET_CONFIG":
self.set_eip_status(self.tr("Retrieving configuration..."))
elif vpn_state == "WAIT":
@@ -572,9 +575,10 @@ class EIPStatusWidget(QtGui.QWidget):
def set_provider(self, provider):
self._provider = provider
+
self.ui.lblEIPMessage.setText(
self.tr("Routing traffic through: <b>{0}</b>").format(
- self._provider))
+ provider))
def aborted(self):
"""
@@ -594,6 +598,9 @@ class EIPStatusWidget(QtGui.QWidget):
TRIGGERS:
Signaler.eip_connection_aborted
"""
+ # TODO this name is very misleading, since there's a generic signal
+ # that's called connection_aborted / connection_died...
+ # should rename to something more specific about missing config.
logger.error("Tried to start EIP but cannot find any "
"available provider!")
diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py
index 968e5ead..6d30e399 100644
--- a/src/leap/bitmask/gui/mainwindow.py
+++ b/src/leap/bitmask/gui/mainwindow.py
@@ -158,8 +158,6 @@ class MainWindow(QtGui.QMainWindow):
self._eip_conductor.connect_signals()
self._eip_conductor.qtsigs.connected_signal.connect(
self._on_eip_connection_connected)
- self._eip_conductor.qtsigs.disconnected_signal.connect(
- self._on_eip_connection_disconnected)
self._eip_conductor.qtsigs.connected_signal.connect(
self._maybe_run_soledad_setup_checks)
@@ -1448,6 +1446,7 @@ class MainWindow(QtGui.QMainWindow):
Enables the EIP start action in the systray menu.
"""
self._action_eip_startstop.setEnabled(True)
+ self._eip_status.enable_eip_start()
@QtCore.Slot()
def _on_eip_connection_connected(self):
@@ -1468,25 +1467,6 @@ class MainWindow(QtGui.QMainWindow):
# check for connectivity
self._check_name_resolution(domain)
- @QtCore.Slot()
- def _on_eip_connection_disconnected(self):
- """
- TRIGGERS:
- self._eip_conductor.qtsigs.disconnected_signal
-
- Workaround for updating the eip_status widget with
- the provider when the eip connection disconnects.
- """
- # TODO
- # We should move this to the conductor<->widget interface.
- # To do that, we need to subscribe to logged_user,
- # for example by using the observer pattern or a proxy object.
- user = self._logged_user
- if user:
- domain = self._login_widget.get_selected_provider()
- full_user_id = make_address(user, domain)
- self._eip_status.set_provider(full_user_id)
-
def _check_name_resolution(self, domain):
# FIXME this has to be moved to backend !!!
# Should move to netchecks module.