mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-02 00:34:26 +08:00
Merge pull request #5270 from Ultimaker/action_panel_per_stage
Let each stage create its own action panel
This commit is contained in:
commit
cfdadbaffb
24
plugins/PrepareStage/PrepareMain.qml
Normal file
24
plugins/PrepareStage/PrepareMain.qml
Normal file
@ -0,0 +1,24 @@
|
||||
//Copyright (c) 2019 Ultimaker B.V.
|
||||
//Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.4
|
||||
import QtQuick.Controls 1.2
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick.Controls.Styles 1.1
|
||||
|
||||
import UM 1.0 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
Item
|
||||
{
|
||||
id: prepareMain
|
||||
|
||||
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
|
||||
}
|
||||
}
|
@ -1,13 +1,11 @@
|
||||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Copyright (c) 2019 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import os.path
|
||||
from UM.Application import Application
|
||||
from UM.PluginRegistry import PluginRegistry
|
||||
from UM.Resources import Resources
|
||||
from cura.Stages.CuraStage import CuraStage
|
||||
|
||||
|
||||
|
||||
## Stage for preparing model (slicing).
|
||||
class PrepareStage(CuraStage):
|
||||
def __init__(self, parent = None):
|
||||
@ -16,4 +14,6 @@ class PrepareStage(CuraStage):
|
||||
|
||||
def _engineCreated(self):
|
||||
menu_component_path = os.path.join(PluginRegistry.getInstance().getPluginPath("PrepareStage"), "PrepareMenu.qml")
|
||||
main_component_path = os.path.join(PluginRegistry.getInstance().getPluginPath("PrepareStage"), "PrepareMain.qml")
|
||||
self.addDisplayComponent("menu", menu_component_path)
|
||||
self.addDisplayComponent("main", main_component_path)
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2018 Ultimaker B.V.
|
||||
// Copyright (c) 2019 Ultimaker B.V.
|
||||
// Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.4
|
||||
@ -9,10 +9,22 @@ import QtQuick.Controls.Styles 1.1
|
||||
import UM 1.0 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
|
||||
Loader
|
||||
Item
|
||||
{
|
||||
id: previewMain
|
||||
Loader
|
||||
{
|
||||
id: previewMain
|
||||
|
||||
source: UM.Controller.activeView != null && UM.Controller.activeView.mainComponent != null ? UM.Controller.activeView.mainComponent : ""
|
||||
source: UM.Controller.activeView != null && UM.Controller.activeView.mainComponent != null ? UM.Controller.activeView.mainComponent : ""
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2018 Ultimaker B.V.
|
||||
// Copyright (c) 2019 Ultimaker B.V.
|
||||
// Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.7
|
||||
@ -17,6 +17,9 @@ Item
|
||||
id: base
|
||||
width: childrenRect.width
|
||||
height: childrenRect.height
|
||||
visible: CuraApplication.platformActivity
|
||||
|
||||
property bool hasPreviewButton: true
|
||||
|
||||
Rectangle
|
||||
{
|
||||
@ -46,6 +49,13 @@ Item
|
||||
rightMargin: UM.Theme.getSize("thick_margin").width
|
||||
}
|
||||
sourceComponent: actionPanelWidget.outputAvailable ? outputProcessWidget : sliceProcessWidget
|
||||
onLoaded:
|
||||
{
|
||||
if(actionPanelWidget.outputAvailable)
|
||||
{
|
||||
loader.item.hasPreviewButton = base.hasPreviewButton;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2018 Ultimaker B.V.
|
||||
// Copyright (c) 2019 Ultimaker B.V.
|
||||
// Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.7
|
||||
@ -19,6 +19,7 @@ Column
|
||||
|
||||
spacing: UM.Theme.getSize("thin_margin").height
|
||||
property bool preSlicedData: PrintInformation.preSliced
|
||||
property alias hasPreviewButton: previewStageShortcut.visible
|
||||
|
||||
UM.I18nCatalog
|
||||
{
|
||||
@ -120,7 +121,6 @@ Column
|
||||
toolTipContentAlignment: Cura.ToolTip.ContentAlignment.AlignLeft
|
||||
|
||||
onClicked: UM.Controller.setActiveStage("PreviewStage")
|
||||
visible: UM.Controller.activeStage != null && UM.Controller.activeStage.stageId != "PreviewStage"
|
||||
}
|
||||
|
||||
Cura.OutputDevicesActionButton
|
||||
|
@ -246,30 +246,6 @@ UM.MainWindow
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
/*
|
||||
Show this panel only if there is something on the build plate, and there is NOT an opaque item in front of the build plate.
|
||||
This cannot be solved by Z indexing! If you want to try solving this, please increase this counter when you're done:
|
||||
Number of people having tried to fix this by z-indexing: 2
|
||||
The problem arises from the following render order requirements:
|
||||
- The stage menu must be rendered above the stage main.
|
||||
- The stage main must be rendered above the action panel (because the monitor page must be rendered above the action panel).
|
||||
- The action panel must be rendered above the expandable components drop-down.
|
||||
However since the expandable components drop-downs are child elements of the stage menu,
|
||||
they can't be rendered lower than elements that are lower than the stage menu.
|
||||
Therefore we opted to forego the second requirement and hide the action panel instead when something obscures it (except the expandable components).
|
||||
We assume that QQuickRectangles are always opaque and any other item is not.
|
||||
*/
|
||||
visible: CuraApplication.platformActivity && (main.item == null || !qmlTypeOf(main.item, "QQuickRectangle"))
|
||||
}
|
||||
|
||||
Loader
|
||||
{
|
||||
// A stage can control this area. If nothing is set, it will therefore show the 3D view.
|
||||
|
Loading…
x
Reference in New Issue
Block a user