mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-08-06 13:34:01 -06:00
109 lines
3.4 KiB
QML
109 lines
3.4 KiB
QML
// Copyright (c) 2018 Ultimaker B.V.
|
|
import QtQuick 2.7
|
|
import QtQuick.Controls 2.1
|
|
import QtQuick.Layouts 1.3
|
|
import QtQuick.Dialogs 1.1
|
|
|
|
import UM 1.1 as UM
|
|
import Cura 1.0 as Cura
|
|
|
|
Item
|
|
{
|
|
id: backupListItem
|
|
width: parent.width
|
|
height: showDetails ? dataRow.height + backupDetails.height : dataRow.height
|
|
property bool showDetails: false
|
|
|
|
// Backup details toggle animation.
|
|
Behavior on height
|
|
{
|
|
PropertyAnimation
|
|
{
|
|
duration: 70
|
|
}
|
|
}
|
|
|
|
RowLayout
|
|
{
|
|
id: dataRow
|
|
spacing: UM.Theme.getSize("wide_margin").width
|
|
width: parent.width
|
|
height: 50 * screenScaleFactor
|
|
|
|
UM.SimpleButton
|
|
{
|
|
width: UM.Theme.getSize("section_icon").width
|
|
height: UM.Theme.getSize("section_icon").height
|
|
color: UM.Theme.getColor("small_button_text")
|
|
hoverColor: UM.Theme.getColor("small_button_text_hover")
|
|
iconSource: UM.Theme.getIcon("info")
|
|
onClicked: backupListItem.showDetails = !backupListItem.showDetails
|
|
}
|
|
|
|
Label
|
|
{
|
|
text: new Date(model["generated_time"]).toLocaleString(UM.Preferences.getValue("general/language"))
|
|
color: UM.Theme.getColor("text")
|
|
elide: Text.ElideRight
|
|
Layout.minimumWidth: 100 * screenScaleFactor
|
|
Layout.maximumWidth: 500 * screenScaleFactor
|
|
Layout.fillWidth: true
|
|
renderType: Text.NativeRendering
|
|
}
|
|
|
|
Label
|
|
{
|
|
text: model["data"]["description"]
|
|
color: UM.Theme.getColor("text")
|
|
elide: Text.ElideRight
|
|
Layout.minimumWidth: 100 * screenScaleFactor
|
|
Layout.maximumWidth: 500 * screenScaleFactor
|
|
Layout.fillWidth: true
|
|
renderType: Text.NativeRendering
|
|
}
|
|
|
|
Cura.SecondaryButton
|
|
{
|
|
text: catalog.i18nc("@button", "Restore")
|
|
enabled: !CuraDrive.isCreatingBackup && !CuraDrive.isRestoringBackup
|
|
onClicked: confirmRestoreDialog.visible = true
|
|
}
|
|
|
|
UM.SimpleButton
|
|
{
|
|
width: UM.Theme.getSize("message_close").width
|
|
height: UM.Theme.getSize("message_close").height
|
|
color: UM.Theme.getColor("small_button_text")
|
|
hoverColor: UM.Theme.getColor("small_button_text_hover")
|
|
iconSource: UM.Theme.getIcon("cross1")
|
|
onClicked: confirmDeleteDialog.visible = true
|
|
}
|
|
}
|
|
|
|
BackupListItemDetails
|
|
{
|
|
id: backupDetails
|
|
backupDetailsData: model
|
|
width: parent.width
|
|
visible: parent.showDetails
|
|
anchors.top: dataRow.bottom
|
|
}
|
|
|
|
MessageDialog
|
|
{
|
|
id: confirmDeleteDialog
|
|
title: catalog.i18nc("@dialog:title", "Delete Backup")
|
|
text: catalog.i18nc("@dialog:info", "Are you sure you want to delete this backup? This cannot be undone.")
|
|
standardButtons: StandardButton.Yes | StandardButton.No
|
|
onYes: CuraDrive.deleteBackup(model["backup_id"])
|
|
}
|
|
|
|
MessageDialog
|
|
{
|
|
id: confirmRestoreDialog
|
|
title: catalog.i18nc("@dialog:title", "Restore Backup")
|
|
text: catalog.i18nc("@dialog:info", "You will need to restart Cura before your backup is restored. Do you want to close Cura now?")
|
|
standardButtons: StandardButton.Yes | StandardButton.No
|
|
onYes: CuraDrive.restoreBackup(model["backup_id"])
|
|
}
|
|
}
|