mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-26 07:15:11 +02:00
102 lines
3.9 KiB
C++
102 lines
3.9 KiB
C++
//
|
|
// QmlCommerce.h
|
|
// interface/src/commerce
|
|
//
|
|
// Guard for safe use of Commerce (Wallet, Ledger) by authorized QML.
|
|
//
|
|
// Created by Howard Stearns on 8/4/17.
|
|
// Copyright 2017 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
#pragma once
|
|
#ifndef hifi_QmlCommerce_h
|
|
#define hifi_QmlCommerce_h
|
|
|
|
#include <QJsonObject>
|
|
|
|
#include <QPixmap>
|
|
|
|
class QmlCommerce : public QObject {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
QmlCommerce();
|
|
void openSystemApp(const QString& appPath);
|
|
|
|
signals:
|
|
void walletStatusResult(uint walletStatus);
|
|
|
|
void loginStatusResult(bool isLoggedIn);
|
|
void keyFilePathIfExistsResult(const QString& path);
|
|
void securityImageResult(bool exists);
|
|
void walletAuthenticatedStatusResult(bool isAuthenticated);
|
|
void changePassphraseStatusResult(bool changeSuccess);
|
|
|
|
void buyResult(QJsonObject result);
|
|
// Balance and Inventory are NOT properties, because QML can't change them (without risk of failure), and
|
|
// because we can't scalably know of out-of-band changes (e.g., another machine interacting with the block chain).
|
|
void balanceResult(QJsonObject result);
|
|
void inventoryResult(QJsonObject result);
|
|
void historyResult(QJsonObject result);
|
|
void accountResult(QJsonObject result);
|
|
void certificateInfoResult(QJsonObject result);
|
|
void alreadyOwnedResult(QJsonObject result);
|
|
void availableUpdatesResult(QJsonObject result);
|
|
void updateItemResult(QJsonObject result);
|
|
|
|
void updateCertificateStatus(const QString& certID, uint certStatus);
|
|
|
|
void transferAssetToNodeResult(QJsonObject result);
|
|
void transferAssetToUsernameResult(QJsonObject result);
|
|
|
|
void contentSetChanged(const QString& contentSetHref);
|
|
|
|
void appInstalled(const QString& appID);
|
|
void appUninstalled(const QString& appID);
|
|
|
|
protected:
|
|
Q_INVOKABLE void getWalletStatus();
|
|
|
|
Q_INVOKABLE void getLoginStatus();
|
|
Q_INVOKABLE void getKeyFilePathIfExists();
|
|
Q_INVOKABLE void getSecurityImage();
|
|
Q_INVOKABLE void getWalletAuthenticatedStatus();
|
|
Q_INVOKABLE bool copyKeyFileFrom(const QString& pathname);
|
|
|
|
Q_INVOKABLE void chooseSecurityImage(const QString& imageFile);
|
|
Q_INVOKABLE void setPassphrase(const QString& passphrase);
|
|
Q_INVOKABLE void changePassphrase(const QString& oldPassphrase, const QString& newPassphrase);
|
|
Q_INVOKABLE void setSoftReset();
|
|
Q_INVOKABLE void clearWallet();
|
|
|
|
Q_INVOKABLE void buy(const QString& assetId, int cost, const bool controlledFailure = false);
|
|
Q_INVOKABLE void balance();
|
|
Q_INVOKABLE void inventory(const QString& editionFilter = QString(), const QString& typeFilter = QString(), const QString& titleFilter = QString(), const int& page = 1, const int& perPage = 20);
|
|
Q_INVOKABLE void history(const int& pageNumber, const int& itemsPerPage = 100);
|
|
Q_INVOKABLE void generateKeyPair();
|
|
Q_INVOKABLE void account();
|
|
|
|
Q_INVOKABLE void certificateInfo(const QString& certificateId);
|
|
Q_INVOKABLE void alreadyOwned(const QString& marketplaceId);
|
|
|
|
Q_INVOKABLE void transferAssetToNode(const QString& nodeID, const QString& certificateID, const int& amount, const QString& optionalMessage);
|
|
Q_INVOKABLE void transferAssetToUsername(const QString& username, const QString& certificateID, const int& amount, const QString& optionalMessage);
|
|
|
|
Q_INVOKABLE void replaceContentSet(const QString& itemHref, const QString& certificateID);
|
|
|
|
Q_INVOKABLE QString getInstalledApps(const QString& justInstalledAppID = "");
|
|
Q_INVOKABLE bool installApp(const QString& appHref, const bool& alsoOpenImmediately = false);
|
|
Q_INVOKABLE bool uninstallApp(const QString& appHref);
|
|
Q_INVOKABLE bool openApp(const QString& appHref);
|
|
|
|
Q_INVOKABLE void getAvailableUpdates(const QString& itemId = "");
|
|
Q_INVOKABLE void updateItem(const QString& certificateId);
|
|
|
|
private:
|
|
QString _appsPath;
|
|
};
|
|
|
|
#endif // hifi_QmlCommerce_h
|