// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 import QtQuick.Controls 2.3 import QtGraphicalEffects 1.0 import UM 1.4 as UM Item { // This item shows the provided image while applying a round mask to it. // It also shows a round border around it. The color is defined by the outlineColor property. id: avatar property alias source: profileImage.source property alias outlineColor: profileImageOutline.color property bool hasAvatar: source != "" Image { id: profileImage anchors.fill: parent fillMode: Image.PreserveAspectCrop visible: false mipmap: true } Rectangle { id: profileImageMask anchors.fill: parent radius: width color: hasAvatar ? "white" : "transparent" } OpacityMask { anchors.fill: parent source: profileImage maskSource: profileImageMask visible: hasAvatar cached: true } UM.RecolorImage { id: profileImageOutline anchors.centerIn: parent // Make it a bit bigger than it has to, otherwise it sometimes shows a white border. width: parent.width + 2 height: parent.height + 2 visible: hasAvatar source: UM.Theme.getIcon("CircleOutline") sourceSize: Qt.size(parent.width, parent.height) color: UM.Theme.getColor("account_widget_outline_active") } }