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
This commit is contained in:
deeplow 2022-10-10 11:58:09 +01:00
parent 0e36f8d2eb
commit 41017745ec
No known key found for this signature in database
GPG key ID: 577982871529A52A
2 changed files with 25 additions and 3 deletions

View file

@ -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

View file

@ -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;
}