import QtQuick 2.0 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.4 import "qrc:/js/helper.js" as Helperjs import "qrc:/js/news.js" as Newsjs import "qrc:/js/service.js" as Service import "qrc:/qml/contactqml" import "qrc:/qml/genericqml" Rectangle { y:1 color: "white" function showContactdetails(contact){ var component = Qt.createComponent("qrc:/qml/contactqml/ContactDetailsComponent.qml"); if(contact.isFriend){ friendsTabView.currentIndex=0; var contactDetails = component.createObject(friendstab,{"contact": contact}) } else{friendsTabView.currentIndex=1; var contactDetails = component.createObject(friendstab,{"contact": contact}) } } TabView{ id:friendsTabView tabPosition: Qt.TopEdge x:mm y:mm width: root.width-2*mm height: root.height-10*mm currentIndex: 0 signal contactsSignal(var contact) signal groupsSignal(var username) onCurrentIndexChanged:{ if (currentIndex==0){ contactsSignal("") } else if (currentIndex==1){ contactsSignal("") } else if (currentIndex==2){groupsSignal(root.login.username)} } style: TabViewStyle { frameOverlap: 1 tab: Rectangle { color: "white" implicitWidth: root.width/3-2*mm implicitHeight: 4*mm Text { id: text anchors.centerIn: parent text: styleData.title color: "dark grey" font.pixelSize:2.5*mm font.bold: styleData.selected } } frame: Rectangle { color: "light grey" } tabsAlignment:Qt.AlignHCenter } Tab{ title: qsTr("Friends") Rectangle{ id: friendsGridTab function showFriends(contact){ try {friendsModel.clear()} catch(e){print(e)}; Helperjs.readData(db,"contacts",login.username,function(friendsobject){ for (var i=0;i1){ friendsobject[i].screen_name=friendsobject[i].screen_name+"+"+friendsobject[i].cid } friendsModel.append({"contact":friendsobject[i]}); } },"isFriend",1,"screen_name ASC"); } BlueButton { id: updateFriendsButton text: "\uf021" anchors.top: parent.top anchors.topMargin: mm anchors.right: parent.right onClicked: { try {friendsModel.clear()} catch(e){print(e)}; root.contactLoadType="friends"; Newsjs.requestFriends(root.login,db,root,function(nc){ root.newContacts=nc }) } } ProgressBar{ id: newContactsProgress width: 15*mm height: updateFriendsButton.height anchors.top: parent.top anchors.right:updateFriendsButton.left anchors.rightMargin:mm visible: (root.currentContact!=root.newContacts.length)?true:false value: root.currentContact/root.newContacts.length } GridView { id: friendsView x:mm y:updateFriendsButton.height+2*mm width:friendsGridTab.width-2*mm height:friendsGridTab.height-updateFriendsButton.height-2*mm clip: true cellHeight: 16*mm cellWidth: 17*mm //add: Transition { // NumberAnimation { properties: "x,y"; from: 300; duration: 1000 } // } model: friendsModel delegate: ContactComponent { } } ListModel{id:friendsModel} Component.onCompleted: { root.friendsSignal.connect(showFriends); friendsTabView.contactsSignal.connect(showFriends); showFriends(root.login.username) } } } Tab{ title: qsTr("Contacts") Rectangle{ id: contactsGridTab function showContacts(contact){ try {contactsModel.clear()} catch(e){print(e)}; Helperjs.readData(db, "contacts",root.login.username,function(contactsobject){ for (var j=0;j