diff options
| author | antialias <antialias@leap.se> | 2012-10-01 15:10:55 -0400 | 
|---|---|---|
| committer | antialias <antialias@leap.se> | 2012-10-01 15:10:55 -0400 | 
| commit | 95ce59c8833cb2ba951630080cdbc1e6d756a666 (patch) | |
| tree | 8434a07650ef78497daff7e2f9f100a500adf9b4 | |
| parent | c75b27484a999f70a6e28e521f236cf2d403edd1 (diff) | |
Still some QT related problems. Hand off to kali to fix.
| -rw-r--r-- | src/leap/base/network.py | 8 | ||||
| -rw-r--r-- | src/leap/baseapp/mainwindow.py | 14 | ||||
| -rw-r--r-- | src/leap/baseapp/network.py | 36 | 
3 files changed, 18 insertions, 40 deletions
| diff --git a/src/leap/base/network.py b/src/leap/base/network.py index 92fb7635..159e9b21 100644 --- a/src/leap/base/network.py +++ b/src/leap/base/network.py @@ -21,15 +21,15 @@ class NetworkChecker(object):      def __init__(self, *args, **kwargs):          self.status_signals = kwargs.pop('status_signals', None)          self.watcher_cb = kwargs.pop('status_signals', None) -        self.excp_logger = lambda exc: logger.error("%s", exc.message) +        self.error_cb = kwargs.pop('error_cb', +                    lambda exc: logger.error("%s", exc.message))          self.shutdown = threading.Event()          self.checker = LeapNetworkChecker()      def start(self): -        self.process_handle = self._launch_recurrent_network_checks((self.excp_logger,)) +        self.process_handle = self._launch_recurrent_network_checks((self.error_cb,))      def stop(self): -        #TODO: Thread still not being stopped when openvpn is stopped.          self.shutdown.set()          logger.debug("network checked stopped.") @@ -70,5 +70,3 @@ class NetworkChecker(object):              self._network_checks_thread,              (fail_callbacks,))          return watcher - - diff --git a/src/leap/baseapp/mainwindow.py b/src/leap/baseapp/mainwindow.py index 7b2ecb1d..000db8c9 100644 --- a/src/leap/baseapp/mainwindow.py +++ b/src/leap/baseapp/mainwindow.py @@ -28,6 +28,7 @@ class LeapWindow(QtGui.QMainWindow,      newLogLine = QtCore.pyqtSignal([str])      statusChange = QtCore.pyqtSignal([object]) +    networkError = QtCore.pyqtSignal([object])      def __init__(self, opts):          logger.debug('init leap window') @@ -57,3 +58,16 @@ class LeapWindow(QtGui.QMainWindow,          # eipapp should catch that          if self.conductor.autostart:              self.start_or_stopVPN() + +    #TODO: Put all Dialogs in one place +    @QtCore.pyqtSlot() +    def raise_Network_Error(self, exc): +        message = exc.message + +        # XXX +        # check headless = False before +        # launching dialog. +        # (so Qt tests can assert stuff) +         +        dialog = ErrorDialog() +        dialog.warningMessage(message, 'error') diff --git a/src/leap/baseapp/network.py b/src/leap/baseapp/network.py index 75690cc9..c73e8062 100644 --- a/src/leap/baseapp/network.py +++ b/src/leap/baseapp/network.py @@ -14,44 +14,10 @@ class NetworkCheckerAppMixin(object):      """      def __init__(self, *args, **kwargs): -        opts = kwargs.pop('opts', None) -        config_file = getattr(opts, 'config_file', None) - -        self.network_checker_started = False -          self.network_checker = NetworkChecker(              watcher_cb=self.newLogLine.emit, -            status_signals=(self.statusChange.emit, ), +            error_cb=self.handle_network_error,              debug=self.debugmode)          self.network_checker.run_checks() -        self.error_check() - -    def error_check(self): -        """ -        consumes the conductor error queue. -        pops errors, and acts accordingly (launching user dialogs). -        """ -        logger.debug('error check') - -        errq = self.conductor.error_queue -        while errq.qsize() != 0: -            logger.debug('%s errors left in network queue', errq.qsize()) -            # we get exception and original traceback from queue -            error, tb = errq.get() - -            # redundant log, debugging the loop. -            logger.error('%s: %s', error.__class__.__name__, error.message) - -            if issubclass(error.__class__, eip_exceptions.EIPClientError): -                self.handle_network_error(error) - -            else: -                # deprecated form of raising exception. -                raise error, None, tb - -            if error.failfirst is True: -                break -    def handle_network_error(self, error): -        pass | 
