// Copyright (c) 2021 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.

import QtQuick 2.4
import UM 1.0 as UM
import Cura 1.0 as Cura

Item
{

    // An Item whose bounds are guaranteed to be safe for overlays to be placed.
    // Defaults to parent, ie. the entire available area
    property var safeArea: parent

    // Subtract the actionPanel from the safe area. This way the view won't draw interface elements under/over it
    Item
    {
        id: childSafeArea
        x: safeArea.x - parent.x
        y: safeArea.y - parent.y
        width: actionPanelWidget.x - x
        height: actionPanelWidget.y - y
    }

    Loader
    {
        id: previewMain
        anchors.fill: parent

        source: UM.Controller.activeView != null && UM.Controller.activeView.mainComponent != null ? UM.Controller.activeView.mainComponent : ""

        onLoaded:
        {
            if (previewMain.item.safeArea !== undefined){
               previewMain.item.safeArea = Qt.binding(function() { return childSafeArea });
            }
        }
    }

    Cura.ActionPanelWidget
    {
        id: actionPanelWidget
        anchors.right: parent.right
        anchors.bottom: parent.bottom
        anchors.rightMargin: UM.Theme.getSize("thick_margin").width
        anchors.bottomMargin: UM.Theme.getSize("thick_margin").height
        hasPreviewButton: false
    }
}