From e7439f48b4279dcda0dc966903840a2affee3353 Mon Sep 17 00:00:00 2001
From: elijah
Date: Wed, 11 May 2016 14:45:09 -0700
Subject: [bug] add scrollbars to mail preference panel
---
src/leap/bitmask/gui/preferences_email_page.py | 20 +-
src/leap/bitmask/gui/ui/preferences_email_page.ui | 648 ++++++++++++----------
2 files changed, 354 insertions(+), 314 deletions(-)
diff --git a/src/leap/bitmask/gui/preferences_email_page.py b/src/leap/bitmask/gui/preferences_email_page.py
index 7186450d..0f44dfee 100644
--- a/src/leap/bitmask/gui/preferences_email_page.py
+++ b/src/leap/bitmask/gui/preferences_email_page.py
@@ -65,20 +65,16 @@ class PreferencesEmailPage(PreferencesPage):
"Search for \"Bitmask\" in the add-on manager or "
"download it from addons.mozilla.org.".format(
thunderbird_extension_url)))
+
self.ui.mail_client_label.setText(self.tr(
"Alternatively, you can manually configure your mail client to "
- "use Bitmask Email with these options:"))
+ "use Bitmask with these options:"))
self.ui.webmail_label.setText(self.tr(
- "This distribution of Bitmask ships an experimental integration "
- "of Pixelated "
- "Mail. Note: at the current state, anyone with access to "
- "your device can read your mail without authentication, "
- "by opening a browser pointing to http://localhost:9090 "))
- webmail_enabled = self.settings.get_pixelmail_enabled()
- self.ui.webmail_checkbox.setChecked(webmail_enabled)
- if not HAS_PIXELATED:
- self.ui.webmail_box.setVisible(False)
+ "Bitmask Mail is an integrated mail client based "
+ "on Pixelated "
+ "User Agent. If enabled, any user on your device "
+ "can read your mail by opening http://localhost:9090"))
self.ui.keys_table.horizontalHeader().setResizeMode(
0, QtGui.QHeaderView.Stretch)
@@ -122,6 +118,10 @@ class PreferencesEmailPage(PreferencesPage):
self.ui.message_label.setText(
self.tr('You must be logged in to edit email settings.'))
else:
+ webmail_enabled = self.settings.get_pixelmail_enabled()
+ self.ui.webmail_checkbox.setChecked(webmail_enabled)
+ if not HAS_PIXELATED:
+ self.ui.webmail_box.setVisible(False)
self.ui.import_button.setVisible(False) # hide this until working
self.ui.message_label.setVisible(False)
self.ui.email_tabs.setVisible(True)
diff --git a/src/leap/bitmask/gui/ui/preferences_email_page.ui b/src/leap/bitmask/gui/ui/preferences_email_page.ui
index e4a72951..610a43c7 100644
--- a/src/leap/bitmask/gui/ui/preferences_email_page.ui
+++ b/src/leap/bitmask/gui/ui/preferences_email_page.ui
@@ -32,345 +32,385 @@
+
+ background: palette(base);
+
Tab 1
-
-
-
- Bitmask Mail
+
+
+
-
-
-
-
-
- Enable Bitmask Mail (needs restart)
-
-
-
- -
-
-
- webmail info
-
-
- true
-
-
-
-
-
-
- -
-
-
- Thunderbird Configuration
+
+ QFrame::NoFrame
-
-
-
-
-
- thunderbird information
-
-
- true
-
-
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Other Mail Clients Configuration
+
+ true
-
-
-
-
-
- mail client information
-
-
- true
-
-
-
- -
-
-
-
-
-
-
-
-
-
- 0
- 0
-
-
-
- Host
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
+
+
+
+ 0
+ 0
+ 504
+ 537
+
+
+
+ false
+
+
+ background: palette(base);
+
+
+
+ 6
+
+
+ 0
+
+
-
+
+
+ Bitmask Mail
+
+
+
-
+
- Port
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+ Enable Bitmask Mail (needs restart)
- -
-
-
-
- 0
- 0
-
-
-
-
- 100
- 16777215
-
-
+
-
+
-
+ webmail info
-
+
true
- -
-
-
-
- 0
- 0
-
-
+
+
+
+ -
+
+
+ Thunderbird Configuration
+
+
+
-
+
- TLS: off
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 50
- 16777215
-
+ thunderbird information
-
+
true
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
- -
-
-
- IMAP
-
-
-
- -
-
-
- Username
-
-
-
- -
-
-
- SMTP
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Other Mail Clients Configuration
+
+
+
-
+
- Host
+ mail client information
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 100
- 16777215
-
-
-
-
-
-
+
true
- -
-
-
-
- 0
- 0
-
-
-
- Port
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- TLS: off
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 50
- 16777215
-
-
-
- true
-
-
+
-
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Host
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Port
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 100
+ 16777215
+
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ TLS: off
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 50
+ 16777215
+
+
+
+ true
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
+ IMAP
+
+
+
+ -
+
+
+ Username
+
+
+
+ -
+
+
+ SMTP
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Host
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 100
+ 16777215
+
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Port
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ TLS: off
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 50
+ 16777215
+
+
+
+ true
+
+
+
+
+
+ -
+
+
+ true
+
+
+
+ -
+
+
+ Password
+
+
+
+ -
+
+
+ true
+
+
+
+
-
- -
-
-
- true
-
-
-
- -
-
-
- Password
-
-
-
- -
-
-
- true
-
-
-
-
-
-
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 4
+
+
+
+
+
+
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
--
cgit v1.2.3
From c7f9bbcc8fe075750e4041c5a7f00c8767dd38b5 Mon Sep 17 00:00:00 2001
From: elijah
Date: Wed, 11 May 2016 15:03:23 -0700
Subject: [feat] Make help menu item open bitmask.net/help directly
---
src/leap/bitmask/gui/mainwindow.py | 50 +++-----------------------------------
1 file changed, 3 insertions(+), 47 deletions(-)
diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py
index daf49eb6..25ee4f3d 100644
--- a/src/leap/bitmask/gui/mainwindow.py
+++ b/src/leap/bitmask/gui/mainwindow.py
@@ -1054,53 +1054,9 @@ class MainWindow(QtGui.QMainWindow, SignalTracker):
TRIGGERS:
self.ui.action_help.triggered
- Display the Bitmask help dialog.
- """
- # TODO: don't hardcode!
- smtp_port = 2013
-
- help_url = "{0}
".format(
- self.tr("bitmask.net/help"))
-
- lang = QtCore.QLocale.system().name().replace('_', '-')
- thunderbird_extension_url = \
- "https://addons.mozilla.org/{0}/" \
- "thunderbird/addon/bitmask/".format(lang)
-
- email_quick_reference = self.tr("Email quick reference")
- thunderbird_text = self.tr(
- "For Thunderbird, you can use the "
- "Bitmask extension. Search for \"Bitmask\" in the add-on "
- "manager or download it from "
- "addons.mozilla.org.".format(thunderbird_extension_url))
- manual_text = self.tr(
- "Alternatively, you can manually configure "
- "your mail client to use Bitmask Email with these options:")
- manual_imap = self.tr("IMAP: localhost, port {0}".format(IMAP_PORT))
- manual_smtp = self.tr("SMTP: localhost, port {0}".format(smtp_port))
- manual_username = self.tr("Username: your full email address")
-
- # FIXME on i3, this doens't allow to mouse-select.
- # Switch to a dialog in which we can set the QLabel
- mail_auth_token = (
- self.app.service_tokens.get('mail_auth', None) or
- "??? (log in to unlock)")
- mail_password = self.tr("IMAP/SMTP Password:") + " %s" % (
- mail_auth_token,)
-
- msg = help_url + self.tr(
- "{0}
"
- "{1}
"
- "{2}"
- "
"
- "- {3}
"
- "- {4}
"
- "- {5}
"
- "- {6}
"
- "
").format(email_quick_reference, thunderbird_text,
- manual_text, manual_imap, manual_smtp,
- manual_username, mail_password)
- QtGui.QMessageBox.about(self, self.tr("Bitmask Help"), msg)
+ Open bitmask.net/help
+ """
+ QtGui.QDesktopServices.openUrl("https://bitmask.net/help")
def _needs_update(self):
"""
--
cgit v1.2.3
From cd95c8d2e285538e282dbf2b5e848b4154c3606c Mon Sep 17 00:00:00 2001
From: elijah
Date: Wed, 11 May 2016 15:05:57 -0700
Subject: [bug] remove "about bitmask" easter egg
---
src/leap/bitmask/gui/mainwindow.py | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py
index 25ee4f3d..e7b849e5 100644
--- a/src/leap/bitmask/gui/mainwindow.py
+++ b/src/leap/bitmask/gui/mainwindow.py
@@ -1030,12 +1030,9 @@ class MainWindow(QtGui.QMainWindow, SignalTracker):
Display the About Bitmask dialog
"""
today = datetime.now().date()
- greet = ("Happy New 1984!... or not ;)
"
- if today.month == 1 and today.day < 15 else "")
title = self.tr("About Bitmask - %s") % (VERSION,)
msg = self.tr(
"Version: {ver} ({ver_hash})
"
- "
{greet}"
"Bitmask is the Desktop client application for the LEAP "
"platform, supporting Encrypted Internet Proxy "
"and "
@@ -1046,7 +1043,7 @@ class MainWindow(QtGui.QMainWindow, SignalTracker):
"available.
"
"
"
"More about LEAP")
- msg = msg.format(ver=VERSION, ver_hash=VERSION_HASH[:10], greet=greet)
+ msg = msg.format(ver=VERSION, ver_hash=VERSION_HASH[:10])
QtGui.QMessageBox.about(self, title, msg)
def _help(self):
--
cgit v1.2.3
From 61970d6395afcaa5439d866fbfb1ab2ad471141a Mon Sep 17 00:00:00 2001
From: elijah
Date: Wed, 11 May 2016 17:09:54 -0700
Subject: [feat] move pix UA launcher from menu to mail status widget.
---
src/leap/bitmask/gui/mail_status.py | 52 +++++--
src/leap/bitmask/gui/mainwindow.py | 12 --
src/leap/bitmask/gui/preferenceswindow.py | 15 ++
src/leap/bitmask/gui/ui/mail_status.ui | 239 +++++++++++++++++-------------
src/leap/bitmask/gui/ui/mainwindow.ui | 10 +-
src/leap/bitmask/gui/ui/preferences.ui | 2 +-
6 files changed, 197 insertions(+), 133 deletions(-)
diff --git a/src/leap/bitmask/gui/mail_status.py b/src/leap/bitmask/gui/mail_status.py
index 419a85c0..1045343b 100644
--- a/src/leap/bitmask/gui/mail_status.py
+++ b/src/leap/bitmask/gui/mail_status.py
@@ -26,7 +26,9 @@ from leap.common.check import leap_assert, leap_assert_type
from leap.common.events import register
from leap.common.events import catalog
+from leap.bitmask.gui.preferenceswindow import PreferencesWindow
from ui_mail_status import Ui_MailStatusWidget
+from .qt_browser import PixelatedWindow
logger = get_logger()
@@ -52,13 +54,21 @@ class MailStatusWidget(QtGui.QWidget):
self._systray = None
self._disabled = True
self._started = False
+ self._mainwindow = parent
self._unread_mails = 0
self.ui = Ui_MailStatusWidget()
self.ui.setupUi(self)
- self.ui.lblMailReadyHelp.setVisible(False)
+ self.ui.email_ready.setVisible(False)
+ self.ui.configure_button.clicked.connect(
+ self._show_configure)
+ self.ui.open_mail_button.clicked.connect(
+ self._show_pix_ua)
+ if not self._mainwindow._settings.get_pixelmail_enabled():
+ self.ui.open_mail_button.setVisible(False)
+ self.ui.or_label.setVisible(False)
# set systray tooltip status
self._mx_status = ""
@@ -144,7 +154,23 @@ class MailStatusWidget(QtGui.QWidget):
self.CONNECTED_ICON_TRAY = QtGui.QPixmap(EIP_ICONS_TRAY[1])
self.ERROR_ICON_TRAY = QtGui.QPixmap(EIP_ICONS_TRAY[2])
- # Systray and actions
+ #
+ # Button actions
+ #
+
+ def _show_configure(self):
+ pref_win = PreferencesWindow(self._mainwindow, self._mainwindow.app)
+ pref_win.set_page("email")
+ pref_win.show()
+
+ def _show_pix_ua(self):
+ win = PixelatedWindow(self._mainwindow)
+ win.show()
+ win.load_app()
+
+ #
+ # Systray
+ #
def set_systray(self, systray):
"""
@@ -166,6 +192,10 @@ class MailStatusWidget(QtGui.QWidget):
mx_status = u"{0}: {1}".format(self._service_name, self._mx_status)
self._systray.set_service_tooltip(MX_SERVICE, mx_status)
+ #
+ # Status
+ #
+
def set_action_mail_status(self, action_mail_status):
"""
Sets the action_mail_status to use.
@@ -229,6 +259,9 @@ class MailStatusWidget(QtGui.QWidget):
elif ready < 0:
tray_status = self.tr("Mail is disabled")
+ if ready < 1:
+ self._hide_mail_ready()
+
self.ui.lblMailStatusIcon.setPixmap(icon)
self._action_mail_status.setText(tray_status)
self._update_systray_tooltip()
@@ -424,9 +457,10 @@ class MailStatusWidget(QtGui.QWidget):
self._show_unread_mails()
elif event == catalog.IMAP_SERVICE_STARTED:
self._imap_started = True
- elif event == catalog.IMAP_CLIENT_LOGIN:
- # If a MUA has logged in then we don't need to show this.
- self._hide_mail_ready_help()
+ # this is disabled for now, because this event was being
+ # triggered at weird times.
+ #elif event == catalog.IMAP_CLIENT_LOGIN:
+ # self._hide_mail_ready()
if ext_status is not None:
self._set_mail_status(ext_status, ready=1)
@@ -495,15 +529,13 @@ class MailStatusWidget(QtGui.QWidget):
Display the correct UI for the connected state.
"""
self._set_mail_status(self.tr("ON"), 2)
+ self.ui.email_ready.setVisible(True)
- # this help message will hide when the MUA connects
- self.ui.lblMailReadyHelp.setVisible(True)
-
- def _hide_mail_ready_help(self):
+ def _hide_mail_ready(self):
"""
Hide the mail help message on the UI.
"""
- self.ui.lblMailReadyHelp.setVisible(False)
+ self.ui.email_ready.setVisible(False)
def mail_state_disabled(self):
"""
diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py
index e7b849e5..6637f170 100644
--- a/src/leap/bitmask/gui/mainwindow.py
+++ b/src/leap/bitmask/gui/mainwindow.py
@@ -59,8 +59,6 @@ from leap.bitmask.util.keyring_helpers import has_keyring
from leap.common.events import register
from leap.common.events import catalog
-from .qt_browser import PixelatedWindow
-
from leap.mail.imap.service.imap import IMAP_PORT
from ui_mainwindow import Ui_MainWindow
@@ -227,11 +225,6 @@ class MainWindow(QtGui.QMainWindow, SignalTracker):
self._backend_connect()
self.ui.action_preferences.triggered.connect(self._show_preferences)
- self.ui.action_pixelated_mail.triggered.connect(
- self._show_pixelated_browser)
-
- pixelated_enabled = self._settings.get_pixelmail_enabled()
- self.ui.action_pixelated_mail.setVisible(pixelated_enabled)
self.ui.action_about_leap.triggered.connect(self._about)
self.ui.action_quit.triggered.connect(self.quit)
@@ -575,11 +568,6 @@ class MainWindow(QtGui.QMainWindow, SignalTracker):
pref_win = PreferencesWindow(self, self.app)
pref_win.show()
- def _show_pixelated_browser(self):
- win = PixelatedWindow(self)
- win.show()
- win.load_app()
-
def _update_eip_enabled_status(self, account=None, services=None):
"""
TRIGGER:
diff --git a/src/leap/bitmask/gui/preferenceswindow.py b/src/leap/bitmask/gui/preferenceswindow.py
index 82dc8d77..30091312 100644
--- a/src/leap/bitmask/gui/preferenceswindow.py
+++ b/src/leap/bitmask/gui/preferenceswindow.py
@@ -38,6 +38,12 @@ class PreferencesWindow(QtGui.QDialog):
_current_window = None # currently visible preferences window
+ _panels = {
+ "account": 0,
+ "vpn": 1,
+ "email": 2
+ }
+
def __init__(self, parent, app):
"""
:param parent: parent object of the PreferencesWindow.
@@ -240,3 +246,12 @@ class PreferencesWindow(QtGui.QDialog):
Triggered by get srp_status_logged_in, srp_status_not_logged_in
"""
self._set_account(self.app.current_account())
+
+ def set_page(self, page):
+ """
+ Jump to a particular page
+ """
+ index = PreferencesWindow._panels[page]
+ self.ui.nav_widget.setCurrentRow(index)
+ self.ui.pages_widget.setCurrentIndex(index)
+
diff --git a/src/leap/bitmask/gui/ui/mail_status.ui b/src/leap/bitmask/gui/ui/mail_status.ui
index 89e1843f..f8ebb5a8 100644
--- a/src/leap/bitmask/gui/ui/mail_status.ui
+++ b/src/leap/bitmask/gui/ui/mail_status.ui
@@ -6,12 +6,12 @@
0
0
- 417
- 185
+ 427
+ 157
-
+
0
0
@@ -20,26 +20,131 @@
Form
-
- 0
-
+ -
+
+
+ color: rgb(80, 80, 80);
+
+
+ You must login to use encrypted email.
+
+
+
+ -
+
+
+
+ 22
+ 22
+
+
+
+
+ 22
+ 22
+
+
+
+
+
+
+ :/images/black/22/off.png
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+
+
+ 6
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Configure Client
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ or
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Open Bitmask Mail
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 10
+ 10
+
+
+
+
+
+
+
-
-
-
-
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
+
+
+
+
+
+ :/images/black/32/email.png
+
+
+
+ -
+
+
-
+
0
@@ -51,89 +156,18 @@
- -
-
-
+
-
+
+
+ Qt::Horizontal
+
+
- 24
- 24
+ 1
+ 1
-
-
-
-
- :/images/black/22/off.png
-
-
- true
-
-
-
- -
-
-
- false
-
-
- background-color: #e0efd8;
-padding: 10px;
-margin-top:5px;
-
-
- QFrame::NoFrame
-
-
- QFrame::Plain
-
-
- 0
-
-
- Bitmask is ready to encrypt your email. Go to <a href="https://bitmask.net/en/help/email">https://bitmask.net/en/help/email</a> for email application setup instructions.
-
-
- Qt::AutoText
-
-
- false
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
-
- true
-
-
- 0
-
-
- -1
-
-
- true
-
-
-
- -
-
-
-
-
-
- :/images/black/32/email.png
-
-
-
- -
-
-
- color: rgb(80, 80, 80);
-
-
- You must login to use encrypted email.
-
-
+
@@ -141,6 +175,7 @@ margin-top:5px;
+
diff --git a/src/leap/bitmask/gui/ui/mainwindow.ui b/src/leap/bitmask/gui/ui/mainwindow.ui
index 0dd0b891..5d8e0f35 100644
--- a/src/leap/bitmask/gui/ui/mainwindow.ui
+++ b/src/leap/bitmask/gui/ui/mainwindow.ui
@@ -75,7 +75,7 @@
0
0
524
- 549
+ 541
@@ -306,7 +306,7 @@
0
0
524
- 21
+ 25