1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
/*
* Copyright (C) 2008-2014 The Communi Project
*
* This example is free, and not covered by the LGPL 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.0
import Ubuntu.Components 0.1
import Communi 3.0
MainView{
id: window
objectName: "mainView"
applicationName: "irc client"
automaticOrientation: true
anchorToKeyboard: true
width: units.gu(40)
height: units.gu(71)
property bool isConnected: false
PageStack{
id: pageStack
Component.onCompleted: push(connectPage)
Settings{
id:settingsPage
visible: false
}
ConnectPage {
id: connectPage
visible: false
onAccepted: {
chatPage.currentBuffer = serverBuffer
connection.sendCommand(cmd.createJoin(channel))
connection.open()
pageStack.push(chatPage)
}
onRejected: Qt.quit()
}
ChatPage {
id: chatPage
visible: false
title: isConnected ? currentBuffer.name : "Connecting"
bufferModel: IrcBufferModel {
id: bufferModel
sortMethod: Irc.SortByTitle
connection: IrcConnection {
id: connection
host: connectPage.host
port: connectPage.port
secure: connectPage.secure
saslMechanism: connectPage.sasl ? supportedSaslMechanisms[0] : ""
nickName: connectPage.nickName
realName: connectPage.realName
userName: connectPage.userName
password: connectPage.password
}
onMessageIgnored: serverBuffer.receiveMessage(message)
function quit() {
bufferModel.clear()
connection.quit(qsTr("Irc Client"))
connection.close()
Qt.quit()
}
}
serverBuffer: IrcBuffer {
id: serverBuffer
sticky: true
persistent: true
name: connection.displayName
Component.onCompleted: bufferModel.add(serverBuffer)
}
}
}//stack
Irc { id: irc
}
IrcCommand { id: cmd }
Component.onDestruction: bufferModel.quit()
}
|