mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-14 01:05:51 +08:00
Merge branch '4.9' of github.com:Ultimaker/Cura into CURA_8200_PETG_profiles
This commit is contained in:
commit
c53fde7612
@ -123,7 +123,7 @@ class DFFileExportAndUploadManager:
|
||||
if isinstance(file_upload_response, DFLibraryFileUploadResponse):
|
||||
file_name = file_upload_response.file_name
|
||||
elif isinstance(file_upload_response, DFPrintJobUploadResponse):
|
||||
file_name = file_upload_response.job_name
|
||||
file_name = file_upload_response.job_name if file_upload_response.job_name is not None else ""
|
||||
else:
|
||||
Logger.log("e", "Wrong response type received. Aborting uploading file to the Digital Library")
|
||||
return
|
||||
@ -273,7 +273,7 @@ class DFFileExportAndUploadManager:
|
||||
if reply_body:
|
||||
reply_dict = json.loads(reply_body)
|
||||
if "errors" in reply_dict and len(reply_dict["errors"]) >= 1 and "title" in reply_dict["errors"][0]:
|
||||
error_title = reply_dict["errors"][0]["title"] # type: str
|
||||
error_title = reply_dict["errors"][0]["title"]
|
||||
return error_title
|
||||
|
||||
def _onUploadError(self, filename: str, reply: "QNetworkReply", error: "QNetworkReply.NetworkError") -> None:
|
||||
|
@ -83,8 +83,10 @@ class DFFileUploader:
|
||||
"""
|
||||
if self._finished:
|
||||
raise ValueError("The upload is already finished")
|
||||
|
||||
Logger.log("i", "Uploading DF file to project '{library_project_id}' via link '{upload_url}'".format(library_project_id = self._df_file.library_project_id, upload_url = self._df_file.upload_url))
|
||||
if isinstance(self._df_file, DFLibraryFileUploadResponse):
|
||||
Logger.log("i", "Uploading Cura project file '{file_name}' via link '{upload_url}'".format(file_name = self._df_file.file_name, upload_url = self._df_file.upload_url))
|
||||
elif isinstance(self._df_file, DFPrintJobUploadResponse):
|
||||
Logger.log("i", "Uploading Cura print file '{file_name}' via link '{upload_url}'".format(file_name = self._df_file.job_name, upload_url = self._df_file.upload_url))
|
||||
self._http.put(
|
||||
url = cast(str, self._df_file.upload_url),
|
||||
headers_dict = {"Content-Type": cast(str, self._df_file.content_type)},
|
||||
|
@ -24,6 +24,7 @@ from .DFLibraryFileUploadResponse import DFLibraryFileUploadResponse
|
||||
from .DFPrintJobUploadRequest import DFPrintJobUploadRequest
|
||||
from .DigitalFactoryFileResponse import DigitalFactoryFileResponse
|
||||
from .DigitalFactoryProjectResponse import DigitalFactoryProjectResponse
|
||||
from .PaginationLinks import PaginationLinks
|
||||
from .PaginationManager import PaginationManager
|
||||
|
||||
CloudApiClientModel = TypeVar("CloudApiClientModel", bound=BaseModel)
|
||||
@ -104,7 +105,7 @@ class DigitalFactoryApiClient:
|
||||
"""
|
||||
|
||||
if self.hasMoreProjectsToLoad():
|
||||
url = self._projects_pagination_mgr.links.next_page
|
||||
url = cast(PaginationLinks, cast(PaginationManager, self._projects_pagination_mgr).links).next_page
|
||||
self._http.get(url,
|
||||
scope = self._scope,
|
||||
callback = self._parseCallback(on_finished, DigitalFactoryProjectResponse, failed, pagination_manager = self._projects_pagination_mgr),
|
||||
@ -119,7 +120,7 @@ class DigitalFactoryApiClient:
|
||||
|
||||
:return: Whether there are more pages in the projects list available to be retrieved from the API.
|
||||
"""
|
||||
return self._projects_pagination_mgr and self._projects_pagination_mgr.links and self._projects_pagination_mgr.links.next_page is not None
|
||||
return self._projects_pagination_mgr is not None and self._projects_pagination_mgr.links is not None and self._projects_pagination_mgr.links.next_page is not None
|
||||
|
||||
def getListOfFilesInProject(self, library_project_id: str, on_finished: Callable[[List[DigitalFactoryFileResponse]], Any], failed: Callable) -> None:
|
||||
"""Retrieves the list of files contained in the project with library_project_id from the Digital Factory Library.
|
||||
@ -293,7 +294,7 @@ class DigitalFactoryApiClient:
|
||||
self._file_uploader = DFFileUploader(self._http, df_file_upload_response, mesh, on_finished, on_success, on_progress, on_error)
|
||||
self._file_uploader.start()
|
||||
|
||||
def createNewProject(self, project_name: str, on_finished: Callable[[CloudApiClientModel], Any], on_error: Callable) -> None:
|
||||
def createNewProject(self, project_name: str, on_finished: Callable[[DigitalFactoryProjectResponse], Any], on_error: Callable) -> None:
|
||||
""" Create a new project in the Digital Factory.
|
||||
|
||||
:param project_name: Name of the new to be created project.
|
||||
@ -314,4 +315,5 @@ class DigitalFactoryApiClient:
|
||||
timeout = self.DEFAULT_REQUEST_TIMEOUT)
|
||||
|
||||
def clear(self) -> None:
|
||||
self._projects_pagination_mgr.reset()
|
||||
if self._projects_pagination_mgr is not None:
|
||||
self._projects_pagination_mgr.reset()
|
||||
|
@ -6,7 +6,7 @@ import tempfile
|
||||
import threading
|
||||
from enum import IntEnum
|
||||
from pathlib import Path
|
||||
from typing import Optional, List, Dict, Any
|
||||
from typing import Optional, List, Dict, Any, cast
|
||||
|
||||
from PyQt5.QtCore import pyqtSignal, QObject, pyqtSlot, pyqtProperty, Q_ENUMS, QUrl
|
||||
from PyQt5.QtNetwork import QNetworkReply
|
||||
@ -97,7 +97,7 @@ class DigitalFactoryController(QObject):
|
||||
|
||||
self.file_handlers = {} # type: Dict[str, FileHandler]
|
||||
self.nodes = None # type: Optional[List[SceneNode]]
|
||||
self.file_upload_manager = None
|
||||
self.file_upload_manager = None # type: Optional[DFFileExportAndUploadManager]
|
||||
self._has_preselected_project = False # type: bool
|
||||
|
||||
self._api = DigitalFactoryApiClient(self._application, on_error = lambda error: Logger.log("e", str(error)), projects_limit_per_page = 20)
|
||||
@ -149,7 +149,7 @@ class DigitalFactoryController(QObject):
|
||||
|
||||
:return: True if the user account has Digital Library access, else False
|
||||
"""
|
||||
subscriptions = [] # type: Optional[List[Dict[str, Any]]]
|
||||
subscriptions = [] # type: List[Dict[str, Any]]
|
||||
if self._account.userProfile:
|
||||
subscriptions = self._account.userProfile.get("subscriptions", [])
|
||||
return len(subscriptions) > 0
|
||||
@ -339,47 +339,44 @@ class DigitalFactoryController(QObject):
|
||||
self.setCreatingNewProjectStatus(RetrievalStatus.Failed)
|
||||
Logger.log("e", "Something went wrong while trying to create a new a project. Error: {}".format(reply_string))
|
||||
|
||||
# The new_status type is actually "RetrievalStatus" but since the RetrievalStatus cannot be an enum, we leave it as int
|
||||
def setRetrievingProjectsStatus(self, new_status: int) -> None:
|
||||
def setRetrievingProjectsStatus(self, new_status: RetrievalStatus) -> None:
|
||||
"""
|
||||
Sets the status of the "retrieving library projects" http call.
|
||||
|
||||
:param new_status: The new status
|
||||
"""
|
||||
self.retrieving_projects_status = new_status
|
||||
self.retrievingProjectsStatusChanged.emit(new_status)
|
||||
self.retrievingProjectsStatusChanged.emit(int(new_status))
|
||||
|
||||
@pyqtProperty(int, fset = setRetrievingProjectsStatus, notify = retrievingProjectsStatusChanged)
|
||||
def retrievingProjectsStatus(self) -> int:
|
||||
return self.retrieving_projects_status
|
||||
return int(self.retrieving_projects_status)
|
||||
|
||||
# The new_status type is actually "RetrievalStatus" but since the RetrievalStatus cannot be an enum, we leave it as int
|
||||
def setRetrievingFilesStatus(self, new_status: int) -> None:
|
||||
def setRetrievingFilesStatus(self, new_status: RetrievalStatus) -> None:
|
||||
"""
|
||||
Sets the status of the "retrieving files list in the selected library project" http call.
|
||||
|
||||
:param new_status: The new status
|
||||
"""
|
||||
self.retrieving_files_status = new_status
|
||||
self.retrievingFilesStatusChanged.emit(new_status)
|
||||
self.retrievingFilesStatusChanged.emit(int(new_status))
|
||||
|
||||
@pyqtProperty(int, fset = setRetrievingFilesStatus, notify = retrievingFilesStatusChanged)
|
||||
def retrievingFilesStatus(self) -> int:
|
||||
return self.retrieving_files_status
|
||||
return int(self.retrieving_files_status)
|
||||
|
||||
# The new_status type is actually "RetrievalStatus" but since the RetrievalStatus cannot be an enum, we leave it as int
|
||||
def setCreatingNewProjectStatus(self, new_status: int) -> None:
|
||||
def setCreatingNewProjectStatus(self, new_status: RetrievalStatus) -> None:
|
||||
"""
|
||||
Sets the status of the "creating new library project" http call.
|
||||
|
||||
:param new_status: The new status
|
||||
"""
|
||||
self.creating_new_project_status = new_status
|
||||
self.creatingNewProjectStatusChanged.emit(new_status)
|
||||
self.creatingNewProjectStatusChanged.emit(int(new_status))
|
||||
|
||||
@pyqtProperty(int, fset = setCreatingNewProjectStatus, notify = creatingNewProjectStatusChanged)
|
||||
def creatingNewProjectStatus(self) -> int:
|
||||
return self.creating_new_project_status
|
||||
return int(self.creating_new_project_status)
|
||||
|
||||
@staticmethod
|
||||
def _onEngineCreated() -> None:
|
||||
@ -388,16 +385,6 @@ class DigitalFactoryController(QObject):
|
||||
def _applicationInitializationFinished(self) -> None:
|
||||
self._supported_file_types = self._application.getInstance().getMeshFileHandler().getSupportedFileTypesRead()
|
||||
|
||||
@pyqtSlot("QList<int>")
|
||||
def setSelectedFileIndices(self, file_indices: List[int]) -> None:
|
||||
"""
|
||||
Sets the index of the file which is currently selected in the list of files.
|
||||
|
||||
:param file_indices: A list of the indices of the currently selected files
|
||||
"""
|
||||
self._selected_file_indices = file_indices
|
||||
self.selectedFileIndicesChanged.emit(file_indices)
|
||||
|
||||
@pyqtSlot()
|
||||
def openSelectedFiles(self) -> None:
|
||||
""" Downloads, then opens all files selected in the Qt frontend open dialog.
|
||||
@ -546,7 +533,7 @@ class DigitalFactoryController(QObject):
|
||||
library_project_name = self._project_model.items[self._selected_project_idx]["displayName"]
|
||||
|
||||
# Use the file upload manager to export and upload the 3mf and/or ufp files to the DF Library project
|
||||
self.file_upload_manager = DFFileExportAndUploadManager(file_handlers = self.file_handlers, nodes = self.nodes,
|
||||
self.file_upload_manager = DFFileExportAndUploadManager(file_handlers = self.file_handlers, nodes = cast(List[SceneNode], self.nodes),
|
||||
library_project_id = library_project_id,
|
||||
library_project_name = library_project_name,
|
||||
file_name = filename, formats = formats,
|
||||
|
@ -34,6 +34,10 @@ class DigitalFactoryFileProvider(FileProvider):
|
||||
|
||||
if self._account.isLoggedIn and self._controller.userAccountHasLibraryAccess():
|
||||
self._controller.initialize()
|
||||
|
||||
if not self._dialog:
|
||||
Logger.log("e", "Unable to create the Digital Library Open dialog.")
|
||||
return
|
||||
self._dialog.show()
|
||||
|
||||
def loadWindow(self) -> None:
|
||||
|
@ -72,6 +72,10 @@ class DigitalFactoryOutputDevice(ProjectOutputDevice):
|
||||
|
||||
df_workspace_information = self._current_workspace_information.getPluginMetadata("digital_factory")
|
||||
self._controller.initialize(preselected_project_id = df_workspace_information.get("library_project_id"))
|
||||
|
||||
if not self._dialog:
|
||||
Logger.log("e", "Unable to create the Digital Library Save dialog.")
|
||||
return
|
||||
self._dialog.show()
|
||||
|
||||
def loadWindow(self) -> None:
|
||||
|
@ -46,13 +46,6 @@ class DigitalFactoryProjectModel(ListModel):
|
||||
# self.sortProjectsBy("display_name")
|
||||
self._update(df_projects)
|
||||
|
||||
def sortProjectsBy(self, sort_by: Optional[str]):
|
||||
if sort_by:
|
||||
try:
|
||||
self._projects.sort(key = lambda p: getattr(p, sort_by))
|
||||
except AttributeError:
|
||||
Logger.log("e", "The projects cannot be sorted by '{}'. No such attribute exists.".format(sort_by))
|
||||
|
||||
def clearProjects(self) -> None:
|
||||
self.clear()
|
||||
self._projects.clear()
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2018 Ultimaker B.V.
|
||||
// Copyright (c) 2021 Ultimaker B.V.
|
||||
// Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.10
|
||||
@ -21,49 +21,49 @@ QtObject
|
||||
{
|
||||
if(control.valueError)
|
||||
{
|
||||
return Theme.getColor("setting_validation_error_background");
|
||||
return UM.Theme.getColor("setting_validation_error_background");
|
||||
}
|
||||
else if(control.valueWarning)
|
||||
{
|
||||
return Theme.getColor("setting_validation_warning_background");
|
||||
return UM.Theme.getColor("setting_validation_warning_background");
|
||||
}
|
||||
else
|
||||
{
|
||||
return Theme.getColor("setting_control");
|
||||
return UM.Theme.getColor("setting_control");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return Theme.getColor("setting_control_disabled");
|
||||
return UM.Theme.getColor("setting_control_disabled");
|
||||
}
|
||||
}
|
||||
|
||||
radius: UM.Theme.getSize("setting_control_radius").width
|
||||
border.width: Theme.getSize("default_lining").width
|
||||
border.width: UM.Theme.getSize("default_lining").width
|
||||
border.color:
|
||||
{
|
||||
if (control.enabled)
|
||||
{
|
||||
if (control.valueError)
|
||||
{
|
||||
return Theme.getColor("setting_validation_error");
|
||||
return UM.Theme.getColor("setting_validation_error");
|
||||
}
|
||||
else if (control.valueWarning)
|
||||
{
|
||||
return Theme.getColor("setting_validation_warning");
|
||||
return UM.Theme.getColor("setting_validation_warning");
|
||||
}
|
||||
else if (control.hovered)
|
||||
{
|
||||
return Theme.getColor("setting_control_border_highlight");
|
||||
return UM.Theme.getColor("setting_control_border_highlight");
|
||||
}
|
||||
else
|
||||
{
|
||||
return Theme.getColor("setting_control_border");
|
||||
return UM.Theme.getColor("setting_control_border");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return Theme.getColor("setting_control_disabled_border");
|
||||
return UM.Theme.getColor("setting_control_disabled_border");
|
||||
}
|
||||
}
|
||||
UM.RecolorImage
|
||||
@ -71,25 +71,25 @@ QtObject
|
||||
id: downArrow
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Theme.getSize("default_margin").width
|
||||
width: Theme.getSize("standard_arrow").width
|
||||
height: Theme.getSize("standard_arrow").height
|
||||
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||
width: UM.Theme.getSize("standard_arrow").width
|
||||
height: UM.Theme.getSize("standard_arrow").height
|
||||
sourceSize.height: width
|
||||
color: control.enabled ? Theme.getColor("setting_control_button") : Theme.getColor("setting_category_disabled_text")
|
||||
source: Theme.getIcon("arrow_bottom")
|
||||
color: control.enabled ? UM.Theme.getColor("setting_control_button") : UM.Theme.getColor("setting_category_disabled_text")
|
||||
source: UM.Theme.getIcon("arrow_bottom")
|
||||
}
|
||||
Label
|
||||
{
|
||||
id: printSetupComboBoxLabel
|
||||
color: control.enabled ? Theme.getColor("setting_control_text") : Theme.getColor("setting_control_disabled_text")
|
||||
color: control.enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
|
||||
text: control.text;
|
||||
elide: Text.ElideRight;
|
||||
anchors.left: parent.left;
|
||||
anchors.leftMargin: Theme.getSize("setting_unit_margin").width
|
||||
anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width
|
||||
anchors.right: downArrow.left;
|
||||
anchors.rightMargin: control.rightMargin;
|
||||
anchors.verticalCenter: parent.verticalCenter;
|
||||
font: Theme.getFont("default")
|
||||
font: UM.Theme.getFont("default")
|
||||
}
|
||||
}
|
||||
label: Label{}
|
||||
@ -175,25 +175,25 @@ QtObject
|
||||
{
|
||||
background: Item
|
||||
{
|
||||
implicitWidth: Theme.getSize("button").width
|
||||
implicitHeight: Theme.getSize("button").height
|
||||
implicitWidth: UM.Theme.getSize("button").width
|
||||
implicitHeight: UM.Theme.getSize("button").height
|
||||
|
||||
UM.PointingRectangle
|
||||
{
|
||||
id: button_tooltip
|
||||
|
||||
anchors.left: parent.right
|
||||
anchors.leftMargin: Theme.getSize("button_tooltip_arrow").width * 2
|
||||
anchors.leftMargin: UM.Theme.getSize("button_tooltip_arrow").width * 2
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
target: Qt.point(parent.x, y + Math.round(height/2))
|
||||
arrowSize: Theme.getSize("button_tooltip_arrow").width
|
||||
color: Theme.getColor("button_tooltip")
|
||||
arrowSize: UM.Theme.getSize("button_tooltip_arrow").width
|
||||
color: UM.Theme.getColor("button_tooltip")
|
||||
opacity: control.hovered ? 1.0 : 0.0;
|
||||
visible: control.text != ""
|
||||
|
||||
width: control.hovered ? button_tip.width + Theme.getSize("button_tooltip").width : 0
|
||||
height: Theme.getSize("button_tooltip").height
|
||||
width: control.hovered ? button_tip.width + UM.Theme.getSize("button_tooltip").width : 0
|
||||
height: UM.Theme.getSize("button_tooltip").height
|
||||
|
||||
Behavior on width { NumberAnimation { duration: 100; } }
|
||||
Behavior on opacity { NumberAnimation { duration: 100; } }
|
||||
@ -206,8 +206,8 @@ QtObject
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
text: control.text
|
||||
font: Theme.getFont("default")
|
||||
color: Theme.getColor("tooltip_text")
|
||||
font: UM.Theme.getFont("default")
|
||||
color: UM.Theme.getColor("tooltip_text")
|
||||
}
|
||||
}
|
||||
|
||||
@ -226,22 +226,22 @@ QtObject
|
||||
}
|
||||
else if(control.checkable && control.checked && control.hovered)
|
||||
{
|
||||
return Theme.getColor("toolbar_button_active_hover")
|
||||
return UM.Theme.getColor("toolbar_button_active_hover")
|
||||
}
|
||||
else if(control.pressed || (control.checkable && control.checked))
|
||||
{
|
||||
return Theme.getColor("toolbar_button_active")
|
||||
return UM.Theme.getColor("toolbar_button_active")
|
||||
}
|
||||
else if(control.hovered)
|
||||
{
|
||||
return Theme.getColor("toolbar_button_hover")
|
||||
return UM.Theme.getColor("toolbar_button_hover")
|
||||
}
|
||||
return Theme.getColor("toolbar_background")
|
||||
return UM.Theme.getColor("toolbar_background")
|
||||
}
|
||||
Behavior on color { ColorAnimation { duration: 50; } }
|
||||
|
||||
border.width: (control.hasOwnProperty("needBorder") && control.needBorder) ? Theme.getSize("default_lining").width : 0
|
||||
border.color: control.checked ? Theme.getColor("icon") : Theme.getColor("lining")
|
||||
border.width: (control.hasOwnProperty("needBorder") && control.needBorder) ? UM.Theme.getSize("default_lining").width : 0
|
||||
border.color: control.checked ? UM.Theme.getColor("icon") : UM.Theme.getColor("lining")
|
||||
}
|
||||
}
|
||||
|
||||
@ -252,11 +252,11 @@ QtObject
|
||||
anchors.centerIn: parent
|
||||
opacity: control.enabled ? 1.0 : 0.2
|
||||
source: control.iconSource
|
||||
width: Theme.getSize("button_icon").width
|
||||
height: Theme.getSize("button_icon").height
|
||||
color: Theme.getColor("icon")
|
||||
width: UM.Theme.getSize("button_icon").width
|
||||
height: UM.Theme.getSize("button_icon").height
|
||||
color: UM.Theme.getColor("icon")
|
||||
|
||||
sourceSize: Theme.getSize("button_icon")
|
||||
sourceSize: UM.Theme.getSize("button_icon")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -268,10 +268,10 @@ QtObject
|
||||
{
|
||||
background: Rectangle
|
||||
{
|
||||
implicitWidth: Theme.getSize("message").width - (Theme.getSize("default_margin").width * 2)
|
||||
implicitHeight: Theme.getSize("progressbar").height
|
||||
color: control.hasOwnProperty("backgroundColor") ? control.backgroundColor : Theme.getColor("progressbar_background")
|
||||
radius: Theme.getSize("progressbar_radius").width
|
||||
implicitWidth: UM.Theme.getSize("message").width - (UM.Theme.getSize("default_margin").width * 2)
|
||||
implicitHeight: UM.Theme.getSize("progressbar").height
|
||||
color: control.hasOwnProperty("backgroundColor") ? control.backgroundColor : UM.Theme.getColor("progressbar_background")
|
||||
radius: UM.Theme.getSize("progressbar_radius").width
|
||||
}
|
||||
progress: Rectangle
|
||||
{
|
||||
@ -287,22 +287,22 @@ QtObject
|
||||
}
|
||||
else
|
||||
{
|
||||
return Theme.getColor("progressbar_control");
|
||||
return UM.Theme.getColor("progressbar_control");
|
||||
}
|
||||
}
|
||||
radius: Theme.getSize("progressbar_radius").width
|
||||
radius: UM.Theme.getSize("progressbar_radius").width
|
||||
Rectangle
|
||||
{
|
||||
radius: Theme.getSize("progressbar_radius").width
|
||||
color: control.hasOwnProperty("controlColor") ? control.controlColor : Theme.getColor("progressbar_control")
|
||||
width: Theme.getSize("progressbar_control").width
|
||||
height: Theme.getSize("progressbar_control").height
|
||||
radius: UM.Theme.getSize("progressbar_radius").width
|
||||
color: control.hasOwnProperty("controlColor") ? control.controlColor : UM.Theme.getColor("progressbar_control")
|
||||
width: UM.Theme.getSize("progressbar_control").width
|
||||
height: UM.Theme.getSize("progressbar_control").height
|
||||
visible: control.indeterminate
|
||||
|
||||
SequentialAnimation on x
|
||||
{
|
||||
id: xAnim
|
||||
property int animEndPoint: Theme.getSize("message").width - Math.round((Theme.getSize("default_margin").width * 2.5)) - Theme.getSize("progressbar_control").width
|
||||
property int animEndPoint: UM.Theme.getSize("message").width - Math.round((UM.Theme.getSize("default_margin").width * 2.5)) - UM.Theme.getSize("progressbar_control").width
|
||||
running: control.indeterminate && control.visible
|
||||
loops: Animation.Infinite
|
||||
NumberAnimation { from: 0; to: xAnim.animEndPoint; duration: 2000;}
|
||||
@ -324,18 +324,18 @@ QtObject
|
||||
|
||||
scrollBarBackground: Rectangle
|
||||
{
|
||||
implicitWidth: Theme.getSize("scrollbar").width
|
||||
implicitWidth: UM.Theme.getSize("scrollbar").width
|
||||
radius: Math.round(implicitWidth / 2)
|
||||
color: Theme.getColor("scrollbar_background")
|
||||
color: UM.Theme.getColor("scrollbar_background")
|
||||
}
|
||||
|
||||
handle: Rectangle
|
||||
{
|
||||
id: scrollViewHandle
|
||||
implicitWidth: Theme.getSize("scrollbar").width
|
||||
implicitWidth: UM.Theme.getSize("scrollbar").width
|
||||
radius: Math.round(implicitWidth / 2)
|
||||
|
||||
color: styleData.pressed ? Theme.getColor("scrollbar_handle_down") : styleData.hovered ? Theme.getColor("scrollbar_handle_hover") : Theme.getColor("scrollbar_handle")
|
||||
color: styleData.pressed ? UM.Theme.getColor("scrollbar_handle_down") : styleData.hovered ? UM.Theme.getColor("scrollbar_handle_hover") : UM.Theme.getColor("scrollbar_handle")
|
||||
Behavior on color { ColorAnimation { duration: 50; } }
|
||||
}
|
||||
}
|
||||
@ -348,14 +348,14 @@ QtObject
|
||||
|
||||
background: Rectangle
|
||||
{
|
||||
implicitHeight: Theme.getSize("setting_control").height;
|
||||
implicitWidth: Theme.getSize("setting_control").width;
|
||||
implicitHeight: UM.Theme.getSize("setting_control").height;
|
||||
implicitWidth: UM.Theme.getSize("setting_control").width;
|
||||
|
||||
color: control.hovered ? UM.Theme.getColor("setting_control_highlight") : UM.Theme.getColor("setting_control")
|
||||
Behavior on color { ColorAnimation { duration: 50; } }
|
||||
|
||||
border.width: Theme.getSize("default_lining").width;
|
||||
border.color: control.hovered ? Theme.getColor("setting_control_border_highlight") : Theme.getColor("setting_control_border");
|
||||
border.width: UM.Theme.getSize("default_lining").width;
|
||||
border.color: control.hovered ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border");
|
||||
radius: UM.Theme.getSize("setting_control_radius").width
|
||||
}
|
||||
|
||||
@ -364,14 +364,14 @@ QtObject
|
||||
Label
|
||||
{
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: Theme.getSize("default_lining").width
|
||||
anchors.leftMargin: UM.Theme.getSize("default_lining").width
|
||||
anchors.right: downArrow.left
|
||||
anchors.rightMargin: Theme.getSize("default_lining").width
|
||||
anchors.rightMargin: UM.Theme.getSize("default_lining").width
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
text: control.currentText
|
||||
font: Theme.getFont("default");
|
||||
color: !enabled ? Theme.getColor("setting_control_disabled_text") : Theme.getColor("setting_control_text")
|
||||
font: UM.Theme.getFont("default");
|
||||
color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text")
|
||||
|
||||
elide: Text.ElideRight
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
@ -381,16 +381,16 @@ QtObject
|
||||
{
|
||||
id: downArrow
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Theme.getSize("default_lining").width * 2
|
||||
anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
source: Theme.getIcon("arrow_bottom")
|
||||
width: Theme.getSize("standard_arrow").width
|
||||
height: Theme.getSize("standard_arrow").height
|
||||
source: UM.Theme.getIcon("arrow_bottom")
|
||||
width: UM.Theme.getSize("standard_arrow").width
|
||||
height: UM.Theme.getSize("standard_arrow").height
|
||||
sourceSize.width: width + 5 * screenScaleFactor
|
||||
sourceSize.height: width + 5 * screenScaleFactor
|
||||
|
||||
color: Theme.getColor("setting_control_button");
|
||||
color: UM.Theme.getColor("setting_control_button");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -403,16 +403,16 @@ QtObject
|
||||
background: Item { }
|
||||
indicator: Rectangle
|
||||
{
|
||||
implicitWidth: Theme.getSize("checkbox").width
|
||||
implicitHeight: Theme.getSize("checkbox").height
|
||||
implicitWidth: UM.Theme.getSize("checkbox").width
|
||||
implicitHeight: UM.Theme.getSize("checkbox").height
|
||||
|
||||
color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_hover") : (control.enabled ? Theme.getColor("checkbox") : Theme.getColor("checkbox_disabled"))
|
||||
color: (control.hovered || control._hovered) ? UM.Theme.getColor("checkbox_hover") : (control.enabled ? UM.Theme.getColor("checkbox") : UM.Theme.getColor("checkbox_disabled"))
|
||||
Behavior on color { ColorAnimation { duration: 50; } }
|
||||
|
||||
radius: control.exclusiveGroup ? Math.round(Theme.getSize("checkbox").width / 2) : Theme.getSize("checkbox_radius").width
|
||||
radius: control.exclusiveGroup ? Math.round(UM.Theme.getSize("checkbox").width / 2) : UM.Theme.getSize("checkbox_radius").width
|
||||
|
||||
border.width: Theme.getSize("default_lining").width
|
||||
border.color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_border_hover") : Theme.getColor("checkbox_border")
|
||||
border.width: UM.Theme.getSize("default_lining").width
|
||||
border.color: (control.hovered || control._hovered) ? UM.Theme.getColor("checkbox_border_hover") : UM.Theme.getColor("checkbox_border")
|
||||
|
||||
UM.RecolorImage
|
||||
{
|
||||
@ -421,8 +421,8 @@ QtObject
|
||||
width: Math.round(parent.width / 2.5)
|
||||
height: Math.round(parent.height / 2.5)
|
||||
sourceSize.height: width
|
||||
color: Theme.getColor("checkbox_mark")
|
||||
source: control.exclusiveGroup ? Theme.getIcon("dot") : Theme.getIcon("check")
|
||||
color: UM.Theme.getColor("checkbox_mark")
|
||||
source: control.exclusiveGroup ? UM.Theme.getIcon("dot") : UM.Theme.getIcon("check")
|
||||
opacity: control.checked
|
||||
Behavior on opacity { NumberAnimation { duration: 100; } }
|
||||
}
|
||||
@ -430,8 +430,8 @@ QtObject
|
||||
label: Label
|
||||
{
|
||||
text: control.text
|
||||
color: Theme.getColor("checkbox_text")
|
||||
font: Theme.getFont("default")
|
||||
color: UM.Theme.getColor("checkbox_text")
|
||||
font: UM.Theme.getFont("default")
|
||||
elide: Text.ElideRight
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
@ -445,16 +445,16 @@ QtObject
|
||||
background: Item { }
|
||||
indicator: Rectangle
|
||||
{
|
||||
implicitWidth: Theme.getSize("checkbox").width
|
||||
implicitHeight: Theme.getSize("checkbox").height
|
||||
implicitWidth: UM.Theme.getSize("checkbox").width
|
||||
implicitHeight: UM.Theme.getSize("checkbox").height
|
||||
|
||||
color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_hover") : Theme.getColor("checkbox");
|
||||
color: (control.hovered || control._hovered) ? UM.Theme.getColor("checkbox_hover") : UM.Theme.getColor("checkbox");
|
||||
Behavior on color { ColorAnimation { duration: 50; } }
|
||||
|
||||
radius: control.exclusiveGroup ? Math.round(Theme.getSize("checkbox").width / 2) : UM.Theme.getSize("checkbox_radius").width
|
||||
radius: control.exclusiveGroup ? Math.round(UM.Theme.getSize("checkbox").width / 2) : UM.Theme.getSize("checkbox_radius").width
|
||||
|
||||
border.width: Theme.getSize("default_lining").width;
|
||||
border.color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_border_hover") : Theme.getColor("checkbox_border");
|
||||
border.width: UM.Theme.getSize("default_lining").width;
|
||||
border.color: (control.hovered || control._hovered) ? UM.Theme.getColor("checkbox_border_hover") : UM.Theme.getColor("checkbox_border");
|
||||
|
||||
UM.RecolorImage
|
||||
{
|
||||
@ -463,16 +463,16 @@ QtObject
|
||||
width: Math.round(parent.width / 2.5)
|
||||
height: Math.round(parent.height / 2.5)
|
||||
sourceSize.height: width
|
||||
color: Theme.getColor("checkbox_mark")
|
||||
color: UM.Theme.getColor("checkbox_mark")
|
||||
source:
|
||||
{
|
||||
if (control.checkbox_state == 2)
|
||||
{
|
||||
return Theme.getIcon("solid");
|
||||
return UM.Theme.getIcon("solid");
|
||||
}
|
||||
else
|
||||
{
|
||||
return control.exclusiveGroup ? Theme.getIcon("dot") : Theme.getIcon("check");
|
||||
return control.exclusiveGroup ? UM.Theme.getIcon("dot") : UM.Theme.getIcon("check");
|
||||
}
|
||||
}
|
||||
opacity: control.checked
|
||||
@ -482,8 +482,8 @@ QtObject
|
||||
label: Label
|
||||
{
|
||||
text: control.text
|
||||
color: Theme.getColor("checkbox_text")
|
||||
font: Theme.getFont("default")
|
||||
color: UM.Theme.getColor("checkbox_text")
|
||||
font: UM.Theme.getFont("default")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -492,30 +492,30 @@ QtObject
|
||||
{
|
||||
TextFieldStyle
|
||||
{
|
||||
textColor: Theme.getColor("setting_control_text")
|
||||
placeholderTextColor: Theme.getColor("setting_control_text")
|
||||
font: Theme.getFont("default")
|
||||
textColor: UM.Theme.getColor("setting_control_text")
|
||||
placeholderTextColor: UM.Theme.getColor("setting_control_text")
|
||||
font: UM.Theme.getFont("default")
|
||||
|
||||
background: Rectangle
|
||||
{
|
||||
implicitHeight: control.height;
|
||||
implicitWidth: control.width;
|
||||
|
||||
border.width: Theme.getSize("default_lining").width;
|
||||
border.color: control.hovered ? Theme.getColor("setting_control_border_highlight") : Theme.getColor("setting_control_border");
|
||||
border.width: UM.Theme.getSize("default_lining").width;
|
||||
border.color: control.hovered ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border");
|
||||
radius: UM.Theme.getSize("setting_control_radius").width
|
||||
|
||||
color: Theme.getColor("setting_validation_ok");
|
||||
color: UM.Theme.getColor("setting_validation_ok");
|
||||
|
||||
Label
|
||||
{
|
||||
anchors.right: parent.right;
|
||||
anchors.rightMargin: Theme.getSize("setting_unit_margin").width;
|
||||
anchors.rightMargin: UM.Theme.getSize("setting_unit_margin").width;
|
||||
anchors.verticalCenter: parent.verticalCenter;
|
||||
|
||||
text: control.unit ? control.unit : ""
|
||||
color: Theme.getColor("setting_unit");
|
||||
font: Theme.getFont("default");
|
||||
color: UM.Theme.getColor("setting_unit");
|
||||
font: UM.Theme.getFont("default");
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user