Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • cellframe/cellframe-dashboard
1 result
Show changes
Commits on Source (2)
Showing
with 255 additions and 15 deletions
......@@ -83,6 +83,10 @@ void DapServiceController::registerCommand()
m_transceivers.append(qMakePair(dynamic_cast<DapAbstractCommand*>(m_DAPRpcSocket->addService(new DapUpdateLogsCommand("DapUpdateLogsCommand", m_DAPRpcSocket))), QString("logUpdated")));
// Command to save data from the Logs tab
m_transceivers.append(qMakePair(dynamic_cast<DapAbstractCommand*>(m_DAPRpcSocket->addService(new DapExportLogCommand("DapExportLogCommand",m_DAPRpcSocket))), QString("exportLogs")));
// Creating a token transfer transaction between wallets
m_transceivers.append(qMakePair(dynamic_cast<DapAbstractCommand*>(m_DAPRpcSocket->addService(new DapCreateTransactionCommand("DapCreateTransactionCommand",m_DAPRpcSocket))), QString("transactionCreated")));
// Transaction confirmation
m_transceivers.append(qMakePair(dynamic_cast<DapAbstractCommand*>(m_DAPRpcSocket->addService(new DapMempoolProcessCommand("DapMempoolProcessCommand",m_DAPRpcSocket))), QString("mempoolProcessed")));
registerEmmitedSignal();
}
......
......@@ -14,6 +14,8 @@
#include "Handlers/DapActivateClientCommand.h"
#include "Handlers/DapUpdateLogsCommand.h"
#include "Handlers/DapExportLogCommand.h"
#include "Handlers/DapCreateTransactionCommand.h"
#include "Handlers/DapMempoolProcessCommand.h"
class DapServiceController : public QObject
{
......@@ -88,6 +90,12 @@ signals:
///A signal that is used to transmit data to the log model.
/// @param logUpdated QStringList
void logUpdated(const QVariant& logs);
/// A signal is emitted if a transaction is successfully created.
/// @param aResult Transaction result.
void transactionCreated(const QVariant& aResult);
/// Signal emitted in case of successful processing of the mempool.
/// @param aResult Mempool processing result.
void mempoolProcessed(const QVariant& aResult);
private slots:
......
......@@ -22,6 +22,5 @@ DapRightPanel
}
dapHeader.height: 36 * pt
dapFrame.height: parent.height
color: "#F8F7FA"
}
......@@ -4,7 +4,6 @@ import "qrc:/widgets"
DapScreen
{
dapFrame.height: parent.height
property Button buttonTest: Button {}
property Text textTest: Text {}
}
......@@ -3,6 +3,9 @@ import "qrc:/widgets"
DapTab
{
///@detalis Currently displayed right pane
property DapRightPanel currentRightPanel
dapSeparator.width: 1 * pt
dapSeparator.color: "#E3E2E6"
}
......@@ -6,7 +6,7 @@ import "../../"
DapAbstractScreen
{
id: dapdashboard
id: dapDashboardScreen
dapFrame.color: "#FFFFFF"
textTest.text: "Here text" // Delete it?
anchors.fill: parent
......@@ -18,6 +18,8 @@ DapAbstractScreen
property string ethereumImagePath: "qrc:/res/icons/tkn2_icon.png"
property string newGoldImagePath: "qrc:/res/icons/ng_icon.png"
property string kelvinImagePath: "qrc:/res/icons/ic_klvn.png"
///@param dapButtonNewPayment Button to create a new payment.
property alias dapButtonNewPayment: buttonNewPayment
Rectangle
{
......@@ -68,6 +70,7 @@ DapAbstractScreen
DapButton
{
id: buttonNewPayment
widthButton: 132 * pt
heightButton: 36 * pt
textButton: "New payment"
......
import QtQuick 2.4
import "../../"
DapDashboardTabForm
{
......@@ -13,9 +14,29 @@ DapDashboardTabForm
///@detalis Path to the right panel of last actions.
readonly property string lastActionsWallet: "qrc:/screen/" + device + "/Dashboard/RightPanel/DapLastActionsRightPanel.qml"
///@detalis Path to the right panel of new payment.
readonly property string newPayment: "qrc:/screen/" + device + "/Dashboard/RightPanel/DapNewPaymentMainRightPanel.qml"
readonly property string newPaymentMain: "qrc:/screen/" + device + "/Dashboard/RightPanel/DapNewPaymentMainRightPanel.qml"
///@detalis Path to the right panel of new payment done.
readonly property string newPaymentDone: "qrc:/screen/" + device + "/Dashboard/RightPanel/DapNewPaymentDoneRightPanel.qml"
dapDashboardRightPanel.source: Qt.resolvedUrl(newPayment)
// Setting the right pane by default
dapDashboardRightPanel.initialItem: Qt.resolvedUrl(lastActionsWallet);
// Signal-slot connection realizing panel switching depending on predefined rules
Connections
{
target: currentRightPanel
onNextActivated:
{
currentRightPanel = dapDashboardRightPanel.push(currentRightPanel.dapNextRightPanel);
}
}
// When you click on the button for creating a new payment, open the form to fill in the payment data
dapDashboardScreen.dapButtonNewPayment.onClicked:
{
if(dapDashboardRightPanel.currentItem !== currentRightPanel)
{
currentRightPanel = dapDashboardRightPanel.push(Qt.resolvedUrl(newPaymentMain));
}
}
}
import QtQuick 2.4
import QtQuick.Controls 2.0
import QtQuick.Controls 1.4
import "qrc:/"
import "../../"
......@@ -9,6 +9,7 @@ DapAbstractTab
property alias dapDashboardRightPanel: rightPanelLoader
property alias dapDashboardTopPanel: dashboardTopPanel
property alias dapDashboardScreen: dashboardScreen
dapTopPanel:
DapDashboardTopPanel
......@@ -16,14 +17,23 @@ DapAbstractTab
id: dashboardTopPanel
}
dapScreen: DapDashboardScreen { }
dapScreen:
DapDashboardScreen
{
id: dashboardScreen
}
dapRightPanel:
Loader
StackView
{
id: rightPanelLoader
anchors.fill: parent
width: 400
delegate:
StackViewDelegate
{
pushTransition: StackViewTransition { }
}
}
}
......
......@@ -11,12 +11,6 @@ DapDashboardTopPanelForm
{
id: modelTokens
}
Connections
{
target: dapServiceController
onAddWalletResponded: updateModel(wallet)
}
function updateModel(wallet)
{
......
......@@ -2,5 +2,8 @@ import QtQuick 2.4
DapNewPaymentDoneRightPanelForm
{
dapButtonSend.onClicked:
{
dapServiceController.requestToService("DapMempoolProcessCommand", "private", "gdb")
}
}
......@@ -6,6 +6,9 @@ import "../../../"
DapAbstractRightPanel
{
/// @param dapButtonSend Send button.
property alias dapButtonSend: buttonSend
dapHeaderData:
Row
{
......
......@@ -2,5 +2,12 @@ import QtQuick 2.4
DapNewPaymentMainRightPanelForm
{
// The form displayed after clicking on the "Send" button
dapNextRightPanel: newPaymentDone
dapButtonSend.onClicked:
{
nextActivated()
dapServiceController.requestToService("DapCreateTransactionCommand", "private", "gdb", "MyWallet", dapTextInputRecipientWalletAddress.text, dapCmboBoxToken.currentText, dapTextInputAmountPayment.text)
}
}
......@@ -6,6 +6,15 @@ import "../../../"
DapAbstractRightPanel
{
/// @param dapButtonSend Send funds button.
property alias dapButtonSend: buttonSend
/// @param dapTextInputAmountPayment Input field for transfer amount.
property alias dapTextInputAmountPayment: textInputAmountPayment
/// @param dapCmboBoxToken Token combobox.
property alias dapCmboBoxToken: comboBoxToken
/// @param dapTextInputRecipientWalletAddress Recipient wallet address input field.
property alias dapTextInputRecipientWalletAddress: textInputRecipientWalletAddress
dapHeaderData:
Row
{
......
......@@ -52,6 +52,10 @@ void DapServiceController::registerCommand()
m_pServer->addService(new DapUpdateLogsCommand("DapUpdateLogsCommand", m_pServer, LOG_FILE));
// Saving the file with the logs
m_pServer->addService(new DapExportLogCommand("DapExportLogCommand", m_pServer));
// Creating a token transfer transaction between wallets
m_pServer->addService(new DapCreateTransactionCommand("DapCreateTransactionCommand", m_pServer, CLI_PATH));
// Transaction confirmation
m_pServer->addService(new DapMempoolProcessCommand("DapMempoolProcessCommand", m_pServer, CLI_PATH));
}
/// Initialize system tray.
......
......@@ -28,6 +28,8 @@ typedef class DapRpcLocalServer DapUiService;
#include "Handlers/DapActivateClientCommand.h"
#include "Handlers/DapUpdateLogsCommand.h"
#include "Handlers/DapExportLogCommand.h"
#include "Handlers/DapCreateTransactionCommand.h"
#include "Handlers/DapMempoolProcessCommand.h"
#include "DapSystemTrayIcon.h"
#include "DapToolTipWidget.h"
......
#include "DapCreateTransactionCommand.h"
/// Overloaded constructor.
/// @param asServiceName Service name.
/// @param parent Parent.
/// @details The parent must be either DapRPCSocket or DapRPCLocalServer.
/// @param asCliPath The path to cli nodes.
DapCreateTransactionCommand::DapCreateTransactionCommand(const QString &asServicename, QObject *parent, const QString &asCliPath)
: DapAbstractCommand(asServicename, parent), m_sCliPath(asCliPath)
{
}
/// Send a response to the client.
/// @details Performed on the service side.
/// @param arg1 Network.
/// @param arg2 Chain.
/// @param arg3 Wallet sender.
/// @param arg4 Recipient's wallet address.
/// @param arg5 Token.
/// @param arg6 Transfer amount.
/// @return Reply to client.
QVariant DapCreateTransactionCommand::respondToClient(const QVariant &arg1, const QVariant &arg2, const QVariant &arg3, const QVariant &arg4, const QVariant &arg5, const QVariant &arg6, const QVariant &arg7, const QVariant &arg8, const QVariant &arg9, const QVariant &arg10)
{
Q_UNUSED(arg7)
Q_UNUSED(arg8)
Q_UNUSED(arg9)
Q_UNUSED(arg10)
QProcess processCreate;
processCreate.start(QString("%1 tx_create -net %2 -chain %3 -from_wallet %3 -to_addr %4 -token %5 -value %6")
.arg(m_sCliPath)
.arg(arg1.toString())
.arg(arg2.toString())
.arg(arg3.toString())
.arg(arg4.toString())
.arg(arg5.toString())
.arg(arg6.toString()));
processCreate.waitForFinished(-1);
QByteArray result = processCreate.readAll();
QRegExp rx("transfer=(\\w+)");
rx.indexIn(result, 0);
if(rx.cap(1) == "Ok")
{
return true;
}
return false;
}
#ifndef DAPCREATETRANSACTIONCOMMAND_H
#define DAPCREATETRANSACTIONCOMMAND_H
#include <QProcess>
#include "DapAbstractCommand.h"
class DapCreateTransactionCommand : public DapAbstractCommand
{
/// The path to cli nodes.
QString m_sCliPath;
public:
/// Overloaded constructor.
/// @param asServiceName Service name.
/// @param parent Parent.
/// @details The parent must be either DapRPCSocket or DapRPCLocalServer.
/// @param asCliPath The path to cli nodes.
DapCreateTransactionCommand(const QString &asServicename, QObject *parent = nullptr, const QString &asCliPath = QString());
public slots:
/// Send a response to the client.
/// @details Performed on the service side.
/// @param arg1 Network.
/// @param arg2 Chain.
/// @param arg3 Wallet sender.
/// @param arg4 Recipient's wallet address.
/// @param arg5 Token.
/// @param arg6 Transfer amount.
/// @return Reply to client.
QVariant respondToClient(const QVariant &arg1 = QVariant(), const QVariant &arg2 = QVariant(),
const QVariant &arg3 = QVariant(), const QVariant &arg4 = QVariant(),
const QVariant &arg5 = QVariant(), const QVariant &arg6 = QVariant(),
const QVariant &arg7 = QVariant(), const QVariant &arg8 = QVariant(),
const QVariant &arg9 = QVariant(), const QVariant &arg10 = QVariant()) override;
};
#endif // DAPCREATETRANSACTIONCOMMAND_H
#include "DapMempoolProcessCommand.h"
/// Overloaded constructor.
/// @param asServiceName Service name.
/// @param parent Parent.
/// @details The parent must be either DapRPCSocket or DapRPCLocalServer.
/// @param asCliPath The path to cli nodes.
DapMempoolProcessCommand::DapMempoolProcessCommand(const QString &asServicename, QObject *parent, const QString &asCliPath)
: DapAbstractCommand(asServicename, parent), m_sCliPath(asCliPath)
{
}
/// Send a response to the client.
/// @details Performed on the service side.
/// @param arg1 Network.
/// @param arg2 Chain.
/// @param arg3...arg10 Parameters.
/// @return Reply to client.
QVariant DapMempoolProcessCommand::respondToClient(const QVariant &arg1, const QVariant &arg2, const QVariant &arg3, const QVariant &arg4, const QVariant &arg5, const QVariant &arg6, const QVariant &arg7, const QVariant &arg8, const QVariant &arg9, const QVariant &arg10)
{
Q_UNUSED(arg1)
Q_UNUSED(arg2)
Q_UNUSED(arg3)
Q_UNUSED(arg4)
Q_UNUSED(arg5)
Q_UNUSED(arg6)
Q_UNUSED(arg7)
Q_UNUSED(arg8)
Q_UNUSED(arg9)
Q_UNUSED(arg10)
QProcess process;
process.start(QString("%1 mempool_proc -net %2 -chain %3").arg(m_sCliPath).arg(arg1.toString()).arg(arg2.toString()));
process.waitForFinished(-1);
process.readAll();
QString result = QString::fromLatin1(process.readAll());
if(result.isEmpty() || result.isNull() || result.contains("No records in mempool") )
{
return false;
}
return true;
}
#ifndef DAPMEMPOOLPROCESSCOMMAND_H
#define DAPMEMPOOLPROCESSCOMMAND_H
#include <QProcess>
#include "DapAbstractCommand.h"
class DapMempoolProcessCommand : public DapAbstractCommand
{
/// The path to cli nodes.
QString m_sCliPath;
public:
/// Overloaded constructor.
/// @param asServiceName Service name.
/// @param parent Parent.
/// @details The parent must be either DapRPCSocket or DapRPCLocalServer.
/// @param asCliPath The path to cli nodes.
DapMempoolProcessCommand(const QString &asServicename, QObject *parent = nullptr, const QString &asCliPath = QString());
public slots:
/// Send a response to the client.
/// @details Performed on the service side.
/// @param arg1 Network.
/// @param arg2 Chain.
/// @param arg3...arg10 Parameters.
/// @return Reply to client.
QVariant respondToClient(const QVariant &arg1 = QVariant(), const QVariant &arg2 = QVariant(),
const QVariant &arg3 = QVariant(), const QVariant &arg4 = QVariant(),
const QVariant &arg5 = QVariant(), const QVariant &arg6 = QVariant(),
const QVariant &arg7 = QVariant(), const QVariant &arg8 = QVariant(),
const QVariant &arg9 = QVariant(), const QVariant &arg10 = QVariant()) override;
};
#endif // DAPMEMPOOLPROCESSCOMMAND_H
......@@ -22,7 +22,9 @@ SOURCES +=\
$$PWD/DapSystemTrayIcon.cpp \
$$PWD/Handlers/DapAbstractCommand.cpp \
$$PWD/Handlers/DapActivateClientCommand.cpp \
$$PWD/Handlers/DapCreateTransactionCommand.cpp \
$$PWD/Handlers/DapExportLogCommand.cpp \
$$PWD/Handlers/DapMempoolProcessCommand.cpp \
$$PWD/Handlers/DapQuitApplicationCommand.cpp \
$$PWD/Handlers/DapAddWalletCommand.cpp \
$$PWD/Handlers/DapUpdateLogsCommand.cpp
......@@ -38,7 +40,9 @@ HEADERS +=\
$$PWD/DapSystemTrayIcon.h \
$$PWD/Handlers/DapAbstractCommand.h \
$$PWD/Handlers/DapActivateClientCommand.h \
$$PWD/Handlers/DapCreateTransactionCommand.h \
$$PWD/Handlers/DapExportLogCommand.h \
$$PWD/Handlers/DapMempoolProcessCommand.h \
$$PWD/Handlers/DapQuitApplicationCommand.h \
$$PWD/Handlers/DapAddWalletCommand.h \
$$PWD/Handlers/DapUpdateLogsCommand.h