MessagesForm.ui.qml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import QtQuick 2.12
  2. import QtQuick.Controls 2.5
  3. import QtQuick.Layouts 1.3
  4. Page {
  5. width: 1280
  6. height: 470
  7. font.capitalization: Font.MixedCase
  8. Connections {
  9. target: _qmlHandler
  10. onMessage: {
  11. messagesLog.append(msg)
  12. messagesFlickable.contentY = messagesLog.height - messagesFlickable.height
  13. }
  14. }
  15. ColumnLayout {
  16. anchors.fill: parent
  17. Flickable {
  18. id: messagesFlickable
  19. flickableDirection: Flickable.VerticalFlick
  20. Layout.preferredHeight: 400
  21. Layout.preferredWidth: parent.width
  22. TextArea.flickable: TextArea {
  23. id: messagesLog
  24. readOnly: true
  25. selectByMouse: true
  26. wrapMode: TextArea.Wrap
  27. font.pointSize: 15
  28. }
  29. ScrollBar.vertical: ScrollBar {
  30. }
  31. }
  32. RowLayout {
  33. Layout.preferredHeight: 70
  34. Layout.preferredWidth: parent.width
  35. TextField {
  36. id: messagesInputField
  37. selectByMouse: true
  38. Layout.preferredWidth: 1060
  39. Layout.preferredHeight: parent.height
  40. placeholderText: "Enter message..."
  41. text: qsTr("")
  42. font.pixelSize: 20
  43. // @disable-check M222
  44. Keys.onReturnPressed: messagesSendButton.activate()
  45. // @disable-check M222
  46. Keys.onEnterPressed: messagesSendButton.activate()
  47. }
  48. Button {
  49. id: messagesSendButton
  50. Layout.preferredWidth: 180
  51. Layout.preferredHeight: parent.height
  52. text: qsTr("Send")
  53. // @disable-check M223
  54. onClicked: {
  55. // @disable-check M222
  56. messagesSendButton.activate()
  57. }
  58. enabled: messagesInputField.text != ""
  59. // @disable-check M222
  60. function activate() {
  61. // @disable-check M223
  62. if (messagesInputField.text != "") {
  63. // @disable-check M222
  64. _qmlHandler.onMessagesSendButton(
  65. messagesInputField.text)
  66. messagesInputField.text = ""
  67. }
  68. }
  69. }
  70. }
  71. }
  72. }