docs: def getPlainText( parent, title, caption, text = '' ):
          """
          Prompts the user for more advanced text input.
          
          :param      parent  | <QWidget> || None
                      title   | <str>
                      caption | <str>
                      text    | <str>
          
          :return     (<str>, <bool> accepted)
          """
          dlg = QDialog(parent)
          dlg.setWindowTitle(title)
          
          label = QLabel(dlg)
          label.setText(caption)
          
          edit = QTextEdit(dlg)
          edit.setText(text)
          edit.selectAll()
          
          opts = QDialogButtonBox.Ok | QDialogButtonBox.Cancel
          btns = QDialogButtonBox(opts, Qt.Horizontal, dlg)
          
          btns.accepted.connect(dlg.accept)
          btns.rejected.connect(dlg.reject)
          
          layout = QVBoxLayout()
          layout.addWidget(label)
          layout.addWidget(edit)
          layout.addWidget(btns)
          
          dlg.setLayout(layout)
          dlg.adjustSize()
          
          if ( dlg.exec_() ):
              return (edit.toPlainText(), True)
          return ('', False)