import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.0 Item { width: 640 height: 480 RowLayout { anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 20 anchors.top: parent.top } Flickable { id: flickable width: 472 height: 411 x: 8 y: 8 TextArea { objectName: "chat_area" id: textArea x: 8 y: 8 anchors.fill: parent wrapMode: TextArea.Wrap textFormat: TextEdit.RichText font.family: "Source Code Pro" font.pointSize: 9 selectByMouse: true } ScrollBar.vertical: ScrollBar { } } TextField { signal send_to_irc objectName: "input" id: textField x: 8 y: 429 width: 472 height: 43 selectByMouse: true Keys.onEnterPressed: send_to_irc() Keys.onReturnPressed: send_to_irc() } ListView { id: nickListView objectName: "nick_list" x: 486 y: 8 width: 146 height: 357 delegate: Item { x: 5 width: 146 height: 20 Text { text: name anchors.verticalCenter: parent.verticalCenter font.bold: true font.family: "Source Code Pro" font.pointSize: 11 } } model: ListModel { id: nickListModel } function add_nick(nick){ nickListModel.append({name: nick}) } function remove_nick(nick){ for (var i = 0; i < nickListModel.count; ++i) { if (nickListModel.get(i).name === nick) { nickListModel.remove(i) } } } } Button { objectName: "connect_button" id: connect_button x: 519 y: 380 text: qsTr("Connect") } Button { objectName: "send_button" id: send_button x: 519 y: 429 text: qsTr("Send") } }