chore(CPP): Align Saved Addresses with new changes
It adds favourite false and doesn't extend the implementation to support these new features Workaround to crash of chats whit a new account by lazy loading sections and defaulting to wallet Updates #7229
This commit is contained in:
parent
b348527edc
commit
a157f688fd
|
@ -34,6 +34,7 @@ Item {
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
|
||||||
sections: appSections.sections
|
sections: appSections.sections
|
||||||
|
currentIndex: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
@ -59,6 +60,7 @@ Item {
|
||||||
delegate: Loader {
|
delegate: Loader {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
active: navBar.currentIndex === index
|
||||||
|
|
||||||
sourceComponent: modelData.content
|
sourceComponent: modelData.content
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
#include "Helpers/conversions.h"
|
#include "Helpers/conversions.h"
|
||||||
|
|
||||||
|
#include <QCommandLineParser>
|
||||||
|
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
|
|
||||||
namespace fs = std::filesystem;
|
namespace fs = std::filesystem;
|
||||||
|
@ -40,8 +42,25 @@ void UserConfiguration::setUserDataFolder(const QString &newUserDataFolder)
|
||||||
|
|
||||||
void UserConfiguration::generateReleaseConfiguration()
|
void UserConfiguration::generateReleaseConfiguration()
|
||||||
{
|
{
|
||||||
m_userDataFolder = toPath(QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation))/statusFolder/dataSubfolder;
|
if(!parseFromCommandLineAndReturnTrueIfSet())
|
||||||
|
m_userDataFolder = toPath(QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation))/statusFolder/dataSubfolder;
|
||||||
emit userDataFolderChanged();
|
emit userDataFolderChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool UserConfiguration::parseFromCommandLineAndReturnTrueIfSet()
|
||||||
|
{
|
||||||
|
QCommandLineParser parser;
|
||||||
|
parser.addHelpOption();
|
||||||
|
parser.addVersionOption();
|
||||||
|
parser.addPositionalArgument("dataDir", "Data folder");
|
||||||
|
parser.process(*QCoreApplication::instance());
|
||||||
|
auto args = parser.positionalArguments();
|
||||||
|
if (args.size() > 0) {
|
||||||
|
m_userDataFolder = toPath(args[0]);
|
||||||
|
emit userDataFolderChanged();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,14 +9,13 @@ namespace Status::ApplicationCore {
|
||||||
|
|
||||||
namespace fs = std::filesystem;
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
|
/// Contains necessary data for each created account hence this will be the same path for all accounts
|
||||||
class UserConfiguration: public QObject
|
class UserConfiguration: public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
QML_ELEMENT
|
QML_ELEMENT
|
||||||
|
|
||||||
// Not sure why `qmlUserDataFolder` is writable??? We should not change it from the qml side.
|
/// @note userFolder is writable in order to allow changing it in tests until a proper abstraction is in place
|
||||||
// Even from the backend side this will be set only on the app start, and it will contain
|
|
||||||
// necessary data for each created account, so even we're switching accounts, this will be the same path.
|
|
||||||
Q_PROPERTY(QString userDataFolder READ qmlUserDataFolder WRITE setUserDataFolder NOTIFY userDataFolderChanged)
|
Q_PROPERTY(QString userDataFolder READ qmlUserDataFolder WRITE setUserDataFolder NOTIFY userDataFolderChanged)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -31,6 +30,7 @@ signals:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void generateReleaseConfiguration();
|
void generateReleaseConfiguration();
|
||||||
|
bool parseFromCommandLineAndReturnTrueIfSet();
|
||||||
|
|
||||||
fs::path m_userDataFolder;
|
fs::path m_userDataFolder;
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,10 +20,12 @@ struct SavedAddress
|
||||||
{
|
{
|
||||||
Accounts::EOAddress address;
|
Accounts::EOAddress address;
|
||||||
QString name;
|
QString name;
|
||||||
|
bool favourite;
|
||||||
|
ChainID chainId;
|
||||||
};
|
};
|
||||||
|
|
||||||
using SavedAddresses = std::vector<SavedAddress>;
|
using SavedAddresses = std::vector<SavedAddress>;
|
||||||
|
|
||||||
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(SavedAddress, address, name);
|
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(SavedAddress, address, name, favourite, chainId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ SavedAddresses getSavedAddresses()
|
||||||
checkPrivateRpcCallResultAndReportError(resultJson);
|
checkPrivateRpcCallResultAndReportError(resultJson);
|
||||||
|
|
||||||
const auto &data = resultJson.get<CallPrivateRpcResponse>().result;
|
const auto &data = resultJson.get<CallPrivateRpcResponse>().result;
|
||||||
return data.is_null() ? nlohmann::json() : data;
|
return data.is_null() ? json::array() : data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void saveAddress(const SavedAddress &address)
|
void saveAddress(const SavedAddress &address)
|
||||||
|
@ -77,7 +77,7 @@ NetworkConfigurations getEthereumChains(bool onlyEnabled)
|
||||||
checkPrivateRpcCallResultAndReportError(resultJson);
|
checkPrivateRpcCallResultAndReportError(resultJson);
|
||||||
|
|
||||||
const auto &data = resultJson.get<CallPrivateRpcResponse>().result;
|
const auto &data = resultJson.get<CallPrivateRpcResponse>().result;
|
||||||
return data.is_null() ? nlohmann::json() : data;
|
return data.is_null() ? json::array() : data;
|
||||||
}
|
}
|
||||||
|
|
||||||
Tokens getTokens(const ChainID &chainId)
|
Tokens getTokens(const ChainID &chainId)
|
||||||
|
@ -94,7 +94,7 @@ Tokens getTokens(const ChainID &chainId)
|
||||||
checkPrivateRpcCallResultAndReportError(resultJson);
|
checkPrivateRpcCallResultAndReportError(resultJson);
|
||||||
|
|
||||||
const auto &data = resultJson.get<CallPrivateRpcResponse>().result;
|
const auto &data = resultJson.get<CallPrivateRpcResponse>().result;
|
||||||
return data.is_null() ? nlohmann::json() : data;
|
return data.is_null() ? json::array() : data;
|
||||||
}
|
}
|
||||||
|
|
||||||
TokenBalances getTokensBalancesForChainIDs(const std::vector<ChainID> &chainIds,
|
TokenBalances getTokensBalancesForChainIDs(const std::vector<ChainID> &chainIds,
|
||||||
|
|
|
@ -18,12 +18,13 @@ QAbstractListModel *SavedAddressesController::savedAddresses() const
|
||||||
return m_savedAddresses.get();
|
return m_savedAddresses.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: extend with favourite and chain ID
|
||||||
void SavedAddressesController::saveAddress(const QString &address, const QString &name)
|
void SavedAddressesController::saveAddress(const QString &address, const QString &name)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
StatusGo::Wallet::saveAddress(StatusGo::Wallet::SavedAddress(
|
StatusGo::Wallet::saveAddress(StatusGo::Wallet::SavedAddress(
|
||||||
{ StatusGo::Accounts::EOAddress(address), name }));
|
{ StatusGo::Accounts::EOAddress(address), name, false, StatusGo::Wallet::ChainID(0) }));
|
||||||
}
|
}
|
||||||
catch(const StatusGo::CallPrivateRpcError& rpcError)
|
catch(const StatusGo::CallPrivateRpcError& rpcError)
|
||||||
{
|
{
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
"nativeCurrencyDecimals": 18,
|
"nativeCurrencyDecimals": 18,
|
||||||
"isTest": true,
|
"isTest": true,
|
||||||
"layer": 1,
|
"layer": 1,
|
||||||
"enabled": true
|
"enabled": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"chainId": 4,
|
"chainId": 4,
|
||||||
|
@ -57,7 +57,7 @@
|
||||||
"nativeCurrencyDecimals": 18,
|
"nativeCurrencyDecimals": 18,
|
||||||
"isTest": true,
|
"isTest": true,
|
||||||
"layer": 1,
|
"layer": 1,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"chainId": 10,
|
"chainId": 10,
|
||||||
|
|
Loading…
Reference in New Issue