Make printer carousel more flexible/robust

Contributes to CL-1157
This commit is contained in:
Ian Paschal 2018-12-19 13:18:53 +01:00
parent 94ad0a81a2
commit e62ce0e4ca
2 changed files with 13 additions and 6 deletions

View file

@ -14,7 +14,12 @@ Item
property var tileWidth: 834 * screenScaleFactor // TODO: Theme! property var tileWidth: 834 * screenScaleFactor // TODO: Theme!
property var tileHeight: 216 * screenScaleFactor // TODO: Theme! property var tileHeight: 216 * screenScaleFactor // TODO: Theme!
property var tileSpacing: 60 * screenScaleFactor // TODO: Theme! property var tileSpacing: 60 * screenScaleFactor // TODO: Theme!
property var maxOffset: (OutputDevice.printers.length - 1) * (tileWidth + tileSpacing)
// Array/model of printers to populate the carousel with
property var printers: []
// Maximum distance the carousel can be shifted
property var maxOffset: (printers.length - 1) * (tileWidth + tileSpacing)
height: centerSection.height height: centerSection.height
width: maximumWidth width: maximumWidth
@ -129,7 +134,7 @@ Item
Repeater Repeater
{ {
model: OutputDevice.printers model: printers
MonitorPrinterCard MonitorPrinterCard
{ {
printer: modelData printer: modelData
@ -151,7 +156,7 @@ Item
width: 36 * screenScaleFactor // TODO: Theme! width: 36 * screenScaleFactor // TODO: Theme!
height: 72 * screenScaleFactor // TODO: Theme! height: 72 * screenScaleFactor // TODO: Theme!
z: 10 z: 10
visible: currentIndex < OutputDevice.printers.length - 1 visible: currentIndex < printers.length - 1
onClicked: navigateTo(currentIndex + 1) onClicked: navigateTo(currentIndex + 1)
hoverEnabled: true hoverEnabled: true
background: Rectangle background: Rectangle
@ -227,7 +232,7 @@ Item
spacing: 8 * screenScaleFactor // TODO: Theme! spacing: 8 * screenScaleFactor // TODO: Theme!
Repeater Repeater
{ {
model: OutputDevice.printers model: printers
Button Button
{ {
background: Rectangle background: Rectangle
@ -243,7 +248,7 @@ Item
} }
function navigateTo( i ) { function navigateTo( i ) {
if (i >= 0 && i < OutputDevice.printers.length) if (i >= 0 && i < printers.length)
{ {
tiles.x = -1 * i * (tileWidth + tileSpacing) tiles.x = -1 * i * (tileWidth + tileSpacing)
currentIndex = i currentIndex = i

View file

@ -64,8 +64,10 @@ Component
} }
width: parent.width width: parent.width
height: 264 * screenScaleFactor // TODO: Theme! height: 264 * screenScaleFactor // TODO: Theme!
MonitorCarousel { MonitorCarousel
{
id: carousel id: carousel
printers: OutputDevice.printers
} }
} }