Merge pull request #38 from logos-blockchain/fix/latestDesignSystemFixes

fix: use latest design system an dupdate ui to be compatible with it
This commit is contained in:
Khushboo-dev-cpp 2026-08-04 12:12:11 +00:00 committed by GitHub
commit 79e6f02866
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 29732 additions and 2280 deletions

31909
flake.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
description = "Logos Execution Zone Wallet UI - QML view + C++ backend module";
inputs = {
logos-module-builder.url = "github:logos-co/logos-module-builder";
logos-module-builder.url = "github:logos-co/logos-module-builder/0.2.6";
nix-bundle-lgx.url = "github:logos-co/nix-bundle-lgx";
lez_core.url = "github:logos-blockchain/logos-execution-zone-module?rev=7dd1d29ced0971e24b05d978fb2b560b240d212f";
};

View File

@ -106,12 +106,6 @@ Rectangle {
color: Theme.palette.background
// Used as a clipboard helper TextEdit.copy() works in the GUI process.
TextEdit {
id: clipHelper
visible: false
}
SetLabelDialog {
id: setLabelDialog
@ -331,11 +325,6 @@ Rectangle {
if (!backend) return
backend.refreshVaultBalances() // void slot, fire-and-forget
}
onCopyRequested: (copyText) => {
clipHelper.text = copyText
clipHelper.selectAll()
clipHelper.copy()
}
onInitializeAccountRequested: (accountId) => dashboardView.initializeAccount(accountId)
onLabelRequested: (accountId, isPublic) => {
setLabelDialog.accountId = accountId

View File

@ -9,10 +9,6 @@ import "../Base58.js" as Base58
ComboBox {
id: root
// Forwarded from AccountDelegate's copy button bubble up to the parent
// view, which calls backend.copyToClipboard().
signal copyRequested(string text)
leftPadding: 12
rightPadding: 12
implicitHeight: 40
@ -60,7 +56,6 @@ ComboBox {
delegate: AccountDelegate {
width: root.popup ? (root.popup.width - root.popup.leftPadding - root.popup.rightPadding) : 368
highlighted: root.highlightedIndex === index
onCopyRequested: (text) => root.copyRequested(text)
}
popup: Popup {

View File

@ -9,15 +9,11 @@ import "../Base58.js" as Base58
ItemDelegate {
id: root
// Emitted when the user clicks the copy icon. The parent connects this
// to backend.copyToClipboard(...) AccountDelegate doesn't reach into
// the global QML scope for `backend` since it now lives behind the
// logos.module() bridge in the parent view.
signal copyRequested(string text)
// Emitted when the user clicks "Initialize" on an uninitialized account. The
// parent wires this to backend.initializeAccount(...) for the same reason as
// copyRequested above. Public-only: public account initialization requires
// parent wires this to backend.initializeAccount(...) AccountDelegate doesn't
// reach into the global QML scope for `backend` since it now lives behind the
// logos.module() bridge in the parent view. Public-only: public account
// initialization requires
// authorization, so it requires a manual init signed by the owner. Private
// accounts don't need authorization to initialize, so they never need this button.
signal initializeRequested(string accountId)
@ -134,11 +130,9 @@ ItemDelegate {
elide: Text.ElideMiddle
}
LogosCopyButton {
Layout.preferredHeight: 40
Layout.preferredWidth: 40
onCopyText: root.copyRequested(Base58.encode(model.accountId ?? ""))
Layout.alignment: Qt.AlignVCenter
value: Base58.encode(model.accountId ?? "")
visible: addressLabel.text
icon.color: Theme.palette.textMuted
}
}

View File

@ -1,39 +0,0 @@
import QtQuick
import QtQuick.Controls
import Logos.Theme
Button {
id: root
signal copyText()
implicitWidth: 24
implicitHeight: 24
display: AbstractButton.IconOnly
flat: true
property string iconSource: Qt.resolvedUrl("../icons/copy.svg")
icon.source: root.iconSource
icon.width: 24
icon.height: 24
icon.color: Theme.palette.textSecondary
function reset() {
iconSource = Qt.resolvedUrl("../icons/copy.svg")
}
Timer {
id: resetTimer
interval: 1500
repeat: false
onTriggered: root.reset()
}
onClicked: {
root.copyText()
root.iconSource = Qt.resolvedUrl("../icons/checkmark.svg")
resetTimer.restart()
}
}

View File

@ -1 +0,0 @@
<svg fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m6.76413 10.1901 5.56067-5.41122c.382-.37171 1-.37297 1.3863.00299.3837.37336.3857.97674.0031 1.34906l-6.25845 6.09017c-.18993.1849-.43822.2781-.68737.2789-.25655-.0019-.50554-.0937-.69254-.2756l-2.79161-2.7166c-.38013-.36991-.37994-.96985.00641-1.34581.38367-.37336 1.00799-.37115 1.38299-.00623z" fill="#000" fill-rule="evenodd"/></svg>

Before

Width:  |  Height:  |  Size: 462 B

View File

@ -22,7 +22,6 @@ Rectangle {
signal createPublicAccountRequested(bool initializeOnCreate)
signal createPrivateAccountRequested()
signal fetchBalancesRequested()
signal copyRequested(string text)
signal initializeAccountRequested(string accountId)
signal labelRequested(string accountId, bool isPublic)
@ -255,17 +254,14 @@ Rectangle {
}
LogosCopyButton {
Layout.preferredHeight: 32
Layout.preferredWidth: 32
icon.color: Theme.palette.textMuted
onCopyText: root.copyRequested(model.keysJson ?? "")
Layout.alignment: Qt.AlignVCenter
value: model.keysJson ?? ""
}
}
AccountDelegate {
Layout.fillWidth: true
initializing: root.pendingInitializations[model.accountId] === true
onCopyRequested: (text) => root.copyRequested(text)
onInitializeRequested: (accountId) => root.initializeAccountRequested(accountId)
onLabelRequested: (accountId, isPublic) => root.labelRequested(accountId, isPublic)
}

View File

@ -17,7 +17,6 @@ Item {
signal bridgeWithdrawRequested(string fromAccountId, string bedrockAccountPkHex, string amount)
signal vaultClaimRequested(string fromAccountId, bool isPublic, string amount)
signal refreshClaimableDepositsRequested()
signal copyRequested(string copyText)
ColumnLayout {
anchors.fill: parent
@ -54,7 +53,6 @@ Item {
transferPending: root.transferPending
onBridgeWithdrawRequested: (fromId, bedrockAccountPkHex, amount) => root.bridgeWithdrawRequested(fromId, bedrockAccountPkHex, amount)
onCopyRequested: (copyText) => root.copyRequested(copyText)
}
ClaimDepositPanel {

View File

@ -34,7 +34,6 @@ Rectangle {
signal bridgeWithdrawRequested(string fromAccountId, string bedrockAccountPkHex, string amount)
signal vaultClaimRequested(string fromAccountId, bool isPublic, string amount)
signal refreshClaimableDepositsRequested()
signal copyRequested(string copyText)
signal initializeAccountRequested(string accountId)
signal labelRequested(string accountId, bool isPublic)
@ -58,7 +57,6 @@ Rectangle {
onCreatePublicAccountRequested: (initializeOnCreate) => root.createPublicAccountRequested(initializeOnCreate)
onCreatePrivateAccountRequested: root.createPrivateAccountRequested()
onFetchBalancesRequested: root.fetchBalancesRequested()
onCopyRequested: (text) => root.copyRequested(text)
onInitializeAccountRequested: (accountId) => root.initializeAccountRequested(accountId)
onLabelRequested: (accountId, isPublic) => root.labelRequested(accountId, isPublic)
}
@ -84,7 +82,6 @@ Rectangle {
onBridgeWithdrawRequested: (fromId, bedrockAccountPkHex, amount) => root.bridgeWithdrawRequested(fromId, bedrockAccountPkHex, amount)
onVaultClaimRequested: (fromId, isPublic, amount) => root.vaultClaimRequested(fromId, isPublic, amount)
onRefreshClaimableDepositsRequested: root.refreshClaimableDepositsRequested()
onCopyRequested: (copyText) => root.copyRequested(copyText)
}
}
}

View File

@ -29,7 +29,6 @@ Rectangle {
signal bridgeWithdrawRequested(string fromAccountId, string bedrockAccountPkHex, string amount)
signal vaultClaimRequested(string fromAccountId, bool isPublic, string amount)
signal refreshClaimableDepositsRequested()
signal copyRequested(string copyText)
radius: Theme.spacing.radiusXlarge
color: Theme.palette.backgroundSecondary
@ -76,7 +75,6 @@ Rectangle {
onTransferShieldedRequested: (fromId, toKeysJsonOrAddress, amount) => root.transferShieldedRequested(fromId, toKeysJsonOrAddress, amount)
onTransferShieldedOwnedRequested: (fromId, toAccountId, amount) => root.transferShieldedOwnedRequested(fromId, toAccountId, amount)
onTransferDeshieldedRequested: (fromId, toAccountId, amount) => root.transferDeshieldedRequested(fromId, toAccountId, amount)
onCopyRequested: (copyText) => root.copyRequested(copyText)
}
BridgePanel {
@ -87,7 +85,6 @@ Rectangle {
onBridgeWithdrawRequested: (fromId, bedrockAccountPkHex, amount) => root.bridgeWithdrawRequested(fromId, bedrockAccountPkHex, amount)
onVaultClaimRequested: (fromId, isPublic, amount) => root.vaultClaimRequested(fromId, isPublic, amount)
onRefreshClaimableDepositsRequested: root.refreshClaimableDepositsRequested()
onCopyRequested: (copyText) => root.copyRequested(copyText)
}
}
@ -126,10 +123,8 @@ Rectangle {
elide: Text.ElideMiddle
}
LogosCopyButton {
Layout.alignment: Qt.AlignRight
Layout.preferredHeight: 40
Layout.preferredWidth: 40
onCopyText: root.copyRequested(root.transferTxHash || root.transferResult)
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
value: root.transferTxHash || root.transferResult
visible: resultText.text
}
}

View File

@ -23,7 +23,6 @@ Item {
signal transferShieldedRequested(string fromAccountId, string toKeysJsonOrAddress, string amount)
signal transferShieldedOwnedRequested(string fromAccountId, string toAccountId, string amount)
signal transferDeshieldedRequested(string fromAccountId, string toAccountId, string amount)
signal copyRequested(string copyText)
readonly property int fromFilterCount: fromCombo.count
readonly property int toFilterCount: toCombo.count
@ -122,7 +121,6 @@ Item {
Layout.fillWidth: true
model: (d.isPrivateTab || d.isDeshieldedTab) ? root.privateAccountModel : root.publicAccountModel
visible: root.fromFilterCount > 0
onCopyRequested: (text) => root.copyRequested(text)
}
}
@ -165,7 +163,6 @@ Item {
Layout.fillWidth: true
model: (d.isPublicTab || d.isDeshieldedTab) ? root.publicAccountModel : root.privateAccountModel
visible: d.useOwnedAccountForTo && root.toFilterCount > 0
onCopyRequested: (text) => root.copyRequested(text)
}
}

View File

@ -16,7 +16,6 @@ Item {
// --- Public API: signals out (match backend: bridge_withdraw) ---
signal bridgeWithdrawRequested(string fromAccountId, string bedrockAccountPkHex, string amount)
signal copyRequested(string copyText)
readonly property int fromFilterCount: fromCombo.count
@ -58,7 +57,6 @@ Item {
Layout.fillWidth: true
model: root.publicAccountModel
visible: root.fromFilterCount > 0
onCopyRequested: (text) => root.copyRequested(text)
}
}