// Copyright (C) 2026 Danilo M. // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as // published by the Free Software Foundation. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. import QtQuick import "../.." // A list row: a label, an optional second line, trailing buttons (children), // and a click on the text. Item { id: row property string text: "" property string sub: "" default property alias buttons: trail.data signal clicked() width: parent ? parent.width : implicitWidth implicitHeight: Math.max(texts.implicitHeight, trail.implicitHeight) + 10 Rectangle { anchors.fill: parent radius: 6 color: hit.containsMouse ? Qt.alpha(Theme.accent, 0.12) : "transparent" } Column { id: texts anchors { left: parent.left; leftMargin: 8; right: trail.left; rightMargin: 8; verticalCenter: parent.verticalCenter } Text { textFormat: Text.PlainText width: parent.width elide: Text.ElideRight text: row.text font { family: Theme.fontFamily; pixelSize: Theme.fontSize - 2 } color: Theme.text } Text { textFormat: Text.PlainText visible: row.sub !== "" width: parent.width elide: Text.ElideRight text: row.sub font { family: Theme.fontFamily; pixelSize: Theme.fontSize - 5 } color: Theme.subtext } } MouseArea { id: hit anchors { left: parent.left; right: trail.left; top: parent.top; bottom: parent.bottom } hoverEnabled: true cursorShape: Qt.PointingHandCursor onClicked: row.clicked() } Row { id: trail anchors { right: parent.right; rightMargin: 4; verticalCenter: parent.verticalCenter } spacing: 2 } }