From 4bedff84377f75ebd3d1f863475e28d28251c51c Mon Sep 17 00:00:00 2001 From: Lukas Karas Date: Mon, 2 Jan 2012 12:36:42 +0100 Subject: [PATCH] some UI changes for usability --- src/ui-mobile/declarative/AbstractPopup.qml | 43 ++++++- src/ui-mobile/declarative/BoardToolbar.qml | 2 +- src/ui-mobile/declarative/ContactListPanel.qml | 14 +-- src/ui-mobile/declarative/ContactListScene.qml | 2 +- src/ui-mobile/declarative/GlobalStatus.qml | 70 +++++++++--- src/ui-mobile/declarative/GlobalStatusPopup.qml | 28 ++++- src/ui-mobile/declarative/LeftPanel.qml | 70 +++++++++++- src/ui-mobile/declarative/ListViewLine.qml | 11 +- src/ui-mobile/declarative/SessionControlPanel.qml | 41 ++++--- src/ui-mobile/declarative/SessionController.qml | 3 + src/ui-mobile/declarative/TopPanel.qml | 1 + src/ui-mobile/declarative/img/call-end.png | Bin 6788 -> 18560 bytes src/ui-mobile/declarative/img/call-end.svg | 24 ++-- src/ui-mobile/declarative/img/call-start.png | Bin 10262 -> 27821 bytes src/ui-mobile/declarative/img/call-start.svg | 28 ++--- src/ui-mobile/declarative/img/clip-hide.png | Bin 0 -> 1944 bytes src/ui-mobile/declarative/img/clip-show.png | Bin 0 -> 2012 bytes src/ui-mobile/declarative/img/clip.svg | 108 ++++++++++++++++++ src/ui-mobile/declarative/img/cross.png | Bin 0 -> 14384 bytes src/ui-mobile/declarative/img/cross.svg | 131 +++++++++++++++++++--- src/ui-mobile/declarative/mainview.qml | 7 ++ src/ui-mobile/resources.qrc | 4 +- src/ui-mobile/session-model-item.cpp | 5 + src/ui-mobile/session-model-item.h | 1 + src/ui-mobile/session-model.cpp | 25 +++++ src/ui-mobile/session-model.h | 8 +- src/ui-mobile/view-graber.cpp | 1 + 27 files changed, 521 insertions(+), 106 deletions(-) rewrite src/ui-mobile/declarative/img/call-end.png (98%) rewrite src/ui-mobile/declarative/img/call-start.png (99%) create mode 100644 src/ui-mobile/declarative/img/clip-hide.png create mode 100644 src/ui-mobile/declarative/img/clip-show.png create mode 100644 src/ui-mobile/declarative/img/clip.svg create mode 100644 src/ui-mobile/declarative/img/cross.png diff --git a/src/ui-mobile/declarative/AbstractPopup.qml b/src/ui-mobile/declarative/AbstractPopup.qml index 4dfebf6..a201bbb 100644 --- a/src/ui-mobile/declarative/AbstractPopup.qml +++ b/src/ui-mobile/declarative/AbstractPopup.qml @@ -29,8 +29,10 @@ Rectangle { property int popupFromY: 0 property int finalWidth: parent.width * 0.8 property int finalHeight: parent.height * 0.8 - property int finalX: (popupFromX - finalWidth) < 5 ? 5: popupFromX - finalWidth - property int finalY: (popupFromY + finalHeight) > parent.height - 5 ? parent.height - finalHeight -5: popupFromY + property int minCorner: main.toolbarHeight + //property int minCorner: 50 + property int finalX: (popupFromX - finalWidth) < minCorner ? minCorner: popupFromX - finalWidth + property int finalY: (popupFromY + finalHeight) > parent.height - minCorner ? parent.height - finalHeight - minCorner: popupFromY property bool destroyOnHide: true function log(msg){ @@ -90,9 +92,7 @@ Rectangle { } ] - Component.onCompleted: { - //popup.state = "hide"; - } + SystemPalette { id: syspal } Rectangle{ id: background @@ -115,4 +115,37 @@ Rectangle { anchors{fill:parent} } } + Rectangle{ + height : main.toolbarHeight + width: height + radius : width / 2 + z: 10 + border.color: main.useSyspal? syspal.light :"white" + border.width: 1 + color: main.useSyspal? syspal.mid :"#323235" + anchors.horizontalCenter: _wrapper.right + anchors.verticalCenter: _wrapper.top + opacity: _wrapper.opacity + + /* + x: _wrapper.x + _wrapper.width - (width /2) + y: _wrapper.y - (height /2) + */ + + Image { + id: crossIcon + source: "img/cross.png" + //anchors.fill: parent + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + width: parent.width * .6 + height: width + } + MouseArea{ + anchors.fill: parent + onClicked: { + hidePopup(); + } + } + } } diff --git a/src/ui-mobile/declarative/BoardToolbar.qml b/src/ui-mobile/declarative/BoardToolbar.qml index ad41584..a903ba4 100644 --- a/src/ui-mobile/declarative/BoardToolbar.qml +++ b/src/ui-mobile/declarative/BoardToolbar.qml @@ -34,7 +34,7 @@ Rectangle { Rectangle{ id: foregroundColorSelector anchors{margins: 4; left: parent.left; right: parent.right; top: parent.top; } - anchors.topMargin: 44 + anchors.topMargin: main.toolbarHeight + 4 height: width diff --git a/src/ui-mobile/declarative/ContactListPanel.qml b/src/ui-mobile/declarative/ContactListPanel.qml index befac93..eb67388 100644 --- a/src/ui-mobile/declarative/ContactListPanel.qml +++ b/src/ui-mobile/declarative/ContactListPanel.qml @@ -63,6 +63,7 @@ TopPanel { GlobalStatus{ id: accountManager + BorderImage { source: "img/lineedit.sci"; anchors.fill: parent; opacity: .5 } anchors.top: parent.top anchors.right: parent.right; @@ -90,10 +91,9 @@ TopPanel { verticalCenter: parent.verticalCenter } cursorVisible: true; font.bold: true - color:"white" + color: main.useSyspal? syspal.windowText :"white" selectionColor: "gray" - Keys.onReleased: { var items = changeTextFilter(editor.text); if (items.length == 1 && contactsFlickable.interactive && event.key == Qt.Key_Return){ @@ -109,14 +109,14 @@ TopPanel { Text { id: backGroundText text: defaultText - property string defaultText: "Quick search..." + property string defaultText: "Search contact..." - color: "white" + color: main.useSyspal? syspal.windowText :"white" anchors{verticalCenter: parent.verticalCenter; left: parent.left; leftMargin: 10} opacity: 0.2 font.italic: true font.bold: false - style: Text.Raised; styleColor: "white" + style: Text.Raised; styleColor: main.useSyspal? syspal.windowText :"white" } } @@ -141,10 +141,10 @@ TopPanel { } Text { id: checkBoxText - text: "Show offline" + text: "Show offline contacts" anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter - color: "white" + color: main.useSyspal? syspal.windowText :"white" } MouseArea{ anchors.fill: parent diff --git a/src/ui-mobile/declarative/ContactListScene.qml b/src/ui-mobile/declarative/ContactListScene.qml index 5539311..f812cc7 100644 --- a/src/ui-mobile/declarative/ContactListScene.qml +++ b/src/ui-mobile/declarative/ContactListScene.qml @@ -44,7 +44,7 @@ Scene { anchors.top: parent.top anchors.left: parent.left; anchors.right: parent.right - height: 45 + //height: 45 } } diff --git a/src/ui-mobile/declarative/GlobalStatus.qml b/src/ui-mobile/declarative/GlobalStatus.qml index 30a4fef..b72da35 100644 --- a/src/ui-mobile/declarative/GlobalStatus.qml +++ b/src/ui-mobile/declarative/GlobalStatus.qml @@ -27,8 +27,8 @@ Item { property variant _model: ListModel {} property variant _presenceManager : undefined property variant popup: undefined; - property string globalStatusMsg: "Click here for change your status" - property string globalStatus: "offline"; + property string defaultStatusMsg: "Click here for change your status..." + property string globalStatus: "Offline"; property variant statusPopupComponent : Qt.createComponent("GlobalStatusPopup.qml"); function log(msg){ @@ -61,10 +61,12 @@ Item { } function onGlobalPresenceChanged(type, status, statusMessage){ - //log("onGlobalPresenceChanged "+type+" "+status+", "+statusMessage); + log("onGlobalPresenceChanged (1) "+type+" "+status+", "+statusMessage); var i = presenceToStatusIndex(type); globalStatusIcon.source = statusesModel.get(i).icon; - globalStatusMsg = statusMessage; + globalStatusMsgText.text = statusMessage === ""? defaultStatusMsg: statusMessage; + presenceText.text = presenceToStr( type ); + log("onGlobalPresenceChanged "+type+" "+status+", "+statusMessage); } function onAccountsModelChanged(model){ @@ -82,6 +84,18 @@ Item { _presenceManager.globalPresenceChanged.connect( onGlobalPresenceChanged); } + function presenceToStr(i){ + switch(i){ + case Makneto.TelepathyTypes.ConnectionPresenceTypeAvailable: return "Available"; + case Makneto.TelepathyTypes.ConnectionPresenceTypeOffline: return "Offline"; + case Makneto.TelepathyTypes.ConnectionPresenceTypeAway: return "Away"; + case Makneto.TelepathyTypes.ConnectionPresenceTypeExtendedAway: return "ExtendedAway"; + case Makneto.TelepathyTypes.ConnectionPresenceTypeBusy: return "Busy"; + case Makneto.TelepathyTypes.ConnectionPresenceTypeHidden: return "Hidden"; + } + return "Offline"; + } + function statusIndexToPressence(i){ switch(i){ case 0: return Makneto.TelepathyTypes.ConnectionPresenceTypeAvailable; @@ -121,6 +135,8 @@ Item { ListElement { text: "Invisible"; icon: "img/status-invisible.png" ; index: 5} } + SystemPalette{ id: syspal } + Rectangle{ id:statusIndicator @@ -129,24 +145,46 @@ Item { Image { id: globalStatusIcon - source: "img/status-"+globalStatus+".png" - height: parent.height + anchors.verticalCenter: parent.verticalCenter + source: statusesModel.get(Makneto.TelepathyTypes.ConnectionPresenceTypeOffline).icon + height: parent.height - 6 width: height } - Text { - id: globalStatusMsgText - text: globalStatusMsg - color: "white" - + Rectangle{ + id: textWrapper + height: presenceText.height + globalStatusMsgText.height + anchors.verticalCenter: globalStatusIcon.verticalCenter anchors.left: globalStatusIcon.right anchors.right: parent.right anchors.leftMargin: 5 - anchors.verticalCenter: globalStatusIcon.verticalCenter + color: "transparent" + + Text { + id: presenceText + text: globalStatus + + anchors.top: parent.top + anchors.right: parent.right + anchors.left: parent.left + wrapMode: Text.NoWrap + color: main.useSyspal? syspal.windowText : "white" + font.bold: true + } + Text { + id: globalStatusMsgText + text: defaultStatusMsg + color: main.useSyspal? syspal.windowText : "white" - //height: parent.height - wrapMode: Text.NoWrap + anchors.right: parent.right + anchors.left: parent.left + anchors.top: presenceText.bottom + //anchors.verticalCenter: globalStatusIcon.verticalCenter - elide: Text.ElideRight; textFormat: Text.PlainText // this adds \x2026 (…) when text is too long + //height: parent.height + wrapMode: Text.NoWrap + + elide: Text.ElideRight; textFormat: Text.PlainText // this adds \x2026 (…) when text is too long + } } MouseArea{ anchors.fill: parent @@ -169,7 +207,7 @@ Item { error(statusPopupComponent.errorString()); return false; } - var pos = statusIndicator.mapToItem(main,statusIndicator.width - 10, 10); + var pos = statusIndicator.mapToItem(main,statusIndicator.width - main.toolbarHeight, main.toolbarHeight); popup.popupFromX = pos.x; popup.popupFromY = pos.y; popup.finalWidth = main.width * .7; diff --git a/src/ui-mobile/declarative/GlobalStatusPopup.qml b/src/ui-mobile/declarative/GlobalStatusPopup.qml index 239ce85..4cd69b5 100644 --- a/src/ui-mobile/declarative/GlobalStatusPopup.qml +++ b/src/ui-mobile/declarative/GlobalStatusPopup.qml @@ -56,10 +56,18 @@ AbstractPopup { //opacity: 1.0 } + Text{ + id: accountsLabel + anchors{ top: parent.top; right: parent.right; left: parent.left } + anchors{ topMargin: 12; leftMargin: 6; bottomMargin: 10; rightMargin: 6} + color: main.useSyspal? syspal.windowText :"white" + text: "Your IM accounts:" + } + ListView { id: accountView model: globalStatusComponent._model; - anchors.top: parent.top + anchors.top: accountsLabel.bottom anchors.left: parent.left anchors.bottom: parent.bottom anchors.margins: 5 @@ -99,10 +107,18 @@ AbstractPopup { } } - ChoiceList{ - id: statusChoiceList + Text{ + id: statusLabel anchors{ top: parent.top; right: parent.right; left: separatorLine.right } anchors{ topMargin: 12; leftMargin: 6; bottomMargin: 10; rightMargin: 6} + color: main.useSyspal? syspal.windowText :"white" + text: "Your global status:" + } + + ChoiceList{ + id: statusChoiceList + anchors{ top: statusLabel.bottom; right: parent.right; left: separatorLine.right } + anchors{ topMargin: 6; leftMargin: 6; bottomMargin: 0; rightMargin: 6} behavior: "MeeGo" model: statusesModel @@ -151,6 +167,7 @@ AbstractPopup { } } + /* Text{ id: statusTextLabel anchors{ top: statusChoiceList.bottom; right: parent.right; left: separatorLine.right } @@ -164,10 +181,11 @@ AbstractPopup { anchors{ top: statusTextLabel.bottom; right: parent.right; left: separatorLine.right } anchors{ topMargin: 0; leftMargin: 6; bottomMargin: 6; rightMargin: 6} } + */ Text{ id: statusMessageLabel - anchors{ top: statusText.bottom; right: parent.right; left: separatorLine.right } + anchors{ top: statusChoiceList.bottom; right: parent.right; left: separatorLine.right } color: main.useSyspal? syspal.windowText :"white" anchors{ topMargin: 6; leftMargin: 6; bottomMargin: 0; rightMargin: 6} text: "Status Message:" @@ -187,7 +205,7 @@ AbstractPopup { text: "Change Status" onClicked: { - globalStatusComponent.setGlobalStatus(statusChoiceList.currentIndex, statusText.text, statusMessage.text); + globalStatusComponent.setGlobalStatus(statusChoiceList.currentIndex, statusMessage.text, statusMessage.text); hidePopup(); } } diff --git a/src/ui-mobile/declarative/LeftPanel.qml b/src/ui-mobile/declarative/LeftPanel.qml index 6113456..d21c702 100644 --- a/src/ui-mobile/declarative/LeftPanel.qml +++ b/src/ui-mobile/declarative/LeftPanel.qml @@ -58,11 +58,13 @@ Rectangle{ name: "expanded" PropertyChanges { target: leftPanelShadow; opacity: 1} PropertyChanges { target: leftPanel; width: expandedWidth} + PropertyChanges { target: clipImage; source: "img/clip-hide.png"} }, State { name: "hided" PropertyChanges { target: leftPanelShadow; opacity: 0} PropertyChanges { target: leftPanel; width: hidedWidth} + PropertyChanges { target: clipImage; source: "img/clip-show.png"} }, State { name: "hold" @@ -122,6 +124,15 @@ Rectangle{ property int dragStartX:0 property variant dragStartWidth:0 + Image { + id: clipImage + source: "img/clip-hide.png" + width: clip.width + height: width*2 + anchors.horizontalCenter: clip.horizontalCenter + anchors.verticalCenter: clip.verticalCenter + } + MouseArea{ id: clipMouseArea anchors.fill: parent @@ -186,34 +197,82 @@ Rectangle{ id: contactListButton anchors{margins: 6; top: parent.top; right: parent.right} width: leftPanel.expandedWidth - (contactListButton.anchors.margins * 2) - text: "Contact List" + text: "Show Contact List" onClicked: { main.getSessionController().showContactList(); } } + Text{ + id: sessionsLabel + anchors{ top: contactListButton.bottom; right: parent.right; } + anchors{ topMargin: 12; leftMargin: 6; bottomMargin: 10; rightMargin: 6} + width: leftPanel.expandedWidth - (contactListButton.anchors.margins * 2) + color: main.useSyspal? syspal.windowText :"white" + text: "Opened sessions:" + } + ListView { id: sessionsView model: leftPanel._model; - anchors{margins: 6; topMargin: 20; top: contactListButton.bottom; right: parent.right; bottom: notificationsView.top} + anchors{margins: 6; topMargin: 20; top: sessionsLabel.bottom; right: parent.right; bottom: notificationsView.top} width: leftPanel.expandedWidth - (contactListButton.anchors.margins * 2) clip: true + Timer { + id: sessionCloseTimer + property variant sessionId:0 + interval: 10; running: false; repeat: false + onTriggered: { + /* this method destroys this ListViewLine (id notificationLine). + invoking this code directly from Button's method onClicked + causes application SEGFAULT! This is workaround, we invoke + it from timer... + */ + main.getSessionController().closeSession(sessionId); + } + } + delegate: ListViewLine{ id: sessionLine width: sessionsView.width property variant sessionId : id - property variant titleText: sessionName - property variant statusText: sessionId + property variant titleText: ((type & Makneto.Session.SessionTypeAudio) || (type & Makneto.Session.SessionTypeVideo)? + "call":"chat")+" with "+sessionName + property variant statusText: lastMessage // sessionId property variant iconSource: icon !== ""? "file:"+ icon : "qrc:/declarative/img/default_avatar.jpg" + property variant titleTextBold: main.getSessionController().getTopScene() == sessionId; + property variant textElide: Text.ElideRight; + MouseArea{ anchors.fill: parent onClicked: { main.getSessionController().activateSession(sessionId); } } + Rectangle { + Image { + source: "img/cross.png" + height: parent.height * 0.8 + anchors{ margins: parent.height*0.1; fill:parent} + } + color: leftPanel.color + height: parent.height + width: height + opacity: .5 + anchors{ margins: parent.height*0.1; right: parent.right; top: parent.top} + //BorderImage { source: "img/lineedit.sci"; anchors.fill: parent } + + MouseArea{ + anchors.fill: parent + onClicked: { + sessionCloseTimer.sessionId = sessionId; + sessionCloseTimer.start(); + } + } + } } } @@ -288,7 +347,8 @@ Rectangle{ Image { id: notificationIcon - source: notificationLine.notificationIcon !== ""? "file:"+ notificationLine.notificationIcon : "qrc:/declarative/img/default_avatar.jpg" + source: notificationLine.notificationIcon !== "" ? + "file:"+ notificationLine.notificationIcon : "qrc:/declarative/img/default_avatar.jpg" width: height anchors{top: titleText.top; bottom: contactText.bottom; left: parent.left} } diff --git a/src/ui-mobile/declarative/ListViewLine.qml b/src/ui-mobile/declarative/ListViewLine.qml index ef1a875..5fa2788 100644 --- a/src/ui-mobile/declarative/ListViewLine.qml +++ b/src/ui-mobile/declarative/ListViewLine.qml @@ -29,6 +29,8 @@ AbstractListViewLine { property variant titleText:"" property variant statusText:"" property variant iconOpacity:1 + property variant titleTextBold: false + property variant textElide: Text.ElideNone SystemPalette{ id: syspal } @@ -58,9 +60,12 @@ AbstractListViewLine { color: main.useSyspal? syspal.windowText :"white" anchors.top: iconImage.top anchors.left: iconImage.right + anchors.right: parent.right anchors.leftMargin: 8 wrapMode: Text.NoWrap - clip: true + font.bold: titleTextBold + clip: textElide == Text.ElideNone? true : false + elide: textElide } Text { id: statusMsg @@ -68,11 +73,13 @@ AbstractListViewLine { color: main.useSyspal? syspal.windowText :"grey" opacity: .6 anchors.left: iconImage.right + anchors.right: parent.right anchors.top: title.bottom anchors.leftMargin: title.anchors.leftMargin wrapMode: Text.NoWrap textFormat: Text.RichText - clip: true + clip: textElide == Text.ElideNone? true : false + elide: textElide } } diff --git a/src/ui-mobile/declarative/SessionControlPanel.qml b/src/ui-mobile/declarative/SessionControlPanel.qml index c013c99..4d3a16f 100644 --- a/src/ui-mobile/declarative/SessionControlPanel.qml +++ b/src/ui-mobile/declarative/SessionControlPanel.qml @@ -24,7 +24,9 @@ TopPanel{ //color: "transparent" //y: 10 //width: height * 3 - height: 40 + + //height: main.toolbarHeight + //anchors.horizontalCenter: parent.horizontalCenter anchors{top: parent.top; left: parent.left; right: parent.right} state: "chat" @@ -48,7 +50,7 @@ TopPanel{ } Rectangle{ - width: height * 3 + width: height * 5 anchors{top: parent.top; bottom: parent.bottom} anchors.horizontalCenter: parent.horizontalCenter color: "transparent" @@ -73,7 +75,9 @@ TopPanel{ source: "img/call-start.png" height: parent.height * 0.8 width: height - anchors{ margins: parent.height*0.1; left: boardIcon.right; top: parent.top } + anchors{ margins: parent.height*0.1; left: boardIcon.right; top: parent.top; + leftMargin:parent.height *.5; } + MouseArea{ anchors.fill: parent onClicked: { @@ -94,7 +98,7 @@ TopPanel{ height: parent.height * 0.8 width: 0 //visible: false - anchors{ margins: 0; left: callIcon.right; top: parent.top } + anchors{ margins: 0; left: callIcon.right; top: parent.top; leftMargin:parent.height *.5} MouseArea{ anchors.fill: parent onClicked: { @@ -104,18 +108,19 @@ TopPanel{ } } - Image { - id: crossIcon - source: "img/cross.svg" - height: parent.height * 0.8 - width: height - anchors{ margins: parent.height*0.1; left: camIcon.right; top: parent.top} - MouseArea{ - anchors.fill: parent - onClicked: { - sessionToolbar.parent.closeSession(); - } + } + Image { + id: crossIcon + source: "img/cross.png" + height: parent.height * 0.8 + width: height + anchors{ margins: parent.height*0.1; right: parent.right; top: parent.top} + + MouseArea{ + anchors.fill: parent + onClicked: { + sessionToolbar.parent.closeSession(); } } } @@ -123,15 +128,15 @@ TopPanel{ states: [ State { name: "chat" - PropertyChanges { target: sessionToolbar; width: height*4} + //PropertyChanges { target: sessionToolbar; width: height*4} PropertyChanges { target: callIcon; source: "img/call-start.png" } PropertyChanges { target: camIcon; anchors.margins: parent.height*0.1; visible: true; width: height; } }, State { name: "call" PropertyChanges { target: callIcon; source: "img/call-end.png";} - PropertyChanges { target: sessionToolbar; width: height*3 } - PropertyChanges { target: camIcon; anchors.margins:0; visible: false; width: 0; } + //PropertyChanges { target: sessionToolbar; width: height*2.5 } + PropertyChanges { target: camIcon; anchors.margins:0; width: 0; } // visible: false; } ] diff --git a/src/ui-mobile/declarative/SessionController.qml b/src/ui-mobile/declarative/SessionController.qml index ed12404..f563244 100644 --- a/src/ui-mobile/declarative/SessionController.qml +++ b/src/ui-mobile/declarative/SessionController.qml @@ -277,6 +277,9 @@ Rectangle { log("request session for "+ managerId+" / "+accountId+" (type "+type+")"); _model.requestSession(managerId, accountId, type); } + function getTopScene(){ + return topScene; + } Component.onCompleted: { scenes = {}; diff --git a/src/ui-mobile/declarative/TopPanel.qml b/src/ui-mobile/declarative/TopPanel.qml index 4fe3065..fc8b1ca 100644 --- a/src/ui-mobile/declarative/TopPanel.qml +++ b/src/ui-mobile/declarative/TopPanel.qml @@ -22,6 +22,7 @@ import QtQuick 1.0 import "components" Item { + height: main.toolbarHeight SystemPalette{ id: syspal } Rectangle{ diff --git a/src/ui-mobile/declarative/img/call-end.png b/src/ui-mobile/declarative/img/call-end.png dissimilarity index 98% index ccccab646e32ba32595a14b64fc57ef2a2046482..c6f0a7d732695ba9386f16da52fe300cd8b0dc0f 100644 GIT binary patch literal 18560 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 diff --git a/src/ui-mobile/declarative/img/call-start.png b/src/ui-mobile/declarative/img/call-start.png dissimilarity index 99% index 5d5536226e7b4a5bd121aba187ba58f0dafc366d..63376e4fe91cbe070038fa0258d493eba2550cb8 100644 GIT binary patch literal 27821 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 Q7XSbN07*qoM6N<$f=T=aL;wH) delta 10232 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�REJ2KvMRu&{Wg(7xQ%nu6hMc=y=ip{{_ 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 uBgiK> + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/src/ui-mobile/declarative/img/cross.png b/src/ui-mobile/declarative/img/cross.png new file mode 100644 index 0000000000000000000000000000000000000000..cdbc51294717288aa3f1d62e3ca1d746930be9de GIT binary patch literal 14384 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 + inkscape:version="0.48.2 r9819" + sodipodi:docname="cross.svg" + inkscape:export-filename="/media/data/cecko/makneto/gitrepo/src/ui-mobile/declarative/img/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + id="defs2986"> + + + + + + + + + + + + + + + + + + inkscape:window-width="1920" + inkscape:window-height="1180" + inkscape:window-x="-4" + inkscape:window-y="-3" + inkscape:window-maximized="1" /> @@ -53,17 +125,42 @@ inkscape:label="Layer 1" inkscape:groupmode="layer" transform="translate(0,96)"> + + + + + id="path2992-8" + d="m 15.171407,-83.141906 c 8.452705,15.84031 21.165162,34.84783 39.591433,53.99145 15.675448,16.28571 35.486046,32.6699103 60.32702,47.286422" + style="fill:none;stroke:#ff9f9f;stroke-width:9.98200035;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> + id="path2994-9" + d="M 11.43296,17.116396 C 49.836987,-3.2751257 86.541724,-36.581276 116.44928,-84.161486" + style="fill:none;stroke:#ff9f9f;stroke-width:9.98200035;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> diff --git a/src/ui-mobile/declarative/mainview.qml b/src/ui-mobile/declarative/mainview.qml index 54c43ec..73eb496 100644 --- a/src/ui-mobile/declarative/mainview.qml +++ b/src/ui-mobile/declarative/mainview.qml @@ -20,6 +20,7 @@ import QtQuick 1.0 import Qt 4.7 import Gst 1.0 +import "components/styles/default" Rectangle{ id: main @@ -29,6 +30,12 @@ Rectangle{ height: 600 property bool useSyspal: true + property int toolbarHeight: fakeTextInput.height*3 + + TextInput{ + id: fakeTextInput + opacity: 1 + } function log(msg){ console.log("II [mainview.qml]: "+msg); diff --git a/src/ui-mobile/resources.qrc b/src/ui-mobile/resources.qrc index 2d2fab3..db1abfe 100644 --- a/src/ui-mobile/resources.qrc +++ b/src/ui-mobile/resources.qrc @@ -82,7 +82,7 @@ declarative/img/cam.svg declarative/img/chat.svg declarative/img/contactList.svg - declarative/img/cross.svg + declarative/img/cross.png declarative/img/fullscreen.png declarative/img/fullscreen.svg declarative/img/lineedit.png @@ -98,6 +98,8 @@ declarative/img/topline.svg declarative/img/keyboard.png declarative/img/message.png + declarative/img/clip-hide.png + declarative/img/clip-show.png declarative/components/ScrollDecorator.qml diff --git a/src/ui-mobile/session-model-item.cpp b/src/ui-mobile/session-model-item.cpp index a69f878..dc23283 100644 --- a/src/ui-mobile/session-model-item.cpp +++ b/src/ui-mobile/session-model-item.cpp @@ -112,6 +112,10 @@ QVariant SessionModelItem::data(int role) { return QVariant(_session->getUniqueName()); case SessionModel::IconRole: return _session->getIcon(); + case SessionModel::TypeRole: + return (int)_session->getSessionType(); + case SessionModel::LastMessageRole: + return lastMessage; case Qt::DisplayRole: case SessionModel::NameRole: return QVariant(_session->getName()); @@ -180,6 +184,7 @@ void SessionModelItem::onMessageReceived(const QString &text, const QString &con emit whiteboardMessageReceived(getId(), text, contact); else { //TODO figure out what to do in case of MUC + lastMessage = text; emit textMessageReceived(getId(), text, contact); } } diff --git a/src/ui-mobile/session-model-item.h b/src/ui-mobile/session-model-item.h index 45a3b3a..9fee4fa 100644 --- a/src/ui-mobile/session-model-item.h +++ b/src/ui-mobile/session-model-item.h @@ -89,6 +89,7 @@ Q_SLOTS: private: struct QueueItem; friend struct QueueItem; + QString lastMessage; MaknetoBackend::Session *_session; QList _queue; diff --git a/src/ui-mobile/session-model.cpp b/src/ui-mobile/session-model.cpp index b664812..f2adbfd 100644 --- a/src/ui-mobile/session-model.cpp +++ b/src/ui-mobile/session-model.cpp @@ -42,6 +42,8 @@ _notificationsModel(notificationsModel) { roles[IdRole] = "id"; roles[NameRole] = "sessionName"; roles[IconRole] = "icon"; + roles[TypeRole] = "type"; + roles[LastMessageRole] = "lastMessage"; setRoleNames(roles); } @@ -59,12 +61,17 @@ void SessionModel::onSessionCreated(MaknetoBackend::Session *session, bool exten connect(item, SIGNAL(textMessageReceived(const QString &, const QString &, const QString &)), this, SIGNAL(textMessageReceived(const QString &, const QString &, const QString &))); + connect(item, SIGNAL(textMessageReceived(const QString &, const QString &, const QString &)), + this, SLOT(onTextMessageReceived(const QString &, const QString &, const QString &))); connect(item, SIGNAL(whiteboardMessageReceived(const QString &, const QString &, const QString &)), this, SIGNAL(whiteboardMessageReceived(const QString &, const QString &, const QString &))); connect(item, SIGNAL(messageEnqueued(const QString &)), SLOT(onMessageEnqueued(const QString &))); connect(item, SIGNAL(sessionTypeChanged(const QString &, int)), this, SIGNAL(sessionTypeChanged(const QString &, int))); + connect(item, SIGNAL(sessionTypeChanged(const QString &, int)), + this, SLOT(onSessionTypeChanged(const QString &, int))); + connect(item, SIGNAL(messageSent(const QString &, const QString &)), this, SIGNAL(messageSent(const QString &, const QString &))); connect(item, SIGNAL(sendingError(const QString &, const QString &, const QString &)), @@ -169,6 +176,24 @@ void SessionModel::onNotificationRemoved(const QString &sessionId, NotificationI } } +void SessionModel::onSessionTypeChanged(const QString &sessionId, int type){ + int row = 0; + for (; row < _items.size(); row++) { + if (_items.at(row)->getId() == sessionId) + break; + } + emit dataChanged( createIndex(row,0,0), createIndex(row,0,0) ); +} + +void SessionModel::onTextMessageReceived(const QString &sessionId, const QString &text, const QString &contact){ + int row = 0; + for (; row < _items.size(); row++) { + if (_items.at(row)->getId() == sessionId) + break; + } + emit dataChanged( createIndex(row,0,0), createIndex(row,0,0) ); +} + void SessionModel::onRejectChat(const QString &sessionId) { // do nothing } diff --git a/src/ui-mobile/session-model.h b/src/ui-mobile/session-model.h index a2911eb..a2efb06 100644 --- a/src/ui-mobile/session-model.h +++ b/src/ui-mobile/session-model.h @@ -48,7 +48,9 @@ public: ItemRole = Qt::UserRole, IdRole, IconRole, - NameRole + NameRole, + TypeRole, + LastMessageRole }; SessionModel(MaknetoBackend::TelepathyClient* client, NotificationsModel* notificationsModel, QObject *parent = 0); @@ -89,7 +91,9 @@ Q_SLOTS: void onAcceptChat(const QString &sessionId); void onRejectChat(const QString &sessionId); void onNotificationRemoved(const QString &sessionId, NotificationItem::NotificationType type); - + void onSessionTypeChanged(const QString &, int); + void onTextMessageReceived(const QString &, const QString &, const QString &); + Q_SIGNALS: void sessionOpened(QString sessionId, bool updatedeExisting, bool requested); void sessionClosed(QString sessionId); diff --git a/src/ui-mobile/view-graber.cpp b/src/ui-mobile/view-graber.cpp index a32fffc..098a512 100644 --- a/src/ui-mobile/view-graber.cpp +++ b/src/ui-mobile/view-graber.cpp @@ -31,6 +31,7 @@ paintSnapshot(false) { } ViewGraber::~ViewGraber() { + //qDebug() << "ViewGraber: destroyed"; } void ViewGraber::takeSnapshot() { -- 2.11.4.GIT