From: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com> Date: Sun, 8 Dec 2019 10:32:22 +0000 (+0100) Subject: Fixed inconsistent module import versions (based on Qt 5.9) X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~222^2^2~413^2~99 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=ae7eddf7c937888cff8953c7aae9b99630ae9420;p=nextcloud-desktop.git Fixed inconsistent module import versions (based on Qt 5.9) Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com> --- diff --git a/src/gui/tray/UserLine.qml b/src/gui/tray/UserLine.qml index fa80d2a2b..7dd648fda 100644 --- a/src/gui/tray/UserLine.qml +++ b/src/gui/tray/UserLine.qml @@ -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 +import QtQuick.Window 2.2 +import QtQuick.Controls 2.2 +import QtQuick.Layouts 1.2 + +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: avatar + 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 diff --git a/src/gui/tray/window.qml b/src/gui/tray/window.qml index 915842607..45d2455d3 100644 --- a/src/gui/tray/window.qml +++ b/src/gui/tray/window.qml @@ -1,443 +1,442 @@ -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 +import QtQuick 2.9 +import QtQuick.Window 2.2 +import QtQuick.Controls 2.2 +import QtQuick.Layouts 1.2 +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 = systrayBackend.currentUserAvatar() + 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.preferredHeight: (trayWindowHeaderBackground.height) + display: AbstractButton.IconOnly + flat: true + + MouseArea { + id: accountBtnMouseArea + anchors.fill: parent + hoverEnabled: true + onClicked: + { + 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 { + text: (systrayBackend.isCurrentUserConnected() ? "Logout" : "Login") + 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 + source: systrayBackend.currentUserAvatar() + 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 + } + } + + Image { + Layout.alignment: Qt.AlignLeft + verticalAlignment: Qt.AlignCenter + Layout.margins: 12 + //source: "../../theme/white/caret-down.svg" + source: "qrc:///client/theme/white/caret-down.svg" + } + } + } + + Item { + id: trayWindowHeaderSpacer + Layout.fillWidth: true + } + + Button { + id: openLocalFolderButton + Layout.alignment: Qt.AlignRight + display: AbstractButton.IconOnly + Layout.preferredWidth: (trayWindowHeaderBackground.height) + Layout.preferredHeight: (trayWindowHeaderBackground.height) + flat: true + + //icon.source: "../../theme/white/folder.svg" + icon.source: "qrc:///client/theme/white/folder.svg" + icon.color: "transparent" + + MouseArea { + id: folderBtnMouseArea + anchors.fill: parent + hoverEnabled: true + onClicked: + { + } + } + + 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: "../../theme/white/talk-app.svg" + 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: "../../theme/white/more-apps.svg" + 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 +}