summaryrefslogtreecommitdiff
path: root/src/leap/baseapp
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/baseapp')
-rw-r--r--src/leap/baseapp/eip.py9
-rw-r--r--src/leap/baseapp/leap_app.py26
-rw-r--r--src/leap/baseapp/systray.py70
3 files changed, 74 insertions, 31 deletions
diff --git a/src/leap/baseapp/eip.py b/src/leap/baseapp/eip.py
index 8ebd84ae..6c147cb4 100644
--- a/src/leap/baseapp/eip.py
+++ b/src/leap/baseapp/eip.py
@@ -152,13 +152,18 @@ class EIPConductorAppMixin(object):
# from openvpn manager)
if not self.eip_service_started:
+ # there is a race condition
+ # going on here. Depending on how long we take
+ # to init the qt app, the management socket
+ # is not ready yet.
return
if self.conductor.with_errors:
#XXX how to wait on pkexec???
#something better that this workaround, plz!!
- time.sleep(5)
- logger.debug('timeout')
+ #I removed the pkexec pass authentication at all.
+ #time.sleep(5)
+ #logger.debug('timeout')
logger.error('errors. disconnect')
self.start_or_stopVPN() # is stop
diff --git a/src/leap/baseapp/leap_app.py b/src/leap/baseapp/leap_app.py
index f91b2329..208c4e7c 100644
--- a/src/leap/baseapp/leap_app.py
+++ b/src/leap/baseapp/leap_app.py
@@ -7,6 +7,9 @@ from leap.gui import mainwindow_rc
logger = logging.getLogger(name=__name__)
+APP_LOGO = ':/images/leap-color-small.png'
+
+
class MainWindowMixin(object):
"""
create the main window
@@ -32,25 +35,30 @@ class MainWindowMixin(object):
widget.setLayout(mainLayout)
self.setWindowTitle("LEAP Client")
+ self.set_app_icon()
self.resize(400, 300)
self.set_statusbarMessage('ready')
+ def set_app_icon(self):
+ icon = QtGui.QIcon(APP_LOGO)
+ self.setWindowIcon(icon)
+
def createWindowHeader(self):
"""
description lines for main window
"""
self.headerBox = QtGui.QGroupBox()
- self.headerLabel = QtGui.QLabel("<font size=40><b>E</b>ncryption \
-<b>I</b>nternet <b>P</b>roxy</font>")
- self.headerLabelSub = QtGui.QLabel("<i>trust your \
-technolust</i>")
+ self.headerLabel = QtGui.QLabel(
+ "<font size=40>LEAP Encryption Access Project</font>")
+ self.headerLabelSub = QtGui.QLabel(
+ "<br><i>your internet encryption toolkit</i>")
- pixmap = QtGui.QPixmap(':/images/leapfrog.jpg')
- frog_lbl = QtGui.QLabel()
- frog_lbl.setPixmap(pixmap)
+ pixmap = QtGui.QPixmap(APP_LOGO)
+ leap_lbl = QtGui.QLabel()
+ leap_lbl.setPixmap(pixmap)
headerLayout = QtGui.QHBoxLayout()
- headerLayout.addWidget(frog_lbl)
+ headerLayout.addWidget(leap_lbl)
headerLayout.addWidget(self.headerLabel)
headerLayout.addWidget(self.headerLabelSub)
headerLayout.addStretch()
@@ -85,5 +93,5 @@ technolust</i>")
# XXX send signal instead?
logger.info('Shutting down')
self.conductor.cleanup()
- logger.info('Exiting')
+ logger.info('Exiting. Bye.')
QtGui.qApp.quit()
diff --git a/src/leap/baseapp/systray.py b/src/leap/baseapp/systray.py
index 762dac13..dd872de0 100644
--- a/src/leap/baseapp/systray.py
+++ b/src/leap/baseapp/systray.py
@@ -1,9 +1,18 @@
+import logging
+
from PyQt4 import QtCore
from PyQt4 import QtGui
from leap import __version__ as VERSION
from leap.gui import mainwindow_rc
+logger = logging.getLogger(__name__)
+
+
+class PseudoAction(QtGui.QAction):
+ def isSeparator(self):
+ return True
+
class StatusAwareTrayIconMixin(object):
"""
@@ -61,7 +70,7 @@ class StatusAwareTrayIconMixin(object):
self.iconpath['connected'])),
self.ConnectionWidgets = con_widgets
- self.statusIconBox = QtGui.QGroupBox("Connection Status")
+ self.statusIconBox = QtGui.QGroupBox("EIP Connection Status")
statusIconLayout = QtGui.QHBoxLayout()
statusIconLayout.addWidget(self.ConnectionWidgets['disconnected'])
statusIconLayout.addWidget(self.ConnectionWidgets['connecting'])
@@ -76,12 +85,15 @@ class StatusAwareTrayIconMixin(object):
"""
self.trayIconMenu = QtGui.QMenu(self)
- self.trayIconMenu.addAction(self.connectVPNAction)
- self.trayIconMenu.addAction(self.dis_connectAction)
+ self.trayIconMenu.addAction(self.statusAct)
+ self.trayIconMenu.addAction(self.connAct)
+ #self.trayIconMenu.addAction(self.dis_connectAction)
+ #self.trayIconMenu.addSeparator()
+ #self.trayIconMenu.addAction(self.minimizeAction)
+ #self.trayIconMenu.addAction(self.maximizeAction)
+ #self.trayIconMenu.addAction(self.restoreAction)
self.trayIconMenu.addSeparator()
- self.trayIconMenu.addAction(self.minimizeAction)
- self.trayIconMenu.addAction(self.maximizeAction)
- self.trayIconMenu.addAction(self.restoreAction)
+ self.trayIconMenu.addAction(self.detailsAct)
self.trayIconMenu.addSeparator()
self.trayIconMenu.addAction(self.aboutAct)
self.trayIconMenu.addAction(self.aboutQtAct)
@@ -92,22 +104,32 @@ class StatusAwareTrayIconMixin(object):
self.setIcon('disconnected')
self.trayIcon.setContextMenu(self.trayIconMenu)
+ def bad(self):
+ logger.error('this should not be called')
+
def createActions(self):
"""
creates actions to be binded to tray icon
"""
- self.connectVPNAction = QtGui.QAction("Connect to &VPN", self,
- triggered=self.hide)
# XXX change action name on (dis)connect
- self.dis_connectAction = QtGui.QAction(
- "&(Dis)connect", self,
- triggered=lambda: self.start_or_stopVPN())
- self.minimizeAction = QtGui.QAction("Mi&nimize", self,
- triggered=self.hide)
- self.maximizeAction = QtGui.QAction("Ma&ximize", self,
- triggered=self.showMaximized)
- self.restoreAction = QtGui.QAction("&Restore", self,
- triggered=self.showNormal)
+ statusAct = PseudoAction(
+ "Encryption OFF", self) # ,
+ statusAct.setSeparator(True)
+ self.statusAct = statusAct
+ self.statusAct.isSeparator = lambda: True
+ #triggered=self.bad)
+ self.connAct = QtGui.QAction(" turn &on", self,
+ triggered=lambda: self.start_or_stopVPN())
+
+ self.detailsAct = QtGui.QAction("&Details...",
+ self,
+ triggered=self.detailsWin)
+ #self.minimizeAction = QtGui.QAction("Mi&nimize", self,
+ #triggered=self.hide)
+ #self.maximizeAction = QtGui.QAction("Ma&ximize", self,
+ #triggered=self.showMaximized)
+ #self.restoreAction = QtGui.QAction("&Restore", self,
+ #triggered=self.showNormal)
self.aboutAct = QtGui.QAction("&About", self,
triggered=self.about)
self.aboutQtAct = QtGui.QAction("About Q&t", self,
@@ -115,11 +137,19 @@ class StatusAwareTrayIconMixin(object):
self.quitAction = QtGui.QAction("&Quit", self,
triggered=self.cleanupAndQuit)
+ def detailsWin(self):
+ logger.debug('details win toggle')
+ # XXX toggle main window visibility
+ # if visible: self.hide
+ # if hidden: self.show
+
def about(self):
# move to widget
QtGui.QMessageBox.about(self, "About",
- "Running LEAP client<br>"
- "version <b>%s</b>" % VERSION)
+ "LEAP client<br>"
+ "(version <b>%s</b>)<br>"
+ "<a href='https://leap.se/'>"
+ "https://leap.se</a>" % VERSION)
def setConnWidget(self, icon_name):
oldlayout = self.statusIconBox.layout()
@@ -132,7 +162,7 @@ class StatusAwareTrayIconMixin(object):
def setIcon(self, name):
icon = self.Icons.get(name)(self)
self.trayIcon.setIcon(icon)
- self.setWindowIcon(icon)
+ #self.setWindowIcon(icon)
def getIcon(self, icon_name):
return self.states.get(icon_name, None)