trezor: minor homescreen clean-up/fixes

This commit is contained in:
SomberNight 2018-05-23 15:39:59 +02:00
parent 51d047a35e
commit 2c3aa9ffa9
No known key found for this signature in database
GPG key ID: B33B5F232C6271E9
2 changed files with 28 additions and 44 deletions

View file

@ -503,24 +503,6 @@ class SettingsDialog(WindowModalDialog):
pin_msg.setStyleSheet("color: red") pin_msg.setStyleSheet("color: red")
settings_glayout.addWidget(pin_msg, 3, 1, 1, -1) settings_glayout.addWidget(pin_msg, 3, 1, 1, -1)
# Settings tab - Homescreen
if plugin.device != 'KeepKey': # Not yet supported by KK firmware
homescreen_layout = QHBoxLayout()
homescreen_label = QLabel(_("Homescreen"))
homescreen_change_button = QPushButton(_("Change..."))
homescreen_clear_button = QPushButton(_("Reset"))
homescreen_change_button.clicked.connect(change_homescreen)
homescreen_clear_button.clicked.connect(clear_homescreen)
homescreen_msg = QLabel(_("You can set the homescreen on your "
"device to personalize it. You must "
"choose a {} x {} monochrome black and "
"white image.").format(hs_rows, hs_cols))
homescreen_msg.setWordWrap(True)
settings_glayout.addWidget(homescreen_label, 4, 0)
settings_glayout.addWidget(homescreen_change_button, 4, 1)
settings_glayout.addWidget(homescreen_clear_button, 4, 2)
settings_glayout.addWidget(homescreen_msg, 5, 1, 1, -1)
# Settings tab - Session Timeout # Settings tab - Session Timeout
timeout_label = QLabel(_("Session Timeout")) timeout_label = QLabel(_("Session Timeout"))
timeout_minutes = QLabel() timeout_minutes = QLabel()

View file

@ -392,16 +392,20 @@ class SettingsDialog(WindowModalDialog):
def change_homescreen(): def change_homescreen():
dialog = QFileDialog(self, _("Choose Homescreen")) dialog = QFileDialog(self, _("Choose Homescreen"))
filename, __ = dialog.getOpenFileName() filename, __ = dialog.getOpenFileName()
if not filename:
return # user cancelled
if filename.endswith('.toif'): if filename.endswith('.toif'):
img = open(filename, 'rb').read() img = open(filename, 'rb').read()
if img[:8] != b'TOIf\x90\x00\x90\x00': if img[:8] != b'TOIf\x90\x00\x90\x00':
raise Exception('File is not a TOIF file with size of 144x144') handler.show_error('File is not a TOIF file with size of 144x144')
return
else: else:
from PIL import Image # FIXME from PIL import Image # FIXME
im = Image.open(filename) im = Image.open(filename)
if im.size != (128, 64): if im.size != (128, 64):
raise Exception('Image must be 128 x 64 pixels') handler.show_error('Image must be 128 x 64 pixels')
return
im = im.convert('1') im = im.convert('1')
pix = im.load() pix = im.load()
img = bytearray(1024) img = bytearray(1024)
@ -411,7 +415,7 @@ class SettingsDialog(WindowModalDialog):
o = (i + j * 128) o = (i + j * 128)
img[o // 8] |= (1 << (7 - o % 8)) img[o // 8] |= (1 << (7 - o % 8))
img = bytes(img) img = bytes(img)
invoke_client('change_homescreen', img) invoke_client('change_homescreen', img)
def clear_homescreen(): def clear_homescreen():
invoke_client('change_homescreen', b'\x00') invoke_client('change_homescreen', b'\x00')
@ -509,29 +513,27 @@ class SettingsDialog(WindowModalDialog):
settings_glayout.addWidget(pin_msg, 3, 1, 1, -1) settings_glayout.addWidget(pin_msg, 3, 1, 1, -1)
# Settings tab - Homescreen # Settings tab - Homescreen
if plugin.device != 'KeepKey': # Not yet supported by KK firmware homescreen_label = QLabel(_("Homescreen"))
homescreen_layout = QHBoxLayout() homescreen_change_button = QPushButton(_("Change..."))
homescreen_label = QLabel(_("Homescreen")) homescreen_clear_button = QPushButton(_("Reset"))
homescreen_change_button = QPushButton(_("Change...")) homescreen_change_button.clicked.connect(change_homescreen)
homescreen_clear_button = QPushButton(_("Reset")) try:
homescreen_change_button.clicked.connect(change_homescreen) import PIL
try: except ImportError:
import PIL homescreen_change_button.setDisabled(True)
except ImportError: homescreen_change_button.setToolTip(
homescreen_change_button.setDisabled(True) _("Required package 'PIL' is not available - Please install it or use the Trezor website instead.")
homescreen_change_button.setToolTip( )
_("Required package 'PIL' is not available - Please install it or use the Trezor website instead.") homescreen_clear_button.clicked.connect(clear_homescreen)
) homescreen_msg = QLabel(_("You can set the homescreen on your "
homescreen_clear_button.clicked.connect(clear_homescreen) "device to personalize it. You must "
homescreen_msg = QLabel(_("You can set the homescreen on your " "choose a {} x {} monochrome black and "
"device to personalize it. You must " "white image.").format(hs_rows, hs_cols))
"choose a {} x {} monochrome black and " homescreen_msg.setWordWrap(True)
"white image.").format(hs_rows, hs_cols)) settings_glayout.addWidget(homescreen_label, 4, 0)
homescreen_msg.setWordWrap(True) settings_glayout.addWidget(homescreen_change_button, 4, 1)
settings_glayout.addWidget(homescreen_label, 4, 0) settings_glayout.addWidget(homescreen_clear_button, 4, 2)
settings_glayout.addWidget(homescreen_change_button, 4, 1) settings_glayout.addWidget(homescreen_msg, 5, 1, 1, -1)
settings_glayout.addWidget(homescreen_clear_button, 4, 2)
settings_glayout.addWidget(homescreen_msg, 5, 1, 1, -1)
# Settings tab - Session Timeout # Settings tab - Session Timeout
timeout_label = QLabel(_("Session Timeout")) timeout_label = QLabel(_("Session Timeout"))