Added show password button to Backup/Restore
The button shows the password while pressed (emulating common password practices). fixes QubesOS/qubes-issues#6076
This commit is contained in:
parent
98a5c93c04
commit
12764595cf
1
icons/eye-off.svg
Normal file
1
icons/eye-off.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-eye-off"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>
|
After Width: | Height: | Size: 460 B |
1
icons/eye.svg
Normal file
1
icons/eye.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-eye"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>
|
After Width: | Height: | Size: 316 B |
@ -121,6 +121,9 @@ class BackupVMsWindow(ui_backupdlg.Ui_Backup, QtWidgets.QWizard):
|
|||||||
self.unrecognized_config_label.setVisible(False)
|
self.unrecognized_config_label.setVisible(False)
|
||||||
self.load_settings()
|
self.load_settings()
|
||||||
|
|
||||||
|
self.show_passwd_button.pressed.connect(self.show_password)
|
||||||
|
self.show_passwd_button.released.connect(self.hide_password)
|
||||||
|
|
||||||
selected = self.vms_to_include()
|
selected = self.vms_to_include()
|
||||||
self.__fill_vms_list__(selected)
|
self.__fill_vms_list__(selected)
|
||||||
|
|
||||||
@ -130,6 +133,14 @@ class BackupVMsWindow(ui_backupdlg.Ui_Backup, QtWidgets.QWizard):
|
|||||||
self.dispatcher = dispatcher
|
self.dispatcher = dispatcher
|
||||||
dispatcher.add_handler('backup-progress', self.on_backup_progress)
|
dispatcher.add_handler('backup-progress', self.on_backup_progress)
|
||||||
|
|
||||||
|
def show_password(self):
|
||||||
|
self.passphrase_line_edit.setEchoMode(QtWidgets.QLineEdit.Normal)
|
||||||
|
self.show_passwd_button.setIcon(QtGui.QIcon(':/eye.svg'))
|
||||||
|
|
||||||
|
def hide_password(self):
|
||||||
|
self.passphrase_line_edit.setEchoMode(QtWidgets.QLineEdit.Password)
|
||||||
|
self.show_passwd_button.setIcon(QtGui.QIcon(':/eye-off.svg'))
|
||||||
|
|
||||||
def setup_application(self):
|
def setup_application(self):
|
||||||
self.qt_app.setApplicationName(self.tr("Qubes Backup VMs"))
|
self.qt_app.setApplicationName(self.tr("Qubes Backup VMs"))
|
||||||
self.qt_app.setWindowIcon(QtGui.QIcon.fromTheme("qubes-manager"))
|
self.qt_app.setWindowIcon(QtGui.QIcon.fromTheme("qubes-manager"))
|
||||||
|
@ -110,6 +110,17 @@ class RestoreVMsWindow(ui_restoredlg.Ui_Restore, QtWidgets.QWizard):
|
|||||||
|
|
||||||
backup_utils.fill_appvms_list(self)
|
backup_utils.fill_appvms_list(self)
|
||||||
|
|
||||||
|
self.passwd_show_button.pressed.connect(self.show_password)
|
||||||
|
self.passwd_show_button.released.connect(self.hide_password)
|
||||||
|
|
||||||
|
def show_password(self):
|
||||||
|
self.passphrase_line_edit.setEchoMode(QtWidgets.QLineEdit.Normal)
|
||||||
|
self.passwd_show_button.setIcon(QtGui.QIcon(':/eye.svg'))
|
||||||
|
|
||||||
|
def hide_password(self):
|
||||||
|
self.passphrase_line_edit.setEchoMode(QtWidgets.QLineEdit.Password)
|
||||||
|
self.passwd_show_button.setIcon(QtGui.QIcon(':/eye-off.svg'))
|
||||||
|
|
||||||
def setup_application(self):
|
def setup_application(self):
|
||||||
self.qt_app.setApplicationName(self.tr("Qubes Restore VMs"))
|
self.qt_app.setApplicationName(self.tr("Qubes Restore VMs"))
|
||||||
self.qt_app.setWindowIcon(QtGui.QIcon.fromTheme("qubes-manager"))
|
self.qt_app.setWindowIcon(QtGui.QIcon.fromTheme("qubes-manager"))
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
<RCC>
|
<RCC>
|
||||||
<qresource>
|
<qresource>
|
||||||
|
<file alias='eye.svg'>icons/eye.svg</file>
|
||||||
|
<file alias='eye-off.svg'>icons/eye-off.svg</file>
|
||||||
<file alias="apps.png">icons/apps.png</file>
|
<file alias="apps.png">icons/apps.png</file>
|
||||||
<file alias="settings.png">icons/settings.png</file>
|
<file alias="settings.png">icons/settings.png</file>
|
||||||
<file alias="firewall.png">icons/wall.png</file>
|
<file alias="firewall.png">icons/wall.png</file>
|
||||||
|
@ -256,38 +256,46 @@
|
|||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Backup security</string>
|
<string>Backup security</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QFormLayout" name="formLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<property name="fieldGrowthPolicy">
|
<item row="2" column="0">
|
||||||
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
|
|
||||||
</property>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="label_12">
|
|
||||||
<property name="text">
|
|
||||||
<string><html><head/><body><p>Encryption / Verification<br/>passphrase:</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QLineEdit" name="passphrase_line_edit">
|
|
||||||
<property name="echoMode">
|
|
||||||
<enum>QLineEdit::Password</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0">
|
|
||||||
<widget class="QLabel" name="label_11">
|
<widget class="QLabel" name="label_11">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string><html><head/><body><p>Reenter passphrase:</p></body></html></string>
|
<string><html><head/><body><p>Reenter passphrase:</p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_12">
|
||||||
|
<property name="text">
|
||||||
|
<string><html><head/><body><p>Encryption / Verification<br/>passphrase:</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLineEdit" name="passphrase_line_edit">
|
||||||
|
<property name="echoMode">
|
||||||
|
<enum>QLineEdit::Password</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
<widget class="QLineEdit" name="passphrase_line_edit_verify">
|
<widget class="QLineEdit" name="passphrase_line_edit_verify">
|
||||||
<property name="echoMode">
|
<property name="echoMode">
|
||||||
<enum>QLineEdit::Password</enum>
|
<enum>QLineEdit::Password</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QPushButton" name="show_passwd_button">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../resources.qrc">
|
||||||
|
<normaloff>:/eye-off</normaloff>:/eye-off</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -142,6 +142,13 @@
|
|||||||
<string>Security options</string>
|
<string>Security options</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_4">
|
<layout class="QGridLayout" name="gridLayout_4">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>Encrypted backup:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QCheckBox" name="encryption_checkbox">
|
<widget class="QCheckBox" name="encryption_checkbox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -152,10 +159,10 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="0">
|
<item row="1" column="1">
|
||||||
<widget class="QLabel" name="label_4">
|
<widget class="QLineEdit" name="passphrase_line_edit">
|
||||||
<property name="text">
|
<property name="echoMode">
|
||||||
<string>Encrypted backup:</string>
|
<enum>QLineEdit::Password</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -166,10 +173,14 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="2">
|
||||||
<widget class="QLineEdit" name="passphrase_line_edit">
|
<widget class="QPushButton" name="passwd_show_button">
|
||||||
<property name="echoMode">
|
<property name="text">
|
||||||
<enum>QLineEdit::Password</enum>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../resources.qrc">
|
||||||
|
<normaloff>:/eye-off</normaloff>:/eye-off</iconset>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -288,6 +299,8 @@ p, li { white-space: pre-wrap; }
|
|||||||
<tabstop>commit_text_edit</tabstop>
|
<tabstop>commit_text_edit</tabstop>
|
||||||
<tabstop>showFileDialog</tabstop>
|
<tabstop>showFileDialog</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources/>
|
<resources>
|
||||||
|
<include location="../resources.qrc"/>
|
||||||
|
</resources>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
Loading…
Reference in New Issue
Block a user