Merge branch 'master' of

https://github.com/Ultimaker/Cura
This commit is contained in:
Tim Kuipers 2015-08-28 09:20:56 +02:00
commit 75cf4c922a
33 changed files with 802 additions and 428 deletions

View file

@ -6,6 +6,8 @@ from UM.Application import Application
from UM.Preferences import Preferences
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
from UM.Scene.SceneNode import SceneNode
from UM.Message import Message
from UM.i18n import i18nCatalog
import collections
import json
@ -16,6 +18,8 @@ import math
import urllib.request
import urllib.parse
catalog = i18nCatalog("cura")
## This Extension runs in the background and sends several bits of information to the Ultimaker servers.
# The data is only sent when the user in question gave permission to do so. All data is anonymous and
@ -25,9 +29,19 @@ class SliceInfo(Extension):
super().__init__()
Application.getInstance().getOutputDeviceManager().writeStarted.connect(self._onWriteStarted)
Preferences.getInstance().addPreference("info/send_slice_info", True)
Preferences.getInstance().addPreference("info/asked_send_slice_info", False)
if not Preferences.getInstance().getValue("info/asked_send_slice_info"):
self.send_slice_info_message = Message(catalog.i18nc("", "Cura automatically sends slice info. You can disable this in preferences"), lifetime = 0, dismissable = False)
self.send_slice_info_message.addAction("Dismiss","Dismiss", None, "Dismiss")
self.send_slice_info_message.actionTriggered.connect(self.messageActionTriggered)
self.send_slice_info_message.show()
def messageActionTriggered(self, message_id, action_id):
self.send_slice_info_message.hide()
Preferences.getInstance().setValue("info/asked_send_slice_info", True)
def _onWriteStarted(self, output_device):
print("Starting sending")
if not Preferences.getInstance().getValue("info/send_slice_info"):
return # Do nothing, user does not want to send data
@ -105,5 +119,4 @@ class SliceInfo(Extension):
except Exception as e:
print("Exception occured", e)
print("Result: ", f.read())
f.close()

View file

