Browse Source

The AccountDetails Panel is now an actual popup

This ensures that it's always visible (previously it was ocluded by the StageMenu)

CURA-5772
Jaime van Kessel 6 years ago
parent
commit
f6ae19003b
1 changed files with 29 additions and 32 deletions
  1. 29 32
      resources/qml/Account/AccountWidget.qml

+ 29 - 32
resources/qml/Account/AccountWidget.qml

@@ -7,62 +7,59 @@ import QtQuick.Controls 2.1
 import UM 1.4 as UM
 import Cura 1.1 as Cura
 
-Item
+Button
 {
     id: accountWidget
     property var profile: Cura.API.account.userProfile
     property var loggedIn: Cura.API.account.isLoggedIn
-    height: UM.Theme.getSize("topheader").height
-    width: UM.Theme.getSize("topheader").height
+
+    implicitHeight: UM.Theme.getSize("topheader").height
+    implicitWidth: UM.Theme.getSize("topheader").height
+
 
     AvatarImage
     {
         id: avatar
+
+
         width: Math.round(0.8 * parent.width)
         height: Math.round(0.8 * parent.height)
         anchors.verticalCenter: parent.verticalCenter
         anchors.horizontalCenter: parent.horizontalCenter
+
         source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_default")
         outlineColor: loggedIn ? UM.Theme.getColor("account_widget_ouline_active") : UM.Theme.getColor("account_widget_ouline_inactive")
     }
 
-    MouseArea
-    {
-        anchors.fill: parent
-        onClicked: accountManagementPanel.visible = !accountManagementPanel.visible // Collapse/Expand the dropdown panel
-    }
+    background: Item {}
 
-    UM.PointingRectangle
+    onClicked: popup.open()
+
+    Popup
     {
-        id: accountManagementPanel
+        id: popup
 
-        width: panel.width
-        height: panel.height
+        y: parent.height + UM.Theme.getSize("default_arrow").height
+        x: (parent.width - width)
 
-        anchors
+        contentItem: AccountDetails
         {
-            top: parent.bottom
-            topMargin: UM.Theme.getSize("default_margin").height
-            right: parent.right
+            id: panel
+            profile: Cura.API.account.userProfile
+            loggedIn: Cura.API.account.isLoggedIn
         }
 
-        target: Qt.point(parent.width / 2, parent.bottom)
-        arrowSize: UM.Theme.getSize("default_arrow").width
-
-        visible: false
-        opacity: visible ? 1 : 0
-        Behavior on opacity { NumberAnimation { duration: 100 } }
+        background: UM.PointingRectangle
+        {
+            opacity: visible ? 1 : 0
+            Behavior on opacity { NumberAnimation { duration: 100 } }
+            color: UM.Theme.getColor("tool_panel_background")
+            borderColor: UM.Theme.getColor("lining")
+            borderWidth: UM.Theme.getSize("default_lining").width
 
-        color: UM.Theme.getColor("tool_panel_background")
-        borderColor: UM.Theme.getColor("lining")
-        borderWidth: UM.Theme.getSize("default_lining").width
+            target: Qt.point(width - (accountWidget.width / 2), -10)
 
-        // Shows the user management options or general options to create account
-        AccountDetails
-        {
-            id: panel
-            profile: Cura.API.account.userProfile
-            loggedIn: Cura.API.account.isLoggedIn
+            arrowSize: UM.Theme.getSize("default_arrow").width
         }
     }
-}
+}