Friendiqa/source-linux/qml/newsqml/Conversation.qml

150 lines
4.9 KiB
QML
Raw Normal View History

2017-05-11 22:15:34 +02:00
// ConversationView with button
2017-01-26 21:55:31 +01:00
import QtQuick 2.0
2017-11-07 21:57:40 +01:00
import QtQuick.Controls 1.2
2017-01-26 21:55:31 +01:00
import "qrc:/js/helper.js" as Helperjs
import "qrc:/qml/genericqml"
Rectangle {
2017-05-11 22:15:34 +02:00
id:conversationList
2017-11-07 21:57:40 +01:00
//property var news
2017-01-26 21:55:31 +01:00
y:1
2017-05-11 22:15:34 +02:00
z:2
color: "white"
border.color: "grey"
width:root.width-5*mm
height: conversationView.height+10*mm
Connections{
target:newstab
onConversationChanged:{
2017-11-07 21:57:40 +01:00
2017-05-11 22:15:34 +02:00
}
}
2017-01-26 21:55:31 +01:00
ListView {
id: conversationView
x:3*mm
y:8*mm
2017-05-11 22:15:34 +02:00
width: conversationList.width-4*mm
height: contentHeight
2017-01-26 21:55:31 +01:00
clip: true
spacing: 0
2017-05-11 22:15:34 +02:00
footer: footerReply
2017-01-26 21:55:31 +01:00
model: conversationModel
delegate: Newsitem{}
}
2017-11-07 21:57:40 +01:00
BusyIndicator{
id: conversationBusy
anchors.horizontalCenter: conversationView.horizontalCenter
anchors.top:conversationView.top
anchors.topMargin: 2*mm
width:10*mm
height: 10*mm
running: true
}
Connections{
target:newstab
onConversationChanged:{
if(newsitem.itemindex==newsStack.conversationIndex){
if(newstab.conversation.length==0){
newsView.positionViewAtIndex(newsStack.conversationIndex,ListView.Beginning);
conversationList.destroy(); conversationsymbol.color="grey"
} else { conversationBusy.running=false;
conversationModel.clear();
var currentTime= new Date();
var msg = {'currentTime': currentTime, 'model': conversationModel,'news':newstab.conversation};
conversationWorker.sendMessage(msg)
conversationsymbol.color="grey"}
}
}
}
2017-01-26 21:55:31 +01:00
2017-05-11 22:15:34 +02:00
Component { id:footerReply
Rectangle{
border.color: "#EEEEEE"
border.width: 1
color:"lightgrey"
width:conversationView.width
height:Math.max(replyText.contentHeight+2*mm,6*mm)
Rectangle{
color: "white"
radius:0.5*mm
anchors.left: parent.left
anchors.leftMargin:mm
anchors.top:parent.top
anchors.topMargin: 0.5*mm
width:parent.width-12*mm
height:Math.max( replyText.contentHeight,5*mm)
2017-01-26 21:55:31 +01:00
2017-05-11 22:15:34 +02:00
TextInput {
id: replyText
font.pixelSize: 3*mm
wrapMode: Text.Wrap
anchors.fill: parent
selectByMouse: true
}
}
BlueButton {
id: sendButton
text: "\uf1d9"
anchors.right: parent.right
anchors.rightMargin:mm
anchors.top:parent.top
anchors.topMargin: 0.5*mm
color:"white"
onClicked: { try{
var body=replyText.getText(0,replyText.length);
newsBusy.running=true;
replyText.text=""
xhr.clearParams();
xhr.setLogin(login.username+":"+Qt.atob(login.password));
if (conversationModel.get(0).newsitemobject.messagetype==0){
xhr.setParam("source", "Friendiqa");
xhr.url= login.server + "/api/statuses/update.json";
xhr.setParam("status", body);
xhr.setParam("in_reply_to_status_id", conversationModel.get(conversationModel.count-1).newsitemobject.status_id)}
else {xhr.url= login.server + "/api/direct_messages/new.json";
xhr.setParam("text", body);
xhr.setParam("screen_name",conversationModel.get(conversationModel.count-1).newsitemobject.screen_name);
xhr.setParam("replyto", conversationModel.get(conversationModel.count-1).newsitemobject.status_id)
}
xhr.post();
//replyText.text=""
} catch(e){Helperjs.showMessage("Error",e.toString(),root)}
}
}
}
}
ListModel{id: conversationModel}
WorkerScript {
id: conversationWorker
source: "qrc:/js/newsworker.js"
}
2017-01-26 21:55:31 +01:00
BlueButton {
id: closeButton
width:10*mm
anchors.top: parent.top
anchors.topMargin: 1*mm
anchors.right: parent.right
anchors.rightMargin: 1*mm
2017-05-11 22:15:34 +02:00
text: "\uf057"
2017-01-26 21:55:31 +01:00
onClicked: {
2017-05-11 22:15:34 +02:00
newsView.positionViewAtIndex(newsStack.conversationIndex,ListView.Beginning);
conversationList.destroy();
conversationsymbol.color="grey"
2017-01-26 21:55:31 +01:00
}
}
2017-11-07 21:57:40 +01:00
// Component.onCompleted: {
// if (news){var currentTime= new Date();
// var msg = {'currentTime': currentTime, 'model': conversationModel,'news':news};
// conversationWorker.sendMessage(msg)}
// }
2017-01-26 21:55:31 +01:00
}