From 445c183e710581b5bf6616d5db7c61235ba6f1cba6d208c389c4f4901cd643f1 Mon Sep 17 00:00:00 2001 From: Yuri Becker Date: Tue, 25 Mar 2025 11:39:45 +0100 Subject: [PATCH] Clean up leftover files and commented code --- Gui/ObjectTable.qml.orig | 26 --- Gui/ObjectTable_BACKUP_93344.qml | 26 --- Gui/ObjectTable_BASE_93344.qml | 22 --- Gui/ObjectTable_LOCAL_93344.qml | 22 --- Gui/ObjectTable_REMOTE_93344.qml | 22 --- Gui/ObjectsTable.qml.orig | 257 ------------------------ Gui/OfferTable.qml.orig | 22 --- Gui/OffersTable.qml.orig | 90 --------- Gui/TopBar.qml | 322 ++++++++++--------------------- TeroStyle/BarButton.qml | 82 +++----- 10 files changed, 128 insertions(+), 763 deletions(-) delete mode 100644 Gui/ObjectTable.qml.orig delete mode 100644 Gui/ObjectTable_BACKUP_93344.qml delete mode 100644 Gui/ObjectTable_BASE_93344.qml delete mode 100644 Gui/ObjectTable_LOCAL_93344.qml delete mode 100644 Gui/ObjectTable_REMOTE_93344.qml delete mode 100644 Gui/ObjectsTable.qml.orig delete mode 100644 Gui/OfferTable.qml.orig delete mode 100644 Gui/OffersTable.qml.orig diff --git a/Gui/ObjectTable.qml.orig b/Gui/ObjectTable.qml.orig deleted file mode 100644 index 9e0c078..0000000 --- a/Gui/ObjectTable.qml.orig +++ /dev/null @@ -1,26 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import Qt.labs.qmlmodels - -Item { - property var availableFilters: [""] - anchors.fill: parent - - StackView - { - id: objectsStack - anchors.fill: parent - initialItem: "ObjectsTable.qml" -<<<<<<< HEAD - anchors.topMargin: Dimensions.m -======= ->>>>>>> 7f5675c06d72728a2249b66dc18d56221ad5a0c97791edbc86afeb57dcb3392d - } -} - - - - - - diff --git a/Gui/ObjectTable_BACKUP_93344.qml b/Gui/ObjectTable_BACKUP_93344.qml deleted file mode 100644 index 9e0c078..0000000 --- a/Gui/ObjectTable_BACKUP_93344.qml +++ /dev/null @@ -1,26 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import Qt.labs.qmlmodels - -Item { - property var availableFilters: [""] - anchors.fill: parent - - StackView - { - id: objectsStack - anchors.fill: parent - initialItem: "ObjectsTable.qml" -<<<<<<< HEAD - anchors.topMargin: Dimensions.m -======= ->>>>>>> 7f5675c06d72728a2249b66dc18d56221ad5a0c97791edbc86afeb57dcb3392d - } -} - - - - - - diff --git a/Gui/ObjectTable_BASE_93344.qml b/Gui/ObjectTable_BASE_93344.qml deleted file mode 100644 index 8fc8d48..0000000 --- a/Gui/ObjectTable_BASE_93344.qml +++ /dev/null @@ -1,22 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import Qt.labs.qmlmodels - -Item { - property var availableFilters: [""] - - StackView - { - id: objectsStack - anchors.fill: parent - initialItem: "ObjectsTable.qml" - anchors.margins: 9 - } -} - - - - - - diff --git a/Gui/ObjectTable_LOCAL_93344.qml b/Gui/ObjectTable_LOCAL_93344.qml deleted file mode 100644 index e72e3a8..0000000 --- a/Gui/ObjectTable_LOCAL_93344.qml +++ /dev/null @@ -1,22 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import Qt.labs.qmlmodels - -Item { - property var availableFilters: [""] - - StackView - { - id: objectsStack - anchors.fill: parent - initialItem: "ObjectsTable.qml" - anchors.topMargin: Dimensions.m - } -} - - - - - - diff --git a/Gui/ObjectTable_REMOTE_93344.qml b/Gui/ObjectTable_REMOTE_93344.qml deleted file mode 100644 index 19c9865..0000000 --- a/Gui/ObjectTable_REMOTE_93344.qml +++ /dev/null @@ -1,22 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import Qt.labs.qmlmodels - -Item { - property var availableFilters: [""] - anchors.fill: parent - - StackView - { - id: objectsStack - anchors.fill: parent - initialItem: "ObjectsTable.qml" - } -} - - - - - - diff --git a/Gui/ObjectsTable.qml.orig b/Gui/ObjectsTable.qml.orig deleted file mode 100644 index 46d3b1d..0000000 --- a/Gui/ObjectsTable.qml.orig +++ /dev/null @@ -1,257 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import Qt.labs.qmlmodels - -<<<<<<< HEAD -ColumnLayout -{ - function viewCriterion(criterion) - { - business_model.viewCriterion(criterion.text); - } - function onObjectContactAdded(added) - { - console.log(added) - if (added) object_model.viewCriterion("") - } - - anchors.fill: parent - - Component.onCompleted: - { - contact_model.objectContactAdded.connect(onObjectContactAdded) - objectsStack.pop() - } - RowLayout - { - SearchBar - { - - } - QuickFilter { - onSelectedChanged: (name) => { - business_model.viewCriterion(name) - } - - model: ListModel { - ListElement { - - name: "Alle" - text: qsTr("Alle") - selected: true - } - ListElement { - name: "Interessent" - text: qsTr("Interessent") - selected: false - } - ListElement { - name: "Kunde" - text: qsTr("Kunde") - selected: false - } - ListElement { - name: "Lieferant" - text: qsTr("Lieferant") - selected: false - } - ListElement { - name: "Erledigt" - text: qsTr("Erledigt") - selected: false - } - } - } - Button - { - id: addObjectBtn - icon.source: "qrc:/images/PlusCircle.svg" - text: qsTr("Objekt Hinzufügen") - Layout.alignment: Qt.AlignRight - onClicked: appLoader.source = "AddObject.qml" - } -======= -ColumnLayout { - spacing: Dimensions.l - function onObjectContactAdded(added) { - console.log(added); - if (added) - object_model.viewCriterion(""); - } - - Component.onCompleted: { - contact_model.objectContactAdded.connect(onObjectContactAdded); - objectsStack.pop(); ->>>>>>> 7f5675c06d72728a2249b66dc18d56221ad5a0c97791edbc86afeb57dcb3392d - } - - RowLayout { - Layout.fillWidth: true - spacing: Dimensions.l - -<<<<<<< HEAD - ColumnLayout - { - id: tableColumn - clip: true - // anchors - // { - // top: searchBar.bottom - // bottom: parent.bottom - // left: parent.left - // right: parent.right - // topMargin: 15 - // } - HorizontalHeaderView - { -======= - SearchBar { - } - - Button { - id: addObjectBtn - Layout.alignment: Qt.AlignRight - - icon.source: "qrc:/images/PlusCircle.svg" - text: qsTr("Objekt Hinzufügen") - - onClicked: appLoader.source = "AddObject.qml" - } - } - ColumnLayout { - id: tableColumn - Layout.fillWidth: true - Layout.fillHeight: true - Layout.verticalStretchFactor: 1 - - clip: true - - HorizontalHeaderView { ->>>>>>> 7f5675c06d72728a2249b66dc18d56221ad5a0c97791edbc86afeb57dcb3392d - id: horizontalHeaderview - - Layout.fillWidth: true - implicitHeight: 40 - movableColumns: true //@disable-check M16 - syncView: objectTable - - delegate: Rectangle { - Layout.fillWidth: true - border.color: addObjectBtn.palette.base - color: addObjectBtn.palette.alternateBase - implicitHeight: 40 - implicitWidth: 1 - - Text { - color: addObjectBtn.palette.text - elide: Text.ElideRight - height: parent.height - horizontalAlignment: Text.AlignHCenter - text: model.display - verticalAlignment: Text.AlignVCenter - width: parent.width - } - } - } - TableView { - id: objectTable - - property real newWidth: 0 - - Layout.fillWidth: true - Layout.fillHeight: true - alternatingRows: true - columnSpacing: 1 - height: parent.height - horizontalHeaderview.height - model: object_model - resizableColumns: true // @disable-check M16 - rowSpacing: 2 - selectionBehavior: TableView.SelectRows - z: 0 - - ScrollBar.vertical: ScrollBar { - policy: objectTable.contentHeight > objectTable.height ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff - } - delegate: Rectangle { - required property bool current - required property bool selected - - color: selected ? addObjectBtn.palette.highlight - : (objectTable.alternatingRows && row % 2 !== 0 ? addObjectBtn.palette.base - : addObjectBtn.palette.alternateBase) - - implicitHeight: 25 - implicitWidth: objectTable.width / objectTable.columns - - Text { - color: addObjectBtn.palette.text - elide: Text.ElideRight - height: parent.height - leftPadding: 9 //@disable-check M16 - text: (model.display === null || model.display === undefined) ? "" : model.display - verticalAlignment: Text.AlignVCenter - width: parent.width - } - MouseArea { - id: mouseArea - - property bool hovered: false - - anchors.fill: parent - hoverEnabled: true - - onDoubleClicked: { - objectsStack.push("ObjectDetails.qml", { - selectedObject: row - }); - } - onEntered: { - objectTable.selectionModel.select(objectTable.model.index(row, 0), ItemSelectionModel.SelectCurrent | ItemSelectionModel.Rows); - } - } - } - - selectionModel: ItemSelectionModel { - id: obmodel - - model: objectTable.model - } - } -<<<<<<< HEAD - - - } - Item - { - - Layout.fillHeight: true - } - // function onObjectContactAdded(added) - // { - // console.log(added) - // if (added) object_model.viewCriterion("") - // } - // function viewCriterion(criterion) - // { - // object_model.viewCriterion(criterion.text) - // } - - // Component.onCompleted: - // { - // contact_model.objectContactAdded.connect(onObjectContactAdded) - // objectsStack.pop() - // } - - // function onObjectContactAdded(added) - // { - // console.log(added) - // if (added) object_model.viewCriterion("") - // } -======= - Item { - Layout.fillWidth: true - } - } ->>>>>>> 7f5675c06d72728a2249b66dc18d56221ad5a0c97791edbc86afeb57dcb3392d -} diff --git a/Gui/OfferTable.qml.orig b/Gui/OfferTable.qml.orig deleted file mode 100644 index 10d6b8e..0000000 --- a/Gui/OfferTable.qml.orig +++ /dev/null @@ -1,22 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import Qt.labs.qmlmodels - - -Item -{ - anchors.fill: parent - StackView - { - id: offersStack - - anchors.fill: parent - initialItem: "OffersTable.qml" -<<<<<<< HEAD - anchors.topMargin: Dimensions.m -======= ->>>>>>> 7f5675c06d72728a2249b66dc18d56221ad5a0c97791edbc86afeb57dcb3392d - } -} - diff --git a/Gui/OffersTable.qml.orig b/Gui/OffersTable.qml.orig deleted file mode 100644 index 64dd9ec..0000000 --- a/Gui/OffersTable.qml.orig +++ /dev/null @@ -1,90 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import Qt.labs.qmlmodels - -<<<<<<< HEAD -ColumnLayout -{ - anchors.fill: parent - function viewOffers(criterion) - { - //offer_model.viewCriterion(criterion) -======= -ColumnLayout { - property var availableFilters: [] - - Layout.fillWidth: true - anchors.fill: parent - - RowLayout { - spacing: Dimensions.l - SearchBar { - } - } - Item { - Layout.fillHeight: true ->>>>>>> 7f5675c06d72728a2249b66dc18d56221ad5a0c97791edbc86afeb57dcb3392d - } - - RowLayout - { - SearchBar - { - id:searchBar - } - QuickFilter - { - onSelectedChanged: (name) => - { - business_model.viewCriterion(name) - } - - model: ListModel - { - ListElement - { - - name: "Alle" - text: qsTr("Alle") - selected: true - } - ListElement - { - name: "Offen" - text: qsTr("Offen") - selected: false - } - ListElement - { - name: "Abgeschlossen" - text: qsTr("Abgeschlossen") - selected: false - } - - ListElement - { - name: "Erledigt" - text: qsTr("Erledigt") - selected: false - } - } - } - Button - { - id: addOfferBtn - text: qsTr("Angebote Hinzufügen") - icon.source: "qrc:/images/PlusCircle.svg" - Layout.alignment: Qt.AlignRight - flat: true - //onClicked: appLoader.source = "AddOffer.qml" - } - } - Item { - id: spacer - Layout.fillHeight: true - - } - - -} diff --git a/Gui/TopBar.qml b/Gui/TopBar.qml index 095f33e..6378bc9 100644 --- a/Gui/TopBar.qml +++ b/Gui/TopBar.qml @@ -2,269 +2,159 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts - -ColumnLayout -{ +ColumnLayout { id: topBar - spacing: 0 + height: parent.height - anchors - { - top: parent.top + spacing: 0 + + anchors { left: parent.left - - + top: parent.top } - ButtonGroup - { + ButtonGroup { id: buttonBar - } - BarButton - { + } + BarButton { id: dashBoard - flat: true - text: qsTr("Dashboard") - implicitWidth: 90 - implicitHeight: 90 + + ButtonGroup.group: buttonBar Layout.margins: 3 Layout.topMargin: Dimensions.s + flat: true icon.source: "qrc:/images/dash.svg" - ButtonGroup.group: buttonBar - // background: Rectangle - // { - // id: dashiBackie - // border.width: dashBoard.activeFocus ? 2 : 1 - // border.color: "#888" - // radius: 4 - // gradient: Gradient - // { - // GradientStop { position: 0 ; color: dashBoard.pressed ? "#000" : "#001" } - // GradientStop { position: 1 ; color: dashBoard.pressed ? "#100" : "#000" } - // } - // } - onClicked: - { - appLoader.source = "Dashboard.qml" + implicitHeight: 90 + implicitWidth: 90 + text: qsTr("Dashboard") - - // dashiBackie.border.width = 2 - // kundiBackie.border.width = 1 - // mitoBackie.border.width = 1 - // invoBackie.border.width = 1 - // objBackie.border.width = 1 + onClicked: { + appLoader.source = "Dashboard.qml"; } } - - BarButton - { + BarButton { id: kunden - flat: true - text: qsTr("Kunden") - implicitWidth: 90 - implicitHeight: 90 + + ButtonGroup.group: buttonBar Layout.margins: 3 + flat: true icon.source: "qrc:/images/customer.svg" - ButtonGroup.group: buttonBar - // background: Rectangle - // { - // id: kundiBackie - // border.width: kunden.activeFocus ? 2 : 1 - // border.color: "#888" - // radius: 4 - // gradient: Gradient - // { - // GradientStop { position: 0 ; color: kunden.pressed ? "#000" : "#001" } - // GradientStop { position: 1 ; color: kunden.pressed ? "#100" : "#000" } - // } - // } - onClicked: - { - // TODO: here we should call the model - appLoader.source = "CustomerTable.qml" - // kundiBackie.border.width = 2 - // dashiBackie.border.width = 1 - // mitoBackie.border.width = 1 - // invoBackie.border.width = 1 - // objBackie.border.width = 1 + implicitHeight: 90 + implicitWidth: 90 + text: qsTr("Kunden") + + onClicked: { + appLoader.source = "CustomerTable.qml"; } } - - BarButton - { + BarButton { id: objekt - flat: true - text: qsTr("Objekt") - implicitWidth: 90 - implicitHeight: 90 + + ButtonGroup.group: buttonBar Layout.margins: 3 + flat: true icon.source: "qrc:/images/object.svg" - ButtonGroup.group: buttonBar - // background: Rectangle - // { - // id: objBackie - // border.width: objekt.activeFocus ? 2 : 1 - // border.color: "#888" - // radius: 4 - // gradient: Gradient - // { - // GradientStop { position: 0 ; color: objekt.pressed ? "#000" : "#001" } - // GradientStop { position: 1 ; color: objekt.pressed ? "#100" : "#000" } - // } - // } - onClicked: - { - appLoader.source = "ObjectTable.qml" - // objBackie.border.width = 2 - // dashiBackie.border.width = 1 - // kundiBackie.border.width = 1 - // mitoBackie.border.width = 1 - // invoBackie.border.width = 1 + implicitHeight: 90 + implicitWidth: 90 + text: qsTr("Objekt") + + onClicked: { + appLoader.source = "ObjectTable.qml"; } - } - - BarButton - { + BarButton { id: mitarbeiter - flat: true - text: qsTr("Mitarbeiter") - implicitWidth: 90 - implicitHeight: 90 + + ButtonGroup.group: buttonBar Layout.margins: 3 + flat: true icon.source: "qrc:/images/employee.svg" + implicitHeight: 90 + implicitWidth: 90 + text: qsTr("Mitarbeiter") - ButtonGroup.group: buttonBar - // background: Rectangle - // { - // id: mitoBackie - // border.width: mitarbeiter.activeFocus ? 2 : 1 - // border.color: "#888" - // radius: 4 - // gradient: Gradient - // { - // GradientStop { position: 0 ; color: mitarbeiter.pressed ? "#000" : "#001" } - // GradientStop { position: 1 ; color: mitarbeiter.pressed ? "#100" : "#000" } - // } - // } - onClicked: - { - appLoader.source = "EmployeeTable.qml" - // mitoBackie.border.width = 2 - // dashiBackie.border.width = 1 - // kundiBackie.border.width = 1 - // invoBackie.border.width = 1 - // objBackie.border.width = 1 + onClicked: { + appLoader.source = "EmployeeTable.qml"; } } - - BarButton - { + BarButton { id: offers - flat: true - text: qsTr("Angebote") - implicitWidth: 90 - implicitHeight: 90 - Layout.margins: 3 - icon.source: "qrc:/images/offer.svg" + ButtonGroup.group: buttonBar - // background: Rectangle - // { - // id: offersBackie - // border.width: offers.activeFocus ? 2 : 1 - // border.color: "#888" - // radius: 4 - // gradient: Gradient - // { - // GradientStop { position: 0 ; color: offers.pressed ? "#000" : "#001" } - // GradientStop { position: 1 ; color: offers.pressed ? "#100" : "#000" } - // } - // } - onClicked: - { - appLoader.source = "OfferTable.qml" - // mitoBackie.border.width = 2 - // dashiBackie.border.width = 1 - // kundiBackie.border.width = 1 - // invoBackie.border.width = 1 - // objBackie.border.width = 1 - // offersBackie.border.width = 1 + Layout.margins: 3 + flat: true + icon.source: "qrc:/images/offer.svg" + implicitHeight: 90 + implicitWidth: 90 + text: qsTr("Angebote") + + onClicked: { + appLoader.source = "OfferTable.qml"; } } - - BarButton - { + BarButton { id: abrechnung - flat: true - text: qsTr("Abrechnung") - implicitWidth: 90 - implicitHeight: 90 - Layout.margins: 3 - icon.source: "qrc:/images/invoice.svg" - ButtonGroup.group: buttonBar - // background: Rectangle - // { - // id: invoBackie - // border.width: abrechnung.activeFocus ? 2 : 1 - // border.color: "#888" - // radius: 4 - // gradient: Gradient - // { - // GradientStop { position: 0 ; color: abrechnung.pressed ? "#000" : "#001" } - // GradientStop { position: 1 ; color: abrechnung.pressed ? "#100" : "#000" } - // } - // } - } - Item - { + ButtonGroup.group: buttonBar + Layout.margins: 3 + flat: true + icon.source: "qrc:/images/invoice.svg" + implicitHeight: 90 + implicitWidth: 90 + text: qsTr("Abrechnung") + } + Item { id: hspacer + Layout.fillHeight: true } - - BarButton - { + BarButton { id: atajos - implicitWidth: 90 - implicitHeight: 90 - checkable: false - icon.source: "qrc:/images/Bars3.svg" - flat: true Layout.bottomMargin: Dimensions.s + checkable: false + flat: true + icon.source: "qrc:/images/Bars3.svg" + implicitHeight: 90 + implicitWidth: 90 + onClicked: mainMenu.open() Menu { - id: mainMenu - MenuItem - { - //text: qsTr("Benutzer-Verwaltung") - //onTriggered: appLoader.source = "UsersPage.qml" - text: qsTr("Einstellungen") - onTriggered: - { - // TODO: Check if logged-in user is admin first!! + id: mainMenu - appLoader.source = "PyqcrmConf.qml" - } - } - MenuSeparator {} - MenuItem { text: qsTr("Als PDF exportieren") } - MenuSeparator {} - MenuItem { text: qsTr("Drucken") } - MenuItem - { - text: qsTr("Erweiterter Druck") - onTriggered: printerDialog.show() - } - MenuSeparator {} - MenuItem - { - text: qsTr("Über PYQCRM") - onTriggered: readMeWin.show() + MenuItem { + text: qsTr("Einstellungen") + + onTriggered: { + // TODO: Check if logged-in user is admin first!! + + appLoader.source = "PyqcrmConf.qml"; } } + MenuSeparator { + } + MenuItem { + text: qsTr("Als PDF exportieren") + } + MenuSeparator { + } + MenuItem { + text: qsTr("Drucken") + } + MenuItem { + text: qsTr("Erweiterter Druck") + + onTriggered: printerDialog.show() + } + MenuSeparator { + } + MenuItem { + text: qsTr("Über PYQCRM") + + onTriggered: readMeWin.show() + } + } } } - diff --git a/TeroStyle/BarButton.qml b/TeroStyle/BarButton.qml index 0572df1..6c87f15 100644 --- a/TeroStyle/BarButton.qml +++ b/TeroStyle/BarButton.qml @@ -6,82 +6,44 @@ import QtQuick.Templates as T T.ToolButton { id: control - implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, - implicitContentWidth + leftPadding + rightPadding) - implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, - implicitContentHeight + topPadding + bottomPadding) checkable: true icon.color: Colors.foreground icon.height: 36 icon.width: 36 + implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding) + implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) topPadding: 20 - // horizontalPadding: padding + 2 - // spacing: 6 - // display: AbstractButton.TextUnderIcon - - // icon.color: control.checked || control.highlighted ? control.palette.brightText : - // control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText - - contentItem: Column - { - - IconLabel - { - - - x: parent.width * .5 - width * .5 - // height: icon.height - // width: icon.width - icon: control.icon - - // display: control.display - - - } - Label - { - text: control.text - font: Typography.dash - - color: Colors.foreground - x: parent.width * .5 - width * .5 - - - - } - - // spacing: control.spacing - // mirrored: control.mirrored - // display: control.TextUnderIcon - - // icon: control.icon - // text: control.text - // font: control.font - // color: control.checked || control.highlighted ? control.palette.brightText : - // control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText - - } background: Rectangle { id: mainrect - implicitWidth: control.width + + border.color: control.palette.highlight + border.width: control.visualFocus ? 2 : 0 + color: Color.blend(control.checked || control.highlighted ? control.palette.dark : control.palette.button, control.palette.mid, control.down ? 0.5 : 0.0) implicitHeight: control.height + implicitWidth: control.width visible: !control.flat || control.down || control.checked || control.highlighted x: control.left y: control.top - color: Color.blend(control.checked || control.highlighted ? control.palette.dark : control.palette.button, - control.palette.mid, control.down ? 0.5 : 0.0) - border.color: control.palette.highlight - border.width: control.visualFocus ? 2 : 0 - Rectangle - { + + Rectangle { + color: "yellow" implicitHeight: control.height implicitWidth: 6 x: mainrect.left y: mainrect.top - color: "yellow" - } } - + contentItem: Column { + IconLabel { + icon: control.icon + x: parent.width * .5 - width * .5 + } + Label { + color: Colors.foreground + font: Typography.dash + text: control.text + x: parent.width * .5 - width * .5 + } + } }