diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/leap/bitmask/app.py | 25 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/mainwindow.py | 39 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/statuspanel.py | 26 | ||||
| -rw-r--r-- | src/leap/bitmask/util/keyring_helpers.py | 19 | 
4 files changed, 63 insertions, 46 deletions
| diff --git a/src/leap/bitmask/app.py b/src/leap/bitmask/app.py index 4edb2d4c..02b1693d 100644 --- a/src/leap/bitmask/app.py +++ b/src/leap/bitmask/app.py @@ -14,6 +14,31 @@  #  # You should have received a copy of the GNU General Public License  # along with this program.  If not, see <http://www.gnu.org/licenses/>. +# +# M:::::::MMMMMMMMMM~:::::::::::::::::::::::::::::::::::::~MMMMMMMMMM~:::::::M +# M:::::MMM$$$$$77$MMMMN~:::::::::::::::::::::::::::::~NMMMM$77$$$$$MMM::::::M +# M:::~MMZ$$$$$777777I8MMMM~:::::::::::::::::::::::~MMMMDI777777$$$$$$MM:::::M +# M:::MMZ$$$$$777777IIIIIZMMMM:::::::::::::::::::MMNMZIIIII777777$$$$$$MM::::M +# M::DMN$$$$$777777IIIIIII??7DDNM+:::::::::::=MDDD7???IIIIII777777$$$$$DMN:::M +# M::MM$$$$$7777777IIIIIII????+?88OOMMMMMMMOO88???????IIIIIII777777$$$$$MM:::M +# M::MM$$$$$777777IIIIIIII??????++++7ZZ$$ZI+++++??????IIIIIIII777777$$$$MM~::M +# M:~MM$$$$77777Z8OIIIIIIII??????++++++++++++++??????IIIIIIIO8Z77777$$$$NM+::M +# M::MM$$$777MMMMMMMMMMMZ?II???????+++++++++???????III$MMMMMMMMMMM7777$$DM$::M +# M:~MM$$77MMMI~::::::$MMMM$?I????????????????????I$MMMMZ~::::::+MMM77$$MM~::M +# M::MM$7777MM::::::::::::MMMMI?????????????????IMMMM:::::::::::~MM7777$MM:::M +# M::MM777777MM~:::::::::::::MMMD?I?????????IIDMMM,:::::::::::::MM777777MM:::M +# M::DMD7777IIMM$::::::::::::?MMM?I??????????IMMM$::::::::::::7MM7I77778MN:::M +# M:::MM777IIIIMMMN~:::::::MMMM?II???+++++????IIMMMM::::::::MMMMIIII777MM::::M +# M:::ZMM7IIIIIIIOMMMMMMMMMMZ?III???++++++++??III?$MMMMMMMMMMO?IIIIII7MMO::::M +# M::::MMDIIIIIIIIII?IIIII?IIIII???+++===++++??IIIIIIII?II?IIIIIIIIII7MM:::::M +# M:::::MM7IIIIIIIIIIIIIIIIIIIII??+++IZ$$I+++??IIIIIIIIIIIIIIIIIIIII7MM::::::M +# M::::::MMOIIIIIIIIIIIIIIIIIIII?D888MMMMM8O8D?IIIIIIIIIIIIIIIIIIII$MM:::::::M +# M:::::::MMM?IIIIIIIIIIIIIIII7MNMD:::::::::OMNM$IIIIIIIIIIIIIIII?MMM::::::::M +# M::::::::NMMI?IIIIIIIIIII?OMMM:::::::::::::::MMMO?IIIIIIIIIIIIIMMN:::::::::M +# M::::::::::MMMIIIIIIIII?8MMM:::::::::::::::::::MMM8IIIIIIIIIIMMM:::::::::::M +# M:::::::::::~NMMM7???7MMMM:::::::::::::::::::::::NMMMI??I7MMMM:::::::::::::M +# M::::::::::::::7MMMMMMM+:::::::::::::::::::::::::::?MMMMMMMZ:::::::::::::::M +#                (thanks to: http://www.glassgiant.com/ascii/)  import logging  import signal diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index 6a1b8bde..69e36328 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -246,30 +246,14 @@ class MainWindow(QtGui.QMainWindow):          self._systray = None -        self._action_eip_provider = QtGui.QAction( -            self.tr("No default provider"), self) -        self._action_eip_provider.setEnabled(False) - -        self._action_eip_status = QtGui.QAction( -            self.tr("Encrypted Internet is OFF"), -            self) -        self._action_eip_status.setEnabled(False) -        self._status_panel.set_action_eip_status( -            self._action_eip_status) - -        self._action_mail_status = QtGui.QAction( -            self.tr("Encrypted Mail is OFF"), self) +        self._action_mail_status = QtGui.QAction(self.tr("Mail is OFF"), self)          self._action_mail_status.setEnabled(False) -        self._status_panel.set_action_mail_status( -            self._action_mail_status) +        self._status_panel.set_action_mail_status(self._action_mail_status) -        self._action_eip_startstop = QtGui.QAction( -            self.tr("Turn OFF"), self) -        self._action_eip_startstop.triggered.connect( -            self._stop_eip) +        self._action_eip_startstop = QtGui.QAction(self.tr("Turn ON"), self) +        self._action_eip_startstop.triggered.connect(self._stop_eip)          self._action_eip_startstop.setEnabled(False) -        self._status_panel.set_action_eip_startstop( -            self._action_eip_startstop) +        self._status_panel.set_action_eip_startstop(self._action_eip_startstop)          self._action_preferences = QtGui.QAction(self.tr("Preferences"), self)          self._action_preferences.triggered.connect(self._show_preferences) @@ -587,8 +571,6 @@ class MainWindow(QtGui.QMainWindow):                          "no default provider configured")              return -        self._action_eip_provider.setText(default_provider) -          self._enabled_services = self._settings.get_enabled_services(              default_provider) @@ -619,9 +601,11 @@ class MainWindow(QtGui.QMainWindow):          systrayMenu = QtGui.QMenu(self)          systrayMenu.addAction(self._action_visible)          systrayMenu.addSeparator() -        systrayMenu.addAction(self._action_eip_provider) -        systrayMenu.addAction(self._action_eip_status) -        systrayMenu.addAction(self._action_eip_startstop) + +        eip_menu = systrayMenu.addMenu(self.tr("Encrypted Internet is OFF")) +        eip_menu.addAction(self._action_eip_startstop) +        self._status_panel.set_eip_status_menu(eip_menu) +          systrayMenu.addAction(self._action_mail_status)          systrayMenu.addSeparator()          systrayMenu.addAction(self._action_preferences) @@ -1234,9 +1218,6 @@ class MainWindow(QtGui.QMainWindow):                  provider = "%s@%s" % (self._logged_user, provider)              self._status_panel.set_provider(provider) - -            self._action_eip_provider.setText(provider_config.get_domain()) -              self._status_panel.eip_started()              # XXX refactor into status_panel method? diff --git a/src/leap/bitmask/gui/statuspanel.py b/src/leap/bitmask/gui/statuspanel.py index 10e6bca3..39a8079f 100644 --- a/src/leap/bitmask/gui/statuspanel.py +++ b/src/leap/bitmask/gui/statuspanel.py @@ -130,7 +130,7 @@ class StatusPanelWidget(QtGui.QWidget):          QtGui.QWidget.__init__(self, parent)          self._systray = None -        self._action_eip_status = None +        self._eip_status_menu = None          self.ui = Ui_StatusPanel()          self.ui.setupUi(self) @@ -347,7 +347,7 @@ class StatusPanelWidget(QtGui.QWidget):          """          status = self.tr("Encrypted Internet is {0}").format(self._eip_status)          status += '\n' -        status += self.tr("Encrypted Mail is {0}").format(self._mx_status) +        status += self.tr("Mail is {0}").format(self._mx_status)          self._systray.setToolTip(status)      def set_action_eip_startstop(self, action_eip_startstop): @@ -359,15 +359,15 @@ class StatusPanelWidget(QtGui.QWidget):          """          self._action_eip_startstop = action_eip_startstop -    def set_action_eip_status(self, action_eip_status): +    def set_eip_status_menu(self, eip_status_menu):          """ -        Sets the action_eip_status to use. +        Sets the eip_status_menu to use. -        :param action_eip_status: action_eip_status to be used -        :type action_eip_status: QtGui.QAction +        :param eip_status_menu: eip_status_menu to be used +        :type eip_status_menu: QtGui.QMenu          """ -        leap_assert_type(action_eip_status, QtGui.QAction) -        self._action_eip_status = action_eip_status +        leap_assert_type(eip_status_menu, QtGui.QMenu) +        self._eip_status_menu = eip_status_menu      def set_action_mail_status(self, action_mail_status):          """ @@ -550,7 +550,7 @@ class StatusPanelWidget(QtGui.QWidget):                        "RECONNECTING", "ASSIGN_IP"):              selected_pixmap = self.CONNECTING_ICON              selected_pixmap_tray = self.CONNECTING_ICON_TRAY -            tray_message = self.tr("Turning ON") +            tray_message = self.tr("Encrypted Internet is STARTING")          elif status in ("CONNECTED"):              tray_message = self.tr("Encrypted Internet is ON")              selected_pixmap = self.CONNECTED_ICON @@ -558,14 +558,14 @@ class StatusPanelWidget(QtGui.QWidget):          self.set_icon(selected_pixmap)          self._systray.setIcon(QtGui.QIcon(selected_pixmap_tray)) -        self._action_eip_status.setText(tray_message) +        self._eip_status_menu.setTitle(tray_message)      def set_provider(self, provider):          self.ui.lblProvider.setText(provider)      def _set_mail_status(self, status, ready=False):          """ -        Sets the Encrypted Mail status in the label and in the tray icon. +        Sets the Mail status in the label and in the tray icon.          :param status: the status text to display          :type status: unicode @@ -575,13 +575,13 @@ class StatusPanelWidget(QtGui.QWidget):          self.ui.lblMailStatus.setText(status)          self._mx_status = self.tr('OFF') -        tray_status = self.tr('Encrypted Mail is OFF') +        tray_status = self.tr('Mail is OFF')          icon = QtGui.QPixmap(self.MAIL_OFF_ICON)          if ready:              icon = QtGui.QPixmap(self.MAIL_ON_ICON)              self._mx_status = self.tr('ON') -            tray_status = self.tr('Encrypted Mail is ON') +            tray_status = self.tr('Mail is ON')          self.ui.lblMailIcon.setPixmap(icon)          self._action_mail_status.setText(tray_status) diff --git a/src/leap/bitmask/util/keyring_helpers.py b/src/leap/bitmask/util/keyring_helpers.py index 8f354f28..4b3eb57f 100644 --- a/src/leap/bitmask/util/keyring_helpers.py +++ b/src/leap/bitmask/util/keyring_helpers.py @@ -14,16 +14,21 @@  #  # You should have received a copy of the GNU General Public License  # along with this program.  If not, see <http://www.gnu.org/licenses/>. -  """  Keyring helpers.  """ +import logging  import keyring +from keyring.backends.file import EncryptedKeyring, PlaintextKeyring + +logger = logging.getLogger(__name__) + +  OBSOLETE_KEYRINGS = [ -    keyring.backends.file.EncryptedKeyring, -    keyring.backends.file.PlaintextKeyring +    EncryptedKeyring, +    PlaintextKeyring  ] @@ -34,4 +39,10 @@ def has_keyring():      :rtype: bool      """      kr = keyring.get_keyring() -    return kr is not None and kr.__class__ not in OBSOLETE_KEYRINGS +    klass = kr.__class__ +    logger.debug("Selected keyring: %s" % (klass,)) + +    canuse = kr is not None and klass not in OBSOLETE_KEYRINGS +    if not canuse: +        logger.debug("Not using this keyring since it is obsolete") +    return canuse | 
