summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkali <kali@leap.se>2012-10-02 06:43:15 +0900
committerkali <kali@leap.se>2012-10-02 06:43:15 +0900
commit886d04167e51ba07a71393bad5c41b04023db527 (patch)
tree749a039b1a95ff5f888924cfd1c331166a2778a0
parentbbbeef10fd581fa29090b95b8f46f4641f7e5f41 (diff)
moved eip checks to qthread to let icon show early
-rw-r--r--src/leap/app.py4
-rw-r--r--src/leap/baseapp/eip.py24
-rw-r--r--src/leap/baseapp/leap_app.py4
-rw-r--r--src/leap/baseapp/mainwindow.py23
-rw-r--r--src/leap/baseapp/systray.py1
5 files changed, 40 insertions, 16 deletions
diff --git a/src/leap/app.py b/src/leap/app.py
index 52ebcaea..3170de4a 100644
--- a/src/leap/app.py
+++ b/src/leap/app.py
@@ -60,6 +60,10 @@ def main():
window = LeapWindow(opts)
if debug:
+ # we only show the main window
+ # if debug mode active.
+ # if not, it will be set visible
+ # from the systray menu.
window.show()
sys.exit(app.exec_())
diff --git a/src/leap/baseapp/eip.py b/src/leap/baseapp/eip.py
index b0e14be7..8007d2b7 100644
--- a/src/leap/baseapp/eip.py
+++ b/src/leap/baseapp/eip.py
@@ -40,22 +40,28 @@ class EIPConductorAppMixin(object):
debug=self.debugmode,
ovpn_verbosity=opts.openvpn_verb)
- skip_download = opts.no_provider_checks
- skip_verify = opts.no_ca_verify
+ self.skip_download = opts.no_provider_checks
+ self.skip_verify = opts.no_ca_verify
+
+ def run_eip_checks(self):
+ """
+ runs eip checks and
+ the error checking loop
+ """
+ logger.debug('running EIP CHECKS')
self.conductor.run_checks(
- skip_download=skip_download,
- skip_verify=skip_verify)
+ skip_download=self.skip_download,
+ skip_verify=self.skip_verify)
self.error_check()
- # XXX should receive "ready" signal
- # it is called from LeapWindow now.
- #if self.conductor.autostart:
- #self.start_or_stopVPN()
-
if self.debugmode:
self.startStopButton.clicked.connect(
lambda: self.start_or_stopVPN())
+ # XXX should send ready signal instead
+ if self.conductor.autostart:
+ self.start_or_stopVPN()
+
def error_check(self):
"""
consumes the conductor error queue.
diff --git a/src/leap/baseapp/leap_app.py b/src/leap/baseapp/leap_app.py
index fffff0bb..98ca292e 100644
--- a/src/leap/baseapp/leap_app.py
+++ b/src/leap/baseapp/leap_app.py
@@ -23,9 +23,8 @@ class MainWindowMixin(object):
widget = QtGui.QWidget()
self.setCentralWidget(widget)
- #self.createWindowHeader()
-
# add widgets to layout
+ #self.createWindowHeader()
mainLayout = QtGui.QVBoxLayout()
#mainLayout.addWidget(self.headerBox)
mainLayout.addWidget(self.statusIconBox)
@@ -38,6 +37,7 @@ class MainWindowMixin(object):
self.set_app_icon()
self.resize(400, 300)
self.set_statusbarMessage('ready')
+ logger.debug('set ready.........')
def set_app_icon(self):
icon = QtGui.QIcon(APP_LOGO)
diff --git a/src/leap/baseapp/mainwindow.py b/src/leap/baseapp/mainwindow.py
index 10b23d9a..55be55f7 100644
--- a/src/leap/baseapp/mainwindow.py
+++ b/src/leap/baseapp/mainwindow.py
@@ -38,8 +38,11 @@ class LeapWindow(QtGui.QMainWindow,
StatusAwareTrayIconMixin.__init__(self)
MainWindowMixin.__init__(self)
+ self.initchecks = InitChecksThread(self.run_eip_checks)
+
# bind signals
- # XXX move to parent classes init??
+ self.initchecks.finished.connect(
+ lambda: logger.debug('Initial checks finished'))
self.trayIcon.activated.connect(self.iconActivated)
self.newLogLine.connect(
lambda line: self.onLoggerNewLine(line))
@@ -50,7 +53,17 @@ class LeapWindow(QtGui.QMainWindow,
# ... all ready. go!
- # could send "ready" signal instead
- # eipapp should catch that
- if self.conductor.autostart:
- self.start_or_stopVPN()
+ self.initchecks.begin()
+
+
+class InitChecksThread(QtCore.QThread):
+
+ def __init__(self, fun, parent=None):
+ QtCore.QThread.__init__(self, parent)
+ self.fun = fun
+
+ def run(self):
+ self.fun()
+
+ def begin(self):
+ self.start()
diff --git a/src/leap/baseapp/systray.py b/src/leap/baseapp/systray.py
index 39a23f49..0ab37f7f 100644
--- a/src/leap/baseapp/systray.py
+++ b/src/leap/baseapp/systray.py
@@ -41,6 +41,7 @@ class StatusAwareTrayIconMixin(object):
self.createIconGroupBox()
self.createActions()
self.createTrayIcon()
+ logger.debug('showing tray icon................')
self.trayIcon.show()
# not sure if this really belongs here, but...