inputtext.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # $Id$
  2. from PyQt4 import QtCore, QtGui
  3. from qt_utils import connect
  4. from openmsx_utils import tclEscape
  5. class InputText(object):
  6. def __init__(self, bridge):
  7. self.__cfDialog = None
  8. self.__ui = None
  9. self.__bridge = bridge
  10. def show(self):
  11. dialog = self.__cfDialog
  12. if dialog is None:
  13. self.__cfDialog = dialog = QtGui.QDialog(
  14. None, # TODO: find a way to get the real parent
  15. QtCore.Qt.Dialog
  16. | QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowSystemMenuHint
  17. )
  18. # Setup UI made in Qt Designer.
  19. from ui_inputtext import Ui_InputTextDialog
  20. ui = Ui_InputTextDialog()
  21. ui.setupUi(dialog)
  22. self.__ui = ui
  23. # the following property is missing in Designer somehow
  24. ui.inputText.setWordWrapMode(QtGui.QTextOption.WrapAnywhere)
  25. # Connect signals.
  26. connect(ui.sendButton, 'clicked()', self.__typeInputText)
  27. connect(ui.clearButton, 'clicked()', self.__clearInputText)
  28. dialog.show()
  29. dialog.raise_()
  30. dialog.activateWindow()
  31. def __typeInputText(self):
  32. #TODO: Capture Regular expressions chars like { [ at the beginning of a line
  33. strText = tclEscape(self.__ui.inputText.toPlainText())
  34. self.__bridge.sendCommandRaw('type "%s"' % strText)
  35. def __clearInputText(self):
  36. self.__ui.inputText.clear()