Start with the wide printer queue

This commit is contained in:
Simon Hausmann 2021-02-17 09:07:34 +01:00 committed by Olivier Goffart
parent 2b43587e79
commit 55ea583abb
2 changed files with 86 additions and 6 deletions

View file

@ -9,7 +9,7 @@
LICENSE END */ LICENSE END */
import { DemoPalette, Page, SpinBox, Label, ComboBox, PushButton, PrinterQueueItem } from "./common.60"; import { DemoPalette, Page, SpinBox, Label, ComboBox, PushButton, PrinterQueueItem } from "./common.60";
import { PrinterQueueList } from "./printer_queue.60"; import { WidePrinterQueueList } from "./printer_queue.60";
export PrintPage := Page { export PrintPage := Page {
@ -32,7 +32,7 @@ export PrintPage := Page {
} }
Row { Row {
queue := PrinterQueueList { queue := WidePrinterQueueList {
viewport_width: root.width; viewport_width: root.width;
} }
} }

View file

@ -82,7 +82,7 @@ PrintDetails := GridLayout {
} }
} }
PrintQueueElement := Rectangle { NarrowPrintQueueElement := Rectangle {
property <PrinterQueueItem> queue_item; property <PrinterQueueItem> queue_item;
border-color: DemoPalette.control_outline_color; border-color: DemoPalette.control_outline_color;
@ -146,7 +146,7 @@ PrintQueueElement := Rectangle {
} }
} }
export PrinterQueueList := Flickable { NarrowPrinterQueueList := Flickable {
property <[PrinterQueueItem]> printer_queue; property <[PrinterQueueItem]> printer_queue;
viewport_height: 2000px; /* FIXME: the flickable needs to learn its viewport height from the layout */ viewport_height: 2000px; /* FIXME: the flickable needs to learn its viewport height from the layout */
@ -155,7 +155,87 @@ export PrinterQueueList := Flickable {
padding: 0px; padding: 0px;
spacing: 13.5px; spacing: 13.5px;
for queue_item[idx] in root.printer_queue: PrintQueueElement { for queue_item[idx] in root.printer_queue: NarrowPrintQueueElement {
queue_item: queue_item;
}
}
}
WidePrintQueueElement := Rectangle {
property <PrinterQueueItem> queue_item;
border-color: DemoPalette.control_outline_color;
border-radius: 14px;
border-width: 2px;
background: DemoPalette.printer_queue_item_background_color;
GridLayout {
padding: parent.border_radius;
spacing: 0px;
Row {
VerticalLayout {
colspan: 2;
Text {
// TODO: text-transform: uppercase
text: {
if (queue_item.status == "PRINTING") {
"\{queue_item.progress}% - \{queue_item.status}"
} else {
queue_item.status
}
}
color: DemoPalette.status_label_text_color;
font-size: DemoPalette.base_font_size * 0.75;
font-weight: 800;
letter-spacing: 1.56px;
}
Text {
text: queue_item.title;
overflow: elide;
font-weight: 800;
font-size: DemoPalette.base_font_size * 1.125;
}
}
Rectangle {}
PrintDetails {
colspan: 2;
rowspan: 3;
padding: 0px;
padding-bottom: root.border-radius / 2;
queue_item: root.queue_item;
}
}
Row {}
Row {
PushButton {
text: "Pause";
}
PushButton {
primary: false;
text: "Delete";
}
}
}
}
export WidePrinterQueueList := Flickable {
property <[PrinterQueueItem]> printer_queue;
viewport_height: 2000px; /* FIXME: the flickable needs to learn its viewport height from the layout */
VerticalLayout {
alignment: start;
padding: 0px;
spacing: 13.5px;
for queue_item[idx] in root.printer_queue: WidePrintQueueElement {
queue_item: queue_item; queue_item: queue_item;
} }
} }
@ -179,7 +259,7 @@ export PrinterQueue := Rectangle {
font-weight: 700; font-weight: 700;
} }
queue_list := PrinterQueueList { queue_list := NarrowPrinterQueueList {
viewport_width: root.width - 2 * root.border_radius; viewport_width: root.width - 2 * root.border_radius;
} }
} }