diff --git a/ui/StatusQ/sandbox/StatusAddressPage.qml b/ui/StatusQ/sandbox/StatusAddressPage.qml new file mode 100644 index 0000000000..544e298549 --- /dev/null +++ b/ui/StatusQ/sandbox/StatusAddressPage.qml @@ -0,0 +1,25 @@ +import QtQuick 2.14 +import QtQuick.Controls 2.14 +import QtQuick.Layouts 1.14 + +import StatusQ.Components 0.1 + +import Sandbox 0.1 + +Column { + spacing: 8 + + StatusAddress { + text: "0x9ce0056c5fc6bb9459a4dcfa35eaad8c1fee5ce9" + } + + Item { + width: 200 + height: childrenRect.height + StatusAddress { + text: "0x9ce0056c5fc6bb9459a4dcfa35eaad8c1fee5ce9" + expandable: true + width: parent.width + } + } +} diff --git a/ui/StatusQ/sandbox/main.qml b/ui/StatusQ/sandbox/main.qml index 01a44de999..acc724bbe6 100644 --- a/ui/StatusQ/sandbox/main.qml +++ b/ui/StatusQ/sandbox/main.qml @@ -164,6 +164,11 @@ StatusWindow { onClicked: page.sourceComponent = statusAccountSelectorPageComponent } StatusListSectionHeadline { text: "StatusQ.Components" } + StatusNavigationListItem { + title: "StatusAddress" + selected: page.sourceComponent == statusAddressPageComponent + onClicked: page.sourceComponent = statusAddressPageComponent + } StatusNavigationListItem { title: "List Items" selected: page.sourceComponent == listItemsComponent @@ -281,6 +286,11 @@ StatusWindow { ListItems {} } + Component { + id: statusAddressPageComponent + StatusAddressPage {} + } + Component { id: layoutComponent Layout {} diff --git a/ui/StatusQ/src/StatusQ/Components/StatusAddress.qml b/ui/StatusQ/src/StatusQ/Components/StatusAddress.qml new file mode 100644 index 0000000000..4918859e41 --- /dev/null +++ b/ui/StatusQ/src/StatusQ/Components/StatusAddress.qml @@ -0,0 +1,39 @@ +import QtQuick 2.14 + +import StatusQ.Core 0.1 +import StatusQ.Core.Theme 0.1 +import StatusQ.Controls 0.1 + +StatusBaseText { + id: root + + property bool expandable: false + property bool expanded: false + readonly property real actualWidth: implicitWidth + property real maxWidth: width + + font.family: Theme.palette.monoFont.name + font.pixelSize: 13 + elide: Text.ElideMiddle + color: Theme.palette.baseColor1 + + Component.onCompleted: { + maxWidth = width + expanded = actualWidth <= maxWidth + } + + MouseArea { + anchors.fill: parent + cursorShape: root.expandable ? Qt.PointingHandCursor : Qt.arrowCursor + enabled: root.expandable + + onClicked: { + if (root.expanded) { + width = root.width = root.maxWidth + } else { + width = root.width = root.actualWidth + } + root.expanded = !root.expanded + } + } +} diff --git a/ui/StatusQ/src/StatusQ/Components/qmldir b/ui/StatusQ/src/StatusQ/Components/qmldir index 78e2b2038b..003e8003b6 100644 --- a/ui/StatusQ/src/StatusQ/Components/qmldir +++ b/ui/StatusQ/src/StatusQ/Components/qmldir @@ -1,5 +1,6 @@ module StatusQ.Components +StatusAddress 0.1 StatusAddress.qml StatusBadge 0.1 StatusBadge.qml StatusChatInfoToolBar 0.1 StatusChatInfoToolBar.qml StatusChatList 0.1 StatusChatList.qml diff --git a/ui/StatusQ/statusq.qrc b/ui/StatusQ/statusq.qrc index 2cd257f1f0..d3392e92c3 100644 --- a/ui/StatusQ/statusq.qrc +++ b/ui/StatusQ/statusq.qrc @@ -21,6 +21,7 @@ src/StatusQ/Popups/StatusMenuItemDelegate.qml src/StatusQ/Popups/StatusModalDivider.qml src/StatusQ/Components/qmldir + src/StatusQ/Components/StatusAddress.qml src/StatusQ/Components/StatusChatListItem.qml src/StatusQ/Components/StatusChatListAndCategories.qml src/StatusQ/Components/StatusChatInfoToolBar.qml