From 849a807d382e9bf9195ef718b66eb4d8a617deff Mon Sep 17 00:00:00 2001 From: Andre Jochems Date: Thu, 26 Nov 2015 14:30:24 +0100 Subject: [PATCH] Added active exchanges parser --- QmlImports.qml | 23 + casinocoin-qt_qml_plugin_import.cpp | 14 + .../CSCPublicAPI/casinocoinwebapiparser.cpp | 4 +- src/qt/CSCPublicAPI/casinocoinwebapiparser.h | 4 +- .../jsonactiveexchangesparser.cpp | 54 ++ .../CSCPublicAPI/jsonactiveexchangesparser.h | 31 + .../CSCPublicAPI/jsonsingleactiveexchange.cpp | 42 + .../CSCPublicAPI/jsonsingleactiveexchange.h | 46 + src/qt/forms/infopage.ui | 855 +++++++++--------- src/qt/forms/pryptopage.ui | 13 +- src/qt/forms/sendcoinsdialog.ui | 4 +- src/qt/pryptopage.cpp | 8 + src/qt/pryptopage.h | 2 + src/qt/res/icons/prypto.png | Bin 28162 -> 26252 bytes 14 files changed, 653 insertions(+), 447 deletions(-) create mode 100644 QmlImports.qml create mode 100644 casinocoin-qt_qml_plugin_import.cpp create mode 100644 src/qt/CSCPublicAPI/jsonactiveexchangesparser.cpp create mode 100644 src/qt/CSCPublicAPI/jsonactiveexchangesparser.h create mode 100644 src/qt/CSCPublicAPI/jsonsingleactiveexchange.cpp create mode 100644 src/qt/CSCPublicAPI/jsonsingleactiveexchange.h diff --git a/QmlImports.qml b/QmlImports.qml new file mode 100644 index 0000000..d0af3e6 --- /dev/null +++ b/QmlImports.qml @@ -0,0 +1,23 @@ +import QtQuick 2.0 +import QtQuick 2.2 +import QtQuick.Controls 1.2 +import QtQuick.Dialogs 1.1 +import QtQuick.Layouts 1.1 +import QtQuick.Window 2.1 +import QtQuick.Controls.Styles 1.2 + + /* + QmlImports.qml + + Declaration of QML Imports required by project. + + This is necessary if we want to keep qml files in a folder + separate from .pro file because of the way qmlimportscanner works. + If these imports are not declared, qmake will not recognize them, + and QtQuick will not be packaged with statically built apps and imported + at runtime. + + This must be kept in the same directory as your .pro file + */ + + QtObject {} diff --git a/casinocoin-qt_qml_plugin_import.cpp b/casinocoin-qt_qml_plugin_import.cpp new file mode 100644 index 0000000..736a76c --- /dev/null +++ b/casinocoin-qt_qml_plugin_import.cpp @@ -0,0 +1,14 @@ +// This file is autogenerated by qmake. It imports static plugin classes for +// static plugins used by QML imports. +#include +Q_IMPORT_PLUGIN(QtQuick2Plugin) +Q_IMPORT_PLUGIN(QtQuickControlsPlugin) +Q_IMPORT_PLUGIN(QtQuick2DialogsPlugin) +Q_IMPORT_PLUGIN(QtQuickLayoutsPlugin) +Q_IMPORT_PLUGIN(QtQuick2WindowPlugin) +Q_IMPORT_PLUGIN(QmlFolderListModelPlugin) +Q_IMPORT_PLUGIN(QmlSettingsPlugin) +Q_IMPORT_PLUGIN(QtQuick2DialogsPrivatePlugin) +Q_IMPORT_PLUGIN(QtQuickExtrasPlugin) +Q_IMPORT_PLUGIN(QtQmlModelsPlugin) +Q_IMPORT_PLUGIN(QtQuick2PrivateWidgetsPlugin) diff --git a/src/qt/CSCPublicAPI/casinocoinwebapiparser.cpp b/src/qt/CSCPublicAPI/casinocoinwebapiparser.cpp index 6665b7b..61cb935 100644 --- a/src/qt/CSCPublicAPI/casinocoinwebapiparser.cpp +++ b/src/qt/CSCPublicAPI/casinocoinwebapiparser.cpp @@ -88,8 +88,8 @@ void CasinoCoinWebAPIParser::ParseCasinos( const QJsonObject& a_rJsonCasinos ) void CasinoCoinWebAPIParser::ParseExchanges( const QJsonObject& a_rJsonExchanges ) { - qDebug() << "Coming soon - ParseExchanges"; - qDebug() << a_rJsonExchanges; + qDebug() << "ParseExchanges"; + emit signalActiveExchangesParsed( new JsonActiveExchangesParser( a_rJsonExchanges ) ); } void CasinoCoinWebAPIParser::ParseNewsItems( const QJsonObject& a_rJsonNewsItems ) diff --git a/src/qt/CSCPublicAPI/casinocoinwebapiparser.h b/src/qt/CSCPublicAPI/casinocoinwebapiparser.h index f5a19e2..ed3b237 100644 --- a/src/qt/CSCPublicAPI/casinocoinwebapiparser.h +++ b/src/qt/CSCPublicAPI/casinocoinwebapiparser.h @@ -6,6 +6,8 @@ #include "jsonactivepromotionsparser.h" #include "jsonsingleactivepromotion.h" #include "jsoncoininfoparser.h" +#include "jsonactiveexchangesparser.h" +#include "jsonsingleactiveexchange.h" #include @@ -20,7 +22,7 @@ signals: void signalActivePromotionsParsed( JsonActivePromotionsParser* a_pActivePromotions ); void signalCoinInfoParsed( JsonCoinInfoParser* a_pCoinInfo ); // void signalActiveCasinosParsed( JsonActiveCasinosParser* a_pActivePromotions ); -// void signalActiveExchangesParsed( JsonActiveExchangesParser* a_pActivePromotions ); + void signalActiveExchangesParsed( JsonActiveExchangesParser* a_pActiveExchanges ); // void signalActiveNewsItemsParsed( JsonActiveNewsItemsParser* a_pActivePromotions ); public slots: diff --git a/src/qt/CSCPublicAPI/jsonactiveexchangesparser.cpp b/src/qt/CSCPublicAPI/jsonactiveexchangesparser.cpp new file mode 100644 index 0000000..327f096 --- /dev/null +++ b/src/qt/CSCPublicAPI/jsonactiveexchangesparser.cpp @@ -0,0 +1,54 @@ +#include "jsonactiveexchangesparser.h" +#include "../qtquick_controls/cpp/qmlimageprovider.h" + +#include + +JsonActiveExchangesParser::JsonActiveExchangesParser() +{ + +} + +JsonActiveExchangesParser::JsonActiveExchangesParser( const QJsonObject& a_rOther ) + : QJsonObject( a_rOther ) +{ + ResolveExchangesArray(); +} + +void JsonActiveExchangesParser::ResolveExchangesArray() +{ + if ( find( "Result" ).value().isObject() ) + { + if ( find( "Result" ).value().toObject().find( "ActiveExchanges" ).value().isArray() ) + { + QJsonArray arrayOfExchangeDescriptors( find( "Result" ).value().toObject().find( "ActiveExchanges" ).value().toArray() ); + foreach( QJsonValue singleExchangeDescriptor, arrayOfExchangeDescriptors ) + { + if ( singleExchangeDescriptor.isObject() ) + { + m_aActiveExchanges.append( JsonSingleActiveExchange( singleExchangeDescriptor.toObject() ) ); + } + } + } + } +} + +const QList& JsonActiveExchangesParser::GetExchanges() const +{ + return m_aActiveExchanges; +} + +QList& JsonActiveExchangesParser::GetExchanges() +{ + return m_aActiveExchanges; +} + +void JsonActiveExchangesParser::AddImagesToPool( QmlImageProvider* a_pImageProvider ) +{ + if ( a_pImageProvider ) + { + foreach( JsonSingleActiveExchange oExchange, m_aActiveExchanges ) + { + a_pImageProvider->AddToImagePool( oExchange.getImageName(), oExchange.getExchangeImage() ); + } + } +} diff --git a/src/qt/CSCPublicAPI/jsonactiveexchangesparser.h b/src/qt/CSCPublicAPI/jsonactiveexchangesparser.h new file mode 100644 index 0000000..a92b99a --- /dev/null +++ b/src/qt/CSCPublicAPI/jsonactiveexchangesparser.h @@ -0,0 +1,31 @@ +#ifndef JSONACTIVEEXCHANGESPARSER_H +#define JSONACTIVEEXCHANGESPARSER_H + +#include +#include +#include +#include + +#include "jsonsingleactiveexchange.h" + +class QmlImageProvider; + +class JsonActiveExchangesParser : public QJsonObject +{ +public: + JsonActiveExchangesParser(); + JsonActiveExchangesParser( const QJsonObject& a_rOther ); + virtual ~JsonActiveExchangesParser(){} + + const QList& GetExchanges() const; + QList& GetExchanges(); + + void AddImagesToPool( QmlImageProvider* a_pImageProvider ); + +private: + void ResolveExchangesArray(); + + QList m_aActiveExchanges; +}; + +#endif // JSONACTIVEEXCHANGESPARSER_H diff --git a/src/qt/CSCPublicAPI/jsonsingleactiveexchange.cpp b/src/qt/CSCPublicAPI/jsonsingleactiveexchange.cpp new file mode 100644 index 0000000..211bdef --- /dev/null +++ b/src/qt/CSCPublicAPI/jsonsingleactiveexchange.cpp @@ -0,0 +1,42 @@ +#include "jsonsingleactiveexchange.h" + +#include +#include +#include + +#include + +JsonSingleActiveExchange::JsonSingleActiveExchange() +{ + +} + +JsonSingleActiveExchange::JsonSingleActiveExchange( const QJsonObject& a_rOther ) + : QJsonObject( a_rOther ) +{ + m_strImageName = find( "exchange_name" ).value().toString().remove( getRestrictedCharacters() ); + storeImage(); + m_strExchangeName = find( "exchange_name" ).value().toString().remove( getRestrictedCharacters() ); + m_strAccessUrl = find( "access_url" ).value().toString(); + m_strDescription = find( "description" ).value().toString(); + m_dblLastBidPriceBTC = find( "last_bid_price_btc" ).value().toDouble(); + m_dblLastAskPriceBTC = find( "last_ask_price_btc" ).value().toDouble(); + m_dblLastPriceBTC = find( "last_price_btc" ).value().toDouble(); + m_dblVolume24H = find( "volume24h" ).value().toDouble(); + m_strLastUpdateTime = find( "last_update_time" ).value().toString(); +} + +QRegExp JsonSingleActiveExchange::getRestrictedCharacters() +{ + return QRegExp( "[<,>|\\:()&;#?*% ]" ); +} + +void JsonSingleActiveExchange::storeImage() +{ + if ( find( "image_mime_type" ).value().toString().split( "/" ).first().contains( "image" ) ) + { + QByteArray binaryData = QByteArray::fromBase64( find( "exchange_image" ).value().toString().toLocal8Bit() ); + m_oExchangeImage = QImage::fromData( binaryData ); + } +} + diff --git a/src/qt/CSCPublicAPI/jsonsingleactiveexchange.h b/src/qt/CSCPublicAPI/jsonsingleactiveexchange.h new file mode 100644 index 0000000..1d2df3a --- /dev/null +++ b/src/qt/CSCPublicAPI/jsonsingleactiveexchange.h @@ -0,0 +1,46 @@ +#ifndef JSONSINGLEACTIVEEXCHANGE_H +#define JSONSINGLEACTIVEEXCHANGE_H + +#include +#include +#include + +#include + +class JsonSingleActiveExchange : public QJsonObject +{ +public: + JsonSingleActiveExchange(); + JsonSingleActiveExchange( const QJsonObject& a_rOther ); + virtual ~JsonSingleActiveExchange(){} + + QString getImageName() const{ return m_strImageName; } + QImage getExchangeImage() const { return m_oExchangeImage; } + QString getExchangeName() const{ return m_strExchangeName; } + QString getAccessUrl() const{ return m_strAccessUrl; } + QString getDescription() const{ return m_strDescription; } + double getLastBidPriceBTC() const{ return m_dblLastBidPriceBTC; } + double getLastAskPriceBTC() const{ return m_dblLastAskPriceBTC; } + double getLastPriceBTC() const{ return m_dblLastBidPriceBTC; } + double getVolume24H() const{ return m_dblVolume24H; } + QString getLastUpdateTime() const{ return m_strLastUpdateTime; } + +private: + void storeImage(); + + static QRegExp getRestrictedCharacters(); + + QString m_strImageName; + QImage m_oExchangeImage; + QString m_strExchangeName; + QString m_strAccessUrl; + QString m_strDescription; + double m_dblLastBidPriceBTC; + double m_dblLastAskPriceBTC; + double m_dblLastPriceBTC; + double m_dblVolume24H; + QString m_strLastUpdateTime; + +}; + +#endif // JSONSINGLEACTIVEEXCHANGE_H diff --git a/src/qt/forms/infopage.ui b/src/qt/forms/infopage.ui index acef11b..636d747 100644 --- a/src/qt/forms/infopage.ui +++ b/src/qt/forms/infopage.ui @@ -7,7 +7,7 @@ 0 0 800 - 500 + 600 @@ -159,456 +159,429 @@ - - - - 0 - 0 - - - - Qt::ScrollBarAlwaysOn - - - Qt::ScrollBarAsNeeded - - - true - - - - - 0 - 0 - 343 - 217 - - - + + + + + QFormLayout::AllNonFixedFieldsGrow + + + 15 + + + 10 + + + 10 + + + 10 + + + 10 + + + 10 + - - - QFormLayout::AllNonFixedFieldsGrow + + + - - 15 + + Current number of blocks - - 10 + + true - - 10 + + + + + + + 75 + true + - - 10 + + - - 10 + + - - - 10 + + true - - - - - - - Current number of blocks - - - true - - - - - - - - 75 - true - - - - - - - - - - - true - - - - - - - - - - Last block time - - - true - - - - - - - - 75 - true - - - - - - - - - - - true - - - - - - - - - - Coin Supply - - - true - - - - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 75 - true - - - - - - - - - - - true - - - - - - - - - - Number of connections - - - true - - - - - - - - 75 - true - - - - - - - - - - - true - - - - - - - - - - Difficulty - - - true - - - - - - - - 75 - true - - - - - - - - - - - true - - - - - - - - - - Network Hashrate - - - true - - - - - - - - 75 - true - - - - - - - - - - - true - - - - - - - - - - Transactions - - - true - - - - - - - - 75 - true - - - - - - - - - - - true - - - - + + + + + + + + + Last block time + + + true + + + + + + + + 75 + true + + + + + + + - + + + true + + + + + + + + + + Coin Supply + + + true + + + + + + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + + + 75 + true + + + + + + + - + + + true + + + + + + + + + + Number of connections + + + true + + + + + + + + 75 + true + + + + + + + - + + + true + + + + + + + + + + Difficulty + + + true + + + + + + + + 75 + true + + + + + + + - + + + true + + + + + + + + + + Network Hashrate + + + true + + + + + + + + 75 + true + + + + + + + - + + + true + + + + + + + + + + Transactions + + + true + + + + + + + + 75 + true + + + + + + + - + + + true + + - - + + diff --git a/src/qt/forms/pryptopage.ui b/src/qt/forms/pryptopage.ui index e79d4cb..8abbccb 100644 --- a/src/qt/forms/pryptopage.ui +++ b/src/qt/forms/pryptopage.ui @@ -83,6 +83,14 @@ + + background-color: rgb(166, 27, 31); +color: rgb(255, 255, 255); +pressed +{ +background-color: rgb(166, 27, 31); +} + Redeem @@ -91,7 +99,10 @@ :/icons/res/icons/prypto.png:/icons/res/icons/prypto.png - false + true + + + true diff --git a/src/qt/forms/sendcoinsdialog.ui b/src/qt/forms/sendcoinsdialog.ui index 812d30b..3bbedda 100644 --- a/src/qt/forms/sendcoinsdialog.ui +++ b/src/qt/forms/sendcoinsdialog.ui @@ -730,11 +730,11 @@ false - background-color: rgb(170, 28, 33); + background-color: rgb(166, 27, 31); color: rgb(255, 255, 255); pressed { -background-color: rgb(170, 28, 33); +background-color: rgb(166, 27, 31); } diff --git a/src/qt/pryptopage.cpp b/src/qt/pryptopage.cpp index 0d7540a..452b59c 100644 --- a/src/qt/pryptopage.cpp +++ b/src/qt/pryptopage.cpp @@ -5,6 +5,7 @@ #include #include #include +#include const QString PryptoPage::strAPIEndpoint = "https://prypto.com/merchants/api/"; const QString PryptoPage::strMerchantToken = "35616ab118fa557b77fdac78ef09d5632d302609"; @@ -18,6 +19,7 @@ PryptoPage::PryptoPage(QWidget *parent) : connect( &networkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(parseAPINetworkResponse(QNetworkReply*)) ); connect( this, SIGNAL(apiResponseReady(QByteArray)), this, SLOT(showAPIResult(QByteArray)) ); connect( this, SIGNAL(apiNetworkError(QNetworkReply::NetworkError)), this, SLOT(showAPINetworkError(QNetworkReply::NetworkError)) ); + connect( &networkAccessManager, SIGNAL(sslErrors(QNetworkReply*, const QList & )), this, SLOT(sslErrorHandler(QNetworkReply*, const QList & ))); } void PryptoPage::setWalletModel(WalletModel *model) @@ -82,6 +84,12 @@ void PryptoPage::parseAPINetworkResponse( QNetworkReply *finished ) emit apiResponseReady( data ); } +void PryptoPage::sslErrorHandler(QNetworkReply* qnr, const QList & errlist) +{ +qDebug() << "---PryptoPage::sslErrorHandler: "; +qnr->ignoreSslErrors(); +} + void PryptoPage::showAPINetworkError(QNetworkReply::NetworkError error) { qDebug() << "PryptoPage::showAPINetworkError: " << error; diff --git a/src/qt/pryptopage.h b/src/qt/pryptopage.h index 770da5a..c33f50f 100644 --- a/src/qt/pryptopage.h +++ b/src/qt/pryptopage.h @@ -6,6 +6,7 @@ #include #include #include +#include class WalletModel; @@ -31,6 +32,7 @@ private slots: void parseAPINetworkResponse( QNetworkReply *finished ); void showAPIResult(QByteArray data); void showAPINetworkError(QNetworkReply::NetworkError error); + void sslErrorHandler(QNetworkReply* qnr, const QList & errlist); private: static const QString strAPIEndpoint; diff --git a/src/qt/res/icons/prypto.png b/src/qt/res/icons/prypto.png index 7efe551872d0facbfeb2538649c315a66d532ac2..84ffb37b3a54c5052027f5cc8d18c589506013de 100644 GIT binary patch literal 26252 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 z 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 literal 28162 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 c