\r
onVisibleChanged: {\r
// HACK: reload account Instantiator immediately by restting it - could be done better I guess\r
- // see also id:currentAccountHeaderButton.accountMenu below\r
- currentAccountHeaderButton.userLineInstantiator.active = false;\r
- currentAccountHeaderButton.userLineInstantiator.active = true;\r
+ // see also id:trayWindowHeader.currentAccountHeaderButton.accountMenu below\r
+ trayWindowHeader.currentAccountHeaderButton.userLineInstantiator.active = false;\r
+ trayWindowHeader.currentAccountHeaderButton.userLineInstantiator.active = true;\r
syncStatus.model.load();\r
}\r
\r
Connections {\r
target: UserModel\r
function onCurrentUserChanged() {\r
- currentAccountHeaderButton.accountMenu.close();\r
+ trayWindowHeader.currentAccountHeaderButton.accountMenu.close();\r
syncStatus.model.load();\r
}\r
}\r
userStatusDrawer.close()\r
fileDetailsDrawer.close();\r
\r
- if(Systray.isOpen) {\r
- currentAccountHeaderButton.accountMenu.close();\r
+ if (Systray.isOpen) {\r
+ trayWindowHeader.currentAccountHeaderButton.accountMenu.close();\r
appsMenu.close();\r
openLocalFolderButton.closeMenu()\r
}\r
Accessible.role: Accessible.Grouping\r
Accessible.name: qsTr("Nextcloud desktop main dialog")\r
\r
- Rectangle {\r
- id: trayWindowHeaderBackground\r
-\r
- anchors.left: trayWindowMainItem.left\r
- anchors.right: trayWindowMainItem.right\r
- anchors.top: trayWindowMainItem.top\r
- height: Style.trayWindowHeaderHeight\r
- color: Style.currentUserHeaderColor\r
-\r
- palette {\r
- text: Style.currentUserHeaderTextColor\r
- windowText: Style.currentUserHeaderTextColor\r
- buttonText: Style.currentUserHeaderTextColor\r
- }\r
-\r
- RowLayout {\r
- id: trayWindowHeaderLayout\r
-\r
- spacing: 0\r
- anchors.fill: parent\r
-\r
- CurrentAccountHeaderButton {\r
- id: currentAccountHeaderButton\r
- Layout.preferredWidth: Style.currentAccountButtonWidth\r
- Layout.preferredHeight: Style.trayWindowHeaderHeight\r
- }\r
-\r
- // Add space between items\r
- Item {\r
- Layout.fillWidth: true\r
- }\r
-\r
- TrayFoldersMenuButton {\r
- id: openLocalFolderButton\r
-\r
- visible: currentUser.hasLocalFolder\r
- currentUser: UserModel.currentUser\r
- parentBackgroundColor: trayWindowHeaderBackground.color\r
-\r
- onClicked: openLocalFolderButton.userHasGroupFolders ? openLocalFolderButton.toggleMenuOpen() : UserModel.openCurrentAccountLocalFolder()\r
+ TrayWindowHeader {\r
+ id: trayWindowHeader\r
\r
- onFolderEntryTriggered: isGroupFolder ? UserModel.openCurrentAccountFolderFromTrayInfo(fullFolderPath) : UserModel.openCurrentAccountLocalFolder()\r
-\r
- Accessible.role: Accessible.Graphic\r
- Accessible.name: qsTr("Open local or group folders")\r
- Accessible.onPressAction: openLocalFolderButton.userHasGroupFolders ? openLocalFolderButton.toggleMenuOpen() : UserModel.openCurrentAccountLocalFolder()\r
-\r
- Layout.alignment: Qt.AlignRight\r
- Layout.preferredWidth: Style.trayWindowHeaderHeight\r
- Layout.preferredHeight: Style.trayWindowHeaderHeight\r
- }\r
-\r
- HeaderButton {\r
- id: trayWindowFeaturedAppButton\r
- visible: UserModel.currentUser.isFeaturedAppEnabled\r
- icon.source: UserModel.currentUser.featuredAppIcon + "/"\r
- onClicked: UserModel.openCurrentAccountFeaturedApp()\r
-\r
- Accessible.role: Accessible.Button\r
- Accessible.name: UserModel.currentUser.featuredAppAccessibleName\r
- Accessible.onPressAction: trayWindowFeaturedAppButton.clicked()\r
-\r
- Layout.alignment: Qt.AlignRight\r
- Layout.preferredWidth: Style.trayWindowHeaderHeight\r
- Layout.preferredHeight: Style.trayWindowHeaderHeight\r
- }\r
-\r
- HeaderButton {\r
- id: trayWindowAppsButton\r
- icon.source: "image://svgimage-custom-color/more-apps.svg/" + palette.windowText\r
-\r
- onClicked: {\r
- if(appsMenu.count <= 0) {\r
- UserModel.openCurrentAccountServer()\r
- } else if (appsMenu.visible) {\r
- appsMenu.close()\r
- } else {\r
- appsMenu.open()\r
- }\r
- }\r
-\r
- Accessible.role: Accessible.ButtonMenu\r
- Accessible.name: qsTr("More apps")\r
- Accessible.onPressAction: trayWindowAppsButton.clicked()\r
-\r
- Menu {\r
- id: appsMenu\r
- x: Style.trayWindowMenuOffsetX\r
- y: (trayWindowAppsButton.y + trayWindowAppsButton.height + Style.trayWindowMenuOffsetY)\r
- width: Style.trayWindowWidth * Style.trayWindowMenuWidthFactor\r
- height: implicitHeight + y > Style.trayWindowHeight ? Style.trayWindowHeight - y : implicitHeight\r
- closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape\r
-\r
- Repeater { \r
- model: UserAppsModel\r
- delegate: MenuItem {\r
- id: appEntry\r
- anchors.left: parent.left\r
- anchors.right: parent.right\r
- text: model.appName\r
- font.pixelSize: Style.topLinePixelSize\r
- icon.source: model.appIconUrl\r
- icon.color: palette.windowText\r
- onTriggered: UserAppsModel.openAppUrl(appUrl)\r
- hoverEnabled: true\r
- Accessible.role: Accessible.MenuItem\r
- Accessible.name: qsTr("Open %1 in browser").arg(model.appName)\r
- Accessible.onPressAction: appEntry.triggered()\r
- }\r
- }\r
- }\r
- }\r
- }\r
- } // Rectangle trayWindowHeaderBackground\r
+ anchors.top: parent.top\r
+ anchors.left: parent.left\r
+ anchors.right: parent.right\r
+ height: Style.trayWindowHeaderHeight\r
+ }\r
\r
UnifiedSearchInputContainer {\r
id: trayWindowUnifiedSearchInputContainer\r
\r
- anchors.top: trayWindowHeaderBackground.bottom\r
+ anchors.top: trayWindowHeader.bottom\r
anchors.left: trayWindowMainItem.left\r
anchors.right: trayWindowMainItem.right\r
anchors.topMargin: Style.trayHorizontalMargin\r
--- /dev/null
+/*
+ * Copyright (C) 2020 by Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+import "../"
+import "../filedetails/"
+
+import Style
+import com.nextcloud.desktopclient
+
+Rectangle {
+ id: root
+
+ readonly property alias currentAccountHeaderButton: currentAccountHeaderButton
+
+ color: Style.currentUserHeaderColor
+
+ palette {
+ text: Style.currentUserHeaderTextColor
+ windowText: Style.currentUserHeaderTextColor
+ buttonText: Style.currentUserHeaderTextColor
+ }
+
+ RowLayout {
+ id: trayWindowHeaderLayout
+
+ spacing: 0
+ anchors.fill: parent
+
+ CurrentAccountHeaderButton {
+ id: currentAccountHeaderButton
+ parentBackgroundColor: root.color
+ Layout.preferredWidth: Style.currentAccountButtonWidth
+ Layout.fillHeight: true
+ }
+
+ // Add space between items
+ Item {
+ Layout.fillWidth: true
+ }
+
+ TrayFoldersMenuButton {
+ id: openLocalFolderButton
+
+ Layout.alignment: Qt.AlignRight
+ Layout.preferredWidth: Style.trayWindowHeaderHeight
+ Layout.fillHeight: true
+
+ visible: currentUser.hasLocalFolder
+ currentUser: UserModel.currentUser
+ parentBackgroundColor: root.color
+
+ onClicked: openLocalFolderButton.userHasGroupFolders ? openLocalFolderButton.toggleMenuOpen() : UserModel.openCurrentAccountLocalFolder()
+
+ onFolderEntryTriggered: isGroupFolder ? UserModel.openCurrentAccountFolderFromTrayInfo(fullFolderPath) : UserModel.openCurrentAccountLocalFolder()
+
+ Accessible.role: Accessible.Graphic
+ Accessible.name: qsTr("Open local or group folders")
+ Accessible.onPressAction: openLocalFolderButton.userHasGroupFolders ? openLocalFolderButton.toggleMenuOpen() : UserModel.openCurrentAccountLocalFolder()
+ }
+
+ HeaderButton {
+ id: trayWindowFeaturedAppButton
+
+ Layout.alignment: Qt.AlignRight
+ Layout.preferredWidth: Style.trayWindowHeaderHeight
+ Layout.fillHeight: true
+
+ visible: UserModel.currentUser.isFeaturedAppEnabled
+ icon.source: UserModel.currentUser.featuredAppIcon + "/"
+ onClicked: UserModel.openCurrentAccountFeaturedApp()
+
+ Accessible.role: Accessible.Button
+ Accessible.name: UserModel.currentUser.featuredAppAccessibleName
+ Accessible.onPressAction: trayWindowFeaturedAppButton.clicked()
+ }
+
+ HeaderButton {
+ id: trayWindowAppsButton
+ icon.source: "image://svgimage-custom-color/more-apps.svg/" + palette.windowText
+
+ onClicked: {
+ if(appsMenu.count <= 0) {
+ UserModel.openCurrentAccountServer()
+ } else if (appsMenu.visible) {
+ appsMenu.close()
+ } else {
+ appsMenu.open()
+ }
+ }
+
+ Accessible.role: Accessible.ButtonMenu
+ Accessible.name: qsTr("More apps")
+ Accessible.onPressAction: trayWindowAppsButton.clicked()
+
+ Menu {
+ id: appsMenu
+ x: Style.trayWindowMenuOffsetX
+ y: (trayWindowAppsButton.y + trayWindowAppsButton.height + Style.trayWindowMenuOffsetY)
+ width: Style.trayWindowWidth * Style.trayWindowMenuWidthFactor
+ height: implicitHeight + y > Style.trayWindowHeight ? Style.trayWindowHeight - y : implicitHeight
+ closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape
+
+ Repeater {
+ model: UserAppsModel
+ delegate: MenuItem {
+ id: appEntry
+ anchors.left: parent.left
+ anchors.right: parent.right
+ text: model.appName
+ font.pixelSize: Style.topLinePixelSize
+ icon.source: model.appIconUrl
+ icon.color: palette.windowText
+ onTriggered: UserAppsModel.openAppUrl(appUrl)
+ hoverEnabled: true
+ Accessible.role: Accessible.MenuItem
+ Accessible.name: qsTr("Open %1 in browser").arg(model.appName)
+ Accessible.onPressAction: appEntry.triggered()
+ }
+ }
+ }
+ }
+ }
+}