Fixed inconsistent module import versions (based on Qt 5.9)
authorDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Sun, 8 Dec 2019 10:32:22 +0000 (11:32 +0100)
committerDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Sun, 8 Dec 2019 10:32:22 +0000 (11:32 +0100)
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
src/gui/tray/UserLine.qml
src/gui/tray/window.qml

index fa80d2a2bd2500872efbf5f22a6ec25c50353c1c..7dd648fda9dd1d50741b64fb0dfec9ad90ed8658 100644 (file)
@@ -1,91 +1,91 @@
-import QtQuick 2.9
-import QtQuick.Window 2.2
-import QtQuick.Controls 2.2
-import QtQuick.Layouts 1.3
-
-MenuItem {
-
-    Connections {
-        target: systrayBackend
-        onRefreshUserMenu: {
-            userLine.visible = isCurrentUser ? false : true
-            userLine.height = isCurrentUser ? 0 : 60
-        }
-    }
-
-    id: userLine
-    visible: isCurrentUser ? false : true
-    width: 216
-    height: isCurrentUser ? 0 : 60
-    //color: "transparent"
-
-    Rectangle {
-        id: userLineBackground
-        height: userLine.height
-        anchors.fill: parent
-        color: "transparent"
-
-        RowLayout {
-            id: userLineLayout
-            spacing: 0
-            anchors.fill: parent
-
-            Button {
-                id: accountButton
-                anchors.centerIn: parent
-                Layout.preferredWidth: (userLine.width - 4)
-                Layout.preferredHeight: (userLineBackground.height - 2)
-                display: AbstractButton.IconOnly
-                flat: true
-
-                background: Rectangle {
-                    color: "transparent"
-                }
-
-                onClicked: {
-                    systrayBackend.switchCurrentUser(index)
-                }
-
-                RowLayout {
-                    id: accountControlRowLayout
-                    height: accountButton.height
-                    width: accountButton.width
-                    spacing: 0
-                    Image {
-                        id: accountAvatar
-                        Layout.leftMargin: 4
-                        verticalAlignment: Qt.AlignCenter
-                        source: ("image://avatars/" + index)
-                        Layout.preferredHeight: (userLineBackground.height -16)
-                        Layout.preferredWidth: (userLineBackground.height -16)
-                    }
-
-                    Column {
-                        id: accountLabels
-                        spacing: 4
-                        Layout.alignment: Qt.AlignLeft
-                        Layout.leftMargin: 12
-                        Label {
-                            id: accountUser
-                            text: name
-                            color: "black"
-                            font.pointSize: 9
-                            font.bold: true
-                        }
-                        Label {
-                            id: accountServer
-                            text: server
-                            color: "black"
-                            font.pointSize: 8
-                        }
-                    }
-
-                    Item {
-                        id: userLineSpacer
-                        Layout.fillWidth: true
-                    }
-                }
-            }
-        }
-    }   // Rectangle userLineBackground
-}   // MenuItem userLine
+import QtQuick 2.9\r
+import QtQuick.Window 2.2\r
+import QtQuick.Controls 2.2\r
+import QtQuick.Layouts 1.2\r
+\r
+MenuItem {\r
+\r
+    Connections {\r
+        target: systrayBackend\r
+        onRefreshUserMenu: {\r
+            userLine.visible = isCurrentUser ? false : true\r
+            userLine.height = isCurrentUser ? 0 : 60\r
+        }\r
+    }\r
+\r
+    id: userLine\r
+    visible: isCurrentUser ? false : true\r
+    width: 216\r
+    height: isCurrentUser ? 0 : 60\r
+    //color: "transparent"\r
+\r
+    Rectangle {\r
+        id: userLineBackground\r
+        height: userLine.height\r
+        anchors.fill: parent\r
+        color: "transparent"\r
+\r
+        RowLayout {\r
+            id: userLineLayout\r
+            spacing: 0\r
+            anchors.fill: parent\r
+\r
+            Button {\r
+                id: accountButton\r
+                anchors.centerIn: parent\r
+                Layout.preferredWidth: (userLine.width - 4)\r
+                Layout.preferredHeight: (userLineBackground.height - 2)\r
+                display: AbstractButton.IconOnly\r
+                flat: true\r
+\r
+                background: Rectangle {\r
+                    color: "transparent"\r
+                }\r
+\r
+                onClicked: {\r
+                    systrayBackend.switchCurrentUser(index)\r
+                }\r
+\r
+                RowLayout {\r
+                    id: accountControlRowLayout\r
+                    height: accountButton.height\r
+                    width: accountButton.width\r
+                    spacing: 0\r
+                    Image {\r
+                        id: accountAvatar\r
+                        Layout.leftMargin: 4\r
+                        verticalAlignment: Qt.AlignCenter\r
+                        source: avatar\r
+                        Layout.preferredHeight: (userLineBackground.height -16)\r
+                        Layout.preferredWidth: (userLineBackground.height -16)\r
+                    }\r
+\r
+                    Column {\r
+                        id: accountLabels\r
+                        spacing: 4\r
+                        Layout.alignment: Qt.AlignLeft\r
+                        Layout.leftMargin: 12\r
+                        Label {\r
+                            id: accountUser\r
+                            text: name\r
+                            color: "black"\r
+                            font.pointSize: 9\r
+                            font.bold: true\r
+                        }\r
+                        Label {\r
+                            id: accountServer\r
+                            text: server\r
+                            color: "black"\r
+                            font.pointSize: 8\r
+                        }\r
+                    }\r
+\r
+                    Item {\r
+                        id: userLineSpacer\r
+                        Layout.fillWidth: true\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }   // Rectangle userLineBackground\r
+}   // MenuItem userLine\r
index 91584260749c77142b14d8e7849577d727c78263..45d2455d3fb7fbfdeabebea52ebc5aa8540e5492 100644 (file)
-import QtQml 2.2
-import QtQuick 2.9
-import QtQuick.Window 2.2
-import QtQuick.Controls 2.2
-import QtQuick.Layouts 1.3
-import QtGraphicalEffects 1.0
-
-Window {
-
-    id: trayWindow
-    visible: true
-    width: 400
-    height: 500
-    color: "transparent"
-    flags: Qt.FramelessWindowHint
-
-    Component.onCompleted: {
-        /* desktopAvailableWidth and Height doesn't include the system tray bar
-               but breaks application anyway on windows when using multi monitor setup,
-               will look for a better solution later, for now just get this thing complete */
-        //setX(Screen.desktopAvailableWidth - width);
-        //setY(Screen.desktopAvailableHeight + height);
-    }
-
-    Connections {
-        target: systrayBackend
-        onRefreshCurrentUserGui: {
-            currentAccountAvatar.source = ""
-            currentAccountAvatar.source = "image://avatars/currentUser"
-            currentAccountUser.text = systrayBackend.currentUserName()
-            currentAccountServer.text = systrayBackend.currentUserServer()
-        }
-        onNewUserSelected: {
-            accountMenu.close()
-        }
-    }
-
-    Rectangle {
-        id: trayWindowBackground
-        anchors.fill: parent
-        radius: 10
-
-        Rectangle {
-            id: trayWindowHeaderBackground
-            anchors.left: trayWindowBackground.left
-            anchors.top: trayWindowBackground.top
-            height: 60
-            width: parent.width
-            radius: 9
-            color: "#0082c9"
-
-            Rectangle {
-                anchors.left: trayWindowHeaderBackground.left
-                anchors.bottom: trayWindowHeaderBackground.bottom
-                height: 30
-                width: parent.width
-                color: "#0082c9"
-            }
-
-            RowLayout {
-                id: trayWindowHeaderLayout
-                spacing: 0
-                anchors.fill: parent
-
-                Button {
-                    id: currentAccountButton
-                    Layout.preferredWidth: 220
-                    Layout.maximumWidth: 220
-                    Layout.preferredHeight: (trayWindowHeaderBackground.height)
-                    display: AbstractButton.IconOnly
-                    flat: true
-
-                    MouseArea {
-                        id: accountBtnMouseArea
-                        anchors.fill: parent
-                        hoverEnabled: true
-                        onClicked:
-                        {
-                            accountMenuLoginLogout.text = (systrayBackend.isCurrentUserConnected() ? "Logout" : "Login")
-                            accountMenu.open()
-                        }
-
-                        Menu {
-                            id: accountMenu
-                            x: (currentAccountButton.x + 2)
-                            y: (currentAccountButton.y + currentAccountButton.height + 2)
-                            width: (currentAccountButton.width - 4)
-
-                            background: Rectangle {
-                                border.color: "#0082c9"
-                                radius: 2
-                            }
-
-                            Instantiator {
-                                model: systrayBackend
-                                delegate: UserLine {}
-                                onObjectAdded: accountMenu.insertItem(index, object)
-                                onObjectRemoved: accountMenu.removeItem(object)
-                            }
-
-                            MenuSeparator { id: accountMenuSeparator }
-
-                            MenuItem {
-                                id: accountMenuLoginLogout
-                                onClicked: (systrayBackend.isCurrentUserConnected()
-                                            ? systrayBackend.logout()
-                                            : systrayBackend.login() )
-                            }
-                            MenuItem {
-                                text: "Add Account"
-                                onClicked: systrayBackend.addAccount()
-                            }
-                            MenuItem {
-                                text: "Remove Account"
-                                onClicked: systrayBackend.removeAccount()
-                            }
-
-                            Component.onCompleted: {
-                                if(systrayBackend.numUsers() === 0) {
-                                    accountMenuSeparator.height = 0
-                                } else {
-                                    accountMenuSeparator.height = 13
-                                }
-                            }
-                        }
-                    }
-
-                    background:
-                        Item {
-                        id: leftHoverContainer
-                        height: currentAccountButton.height
-                        width: currentAccountButton.width
-                        Rectangle {
-                            width: currentAccountButton.width / 2
-                            height: currentAccountButton.height / 2
-                            color: "transparent"
-                            clip: true
-                            Rectangle {
-                                width: currentAccountButton.width
-                                height: currentAccountButton.height
-                                radius: 10
-                                color: "white"
-                                opacity: 0.2
-                                visible: accountBtnMouseArea.containsMouse
-                            }
-                        }
-                        Rectangle {
-                            width: currentAccountButton.width / 2
-                            height: currentAccountButton.height / 2
-                            anchors.bottom: leftHoverContainer.bottom
-                            color: "white"
-                            opacity: 0.2
-                            visible: accountBtnMouseArea.containsMouse
-                        }
-                        Rectangle {
-                            width: currentAccountButton.width / 2
-                            height: currentAccountButton.height / 2
-                            anchors.right: leftHoverContainer.right
-                            color: "white"
-                            opacity: 0.2
-                            visible: accountBtnMouseArea.containsMouse
-                        }
-                        Rectangle {
-                            width: currentAccountButton.width / 2
-                            height: currentAccountButton.height / 2
-                            anchors.right: leftHoverContainer.right
-                            anchors.bottom: leftHoverContainer.bottom
-                            color: "white"
-                            opacity: 0.2
-                            visible: accountBtnMouseArea.containsMouse
-                        }
-                    }
-
-                    RowLayout {
-                        id: accountControlRowLayout
-                        height: currentAccountButton.height
-                        width: currentAccountButton.width
-                        spacing: 0
-                        Image {
-                            id: currentAccountAvatar
-                            Layout.leftMargin: 8
-                            verticalAlignment: Qt.AlignCenter
-                            cache: false
-                            source: "image://avatars/currentUser"
-                            Layout.preferredHeight: (trayWindowHeaderBackground.height -16)
-                            Layout.preferredWidth: (trayWindowHeaderBackground.height -16)
-                        }
-
-                        Column {
-                            id: accountLabels
-                            spacing: 4
-                            Layout.alignment: Qt.AlignLeft
-                            Layout.leftMargin: 6
-                            Label {
-                                id: currentAccountUser
-                                text: systrayBackend.currentUserName()
-                                color: "white"
-                                font.pointSize: 9
-                                font.bold: true
-                            }
-                            Label {
-                                id: currentAccountServer
-                                text: systrayBackend.currentUserServer()
-                                color: "white"
-                                font.pointSize: 8
-                            }
-                        }
-
-                        Item {
-                            id: trayWindowHeaderSpacer
-                            Layout.fillWidth: true
-                        }
-
-                        Image {
-                            Layout.alignment: Qt.AlignLeft
-                            verticalAlignment: Qt.AlignCenter
-                            Layout.margins: 12
-                            source: "qrc:///client/theme/white/caret-down.svg"
-                        }
-                    }
-                }
-
-                Button {
-                    id: openLocalFolderButton
-                    Layout.alignment: Qt.AlignRight
-                    display: AbstractButton.IconOnly
-                    Layout.preferredWidth: (trayWindowHeaderBackground.height)
-                    Layout.preferredHeight: (trayWindowHeaderBackground.height)
-                    flat: true
-
-                    icon.source: "qrc:///client/theme/white/folder.svg"
-                    icon.color: "transparent"
-
-                    MouseArea {
-                        id: folderBtnMouseArea
-                        anchors.fill: parent
-                        hoverEnabled: true
-                        onClicked:
-                        {
-                            systrayBackend.openLocalFolder()
-                        }
-                    }
-
-                    background:
-                        Rectangle {
-                        color: folderBtnMouseArea.containsMouse ? "white" : "transparent"
-                        opacity: 0.2
-                    }
-                }
-
-                Button {
-                    id: trayWindowTalkButton
-                    Layout.alignment: Qt.AlignRight
-                    display: AbstractButton.IconOnly
-                    Layout.preferredWidth: (trayWindowHeaderBackground.height)
-                    Layout.preferredHeight: (trayWindowHeaderBackground.height)
-                    flat: true
-
-                    icon.source: "qrc:///client/theme/white/talk-app.svg"
-                    icon.color: "transparent"
-
-                    MouseArea {
-                        id: talkBtnMouseArea
-                        anchors.fill: parent
-                        hoverEnabled: true
-                        onClicked:
-                        {
-                        }
-                    }
-
-                    background:
-                        Rectangle {
-                        color: talkBtnMouseArea.containsMouse ? "white" : "transparent"
-                        opacity: 0.2
-                    }
-                }
-
-                Button {
-                    id: trayWindowAppsButton
-                    Layout.alignment: Qt.AlignRight
-                    display: AbstractButton.IconOnly
-                    Layout.preferredWidth: (trayWindowHeaderBackground.height)
-                    Layout.preferredHeight: (trayWindowHeaderBackground.height)
-                    flat: true
-
-                    icon.source: "qrc:///client/theme/white/more-apps.svg"
-                    icon.color: "transparent"
-
-                    MouseArea {
-                        id: appsBtnMouseArea
-                        anchors.fill: parent
-                        hoverEnabled: true
-                        onClicked:
-                        {
-                        }
-                    }
-
-                    background:
-                        Item {
-                        id: rightHoverContainer
-                        height: trayWindowAppsButton.height
-                        width: trayWindowAppsButton.width
-                        Rectangle {
-                            width: trayWindowAppsButton.width / 2
-                            height: trayWindowAppsButton.height / 2
-                            color: "white"
-                            opacity: 0.2
-                            visible: appsBtnMouseArea.containsMouse
-                        }
-                        Rectangle {
-                            width: trayWindowAppsButton.width / 2
-                            height: trayWindowAppsButton.height / 2
-                            anchors.bottom: rightHoverContainer.bottom
-                            color: "white"
-                            opacity: 0.2
-                            visible: appsBtnMouseArea.containsMouse
-                        }
-                        Rectangle {
-                            width: trayWindowAppsButton.width / 2
-                            height: trayWindowAppsButton.height / 2
-                            anchors.bottom: rightHoverContainer.bottom
-                            anchors.right: rightHoverContainer.right
-                            color: "white"
-                            opacity: 0.2
-                            visible: appsBtnMouseArea.containsMouse
-                        }
-                        Rectangle {
-                            id: rightHoverContainerClipper
-                            anchors.right: rightHoverContainer.right
-                            width: trayWindowAppsButton.width / 2
-                            height: trayWindowAppsButton.height / 2
-                            color: "transparent"
-                            clip: true
-                            Rectangle {
-                                width: trayWindowAppsButton.width
-                                height: trayWindowAppsButton.height
-                                anchors.right: rightHoverContainerClipper.right
-                                radius: 10
-                                color: "white"
-                                opacity: 0.2
-                                visible: appsBtnMouseArea.containsMouse
-                            }
-                        }
-                    }
-                }
-            }
-        }   // Rectangle trayWindowHeaderBackground
-
-        ListModel {
-            id: activityListModel
-        }
-
-        ListView {
-            id: activityListView
-            anchors.top: trayWindowHeaderBackground.bottom
-            width:  trayWindowBackground.width
-            height: trayWindowBackground.height - trayWindowHeaderBackground.height
-            clip: true
-
-            model: activityListModel
-
-            delegate: RowLayout {
-                id: activityItem
-                width: activityListView.width
-                height: trayWindowHeaderLayout.height
-                spacing: 0
-                Image {
-                    id: activityIcon
-                    Layout.leftMargin: 6
-                    Layout.preferredWidth: 48
-                    Layout.preferredHeight: 48
-                    verticalAlignment: Qt.AlignCenter
-                    source: "qrc:///client/theme/black/state-sync.svg"
-                    sourceSize.height: 48
-                    sourceSize.width: 48
-                }
-                Column {
-                    Layout.leftMargin: 6
-                    spacing: 4
-                    Layout.alignment: Qt.AlignLeft
-                    Text {
-                        id: activityTextTitle
-                        text: name
-                        font.pointSize: 9
-                    }
-                    Text {
-                        id: activityTextInfo
-                        text: "Lorem ipsum dolor sit amet"
-                        font.pointSize: 8
-                    }
-                }
-                Item {
-                    id: activityItemFiller
-                    Layout.fillWidth: true
-                }
-                Button {
-                    Layout.preferredWidth: activityItem.height
-                    Layout.preferredHeight: activityItem.height
-                    Layout.alignment: Qt.AlignRight
-                    flat: true
-                    display: AbstractButton.IconOnly
-                    icon.source: "qrc:///client/resources/files.svg"
-                    icon.color: "transparent"
-                }
-                Button {
-                    Layout.preferredWidth: activityItem.height
-                    Layout.preferredHeight: activityItem.height
-                    Layout.alignment: Qt.AlignRight
-                    flat: true
-                    display: AbstractButton.IconOnly
-                    icon.source: "qrc:///client/resources/public.svg"
-                    icon.color: "transparent"
-                }
-            }
-
-            add: Transition {
-                NumberAnimation { properties: "y"; from: -60; duration: 100; easing.type: Easing.Linear }
-            }
-
-            remove: Transition {
-                NumberAnimation { property: "opacity"; from: 1.0; to: 0; duration: 100 }
-            }
-
-            removeDisplaced: Transition {
-                SequentialAnimation {
-                    PauseAnimation { duration: 100}
-                    NumberAnimation { properties: "y"; duration: 100; easing.type: Easing.Linear }
-                }
-            }
-
-            displaced: Transition {
-                NumberAnimation { properties: "y"; duration: 100; easing.type: Easing.Linear }
-            }
-
-            focus: true
-
-            // For interactive ListView/Animation testing only
-            //Keys.onSpacePressed: model.insert(0, { "name": "Item " + model.count })
-            //Keys.onTabPressed: model.remove(3)
-        }
-
-    }       // Rectangle trayWindowBackground
-}
+import QtQml 2.0\r
+import QtQuick 2.9\r
+import QtQuick.Window 2.2\r
+import QtQuick.Controls 2.2\r
+import QtQuick.Layouts 1.2\r
+import QtGraphicalEffects 1.0\r
+\r
+Window {\r
+\r
+    id: trayWindow\r
+    visible: true\r
+    width: 400\r
+    height: 500\r
+    color: "transparent"\r
+    flags: Qt.FramelessWindowHint\r
+\r
+    Component.onCompleted: {\r
+        /* desktopAvailableWidth and Height doesn't include the system tray bar\r
+               but breaks application anyway on windows when using multi monitor setup,\r
+               will look for a better solution later, for now just get this thing complete */\r
+        //setX(Screen.desktopAvailableWidth - width);\r
+        //setY(Screen.desktopAvailableHeight + height);\r
+    }\r
+\r
+    Connections {\r
+        target: systrayBackend\r
+        onRefreshCurrentUserGui: {\r
+            currentAccountAvatar.source = systrayBackend.currentUserAvatar()\r
+            currentAccountUser.text = systrayBackend.currentUserName()\r
+            currentAccountServer.text = systrayBackend.currentUserServer()\r
+        }\r
+        onNewUserSelected: {\r
+            accountMenu.close()\r
+        }\r
+    }\r
+\r
+    Rectangle {\r
+        id: trayWindowBackground\r
+        anchors.fill: parent\r
+        radius: 10\r
+\r
+        Rectangle {\r
+            id: trayWindowHeaderBackground\r
+            anchors.left: trayWindowBackground.left\r
+            anchors.top: trayWindowBackground.top\r
+            height: 60\r
+            width: parent.width\r
+            radius: 9\r
+            color: "#0082c9"\r
+\r
+            Rectangle {\r
+                anchors.left: trayWindowHeaderBackground.left\r
+                anchors.bottom: trayWindowHeaderBackground.bottom\r
+                height: 30\r
+                width: parent.width\r
+                color: "#0082c9"\r
+            }\r
+\r
+            RowLayout {\r
+                id: trayWindowHeaderLayout\r
+                spacing: 0\r
+                anchors.fill: parent\r
+\r
+                Button {\r
+                    id: currentAccountButton\r
+                    Layout.preferredWidth: 220\r
+                    Layout.preferredHeight: (trayWindowHeaderBackground.height)\r
+                    display: AbstractButton.IconOnly\r
+                    flat: true\r
+\r
+                    MouseArea {\r
+                        id: accountBtnMouseArea\r
+                        anchors.fill: parent\r
+                        hoverEnabled: true\r
+                        onClicked:\r
+                        {\r
+                            accountMenu.open()\r
+                        }\r
+\r
+                        Menu {\r
+                            id: accountMenu\r
+                            x: (currentAccountButton.x + 2)\r
+                            y: (currentAccountButton.y + currentAccountButton.height + 2)\r
+                            width: (currentAccountButton.width - 4)\r
+\r
+                            background: Rectangle {\r
+                                border.color: "#0082c9"\r
+                                radius: 2\r
+                            }\r
+\r
+                            Instantiator {\r
+                                model: systrayBackend\r
+                                delegate: UserLine {}\r
+                                onObjectAdded: accountMenu.insertItem(index, object)\r
+                                onObjectRemoved: accountMenu.removeItem(object)\r
+                            }\r
+\r
+                            MenuSeparator { id: accountMenuSeparator }\r
+\r
+                            MenuItem {\r
+                                text: (systrayBackend.isCurrentUserConnected() ? "Logout" : "Login")\r
+                                onClicked: (systrayBackend.isCurrentUserConnected()\r
+                                            ? systrayBackend.logout()\r
+                                            : systrayBackend.login() )\r
+                            }\r
+                            MenuItem {\r
+                                text: "Add Account"\r
+                                onClicked: systrayBackend.addAccount()\r
+                            }\r
+                            MenuItem {\r
+                                text: "Remove Account"\r
+                                onClicked: systrayBackend.removeAccount()\r
+                            }\r
+\r
+                            Component.onCompleted: {\r
+                                if(systrayBackend.numUsers() === 0) {\r
+                                    accountMenuSeparator.height = 0\r
+                                } else {\r
+                                    accountMenuSeparator.height = 13\r
+                                }\r
+                            }\r
+                        }\r
+                    }\r
+\r
+                    background:\r
+                        Item {\r
+                        id: leftHoverContainer\r
+                        height: currentAccountButton.height\r
+                        width: currentAccountButton.width\r
+                        Rectangle {\r
+                            width: currentAccountButton.width / 2\r
+                            height: currentAccountButton.height / 2\r
+                            color: "transparent"\r
+                            clip: true\r
+                            Rectangle {\r
+                                width: currentAccountButton.width\r
+                                height: currentAccountButton.height\r
+                                radius: 10\r
+                                color: "white"\r
+                                opacity: 0.2\r
+                                visible: accountBtnMouseArea.containsMouse\r
+                            }\r
+                        }\r
+                        Rectangle {\r
+                            width: currentAccountButton.width / 2\r
+                            height: currentAccountButton.height / 2\r
+                            anchors.bottom: leftHoverContainer.bottom\r
+                            color: "white"\r
+                            opacity: 0.2\r
+                            visible: accountBtnMouseArea.containsMouse\r
+                        }\r
+                        Rectangle {\r
+                            width: currentAccountButton.width / 2\r
+                            height: currentAccountButton.height / 2\r
+                            anchors.right: leftHoverContainer.right\r
+                            color: "white"\r
+                            opacity: 0.2\r
+                            visible: accountBtnMouseArea.containsMouse\r
+                        }\r
+                        Rectangle {\r
+                            width: currentAccountButton.width / 2\r
+                            height: currentAccountButton.height / 2\r
+                            anchors.right: leftHoverContainer.right\r
+                            anchors.bottom: leftHoverContainer.bottom\r
+                            color: "white"\r
+                            opacity: 0.2\r
+                            visible: accountBtnMouseArea.containsMouse\r
+                        }\r
+                    }\r
+\r
+                    RowLayout {\r
+                        id: accountControlRowLayout\r
+                        height: currentAccountButton.height\r
+                        width: currentAccountButton.width\r
+                        spacing: 0\r
+                        Image {\r
+                            id: currentAccountAvatar\r
+                            Layout.leftMargin: 8\r
+                            verticalAlignment: Qt.AlignCenter\r
+                            source: systrayBackend.currentUserAvatar()\r
+                            Layout.preferredHeight: (trayWindowHeaderBackground.height -16)\r
+                            Layout.preferredWidth: (trayWindowHeaderBackground.height -16)\r
+                        }\r
+\r
+                        Column {\r
+                            id: accountLabels\r
+                            spacing: 4\r
+                            Layout.alignment: Qt.AlignLeft\r
+                            Layout.leftMargin: 6\r
+                            Label {\r
+                                id: currentAccountUser\r
+                                text: systrayBackend.currentUserName()\r
+                                color: "white"\r
+                                font.pointSize: 9\r
+                                font.bold: true\r
+                            }\r
+                            Label {\r
+                                id: currentAccountServer\r
+                                text: systrayBackend.currentUserServer()\r
+                                color: "white"\r
+                                font.pointSize: 8\r
+                            }\r
+                        }\r
+\r
+                        Image {\r
+                            Layout.alignment: Qt.AlignLeft\r
+                            verticalAlignment: Qt.AlignCenter\r
+                            Layout.margins: 12\r
+                            //source: "../../theme/white/caret-down.svg"\r
+                            source: "qrc:///client/theme/white/caret-down.svg"\r
+                        }\r
+                    }\r
+                }\r
+\r
+                Item {\r
+                    id: trayWindowHeaderSpacer\r
+                    Layout.fillWidth: true\r
+                }\r
+\r
+                Button {\r
+                    id: openLocalFolderButton\r
+                    Layout.alignment: Qt.AlignRight\r
+                    display: AbstractButton.IconOnly\r
+                    Layout.preferredWidth: (trayWindowHeaderBackground.height)\r
+                    Layout.preferredHeight: (trayWindowHeaderBackground.height)\r
+                    flat: true\r
+\r
+                    //icon.source: "../../theme/white/folder.svg"\r
+                    icon.source: "qrc:///client/theme/white/folder.svg"\r
+                    icon.color: "transparent"\r
+\r
+                    MouseArea {\r
+                        id: folderBtnMouseArea\r
+                        anchors.fill: parent\r
+                        hoverEnabled: true\r
+                        onClicked:\r
+                        {\r
+                        }\r
+                    }\r
+\r
+                    background:\r
+                        Rectangle {\r
+                        color: folderBtnMouseArea.containsMouse ? "white" : "transparent"\r
+                        opacity: 0.2\r
+                    }\r
+                }\r
+\r
+                Button {\r
+                    id: trayWindowTalkButton\r
+                    Layout.alignment: Qt.AlignRight\r
+                    display: AbstractButton.IconOnly\r
+                    Layout.preferredWidth: (trayWindowHeaderBackground.height)\r
+                    Layout.preferredHeight: (trayWindowHeaderBackground.height)\r
+                    flat: true\r
+\r
+                    //icon.source: "../../theme/white/talk-app.svg"\r
+                    icon.source: "qrc:///client/theme/white/talk-app.svg"\r
+                    icon.color: "transparent"\r
+\r
+                    MouseArea {\r
+                        id: talkBtnMouseArea\r
+                        anchors.fill: parent\r
+                        hoverEnabled: true\r
+                        onClicked:\r
+                        {\r
+                        }\r
+                    }\r
+\r
+                    background:\r
+                        Rectangle {\r
+                        color: talkBtnMouseArea.containsMouse ? "white" : "transparent"\r
+                        opacity: 0.2\r
+                    }\r
+                }\r
+\r
+                Button {\r
+                    id: trayWindowAppsButton\r
+                    Layout.alignment: Qt.AlignRight\r
+                    display: AbstractButton.IconOnly\r
+                    Layout.preferredWidth: (trayWindowHeaderBackground.height)\r
+                    Layout.preferredHeight: (trayWindowHeaderBackground.height)\r
+                    flat: true\r
+\r
+                    //icon.source: "../../theme/white/more-apps.svg"\r
+                    icon.source: "qrc:///client/theme/white/more-apps.svg"\r
+                    icon.color: "transparent"\r
+\r
+                    MouseArea {\r
+                        id: appsBtnMouseArea\r
+                        anchors.fill: parent\r
+                        hoverEnabled: true\r
+                        onClicked:\r
+                        {\r
+                        }\r
+                    }\r
+\r
+                    background:\r
+                        Item {\r
+                        id: rightHoverContainer\r
+                        height: trayWindowAppsButton.height\r
+                        width: trayWindowAppsButton.width\r
+                        Rectangle {\r
+                            width: trayWindowAppsButton.width / 2\r
+                            height: trayWindowAppsButton.height / 2\r
+                            color: "white"\r
+                            opacity: 0.2\r
+                            visible: appsBtnMouseArea.containsMouse\r
+                        }\r
+                        Rectangle {\r
+                            width: trayWindowAppsButton.width / 2\r
+                            height: trayWindowAppsButton.height / 2\r
+                            anchors.bottom: rightHoverContainer.bottom\r
+                            color: "white"\r
+                            opacity: 0.2\r
+                            visible: appsBtnMouseArea.containsMouse\r
+                        }\r
+                        Rectangle {\r
+                            width: trayWindowAppsButton.width / 2\r
+                            height: trayWindowAppsButton.height / 2\r
+                            anchors.bottom: rightHoverContainer.bottom\r
+                            anchors.right: rightHoverContainer.right\r
+                            color: "white"\r
+                            opacity: 0.2\r
+                            visible: appsBtnMouseArea.containsMouse\r
+                        }\r
+                        Rectangle {\r
+                            id: rightHoverContainerClipper\r
+                            anchors.right: rightHoverContainer.right\r
+                            width: trayWindowAppsButton.width / 2\r
+                            height: trayWindowAppsButton.height / 2\r
+                            color: "transparent"\r
+                            clip: true\r
+                            Rectangle {\r
+                                width: trayWindowAppsButton.width\r
+                                height: trayWindowAppsButton.height\r
+                                anchors.right: rightHoverContainerClipper.right\r
+                                radius: 10\r
+                                color: "white"\r
+                                opacity: 0.2\r
+                                visible: appsBtnMouseArea.containsMouse\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+        }   // Rectangle trayWindowHeaderBackground\r
+\r
+        ListModel {\r
+            id: activityListModel\r
+        }\r
+\r
+        ListView {\r
+            id: activityListView\r
+            anchors.top: trayWindowHeaderBackground.bottom\r
+            width:  trayWindowBackground.width\r
+            height: trayWindowBackground.height - trayWindowHeaderBackground.height\r
+            clip: true\r
+\r
+            model: activityListModel\r
+\r
+            delegate: RowLayout {\r
+                id: activityItem\r
+                width: activityListView.width\r
+                height: trayWindowHeaderLayout.height\r
+                spacing: 0\r
+                Image {\r
+                    id: activityIcon\r
+                    Layout.leftMargin: 6\r
+                    Layout.preferredWidth: 48\r
+                    Layout.preferredHeight: 48\r
+                    verticalAlignment: Qt.AlignCenter\r
+                    source: "qrc:///client/theme/black/state-sync.svg"\r
+                    sourceSize.height: 48\r
+                    sourceSize.width: 48\r
+                }\r
+                Column {\r
+                    Layout.leftMargin: 6\r
+                    spacing: 4\r
+                    Layout.alignment: Qt.AlignLeft\r
+                    Text {\r
+                        id: activityTextTitle\r
+                        text: name\r
+                        font.pointSize: 9\r
+                    }\r
+                    Text {\r
+                        id: activityTextInfo\r
+                        text: "Lorem ipsum dolor sit amet"\r
+                        font.pointSize: 8\r
+                    }\r
+                }\r
+                Item {\r
+                    id: activityItemFiller\r
+                    Layout.fillWidth: true\r
+                }\r
+                Button {\r
+                    Layout.preferredWidth: activityItem.height\r
+                    Layout.preferredHeight: activityItem.height\r
+                    Layout.alignment: Qt.AlignRight\r
+                    flat: true\r
+                    display: AbstractButton.IconOnly\r
+                    icon.source: "qrc:///client/resources/files.svg"\r
+                    icon.color: "transparent"\r
+                }\r
+                Button {\r
+                    Layout.preferredWidth: activityItem.height\r
+                    Layout.preferredHeight: activityItem.height\r
+                    Layout.alignment: Qt.AlignRight\r
+                    flat: true\r
+                    display: AbstractButton.IconOnly\r
+                    icon.source: "qrc:///client/resources/public.svg"\r
+                    icon.color: "transparent"\r
+                }\r
+            }\r
+\r
+            add: Transition {\r
+                NumberAnimation { properties: "y"; from: -60; duration: 100; easing.type: Easing.Linear }\r
+            }\r
+\r
+            remove: Transition {\r
+                NumberAnimation { property: "opacity"; from: 1.0; to: 0; duration: 100 }\r
+            }\r
+\r
+            removeDisplaced: Transition {\r
+                SequentialAnimation {\r
+                    PauseAnimation { duration: 100}\r
+                    NumberAnimation { properties: "y"; duration: 100; easing.type: Easing.Linear }\r
+                }\r
+            }\r
+\r
+            displaced: Transition {\r
+                NumberAnimation { properties: "y"; duration: 100; easing.type: Easing.Linear }\r
+            }\r
+\r
+            focus: true\r
+\r
+            // For interactive ListView/Animation testing only\r
+            //Keys.onSpacePressed: model.insert(0, { "name": "Item " + model.count })\r
+            //Keys.onTabPressed: model.remove(3)\r
+        }\r
+\r
+    }       // Rectangle trayWindowBackground\r
+}\r