mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-14 02:35:53 +08:00
Add a Cura-specific toolbar subclass
This commit is contained in:
parent
0b2a6abafe
commit
fdc9d1fc78
159
PrinterToolbar.qml
Normal file
159
PrinterToolbar.qml
Normal file
@ -0,0 +1,159 @@
|
||||
import QtQuick 2.2
|
||||
import QtQuick.Controls 1.1
|
||||
import QtQuick.Controls.Styles 1.1
|
||||
import QtQuick.Layouts 1.1
|
||||
|
||||
import UM 1.0 as UM
|
||||
|
||||
UM.Toolbar {
|
||||
id: base;
|
||||
|
||||
property Action undo;
|
||||
property Action redo;
|
||||
property Action settings;
|
||||
|
||||
Item { width: UM.Theme.windowLeftMargin; }
|
||||
|
||||
Item {
|
||||
width: UM.Theme.panelWidth;
|
||||
Image { anchors.centerIn: parent; source: UM.Resources.getIcon("cura_logo.png"); }
|
||||
}
|
||||
|
||||
Item { width: UM.Theme.toolbarSpacing; }
|
||||
|
||||
ToolButton { style: UM.ToolbarButtonStyle { } action: base.undo; iconSource: UM.Resources.getIcon('undo.png'); }
|
||||
ToolButton { style: UM.ToolbarButtonStyle { } action: base.redo; iconSource: UM.Resources.getIcon('redo.png'); }
|
||||
|
||||
// Item { width: 10; }
|
||||
|
||||
// ToolButton { text: "3D"; onClicked: UM.Scene.setActiveCamera('3d'); }
|
||||
// ToolButton { text: "Left"; onClicked: UM.Scene.setActiveCamera('left'); }
|
||||
// ToolButton { text: "Top"; onClicked: UM.Scene.setActiveCamera('top'); }
|
||||
// ToolButton { text: "Front"; onClicked: UM.Scene.setActiveCamera('front'); }
|
||||
|
||||
Item { Layout.fillWidth: true; }
|
||||
|
||||
Repeater {
|
||||
id: repeat
|
||||
|
||||
model: UM.Models.toolModel
|
||||
|
||||
ToolButton {
|
||||
style: UM.ToolbarButtonStyle { }
|
||||
|
||||
text: model.name;
|
||||
iconSource: UM.Resources.getIcon(model.icon);
|
||||
tooltip: model.description;
|
||||
|
||||
checkable: true;
|
||||
checked: model.active;
|
||||
|
||||
//Workaround since using ToolButton's onClicked would break the binding of the checked property, instead
|
||||
//just catch the click so we do not trigger that behaviour.
|
||||
MouseArea {
|
||||
anchors.fill: parent;
|
||||
onClicked: parent.checked ? UM.Controller.setActiveTool(null) : UM.Controller.setActiveTool(model.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item { Layout.fillWidth: true; }
|
||||
|
||||
ToolButton {
|
||||
//: View Mode toolbar button
|
||||
text: qsTr("View Mode");
|
||||
iconSource: UM.Resources.getIcon("viewmode.png");
|
||||
|
||||
style: UM.ToolbarButtonStyle { }
|
||||
|
||||
menu: Menu {
|
||||
id: viewMenu;
|
||||
Instantiator {
|
||||
model: UM.Models.viewModel;
|
||||
MenuItem {
|
||||
text: model.name;
|
||||
checkable: true;
|
||||
checked: model.active;
|
||||
exclusiveGroup: viewMenuGroup;
|
||||
onTriggered: UM.Controller.setActiveView(model.id);
|
||||
}
|
||||
onObjectAdded: viewMenu.insertItem(index, object)
|
||||
onObjectRemoved: viewMenu.removeItem(object)
|
||||
}
|
||||
|
||||
ExclusiveGroup { id: viewMenuGroup; }
|
||||
}
|
||||
}
|
||||
|
||||
Item { width: UM.Theme.toolbarSpacing; }
|
||||
|
||||
ToolButton {
|
||||
id: machineButton;
|
||||
width: UM.Theme.panelWidth - UM.Theme.toolbarButtonWidth - 1;
|
||||
height: UM.Theme.toolbarButtonHeight;
|
||||
text: UM.Application.machineName;
|
||||
|
||||
style: UM.ToolbarButtonStyle {
|
||||
backgroundColor: "white";
|
||||
backgroundHighlightColor: "#eee";
|
||||
|
||||
label: Item {
|
||||
anchors.fill: parent;
|
||||
Label {
|
||||
anchors {
|
||||
top: parent.top;
|
||||
topMargin: 2;
|
||||
left: parent.left;
|
||||
right: parent.right;
|
||||
}
|
||||
text: control.text;
|
||||
elide: Text.ElideRight;
|
||||
fontSizeMode: Text.HorizontalFit;
|
||||
minimumPointSize: UM.Theme.smallTextSize;
|
||||
font.pointSize: UM.Theme.largeTextSize;
|
||||
|
||||
verticalAlignment: Text.AlignBottom;
|
||||
}
|
||||
Label {
|
||||
anchors.bottom: parent.bottom;
|
||||
anchors.bottomMargin: 2;
|
||||
anchors.left: parent.left;
|
||||
//: Machine toolbar button
|
||||
text: qsTr("Machine");
|
||||
font.pointSize: UM.Theme.tinyTextSize;
|
||||
font.capitalization: Font.AllUppercase;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
menu: Menu {
|
||||
id: machineMenu;
|
||||
Instantiator {
|
||||
model: UM.Models.machinesModel
|
||||
MenuItem {
|
||||
text: model.name;
|
||||
checkable: true;
|
||||
checked: model.active;
|
||||
exclusiveGroup: machineMenuGroup;
|
||||
onTriggered: UM.Models.machinesModel.setActive(index)
|
||||
}
|
||||
onObjectAdded: machineMenu.insertItem(index, object)
|
||||
onObjectRemoved: machineMenu.removeItem(object)
|
||||
}
|
||||
|
||||
ExclusiveGroup { id: machineMenuGroup; }
|
||||
}
|
||||
}
|
||||
|
||||
ToolButton {
|
||||
style: UM.ToolbarButtonStyle {
|
||||
backgroundColor: "white";
|
||||
foregroundColor: "black";
|
||||
backgroundHighlightColor: "#eee";
|
||||
foregroundHighlightColor: "black";
|
||||
}
|
||||
action: base.settings;
|
||||
}
|
||||
|
||||
Item { width: UM.Theme.windowRightMargin; }
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user