[AddPrinterByIp] Finish GUI as a facade first for review. [CURA-6057]

This commit is contained in:
Remco Burema 2019-03-06 14:05:42 +01:00
parent c1cde2ebc0
commit 3c0583bef0
2 changed files with 109 additions and 32 deletions

View file

@ -1,5 +1,5 @@
# Copyright (c) 2019 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
import os import os
from typing import TYPE_CHECKING, Optional from typing import TYPE_CHECKING, Optional
@ -60,6 +60,8 @@ class WelcomePagesModel(ListModel):
"CloudContent.qml"))), "CloudContent.qml"))),
}) })
self.setItems(self._pages)
def addPage(self): def addPage(self):
pass pass

View file

@ -3,6 +3,7 @@
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 2.3 import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
import UM 1.3 as UM import UM 1.3 as UM
import Cura 1.1 as Cura import Cura 1.1 as Cura
@ -15,6 +16,53 @@ Item
{ {
UM.I18nCatalog { id: catalog; name: "cura" } UM.I18nCatalog { id: catalog; name: "cura" }
id: addPrinterByIpScreen
property bool hasPushedAdd: false
property bool hasSentRequest: false
property bool haveConnection: false
Timer
{
id: tempTimerButton
interval: 1200
running: false
repeat: false
onTriggered:
{
hasPushedAdd = true
tempTimerRequest.running = true
}
}
// TODO: Remove timers after review interface!
Timer
{
id: tempTimerRequest
interval: 1200
running: false
repeat: false
onTriggered:
{
hasSentRequest = true
tempTimerConnection.running = true
}
}
// TODO: Remove timers after review interface!
Timer
{
id: tempTimerConnection
interval: 1200
running: false
repeat: false
onTriggered: haveConnection = true
}
// TODO: Remove timers after review interface!
Label Label
{ {
id: titleLabel id: titleLabel
@ -37,15 +85,9 @@ Item
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
width: parent.width * 3 / 4 width: parent.width * 3 / 4
border.color: "#dfdfdf"
border.width: 1
Item Item
{ {
width: parent.width width: parent.width
//anchors.top: parent.top
//anchors.topMargin: 20
//anchors.bottomMargin: 20
Label Label
{ {
@ -55,6 +97,7 @@ Item
anchors.top: parent.top anchors.top: parent.top
anchors.margins: 20 anchors.margins: 20
//anchors.bottomMargin: 20 //anchors.bottomMargin: 20
font: UM.Theme.getFont("default")
text: catalog.i18nc("@label", "Enter the IP address or hostname of your printer on the network.") text: catalog.i18nc("@label", "Enter the IP address or hostname of your printer on the network.")
} }
@ -69,21 +112,19 @@ Item
TextField TextField
{ {
id: hostnameField id: hostnameField
anchors.top: parent.top anchors.verticalCenter: addPrinterButton.verticalCenter
anchors.left: parent.left anchors.left: parent.left
//anchors.bottom: parent.bottom height: addPrinterButton.height
anchors.right: addPrinterButton.left anchors.right: addPrinterButton.left
anchors.margins: 20 anchors.margins: 20
//width: parent.width / 2 font: UM.Theme.getFont("default")
//horizontalAlignment: Text.AlignLeft
//editable: true
text: "" text: ""
//validator: RegExpValidator validator: RegExpValidator
//{ {
// regExp: /[a-zA-Z0-9\.\-\_]*/ regExp: /[a-zA-Z0-9\.\-\_]*/
//} }
onAccepted: addPrinterButton.clicked() onAccepted: addPrinterButton.clicked()
} }
@ -93,7 +134,6 @@ Item
id: addPrinterButton id: addPrinterButton
anchors.top: parent.top anchors.top: parent.top
anchors.right: parent.right anchors.right: parent.right
//anchors.bottom: parent.bottom
anchors.margins: 20 anchors.margins: 20
width: 140 width: 140
fixedWidthMode: true fixedWidthMode: true
@ -101,13 +141,22 @@ Item
text: catalog.i18nc("@button", "Add") text: catalog.i18nc("@button", "Add")
onClicked: onClicked:
{ {
// fire off method, then wait for event // TEMP: Simulate successfull connection to printer with 127.0.0.1 or unsuccessful with anything else
// TODO, alter after review interface, now it just starts the timers.
if (hostnameField.text.trim() != "")
// manager.setManualDevice(manualPrinterDialog.printerKey, manualPrinterDialog.addressText) // manager not defined {
// manualPrinterDialog.hide() addPrinterByIpScreen.hasPushedAdd = true
tempTimerRequest.running = true
}
}
enabled: ! addPrinterByIpScreen.hasPushedAdd
BusyIndicator
{
anchors.fill: parent
running: { ! parent.enabled && ! addPrinterByIpScreen.hasSentRequest }
} }
//enabled: hostnameField.trim() != ""
} }
} }
@ -115,25 +164,51 @@ Item
{ {
width: parent.width width: parent.width
anchors.top: userInputFields.bottom anchors.top: userInputFields.bottom
anchors.margins: 20
Label Label
{ {
id: visTestA id: waitResponseLabel
anchors.top: parent.top anchors.top: parent.top
anchors.margins: 20 anchors.margins: 20
font: UM.Theme.getFont("default")
visible: false visible: { addPrinterByIpScreen.hasSentRequest && ! addPrinterByIpScreen.haveConnection }
text: catalog.i18nc("@label", "The printer at this address has not responded yet.") text: catalog.i18nc("@label", "The printer at this address has not responded yet.")
} }
Label Rectangle
{ {
id: visTestB id: printerInfoLabels
anchors.top: parent.top anchors.top: parent.top
anchors.margins: 20 anchors.margins: 20
visible: true visible: addPrinterByIpScreen.haveConnection
text: "PLACEHOLDER"
Label
{
id: printerNameLabel
anchors.top: parent.top
font: UM.Theme.getFont("large")
text: "Davids-desktop" // TODO: placeholder, alter after interface review.
}
GridLayout
{
anchors.top: printerNameLabel.bottom
columns: 2
columnSpacing: 20
Text { font: UM.Theme.getFont("default"); text: "Type" }
Text { font: UM.Theme.getFont("default"); text: "Ultimaker S5" } // TODO: placeholder, alter after interface review.
Text { font: UM.Theme.getFont("default"); text: "Firmware version" }
Text { font: UM.Theme.getFont("default"); text: "4.3.3.20180529" } // TODO: placeholder, alter after interface review.
Text { font: UM.Theme.getFont("default"); text: "Address" }
Text { font: UM.Theme.getFont("default"); text: "10.183.1.115" } // TODO: placeholder, alter after interface review.
}
} }
} }
} }
@ -148,9 +223,9 @@ Item
text: catalog.i18nc("@button", "Back") text: catalog.i18nc("@button", "Back")
width: 140 width: 140
fixedWidthMode: true fixedWidthMode: true
onClicked: base.showPreviousPage() // TODO? onClicked: base.showPreviousPage()
enabled: true // TODO enabled: true
} }
Cura.PrimaryButton Cura.PrimaryButton
@ -164,6 +239,6 @@ Item
fixedWidthMode: true fixedWidthMode: true
onClicked: base.showNextPage() onClicked: base.showNextPage()
enabled: false // TODO enabled: addPrinterByIpScreen.haveConnection
} }
} }