summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/better-soledad-retry1
-rw-r--r--changes/bug_5153-select-domain-in-eip-preferences1
-rw-r--r--data/ts/en_US.ts753
-rw-r--r--src/leap/bitmask/gui/eip_preferenceswindow.py21
-rw-r--r--src/leap/bitmask/gui/mail_status.py2
-rw-r--r--src/leap/bitmask/gui/mainwindow.py32
6 files changed, 520 insertions, 290 deletions
diff --git a/changes/better-soledad-retry b/changes/better-soledad-retry
new file mode 100644
index 00000000..ac21f76c
--- /dev/null
+++ b/changes/better-soledad-retry
@@ -0,0 +1 @@
+In case of soledad bootstrap error (e.g.: network failure), re run all the setup process.
diff --git a/changes/bug_5153-select-domain-in-eip-preferences b/changes/bug_5153-select-domain-in-eip-preferences
new file mode 100644
index 00000000..2c00c745
--- /dev/null
+++ b/changes/bug_5153-select-domain-in-eip-preferences
@@ -0,0 +1 @@
+Set as selected default for the eip preferences window the item selented in the bitmask main window. Closes #5153.
diff --git a/data/ts/en_US.ts b/data/ts/en_US.ts
index 64a400ba..562df1a3 100644
--- a/data/ts/en_US.ts
+++ b/data/ts/en_US.ts
@@ -1,85 +1,234 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="1.1">
<context>
- <name>EIPPreferences</name>
+ <name>AdvancedKeyManagement</name>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="14"/>
- <source>EIP Preferences</source>
+ <location filename="../src/leap/bitmask/gui/ui/advanced_key_management.ui" line="14"/>
+ <source>Advanced Key Management</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="27"/>
- <source>Select gateway for provider</source>
+ <location filename="../src/leap/bitmask/gui/ui/advanced_key_management.ui" line="24"/>
+ <source>My key pair</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="36"/>
- <source>&amp;Select provider:</source>
+ <location filename="../src/leap/bitmask/gui/ui/advanced_key_management.ui" line="30"/>
+ <source>User:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="140"/>
- <source>&lt;Select provider&gt;</source>
+ <location filename="../src/leap/bitmask/gui/ui/advanced_key_management.ui" line="40"/>
+ <source>user_name@provider</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="55"/>
- <source>Save this provider settings</source>
+ <location filename="../src/leap/bitmask/gui/ui/advanced_key_management.ui" line="53"/>
+ <source>Key ID:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="62"/>
- <source>&lt; Providers Gateway Status &gt;</source>
+ <location filename="../src/leap/bitmask/gui/ui/advanced_key_management.ui" line="63"/>
+ <source>key ID</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="72"/>
- <source>Select gateway:</source>
+ <location filename="../src/leap/bitmask/gui/ui/advanced_key_management.ui" line="76"/>
+ <source>Key fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/ui/advanced_key_management.ui" line="86"/>
+ <source>fingerprint</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/ui/advanced_key_management.ui" line="101"/>
+ <source>Export current key pair</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/ui/advanced_key_management.ui" line="121"/>
+ <source>Import custom key pair</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/ui/advanced_key_management.ui" line="139"/>
+ <source>Stored public keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/ui/advanced_key_management.ui" line="164"/>
+ <source>Email</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/ui/advanced_key_management.ui" line="169"/>
+ <source>Key ID</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="60"/>
+ <source>&lt;span style=&apos;color:#0000FF;&apos;&gt;NOTE&lt;/span&gt;: To use this, you need to enable/start {0}.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="99"/>
+ <source>Open keys file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="191"/>
+ <source>Input/Output error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="112"/>
+ <source>There was an error accessing the file.
+Import canceled.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="122"/>
+ <source>Data mismatch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="125"/>
+ <source>The public and private key should have the same address and fingerprint.
+Import canceled.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="130"/>
+ <source>Missing key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="133"/>
+ <source>You need to provide the public AND private key in the same file.
+Import canceled.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="139"/>
+ <source>Address mismatch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="142"/>
+ <source>The identity for the key needs to be the same as your user address.
+Import canceled.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="147"/>
+ <source>Are you sure that you want to replace the current key pair whith the imported?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="164"/>
+ <source>Import Successful</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="165"/>
+ <source>The key pair was imported successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="174"/>
+ <source>Save keys file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="185"/>
+ <source>Export Successful</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="187"/>
+ <source>The key pair was exported successfully.
+Please, store your private key in a safe place.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/advanced_key_management.py" line="193"/>
+ <source>There was an error accessing the file.
+Export canceled.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EIPPreferences</name>
+ <message>
+ <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="27"/>
+ <source>Select gateway for provider</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="47"/>
+ <source>&lt;Select provider&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="80"/>
+ <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="62"/>
+ <source>&lt; Providers Gateway Status &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="83"/>
<source>Automatic</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="91"/>
- <source>Automatic EIP start</source>
+ <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="14"/>
+ <source>Encrypted Internet Preferences</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="109"/>
- <source>&lt;font color=&apos;green&apos;&gt;&lt;b&gt;Automatic EIP start saved!&lt;/b&gt;&lt;/font&gt;</source>
+ <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="36"/>
+ <source>Select &amp;provider:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="119"/>
- <source>Save auto start setting</source>
+ <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="55"/>
+ <source>&amp;Save this provider settings</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="129"/>
- <source>Enable Automatic start of EIP</source>
+ <location filename="../src/leap/bitmask/gui/ui/eippreferences.ui" line="72"/>
+ <source>Select &amp;gateway:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EIPPreferencesWindow</name>
<message>
- <location filename="../src/leap/bitmask/gui/eip_preferenceswindow.py" line="47"/>
+ <location filename="../src/leap/bitmask/gui/eip_preferenceswindow.py" line="48"/>
<source>Automatic</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_preferenceswindow.py" line="156"/>
+ <location filename="../src/leap/bitmask/gui/eip_preferenceswindow.py" line="125"/>
<source>Gateway settings for provider &apos;{0}&apos; saved.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_preferenceswindow.py" line="198"/>
+ <location filename="../src/leap/bitmask/gui/eip_preferenceswindow.py" line="179"/>
<source>There was a problem with configuration files.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/eip_preferenceswindow.py" line="101"/>
+ <source> (uninitialized)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/eip_preferenceswindow.py" line="151"/>
+ <source>This is an uninitialized provider, please log in first.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>EIPStatus</name>
@@ -89,22 +238,22 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eip_status.ui" line="31"/>
+ <location filename="../src/leap/bitmask/gui/ui/eip_status.ui" line="34"/>
<source>Turn On</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eip_status.ui" line="63"/>
+ <location filename="../src/leap/bitmask/gui/ui/eip_status.ui" line="66"/>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eip_status.ui" line="86"/>
+ <location filename="../src/leap/bitmask/gui/ui/eip_status.ui" line="82"/>
<source>Traffic is being routed in the clear</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/eip_status.ui" line="253"/>
+ <location filename="../src/leap/bitmask/gui/ui/eip_status.ui" line="212"/>
<source>0.0 KB/s</source>
<translation type="unfinished"></translation>
</message>
@@ -112,83 +261,78 @@
<context>
<name>EIPStatusWidget</name>
<message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="191"/>
- <source>All services are OFF</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="197"/>
- <source>Encrypted Internet: {0}</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="249"/>
- <source>You must login to use Encrypted Internet</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="300"/>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="327"/>
<source>Turn OFF</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="314"/>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="341"/>
<source>Turn ON</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="321"/>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="348"/>
<source>Traffic is being routed in the clear</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="378"/>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="405"/>
<source>Authenticating...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="380"/>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="407"/>
<source>Retrieving configuration...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="382"/>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="409"/>
<source>Waiting to start...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="384"/>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="411"/>
<source>Assigning IP</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="386"/>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="413"/>
<source>Reconnecting...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="395"/>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="420"/>
<source>Unable to start VPN, it&apos;s already running.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="418"/>
- <source>Encrypted Internet: OFF</source>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="463"/>
+ <source>Route traffic through: {0}</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="423"/>
- <source>Encrypted Internet: Starting...</source>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="260"/>
+ <source>disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="425"/>
- <source>Encrypted Internet: ON</source>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="442"/>
+ <source>{0}: OFF</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/eip_status.py" line="437"/>
- <source>Route traffic through: {0}</source>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="257"/>
+ <source>You must login to use {0}</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="447"/>
+ <source>{0}: Starting...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/eip_status.py" line="450"/>
+ <source>{0}: ON</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -230,7 +374,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/loggerwindow.py" line="148"/>
+ <location filename="../src/leap/bitmask/gui/loggerwindow.py" line="162"/>
<source>Save As</source>
<translation type="unfinished"></translation>
</message>
@@ -244,6 +388,36 @@
<source>Case Insensitive</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/loggerwindow.py" line="193"/>
+ <source>Send to Pastebin.com</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/loggerwindow.py" line="190"/>
+ <source>Sending to pastebin...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/loggerwindow.py" line="224"/>
+ <source>Your pastebin link &lt;a href=&apos;{0}&apos;&gt;{0}&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/loggerwindow.py" line="227"/>
+ <source>Pastebin OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/loggerwindow.py" line="240"/>
+ <source>Sending logs to Pastebin failed!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/loggerwindow.py" line="241"/>
+ <source>Pastebin Error</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>LoginWidget</name>
@@ -273,53 +447,53 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/login.py" line="234"/>
+ <location filename="../src/leap/bitmask/gui/login.py" line="247"/>
<source>Log In</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/login.py" line="121"/>
+ <location filename="../src/leap/bitmask/gui/login.py" line="125"/>
<source>Other...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/login.py" line="229"/>
+ <location filename="../src/leap/bitmask/gui/login.py" line="242"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/login.ui" line="250"/>
+ <location filename="../src/leap/bitmask/gui/ui/login.ui" line="230"/>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/login.py" line="366"/>
+ <location filename="../src/leap/bitmask/gui/login.py" line="368"/>
<source>Logout</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/login.py" line="283"/>
+ <location filename="../src/leap/bitmask/gui/login.py" line="296"/>
<source>Please select a valid provider</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/login.py" line="288"/>
+ <location filename="../src/leap/bitmask/gui/login.py" line="301"/>
<source>Please provide a valid username</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/login.py" line="293"/>
+ <location filename="../src/leap/bitmask/gui/login.py" line="306"/>
<source>Please provide a valid password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/login.py" line="296"/>
+ <location filename="../src/leap/bitmask/gui/login.py" line="309"/>
<source>Logging in...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/login.py" line="359"/>
- <source>Loggin out...</source>
+ <location filename="../src/leap/bitmask/gui/login.py" line="361"/>
+ <source>Logging out...</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -341,352 +515,382 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="171"/>
- <source>All services are OFF</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="204"/>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="192"/>
<source>There was an unexpected problem with Soledad.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="418"/>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="413"/>
<source>OFF</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="221"/>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="209"/>
<source>Mail is OFF</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="224"/>
- <source>You must be logged in to use encrypted email.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="228"/>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="217"/>
<source>Starting..</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="229"/>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="218"/>
<source>Mail is starting</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="383"/>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="436"/>
<source>ON</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="233"/>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="222"/>
<source>Mail is ON</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="236"/>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="225"/>
<source>Mail is disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="298"/>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="422"/>
<source>Starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="265"/>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="254"/>
<source>Soledad has started...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="267"/>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="256"/>
<source>Soledad is starting, please wait...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="304"/>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="291"/>
<source>Looking for key for this user</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="308"/>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="295"/>
<source>Found key! Starting mail...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="310"/>
- <source>Generating new key, please wait...</source>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="300"/>
+ <source>Finished generating key!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="312"/>
- <source>Finished generating key!</source>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="302"/>
+ <source>Starting mail...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="314"/>
- <source>Starting mail...</source>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="334"/>
+ <source>SMTP failed to start, check the logs.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="344"/>
- <source>SMTP has started...</source>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="390"/>
+ <source>About to start, please wait...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="350"/>
- <source>SMTP failed to start, check the logs.</source>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="397"/>
+ <source>Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="387"/>
- <source>Failed</source>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="162"/>
+ <source>{0}: OFF</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="381"/>
- <source>IMAP has started...</source>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="444"/>
+ <source>You must be logged in to use {0}.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="387"/>
- <source>IMAP failed to start, check the logs.</source>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="298"/>
+ <source>Generating new key, this may take a few minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="391"/>
- <source>%s Unread Emails</source>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="373"/>
+ <source>{0} Unread Emails in your Inbox</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="405"/>
- <source>About to start, please wait...</source>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="377"/>
+ <source>1 Unread Email in your Inbox</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mail_status.py" line="412"/>
- <source>Disabled</source>
+ <location filename="../src/leap/bitmask/gui/mail_status.py" line="429"/>
+ <source>Disconnecting...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
- <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="287"/>
+ <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="238"/>
<source>There are new updates available, please restart.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="329"/>
+ <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="280"/>
<source>More...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="637"/>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="758"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="390"/>
+ <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="352"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="400"/>
+ <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="362"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="405"/>
+ <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="367"/>
<source>&amp;Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="683"/>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="806"/>
<source>Hide Main Window</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="537"/>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="638"/>
<source> The following components will be updated:
%s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="540"/>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="641"/>
<source>Updates available</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="682"/>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="805"/>
<source>Show Main Window</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1326"/>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1524"/>
<source>We could not find any authentication agent in your system.&lt;br/&gt;Make sure you have &lt;b&gt;polkit-gnome-authentication-agent-1&lt;/b&gt; running and try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1338"/>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1536"/>
<source>We could not find &lt;b&gt;pkexec&lt;/b&gt; in your system.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1343"/>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1541"/>
<source>We could not find openvpn binary.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1505"/>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1705"/>
<source>Starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1513"/>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1719"/>
<source>Not supported</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1516"/>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1723"/>
<source>Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1549"/>
- <source>Could not load Encrypted Internet Configuration.</source>
+ <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="32"/>
+ <source>Bitmask</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1471"/>
- <source>Encrypted Internet could not be launched because you did not authenticate properly.</source>
+ <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="357"/>
+ <source>About &amp;Bitmask</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1479"/>
- <source>Encrypted Internet finished in an unexpected manner!</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="289"/>
+ <source>Mail is OFF</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="32"/>
- <source>Bitmask</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="629"/>
+ <source>The Bitmask app is ready to update, please restart the application.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="395"/>
- <source>About &amp;Bitmask</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="870"/>
+ <source>About Bitmask - %s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="283"/>
- <source>Mail is OFF</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1011"/>
+ <source>Unable to login: Problem with provider</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="528"/>
- <source>The Bitmask app is ready to update, please restart the application.</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1089"/>
+ <source>Log in cancelled by the user.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="745"/>
- <source>About Bitmask - %s</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1547"/>
+ <source>Another openvpn instance is already running, and could not be stopped.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="759"/>
- <source>Version: &lt;b&gt;%s&lt;/b&gt;&lt;br&gt;&lt;br&gt;Bitmask is the Desktop client application for the LEAP platform, supporting encrypted internet proxy, secure email, and secure chat (coming soon).&lt;br&gt;&lt;br&gt;LEAP is a non-profit dedicated to giving all internet users access to secure communication. Our focus is on adapting encryption technology to make it easy to use and widely available. &lt;br&gt;&lt;br&gt;&lt;a href=&apos;https://leap.se&apos;&gt;More about LEAP&lt;/a&gt;</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1554"/>
+ <source>Another openvpn instance is already running, and could not be stopped because it was not launched by Bitmask. Please stop it and try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="847"/>
- <source>Unable to login: Problem with provider</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1740"/>
+ <source>There was a problem with the provider</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="885"/>
- <source>Log in cancelled by the user.</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1845"/>
+ <source>Something went wrong with the logout.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1333"/>
- <source>Encrypted Internet cannot be started because the tuntap extension is not installed properly in your system.</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1864"/>
+ <source>Unable to connect: Problem with provider</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1349"/>
- <source>Another openvpn instance is already running, and could not be stopped.</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1836"/>
+ <source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1356"/>
- <source>Another openvpn instance is already running, and could not be stopped because it was not launched by Bitmask. Please stop it and try again.</source>
+ <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="315"/>
+ <source>&amp;Bitmask</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1531"/>
- <source>There was a problem with the provider</source>
+ <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="372"/>
+ <source>Show &amp;Log</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1631"/>
- <source>Something went wrong with the logout.</source>
+ <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="377"/>
+ <source>Create a new account...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1652"/>
- <source>Unable to connect: Problem with provider</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="278"/>
+ <source>File</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="119"/>
- <source>Encrypted Internet</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1606"/>
+ <source>Network is unreachable</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1622"/>
- <source>Login</source>
+ <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="123"/>
+ <source>Please Log In</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="364"/>
- <source>&amp;Bitmask</source>
+ <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="342"/>
+ <source>Account Preferences...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="347"/>
+ <source>Internet Preferences...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="385"/>
- <source>Preferences...</source>
+ <source>Advanced Key Management</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="410"/>
- <source>Show &amp;Log</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="742"/>
+ <source> (offline mode)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/mainwindow.ui" line="415"/>
- <source>Create a new account...</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="765"/>
+ <source>OFF</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="272"/>
- <source>File</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="884"/>
+ <source>Version: &lt;b&gt;%s&lt;/b&gt; (%s)&lt;br&gt;&lt;br&gt;%sBitmask is the Desktop client application for the LEAP platform, supporting encrypted internet proxy, secure email, and secure chat (coming soon).&lt;br&gt;&lt;br&gt;LEAP is a non-profit dedicated to giving all internet users access to secure communication. Our focus is on adapting encryption technology to make it easy to use and widely available. &lt;br&gt;&lt;br&gt;&lt;a href=&apos;https://leap.se&apos;&gt;More about LEAP&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="644"/>
- <source>Encrypted Internet: OFF</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="911"/>
+ <source>&lt;strong&gt;Instructions to use mail:&lt;/strong&gt;&lt;br&gt;If you use Thunderbird you can use the Bitmask extension helper. Search for &apos;Bitmask&apos; in the add-on manager or download it from: {0}.&lt;br&gt;&lt;br&gt;You can configure Bitmask manually with these options:&lt;br&gt;&lt;em&gt; Incoming -&gt; IMAP, port: {1}&lt;br&gt; Outgoing -&gt; SMTP, port: {2}&lt;br&gt; Username -&gt; your bitmask username.&lt;br&gt; Password -&gt; does not matter, use any text. Just don&apos;t leave it empty and don&apos;t use your account&apos;s password.&lt;/em&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1407"/>
- <source>Network is unreachable</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="912"/>
+ <source>Bitmask Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="924"/>
+ <source>The current client version is not supported by this provider.&lt;br&gt;Please update to latest version.&lt;br&gt;&lt;br&gt;You can get the latest version from &lt;a href=&apos;{0}&apos;&gt;{1}&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="925"/>
+ <source>Update Needed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="935"/>
+ <source>This provider is not compatible with the client.&lt;br&gt;&lt;br&gt;Error: API version incompatible.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="935"/>
+ <source>Incompatible Provider</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1430"/>
- <source>EIP has stopped</source>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1757"/>
+ <source>Could not load {0} configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1531"/>
+ <source>{0} cannot be started because the tuntap extension is not installed properly in your system.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1670"/>
+ <source>{0} could not be launched because you did not authenticate properly.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/mainwindow.py" line="1677"/>
+ <source>{0} finished in an unexpected manner!</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -761,45 +965,60 @@
<context>
<name>PreferencesWindow</name>
<message>
- <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="53"/>
+ <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="63"/>
<source>Automatic</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="115"/>
+ <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="159"/>
<source>Changing password...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="166"/>
+ <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="210"/>
<source>Password changed successfully.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="181"/>
+ <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="225"/>
<source>There was a problem changing the password.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="184"/>
+ <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="228"/>
<source>You did not enter a correct current password.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="317"/>
+ <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="371"/>
<source>Services settings for provider &apos;{0}&apos; saved.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="97"/>
+ <source>You need to enable {0} in order to change the password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="103"/>
+ <source>You need to wait until {0} is ready in order to change the password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/preferenceswindow.py" line="113"/>
+ <source>In order to change your password you need to be logged in.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ProviderBootstrapper</name>
<message>
- <location filename="../src/leap/bitmask/provider/providerbootstrapper.py" line="137"/>
+ <location filename="../src/leap/bitmask/provider/providerbootstrapper.py" line="146"/>
<source>Provider certificate could not be verified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/provider/providerbootstrapper.py" line="144"/>
+ <location filename="../src/leap/bitmask/provider/providerbootstrapper.py" line="153"/>
<source>Provider does not support HTTPS</source>
<translation type="unfinished"></translation>
</message>
@@ -807,7 +1026,7 @@
<context>
<name>SRPAuth</name>
<message>
- <location filename="../src/leap/bitmask/crypto/srpauth.py" line="711"/>
+ <location filename="../src/leap/bitmask/crypto/srpauth.py" line="714"/>
<source>Succeeded</source>
<translation type="unfinished"></translation>
</message>
@@ -825,11 +1044,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Now we will guide you through some configuration that is needed before you can connect for the first time.&lt;/p&gt;&lt;p&gt;If you ever need to modify these options again, you can find the wizard in the &lt;span style=&quot; font-style:italic;&quot;&gt;&apos;Settings&apos;&lt;/span&gt; menu from the main window.&lt;/p&gt;&lt;p&gt;Do you want to &lt;span style=&quot; font-weight:600;&quot;&gt;sign up&lt;/span&gt; for a new account, or &lt;span style=&quot; font-weight:600;&quot;&gt;log in&lt;/span&gt; with an already existing username?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="75"/>
<source>Sign up for a new account</source>
<translation type="unfinished"></translation>
@@ -845,12 +1059,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="305"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="298"/>
<source>Check</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="312"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="315"/>
<source>https://</source>
<translation type="unfinished"></translation>
</message>
@@ -870,202 +1084,192 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="333"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="336"/>
<source>Provider Information</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="336"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="339"/>
<source>Description of services offered by this provider</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="345"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="348"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="377"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="380"/>
<source>Desc</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="387"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="390"/>
<source>&lt;b&gt;Services offered:&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="397"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="400"/>
<source>services</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="417"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="420"/>
<source>&lt;b&gt;Enrollment policy:&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="427"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="430"/>
<source>policy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="447"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="450"/>
<source>&lt;b&gt;URL:&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="457"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="460"/>
<source>URL</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="464"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="467"/>
<source>&lt;b&gt;Description:&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="475"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="478"/>
<source>Provider setup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="478"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="481"/>
<source>Gathering configuration options for this provider</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="500"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="503"/>
<source>We are downloading some bits that we need to establish a secure connection with the provider for the first time.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="523"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="526"/>
<source>Setting up provider</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="573"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="576"/>
<source>Getting info from the Certificate Authority</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="580"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="583"/>
<source>Do we trust this Certificate Authority?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="587"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="590"/>
<source>Establishing a trust relationship with this provider</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="646"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="649"/>
<source>Register new user</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="649"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="652"/>
<source>Register a new user with provider</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="664"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="667"/>
<source>&lt;b&gt;Password:&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="691"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="694"/>
<source>&lt;b&gt;Re-enter password:&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="701"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="704"/>
<source>Register</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="747"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="750"/>
<source>Remember my username and password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="771"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="774"/>
<source>Service selection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="774"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="777"/>
<source>Please select the services you would like to have</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="138"/>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="132"/>
<source>&amp;Next &gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="140"/>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="134"/>
<source>Connect</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="235"/>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="265"/>
<source>Starting registration...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="266"/>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="296"/>
<source>User %s successfully registered.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="286"/>
- <source>Unknown error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="411"/>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="448"/>
<source>&lt;font color=&apos;red&apos;&gt;&lt;b&gt;Non-existent provider&lt;/b&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="429"/>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="466"/>
<source>&lt;font color=&apos;red&apos;&gt;&lt;b&gt;%s&lt;/b&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="457"/>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="492"/>
<source>Unable to load provider configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="463"/>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="498"/>
<source>&lt;font color=&apos;red&apos;&gt;&lt;b&gt;Not a valid provider&lt;/b&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="529"/>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="565"/>
<source>Services by %s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="549"/>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="585"/>
<source>Something went wrong while trying to load service %s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="566"/>
- <source>Gathering configuration options for %s</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="575"/>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="616"/>
<source>Description of services offered by %s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/wizard.py" line="596"/>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="637"/>
<source>Register a new user with %s</source>
<translation type="unfinished"></translation>
</message>
@@ -1085,7 +1289,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="734"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="737"/>
<source>&lt;b&gt;Username:&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1095,70 +1299,85 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="275"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="288"/>
<source>Configure new provider:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="285"/>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="305"/>
<source>Use existing one:</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/ui/wizard.ui" line="62"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Now we will guide you through some configuration that is needed before you can connect for the first time.&lt;/p&gt;&lt;p&gt;If you ever need to modify these options again, you can find the wizard in the &lt;span style=&quot; font-style:italic;&quot;&gt;&apos;Bitmask -&amp;gt; Create new account...&apos;&lt;/span&gt; menu from the main window.&lt;/p&gt;&lt;p&gt;Do you want to &lt;span style=&quot; font-weight:600;&quot;&gt;sign up&lt;/span&gt; for a new account, or &lt;span style=&quot; font-weight:600;&quot;&gt;log in&lt;/span&gt; with an already existing username?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="317"/>
+ <source>Something has gone wrong. Please try again.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/leap/bitmask/gui/wizard.py" line="607"/>
+ <source>Gathering configuration options for {0}</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>__impl</name>
<message>
- <location filename="../src/leap/bitmask/crypto/srpauth.py" line="288"/>
+ <location filename="../src/leap/bitmask/crypto/srpauth.py" line="298"/>
<source>The server did not send the salt parameter</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/crypto/srpauth.py" line="292"/>
+ <location filename="../src/leap/bitmask/crypto/srpauth.py" line="302"/>
<source>The server did not send the B parameter</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/crypto/srpauth.py" line="324"/>
+ <location filename="../src/leap/bitmask/crypto/srpauth.py" line="334"/>
<source>The data sent from the server had errors</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/crypto/srpauth.py" line="346"/>
+ <location filename="../src/leap/bitmask/crypto/srpauth.py" line="356"/>
<source>Could not connect to the server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/crypto/srpauth.py" line="372"/>
+ <location filename="../src/leap/bitmask/crypto/srpauth.py" line="382"/>
<source>Unknown error (%s)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/crypto/srpauth.py" line="403"/>
+ <location filename="../src/leap/bitmask/crypto/srpauth.py" line="413"/>
<source>Problem getting data from server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/crypto/srpauth.py" line="429"/>
+ <location filename="../src/leap/bitmask/crypto/srpauth.py" line="439"/>
<source>Bad data from server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/crypto/srpauth.py" line="436"/>
+ <location filename="../src/leap/bitmask/crypto/srpauth.py" line="446"/>
<source>Auth verification failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/crypto/srpauth.py" line="444"/>
+ <location filename="../src/leap/bitmask/crypto/srpauth.py" line="454"/>
<source>Session cookie verification failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/crypto/srpauth.py" line="279"/>
+ <location filename="../src/leap/bitmask/crypto/srpauth.py" line="289"/>
<source>There was a problem with authentication</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/leap/bitmask/crypto/srpauth.py" line="174"/>
+ <location filename="../src/leap/bitmask/crypto/srpauth.py" line="178"/>
<source>Invalid username or password.</source>
<translation type="unfinished"></translation>
</message>
diff --git a/src/leap/bitmask/gui/eip_preferenceswindow.py b/src/leap/bitmask/gui/eip_preferenceswindow.py
index 504d1cf1..dcaa8b1e 100644
--- a/src/leap/bitmask/gui/eip_preferenceswindow.py
+++ b/src/leap/bitmask/gui/eip_preferenceswindow.py
@@ -22,7 +22,7 @@ import os
import logging
from functools import partial
-from PySide import QtGui
+from PySide import QtCore, QtGui
from leap.bitmask.config.leapsettings import LeapSettings
from leap.bitmask.config.providerconfig import ProviderConfig
@@ -37,10 +37,12 @@ class EIPPreferencesWindow(QtGui.QDialog):
"""
Window that displays the EIP preferences.
"""
- def __init__(self, parent):
+ def __init__(self, parent, domain):
"""
:param parent: parent object of the EIPPreferencesWindow.
- :parent type: QWidget
+ :type parent: QWidget
+ :param domain: the selected by default domain.
+ :type domain: unicode
"""
QtGui.QDialog.__init__(self, parent)
self.AUTOMATIC_GATEWAY_LABEL = self.tr("Automatic")
@@ -59,7 +61,7 @@ class EIPPreferencesWindow(QtGui.QDialog):
self.ui.cbGateways.currentIndexChanged[unicode].connect(
lambda x: self.ui.lblProvidersGatewayStatus.setVisible(False))
- self._add_configured_providers()
+ self._add_configured_providers(domain)
def _set_providers_gateway_status(self, status, success=False,
error=False):
@@ -83,9 +85,12 @@ class EIPPreferencesWindow(QtGui.QDialog):
self.ui.lblProvidersGatewayStatus.setVisible(True)
self.ui.lblProvidersGatewayStatus.setText(status)
- def _add_configured_providers(self):
+ def _add_configured_providers(self, domain=None):
"""
Add the client's configured providers to the providers combo boxes.
+
+ :param domain: the domain to be selected by default.
+ :type domain: unicode
"""
self.ui.cbProvidersGateway.clear()
providers = self._settings.get_configured_providers()
@@ -100,6 +105,12 @@ class EIPPreferencesWindow(QtGui.QDialog):
label = provider + self.tr(" (uninitialized)")
self.ui.cbProvidersGateway.addItem(label, userData=provider)
+ # Select provider by name
+ if domain is not None:
+ provider_index = self.ui.cbProvidersGateway.findText(
+ domain, QtCore.Qt.MatchStartsWith)
+ self.ui.cbProvidersGateway.setCurrentIndex(provider_index)
+
def _save_selected_gateway(self, provider):
"""
SLOT
diff --git a/src/leap/bitmask/gui/mail_status.py b/src/leap/bitmask/gui/mail_status.py
index 1d5ff319..8da26f6d 100644
--- a/src/leap/bitmask/gui/mail_status.py
+++ b/src/leap/bitmask/gui/mail_status.py
@@ -213,7 +213,7 @@ class MailStatusWidget(QtGui.QWidget):
self._service_name))
elif ready == 1:
icon = self.CONNECTING_ICON
- self._mx_status = self.tr('Starting..')
+ self._mx_status = self.tr('Starting…')
tray_status = self.tr('Mail is starting')
elif ready >= 2:
icon = self.CONNECTED_ICON
diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py
index 9ee62e17..004d135b 100644
--- a/src/leap/bitmask/gui/mainwindow.py
+++ b/src/leap/bitmask/gui/mainwindow.py
@@ -588,7 +588,8 @@ class MainWindow(QtGui.QMainWindow):
Displays the EIP preferences window.
"""
- EIPPreferencesWindow(self).show()
+ domain = self._login_widget.get_selected_provider()
+ EIPPreferencesWindow(self, domain).show()
#
# updates
@@ -1066,16 +1067,24 @@ class MainWindow(QtGui.QMainWindow):
Stops the login sequence.
"""
- logger.debug("Cancelling setup provider defer.")
+ logger.debug("Cancelling log in.")
+ self._cancel_ongoing_defers()
+
+ def _cancel_ongoing_defers(self):
+ """
+ Cancel the running defers to avoid app blocking.
+ """
self._backend.cancel_setup_provider()
if self._login_defer is not None:
logger.debug("Cancelling login defer.")
self._login_defer.cancel()
+ self._login_defer = None
if self._soledad_defer is not None:
logger.debug("Cancelling soledad defer.")
self._soledad_defer.cancel()
+ self._soledad_defer = None
def _set_login_cancelled(self):
"""
@@ -1248,8 +1257,7 @@ class MainWindow(QtGui.QMainWindow):
self._soledad_bootstrapper.increment_retries_count()
# XXX should cancel the existing socket --- this
# is avoiding a clean termination.
- threads.deferToThread(
- self._soledad_bootstrapper.load_and_sync_soledad)
+ self._maybe_run_soledad_setup_checks()
else:
logger.warning("Max number of soledad initialization "
"retries reached.")
@@ -1812,9 +1820,8 @@ class MainWindow(QtGui.QMainWindow):
"""
self._soledad_bootstrapper.cancel_bootstrap()
setProxiedObject(self._soledad, None)
- if self._soledad_defer is not None:
- logger.debug("Cancelling soledad defer.")
- self._soledad_defer.cancel()
+
+ self._cancel_ongoing_defers()
# reset soledad status flag
self._already_started_soledad = False
@@ -1931,16 +1938,7 @@ class MainWindow(QtGui.QMainWindow):
logger.debug('Terminating vpn')
self._vpn.terminate(shutdown=True)
- if self._login_defer:
- logger.debug("Cancelling login defer.")
- self._login_defer.cancel()
-
- logger.debug("Cancelling setup provider defer.")
- self._backend.cancel_setup_provider()
-
- if self._soledad_defer is not None:
- logger.debug("Cancelling soledad defer.")
- self._soledad_defer.cancel()
+ self._cancel_ongoing_defers()
# TODO missing any more cancels?