feat: private chat popup
This commit is contained in:
parent
31a310314c
commit
1a829828c8
|
@ -11,6 +11,7 @@ StackLayout {
|
|||
property int chatGroupsListViewCount: 0
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
Layout.minimumWidth: 300
|
||||
|
||||
currentIndex: chatGroupsListViewCount > 0 ? 0 : 1
|
||||
|
||||
|
|
|
@ -32,6 +32,10 @@ Item {
|
|||
id: publicChatPopup
|
||||
}
|
||||
|
||||
PrivateChatPopup {
|
||||
id: privateChatPopup
|
||||
}
|
||||
|
||||
SearchBox {
|
||||
id: searchBox
|
||||
}
|
||||
|
|
|
@ -87,9 +87,7 @@ Rectangle {
|
|||
QQC2.Action {
|
||||
text: qsTr("Start new chat")
|
||||
icon.source: "../../../img/new_chat.svg"
|
||||
onTriggered: {
|
||||
console.log("TODO: Start new chat")
|
||||
}
|
||||
onTriggered: privateChatPopup.open()
|
||||
}
|
||||
QQC2.Action {
|
||||
text: qsTr("Start group chat")
|
||||
|
|
|
@ -36,7 +36,7 @@ Rectangle {
|
|||
anchors.leftMargin: 10
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source: "../../img/search.svg"
|
||||
source: "../../../img/search.svg"
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
|
|
|
@ -0,0 +1,138 @@
|
|||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.3
|
||||
import QtQuick.Layouts 1.3
|
||||
import "../../../../imports"
|
||||
import "../../../../shared"
|
||||
import "./"
|
||||
|
||||
Item {
|
||||
function open(){
|
||||
popup.open()
|
||||
chatKey.text = "";
|
||||
chatKey.forceActiveFocus(Qt.MouseFocusReason)
|
||||
}
|
||||
|
||||
function close(){
|
||||
popup.close()
|
||||
}
|
||||
|
||||
Popup {
|
||||
id: popup
|
||||
modal: true
|
||||
closePolicy: Popup.NoAutoClose
|
||||
Overlay.modal: Rectangle {
|
||||
color: "#60000000"
|
||||
}
|
||||
parent: Overlay.overlay
|
||||
x: Math.round((parent.width - width) / 2)
|
||||
y: Math.round((parent.height - height) / 2)
|
||||
width: 480
|
||||
height: 509
|
||||
background: Rectangle {
|
||||
color: Theme.white
|
||||
radius: 8
|
||||
}
|
||||
padding: 0
|
||||
contentItem: Item {
|
||||
Text {
|
||||
id: modalDialogTitle
|
||||
text: qsTr("New chat")
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
font.bold: true
|
||||
font.pixelSize: 17
|
||||
anchors.leftMargin: 16
|
||||
anchors.topMargin: 16
|
||||
}
|
||||
|
||||
Image {
|
||||
id: closeModalImg
|
||||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: 16
|
||||
anchors.topMargin: 16
|
||||
source: "../../../img/close.svg"
|
||||
MouseArea {
|
||||
id: closeModalMouseArea
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
anchors.fill: parent
|
||||
onClicked : {
|
||||
popup.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Separator {
|
||||
id: separator
|
||||
anchors.top: modalDialogTitle.bottom
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: chatKeyBox
|
||||
height: 44
|
||||
color: Theme.grey
|
||||
anchors.top: separator.bottom
|
||||
anchors.topMargin: 16
|
||||
radius: 8
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: 16
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 16
|
||||
|
||||
TextField {
|
||||
id: chatKey
|
||||
placeholderText: qsTr("Enter ENS username or chat key")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 16
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
font.pixelSize: 15
|
||||
background: Rectangle {
|
||||
color: "#00000000"
|
||||
}
|
||||
width: popup.width - 65
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
anchors.fill: parent
|
||||
onClicked : {
|
||||
chatKey.forceActiveFocus(Qt.MouseFocusReason)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Separator {
|
||||
id: separator2
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.bottomMargin: 75
|
||||
}
|
||||
|
||||
Button {
|
||||
id: btnNewChat
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.right: parent.right
|
||||
anchors.bottomMargin: 16
|
||||
anchors.rightMargin: 16
|
||||
width: 44
|
||||
height: 44
|
||||
Image {
|
||||
source: chatKey.text == "" ? "../../../img/arrow-button-inactive.svg" : "../../../img/arrow-btn-active.svg"
|
||||
}
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
}
|
||||
MouseArea {
|
||||
id: btnMAnewChat
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
anchors.fill: parent
|
||||
onClicked : {
|
||||
if(chatKey.text === "") return;
|
||||
// chatsModel.joinChat(chatKey.text);
|
||||
console.log("TODO: join private chat");
|
||||
popup.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@ import "./"
|
|||
Item {
|
||||
function open(){
|
||||
popup.open()
|
||||
channelName.text = "";
|
||||
channelName.forceActiveFocus(Qt.MouseFocusReason)
|
||||
}
|
||||
|
||||
|
@ -189,7 +190,6 @@ Item {
|
|||
onClicked : {
|
||||
if(channelName.text === "") return;
|
||||
chatsModel.joinChat(channelName.text);
|
||||
channelName.text = "";
|
||||
popup.close();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
SuggestedChannel 1.0 SuggestedChannel.qml
|
||||
PublicChatPopup 1.0 PublicChatPopup.qml
|
||||
PublicChatPopup 1.0 PublicChatPopup.qml
|
||||
PrivateChatPopup 1.0 PrivateChatPopup.qml
|
|
@ -54,6 +54,7 @@ DISTFILES += \
|
|||
app/AppLayouts/Chat/ChatLayout.qml \
|
||||
app/AppLayouts/Chat/ContactsColumn.qml \
|
||||
app/AppLayouts/Chat/components/PublicChatPopup.qml \
|
||||
app/AppLayouts/Chat/components/PrivateChatPopup.qml \
|
||||
app/AppLayouts/Chat/components/SuggestedChannel.qml \
|
||||
app/AppLayouts/Chat/components/qmldir \
|
||||
app/AppLayouts/Chat/qmldir \
|
||||
|
|
Loading…
Reference in New Issue