ProjectDjangoTagsMenu/MultiLineInputDialog.py

changeset 9
1b11bf54b3b2
child 10
ef5694c0bf3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjangoTagsMenu/MultiLineInputDialog.py	Sun Feb 09 18:21:45 2014 +0100
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2014 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog for the input of multi line text.
+"""
+
+from PyQt4.QtGui import QDialog
+
+from .Ui_MultiLineInputDialog import Ui_MultiLineInputDialog
+
+
+class MultiLineInputDialog(QDialog, Ui_MultiLineInputDialog):
+    """
+    Class implementing a dialog for the input of multi line text.
+    """
+    def __init__(self, label, default, parent=None):
+        """
+        Constructor
+        
+        @param label label for the entry field (string)
+        @param default default value for the entry field (string)
+        @param parent reference to the parent widget (QWidget)
+        """
+        super(MultiLineInputDialog, self).__init__(parent)
+        self.setupUi(self)
+    
+    def getData(self):
+        """
+        Public method to retrieve the multi line text.
+        
+        @return multi line text (string)
+        """
+        return self.multiLineEdit.toPlainText()
+    
+    @staticmethod
+    def getText(parent, title, label, default=""):
+        """
+        Static method to create the dialog and return the multi line text.
+        
+        @param parent reference to the parent widget (QWidget)
+        @param title title of the dialog (string)
+        @param label label for the entry field (string)
+        @param default default value for the entry field (string)
+        @return multi line text (string) and a flag indicating the acceptance
+            state (boolean)
+        """
+        dlg = MultiLineInputDialog(label, default, parent)
+        dlg.setWindowTitle(title)
+        if dlg.exec_() == QDialog.Accepted:
+            return dlg.getData(), True
+        else:
+            return "", False

eric ide

mercurial