-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