mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-11 08:39:00 +08:00

Some other components were (incorrectly) using these theme variables. Replaced them by another theme variable with the same value. CURA 8588
226 lines
8.0 KiB
QML
226 lines
8.0 KiB
QML
// Copyright (C) 2021 Ultimaker B.V.
|
|
// Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
import QtQuick 2.10
|
|
import QtQuick.Window 2.2
|
|
import QtQuick.Controls 1.4 as OldControls // TableView doesn't exist in the QtQuick Controls 2.x in 5.10, so use the old one
|
|
import QtQuick.Controls 2.3
|
|
import QtQuick.Controls.Styles 1.4
|
|
import QtQuick.Layouts 1.1
|
|
|
|
import UM 1.2 as UM
|
|
import Cura 1.7 as Cura
|
|
|
|
import DigitalFactory 1.0 as DF
|
|
|
|
|
|
Item
|
|
{
|
|
id: base
|
|
|
|
width: parent.width
|
|
height: parent.height
|
|
property bool createNewProjectButtonVisible: true
|
|
|
|
anchors
|
|
{
|
|
top: parent.top
|
|
bottom: parent.bottom
|
|
left: parent.left
|
|
right: parent.right
|
|
margins: UM.Theme.getSize("default_margin").width
|
|
}
|
|
|
|
RowLayout
|
|
{
|
|
id: headerRow
|
|
|
|
anchors
|
|
{
|
|
top: parent.top
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
height: childrenRect.height
|
|
spacing: UM.Theme.getSize("default_margin").width
|
|
|
|
Cura.SearchBar
|
|
{
|
|
id: searchBar
|
|
Layout.fillWidth: true
|
|
implicitHeight: createNewProjectButton.height
|
|
onTextEdited: manager.projectFilter = text //Update the search filter when editing this text field.
|
|
}
|
|
|
|
Cura.SecondaryButton
|
|
{
|
|
id: createNewProjectButton
|
|
|
|
text: "New Library project"
|
|
visible: createNewProjectButtonVisible && manager.userAccountCanCreateNewLibraryProject && (manager.retrievingProjectsStatus == DF.RetrievalStatus.Success || manager.retrievingProjectsStatus == DF.RetrievalStatus.Failed)
|
|
|
|
onClicked:
|
|
{
|
|
createNewProjectPopup.open()
|
|
}
|
|
busy: manager.creatingNewProjectStatus == DF.RetrievalStatus.InProgress
|
|
}
|
|
|
|
|
|
Cura.SecondaryButton
|
|
{
|
|
id: upgradePlanButton
|
|
|
|
text: "Upgrade plan"
|
|
iconSource: UM.Theme.getIcon("external_link")
|
|
visible: createNewProjectButtonVisible && !manager.userAccountCanCreateNewLibraryProject && (manager.retrievingProjectsStatus == DF.RetrievalStatus.Success || manager.retrievingProjectsStatus == DF.RetrievalStatus.Failed)
|
|
tooltip: "Maximum number of projects reached. Please upgrade your subscription to create more projects."
|
|
|
|
onClicked: Qt.openUrlExternally("https://ultimaker.com/software/enterprise-software?utm_source=cura&utm_medium=software&utm_campaign=MaxProjLink")
|
|
}
|
|
}
|
|
|
|
Item
|
|
{
|
|
id: noLibraryProjectsContainer
|
|
anchors
|
|
{
|
|
top: parent.top
|
|
bottom: parent.bottom
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
visible: manager.digitalFactoryProjectModel.count == 0 && (manager.retrievingProjectsStatus == DF.RetrievalStatus.Success || manager.retrievingProjectsStatus == DF.RetrievalStatus.Failed)
|
|
|
|
Column
|
|
{
|
|
anchors.centerIn: parent
|
|
spacing: UM.Theme.getSize("thin_margin").height
|
|
Image
|
|
{
|
|
id: digitalFactoryImage
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
source: searchBar.text === "" ? "../images/digital_factory.svg" : "../images/projects_not_found.svg"
|
|
fillMode: Image.PreserveAspectFit
|
|
width: parent.width - 2 * UM.Theme.getSize("thick_margin").width
|
|
}
|
|
|
|
Label
|
|
{
|
|
id: noLibraryProjectsLabel
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
text: searchBar.text === "" ? "It appears that you don't have any projects in the Library yet." : "No projects found that match the search query."
|
|
font: UM.Theme.getFont("medium")
|
|
color: UM.Theme.getColor("text")
|
|
}
|
|
|
|
Cura.TertiaryButton
|
|
{
|
|
id: visitDigitalLibraryButton
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
text: "Visit Digital Library"
|
|
onClicked: Qt.openUrlExternally(CuraApplication.ultimakerDigitalFactoryUrl + "/app/library?utm_source=cura&utm_medium=software&utm_campaign=empty-library")
|
|
visible: searchBar.text === "" //Show the link to Digital Library when there are no projects in the user's Library.
|
|
}
|
|
}
|
|
}
|
|
|
|
Item
|
|
{
|
|
id: projectListContainer
|
|
anchors
|
|
{
|
|
top: headerRow.bottom
|
|
topMargin: UM.Theme.getSize("default_margin").height
|
|
bottom: parent.bottom
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
visible: manager.digitalFactoryProjectModel.count > 0
|
|
|
|
// Use a flickable and a column with a repeater instead of a ListView in a ScrollView, because the ScrollView cannot
|
|
// have additional children (aside from the view inside it), which wouldn't allow us to add the LoadMoreProjectsCard
|
|
// in it.
|
|
Flickable
|
|
{
|
|
id: flickableView
|
|
clip: true
|
|
contentWidth: parent.width
|
|
contentHeight: projectsListView.implicitHeight
|
|
anchors.fill: parent
|
|
|
|
ScrollBar.vertical: ScrollBar
|
|
{
|
|
// Vertical ScrollBar, styled similarly to the scrollBar in the settings panel
|
|
id: verticalScrollBar
|
|
visible: flickableView.contentHeight > flickableView.height
|
|
|
|
background: Rectangle
|
|
{
|
|
implicitWidth: UM.Theme.getSize("scrollbar").width
|
|
radius: Math.round(implicitWidth / 2)
|
|
color: UM.Theme.getColor("scrollbar_background")
|
|
}
|
|
|
|
contentItem: Rectangle
|
|
{
|
|
id: scrollViewHandle
|
|
implicitWidth: UM.Theme.getSize("scrollbar").width
|
|
radius: Math.round(implicitWidth / 2)
|
|
|
|
color: verticalScrollBar.pressed ? UM.Theme.getColor("scrollbar_handle_down") : verticalScrollBar.hovered ? UM.Theme.getColor("scrollbar_handle_hover") : UM.Theme.getColor("scrollbar_handle")
|
|
Behavior on color { ColorAnimation { duration: 50; } }
|
|
}
|
|
}
|
|
|
|
Column
|
|
{
|
|
id: projectsListView
|
|
width: verticalScrollBar.visible ? parent.width - verticalScrollBar.width - UM.Theme.getSize("default_margin").width : parent.width
|
|
anchors.top: parent.top
|
|
spacing: UM.Theme.getSize("narrow_margin").width
|
|
|
|
Repeater
|
|
{
|
|
model: manager.digitalFactoryProjectModel
|
|
delegate: ProjectSummaryCard
|
|
{
|
|
id: projectSummaryCard
|
|
imageSource: model.thumbnailUrl || "../images/placeholder.svg"
|
|
projectNameText: model.displayName
|
|
projectUsernameText: model.username
|
|
projectLastUpdatedText: "Last updated: " + model.lastUpdated
|
|
|
|
onClicked:
|
|
{
|
|
manager.selectedProjectIndex = index
|
|
}
|
|
}
|
|
}
|
|
|
|
LoadMoreProjectsCard
|
|
{
|
|
id: loadMoreProjectsCard
|
|
height: UM.Theme.getSize("card_icon").height
|
|
width: parent.width
|
|
visible: manager.digitalFactoryProjectModel.count > 0
|
|
hasMoreProjectsToLoad: manager.hasMoreProjectsToLoad
|
|
|
|
onClicked:
|
|
{
|
|
manager.loadMoreProjects()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
CreateNewProjectPopup
|
|
{
|
|
id: createNewProjectPopup
|
|
width: 400 * screenScaleFactor
|
|
height: 220 * screenScaleFactor
|
|
x: Math.round((parent.width - width) / 2)
|
|
y: Math.round((parent.height - height) / 2)
|
|
}
|
|
} |