Tue, 28 Mar 2017 19:27:02 +0200
Fixed some code style issues.
# -*- coding: utf-8 -*- # Copyright (c) 2014 - 2017 Detlev Offenbach <detlev@die-offenbachs.de> # """ Module implementing a dialog to enter data for the creation of a tag. """ from __future__ import unicode_literals from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel from E5Gui.E5LineEdit import E5ClearableLineEdit class DjangoTagInputDialog(QDialog): """ Class implementing a dialog to enter data for the creation of a tag. """ def __init__(self, labels, defaults=None, parent=None): """ Constructor @param labels list of labels for the entry fields (list of string) @param defaults list of default values for the entry fields (list of string) @param parent reference to the parent widget (QWidget) """ super(DjangoTagInputDialog, self).__init__(parent) assert 0 < len(labels) < 6 # max 5 entries allowed self.__inputs = [] self.__topLayout = QVBoxLayout(self) index = 0 for label in labels: self.__topLayout.addWidget(QLabel(label, self)) entry = E5ClearableLineEdit(self) if defaults and index < len(defaults): entry.setText(defaults[index]) self.__inputs.append(entry) self.__topLayout.addWidget(entry) index += 1 self.__buttonBox = QDialogButtonBox( QDialogButtonBox.Ok | QDialogButtonBox.Cancel, Qt.Horizontal, self) self.__topLayout.addWidget(self.__buttonBox) self.resize(400, self.minimumSizeHint().height()) self.setSizeGripEnabled(True) self.__buttonBox.accepted.connect(self.accept) self.__buttonBox.rejected.connect(self.reject) self.__inputs[0].selectAll() self.__inputs[0].setFocus() def getData(self): """ Public method to retrieve the entered data. @return tuple containing the text of all entries (tuple of string) """ data = [input.text().strip() for input in self.__inputs] return tuple(data) @staticmethod def getText(parent, title, labels, defaults=None): """ Public static method to create the dialog and return the entered data. @param parent reference to the parent widget (QWidget) @param title title of the dialog (string) @param labels list of labels for the entry fields (list of string) @param defaults list of default values for the entry fields (list of string) @return tuple of a tuple containing the text of all entries (tuple of string) and a flag indicating the acceptance state (boolean) """ if defaults is None: defaults = [] dlg = DjangoTagInputDialog(labels, defaults, parent) dlg.setWindowTitle(title) if dlg.exec_() == QDialog.Accepted: return dlg.getData(), True else: return tuple(), False