diff options
author | Kali Kaneko <kali@leap.se> | 2016-05-13 11:59:02 -0400 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2016-05-13 11:59:02 -0400 |
commit | 7c106441235202c46960128940bd91c75da97a5e (patch) | |
tree | eb40f4bf9fdb0375480f28d56c3f3e11683d344f | |
parent | 7801c5cd50cd6bcbf7eb14ad0e34c4eb70ba9c78 (diff) | |
parent | e5cf9ff70cc27cbbf17b9e3c4df98d336d0ed0af (diff) |
Merge branch 'develop' into debian/experimental
-rw-r--r-- | CHANGELOG.rst | 32 | ||||
-rw-r--r-- | changes/next-changelog.rst | 18 | ||||
-rw-r--r-- | pkg/next-version | 2 | ||||
-rw-r--r-- | pkg/requirements-pixelated.pip | 1 | ||||
-rw-r--r-- | src/leap/bitmask/gui/mail_status.py | 52 | ||||
-rw-r--r-- | src/leap/bitmask/gui/mainwindow.py | 67 | ||||
-rw-r--r-- | src/leap/bitmask/gui/preferences_email_page.py | 20 | ||||
-rw-r--r-- | src/leap/bitmask/gui/preferenceswindow.py | 14 | ||||
-rw-r--r-- | src/leap/bitmask/gui/qt_browser.py | 5 | ||||
-rw-r--r-- | src/leap/bitmask/gui/ui/mail_status.ui | 239 | ||||
-rw-r--r-- | src/leap/bitmask/gui/ui/mainwindow.ui | 10 | ||||
-rw-r--r-- | src/leap/bitmask/gui/ui/preferences.ui | 2 | ||||
-rw-r--r-- | src/leap/bitmask/gui/ui/preferences_email_page.ui | 648 |
13 files changed, 593 insertions, 517 deletions
diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 1c8422fa..3974b120 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -3,6 +3,38 @@ Changelog --------- +0.9.2 May 13 - "panis et circenses" ++++++++++++++++++++++++++++++++++++++++++++ + +Features +~~~~~~~~ +- `#7552 <https://leap.se/code/issues/7552>`_: Improve UI message and add some margin above the msg box. +- `#7656 <https://leap.se/code/issues/7656>`_: Adapt to multi-user aware events. +- `#4469 <https://leap.se/code/issues/4469>`_: Display randomly generated service token on the Help Window. +- `#6041 <https://leap.se/code/issues/6041>`_: Write service tokens to a file to allow email clients to read them from there. +- Use cred-based authentication on SMTP. +- Add email panel to preferences window. +- Ability to launch detached bitmask.core daemon, and a simplistic bitmask_cli. Not used by the main client yet. +- Experimental support for the Pixelated User Agent, branded as "Bitmask Mail". + +Bugfixes +~~~~~~~~ +- `#7568 <https://leap.se/code/issues/7568>`_: Fix typo on signal name. +- `#7583 <https://leap.se/code/issues/7583>`_: Fix set_soledad_auth_token event callback signature. +- `#7585 <https://leap.se/code/issues/7585>`_: Open email help link on browser. +- `#7598 <https://leap.se/code/issues/7598>`_: Fix errback on InvalidAuthToken. +- `#7869 <https://leap.se/code/issues/7869>`_: Redownload smtp certificate if needed. +- Do not translate 'https' text on QLabel. + +Misc +~~~~ +- PyInstaller based new style of bundles. + +Known Issues +~~~~~~~~~~~~ +- `#8057 <https://leap.se/code/issues/8057>`_: Logging out twice produces a segfault in Qt +- `#1236 <https://leap.se/code/issues/1236>`_: Description of the known issue corresponding with issue #1236. + 0.9.1 November 03 - "the day of the calaca" +++++++++++++++++++++++++++++++++++++++++++ diff --git a/changes/next-changelog.rst b/changes/next-changelog.rst index 8a5035ff..59f68d8d 100644 --- a/changes/next-changelog.rst +++ b/changes/next-changelog.rst @@ -10,27 +10,11 @@ I've added a new category `Misc` so we can track doc/style/packaging stuff. Features ~~~~~~~~ -- `#7552 <https://leap.se/code/issues/7552>`_: Improve UI message and add some margin above the msg box. -- `#7656 <https://leap.se/code/issues/7656>`_: Adapt to multi-user aware events. -- `#4469 <https://leap.se/code/issues/4469>`_: Display randomly generated service token on the Help Window. -- `#6041 <https://leap.se/code/issues/6041>`_: Write service tokens to a file to allow email clients to read them from there. -- Use cred-based authentication on SMTP. -- Experimental support for the Pixelated WebMail. -- Add email panel to preferences window. -- Ability to launch detached bitmask.core daemon, and a simplistic bitmask_cli. Not used by the main client yet. - - `#1234 <https://leap.se/code/issues/1234>`_: Description of the new feature corresponding with issue #1234. - New feature without related issue number. Bugfixes ~~~~~~~~ -- `#7568 <https://leap.se/code/issues/7568>`_: Fix typo on signal name. -- `#7583 <https://leap.se/code/issues/7583>`_: Fix set_soledad_auth_token event callback signature. -- `#7585 <https://leap.se/code/issues/7585>`_: Open email help link on browser. -- `#7598 <https://leap.se/code/issues/7598>`_: Fix errback on InvalidAuthToken. -- `#7869 <https://leap.se/code/issues/7869>`_: Redownload smtp certificate if needed. -- Do not translate 'https' text on QLabel. - - `#1235 <https://leap.se/code/issues/1235>`_: Description for the fixed stuff corresponding with issue #1235. - Bugfix without related issue number. @@ -41,5 +25,3 @@ Misc Known Issues ~~~~~~~~~~~~ -- `#8057 <https://leap.se/code/issues/8057>`_: Logging out twice produces a segfault in Qt -- `#1236 <https://leap.se/code/issues/1236>`_: Description of the known issue corresponding with issue #1236. diff --git a/pkg/next-version b/pkg/next-version index 29a0f215..c29ffb37 100644 --- a/pkg/next-version +++ b/pkg/next-version @@ -1 +1 @@ -0.9.2.rc2 +0.9.2.rc4 diff --git a/pkg/requirements-pixelated.pip b/pkg/requirements-pixelated.pip index d1f8004d..b3e57a1b 100644 --- a/pkg/requirements-pixelated.pip +++ b/pkg/requirements-pixelated.pip @@ -2,3 +2,4 @@ pixelated-user-agent pixelated-www whoosh +leap.auth
\ No newline at end of file diff --git a/src/leap/bitmask/gui/mail_status.py b/src/leap/bitmask/gui/mail_status.py index 419a85c0..cb0314b5 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 daf49eb6..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: @@ -1030,12 +1018,9 @@ class MainWindow(QtGui.QMainWindow, SignalTracker): Display the About Bitmask dialog """ today = datetime.now().date() - greet = ("Happy New 1984!... or not ;)<br><br>" - if today.month == 1 and today.day < 15 else "") title = self.tr("About Bitmask - %s") % (VERSION,) msg = self.tr( "Version: <b>{ver}</b> ({ver_hash})<br>" - "<br>{greet}" "Bitmask is the Desktop client application for the LEAP " "platform, supporting Encrypted Internet Proxy " "and <a href='https://bitmask.net/help/email'> " @@ -1046,7 +1031,7 @@ class MainWindow(QtGui.QMainWindow, SignalTracker): "available.<br>" "<br>" "<a href='https://leap.se'>More about LEAP</a>") - 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): @@ -1054,53 +1039,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 = "<p><a href='https://{0}'>{0}</a></p>".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 <a href='{0}'>" - "addons.mozilla.org</a>.".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( - "<p><strong>{0}</strong></p>" - "<p>{1}</p>" - "<p>{2}" - "<ul>" - "<li> {3}</li>" - "<li> {4}</li>" - "<li> {5}</li>" - "<li> {6}</li>" - "</ul></p>").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): """ diff --git a/src/leap/bitmask/gui/preferences_email_page.py b/src/leap/bitmask/gui/preferences_email_page.py index 7186450d..93c77df1 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 <a href='{0}'>addons.mozilla.org</a>.".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 <a href='https://pixelated-project.org/'>Pixelated " - "Mail</a>. 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 <a href='https://pixelated-project.org/'>Pixelated " + "User Agent</a>. 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/preferenceswindow.py b/src/leap/bitmask/gui/preferenceswindow.py index 82dc8d77..50a972e1 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,11 @@ 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/qt_browser.py b/src/leap/bitmask/gui/qt_browser.py index 2f7e6086..2d9e20e6 100644 --- a/src/leap/bitmask/gui/qt_browser.py +++ b/src/leap/bitmask/gui/qt_browser.py @@ -37,6 +37,11 @@ class PixelatedWindow(QtGui.QDialog): self.setLayout(layout) self.setWindowTitle('Bitmask Mail') + # For the moment, we need to resize to a sensible default to avoid the + # "send" button to be out of view in the compose pane. This should be + # removed as soon as pixelated becomes size-responsive. + self.resize(800, 700) + def load_app(self): self.view.load(QtCore.QUrl(PIXELATED_URI)) self.view.page().setForwardUnsupportedContent(True) 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 @@ <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 <a href="https://bitmask.net/en/help/email">https://bitmask.net/en/help/email</a> 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> 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 @@ <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> diff --git a/src/leap/bitmask/gui/ui/preferences.ui b/src/leap/bitmask/gui/ui/preferences.ui index 51cad0a1..8e884a63 100644 --- a/src/leap/bitmask/gui/ui/preferences.ui +++ b/src/leap/bitmask/gui/ui/preferences.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>630</width> - <height>500</height> + <height>560</height> </rect> </property> <property name="windowTitle"> 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 @@ <property name="accessibleDescription"> <string/> </property> + <property name="styleSheet"> + <string notr="true">background: palette(base);</string> + </property> <attribute name="title"> <string>Tab 1</string> </attribute> <layout class="QVBoxLayout" name="verticalLayout_7"> <item> - <widget class="QGroupBox" name="webmail_box"> - <property name="title"> - <string>Bitmask Mail</string> + <widget class="QScrollArea" name="scrollArea"> + <property name="styleSheet"> + <string notr="true"/> </property> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <item> - <widget class="QCheckBox" name="webmail_checkbox"> - <property name="text"> - <string>Enable Bitmask Mail (needs restart)</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="webmail_label"> - <property name="text"> - <string>webmail info</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="thunderbird_box"> - <property name="title"> - <string>Thunderbird Configuration</string> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <widget class="QLabel" name="thunderbird_label"> - <property name="text"> - <string>thunderbird information</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="imap_box"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="title"> - <string>Other Mail Clients Configuration</string> + <property name="widgetResizable"> + <bool>true</bool> </property> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <widget class="QLabel" name="mail_client_label"> - <property name="text"> - <string>mail client information</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <layout class="QGridLayout" name="gridLayout_2"> - <item row="1" column="1"> - <layout class="QGridLayout" name="gridLayout_5"> - <item row="0" column="0"> - <widget class="QLabel" name="label_8"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Host</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="0" column="2"> - <widget class="QLabel" name="label_9"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> + <widget class="QWidget" name="scrollAreaWidgetContents"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>504</width> + <height>537</height> + </rect> + </property> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <property name="styleSheet"> + <string notr="true">background: palette(base);</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_8"> + <property name="spacing"> + <number>6</number> + </property> + <property name="margin"> + <number>0</number> + </property> + <item> + <widget class="QGroupBox" name="webmail_box"> + <property name="title"> + <string>Bitmask Mail</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_4"> + <item> + <widget class="QCheckBox" name="webmail_checkbox"> <property name="text"> - <string>Port</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + <string>Enable Bitmask Mail (needs restart)</string> </property> </widget> </item> - <item row="0" column="1"> - <widget class="QLineEdit" name="smtp_host_edit"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="maximumSize"> - <size> - <width>100</width> - <height>16777215</height> - </size> - </property> + <item> + <widget class="QLabel" name="webmail_label"> <property name="text"> - <string/> + <string>webmail info</string> </property> - <property name="readOnly"> + <property name="wordWrap"> <bool>true</bool> </property> </widget> </item> - <item row="0" column="4"> - <widget class="QLabel" name="label_10"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="thunderbird_box"> + <property name="title"> + <string>Thunderbird Configuration</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <widget class="QLabel" name="thunderbird_label"> <property name="text"> - <string>TLS: off</string> - </property> - </widget> - </item> - <item row="0" column="3"> - <widget class="QLineEdit" name="smtp_port_edit"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="maximumSize"> - <size> - <width>50</width> - <height>16777215</height> - </size> + <string>thunderbird information</string> </property> - <property name="readOnly"> + <property name="wordWrap"> <bool>true</bool> </property> </widget> </item> - <item row="0" column="5"> - <spacer name="horizontalSpacer_3"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> </layout> - </item> - <item row="0" column="0"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>IMAP</string> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_4"> - <property name="text"> - <string>Username</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>SMTP</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <layout class="QGridLayout" name="gridLayout_4"> - <item row="1" column="0"> - <widget class="QLabel" name="label_5"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> + </widget> + </item> + <item> + <widget class="QGroupBox" name="imap_box"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Other Mail Clients Configuration</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_3"> + <item> + <widget class="QLabel" name="mail_client_label"> <property name="text"> - <string>Host</string> + <string>mail client information</string> </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLineEdit" name="imap_host_edit"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="maximumSize"> - <size> - <width>100</width> - <height>16777215</height> - </size> - </property> - <property name="text"> - <string/> - </property> - <property name="readOnly"> + <property name="wordWrap"> <bool>true</bool> </property> </widget> </item> - <item row="1" column="2"> - <widget class="QLabel" name="label_6"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Port</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="1" column="6"> - <spacer name="horizontalSpacer_2"> - <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="1" column="5"> - <widget class="QLabel" name="label_7"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>TLS: off</string> - </property> - </widget> - </item> - <item row="1" column="3"> - <widget class="QLineEdit" name="imap_port_edit"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="maximumSize"> - <size> - <width>50</width> - <height>16777215</height> - </size> - </property> - <property name="readOnly"> - <bool>true</bool> - </property> - </widget> + <item> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="1" column="1"> + <layout class="QGridLayout" name="gridLayout_5"> + <item row="0" column="0"> + <widget class="QLabel" name="label_8"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Host</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QLabel" name="label_9"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Port</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLineEdit" name="smtp_host_edit"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize"> + <size> + <width>100</width> + <height>16777215</height> + </size> + </property> + <property name="text"> + <string/> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="4"> + <widget class="QLabel" name="label_10"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>TLS: off</string> + </property> + </widget> + </item> + <item row="0" column="3"> + <widget class="QLineEdit" name="smtp_port_edit"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize"> + <size> + <width>50</width> + <height>16777215</height> + </size> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="5"> + <spacer name="horizontalSpacer_3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>IMAP</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_4"> + <property name="text"> + <string>Username</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>SMTP</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <layout class="QGridLayout" name="gridLayout_4"> + <item row="1" column="0"> + <widget class="QLabel" name="label_5"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Host</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLineEdit" name="imap_host_edit"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize"> + <size> + <width>100</width> + <height>16777215</height> + </size> + </property> + <property name="text"> + <string/> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="QLabel" name="label_6"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Port</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="6"> + <spacer name="horizontalSpacer_2"> + <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="1" column="5"> + <widget class="QLabel" name="label_7"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>TLS: off</string> + </property> + </widget> + </item> + <item row="1" column="3"> + <widget class="QLineEdit" name="imap_port_edit"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize"> + <size> + <width>50</width> + <height>16777215</height> + </size> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="2" column="1"> + <widget class="QLineEdit" name="username_edit"> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Password</string> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="QLineEdit" name="password_edit"> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> </item> </layout> - </item> - <item row="2" column="1"> - <widget class="QLineEdit" name="username_edit"> - <property name="readOnly"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="3" column="0"> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>Password</string> - </property> - </widget> - </item> - <item row="3" column="1"> - <widget class="QLineEdit" name="password_edit"> - <property name="readOnly"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - </layout> + </widget> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>4</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> </widget> </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> </layout> </widget> <widget class="QWidget" name="my_key_tab"> |