diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2015-09-09 19:00:56 +0200 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2015-09-09 19:02:23 +0200 |
| commit | 8a6d4b06f2291c363f3dea17837ed20893852453 (patch) | |
| tree | c091375499e35eaa1810586454e0834c06e6c9b2 /src/libcommuni/examples/quick/qml/TextEntry.qml | |
| parent | f554a27046f203e56a07baaf214d90834942e3f5 (diff) | |
| download | manager-8a6d4b06f2291c363f3dea17837ed20893852453.tar.gz manager-8a6d4b06f2291c363f3dea17837ed20893852453.zip | |
Cleanup repo with some directories
Diffstat (limited to 'src/libcommuni/examples/quick/qml/TextEntry.qml')
| -rw-r--r-- | src/libcommuni/examples/quick/qml/TextEntry.qml | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/libcommuni/examples/quick/qml/TextEntry.qml b/src/libcommuni/examples/quick/qml/TextEntry.qml new file mode 100644 index 0000000..4201e86 --- /dev/null +++ b/src/libcommuni/examples/quick/qml/TextEntry.qml @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2008-2014 The Communi Project + * + * This example is free, and not covered by the BSD license. There is no + * restriction applied to their modification, redistribution, using and so on. + * You can study them, modify them, use them in your own program - either + * completely or partially. + */ + +import QtQuick 2.1 +import QtQuick.Controls 1.0 +import QtQuick.Controls.Styles 1.0 +import Communi 3.1 + +TextField { + id: textField + + property alias buffer: completer.buffer + + signal messageSent(IrcMessage message) + + focus: true + placeholderText: qsTr("...") + + Keys.onTabPressed: completer.complete(text, cursorPosition) + + IrcCompleter { + id: completer + + onCompleted: { + textField.text = text + textField.cursorPosition = cursor + } + + parser: IrcCommandParser { + id: parser + + tolerant: true + triggers: ["/"] + channels: buffer ? buffer.model.channels : [] + target: buffer ? buffer.title : "" + + Component.onCompleted: { + parser.addCommand(IrcCommand.Join, "JOIN <#channel> (<key>)") + parser.addCommand(IrcCommand.CtcpAction, "ME [target] <message...>") + parser.addCommand(IrcCommand.Nick, "NICK <nick>") + parser.addCommand(IrcCommand.Part, "PART (<#channel>) (<message...>)") + } + } + } + + style: TextFieldStyle { + background: Rectangle { + color: palette.base + Rectangle { + color: "transparent" + anchors.fill: parent + anchors.leftMargin: -1 + border.color: "#aaa" + } + } + } + + onAccepted: { + var cmd = parser.parse(text) + if (cmd) { + buffer.connection.sendCommand(cmd) + if (cmd.type === IrcCommand.Message + || cmd.type === IrcCommand.CtcpAction + || cmd.type === IrcCommand.Notice) { + var msg = cmd.toMessage(buffer.connection.nickName, buffer.connection) + textField.messageSent(msg) + } + textField.text = "" + } + } +} |
