Verified Commit 61970d63 authored by elijah's avatar elijah
Browse files

[feat] move pix UA launcher from menu to mail status widget.

parent cd95c8d2
......@@ -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):
"""
......
......@@ -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:
......
......@@ -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)
......@@ -6,12 +6,12 @@
<rect>
<x>0</x>
<y>0</y>
<width>417</width>
<height>185</height>
<width>427</width>
<height>157</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
......@@ -20,26 +20,131 @@
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="topMargin">
<number>0</number>
</property>
<item row="1" column="1">
<widget class="QLabel" name="lblMailStatus">
<property name="styleSheet">
<string notr="true">color: rgb(80, 80, 80);</string>
</property>
<property name="text">
<string>You must login to use encrypted email.</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QLabel" name="lblMailStatusIcon">
<property name="minimumSize">
<size>
<width>22</width>
<height>22</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>22</width>
<height>22</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/22/off.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QWidget" name="email_ready" native="true">
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="configure_button">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Configure Client</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="or_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>or</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="open_mail_button">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Open Bitmask Mail</string>
</property>
</widget>
</item>
<item>
<spacer name="email_ready_spacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="2">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_4">
<widget class="QLabel" name="mail_icon">
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/32/email.png</pixmap>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="email_line">
<item>
<widget class="QLabel" name="email_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
......@@ -51,89 +156,18 @@
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QLabel" name="lblMailStatusIcon">
<property name="maximumSize">
<item>
<spacer name="horizontal1_spacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>24</width>
<height>24</height>
<width>1</width>
<height>1</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/22/off.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="1" colspan="2">
<widget class="QLabel" name="lblMailReadyHelp">
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="styleSheet">
<string notr="true">background-color: #e0efd8;
padding: 10px;
margin-top:5px;</string>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="text">
<string>Bitmask is ready to encrypt your email. Go to &lt;a href=&quot;https://bitmask.net/en/help/email&quot;&gt;https://bitmask.net/en/help/email&lt;/a&gt; for email application setup instructions.</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="margin">
<number>0</number>
</property>
<property name="indent">
<number>-1</number>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../../../../data/resources/icons.qrc">:/images/black/32/email.png</pixmap>
</property>
</widget>
</item>
<item row="2" column="1" colspan="2">
<widget class="QLabel" name="lblMailStatus">
<property name="styleSheet">
<string notr="true">color: rgb(80, 80, 80);</string>
</property>
<property name="text">
<string>You must login to use encrypted email.</string>
</property>
</widget>
</spacer>
</item>
</layout>
</item>
......@@ -141,6 +175,7 @@ margin-top:5px;</string>
</widget>
<resources>
<include location="../../../../../data/resources/icons.qrc"/>
<include location="dev/leap/client/bitmask_client/data/resources/icons.qrc"/>
</resources>
<connections/>
</ui>
......@@ -75,7 +75,7 @@
<x>0</x>
<y>0</y>
<width>524</width>
<height>549</height>
<height>541</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
......@@ -306,7 +306,7 @@
<x>0</x>
<y>0</y>
<width>524</width>
<height>21</height>
<height>25</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
......@@ -315,7 +315,6 @@
</property>
<addaction name="action_create_new_account"/>
<addaction name="action_advanced_key_management"/>
<addaction name="action_pixelated_mail"/>
<addaction name="separator"/>
<addaction name="action_preferences"/>
<addaction name="separator"/>
......@@ -371,11 +370,6 @@
<string>Create a new account...</string>
</property>
</action>
<action name="action_pixelated_mail">
<property name="text">
<string>Bitmask Mail</string>
</property>
</action>
<action name="action_advanced_key_management">
<property name="enabled">
<bool>false</bool>
......
......@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>630</width>
<height>500</height>
<height>560</height>
</rect>
</property>
<property name="windowTitle">
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment