From 41017745ece9169f4d5c075726a51ce0f5ffb8c5 Mon Sep 17 00:00:00 2001 From: deeplow Date: Mon, 10 Oct 2022 11:58:09 +0100 Subject: [PATCH] Add greyed out document name right before '-safe.pdf' The user is supposed to only be able to select the safe PDF extension. In a multi-file scenario, the extension will be the same for all files. We follow here the design document [1]. To achieve this, we needed a QLabel right next to a QLineEdit, to give the user the illusion that it is the same graphical object. [1]: https://github.com/firstlookmedia/dangerzone/files/6657536/DangerZone_NA02a.pdf --- dangerzone/gui/main_window.py | 12 ++++++++++-- share/dangerzone.css | 16 +++++++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/dangerzone/gui/main_window.py b/dangerzone/gui/main_window.py index cbdcc5f..e8168e2 100644 --- a/dangerzone/gui/main_window.py +++ b/dangerzone/gui/main_window.py @@ -318,20 +318,28 @@ class SettingsWidget(QtWidgets.QWidget): # Save safe as... [filename]-safe.pdf self.safe_extension_label = QtWidgets.QLabel("Save as") self.safe_extension_filename = QtWidgets.QLabel("document") + self.safe_extension_filename.setAlignment(QtCore.Qt.AlignRight) + self.safe_extension_filename.setProperty("style", "safe_extension_filename") self.safe_extension = QtWidgets.QLineEdit() + self.safe_extension.setStyleSheet("margin-left: -6px;") # no left margin self.safe_extension.textChanged.connect(self.update_ui) self.safe_extension_invalid = QtWidgets.QLabel("(must end in .pdf)") self.safe_extension_invalid.setStyleSheet("color: red") self.safe_extension_invalid.hide() + self.safe_extension_name_layout = QtWidgets.QHBoxLayout() + self.safe_extension_name_layout.setSpacing(0) + self.safe_extension_name_layout.addWidget(self.safe_extension_filename) + self.safe_extension_name_layout.addWidget(self.safe_extension) + dot_pdf_regex = QtCore.QRegExp(r".*\.[Pp][Dd][Ff]") self.safe_extension.setValidator(QtGui.QRegExpValidator(dot_pdf_regex)) self.safe_extension_layout = QtWidgets.QHBoxLayout() self.safe_extension_layout.setContentsMargins(20, 0, 0, 0) self.safe_extension_layout.addWidget(self.safe_extension_label) - self.safe_extension_layout.addWidget(self.safe_extension_filename) self.safe_extension_layout.addWidget(self.save_label) - self.safe_extension_layout.addWidget(self.safe_extension) + self.safe_extension_layout.addLayout(self.safe_extension_name_layout) self.safe_extension_layout.addWidget(self.safe_extension_invalid) + self.safe_extension_layout.addStretch() # Open safe document diff --git a/share/dangerzone.css b/share/dangerzone.css index 3bf8d76..afc3c3e 100644 --- a/share/dangerzone.css +++ b/share/dangerzone.css @@ -1,6 +1,20 @@ QLineEdit { border-width: 1px; border-style: solid; - border-color: #c8c8c8 #c8c8c8 white; + border-color: #c8c8c8; padding: 3px; +} + +/* + * QLabel left-adjacent to a QLineEdit to give the illusion + * that it is part of it, but just not editable + */ +QLabel[style="safe_extension_filename"] { + border-width: 1px; + border-right-width: 0px; + border-style: solid; + border-color: #c8c8c8; + padding: 4px 0px 4px 4px; + background: white; + color: grey; } \ No newline at end of file