diff --git a/programs/light_client/Transaction.cpp b/programs/light_client/Transaction.cpp index 5f13814a..a9a6f5f1 100644 --- a/programs/light_client/Transaction.cpp +++ b/programs/light_client/Transaction.cpp @@ -19,6 +19,11 @@ struct OperationConverter { } }; +QString Transaction::statusString() const +{ + return QMetaEnum::fromType().valueToKey(status()); +} + QQmlListProperty Transaction::operations() { auto append = [](QQmlListProperty* list, OperationBase* op) { diff --git a/programs/light_client/Transaction.hpp b/programs/light_client/Transaction.hpp index 9e08ea7e..5720534d 100644 --- a/programs/light_client/Transaction.hpp +++ b/programs/light_client/Transaction.hpp @@ -17,6 +17,7 @@ public: Q_ENUM(Status); Status status() const { return m_status; } + QString statusString() const; QQmlListProperty operations(); OperationBase* operationAt(int index) const; @@ -72,6 +73,7 @@ signals: private: Q_PROPERTY(Status status READ status WRITE setStatus NOTIFY statusChanged) + Q_PROPERTY(QString statusString READ statusString NOTIFY statusChanged STORED false) Q_PROPERTY(QQmlListProperty operations READ operations NOTIFY operationsChanged) Q_PROPERTY(QDateTime expiration READ expiration WRITE setExpiration NOTIFY expirationChanged) diff --git a/programs/light_client/main.cpp b/programs/light_client/main.cpp index 19144e2c..24af3467 100644 --- a/programs/light_client/main.cpp +++ b/programs/light_client/main.cpp @@ -33,6 +33,7 @@ int main(int argc, char *argv[]) qRegisterMetaType>(); qRegisterMetaType(); qRegisterMetaType>(); + qRegisterMetaType(); qmlRegisterType("Graphene.Client", 0, 1, "Asset"); qmlRegisterType("Graphene.Client", 0, 1, "Balance"); diff --git a/programs/light_client/qml/TransactionConfirmationForm.qml b/programs/light_client/qml/TransactionConfirmationForm.qml index 350b8204..c9e4694f 100644 --- a/programs/light_client/qml/TransactionConfirmationForm.qml +++ b/programs/light_client/qml/TransactionConfirmationForm.qml @@ -48,12 +48,22 @@ FormBase { transparentBorder: true } - TransactionDelegate { + // Debugging shim; disable before release + Loader { + id: delegateLoader x: Scaling.mm(2) y: Scaling.mm(2) - trx: __trx Layout.preferredWidth: Scaling.cm(10) - app: base.app + Component.onCompleted: setSource("TransactionDelegate.qml", {"trx": __trx, "app": base.app}) + + MouseArea { + anchors.fill: parent + onClicked: { + console.log("Reloading transaction") + delegateLoader.source = "" + delegateLoader.setSource("TransactionDelegate.qml", {"trx": __trx, "app": base.app}) + } + } } } RowLayout { diff --git a/programs/light_client/qml/TransactionDelegate.qml b/programs/light_client/qml/TransactionDelegate.qml index 440b8a6a..26f6b5c4 100644 --- a/programs/light_client/qml/TransactionDelegate.qml +++ b/programs/light_client/qml/TransactionDelegate.qml @@ -12,6 +12,11 @@ ColumnLayout { property Transaction trx property GrapheneApplication app + Text { + font.bold: true + font.pointSize: Scaling.cm(.4) + text: qsTr("Transaction Status: %1").arg(trx.statusString) + } Repeater { model: trx.operations Loader {