@ -6,13 +6,14 @@ import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
import QtQuick.Window 2.1
import UM 1.0 as UM
import UM 1.1 as UM
UM.Dialog {
UM.Dialog
{
width: 500 * Screen.devicePixelRatio;
height: 100 * Screen.devicePixelRatio;
title: "Print with USB"
title: catalog.i18nc("@title:window", "Print with USB")
Column
{
@ -23,18 +24,20 @@ UM.Dialog {
Text
{
//: USB Printing dialog label, %1 is head temperature
text: qsTr("Extruder Temperature %1").arg(manager.extruderTemperature)
text: catalog.i18nc("@label","Extruder Temperature %1").arg(manager.extruderTemperature)
}
Text
{
//: USB Printing dialog label, %1 is bed temperature
text: qsTr("Bed Temperature %1").arg(manager.bedTemperature)
text: catalog.i18nc("@label","Bed Temperature %1").arg(manager.bedTemperature)
}
Text
{
text: "" + manager.error
}
UM.I18nCatalog{id: catalog; name:"cura"}
}
ProgressBar
@ -50,16 +53,17 @@ UM.Dialog {
}
rightButtons: [
Button {
Button
{
//: USB Printing dialog start print button
text: qsTr("Print");
text: catalog.i18nc("@action:button","Print");
onClicked: { manager.startPrint() }
enabled: manager.progress == 0 ? true : false
},
Button
{
//: USB Printing dialog cancel print button
text: qsTr("Cancel");
text: catalog.i18nc("@action:button","Cancel");
onClicked: { manager.cancelPrint() }
enabled: manager.progress == 0 ? false: true
}

View file

@ -17,7 +17,7 @@ UM.Dialog
visible: true;
modality: Qt.ApplicationModal;
title: "Firmware Update";
title: catalog.i18nc("@title:window","Firmware Update");
Column
{
@ -25,7 +25,8 @@ UM.Dialog
Text
{
anchors {
anchors
{
left: parent.left;
right: parent.right;
}
@ -34,17 +35,17 @@ UM.Dialog
if (manager.progress == 0)
{
//: Firmware update status label
return qsTr("Starting firmware update, this may take a while.")
return catalog.i18nc("@label","Starting firmware update, this may take a while.")
}
else if (manager.progress > 99)
{
//: Firmware update status label
return qsTr("Firmware update completed.")
return catalog.i18nc("@label","Firmware update completed.")
}
else
{
//: Firmware update status label
return qsTr("Updating firmware.")
return catalog.i18nc("@label","Updating firmware.")
}
}
@ -57,20 +58,23 @@ UM.Dialog
value: manager.progress
minimumValue: 0;
maximumValue: 100;
anchors {
anchors
{
left: parent.left;
right: parent.right;
}
}
SystemPalette {
SystemPalette
{
id: palette;
}
}
rightButtons: [
Button {
Button
{
text: "Close";
enabled: manager.progress >= 100;
onClicked: base.visible = false;

View file

@ -5,17 +5,21 @@ import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Window 2.1
import UM 1.0 as UM
import UM 1.1 as UM
UM.Dialog {
UM.Dialog
{
id: base
//: About dialog title
title: qsTr("About Cura")
title: catalog.i18nc("@title:window","About Cura")
minimumWidth: 400
minimumHeight: 300
minimumHeight: 300;
//UM.I18nCatalog { id: catalog; }
Image {
Image
{
id: logo
width: parent.width * 0.75
height: width * (1/4.25)
@ -26,9 +30,11 @@ UM.Dialog {
sourceSize.height: height
anchors.centerIn: parent
anchors.verticalCenterOffset : -(height * 0.5)
UM.I18nCatalog{id: catalog; name:"cura"}
}
Label {
Label
{
id: version
text: "Cura %1".arg(UM.Application.version)
@ -39,30 +45,33 @@ UM.Dialog {
anchors.topMargin : 5
}
Label {
Label
{
id: description
width: parent.width
//: About dialog application description
text: qsTr("End-to-end solution for fused filament 3D printing.")
text: catalog.i18nc("@label","End-to-end solution for fused filament 3D printing.")
wrapMode: Text.WordWrap
anchors.top: version.bottom
anchors.topMargin : 10
}
Label {
Label
{
id: author_note
width: parent.width
//: About dialog application author note
text: qsTr("Cura has been developed by Ultimaker B.V. in cooperation with the community.")
text: catalog.i18nc("@label","Cura has been developed by Ultimaker B.V. in cooperation with the community.")
wrapMode: Text.WordWrap
anchors.top: description.bottom
}
rightButtons: Button {
rightButtons: Button
{
//: Close about dialog button
text: qsTr("Close");
text: catalog.i18nc("@action:button","Close");
onClicked: base.visible = false;
}

View file

@ -3,9 +3,10 @@
import QtQuick 2.2
import QtQuick.Controls 1.1
import UM 1.0 as UM
import UM 1.1 as UM
Item {
Item
{
property alias open: openAction;
property alias save: saveAction;
property alias quit: quitAction;
@ -42,60 +43,69 @@ Item {
property alias toggleFullScreen: toggleFullScreenAction;
UM.I18nCatalog{id: catalog; name:"cura"}
Action
{
id:toggleFullScreenAction
shortcut: StandardKey.FullScreen;
}
Action {
Action
{
id: undoAction;
//: Undo action
text: qsTr("Undo");
text: catalog.i18nc("@action","Undo");
iconName: "edit-undo";
shortcut: StandardKey.Undo;
}
Action {
Action
{
id: redoAction;
//: Redo action
text: qsTr("Redo");
text: catalog.i18nc("@action","Redo");
iconName: "edit-redo";
shortcut: StandardKey.Redo;
}
Action {
Action
{
id: quitAction;
//: Quit action
text: qsTr("Quit");
text: catalog.i18nc("@action","Quit");
iconName: "application-exit";
shortcut: StandardKey.Quit;
}
Action {
Action
{
id: preferencesAction;
//: Preferences action
text: qsTr("Preferences...");
text: catalog.i18nc("@action","Preferences...");
iconName: "configure";
}
Action {
Action
{
id: addMachineAction;
//: Add Printer action
text: qsTr("Add Printer...");
text: catalog.i18nc("@action","Add Printer...");
}
Action {
Action
{
id: settingsAction;
//: Configure Printers action
text: qsTr("Configure Printers");
text: catalog.i18nc("@action","Configure Printers");
iconName: "configure";
}
Action {
Action
{
id: documentationAction;
//: Show Online Documentation action
text: qsTr("Show Online &Documentation");
text: catalog.i18nc("@action","Show Online &Documentation");
iconName: "help-contents";
shortcut: StandardKey.Help;
}
@ -103,118 +113,131 @@ Item {
Action {
id: reportBugAction;
//: Report a Bug Action
text: qsTr("Report a &Bug");
text: catalog.i18nc("@action","Report a &Bug");
iconName: "tools-report-bug";
}
Action {
Action
{
id: aboutAction;
//: About action
text: qsTr("About...");
text: catalog.i18nc("@action","About...");
iconName: "help-about";
}
Action {
Action
{
id: deleteSelectionAction;
//: Delete selection action
text: qsTr("Delete Selection");
text: catalog.i18nc("@action","Delete Selection");
iconName: "edit-delete";
shortcut: StandardKey.Delete;
}
Action {
Action
{
id: deleteObjectAction;
//: Delete object action
text: qsTr("Delete Object");
text: catalog.i18nc("@action","Delete Object");
iconName: "edit-delete";
shortcut: StandardKey.Backspace;
}
Action {
Action
{
id: centerObjectAction;
//: Center object action
text: qsTr("Center Object on Platform");
text: catalog.i18nc("@action","Center Object on Platform");
}
Action
{
id: groupObjectsAction
text: qsTr("Group objects");
text: catalog.i18nc("@action","Group objects");
enabled: UM.Scene.numObjectsSelected > 1 ? true: false
}
Action
{
id: unGroupObjectsAction
text: qsTr("Ungroup objects");
text: catalog.i18nc("@action","Ungroup objects");
enabled: UM.Scene.isGroupSelected
}
Action
{
id: mergeObjectsAction
text: qsTr("Merge objects");
text: catalog.i18nc("@action","Merge objects");
enabled: UM.Scene.numObjectsSelected > 1 ? true: false
}
Action {
Action
{
id: multiplyObjectAction;
//: Duplicate object action
text: qsTr("Duplicate Object");
text: catalog.i18nc("@action","Duplicate Object");
}
Action {
Action
{
id: splitObjectAction;
//: Split object action
text: qsTr("Split Object into Parts");
text: catalog.i18nc("@action","Split Object into Parts");
enabled: false;
}
Action {
Action
{
id: deleteAllAction;
//: Clear build platform action
text: qsTr("Clear Build Platform");
text: catalog.i18nc("@action","Clear Build Platform");
iconName: "edit-clear";
}
Action {
Action
{
id: reloadAllAction;
//: Reload all objects action
text: qsTr("Reload All Objects");
text: catalog.i18nc("@action","Reload All Objects");
}
Action {
Action
{
id: resetAllTranslationAction;
//: Reset all positions action
text: qsTr("Reset All Object Positions");
text: catalog.i18nc("@action","Reset All Object Positions");
}
Action {
Action
{
id: resetAllAction;
//: Reset all positions action
text: qsTr("Reset All Object Transformations");
text: catalog.i18nc("@action","Reset All Object Transformations");
}
Action {
Action
{
id: openAction;
//: Open file action
text: qsTr("Load file");
text: catalog.i18nc("@action","Load file");
iconName: "document-open";
shortcut: StandardKey.Open;
}
Action {
Action
{
id: saveAction;
//: Save file action
text: qsTr("Save...");
text: catalog.i18nc("@action","Save...");
iconName: "document-save";
shortcut: StandardKey.Save;
}
Action {
Action
{
id: showEngineLogAction;
//: Show engine log action
text: qsTr("Show engine &log...");
text: catalog.i18nc("@action","Show engine &log...");
iconName: "view-list-text";
}
}

View file

@ -6,18 +6,22 @@ import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
import QtQuick.Window 2.1
import UM 1.0 as UM
import UM 1.1 as UM
UM.Wizard
{
//: Add Printer dialog title
wizardTitle: qsTr("Add Printer")
wizardTitle: catalog.i18nc("@title:wizard","Add Printer")
wizardPages: [
{
title: "Add Printer",
page: "AddMachine.qml"
}
]
Item
{
UM.I18nCatalog{id: catalog; name:"cura"}
}
// This part is optional
// This part checks whether there is a printer -> if not: some of the functions (delete for example) are disabled

View file

@ -9,38 +9,46 @@ import QtQuick.Dialogs 1.1
import UM 1.1 as UM
UM.MainWindow {
UM.MainWindow
{
id: base
visible: true
//: Cura application window title
title: qsTr("Cura");
title: catalog.i18nc("@title:window","Cura");
Item {
Item
{
id: backgroundItem;
anchors.fill: parent;
UM.ApplicationMenu {
UM.I18nCatalog{id: catalog; name:"cura"}
UM.ApplicationMenu
{
id: menu
window: base
Menu {
Menu
{
id: fileMenu
//: File menu
title: qsTr("&File");
title: catalog.i18nc("@title:menu","&File");
MenuItem { action: actions.open; }
Menu {
Menu
{
id: recentFilesMenu;
title: "Open Recent"
title: catalog.i18nc("@title:menu","Open Recent")
iconName: "document-open-recent";
enabled: Printer.recentFiles.length > 0;
Instantiator {
Instantiator
{
model: Printer.recentFiles
MenuItem {
text: {
MenuItem
{
text:
{
var path = modelData.toString()
return (index + 1) + ". " + path.slice(path.lastIndexOf("/") + 1);
}
@ -53,22 +61,26 @@ UM.MainWindow {
MenuSeparator { }
MenuItem {
text: "Save Selection to File";
MenuItem
{
text: catalog.i18nc("@action:menu", "Save Selection to File");
enabled: UM.Selection.hasSelection;
iconName: "document-save-as";
onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file");
}
Menu {
Menu
{
id: saveAllMenu
title: "Save All"
title: catalog.i18nc("@title:menu","Save All")
iconName: "document-save";
enabled: devicesModel.count > 0 && UM.Backend.progress > 0.99;
Instantiator {
Instantiator
{
model: UM.OutputDevicesModel { id: devicesModel; }
MenuItem {
MenuItem
{
text: model.description;
onTriggered: UM.OutputDeviceManager.requestWriteToDevice(model.id);
}
@ -82,9 +94,10 @@ UM.MainWindow {
MenuItem { action: actions.quit; }
}
Menu {
Menu
{
//: Edit menu
title: qsTr("&Edit");
title: catalog.i18nc("@title:menu","&Edit");
MenuItem { action: actions.undo; }
MenuItem { action: actions.redo; }
@ -94,7 +107,7 @@ UM.MainWindow {
}
Menu
{
title: qsTr("&View");
title: catalog.i18nc("@title:menu","&View");
id: top_view_menu
Instantiator
{
@ -112,14 +125,17 @@ UM.MainWindow {
}
ExclusiveGroup { id: view_menu_top_group; }
}
Menu {
Menu
{
id: machineMenu;
//: Machine menu
title: qsTr("&Machine");
title: catalog.i18nc("@title:menu","&Machine");
Instantiator {
Instantiator
{
model: UM.Models.machinesModel
MenuItem {
MenuItem
{
text: model.name;
checkable: true;
checked: model.active;
@ -138,10 +154,11 @@ UM.MainWindow {
MenuItem { action: actions.configureMachines; }
}
Menu {
Menu
{
id: extension_menu
//: Extensions menu
title: qsTr("E&xtensions");
title: catalog.i18nc("@title:menu","E&xtensions");
Instantiator
{
@ -170,16 +187,18 @@ UM.MainWindow {
}
}
Menu {
Menu
{
//: Settings menu
title: qsTr("&Settings");
title: catalog.i18nc("@title:menu","&Settings");
MenuItem { action: actions.preferences; }
}
Menu {
Menu
{
//: Help menu
title: qsTr("&Help");
title: catalog.i18nc("@title:menu","&Help");
MenuItem { action: actions.showEngineLog; }
MenuItem { action: actions.documentation; }
@ -189,7 +208,8 @@ UM.MainWindow {
}
}
Item {
Item
{
id: contentItem;
y: menu.height
@ -198,19 +218,25 @@ UM.MainWindow {
Keys.forwardTo: menu
DropArea {
DropArea
{
anchors.fill: parent;
onDropped: {
if(drop.urls.length > 0) {
for(var i in drop.urls) {
onDropped:
{
if(drop.urls.length > 0)
{
for(var i in drop.urls)
{
UM.MeshFileHandler.readLocalFile(drop.urls[i]);
}
}
}
}
UM.MessageStack {
anchors {
UM.MessageStack
{
anchors
{
horizontalCenter: parent.horizontalCenter
horizontalCenterOffset: -(UM.Theme.sizes.logo.width/ 2)
top: parent.verticalCenter;
@ -237,12 +263,14 @@ UM.MainWindow {
source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : "";
}
Button {
Button
{
id: openFileButton;
//style: UM.Backend.progress < 0 ? UM.Theme.styles.open_file_button : UM.Theme.styles.tool_button;
style: UM.Theme.styles.open_file_button
tooltip: '';
anchors {
anchors
{
top: parent.top;
topMargin: UM.Theme.sizes.loadfile_margin.height
left: parent.left;
@ -251,9 +279,11 @@ UM.MainWindow {
action: actions.open;
}
Image {
Image
{
id: logo
anchors {
anchors
{
left: parent.left
leftMargin: UM.Theme.sizes.default_margin.width;
bottom: parent.bottom
@ -268,24 +298,29 @@ UM.MainWindow {
sourceSize.height: height;
}
Button {
Button
{
id: viewModeButton
anchors {
anchors
{
top: parent.top;
right: sidebar.left;
rightMargin: UM.Theme.sizes.window_margin.width;
}
//: View Mode toolbar button
text: qsTr("View Mode");
text: catalog.i18nc("@action:button","View Mode");
iconSource: UM.Theme.icons.viewmode;
style: UM.Theme.styles.tool_button;
tooltip: '';
menu: Menu {
menu: Menu
{
id: viewMenu;
Instantiator {
Instantiator
{
model: UM.Models.viewModel;
MenuItem {
MenuItem
{
text: model.name;
checkable: true;
checked: model.active;
@ -300,38 +335,46 @@ UM.MainWindow {
}
}
Toolbar {
Toolbar
{
id: toolbar;
anchors {
horizontalCenter: parent.horizontalCenter
horizontalCenterOffset: -(UM.Theme.sizes.panel.width / 2)
top: parent.top;
left: parent.left
top: parent.top
topMargin: 74
//horizontalCenter: parent.horizontalCenter
//horizontalCenterOffset: -(UM.Theme.sizes.sidebar.width / 2)
//top: parent.top;
}
}
Sidebar {
Sidebar
{
id: sidebar;
anchors {
anchors
{
top: parent.top;
bottom: parent.bottom;
right: parent.right;
}
width: UM.Theme.sizes.panel.width;
width: UM.Theme.sizes.sidebar.width;
addMachineAction: actions.addMachine;
configureMachinesAction: actions.configureMachines;
}
Rectangle {
Rectangle
{
x: base.mouseX + UM.Theme.sizes.default_margin.width;
y: base.mouseY + UM.Theme.sizes.default_margin.height;
width: childrenRect.width;
height: childrenRect.height;
Label {
Label
{
text: UM.ActiveTool.properties.Rotation != undefined ? "%1°".arg(UM.ActiveTool.properties.Rotation) : "";
}
@ -340,23 +383,26 @@ UM.MainWindow {
}
}
UM.PreferencesDialog {
UM.PreferencesDialog
{
id: preferences
Component.onCompleted: {
Component.onCompleted:
{
//; Remove & re-add the general page as we want to use our own instead of uranium standard.
removePage(0);
insertPage(0, qsTr("General") , "" , Qt.resolvedUrl("./GeneralPage.qml"));
insertPage(0, catalog.i18nc("@title:tab","General") , "" , Qt.resolvedUrl("./GeneralPage.qml"));
//: View preferences page title
insertPage(1, qsTr("View"), "view-preview", Qt.resolvedUrl("./ViewPage.qml"));
insertPage(1, catalog.i18nc("@title:tab","View"), "view-preview", Qt.resolvedUrl("./ViewPage.qml"));
//Force refresh
setPage(0)
}
}
Actions {
Actions
{
id: actions;
open.onTriggered: openDialog.open();
@ -369,28 +415,36 @@ UM.MainWindow {
redo.onTriggered: UM.OperationStack.redo();
redo.enabled: UM.OperationStack.canRedo;
deleteSelection.onTriggered: {
if(objectContextMenu.objectId != 0) {
deleteSelection.onTriggered:
{
if(objectContextMenu.objectId != 0)
{
Printer.deleteObject(objectContextMenu.objectId);
}
}
deleteObject.onTriggered: {
if(objectContextMenu.objectId != 0) {
deleteObject.onTriggered:
{
if(objectContextMenu.objectId != 0)
{
Printer.deleteObject(objectContextMenu.objectId);
objectContextMenu.objectId = 0;
}
}
multiplyObject.onTriggered: {
if(objectContextMenu.objectId != 0) {
multiplyObject.onTriggered:
{
if(objectContextMenu.objectId != 0)
{
Printer.multiplyObject(objectContextMenu.objectId, 1);
objectContextMenu.objectId = 0;
}
}
centerObject.onTriggered: {
if(objectContextMenu.objectId != 0) {
centerObject.onTriggered:
{
if(objectContextMenu.objectId != 0)
{
Printer.centerObject(objectContextMenu.objectId);
objectContextMenu.objectId = 0;
}
@ -429,7 +483,8 @@ UM.MainWindow {
}
Menu {
Menu
{
id: objectContextMenu;
property variant objectId: -1;
@ -448,7 +503,8 @@ UM.MainWindow {
MenuItem { action: actions.mergeObjects;}
}
Menu {
Menu
{
id: contextMenu;
MenuItem { action: actions.deleteAll; }
MenuItem { action: actions.reloadAll; }
@ -459,23 +515,28 @@ UM.MainWindow {
MenuItem { action: actions.mergeObjects;}
}
Connections {
Connections
{
target: UM.Controller
onContextMenuRequested: {
if(objectId == 0) {
onContextMenuRequested:
{
if(objectId == 0)
{
contextMenu.popup();
} else {
} else
{
objectContextMenu.objectId = objectId;
objectContextMenu.popup();
}
}
}
FileDialog {
FileDialog
{
id: openDialog;
//: File open dialog title
title: qsTr("Open File")
title: catalog.i18nc("@title:window","Open File")
modality: UM.Application.platform == "linux" ? Qt.NonModal : Qt.WindowModal;
//TODO: Support multiple file selection, workaround bug in KDE file dialog
//selectMultiple: true
@ -488,22 +549,27 @@ UM.MainWindow {
}
}
EngineLog {
EngineLog
{
id: engineLog;
}
AddMachineWizard {
AddMachineWizard
{
id: addMachineWizard
}
AboutDialog {
AboutDialog
{
id: aboutDialog
}
Connections {
Connections
{
target: Printer
onRequestAddPrinter: {
onRequestAddPrinter:
{
addMachineWizard.visible = true
addMachineWizard.printer = false
}

View file

@ -5,40 +5,48 @@ import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
import UM 1.0 as UM
import UM 1.1 as UM
UM.Dialog {
UM.Dialog
{
id: dialog;
//: Engine Log dialog title
title: qsTr("Engine Log");
title: catalog.i18nc("@title:window","Engine Log");
modality: Qt.NonModal;
TextArea {
TextArea
{
id: textArea
anchors.fill: parent;
Timer {
Timer
{
id: updateTimer;
interval: 1000;
running: false;
repeat: true;
onTriggered: textArea.text = Printer.getEngineLog();
}
UM.I18nCatalog{id: catalog; name:"cura"}
}
rightButtons: Button {
rightButtons: Button
{
//: Close engine log button
text: qsTr("Close");
text: catalog.i18nc("@action:button","Close");
onClicked: dialog.visible = false;
}
onVisibleChanged: {
if(visible) {
onVisibleChanged:
{
if(visible)
{
textArea.text = Printer.getEngineLog();
updateTimer.start();
} else {
} else
{
updateTimer.stop();
}
}

View file

@ -6,12 +6,12 @@ import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.1
import UM 1.0 as UM
import UM 1.1 as UM
UM.PreferencesPage
{
//: General configuration page title
title: qsTr("General");
title: catalog.i18nc("@title:wizard","General");
function reset()
{
@ -26,10 +26,11 @@ UM.PreferencesPage
{
columns: 2;
//: Language selection label
UM.I18nCatalog{id: catalog; name:"cura"}
Label
{
id: languageLabel
text: qsTr("Language")
text: catalog.i18nc("@label","Language")
}
ComboBox
@ -76,7 +77,7 @@ UM.PreferencesPage
// Because ListModel is stupid and does not allow using qsTr() for values.
for(var i = 0; i < languageList.count; ++i)
{
languageList.setProperty(i, "text", qsTr(languageList.get(i).text));
languageList.setProperty(i, "text", catalog.i18nc("@action:menu",languageList.get(i).text));
}
// Glorious hack time. ComboBox does not update the text properly after changing the
@ -92,7 +93,7 @@ UM.PreferencesPage
Layout.columnSpan: 2
//: Language change warning
text: qsTr("You will need to restart the application for language changes to have effect.")
text: catalog.i18nc("@label","You will need to restart the application for language changes to have effect.")
wrapMode: Text.WordWrap
font.italic: true
}
@ -108,11 +109,11 @@ UM.PreferencesPage
id: pushFreeText //is a button so the user doesn't have te click inconvenientley precise to enable or disable the checkbox
//: Display Overhang preference checkbox
text: qsTr("Automatic push free");
text: catalog.i18nc("@action:checkbox","Automatic push free");
onClicked: pushFreeCheckbox.checked = !pushFreeCheckbox.checked
//: Display Overhang preference tooltip
tooltip: "Are objects on the platform automatically moved so they no longer intersect"
tooltip: catalog.i18nc("@info:tooltip","Are objects on the platform automatically moved so they no longer intersect")
style: ButtonStyle
{
@ -141,11 +142,11 @@ UM.PreferencesPage
id: sendDataText //is a button so the user doesn't have te click inconvenientley precise to enable or disable the checkbox
//: Display Overhang preference checkbox
text: qsTr("Send (anonymous) slice info");
text: catalog.i18nc("@action:checkbox","Send (anonymous) slice info");
onClicked: sendDataCheckbox.checked = !sendDataCheckbox.checked
//: Display Overhang preference tooltip
tooltip: "Should anonymous data about your slices be sent to Ultimaker. No models or IP's are sent / stored."
tooltip: catalog.i18nc("@info:tooltip","Should anonymous data about your slices be sent to Ultimaker. No models or IP's are sent / stored.")
style: ButtonStyle
{

View file

@ -8,17 +8,20 @@ import QtQuick.Layouts 1.1
import UM 1.1 as UM
Rectangle {
Rectangle
{
id: base;
property real progress: UM.Backend.progress;
property bool activity: Printer.getPlatformActivity;
Behavior on progress { NumberAnimation { duration: 250; } }
property int totalHeight: childrenRect.height
property variant printDuration: PrintInformation.currentPrintTime;
property real printMaterialAmount: PrintInformation.materialAmount;
Rectangle{
UM.I18nCatalog { id: catalog; name:"cura"}
Rectangle
{
id: background
implicitWidth: base.width;
implicitHeight: parent.height;
@ -26,7 +29,8 @@ Rectangle {
border.width: UM.Theme.sizes.save_button_border.width
border.color: UM.Theme.colors.save_button_border
Rectangle {
Rectangle
{
id: infoBox
width: parent.width - UM.Theme.sizes.default_margin.width * 2;
height: UM.Theme.sizes.save_button_slicing_bar.height
@ -35,94 +39,150 @@ Rectangle {
anchors.topMargin: UM.Theme.sizes.default_margin.height;
anchors.left: parent.left
anchors.leftMargin: UM.Theme.sizes.default_margin.width;
border.width: UM.Theme.sizes.save_button_border.width
border.color: UM.Theme.colors.save_button_border
color: UM.Theme.colors.save_button_estimated_text_background;
Label {
id: label;
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: UM.Theme.sizes.save_button_text_margin.width;
visible: base.progress >= 0 && base.progress < 0.99 ? false : true
color: UM.Theme.colors.save_button_estimated_text;
font: UM.Theme.fonts.small;
text: {
if(base.activity == false) {
//: Save button label
return qsTr("Please load a 3D model");
} else if (base.progress < 0.99) {
//: Save button label
return qsTr("Calculating Print-time");
} else if (base.printDuration.days > 0 || base.progress == null){
return qsTr("");
}
else if (base.progress > 0.99){
//: Save button label
return qsTr("Estimated Print-time");
}
return "";
anchors.verticalCenter: parent.verticalCenter
//font: UM.Theme.fonts.default;
color: UM.Theme.colors.text_white
}
TextField
{
id: printJobTextfield
anchors.right: parent.right
anchors.rightMargin: UM.Theme.sizes.default_margin.width;
anchors.verticalCenter: parent.verticalCenter
width: parent.width/100*55
height: UM.Theme.sizes.sidebar_inputFields.height
property int unremovableSpacing: 5
text: "UM2" + "_" + "filename" ///TODO KOMT NOG
onEditingFinished:
{
if (printJobTextfield.text != '')
{
printJobTextfield.focus = false
}
}
Label {
id: printDurationLabel
anchors.verticalCenter: parent.verticalCenter
anchors.left: label.right;
anchors.leftMargin: UM.Theme.sizes.save_button_text_margin.width;
color: UM.Theme.colors.save_button_printtime_text;
font: UM.Theme.fonts.small;
visible: base.activity == false || base.progress < 0.99 ? false : true
text: (!base.printDuration || !base.printDuration.valid) ? "" : base.printDuration.getDisplayString(UM.DurationFormat.Long);
validator: RegExpValidator
{
regExp: /^[0-9a-zA-Z\_\-]*$/
}
Label {
id: printMaterialLabel
anchors.verticalCenter: parent.verticalCenter
anchors.left: printDurationLabel.right;
anchors.leftMargin: UM.Theme.sizes.save_button_text_margin.width;
color: base.printDuration.days > 0 ? UM.Theme.colors.save_button_estimated_text : UM.Theme.colors.save_button_printtime_text;
font: UM.Theme.fonts.small;
property bool mediumLengthDuration: base.printDuration.hours > 9 && base.printMaterialAmount > 9.99 && base.printDuration.days == 0
width: mediumLengthDuration ? 50 : undefined
elide: mediumLengthDuration ? Text.ElideRight : Text.ElideNone
visible: base.activity == false || base.progress < 0.99 ? false : true
//: Print material amount save button label
text: base.printMaterialAmount < 0 ? "" : qsTr("%1m of Material").arg(base.printMaterialAmount);
style: TextFieldStyle
{
textColor: UM.Theme.colors.setting_control_text;
font: UM.Theme.fonts.default;
background: Rectangle
{
radius: 0
implicitWidth: parent.width
implicitHeight: parent.height
border.width: 1;
border.color: UM.Theme.colors.slider_groove_border;
}
}
}
Rectangle {
id: infoBoxOverlay
anchors {
left: infoBox.left;
top: infoBox.top;
bottom: infoBox.bottom;
}
width: Math.max(infoBox.width * base.progress);
color: UM.Theme.colors.save_button_active
visible: progress > 0.99 ? false : true
}
}
Button {
id: saveToButton
anchors.top: infoBox.bottom
anchors.topMargin: UM.Theme.sizes.save_button_text_margin.height;
Rectangle
{
id: specsRow
implicitWidth: base.width
implicitHeight: UM.Theme.sizes.sidebar_specs_bar.height
anchors.top: printJobRow.bottom
Item
{
id: time
width: (parent.width / 100 * 45) - UM.Theme.sizes.default_margin.width * 2
height: parent.height
anchors.left: parent.left
anchors.leftMargin: UM.Theme.sizes.default_margin.width
anchors.top: parent.top
visible: base.printMaterialAmount > 0 ? true : false
UM.RecolorImage
{
id: timeIcon
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
width: UM.Theme.sizes.save_button_specs_icons.width
height: UM.Theme.sizes.save_button_specs_icons.height
sourceSize.width: width
sourceSize.height: width
color: UM.Theme.colors.text_hover
source: UM.Theme.icons.print_time;
}
Label
{
id: timeSpec
anchors.verticalCenter: parent.verticalCenter
anchors.left: timeIcon.right
anchors.leftMargin: UM.Theme.sizes.default_margin.width/2
font: UM.Theme.fonts.default
color: UM.Theme.colors.text
text: (!base.printDuration || !base.printDuration.valid) ? "" : catalog.i18nc("@label","%1 h:m").arg(base.printDuration.getDisplayString(UM.DurationFormat.Short))
}
}
Item
{
width: parent.width / 100 * 55
height: parent.height
anchors.left: time.right
anchors.top: parent.top
visible: base.printMaterialAmount > 0 ? true : false
UM.RecolorImage
{
id: lengthIcon
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
width: UM.Theme.sizes.save_button_specs_icons.width
height: UM.Theme.sizes.save_button_specs_icons.height
sourceSize.width: width
sourceSize.height: width
color: UM.Theme.colors.text_hover
source: UM.Theme.icons.category_material;
}
Label
{
id: lengthSpec
anchors.verticalCenter: parent.verticalCenter
anchors.left: lengthIcon.right
anchors.leftMargin: UM.Theme.sizes.default_margin.width/2
font: UM.Theme.fonts.default
color: UM.Theme.colors.text
text: base.printMaterialAmount <= 0 ? "" : catalog.i18nc("@label","%1 m").arg(base.printMaterialAmount)
}
}
}
Item
{
id: saveRow
implicitWidth: base.width / 100 * 55
implicitHeight: saveToButton.height + (UM.Theme.sizes.default_margin.height / 2) // height + bottomMargin
anchors.top: specsRow.bottom
anchors.right: parent.right
anchors.rightMargin: UM.Theme.sizes.default_margin.width
Button
{
id: saveToButton
anchors.left: parent.left
anchors.leftMargin: UM.Theme.sizes.default_margin.width;
tooltip: UM.OutputDeviceManager.activeDeviceDescription;
enabled: progress > 0.99 && base.activity == true
width: infoBox.width/6*4.5
width: parent.width - UM.Theme.sizes.save_button_save_to_button.height - 2
height: UM.Theme.sizes.save_button_save_to_button.height
text: UM.OutputDeviceManager.activeDeviceShortDescription;
style: ButtonStyle {
background: Rectangle {
color: !control.enabled ? UM.Theme.colors.save_button_inactive : control.hovered ? UM.Theme.colors.save_button_active_hover : UM.Theme.colors.save_button_active;
style: ButtonStyle
{
background: Rectangle
{
color: control.hovered ? UM.Theme.colors.load_save_button_hover : UM.Theme.colors.load_save_button
Behavior on color { ColorAnimation { duration: 50; } }
Label {
Label
{
anchors.centerIn: parent
color: UM.Theme.colors.save_button_safe_to_text;
font: UM.Theme.fonts.sidebar_save_to;
color: UM.Theme.colors.load_save_button_text
font: UM.Theme.fonts.default
text: control.text;
}
}
@ -131,66 +191,54 @@ Rectangle {
onClicked: UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice)
}
Button {
Button
{
id: deviceSelectionMenu;
anchors.top: infoBox.bottom
anchors.topMargin: UM.Theme.sizes.save_button_text_margin.height
tooltip: catalog.i18nc("@action:button","Select the active output device");
anchors.right: parent.right
anchors.rightMargin: UM.Theme.sizes.default_margin.width;
tooltip: qsTr("Select the active output device");
width: infoBox.width/6*1.3 - UM.Theme.sizes.save_button_text_margin.height;
width: UM.Theme.sizes.save_button_save_to_button.height
height: UM.Theme.sizes.save_button_save_to_button.height
iconSource: UM.Theme.icons[UM.OutputDeviceManager.activeDeviceIconName];
//iconSource: UM.Theme.icons[UM.OutputDeviceManager.activeDeviceIconName];
style: ButtonStyle {
background: Rectangle {
color: UM.Theme.colors.save_button_background;
border.width: control.hovered ? UM.Theme.sizes.save_button_border.width : 0
border.color: UM.Theme.colors.save_button_border
id: deviceSelectionIcon
color: control.hovered ? UM.Theme.colors.load_save_button_hover : UM.Theme.colors.load_save_button
Behavior on color { ColorAnimation { duration: 50; } }
anchors.left: parent.left
anchors.leftMargin: UM.Theme.sizes.save_button_text_margin.width / 2;
width: parent.height
height: parent.height
Rectangle {
id: deviceSelectionIcon
color: UM.Theme.colors.save_button_background;
anchors.left: parent.left
anchors.leftMargin: UM.Theme.sizes.save_button_text_margin.width / 2;
anchors.verticalCenter: parent.verticalCenter;
width: parent.height - UM.Theme.sizes.save_button_text_margin.width ;
height: parent.height - UM.Theme.sizes.save_button_text_margin.width;
UM.RecolorImage {
anchors.fill: parent;
sourceSize.width: width;
sourceSize.height: height;
color: UM.Theme.colors.save_button_active
source: control.iconSource;
}
}
Label {
id: deviceSelectionArrow
anchors.right: parent.right;
anchors.rightMargin: UM.Theme.sizes.save_button_text_margin.height
anchors.verticalCenter: parent.verticalCenter;
text: "▼";
font: UM.Theme.fonts.tiny;
color: UM.Theme.colors.save_button_active;
UM.RecolorImage {
id: lengthIcon
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
width: UM.Theme.sizes.standard_arrow.width
height: UM.Theme.sizes.standard_arrow.height
sourceSize.width: width
sourceSize.height: width
color: UM.Theme.colors.load_save_button_text
source: UM.Theme.icons.arrow_bottom
}
}
label: Item { }
label: Label{ }
}
menu: Menu {
menu: Menu
{
id: devicesMenu;
Instantiator {
Instantiator
{
model: devicesModel;
MenuItem {
MenuItem
{
text: model.description
checkable: true;
checked: model.id == UM.OutputDeviceManager.activeDevice;
exclusiveGroup: devicesMenuGroup;
onTriggered: {
onTriggered:
{
UM.OutputDeviceManager.setActiveDevice(model.id);
}
}
@ -200,9 +248,6 @@ Rectangle {
ExclusiveGroup { id: devicesMenuGroup; }
}
}
UM.OutputDevicesModel { id: devicesModel; }
}
UM.OutputDevicesModel {
id: devicesModel;
}
}
}

View file

@ -6,42 +6,50 @@ import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
import QtQuick.Layouts 1.1
import UM 1.0 as UM
import UM 1.1 as UM
Rectangle {
Rectangle
{
id: base;
property Action addMachineAction;
property Action configureMachinesAction;
color: UM.Theme.colors.sidebar;
UM.I18nCatalog { id: catalog; name:"cura"}
function showTooltip(item, position, text) {
function showTooltip(item, position, text)
{
tooltip.text = text;
position = item.mapToItem(base, position.x, position.y / 2);
tooltip.show(position);
}
function hideTooltip() {
function hideTooltip()
{
tooltip.hide();
}
MouseArea {
MouseArea
{
anchors.fill: parent
acceptedButtons: Qt.AllButtons;
onWheel: {
onWheel:
{
wheel.accepted = true;
}
}
ColumnLayout {
ColumnLayout
{
anchors.fill: parent;
anchors.topMargin: UM.Theme.sizes.default_margin.height;
spacing: UM.Theme.sizes.default_margin.height;
SidebarHeader {
SidebarHeader
{
id: header;
Layout.fillWidth: true;
@ -50,9 +58,11 @@ Rectangle {
configureMachinesAction: base.configureMachinesAction;
modesModel: modesListModel;
currentModeIndex: {
currentModeIndex:
{
var index = parseInt(UM.Preferences.getValue("cura/active_mode"))
if(index) {
if(index)
{
return index;
}
return 0;
@ -60,7 +70,8 @@ Rectangle {
onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex);
}
Loader {
Loader
{
id: sidebarContents;
Layout.fillWidth: true;
@ -87,18 +98,21 @@ Rectangle {
}
}
SaveButton {
SaveButton
{
id: saveButton;
implicitWidth: base.width
implicitHeight: UM.Theme.sizes.save_button_text_margin.height * 2 + UM.Theme.sizes.save_button_slicing_bar.height + UM.Theme.sizes.save_button_save_to_button.height + UM.Theme.sizes.default_margin.height
implicitHeight: totalHeight
}
}
SidebarTooltip {
SidebarTooltip
{
id: tooltip;
}
ListModel {
ListModel
{
id: modesListModel;
//: Simple configuration mode option
ListElement { text: QT_TR_NOOP("Simple"); file: "SidebarSimple.qml" }
@ -106,10 +120,11 @@ Rectangle {
ListElement { text: QT_TR_NOOP("Advanced"); file: "SidebarAdvanced.qml" }
}
Component.onCompleted: {
Component.onCompleted:
{
for(var i = 0; i < modesListModel.count; ++i)
{
modesListModel.setProperty(i, "text", qsTr(modesListModel.get(i).text));
modesListModel.setProperty(i, "text", catalog.i18nc("@label", modesListModel.get(i).text));
}
}
}

View file

@ -6,9 +6,10 @@ import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
import QtQuick.Layouts 1.1
import UM 1.0 as UM
import UM 1.1 as UM
Column {
Column
{
id: base;
property variant modesModel;
@ -17,37 +18,43 @@ Column {
property Action configureMachinesAction;
spacing: UM.Theme.sizes.default_margin.height;
RowLayout {
UM.I18nCatalog { id: catalog; name:"cura"}
RowLayout
{
anchors.horizontalCenter: parent.horizontalCenter;
width: parent.width - UM.Theme.sizes.default_margin.width * 2;
height: UM.Theme.sizes.line.height;
Label {
Label
{
//: Configuration mode label
text: qsTr("Mode:");
text: catalog.i18nc("@label","Mode:");
font: UM.Theme.fonts.sidebar_header;
color: UM.Theme.colors.text_inactive;
}
ToolButton {
ToolButton
{
text: base.modesModel ? base.modesModel.get(modeMenu.currentIndex).text : "";
style: UM.Theme.styles.sidebar_header_button;
Layout.preferredWidth: base.width * 0.25;
menu: Menu {
menu: Menu
{
id: modeMenu;
property int currentIndex: 0;
Instantiator {
Instantiator
{
model: base.modesModel;
MenuItem {
MenuItem
{
text: model.text;
checkable: true;
checked: modeMenu.currentIndex == index;
@ -62,21 +69,24 @@ Column {
}
}
Rectangle {
Rectangle
{
width: 1;
height: parent.height;
color: UM.Theme.colors.border;
}
Label {
Label
{
//: Machine selection label
text: qsTr("Machine:");
text: catalog.i18nc("@label","Machine:");
font: UM.Theme.fonts.sidebar_header;
color: UM.Theme.colors.text_inactive;
}
ToolButton {
ToolButton
{
id: machineButton;
text: UM.Application.machineName;
tooltip: UM.Application.machineName;
@ -85,11 +95,14 @@ Column {
Layout.fillWidth: true;
menu: Menu {
menu: Menu
{
id: machineMenu;
Instantiator {
Instantiator
{
model: UM.Models.machinesModel
MenuItem {
MenuItem
{
text: model.name;
checkable: true;
checked: model.active;
@ -110,14 +123,15 @@ Column {
}
}
UM.SidebarCategoryHeader {
UM.SidebarCategoryHeader
{
width: parent.width;
height: UM.Theme.sizes.section.height;
iconSource: UM.Theme.icons.printsetup;
//: Sidebar header label
text: qsTr("Print Setup");
text: catalog.i18nc("@label","Print Setup");
enabled: false;
color: UM.Theme.colors.primary;

View file

@ -6,9 +6,10 @@ import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
import QtQuick.Layouts 1.1
import UM 1.0 as UM
import UM 1.1 as UM
Item {
Item
{
id: base;
anchors.fill: parent;
@ -22,44 +23,47 @@ Item {
Component.onCompleted: PrintInformation.enabled = true
Component.onDestruction: PrintInformation.enabled = false
ColumnLayout {
UM.I18nCatalog { id: catalog; name:"cura"}
ColumnLayout
{
anchors.fill: parent;
Item {
Item
{
Layout.fillWidth: true;
Layout.preferredHeight: UM.Theme.sizes.section.height;
Label {
Label
{
anchors.left: parent.left;
anchors.verticalCenter: parent.verticalCenter;
text: base.minimumPrintTime.valid ? base.minimumPrintTime.getDisplayString(UM.DurationFormat.Short) : "??:??";
font: UM.Theme.fonts.timeslider_time;
color: UM.Theme.colors.primary;
}
Label {
Label
{
anchors.centerIn: parent;
text: {
text: //: Sidebar configuration label
{
if (UM.Backend.progress < 0)
{
//: Sidebar configuration label
return qsTr("No Model Loaded");
return catalog.i18nc("@label","No Model Loaded");
}
else if (!base.minimumPrintTime.valid || !base.maximumPrintTime.valid)
{
//: Sidebar configuration label
return qsTr("Calculating...")
return catalog.i18nc("@label","Calculating...")
}
else
{
//: Sidebar configuration label
return qsTr("Estimated Print Time");
return catalog.i18nc("@label","Estimated Print Time");
}
}
color: UM.Theme.colors.text;
font: UM.Theme.fonts.default;
}
Label {
Label
{
anchors.right: parent.right;
anchors.verticalCenter: parent.verticalCenter;
text: base.maximumPrintTime.valid ? base.maximumPrintTime.getDisplayString(UM.DurationFormat.Short) : "??:??";
@ -68,7 +72,8 @@ Item {
}
}
Slider {
Slider
{
Layout.fillWidth: true;
Layout.preferredHeight: UM.Theme.sizes.section.height;
@ -81,38 +86,42 @@ Item {
style: UM.Theme.styles.slider;
}
Item {
Item
{
Layout.fillWidth: true;
Layout.preferredHeight: UM.Theme.sizes.section.height;
Label {
Label
{
anchors.left: parent.left;
anchors.verticalCenter: parent.verticalCenter;
//: Quality slider label
text: qsTr("Minimum\nDraft");
text: catalog.i18nc("@label","Minimum\nDraft");
color: UM.Theme.colors.text;
font: UM.Theme.fonts.default;
}
Label {
Label
{
anchors.right: parent.right;
anchors.verticalCenter: parent.verticalCenter;
//: Quality slider label
text: qsTr("Maximum\nQuality");
text: catalog.i18nc("@label","Maximum\nQuality");
horizontalAlignment: Text.AlignRight;
color: UM.Theme.colors.text;
font: UM.Theme.fonts.default;
}
}
CheckBox {
CheckBox
{
Layout.fillWidth: true;
Layout.preferredHeight: UM.Theme.sizes.section.height;
//: Setting checkbox
text: qsTr("Enable Support");
text: catalog.i18nc("@action:checkbox","Enable Support");
style: UM.Theme.styles.checkbox;

View file

@ -13,8 +13,9 @@ Item {
width: buttons.width;
height: buttons.height
property int activeY
RowLayout {
ColumnLayout {
id: buttons;
anchors.bottom: parent.bottom;
@ -39,26 +40,30 @@ Item {
//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);
onClicked: {
parent.checked ? UM.Controller.setActiveTool(null) : UM.Controller.setActiveTool(model.id);
base.activeY = parent.y
}
}
}
}
}
Rectangle {
width: base.width - 10
height: base.height
z: parent.z - 1
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
color: UM.Theme.colors.lining
}
width: base.width
height: base.height
z: parent.z - 1
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
color: UM.Theme.colors.lining
}
Rectangle {
id: panelBackground;
anchors.left: parent.left;
anchors.top: buttons.bottom;
anchors.left: parent.right;
y: base.activeY
width: panel.item ? Math.max(panel.width + 2 * UM.Theme.sizes.default_margin.width) : 0;
height: panel.item ? panel.height + 2 * UM.Theme.sizes.default_margin.height : 0;

View file

@ -6,14 +6,14 @@ import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.1
import UM 1.0 as UM
import UM 1.1 as UM
UM.PreferencesPage
{
id: preferencesPage
//: View configuration page title
title: qsTr("View");
title: catalog.i18nc("@title:window","View");
function reset()
{
@ -26,7 +26,7 @@ UM.PreferencesPage
GridLayout
{
columns: 2;
UM.I18nCatalog { id: catalog; name:"cura"}
CheckBox
{
id: overhangCheckbox
@ -38,18 +38,21 @@ UM.PreferencesPage
id: viewText //is a button so the user doesn't have te click inconvenientley precise to enable or disable the checkbox
//: Display Overhang preference checkbox
text: qsTr("Display Overhang");
text: catalog.i18nc("@action:button","Display Overhang");
onClicked: overhangCheckbox.checked = !overhangCheckbox.checked
//: Display Overhang preference tooltip
tooltip: "Highlight unsupported areas of the model in red. Without support these areas will nog print properly."
tooltip: catalog.i18nc("@info:tooltip","Highlight unsupported areas of the model in red. Without support these areas will nog print properly."
style: ButtonStyle {
background: Rectangle {
style: ButtonStyle
{
background: Rectangle
{
border.width: 0
color: "transparent"
}
label: Text {
label: Text
{
renderType: Text.NativeRendering
horizontalAlignment: Text.AlignLeft
text: control.text
@ -68,11 +71,11 @@ UM.PreferencesPage
id: centerText //is a button so the user doesn't have te click inconvenientley precise to enable or disable the checkbox
//: Display Overhang preference checkbox
text: qsTr("Center camera when item is selected");
text: catalog.i18nc("@action:button","Center camera when item is selected");
onClicked: centerCheckbox.checked = !centerCheckbox.checked
//: Display Overhang preference tooltip
tooltip: "Moves the camera so the object is in the center of the view when an object is selected"
tooltip: catalog.i18nc("@info:tooltip","Moves the camera so the object is in the center of the view when an object is selected")
style: ButtonStyle
{

View file

@ -7,7 +7,7 @@ import QtQuick.Layouts 1.1
import QtQuick.Window 2.1
import QtQuick.Controls.Styles 1.1
import UM 1.0 as UM
import UM 1.1 as UM
import ".."
ColumnLayout
@ -19,12 +19,12 @@ ColumnLayout
property var manufacturers: wizardPage.lineManufacturers()
property int manufacturerIndex: 0
SystemPalette{id: palette}
SystemPalette {id: palette}
signal reloadModel(var newModel)
width: wizardPage.pageWidth
height: wizardPage.pageHeight
UM.I18nCatalog { id: catalog; name: "cura"}
Connections
{
target: elementRoot
@ -62,7 +62,7 @@ ColumnLayout
anchors.left: parent.left
anchors.top: title.bottom
//: Add Printer wizard page description
text: qsTr("Please select the type of printer:");
text: catalog.i18nc("@label","Please select the type of printer:");
}
ScrollView
@ -179,7 +179,7 @@ ColumnLayout
visible: model.author != "Ultimaker" ? true : false
height: wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer ? UM.Theme.sizes.standard_list_lineheight.height : 0
//: Printer profile caption meaning: this profile is supported by the community
text: qsTr("community supported profile");
text: catalog.i18nc("@label","community supported profile");
opacity: wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer ? 1 : 0
anchors.left: machineButton.right
anchors.leftMargin: UM.Theme.sizes.standard_list_lineheight.height/2
@ -231,7 +231,7 @@ ColumnLayout
{
id: insertNameLabel
//: Add Printer wizard field label
text: qsTr("Printer Name:");
text: catalog.i18nc("@label","Printer Name:");
}
TextField
{

View file

@ -6,7 +6,7 @@ import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
import QtQuick.Window 2.1
import UM 1.0 as UM
import UM 1.1 as UM
Item
{
@ -14,7 +14,7 @@ Item
property string title
SystemPalette{id: palette}
UM.I18nCatalog { id: catalog; name:"cura"}
ScrollView
{
height: parent.height
@ -36,7 +36,7 @@ Item
//: Add UM Original wizard page description
width: parent.width
wrapMode: Text.WordWrap
text: qsTr("To assist you in having better default settings for your Ultimaker. Cura would like to know which upgrades you have in your machine:")
text: catalog.i18nc("@label","To assist you in having better default settings for your Ultimaker. Cura would like to know which upgrades you have in your machine:")
}
Column
@ -46,19 +46,19 @@ Item
CheckBox
{
text: qsTr("Extruder driver ugrades")
text: catalog.i18nc("@action:checkbox","Extruder driver ugrades")
}
CheckBox
{
text: qsTr("Heated printer bed (kit)")
text: catalog.i18nc("@action:checkbox","Heated printer bed (kit)")
}
CheckBox
{
text: qsTr("Heated printer bed (self built)")
text: catalog.i18nc("@action:checkbox","Heated printer bed (self built)")
}
CheckBox
{
text: qsTr("Dual extrusion (experimental)")
text: catalog.i18nc("@action:checkbox","Dual extrusion (experimental)")
checked: true
}
}
@ -67,14 +67,14 @@ Item
{
width: parent.width
wrapMode: Text.WordWrap
text: qsTr("If you have an Ultimaker bought after october 2012 you will have the Extruder drive upgrade. If you do not have this upgrade, it is highly recommended to improve reliability.");
text: catalog.i18nc("@label","If you have an Ultimaker bought after october 2012 you will have the Extruder drive upgrade. If you do not have this upgrade, it is highly recommended to improve reliability.");
}
Label
{
width: parent.width
wrapMode: Text.WordWrap
text: qsTr("This upgrade can be bought from the Ultimaker webshop or found on thingiverse as thing:26094");
text: catalog.i18nc("@label","This upgrade can be bought from the Ultimaker webshop or found on thingiverse as thing:26094");
}
}
}

View file

@ -6,7 +6,7 @@ import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
import QtQuick.Window 2.1
import UM 1.0 as UM
import UM 1.1 as UM
Column
{
@ -23,7 +23,7 @@ Column
Component.onCompleted: printer_connection.startPollEndstop()
Component.onDestruction: printer_connection.stopPollEndstop()
UM.I18nCatalog { id: catalog; name:"cura"}
Label
{
text: parent.title
@ -33,14 +33,14 @@ Column
Label
{
//: Add Printer wizard page description
text: qsTr("It's a good idea to do a few sanity checks on your Ultimaker. \n You can skip these if you know your machine is functional");
text: catalog.i18nc("@label","It's a good idea to do a few sanity checks on your Ultimaker. \n You can skip these if you know your machine is functional");
}
Row
{
Label
{
text: qsTr("Connection: ")
text: catalog.i18nc("@label","Connection: ")
}
Label
{
@ -51,22 +51,22 @@ Column
{
Label
{
text: qsTr("Min endstop X: ")
text: catalog.i18nc("@label","Min endstop X: ")
}
Label
{
text: x_min_pressed ? qsTr("Works") : qsTr("Not checked")
text: x_min_pressed ? catalog.i18nc("@label","Works") : catalog.i18nc("@label","Not checked")
}
}
Row
{
Label
{
text: qsTr("Min endstop Y: ")
text: catalog.i18nc("@label","Min endstop Y: ")
}
Label
{
text: y_min_pressed ? qsTr("Works") : qsTr("Not checked")
text: y_min_pressed ? catalog.i18nc("@label","Works") : catalog.i18nc("@label","Not checked")
}
}
@ -74,11 +74,11 @@ Column
{
Label
{
text: qsTr("Min endstop Z: ")
text: catalog.i18nc("@label","Min endstop Z: ")
}
Label
{
text: z_min_pressed ? qsTr("Works") : qsTr("Not checked")
text: z_min_pressed ? catalog.i18nc("@label","Works") : catalog.i18nc("@label","Not checked")
}
}
@ -86,7 +86,7 @@ Column
{
Label
{
text: qsTr("Nozzle temperature check: ")
text: catalog.i18nc("@label","Nozzle temperature check: ")
}
Label
{
@ -94,10 +94,10 @@ Column
}
Button
{
text: "Start heating"
text: catalog.i18nc("@action:button","Start heating")
onClicked:
{
heater_status_label.text = qsTr("Checking")
heater_status_label.text = catalog.i18nc("@label","Checking")
printer_connection.heatupNozzle(190)
wizardPage.extruder_target_temp = 190
}
@ -105,7 +105,7 @@ Column
Label
{
id: heater_status_label
text: qsTr("Not checked")
text: catalog.i18nc("@label","Not checked")
}
}
@ -113,7 +113,7 @@ Column
{
Label
{
text: qsTr("bed temperature check: ")
text: catalog.i18nc("@label","bed temperature check: ")
}
Label
{
@ -121,10 +121,10 @@ Column
}
Button
{
text: "Start heating"
text: catalog.i18nc("@action:button","Start heating")
onClicked:
{
bed_status_label.text = qsTr("Checking")
bed_status_label.text = catalog.i18nc("@label","Checking")
printer_connection.printer.heatupBed(60)
wizardPage.bed_target_temp = 60
}
@ -132,7 +132,7 @@ Column
Label
{
id: bed_status_label
text: qsTr("Not checked")
text: catalog.i18nc("@label","Not checked")
}
}
@ -159,7 +159,7 @@ Column
{
if(printer_connection.extruderTemperature > wizardPage.extruder_target_temp - 10 && printer_connection.extruderTemperature < wizardPage.extruder_target_temp + 10)
{
heater_status_label.text = qsTr("Works")
heater_status_label.text = catalog.i18nc("@label","Works")
printer_connection.heatupNozzle(0)
}
}
@ -167,7 +167,7 @@ Column
{
if(printer_connection.bedTemperature > wizardPage.bed_target_temp - 5 && printer_connection.bedTemperature < wizardPage.bed_target_temp + 5)
{
bed_status_label.text = qsTr("Works")
bed_status_label.text = catalog.i18nc("@label","Works")
printer_connection.heatupBed(0)
}
}

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 10 10" xml:space="preserve">
<path d="M8.4,2.7c0.3-0.3,0.7-0.3,1,0c0.3,0.3,0.3,0.7,0,1L5.4,7.5c-0.3,0.3-0.7,0.3-1,0L0.6,3.6c-0.3-0.3-0.3-0.7,0-1
c0.3-0.3,0.7-0.3,1,0L5,5.8L8.4,2.7z"/>
</svg>

After

Width:  |  Height:  |  Size: 493 B

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 10 10" xml:space="preserve">
<path d="M7.4,8.5c0.3,0.3,0.3,0.7,0,1c-0.3,0.3-0.7,0.3-1,0L2.6,5.6c-0.3-0.3-0.3-0.7,0-1l3.8-3.9c0.3-0.3,0.7-0.3,1,0
c0.3,0.3,0.3,0.7,0,1L4.2,5.1L7.4,8.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 495 B

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 10 10" xml:space="preserve">
<path d="M2.6,1.7c-0.3-0.3-0.3-0.7,0-1c0.3-0.3,0.7-0.3,1,0l3.8,3.9c0.3,0.3,0.3,0.7,0,1L3.5,9.5c-0.3,0.3-0.7,0.3-1,0
c-0.3-0.3-0.3-0.7,0-1l3.1-3.4L2.6,1.7z"/>
</svg>

After

Width:  |  Height:  |  Size: 496 B

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="-415 293.3 10 10" xml:space="preserve">
<path d="M-413.5,300.8c-0.3,0.3-0.7,0.3-1,0s-0.3-0.7,0-1l3.9-3.8c0.3-0.3,0.7-0.3,1,0l3.9,3.8c0.3,0.3,0.3,0.7,0,1
c-0.3,0.3-0.7,0.3-1,0l-3.3-3.2L-413.5,300.8z"/>
</svg>

After

Width:  |  Height:  |  Size: 506 B

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 30 30" xml:space="preserve">
<g>
<rect x="0" y="24.4" width="6" height="2.1"/>
<rect x="0" y="27.9" width="3" height="2.1"/>
<rect x="0" y="21" width="9" height="2.1"/>
<rect x="0" y="14" width="15" height="2.1"/>
<rect x="0" y="17.5" width="12" height="2.1"/>
<rect x="0" y="10.5" width="18" height="2.1"/>
<rect x="0" y="3.5" width="24" height="2.1"/>
<rect x="0" y="7" width="21" height="2.1"/>
<rect x="0" y="0" width="27" height="2.1"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 773 B

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 30 30" xml:space="preserve">
<g>
<g>
<rect x="0" y="0" width="1.2" height="30"/>
<rect x="28.8" y="0" width="1.2" height="30"/>
<rect x="0" y="28.8" width="30" height="1.2"/>
<rect x="0" y="0" width="30" height="1.2"/>
</g>
<rect x="14.4" y="-5.4" transform="matrix(0.7071 0.7071 -0.7071 0.7071 15.0003 -6.2132)" width="1.2" height="40.8"/>
<rect x="14.4" y="-5.4" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -6.2132 14.9997)" width="1.2" height="40.8"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 791 B

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 30 30" xml:space="preserve">
<g>
<g>
<rect x="0" y="0" width="1.2" height="30"/>
<rect x="28.8" y="0" width="1.2" height="30"/>
<rect x="0" y="28.8" width="30" height="1.2"/>
<rect x="0" y="0" width="30" height="1.2"/>
</g>
<rect x="14.4" y="-5.4" transform="matrix(0.7071 0.7071 -0.7071 0.7071 14.9999 -6.2122)" width="1.2" height="40.8"/>
<polygon points="0.7,10 0.1,8.9 9,0.1 9.8,0.9 "/>
<rect x="24.5" y="19" transform="matrix(0.7071 0.7071 -0.7071 0.7071 25.0689 -10.4098)" width="1.2" height="12.2"/>
<rect x="14.4" y="-5.4" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -6.2136 14.9987)" width="1.2" height="40.8"/>
<polyline points="0.8,20.1 9.6,29 8.8,29.8 0,21 "/>
<rect x="24.5" y="-1.2" transform="matrix(0.7071 -0.7071 0.7071 0.7071 3.8484 19.2136)" width="1.2" height="12.2"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 20 20" xml:space="preserve">
<rect x="0" y="0" width="20" height="20"/>
<polygon fill="#FFFFFF" points="16.5,11.3 11.3,11.3 11.3,16.5 8.7,16.5 8.7,11.3 3.5,11.3 3.5,8.7 8.7,8.7 8.7,3.5 11.3,3.5
11.3,8.7 16.5,8.7 "/>
</svg>

After

Width:  |  Height:  |  Size: 527 B

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 30 30" xml:space="preserve">
<path d="M16.5,14V6h-3v9.4l-5.3,3.1L9.7,21l6.2-3.6c0.4-0.2,0.6-0.7,0.6-1.1v-0.3l6.4-6.2c-0.3-0.4-0.6-0.8-1-1.1L16.5,14z M15,26.4
C8.7,26.4,3.6,21.3,3.6,15C3.6,8.7,8.7,3.6,15,3.6c6.3,0,11.4,5.1,11.4,11.4C26.4,21.3,21.3,26.4,15,26.4z M15,0.6
C7,0.6,0.6,7,0.6,15C0.6,23,7,29.4,15,29.4c8,0,14.4-6.4,14.4-14.4C29.4,7,23,0.6,15,0.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 670 B

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 30 30" xml:space="preserve">
<g>
<rect x="0" width="27" height="8.5"/>
<rect x="0" y="10.7" width="18" height="8.5"/>
<rect x="0" y="21.5" width="9" height="8.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 483 B

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 30 30" xml:space="preserve">
<path d="M30,20L25.1,6.7L27.6,0H12.9l1.6,5H7.1H6.9H6.4l2.3,6H2.4l2.4,6.2L0,30h19.5l-1.7-4h7.5h0.1h0.6l-2.3-6H30z M17.5,25
l-2.8-7.5l2.4-6.5H9.6L7.7,6h7.2h7.5l-2.4,6.4l2.9,7.6l2,5H17.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 526 B

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 30 30" xml:space="preserve">
<g>
<path d="M30,0L30,0L0,0v30h0h30V0z M12.4,28.8L1.2,17.6v-0.2L12.5,6.1l11.4,11.4L12.6,28.8H12.4z M1.2,7l4.4,4.4l-4.4,4.4V7z
M1.2,19.3l4.4,4.4L1.2,28V19.3z M28.8,8.6l-7.4-7.4h7.4L28.8,8.6z M19.8,1.2l4.1,4.1l-5.3,5.3l-5.3-5.3l4.2-4.2H19.8z M15.8,1.2
l-3.3,3.3L9.2,1.2H15.8z M1.2,1.2h6.4l4.2,4.2l-5.3,5.3L1.2,5.4V1.2z M2,28.8l4.4-4.4l4.4,4.4H2z M14.2,28.8l4.4-4.4l4.4,4.4H14.2z
M28.8,28.8h-4.2l-5.2-5.2l5.3-5.3l4.1,4.1V28.8z M28.8,20.8l-3.3-3.3l3.3-3.3V20.8z M24.7,16.7l-5.3-5.3l5.3-5.3l4.1,4.1v2.3
L24.7,16.7z"/>
<rect x="12.7" y="3.3" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -9.0598 14.7879)" width="1.2" height="30"/>
<rect x="15.1" y="-5.1" transform="matrix(0.7071 0.7071 -0.7071 0.7071 14.7286 -6.8835)" width="1.2" height="38.9"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 30 30" xml:space="preserve">
<g>
<rect x="0" y="24.4" width="6" height="2.1"/>
<rect x="0" y="27.9" width="3" height="2.1"/>
<rect x="0" y="21" width="9" height="2.1"/>
<rect x="0" y="14" width="15" height="2.1"/>
<rect x="0" y="17.5" width="12" height="2.1"/>
<rect x="0" y="10.5" width="18" height="2.1"/>
<rect x="0" y="3.5" width="24" height="2.1"/>
<rect x="0" y="7" width="21" height="2.1"/>
<rect x="0" y="0" width="27" height="2.1"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 773 B

View file

@ -67,11 +67,14 @@ QtObject {
Rectangle {
id: tool_button_background
anchors.top: parent.bottom
anchors.left: parent.right
anchors.verticalCenter: parent.verticalCenter
//anchors.top: parent.bottom
width: label.width > parent.width ? label.width : parent.width
height: control.hovered ? label.height : 0;
Behavior on height { NumberAnimation { duration: 100; } }
//width: label.width > parent.width ? label.width : parent.width
width: control.hovered ? label.width : 0;
height: label.height
Behavior on width { NumberAnimation { duration: 100; } }
opacity: control.hovered ? 1.0 : 0.0;
Behavior on opacity { NumberAnimation { duration: 100; } }

View file

@ -32,10 +32,6 @@
"capitalize": true,
"family": "ProximaNova"
},
"sidebar_save_to": {
"size": 1.0,
"family": "ProximaNova"
},
"timeslider_time": {
"size": 1.0,
"bold": true,
@ -64,9 +60,12 @@
"text": [140, 144, 154, 255],
"text_inactive": [174, 174, 174, 255],
"text_white": [255, 255, 255, 255],
"text_hover": [35, 35, 35, 255],
"text_pressed": [12, 169, 227, 255],
"sidebar_header_bar": [12, 169, 227, 255],
"button": [139, 143, 153, 255],
"button_hover": [77, 184, 226, 255],
"button_active": [32, 166, 219, 255],
@ -142,14 +141,20 @@
"window_margin": [2.0, 2.0],
"default_margin": [1.0, 1.0],
"default_lining": [0.1, 0.1],
"panel": [22.0, 10.0],
"logo": [9.5, 2.0],
"toolbar_button": [2.0, 2.0],
"toolbar_spacing": [1.0, 1.0],
"loadfile_button": [11.0, 2.4],
"loadfile_margin": [0.8, 0.4],
"sidebar": [24.0, 10.0],
"sidebar_header": [0.0, 3.2],
"sidebar_subParts": [0.0, 2.4],
"sidebar_specs_bar": [0.0, 2.2],
"sidebar_inputFields": [0.0, 1.9],
"section": [22.0, 3.0],
"section_icon": [2.14, 2.14],
"section_text_margin": [0.33, 0.33],
@ -162,6 +167,7 @@
"standard_list_lineheight": [1.5, 1.5],
"standard_list_input": [20.0, 25.0],
"standard_arrow": [0.6, 0.6],
"button": [3.2, 3.2],
"button_icon": [2.5, 2.5],
@ -189,6 +195,7 @@
"save_button_slicing_bar": [0.0, 2.2],
"save_button_label_margin": [0.5, 0.5],
"save_button_save_to_button": [0.3, 2.7],
"save_button_specs_icons": [1.4, 1.4],
"modal_window_minimum": [30.0, 30.0],
"wizard_progress": [10.0, 0.0],