From 5924b24782895a955b44481e6f0ba98ad5f375a3 Mon Sep 17 00:00:00 2001 From: Andre Jochems Date: Mon, 9 Nov 2015 13:08:38 +0100 Subject: [PATCH 1/3] Revert "Adverts widget supports population from web and from local files." This reverts commit 85a611ed1967fbaf743722bde28de4ea8ca9b773. --- src/qt/CSCPublicAPI/casinocoinwebapi.cpp | 13 +++-- src/qt/CSCPublicAPI/casinocoinwebapi.h | 5 +- .../CSCPublicAPI/casinocoinwebapiparser.cpp | 53 ------------------- src/qt/CSCPublicAPI/casinocoinwebapiparser.h | 10 +--- .../jsonactivepromotionsparser.cpp | 18 ++----- .../CSCPublicAPI/jsonactivepromotionsparser.h | 8 +-- .../jsonsingleactivepromotion.cpp | 29 ++++++++-- .../CSCPublicAPI/jsonsingleactivepromotion.h | 15 ++---- .../qtquick_controls/cpp/guibannercontrol.cpp | 12 ++++- .../qtquick_controls/cpp/guibannercontrol.h | 3 +- .../qtquick_controls/cpp/guibannerwidget.cpp | 29 +++++----- src/qt/qtquick_controls/cpp/guibannerwidget.h | 6 +-- .../cpp/qmlbannerlistitem.cpp | 2 +- .../qtquick_controls/cpp/qmlimageprovider.cpp | 43 ++++++++------- .../qtquick_controls/cpp/qmlimageprovider.h | 28 +++++----- .../qml/QmlGUIBannerListView.qml | 9 +++- 16 files changed, 116 insertions(+), 167 deletions(-) diff --git a/src/qt/CSCPublicAPI/casinocoinwebapi.cpp b/src/qt/CSCPublicAPI/casinocoinwebapi.cpp index 149755c..18732ef 100644 --- a/src/qt/CSCPublicAPI/casinocoinwebapi.cpp +++ b/src/qt/CSCPublicAPI/casinocoinwebapi.cpp @@ -13,22 +13,22 @@ CasinoCoinWebAPI::CasinoCoinWebAPI( QObject*a_pParent ) void CasinoCoinWebAPI::GetActivePromotions() { - Get( s_strServerAddress + s_strServerEndpoint + "/ActivePromotions" ); + Get( s_strServerAddress + "/" + s_strServerEndpoint + "/ActivePromotions" ); } void CasinoCoinWebAPI::GetActiveCasinos() { - Get( s_strServerAddress + s_strServerEndpoint + "/ActiveCasinos" ); + Get( s_strServerAddress + "/" + s_strServerEndpoint + "/ActiveCasinos" ); } void CasinoCoinWebAPI::GetActiveNewsItems() { - Get( s_strServerAddress + s_strServerEndpoint + "/ActiveNewsItems" ); + Get( s_strServerAddress + "/" + s_strServerEndpoint + "/ActiveNewsItems" ); } void CasinoCoinWebAPI::GetActiveExchanges() { - Get( s_strServerAddress + s_strServerEndpoint + "/ActiveExchanges" ); + Get( s_strServerAddress + "/" + s_strServerEndpoint + "/ActiveExchanges" ); } void CasinoCoinWebAPI::Get( const QString& a_rUrl ) @@ -43,11 +43,10 @@ void CasinoCoinWebAPI::slotParseNetworkResponse( QNetworkReply *finished ) if ( finished->error() != QNetworkReply::NoError ) { // A communication error has occurred - qDebug() << finished->request().url(); - emit signalNetworkError( finished->error(), finished->request().url() ); + emit signalNetworkError( finished->error() ); return; } - QByteArray data = finished->readAll(); + QByteArray data = finished->readAll(); emit signalResponseReady( data ); } diff --git a/src/qt/CSCPublicAPI/casinocoinwebapi.h b/src/qt/CSCPublicAPI/casinocoinwebapi.h index e3b2dc4..38359eb 100644 --- a/src/qt/CSCPublicAPI/casinocoinwebapi.h +++ b/src/qt/CSCPublicAPI/casinocoinwebapi.h @@ -23,10 +23,7 @@ public: signals: void signalResponseReady( const QByteArray& a_rJsonFile ); - void signalNetworkError - ( QNetworkReply::NetworkError a_eError - , const QUrl a_rFailedUrl - ); + void signalNetworkError( QNetworkReply::NetworkError a_eError ); public slots: void slotParseNetworkResponse( QNetworkReply *finished ); diff --git a/src/qt/CSCPublicAPI/casinocoinwebapiparser.cpp b/src/qt/CSCPublicAPI/casinocoinwebapiparser.cpp index bd75e9b..05202a7 100644 --- a/src/qt/CSCPublicAPI/casinocoinwebapiparser.cpp +++ b/src/qt/CSCPublicAPI/casinocoinwebapiparser.cpp @@ -5,8 +5,6 @@ #include #include -#include -#include CasinoCoinWebAPIParser::CasinoCoinWebAPIParser( QObject* a_pParent ) : QObject(a_pParent) @@ -25,37 +23,24 @@ void CasinoCoinWebAPIParser::slotParseAnswer( const QByteArray& a_rJsonFile ) QJsonObject jsonObjectResult = docAsObject.find( "Result" ).value().toObject(); if ( jsonObjectResult.find( "ActivePromotions" ).value().isArray() ) { - StoreFile( "ActivePromotions", a_rJsonFile ); ParsePromotions( docAsObject ); } else if ( jsonObjectResult.find( "ActiveNewsItems" ).value().isArray() ) { - StoreFile( "ActiveNewsItems", a_rJsonFile ); ParseNewsItems( docAsObject ); } else if ( jsonObjectResult.find( "ActiveCasinos" ).value().isArray() ) { - StoreFile( "ActiveCasinos", a_rJsonFile ); ParseCasinos( docAsObject ); } else if ( jsonObjectResult.find( "ActiveExchanges" ).value().isArray() ) { - StoreFile( "ActiveExchanges", a_rJsonFile ); ParseExchanges( docAsObject ); } } } } -void CasinoCoinWebAPIParser::slotNetworkError( QNetworkReply::NetworkError a_eError - , const QUrl a_rFailedUrl - ) -{ - qDebug() << "network error: " << a_eError; - QString strAccessedUrl = a_rFailedUrl.toString().split("/").last(); - slotParseAnswer( ReadFile( strAccessedUrl ) ); -} - void CasinoCoinWebAPIParser::ParsePromotions( const QJsonObject& a_rJsonPromotions ) { qDebug() << "ParsePromotions"; @@ -79,41 +64,3 @@ void CasinoCoinWebAPIParser::ParseNewsItems( const QJsonObject& a_rJsonNewsItems qDebug() << "Coming soon - ParseNewsItems"; qDebug() << a_rJsonNewsItems; } - -QByteArray CasinoCoinWebAPIParser::ReadFile( QString a_strSourcePath ) -{ - QByteArray strAnswer; - if ( !QDir( "offlineData" ).exists() ) - { - QDir().mkdir( "offlineData" ); - } - QFile fileOutput( QDir( "offlineData" ).absoluteFilePath( a_strSourcePath ) ); - if ( !fileOutput.open( QIODevice::ReadOnly ) ) - { - qWarning() << "cannot open file to read: " << QDir::current().relativeFilePath( a_strSourcePath ); - } - else - { - strAnswer = fileOutput.readAll(); - fileOutput.close(); - } - return strAnswer; -} - -void CasinoCoinWebAPIParser::StoreFile( QString a_strDestinationPath, const QByteArray& a_rJsonFile ) -{ - if ( !QDir( "offlineData" ).exists() ) - { - QDir().mkdir( "offlineData" ); - } - QFile fileOutput( QDir( "offlineData" ).absoluteFilePath( a_strDestinationPath ) ); - if ( !fileOutput.open( QIODevice::WriteOnly | QIODevice::Truncate ) ) - { - qWarning() << "cannot open file to write: " << QDir::current().relativeFilePath( a_strDestinationPath ); - } - else - { - fileOutput.write( a_rJsonFile ); - fileOutput.close(); - } -} diff --git a/src/qt/CSCPublicAPI/casinocoinwebapiparser.h b/src/qt/CSCPublicAPI/casinocoinwebapiparser.h index c13f9b5..3ca8bb4 100644 --- a/src/qt/CSCPublicAPI/casinocoinwebapiparser.h +++ b/src/qt/CSCPublicAPI/casinocoinwebapiparser.h @@ -6,8 +6,6 @@ #include "jsonactivepromotionsparser.h" #include "jsonsingleactivepromotion.h" -#include - class CasinoCoinWebAPIParser : public QObject { Q_OBJECT @@ -23,18 +21,12 @@ signals: public slots: void slotParseAnswer( const QByteArray& a_rJsonFile ); - void slotNetworkError - ( QNetworkReply::NetworkError a_eError - , const QUrl a_rFailedUrl - ); + private: void ParsePromotions( const QJsonObject& a_rJsonPromotions ); void ParseCasinos ( const QJsonObject& a_rJsonCasinos ); void ParseExchanges ( const QJsonObject& a_rJsonExchanges ); void ParseNewsItems ( const QJsonObject& a_rJsonNewsItems ); - - QByteArray ReadFile( QString a_strSourcePath ); - void StoreFile( QString a_strDestinationPath, const QByteArray& a_rJsonFile ); }; #endif // CASINOCOINWEBAPIPARSER_H diff --git a/src/qt/CSCPublicAPI/jsonactivepromotionsparser.cpp b/src/qt/CSCPublicAPI/jsonactivepromotionsparser.cpp index a200460..0cfb464 100644 --- a/src/qt/CSCPublicAPI/jsonactivepromotionsparser.cpp +++ b/src/qt/CSCPublicAPI/jsonactivepromotionsparser.cpp @@ -1,5 +1,4 @@ #include "jsonactivepromotionsparser.h" -#include "../qtquick_controls/cpp/qmlimageprovider.h" #include @@ -25,7 +24,7 @@ void JsonActivePromotionsParser::ResolvePromotionsArray() { if ( singleCasinoDescriptor.isObject() ) { - m_aActivePromotions.append( JsonSingleActivePromotion( singleCasinoDescriptor.toObject() ) ); + m_aActiveCasinos.append( JsonSingleActivePromotion( singleCasinoDescriptor.toObject() ) ); } } } @@ -34,21 +33,10 @@ void JsonActivePromotionsParser::ResolvePromotionsArray() const QList& JsonActivePromotionsParser::GetPromotions() const { - return m_aActivePromotions; + return m_aActiveCasinos; } QList& JsonActivePromotionsParser::GetPromotions() { - return m_aActivePromotions; -} - -void JsonActivePromotionsParser::AddImagesToPool( QmlImageProvider* a_pImageProvider ) -{ - if ( a_pImageProvider ) - { - foreach( JsonSingleActivePromotion oPromotion, m_aActivePromotions ) - { - a_pImageProvider->AddToImagePool( oPromotion.GetImageName(), oPromotion.GetAdvertImage() ); - } - } + return m_aActiveCasinos; } diff --git a/src/qt/CSCPublicAPI/jsonactivepromotionsparser.h b/src/qt/CSCPublicAPI/jsonactivepromotionsparser.h index 03ae710..bad1b23 100644 --- a/src/qt/CSCPublicAPI/jsonactivepromotionsparser.h +++ b/src/qt/CSCPublicAPI/jsonactivepromotionsparser.h @@ -8,8 +8,6 @@ #include "jsonsingleactivepromotion.h" -class QmlImageProvider; - class JsonActivePromotionsParser : public QJsonObject { public: @@ -19,13 +17,11 @@ public: const QList& GetPromotions() const; QList& GetPromotions(); - - void AddImagesToPool( QmlImageProvider* a_pImageProvider ); - private: + void ResolvePromotionsArray(); - QList m_aActivePromotions; + QList m_aActiveCasinos; }; #endif // JSONACTIVEPROMOTIONSPARSER_H diff --git a/src/qt/CSCPublicAPI/jsonsingleactivepromotion.cpp b/src/qt/CSCPublicAPI/jsonsingleactivepromotion.cpp index 52c8c05..3f7ae8d 100644 --- a/src/qt/CSCPublicAPI/jsonsingleactivepromotion.cpp +++ b/src/qt/CSCPublicAPI/jsonsingleactivepromotion.cpp @@ -14,21 +14,40 @@ JsonSingleActivePromotion::JsonSingleActivePromotion() JsonSingleActivePromotion::JsonSingleActivePromotion( const QJsonObject& a_rOther ) : QJsonObject( a_rOther ) { - m_strImageName = find( "promotion_title" ).value().toString().remove( GetRestrictedCharacters() ); StoreImage(); } -QRegExp JsonSingleActivePromotion::GetRestrictedCharacters() +QString JsonSingleActivePromotion::GetImagePath() const { - return QRegExp( "[<,>|\\:()&;#?*% ]" ); + return QString( "file://" + QDir::currentPath() + "/" + GetImageRelativePath() ); } -void JsonSingleActivePromotion::StoreImage() +QString JsonSingleActivePromotion::GetImageRelativePath() const { + return QString( "adverts/" + find( "promotion_title" ).value().toString().remove( " " ) + "." + find( "image_mime_type" ).value().toString().split( "/" ).last() ); +} + +QString JsonSingleActivePromotion::StoreImage() +{ + QString strReturn = QString(); if ( find( "image_mime_type" ).value().toString().split( "/" ).first().contains( "image" ) ) { + QString strFileName = GetImageRelativePath(); QByteArray binaryData = QByteArray::fromBase64( find( "promotion_image" ).value().toString().toLocal8Bit() ); - m_oAdvertImage = QImage::fromData( binaryData ); + + if ( !QDir( "adverts" ).exists() ) + { + QDir().mkdir( "adverts" ); + } + QFile imageOutputFile( strFileName ); + QImage outputImage = QImage::fromData( binaryData, "JPEG" ); + if ( imageOutputFile.open( QIODevice::WriteOnly | QIODevice::Truncate ) ) + { + outputImage.save( &imageOutputFile, 0 ); + imageOutputFile.close(); + strReturn = strFileName; + } } + return strReturn; } diff --git a/src/qt/CSCPublicAPI/jsonsingleactivepromotion.h b/src/qt/CSCPublicAPI/jsonsingleactivepromotion.h index 8c995c8..b2429b1 100644 --- a/src/qt/CSCPublicAPI/jsonsingleactivepromotion.h +++ b/src/qt/CSCPublicAPI/jsonsingleactivepromotion.h @@ -5,8 +5,6 @@ #include #include -#include - class JsonSingleActivePromotion : public QJsonObject { public: @@ -14,16 +12,11 @@ public: JsonSingleActivePromotion( const QJsonObject& a_rOther ); virtual ~JsonSingleActivePromotion(){} - QString GetImageName() const{ return m_strImageName; } - QImage GetAdvertImage() const { return m_oAdvertImage; } + QString GetImagePath() const; + private: - void StoreImage(); - - static QRegExp GetRestrictedCharacters(); - - QString m_strImageName; - QImage m_oAdvertImage; - + QString GetImageRelativePath() const; + QString StoreImage(); }; #endif // JSONSINGLEACTIVEPROMOTION_H diff --git a/src/qt/qtquick_controls/cpp/guibannercontrol.cpp b/src/qt/qtquick_controls/cpp/guibannercontrol.cpp index eaee5dd..50cd75a 100644 --- a/src/qt/qtquick_controls/cpp/guibannercontrol.cpp +++ b/src/qt/qtquick_controls/cpp/guibannercontrol.cpp @@ -30,7 +30,7 @@ void GUIBannerControl::InitializeAdvertsView( GUIBannerListView* a_pView ) } } -void GUIBannerControl::slotPopulateListView( JsonActivePromotionsParser* a_pActivePromotions ) +void GUIBannerControl::slotPopulateFromWeb( JsonActivePromotionsParser* a_pActivePromotions ) { if ( m_pAdvertsView ) { @@ -39,3 +39,13 @@ void GUIBannerControl::slotPopulateListView( JsonActivePromotionsParser* a_pActi } } +void GUIBannerControl::slotPopulateLocally() +{ + if ( m_pAdvertsView ) + { + QmlBannerListModel* pAdvertsModel = new QmlBannerListModel( 0 ); + m_pAdvertsView->SetModel( pAdvertsModel ); + qDebug() << "Coming soon"; + } +} + diff --git a/src/qt/qtquick_controls/cpp/guibannercontrol.h b/src/qt/qtquick_controls/cpp/guibannercontrol.h index b013449..3812814 100644 --- a/src/qt/qtquick_controls/cpp/guibannercontrol.h +++ b/src/qt/qtquick_controls/cpp/guibannercontrol.h @@ -18,7 +18,8 @@ public: GUIBannerListView* GetAdvertsView() const { return m_pAdvertsView; } public slots: - void slotPopulateListView( JsonActivePromotionsParser* a_pActivePromotions ); + void slotPopulateFromWeb( JsonActivePromotionsParser* a_pActivePromotions ); + void slotPopulateLocally(); signals: diff --git a/src/qt/qtquick_controls/cpp/guibannerwidget.cpp b/src/qt/qtquick_controls/cpp/guibannerwidget.cpp index f466877..9127f30 100644 --- a/src/qt/qtquick_controls/cpp/guibannerwidget.cpp +++ b/src/qt/qtquick_controls/cpp/guibannerwidget.cpp @@ -20,12 +20,10 @@ GUIBannerWidget::GUIBannerWidget(QWidget *parent) , m_pBannerControl( 0 ) , m_pWebApiParserTemporary( new CasinoCoinWebAPIParser( this ) ) , m_pWebApiTemporary( new CasinoCoinWebAPI( this ) ) - , m_pQmlImageProvider( 0 ) { registerCustomQmlTypes(); connect( m_pWebApiTemporary, SIGNAL( signalResponseReady(const QByteArray&)), m_pWebApiParserTemporary, SLOT( slotParseAnswer(const QByteArray&)), Qt::UniqueConnection ); - connect( m_pWebApiTemporary, SIGNAL( signalNetworkError(QNetworkReply::NetworkError,const QUrl)), m_pWebApiParserTemporary, SLOT( slotNetworkError(QNetworkReply::NetworkError,const QUrl)), Qt::UniqueConnection ); - connect( m_pWebApiParserTemporary, SIGNAL( signalActivePromotionsParsed(JsonActivePromotionsParser*)), this, SLOT( slotPopulateFromWeb(JsonActivePromotionsParser*)), Qt::UniqueConnection ); + connect( m_pWebApiTemporary, SIGNAL( signalNetworkError(QNetworkReply::NetworkError)), this, SLOT( slotNetworkError(QNetworkReply::NetworkError)), Qt::UniqueConnection ); } GUIBannerWidget::~GUIBannerWidget() @@ -38,18 +36,14 @@ void GUIBannerWidget::registerCustomQmlTypes() qmlRegisterType("CasinoCoinControls", 1, 0, "GUIBannerControl" ); qmlRegisterType("CasinoCoinControls", 1, 0, "GUIBannerListView" ); qmlRegisterType("CasinoCoinControls", 1, 0, "QmlBannerListModel" ); + qmlRegisterType("CasinoCoinControls", 1, 0, "QmlImageProvider" ); } QWidget* GUIBannerWidget::dockQmlToWidget() { QQuickView* pBannerWindow = new QQuickView; pBannerWindow->setSource( QUrl( QStringLiteral( "qrc:/qml/qtquick_controls/qml/QmlGUIBannerWindow.qml" ) ) ); - QQmlEngine* pEngine = pBannerWindow->engine(); - if ( pEngine ) - { - m_pQmlImageProvider = new QmlImageProvider(); - pEngine->addImageProvider( "advertImages", m_pQmlImageProvider ); - } + QWidget* pPlaceHolder = QWidget::createWindowContainer( pBannerWindow, this ); pPlaceHolder->setMinimumSize( 445, 120 ); pPlaceHolder->setMaximumSize( 445, 120 ); @@ -60,6 +54,10 @@ QWidget* GUIBannerWidget::dockQmlToWidget() m_pBannerControl = pRootObject->findChild(); if ( m_pBannerControl ) { + if ( m_pWebApiParserTemporary ) + { + connect( m_pWebApiParserTemporary, SIGNAL( signalActivePromotionsParsed(JsonActivePromotionsParser*)), m_pBannerControl, SLOT( slotPopulateFromWeb(JsonActivePromotionsParser*)), Qt::UniqueConnection ); + } m_pBannerControl->setWidth( ( 115 * 3 ) + ( 4 * 10 ) + 60 ); m_pBannerControl->setHeight( 115 ); } @@ -76,14 +74,15 @@ void GUIBannerWidget::PopulateBannerFromWeb() } } -void GUIBannerWidget::slotPopulateFromWeb( JsonActivePromotionsParser* a_pPromotionsParser ) +void GUIBannerWidget::PopulateBannerLocally() { - if ( a_pPromotionsParser ) - { - a_pPromotionsParser->AddImagesToPool( m_pQmlImageProvider ); - } if ( m_pBannerControl ) { - m_pBannerControl->slotPopulateListView( a_pPromotionsParser ); + m_pBannerControl->slotPopulateLocally(); } } + +void GUIBannerWidget::slotNetworkError( QNetworkReply::NetworkError a_eError ) +{ + PopulateBannerLocally(); +} diff --git a/src/qt/qtquick_controls/cpp/guibannerwidget.h b/src/qt/qtquick_controls/cpp/guibannerwidget.h index 0d4da0a..e3a4e3e 100644 --- a/src/qt/qtquick_controls/cpp/guibannerwidget.h +++ b/src/qt/qtquick_controls/cpp/guibannerwidget.h @@ -7,8 +7,6 @@ class CasinoCoinWebAPIParser; class CasinoCoinWebAPI; class GUIBannerControl; -class QmlImageProvider; -class JsonActivePromotionsParser; class GUIBannerWidget : public QWidget { @@ -30,9 +28,9 @@ private: CasinoCoinWebAPIParser* m_pWebApiParserTemporary; CasinoCoinWebAPI* m_pWebApiTemporary; - QmlImageProvider* m_pQmlImageProvider; + private slots: - void slotPopulateFromWeb( JsonActivePromotionsParser* a_pPromotionsParser ); + void slotNetworkError( QNetworkReply::NetworkError a_eError ); }; #endif // GUIBANNERWIDGET_H diff --git a/src/qt/qtquick_controls/cpp/qmlbannerlistitem.cpp b/src/qt/qtquick_controls/cpp/qmlbannerlistitem.cpp index 6b01164..e1245fe 100644 --- a/src/qt/qtquick_controls/cpp/qmlbannerlistitem.cpp +++ b/src/qt/qtquick_controls/cpp/qmlbannerlistitem.cpp @@ -8,7 +8,7 @@ QmlBannerListItem::QmlBannerListItem(QString a_strImageSource, QString a_strDest } QmlBannerListItem::QmlBannerListItem( const JsonSingleActivePromotion& a_rCasinoDescription, QObject* a_pParent ) - : QmlListItem( QVariant( a_rCasinoDescription.GetImageName() ), a_rCasinoDescription.find( "access_url" ).value().toVariant(), a_rCasinoDescription.find( "description" ).value().toVariant(), a_pParent ) + : QmlListItem( QVariant( a_rCasinoDescription.GetImagePath() ), a_rCasinoDescription.find( "access_url" ).value().toVariant(), a_rCasinoDescription.find( "description" ).value().toVariant(), a_pParent ) { } diff --git a/src/qt/qtquick_controls/cpp/qmlimageprovider.cpp b/src/qt/qtquick_controls/cpp/qmlimageprovider.cpp index 35eedbe..fc052c8 100644 --- a/src/qt/qtquick_controls/cpp/qmlimageprovider.cpp +++ b/src/qt/qtquick_controls/cpp/qmlimageprovider.cpp @@ -1,34 +1,39 @@ #include "qmlimageprovider.h" -#include +QmlImageProvider::QmlImageProvider( QQuickItem* a_pParent ) + : QQuickPaintedItem( a_pParent ) +{ -QmlImageProvider::QmlImageProvider() - : QQuickImageProvider( QQuickImageProvider::Image ) +} + +QmlImageProvider::QmlImageProvider( const QImage& a_rImage, QQuickItem* a_pParent ) + : QQuickPaintedItem( a_pParent ) + , m_oImage( a_rImage ) { } -void QmlImageProvider::AddToImagePool( QString a_strImageID, const QImage& a_rImage ) +void QmlImageProvider::SetImage( const QImage& a_rImage ) { - m_aImagePool.insert( a_strImageID, a_rImage ); -} - -void QmlImageProvider::AddToImagePool( const QMap& a_aImages ) -{ - QMapIterator iter( a_aImages ); - while( iter.hasNext() ) + if ( a_rImage != m_oImage ) { - iter.next(); - AddToImagePool( iter.key(), iter.value() ); + m_oImage = QImage( a_rImage ); + emit signalImageChanged(); } } -QImage QmlImageProvider::requestImage( const QString& a_rImageID, QSize* a_pSize, const QSize& a_ra_rRequestedSize ) +void QmlImageProvider::paint( QPainter* a_pPainter ) { - QImage oImage( m_aImagePool.value( a_rImageID ) ); - if ( a_pSize ) + if ( a_pPainter ) { - a_pSize->setWidth( oImage.width() ); - a_pSize->setHeight( oImage.height() ); + a_pPainter->drawImage( QPoint( 0, 0 ), m_oImage ); + } +} + +void QmlImageProvider::paintImage( const QImage& a_rImage, QPainter* a_pPainter ) +{ + SetImage( a_rImage ); + if ( a_pPainter ) + { + a_pPainter->drawImage( QPoint( 0, 0 ), m_oImage ); } - return oImage; } diff --git a/src/qt/qtquick_controls/cpp/qmlimageprovider.h b/src/qt/qtquick_controls/cpp/qmlimageprovider.h index 330a3ee..e7b7c8d 100644 --- a/src/qt/qtquick_controls/cpp/qmlimageprovider.h +++ b/src/qt/qtquick_controls/cpp/qmlimageprovider.h @@ -1,28 +1,26 @@ #ifndef QMLIMAGEPROVIDER_H #define QMLIMAGEPROVIDER_H -#include +#include #include +#include -class QmlImageProvider : public QQuickImageProvider +class QmlImageProvider : public QQuickPaintedItem { + Q_OBJECT + + Q_PROPERTY( QImage p_oImage MEMBER m_oImage NOTIFY signalImageChanged ) public: - explicit QmlImageProvider(); + explicit QmlImageProvider( QQuickItem* a_pParent = 0 ); + explicit QmlImageProvider( const QImage& a_rImage, QQuickItem* a_pParent = 0 ); - void AddToImagePool( QString a_strImageID, const QImage& a_rImage ); - void AddToImagePool( const QMap& a_aImages ); - - virtual QImage requestImage - ( const QString& a_rImageID - , QSize* a_pSize - , const QSize& a_rRequestedSize - ); + void SetImage( const QImage& a_rImage ); + virtual void paint( QPainter* a_pPainter ); + void paintImage( const QImage& a_rImage, QPainter* a_pPainter ); signals: - -public slots: - + void signalImageChanged(); private: - QMap m_aImagePool; + QImage m_oImage; }; #endif // QMLIMAGEPROVIDER_H diff --git a/src/qt/qtquick_controls/qml/QmlGUIBannerListView.qml b/src/qt/qtquick_controls/qml/QmlGUIBannerListView.qml index 273baa7..ce2ee41 100644 --- a/src/qt/qtquick_controls/qml/QmlGUIBannerListView.qml +++ b/src/qt/qtquick_controls/qml/QmlGUIBannerListView.qml @@ -46,11 +46,18 @@ GUIBannerListView Image { id: id_advertisementImage - source: "image://advertImages/" + m_imageSource + source: m_imageSource scale: ( id_listElement.width / width ) anchors.centerIn: id_listElement } + // coming soon +// QmlImageProvider +// { +// id: id_advertisementImage +// scale: ( id_listElement.width / width ) +// anchors.centerIn: id_listElement +// } MouseArea { id: id_leftItemMouseArea From 7841130cd3254e198cfdbed248c7f886492bd4cd Mon Sep 17 00:00:00 2001 From: Andre Jochems Date: Mon, 9 Nov 2015 13:09:41 +0100 Subject: [PATCH 2/3] Revert "Adverts widget v0.2 added:" This reverts commit 5a3b2dbce6009371756cf2950505e54cecd440d5. --- casinocoin-qt.pro | 36 +- src/qt/CSCPublicAPI/casinocoinwebapi.cpp | 52 --- src/qt/CSCPublicAPI/casinocoinwebapi.h | 37 -- .../CSCPublicAPI/casinocoinwebapiparser.cpp | 66 ---- src/qt/CSCPublicAPI/casinocoinwebapiparser.h | 32 -- .../jsonactivepromotionsparser.cpp | 42 --- .../CSCPublicAPI/jsonactivepromotionsparser.h | 27 -- .../jsonsingleactivepromotion.cpp | 53 --- .../CSCPublicAPI/jsonsingleactivepromotion.h | 22 -- src/qt/bitcoin.qrc | 11 +- src/qt/forms/overviewpage.ui | 112 ++----- src/qt/overviewpage.cpp | 37 +- src/qt/overviewpage.h | 6 - .../qtquick_controls/cpp/guibannercontrol.cpp | 51 --- .../qtquick_controls/cpp/guibannercontrol.h | 32 -- .../cpp/guibannerlistview.cpp | 50 --- .../qtquick_controls/cpp/guibannerlistview.h | 35 -- .../qtquick_controls/cpp/guibannerwidget.cpp | 88 ----- src/qt/qtquick_controls/cpp/guibannerwidget.h | 36 -- .../qtquick_controls/cpp/listiteminterface.h | 19 -- .../cpp/qmlbannerlistitem.cpp | 32 -- .../qtquick_controls/cpp/qmlbannerlistitem.h | 37 -- .../cpp/qmlbannerlistmodel.cpp | 30 -- .../qtquick_controls/cpp/qmlbannerlistmodel.h | 26 -- .../qtquick_controls/cpp/qmlimageprovider.cpp | 39 --- .../qtquick_controls/cpp/qmlimageprovider.h | 26 -- src/qt/qtquick_controls/cpp/qmllistitem.cpp | 196 ----------- src/qt/qtquick_controls/cpp/qmllistitem.h | 109 ------ src/qt/qtquick_controls/cpp/qmllistmodel.cpp | 315 ------------------ src/qt/qtquick_controls/cpp/qmllistmodel.h | 83 ----- .../qml/QmlGUIBannerControl.qml | 166 --------- .../qml/QmlGUIBannerListView.qml | 73 ---- .../qml/QmlGUIBannerWindow.qml | 14 - src/qt/res/icons/adverts_arrow_left.png | Bin 266 -> 0 bytes src/qt/res/icons/adverts_arrow_left_hover.png | Bin 266 -> 0 bytes src/qt/res/icons/adverts_arrow_right.png | Bin 276 -> 0 bytes .../res/icons/adverts_arrow_right_hover.png | Bin 275 -> 0 bytes 37 files changed, 43 insertions(+), 1947 deletions(-) delete mode 100644 src/qt/CSCPublicAPI/casinocoinwebapi.cpp delete mode 100644 src/qt/CSCPublicAPI/casinocoinwebapi.h delete mode 100644 src/qt/CSCPublicAPI/casinocoinwebapiparser.cpp delete mode 100644 src/qt/CSCPublicAPI/casinocoinwebapiparser.h delete mode 100644 src/qt/CSCPublicAPI/jsonactivepromotionsparser.cpp delete mode 100644 src/qt/CSCPublicAPI/jsonactivepromotionsparser.h delete mode 100644 src/qt/CSCPublicAPI/jsonsingleactivepromotion.cpp delete mode 100644 src/qt/CSCPublicAPI/jsonsingleactivepromotion.h delete mode 100644 src/qt/qtquick_controls/cpp/guibannercontrol.cpp delete mode 100644 src/qt/qtquick_controls/cpp/guibannercontrol.h delete mode 100644 src/qt/qtquick_controls/cpp/guibannerlistview.cpp delete mode 100644 src/qt/qtquick_controls/cpp/guibannerlistview.h delete mode 100644 src/qt/qtquick_controls/cpp/guibannerwidget.cpp delete mode 100644 src/qt/qtquick_controls/cpp/guibannerwidget.h delete mode 100644 src/qt/qtquick_controls/cpp/listiteminterface.h delete mode 100644 src/qt/qtquick_controls/cpp/qmlbannerlistitem.cpp delete mode 100644 src/qt/qtquick_controls/cpp/qmlbannerlistitem.h delete mode 100644 src/qt/qtquick_controls/cpp/qmlbannerlistmodel.cpp delete mode 100644 src/qt/qtquick_controls/cpp/qmlbannerlistmodel.h delete mode 100644 src/qt/qtquick_controls/cpp/qmlimageprovider.cpp delete mode 100644 src/qt/qtquick_controls/cpp/qmlimageprovider.h delete mode 100644 src/qt/qtquick_controls/cpp/qmllistitem.cpp delete mode 100644 src/qt/qtquick_controls/cpp/qmllistitem.h delete mode 100644 src/qt/qtquick_controls/cpp/qmllistmodel.cpp delete mode 100644 src/qt/qtquick_controls/cpp/qmllistmodel.h delete mode 100644 src/qt/qtquick_controls/qml/QmlGUIBannerControl.qml delete mode 100644 src/qt/qtquick_controls/qml/QmlGUIBannerListView.qml delete mode 100644 src/qt/qtquick_controls/qml/QmlGUIBannerWindow.qml delete mode 100644 src/qt/res/icons/adverts_arrow_left.png delete mode 100644 src/qt/res/icons/adverts_arrow_left_hover.png delete mode 100644 src/qt/res/icons/adverts_arrow_right.png delete mode 100644 src/qt/res/icons/adverts_arrow_right_hover.png diff --git a/casinocoin-qt.pro b/casinocoin-qt.pro index e8e3db5..012f6ee 100644 --- a/casinocoin-qt.pro +++ b/casinocoin-qt.pro @@ -3,7 +3,7 @@ TARGET = casinocoin-qt macx:TARGET = "CasinoCoin-Qt" VERSION = 1.3.0.0 INCLUDEPATH += src src/json src/qt -QT += core gui network quick +QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE USE_IPV6 __NO_SYSTEM_INCLUDES CONFIG += no_include_pwd @@ -259,20 +259,7 @@ HEADERS += src/qt/bitcoingui.h \ src/threadsafety.h \ src/limitedmap.h \ src/qt/macnotificationhandler.h \ - src/qt/splashscreen.h \ - src/qt/CSCPublicAPI/casinocoinwebapi.h \ - src/qt/CSCPublicAPI/casinocoinwebapiparser.h \ - src/qt/CSCPublicAPI/jsonactivepromotionsparser.h \ - src/qt/CSCPublicAPI/jsonsingleactivepromotion.h \ - src/qt/qtquick_controls/cpp/guibannercontrol.h \ - src/qt/qtquick_controls/cpp/guibannerlistview.h \ - src/qt/qtquick_controls/cpp/guibannerwidget.h \ - src/qt/qtquick_controls/cpp/listiteminterface.h \ - src/qt/qtquick_controls/cpp/qmlbannerlistitem.h \ - src/qt/qtquick_controls/cpp/qmlbannerlistmodel.h \ - src/qt/qtquick_controls/cpp/qmlimageprovider.h \ - src/qt/qtquick_controls/cpp/qmllistitem.h \ - src/qt/qtquick_controls/cpp/qmllistmodel.h + src/qt/splashscreen.h SOURCES += src/qt/bitcoin.cpp \ src/qt/bitcoingui.cpp \ @@ -343,19 +330,7 @@ SOURCES += src/qt/bitcoin.cpp \ src/noui.cpp \ src/leveldb.cpp \ src/txdb.cpp \ - src/qt/splashscreen.cpp \ - src/qt/CSCPublicAPI/casinocoinwebapi.cpp \ - src/qt/CSCPublicAPI/casinocoinwebapiparser.cpp \ - src/qt/CSCPublicAPI/jsonactivepromotionsparser.cpp \ - src/qt/CSCPublicAPI/jsonsingleactivepromotion.cpp \ - src/qt/qtquick_controls/cpp/guibannercontrol.cpp \ - src/qt/qtquick_controls/cpp/guibannerlistview.cpp \ - src/qt/qtquick_controls/cpp/guibannerwidget.cpp \ - src/qt/qtquick_controls/cpp/qmlbannerlistitem.cpp \ - src/qt/qtquick_controls/cpp/qmlbannerlistmodel.cpp \ - src/qt/qtquick_controls/cpp/qmlimageprovider.cpp \ - src/qt/qtquick_controls/cpp/qmllistitem.cpp \ - src/qt/qtquick_controls/cpp/qmllistmodel.cpp + src/qt/splashscreen.cpp RESOURCES += src/qt/bitcoin.qrc @@ -428,10 +403,7 @@ OTHER_FILES += README.md \ src/test/*.cpp \ src/test/*.h \ src/qt/test/*.cpp \ - src/qt/test/*.h \ - src/qt/qtquick_controls/qml/QmlGUIBannerControl.qml \ - src/qt/qtquick_controls/qml/QmlGUIBannerListView.qml \ - src/qt/qtquick_controls/qml/QmlGUIBannerWindow.qml + src/qt/test/*.h # platform specific defaults, if not overridden on command line isEmpty(BOOST_LIB_SUFFIX) { diff --git a/src/qt/CSCPublicAPI/casinocoinwebapi.cpp b/src/qt/CSCPublicAPI/casinocoinwebapi.cpp deleted file mode 100644 index 18732ef..0000000 --- a/src/qt/CSCPublicAPI/casinocoinwebapi.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include "casinocoinwebapi.h" - -#include - -const QString CasinoCoinWebAPI::s_strServerAddress = "http://119.81.188.59/"; -const QString CasinoCoinWebAPI::s_strServerEndpoint = "CSCPublicAPI"; - -CasinoCoinWebAPI::CasinoCoinWebAPI( QObject*a_pParent ) - : QObject(a_pParent ) -{ - connect( &m_oNetworkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(slotParseNetworkResponse(QNetworkReply*))); -} - -void CasinoCoinWebAPI::GetActivePromotions() -{ - Get( s_strServerAddress + "/" + s_strServerEndpoint + "/ActivePromotions" ); -} - -void CasinoCoinWebAPI::GetActiveCasinos() -{ - Get( s_strServerAddress + "/" + s_strServerEndpoint + "/ActiveCasinos" ); -} - -void CasinoCoinWebAPI::GetActiveNewsItems() -{ - Get( s_strServerAddress + "/" + s_strServerEndpoint + "/ActiveNewsItems" ); -} - -void CasinoCoinWebAPI::GetActiveExchanges() -{ - Get( s_strServerAddress + "/" + s_strServerEndpoint + "/ActiveExchanges" ); -} - -void CasinoCoinWebAPI::Get( const QString& a_rUrl ) -{ - QUrl oUrl ( a_rUrl ); - QNetworkRequest oNetworkRequest ( oUrl ); - m_oNetworkAccessManager.get( oNetworkRequest ); -} - -void CasinoCoinWebAPI::slotParseNetworkResponse( QNetworkReply *finished ) -{ - if ( finished->error() != QNetworkReply::NoError ) - { - // A communication error has occurred - emit signalNetworkError( finished->error() ); - return; - } - - QByteArray data = finished->readAll(); - emit signalResponseReady( data ); -} diff --git a/src/qt/CSCPublicAPI/casinocoinwebapi.h b/src/qt/CSCPublicAPI/casinocoinwebapi.h deleted file mode 100644 index 38359eb..0000000 --- a/src/qt/CSCPublicAPI/casinocoinwebapi.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef CASINOCOINWEBAPI_H -#define CASINOCOINWEBAPI_H - -#include - -#include -#include - -class CasinoCoinWebAPI : public QObject -{ - Q_OBJECT -public: - explicit CasinoCoinWebAPI( QObject* a_pParent = 0 ); - virtual ~CasinoCoinWebAPI(){} - - void GetActivePromotions(); - void GetActiveCasinos(); - void GetActiveNewsItems(); - void GetActiveExchanges(); - - static const QString s_strServerAddress; - static const QString s_strServerEndpoint; - -signals: - void signalResponseReady( const QByteArray& a_rJsonFile ); - void signalNetworkError( QNetworkReply::NetworkError a_eError ); - -public slots: - void slotParseNetworkResponse( QNetworkReply *finished ); - -private: - void Get( const QString& a_rUrl ); - - QNetworkAccessManager m_oNetworkAccessManager; -}; - -#endif // CASINOCOINWEBAPI_H diff --git a/src/qt/CSCPublicAPI/casinocoinwebapiparser.cpp b/src/qt/CSCPublicAPI/casinocoinwebapiparser.cpp deleted file mode 100644 index 05202a7..0000000 --- a/src/qt/CSCPublicAPI/casinocoinwebapiparser.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "casinocoinwebapiparser.h" - -#include -#include -#include - -#include - -CasinoCoinWebAPIParser::CasinoCoinWebAPIParser( QObject* a_pParent ) - : QObject(a_pParent) -{ -} - -void CasinoCoinWebAPIParser::slotParseAnswer( const QByteArray& a_rJsonFile ) -{ - QJsonParseError oError; - QJsonDocument jsonDoc = QJsonDocument::fromJson( a_rJsonFile, &oError ); - if ( oError.error == QJsonParseError::NoError ) - { - QJsonObject docAsObject = jsonDoc.object(); - if ( docAsObject.find( "Result" ).value().isObject() ) - { - QJsonObject jsonObjectResult = docAsObject.find( "Result" ).value().toObject(); - if ( jsonObjectResult.find( "ActivePromotions" ).value().isArray() ) - { - ParsePromotions( docAsObject ); - } - else if ( jsonObjectResult.find( "ActiveNewsItems" ).value().isArray() ) - { - ParseNewsItems( docAsObject ); - } - else if ( jsonObjectResult.find( "ActiveCasinos" ).value().isArray() ) - { - ParseCasinos( docAsObject ); - } - else if ( jsonObjectResult.find( "ActiveExchanges" ).value().isArray() ) - { - ParseExchanges( docAsObject ); - } - } - } -} - -void CasinoCoinWebAPIParser::ParsePromotions( const QJsonObject& a_rJsonPromotions ) -{ - qDebug() << "ParsePromotions"; - emit signalActivePromotionsParsed( new JsonActivePromotionsParser( a_rJsonPromotions ) ); -} - -void CasinoCoinWebAPIParser::ParseCasinos( const QJsonObject& a_rJsonCasinos ) -{ - qDebug() << "Coming soon - ParseCasinos"; - qDebug() << a_rJsonCasinos; -} - -void CasinoCoinWebAPIParser::ParseExchanges( const QJsonObject& a_rJsonExchanges ) -{ - qDebug() << "Coming soon - ParseExchanges"; - qDebug() << a_rJsonExchanges; -} - -void CasinoCoinWebAPIParser::ParseNewsItems( const QJsonObject& a_rJsonNewsItems ) -{ - qDebug() << "Coming soon - ParseNewsItems"; - qDebug() << a_rJsonNewsItems; -} diff --git a/src/qt/CSCPublicAPI/casinocoinwebapiparser.h b/src/qt/CSCPublicAPI/casinocoinwebapiparser.h deleted file mode 100644 index 3ca8bb4..0000000 --- a/src/qt/CSCPublicAPI/casinocoinwebapiparser.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef CASINOCOINWEBAPIPARSER_H -#define CASINOCOINWEBAPIPARSER_H - -#include - -#include "jsonactivepromotionsparser.h" -#include "jsonsingleactivepromotion.h" - -class CasinoCoinWebAPIParser : public QObject -{ - Q_OBJECT -public: - explicit CasinoCoinWebAPIParser( QObject* a_pParent = 0 ); - - -signals: - void signalActivePromotionsParsed( JsonActivePromotionsParser* a_pActivePromotions ); -// void signalActiveCasinosParsed( JsonActiveCasinosParser* a_pActivePromotions ); -// void signalActiveExchangesParsed( JsonActiveExchangesParser* a_pActivePromotions ); -// void signalActiveNewsItemsParsed( JsonActiveNewsItemsParser* a_pActivePromotions ); - -public slots: - void slotParseAnswer( const QByteArray& a_rJsonFile ); - -private: - void ParsePromotions( const QJsonObject& a_rJsonPromotions ); - void ParseCasinos ( const QJsonObject& a_rJsonCasinos ); - void ParseExchanges ( const QJsonObject& a_rJsonExchanges ); - void ParseNewsItems ( const QJsonObject& a_rJsonNewsItems ); -}; - -#endif // CASINOCOINWEBAPIPARSER_H diff --git a/src/qt/CSCPublicAPI/jsonactivepromotionsparser.cpp b/src/qt/CSCPublicAPI/jsonactivepromotionsparser.cpp deleted file mode 100644 index 0cfb464..0000000 --- a/src/qt/CSCPublicAPI/jsonactivepromotionsparser.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include "jsonactivepromotionsparser.h" - -#include - -JsonActivePromotionsParser::JsonActivePromotionsParser() -{ - -} - -JsonActivePromotionsParser::JsonActivePromotionsParser( const QJsonObject& a_rOther ) - : QJsonObject( a_rOther ) -{ - ResolvePromotionsArray(); -} - -void JsonActivePromotionsParser::ResolvePromotionsArray() -{ - if ( find( "Result" ).value().isObject() ) - { - if ( find( "Result" ).value().toObject().find( "ActivePromotions" ).value().isArray() ) - { - QJsonArray arrayOfCasinoDescriptors( find( "Result" ).value().toObject().find( "ActivePromotions" ).value().toArray() ); - foreach( QJsonValue singleCasinoDescriptor, arrayOfCasinoDescriptors ) - { - if ( singleCasinoDescriptor.isObject() ) - { - m_aActiveCasinos.append( JsonSingleActivePromotion( singleCasinoDescriptor.toObject() ) ); - } - } - } - } -} - -const QList& JsonActivePromotionsParser::GetPromotions() const -{ - return m_aActiveCasinos; -} - -QList& JsonActivePromotionsParser::GetPromotions() -{ - return m_aActiveCasinos; -} diff --git a/src/qt/CSCPublicAPI/jsonactivepromotionsparser.h b/src/qt/CSCPublicAPI/jsonactivepromotionsparser.h deleted file mode 100644 index bad1b23..0000000 --- a/src/qt/CSCPublicAPI/jsonactivepromotionsparser.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef JSONACTIVEPROMOTIONSPARSER_H -#define JSONACTIVEPROMOTIONSPARSER_H - -#include -#include -#include -#include - -#include "jsonsingleactivepromotion.h" - -class JsonActivePromotionsParser : public QJsonObject -{ -public: - JsonActivePromotionsParser(); - JsonActivePromotionsParser( const QJsonObject& a_rOther ); - virtual ~JsonActivePromotionsParser(){} - - const QList& GetPromotions() const; - QList& GetPromotions(); -private: - - void ResolvePromotionsArray(); - - QList m_aActiveCasinos; -}; - -#endif // JSONACTIVEPROMOTIONSPARSER_H diff --git a/src/qt/CSCPublicAPI/jsonsingleactivepromotion.cpp b/src/qt/CSCPublicAPI/jsonsingleactivepromotion.cpp deleted file mode 100644 index 3f7ae8d..0000000 --- a/src/qt/CSCPublicAPI/jsonsingleactivepromotion.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include "jsonsingleactivepromotion.h" - -#include -#include -#include - -#include - -JsonSingleActivePromotion::JsonSingleActivePromotion() -{ - -} - -JsonSingleActivePromotion::JsonSingleActivePromotion( const QJsonObject& a_rOther ) - : QJsonObject( a_rOther ) -{ - StoreImage(); -} - -QString JsonSingleActivePromotion::GetImagePath() const -{ - return QString( "file://" + QDir::currentPath() + "/" + GetImageRelativePath() ); -} - -QString JsonSingleActivePromotion::GetImageRelativePath() const -{ - return QString( "adverts/" + find( "promotion_title" ).value().toString().remove( " " ) + "." + find( "image_mime_type" ).value().toString().split( "/" ).last() ); -} - -QString JsonSingleActivePromotion::StoreImage() -{ - QString strReturn = QString(); - if ( find( "image_mime_type" ).value().toString().split( "/" ).first().contains( "image" ) ) - { - QString strFileName = GetImageRelativePath(); - QByteArray binaryData = QByteArray::fromBase64( find( "promotion_image" ).value().toString().toLocal8Bit() ); - - if ( !QDir( "adverts" ).exists() ) - { - QDir().mkdir( "adverts" ); - } - QFile imageOutputFile( strFileName ); - QImage outputImage = QImage::fromData( binaryData, "JPEG" ); - if ( imageOutputFile.open( QIODevice::WriteOnly | QIODevice::Truncate ) ) - { - outputImage.save( &imageOutputFile, 0 ); - imageOutputFile.close(); - strReturn = strFileName; - } - } - return strReturn; -} - diff --git a/src/qt/CSCPublicAPI/jsonsingleactivepromotion.h b/src/qt/CSCPublicAPI/jsonsingleactivepromotion.h deleted file mode 100644 index b2429b1..0000000 --- a/src/qt/CSCPublicAPI/jsonsingleactivepromotion.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef JSONSINGLEACTIVEPROMOTION_H -#define JSONSINGLEACTIVEPROMOTION_H - -#include -#include -#include - -class JsonSingleActivePromotion : public QJsonObject -{ -public: - JsonSingleActivePromotion(); - JsonSingleActivePromotion( const QJsonObject& a_rOther ); - virtual ~JsonSingleActivePromotion(){} - - QString GetImagePath() const; - -private: - QString GetImageRelativePath() const; - QString StoreImage(); -}; - -#endif // JSONSINGLEACTIVEPROMOTION_H diff --git a/src/qt/bitcoin.qrc b/src/qt/bitcoin.qrc index 2daf3c0..57c1ace 100644 --- a/src/qt/bitcoin.qrc +++ b/src/qt/bitcoin.qrc @@ -1,4 +1,4 @@ - + res/icons/bitcoin.png res/icons/address-book.png @@ -40,10 +40,6 @@ res/icons/filesave.png res/icons/qrcode.png res/icons/debugwindow.png - res/icons/adverts_arrow_left.png - res/icons/adverts_arrow_left_hover.png - res/icons/adverts_arrow_right.png - res/icons/adverts_arrow_right_hover.png res/images/about.png @@ -103,9 +99,4 @@ locale/bitcoin_zh_CN.qm locale/bitcoin_zh_TW.qm - - qtquick_controls/qml/QmlGUIBannerControl.qml - qtquick_controls/qml/QmlGUIBannerListView.qml - qtquick_controls/qml/QmlGUIBannerWindow.qml - diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui index 870b030..e1dc0b1 100644 --- a/src/qt/forms/overviewpage.ui +++ b/src/qt/forms/overviewpage.ui @@ -6,8 +6,8 @@ 0 0 - 782 - 406 + 573 + 342 @@ -36,18 +36,6 @@ - - - 470 - 0 - - - - - 470 - 16777215 - - QFrame::NoFrame @@ -113,7 +101,7 @@ 12 - + Balance: @@ -136,16 +124,13 @@ 0 CSC - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse - + Unconfirmed: @@ -168,9 +153,6 @@ 0 CSC - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -197,76 +179,54 @@ 0 CSC - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse - - - - - 150 - 30 - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - Hide all advertisements (temporary) - - - false - - - false - - - true - - - - - - + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + :/images/backg + + + false + + + Qt::AlignCenter + + + -2 + + + - - - 150 - 0 - - QFrame::NoFrame diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index 269f88f..ad2d682 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -9,7 +9,6 @@ #include "transactionfilterproxy.h" #include "guiutil.h" #include "guiconstants.h" -#include "qtquick_controls/cpp/guibannerwidget.h" #include #include @@ -101,11 +100,9 @@ OverviewPage::OverviewPage(QWidget *parent) : currentUnconfirmedBalance(-1), currentImmatureBalance(-1), txdelegate(new TxViewDelegate()), - filter(0), - advertsWidget(0) + filter(0) { ui->setupUi(this); - createAdvertsWidget(); // Recent transactions ui->listTransactions->setItemDelegate(txdelegate); @@ -148,16 +145,7 @@ void OverviewPage::setBalance(qint64 balance, qint64 unconfirmedBalance, qint64 // for the non-mining users bool showImmature = immatureBalance != 0; ui->labelImmature->setVisible(showImmature); - ui->labelImmatureText->setVisible(showImmature); -} - -void OverviewPage::createAdvertsWidget() -{ - advertsWidget = new GUIBannerWidget( this ); - ui->verticalLayoutAdvertWidget->addWidget( advertsWidget->dockQmlToWidget(), Qt::AlignCenter ); - // first load from local files as its faster, than look for new ads in CasinoCoinAPI -// advertsWidget->PopulateBannerLocally(); - advertsWidget->PopulateBannerFromWeb(); + ui->labelImmatureText->setVisible(showImmature); } void OverviewPage::setClientModel(ClientModel *model) @@ -223,24 +211,3 @@ void OverviewPage::showOutOfSyncWarning(bool fShow) ui->labelWalletStatus->setVisible(fShow); ui->labelTransactionsStatus->setVisible(fShow); } - - -void OverviewPage::on_pushButtonToggleAdverts_clicked() -{ - if ( ui->verticalLayoutAdvertWidget->itemAt( 0 ) ) - { - QWidget* pAdvertWidget = ui->verticalLayoutAdvertWidget->itemAt( 0 )->widget(); - if ( pAdvertWidget ) - { - pAdvertWidget->setVisible( !pAdvertWidget->isVisible() ); - if ( pAdvertWidget->isVisible() ) - { - ui->pushButtonToggleAdverts->setText( tr( "Hide all advertisements" ) ); - } - else - { - ui->pushButtonToggleAdverts->setText( tr( "Show advertisements" ) ); - } - } - } -} diff --git a/src/qt/overviewpage.h b/src/qt/overviewpage.h index 9ffdcc0..59ba3c6 100644 --- a/src/qt/overviewpage.h +++ b/src/qt/overviewpage.h @@ -10,7 +10,6 @@ class ClientModel; class WalletModel; class TxViewDelegate; class TransactionFilterProxy; -class GUIBannerWidget; QT_BEGIN_NAMESPACE class QModelIndex; @@ -46,15 +45,10 @@ private: TxViewDelegate *txdelegate; TransactionFilterProxy *filter; - GUIBannerWidget* advertsWidget; - /** Create widget to populate adverts */ - void createAdvertsWidget(); - private slots: void updateDisplayUnit(); void handleTransactionClicked(const QModelIndex &index); void updateAlerts(const QString &warnings); - void on_pushButtonToggleAdverts_clicked(); }; #endif // OVERVIEWPAGE_H diff --git a/src/qt/qtquick_controls/cpp/guibannercontrol.cpp b/src/qt/qtquick_controls/cpp/guibannercontrol.cpp deleted file mode 100644 index 50cd75a..0000000 --- a/src/qt/qtquick_controls/cpp/guibannercontrol.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#include "guibannercontrol.h" -#include "guibannerlistview.h" -#include "qmlbannerlistmodel.h" -#include "qmlbannerlistitem.h" - -GUIBannerControl::GUIBannerControl( QQuickItem* a_pParent ) - : QQuickItem( a_pParent ) - , m_pAdvertsView( 0 ) -{ -} - -GUIBannerControl::~GUIBannerControl() -{ - if ( m_pAdvertsView ) - { - delete m_pAdvertsView; - m_pAdvertsView = 0; - } -} - -void GUIBannerControl::InitializeAdvertsView( GUIBannerListView* a_pView ) -{ - if ( a_pView ) - { - if ( m_pAdvertsView ) - { - delete m_pAdvertsView; - } - m_pAdvertsView = a_pView; - } -} - -void GUIBannerControl::slotPopulateFromWeb( JsonActivePromotionsParser* a_pActivePromotions ) -{ - if ( m_pAdvertsView ) - { - QmlBannerListModel* pAdvertsModel = new QmlBannerListModel( *a_pActivePromotions ); - m_pAdvertsView->SetModel( pAdvertsModel ); - } -} - -void GUIBannerControl::slotPopulateLocally() -{ - if ( m_pAdvertsView ) - { - QmlBannerListModel* pAdvertsModel = new QmlBannerListModel( 0 ); - m_pAdvertsView->SetModel( pAdvertsModel ); - qDebug() << "Coming soon"; - } -} - diff --git a/src/qt/qtquick_controls/cpp/guibannercontrol.h b/src/qt/qtquick_controls/cpp/guibannercontrol.h deleted file mode 100644 index 3812814..0000000 --- a/src/qt/qtquick_controls/cpp/guibannercontrol.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef GUIBANNERCONTROL_H -#define GUIBANNERCONTROL_H - -#include - -#include "../../CSCPublicAPI/jsonactivepromotionsparser.h" - -class GUIBannerListView; - -class GUIBannerControl : public QQuickItem -{ - Q_OBJECT -public: - GUIBannerControl( QQuickItem* a_pParent = 0 ); - virtual ~GUIBannerControl(); - - Q_INVOKABLE void InitializeAdvertsView( GUIBannerListView* a_pView ); - GUIBannerListView* GetAdvertsView() const { return m_pAdvertsView; } - -public slots: - void slotPopulateFromWeb( JsonActivePromotionsParser* a_pActivePromotions ); - void slotPopulateLocally(); - -signals: - -public slots: - -private: - GUIBannerListView* m_pAdvertsView; -}; - -#endif // GUIBANNERCONTROL_H diff --git a/src/qt/qtquick_controls/cpp/guibannerlistview.cpp b/src/qt/qtquick_controls/cpp/guibannerlistview.cpp deleted file mode 100644 index e8cc33f..0000000 --- a/src/qt/qtquick_controls/cpp/guibannerlistview.cpp +++ /dev/null @@ -1,50 +0,0 @@ -#include "guibannerlistview.h" - -#include "qmlbannerlistitem.h" -#include "qmlbannerlistmodel.h" -#include "qmllistmodel.h" - -#include -#include - -GUIBannerListView::GUIBannerListView( QQuickItem* a_pParent ) - : QQuickItem( a_pParent ) - , m_pModel( 0 ) -{ -} - -void GUIBannerListView::Clear() -{ - if ( m_pModel ) - { - m_pModel->clear(); - } -} - -void GUIBannerListView::OnClicked( int a_iItemIndex ) -{ - if ( m_pModel ) - { - QString strUrl = m_pModel->GetData( a_iItemIndex, QmlBannerListItem::ROLE_DESTINATION_URL ).toString(); - QDesktopServices::openUrl( QUrl( strUrl ) ); - } -} - -GUIBannerListView::~GUIBannerListView() -{ - if ( m_pModel ) - { - delete m_pModel; - m_pModel = 0; - } -} - -void GUIBannerListView::SetModel( QmlBannerListModel* a_pModel ) -{ - if ( m_pModel ) - { - delete m_pModel; - } - m_pModel = a_pModel; - emit signalModelChanged(); -} diff --git a/src/qt/qtquick_controls/cpp/guibannerlistview.h b/src/qt/qtquick_controls/cpp/guibannerlistview.h deleted file mode 100644 index 592741e..0000000 --- a/src/qt/qtquick_controls/cpp/guibannerlistview.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef GUIBANNERLISTVIEW_H -#define GUIBANNERLISTVIEW_H - -#include - -class QmlListModel; -class QmlBannerListModel; -class QmlBannerListItem; - -class GUIBannerListView : public QQuickItem -{ - Q_OBJECT - Q_PROPERTY( QmlBannerListModel* p_pListModel MEMBER m_pModel NOTIFY signalModelChanged ) - -public: - explicit GUIBannerListView( QQuickItem *a_pParent = 0 ); - virtual ~GUIBannerListView(); /** Destructor **/ - - void SetModel( QmlBannerListModel* a_pModel ); - QmlBannerListModel* GetModel() const { return m_pModel; } - - void Clear(); - - Q_INVOKABLE void OnClicked( int a_iItemIndex ); -signals: - void signalModelChanged(); - -public slots: - -private: - - QmlBannerListModel* m_pModel; -}; - -#endif // GUIBANNERLISTVIEW_H diff --git a/src/qt/qtquick_controls/cpp/guibannerwidget.cpp b/src/qt/qtquick_controls/cpp/guibannerwidget.cpp deleted file mode 100644 index 9127f30..0000000 --- a/src/qt/qtquick_controls/cpp/guibannerwidget.cpp +++ /dev/null @@ -1,88 +0,0 @@ -#include "guibannerwidget.h" - -#include -#include -#include - -// qml -#include "guibannercontrol.h" -#include "guibannerlistview.h" -#include "qmlbannerlistmodel.h" -#include "qmlbannerlistitem.h" -#include "qmlimageprovider.h" - -// web -#include "../../CSCPublicAPI/casinocoinwebapi.h" -#include "../../CSCPublicAPI/casinocoinwebapiparser.h" - -GUIBannerWidget::GUIBannerWidget(QWidget *parent) - : QWidget(parent) - , m_pBannerControl( 0 ) - , m_pWebApiParserTemporary( new CasinoCoinWebAPIParser( this ) ) - , m_pWebApiTemporary( new CasinoCoinWebAPI( this ) ) -{ - registerCustomQmlTypes(); - connect( m_pWebApiTemporary, SIGNAL( signalResponseReady(const QByteArray&)), m_pWebApiParserTemporary, SLOT( slotParseAnswer(const QByteArray&)), Qt::UniqueConnection ); - connect( m_pWebApiTemporary, SIGNAL( signalNetworkError(QNetworkReply::NetworkError)), this, SLOT( slotNetworkError(QNetworkReply::NetworkError)), Qt::UniqueConnection ); -} - -GUIBannerWidget::~GUIBannerWidget() -{ - -} - -void GUIBannerWidget::registerCustomQmlTypes() -{ - qmlRegisterType("CasinoCoinControls", 1, 0, "GUIBannerControl" ); - qmlRegisterType("CasinoCoinControls", 1, 0, "GUIBannerListView" ); - qmlRegisterType("CasinoCoinControls", 1, 0, "QmlBannerListModel" ); - qmlRegisterType("CasinoCoinControls", 1, 0, "QmlImageProvider" ); -} - -QWidget* GUIBannerWidget::dockQmlToWidget() -{ - QQuickView* pBannerWindow = new QQuickView; - pBannerWindow->setSource( QUrl( QStringLiteral( "qrc:/qml/qtquick_controls/qml/QmlGUIBannerWindow.qml" ) ) ); - - QWidget* pPlaceHolder = QWidget::createWindowContainer( pBannerWindow, this ); - pPlaceHolder->setMinimumSize( 445, 120 ); - pPlaceHolder->setMaximumSize( 445, 120 ); - pPlaceHolder->setStyleSheet( "background-color: rgb(242, 241, 240);"); - QQuickItem* pRootObject = pBannerWindow->rootObject(); - if ( pRootObject ) - { - m_pBannerControl = pRootObject->findChild(); - if ( m_pBannerControl ) - { - if ( m_pWebApiParserTemporary ) - { - connect( m_pWebApiParserTemporary, SIGNAL( signalActivePromotionsParsed(JsonActivePromotionsParser*)), m_pBannerControl, SLOT( slotPopulateFromWeb(JsonActivePromotionsParser*)), Qt::UniqueConnection ); - } - m_pBannerControl->setWidth( ( 115 * 3 ) + ( 4 * 10 ) + 60 ); - m_pBannerControl->setHeight( 115 ); - } - } - - return pPlaceHolder; -} - -void GUIBannerWidget::PopulateBannerFromWeb() -{ - if ( m_pWebApiTemporary ) - { - m_pWebApiTemporary->GetActivePromotions(); - } -} - -void GUIBannerWidget::PopulateBannerLocally() -{ - if ( m_pBannerControl ) - { - m_pBannerControl->slotPopulateLocally(); - } -} - -void GUIBannerWidget::slotNetworkError( QNetworkReply::NetworkError a_eError ) -{ - PopulateBannerLocally(); -} diff --git a/src/qt/qtquick_controls/cpp/guibannerwidget.h b/src/qt/qtquick_controls/cpp/guibannerwidget.h deleted file mode 100644 index e3a4e3e..0000000 --- a/src/qt/qtquick_controls/cpp/guibannerwidget.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef GUIBANNERWIDGET_H -#define GUIBANNERWIDGET_H - -#include -#include - -class CasinoCoinWebAPIParser; -class CasinoCoinWebAPI; -class GUIBannerControl; - -class GUIBannerWidget : public QWidget -{ - Q_OBJECT - -public: - GUIBannerWidget(QWidget *parent = 0); - ~GUIBannerWidget(); - - QWidget* dockQmlToWidget(); - - void PopulateBannerFromWeb(); - void PopulateBannerLocally(); - -private: - void registerCustomQmlTypes(); - - GUIBannerControl* m_pBannerControl; - - CasinoCoinWebAPIParser* m_pWebApiParserTemporary; - CasinoCoinWebAPI* m_pWebApiTemporary; - -private slots: - void slotNetworkError( QNetworkReply::NetworkError a_eError ); -}; - -#endif // GUIBANNERWIDGET_H diff --git a/src/qt/qtquick_controls/cpp/listiteminterface.h b/src/qt/qtquick_controls/cpp/listiteminterface.h deleted file mode 100644 index 4f2ecee..0000000 --- a/src/qt/qtquick_controls/cpp/listiteminterface.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef LISTITEMINTERFACE_H -#define LISTITEMINTERFACE_H - -#include - -class ListItemInterface : public QObject -{ - Q_OBJECT -public: - - ListItemInterface( QObject* a_pParent = 0 ) : QObject( a_pParent ){} /** Constructor **/ - virtual ~ListItemInterface() {} /** Destructor **/ - - virtual QVariant GetData( int a_iRole ) const = 0; /** Data Accesor **/ - virtual bool SetData( int a_iRole, QVariant a_variantData ) = 0; /** Sets given value at specified role **/ - virtual QHash RoleNames() const = 0; /** User roles in model **/ -}; - -#endif // LISTITEMINTERFACE_H diff --git a/src/qt/qtquick_controls/cpp/qmlbannerlistitem.cpp b/src/qt/qtquick_controls/cpp/qmlbannerlistitem.cpp deleted file mode 100644 index e1245fe..0000000 --- a/src/qt/qtquick_controls/cpp/qmlbannerlistitem.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "qmlbannerlistitem.h" - -#include - -QmlBannerListItem::QmlBannerListItem(QString a_strImageSource, QString a_strDestinationUrl, QString a_strDescription, QObject* a_pParent ) - : QmlListItem( QVariant( a_strImageSource ), QVariant( a_strDestinationUrl ), QVariant( a_strDescription ), a_pParent ) -{ -} - -QmlBannerListItem::QmlBannerListItem( const JsonSingleActivePromotion& a_rCasinoDescription, QObject* a_pParent ) - : QmlListItem( QVariant( a_rCasinoDescription.GetImagePath() ), a_rCasinoDescription.find( "access_url" ).value().toVariant(), a_rCasinoDescription.find( "description" ).value().toVariant(), a_pParent ) -{ -} - -QmlBannerListItem::QmlBannerListItem( QObject* a_pParent ) - : QmlListItem( QVariant( "" ), QVariant( "" ), QVariant( "" ), a_pParent ) -{ -} - -QmlBannerListItem::~QmlBannerListItem() -{ - -} - -QHash QmlBannerListItem::RoleNames() const -{ - QHash aRoleNames; - aRoleNames[ROLE_IMAGE_SOURCE] = "m_imageSource"; - aRoleNames[ROLE_DESTINATION_URL] = "m_destinationUrl"; - aRoleNames[ROLE_DESCRIPTION] = "m_description"; - return aRoleNames; -} diff --git a/src/qt/qtquick_controls/cpp/qmlbannerlistitem.h b/src/qt/qtquick_controls/cpp/qmlbannerlistitem.h deleted file mode 100644 index 9647258..0000000 --- a/src/qt/qtquick_controls/cpp/qmlbannerlistitem.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef QMLBANNERLISTITEM_H -#define QMLBANNERLISTITEM_H - -#include "qmllistitem.h" -#include "../../CSCPublicAPI/jsonsingleactivepromotion.h" - -class QmlBannerListItem : public QmlListItem -{ - Q_OBJECT -public: - enum EBannerRoles /** User-specific model roles **/ - { ROLE_IMAGE_SOURCE = ROLE_1 - , ROLE_DESTINATION_URL = ROLE_2 - , ROLE_DESCRIPTION = ROLE_3 - }; - - explicit QmlBannerListItem - ( QString a_strImageSource - , QString a_strDestinationUrl - , QString a_strDescription - , QObject *a_pParent = 0 - ); - explicit QmlBannerListItem ( const JsonSingleActivePromotion& a_rCasinoDescription - , QObject *a_pParent = 0 - ); - explicit QmlBannerListItem( QObject *a_pParent = 0 ); - virtual ~QmlBannerListItem(); - - virtual QHash RoleNames() const; /** Define class-specific roles **/ - -signals: - -public slots: - -}; - -#endif // QMLBANNERLISTITEM_H diff --git a/src/qt/qtquick_controls/cpp/qmlbannerlistmodel.cpp b/src/qt/qtquick_controls/cpp/qmlbannerlistmodel.cpp deleted file mode 100644 index f726a6d..0000000 --- a/src/qt/qtquick_controls/cpp/qmlbannerlistmodel.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "qmlbannerlistmodel.h" - -#include "qmlbannerlistitem.h" - -#include "../../CSCPublicAPI/jsonactivepromotionsparser.h" -#include "../../CSCPublicAPI/jsonsingleactivepromotion.h" - -#include - -QmlBannerListModel::QmlBannerListModel( QObject* a_pParent ) - : QmlListModel( new QmlBannerListItem( 0 ), a_pParent ) -{ -} - -QmlBannerListModel::QmlBannerListModel - ( const JsonActivePromotionsParser& a_rActivePromotions - , QObject* a_pParent - ) - : QmlListModel( new QmlBannerListItem( 0 ), a_pParent ) -{ - foreach( const JsonSingleActivePromotion& rPromotion, a_rActivePromotions.GetPromotions() ) - { - append( new QmlBannerListItem( rPromotion, this ) ); - } -} - -QmlBannerListModel::~QmlBannerListModel() -{ - -} diff --git a/src/qt/qtquick_controls/cpp/qmlbannerlistmodel.h b/src/qt/qtquick_controls/cpp/qmlbannerlistmodel.h deleted file mode 100644 index a42c95e..0000000 --- a/src/qt/qtquick_controls/cpp/qmlbannerlistmodel.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef QMLBANNERLISTMODEL_H -#define QMLBANNERLISTMODEL_H - -#include "qmllistmodel.h" - -class QmlBannerListItem; -class JsonActivePromotionsParser; - -class QmlBannerListModel : public QmlListModel -{ - Q_OBJECT -public: - explicit QmlBannerListModel( QObject* a_pParent = 0 ); - explicit QmlBannerListModel - ( const JsonActivePromotionsParser& a_rActivePromotions - , QObject* a_pParent = 0 - ); - virtual ~QmlBannerListModel(); /** Destructor **/ - -signals: - -public slots: - -}; - -#endif // QMLBANNERLISTMODEL_H diff --git a/src/qt/qtquick_controls/cpp/qmlimageprovider.cpp b/src/qt/qtquick_controls/cpp/qmlimageprovider.cpp deleted file mode 100644 index fc052c8..0000000 --- a/src/qt/qtquick_controls/cpp/qmlimageprovider.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "qmlimageprovider.h" - -QmlImageProvider::QmlImageProvider( QQuickItem* a_pParent ) - : QQuickPaintedItem( a_pParent ) -{ - -} - -QmlImageProvider::QmlImageProvider( const QImage& a_rImage, QQuickItem* a_pParent ) - : QQuickPaintedItem( a_pParent ) - , m_oImage( a_rImage ) -{ -} - -void QmlImageProvider::SetImage( const QImage& a_rImage ) -{ - if ( a_rImage != m_oImage ) - { - m_oImage = QImage( a_rImage ); - emit signalImageChanged(); - } -} - -void QmlImageProvider::paint( QPainter* a_pPainter ) -{ - if ( a_pPainter ) - { - a_pPainter->drawImage( QPoint( 0, 0 ), m_oImage ); - } -} - -void QmlImageProvider::paintImage( const QImage& a_rImage, QPainter* a_pPainter ) -{ - SetImage( a_rImage ); - if ( a_pPainter ) - { - a_pPainter->drawImage( QPoint( 0, 0 ), m_oImage ); - } -} diff --git a/src/qt/qtquick_controls/cpp/qmlimageprovider.h b/src/qt/qtquick_controls/cpp/qmlimageprovider.h deleted file mode 100644 index e7b7c8d..0000000 --- a/src/qt/qtquick_controls/cpp/qmlimageprovider.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef QMLIMAGEPROVIDER_H -#define QMLIMAGEPROVIDER_H - -#include -#include -#include - -class QmlImageProvider : public QQuickPaintedItem -{ - Q_OBJECT - - Q_PROPERTY( QImage p_oImage MEMBER m_oImage NOTIFY signalImageChanged ) -public: - explicit QmlImageProvider( QQuickItem* a_pParent = 0 ); - explicit QmlImageProvider( const QImage& a_rImage, QQuickItem* a_pParent = 0 ); - - void SetImage( const QImage& a_rImage ); - virtual void paint( QPainter* a_pPainter ); - void paintImage( const QImage& a_rImage, QPainter* a_pPainter ); -signals: - void signalImageChanged(); -private: - QImage m_oImage; -}; - -#endif // QMLIMAGEPROVIDER_H diff --git a/src/qt/qtquick_controls/cpp/qmllistitem.cpp b/src/qt/qtquick_controls/cpp/qmllistitem.cpp deleted file mode 100644 index a88bd52..0000000 --- a/src/qt/qtquick_controls/cpp/qmllistitem.cpp +++ /dev/null @@ -1,196 +0,0 @@ -#include "qmllistitem.h" - -#include - -QmlListItem::QmlListItem( QObject* a_pParent ) - : ListItemInterface( a_pParent ) -{ - // Nothing -} - -QmlListItem::QmlListItem( QVariant a_role1 - , QObject* a_pParent - ) - : ListItemInterface( a_pParent ) -{ - m_aDataHash[ROLE_1] = a_role1; -} - -QmlListItem::QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QObject* a_pParent - ) - : ListItemInterface( a_pParent ) -{ - m_aDataHash[ROLE_1] = a_role1; - m_aDataHash[ROLE_2] = a_role2; -} - -QmlListItem::QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QObject* a_pParent - ) - : ListItemInterface( a_pParent ) -{ - m_aDataHash[ROLE_1] = a_role1; - m_aDataHash[ROLE_2] = a_role2; - m_aDataHash[ROLE_3] = a_role3; -} - -QmlListItem::QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QVariant a_role4 - , QObject* a_pParent - ) - : ListItemInterface( a_pParent ) -{ - m_aDataHash[ROLE_1] = a_role1; - m_aDataHash[ROLE_2] = a_role2; - m_aDataHash[ROLE_3] = a_role3; - m_aDataHash[ROLE_4] = a_role4; -} - -QmlListItem::QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QVariant a_role4 - , QVariant a_role5 - , QObject* a_pParent - ) - : ListItemInterface( a_pParent ) -{ - m_aDataHash[ROLE_1] = a_role1; - m_aDataHash[ROLE_2] = a_role2; - m_aDataHash[ROLE_3] = a_role3; - m_aDataHash[ROLE_4] = a_role4; - m_aDataHash[ROLE_5] = a_role5; -} - -QmlListItem::QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QVariant a_role4 - , QVariant a_role5 - , QVariant a_role6 - , QObject* a_pParent - ) - : ListItemInterface( a_pParent ) -{ - m_aDataHash[ROLE_1] = a_role1; - m_aDataHash[ROLE_2] = a_role2; - m_aDataHash[ROLE_3] = a_role3; - m_aDataHash[ROLE_4] = a_role4; - m_aDataHash[ROLE_5] = a_role5; - m_aDataHash[ROLE_6] = a_role6; -} - -QmlListItem::QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QVariant a_role4 - , QVariant a_role5 - , QVariant a_role6 - , QVariant a_role7 - , QObject* a_pParent - ) - : ListItemInterface( a_pParent ) -{ - m_aDataHash[ROLE_1] = a_role1; - m_aDataHash[ROLE_2] = a_role2; - m_aDataHash[ROLE_3] = a_role3; - m_aDataHash[ROLE_4] = a_role4; - m_aDataHash[ROLE_5] = a_role5; - m_aDataHash[ROLE_6] = a_role6; - m_aDataHash[ROLE_7] = a_role7; -} - -QmlListItem::QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QVariant a_role4 - , QVariant a_role5 - , QVariant a_role6 - , QVariant a_role7 - , QVariant a_role8 - , QObject* a_pParent - ) - : ListItemInterface( a_pParent ) -{ - m_aDataHash[ROLE_1] = a_role1; - m_aDataHash[ROLE_2] = a_role2; - m_aDataHash[ROLE_3] = a_role3; - m_aDataHash[ROLE_4] = a_role4; - m_aDataHash[ROLE_5] = a_role5; - m_aDataHash[ROLE_6] = a_role6; - m_aDataHash[ROLE_7] = a_role7; - m_aDataHash[ROLE_8] = a_role8; -} - -QmlListItem::QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QVariant a_role4 - , QVariant a_role5 - , QVariant a_role6 - , QVariant a_role7 - , QVariant a_role8 - , QVariant a_role9 - , QObject* a_pParent - ) - : ListItemInterface( a_pParent ) -{ - m_aDataHash[ROLE_1] = a_role1; - m_aDataHash[ROLE_2] = a_role2; - m_aDataHash[ROLE_3] = a_role3; - m_aDataHash[ROLE_4] = a_role4; - m_aDataHash[ROLE_5] = a_role5; - m_aDataHash[ROLE_6] = a_role6; - m_aDataHash[ROLE_7] = a_role7; - m_aDataHash[ROLE_8] = a_role8; - m_aDataHash[ROLE_9] = a_role9; -} - -QmlListItem::QmlListItem( const QmlListItem& a_rOther ) - : ListItemInterface( a_rOther.parent() ) - , m_aDataHash( a_rOther.m_aDataHash ) -{ - // Nothing -} - -QmlListItem::~QmlListItem() -{ - // Nothing -} - -QVariant QmlListItem::GetData( int a_iRole ) const -{ - return m_aDataHash[static_cast( a_iRole )]; -} - -bool QmlListItem::SetData( int a_iRole, QVariant a_variantData ) -{ - - if ( m_aDataHash[static_cast( a_iRole )] != a_variantData ) - { - m_aDataHash[static_cast( a_iRole )] = a_variantData; - return true; - } - return false; -} - -QHash QmlListItem::RoleNames() const -{ - QHash aRoleNames; - aRoleNames[ROLE_1] = "m_role1"; - aRoleNames[ROLE_2] = "m_role2"; - aRoleNames[ROLE_3] = "m_role3"; - aRoleNames[ROLE_4] = "m_role4"; - aRoleNames[ROLE_5] = "m_role5"; - aRoleNames[ROLE_6] = "m_role6"; - aRoleNames[ROLE_7] = "m_role7"; - aRoleNames[ROLE_8] = "m_role8"; - return aRoleNames; -} - diff --git a/src/qt/qtquick_controls/cpp/qmllistitem.h b/src/qt/qtquick_controls/cpp/qmllistitem.h deleted file mode 100644 index 1333473..0000000 --- a/src/qt/qtquick_controls/cpp/qmllistitem.h +++ /dev/null @@ -1,109 +0,0 @@ -#ifndef QMLLISTITEM_H -#define QMLLISTITEM_H - -// Qt -#include -#include -#include - -// ptcommon -#include "listiteminterface.h" - -class QmlListItem : public ListItemInterface -{ - Q_OBJECT - -public: - - enum ERoles /** User-specific model roles **/ - { ROLE_1 = Qt::UserRole + 1 - , ROLE_2 = Qt::UserRole + 2 - , ROLE_3 = Qt::UserRole + 3 - , ROLE_4 = Qt::UserRole + 4 - , ROLE_5 = Qt::UserRole + 5 - , ROLE_6 = Qt::UserRole + 6 - , ROLE_7 = Qt::UserRole + 7 - , ROLE_8 = Qt::UserRole + 8 - , ROLE_9 = Qt::UserRole + 9 - , ROLE_10 = Qt::UserRole + 10 - , ROLE_LAST = Qt::UserRole + 11 - }; - - explicit QmlListItem( QObject* a_pParent = 0 ); /** Default Constructor **/ - - explicit QmlListItem( QVariant a_role1 - , QObject* a_pParent = 0 - ); /** Constructor with first role filled **/ - explicit QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QObject* a_pParent = 0 - ); /** Contstructor with first two roles filled **/ - explicit QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QObject* a_pParent = 0 - ); /** Contstructor with first three roles filled **/ - explicit QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QVariant a_role4 - , QObject* a_pParent = 0 - ); /** Contstructor with first four roles filled **/ - explicit QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QVariant a_role4 - , QVariant a_role5 - , QObject* a_pParent = 0 - ); /** Contstructor with first five roles filled **/ - explicit QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QVariant a_role4 - , QVariant a_role5 - , QVariant a_role6 - , QObject* a_pParent = 0 - ); /** Contstructor with first six roles filled **/ - explicit QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QVariant a_role4 - , QVariant a_role5 - , QVariant a_role6 - , QVariant a_role7 - , QObject* a_pParent = 0 - ); /** Contstructor with first seven roles filled **/ - explicit QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QVariant a_role4 - , QVariant a_role5 - , QVariant a_role6 - , QVariant a_role7 - , QVariant a_role8 - , QObject* a_pParent = 0 - ); /** Contstructor with first eight roles filled **/ - explicit QmlListItem( QVariant a_role1 - , QVariant a_role2 - , QVariant a_role3 - , QVariant a_role4 - , QVariant a_role5 - , QVariant a_role6 - , QVariant a_role7 - , QVariant a_role8 - , QVariant a_role9 - , QObject* a_pParent = 0 - ); /** Contstructor with first nine roles filled **/ - - QmlListItem( const QmlListItem& a_rOther ); /** Copy constructor **/ - virtual ~QmlListItem(); /** Destructor **/ - - virtual QVariant GetData( int a_iRole ) const; /** Retrieve role-specific data from class **/ - virtual bool SetData( int a_iRole, QVariant a_variantData ); /** Sets given value at specified role **/ - virtual QHash RoleNames() const; /** Define class-specific roles **/ - -private: - QHash m_aDataHash; /** Container keeping all item-specific roles **/ -}; - -#endif // QMLLISTITEM_H diff --git a/src/qt/qtquick_controls/cpp/qmllistmodel.cpp b/src/qt/qtquick_controls/cpp/qmllistmodel.cpp deleted file mode 100644 index d701bc6..0000000 --- a/src/qt/qtquick_controls/cpp/qmllistmodel.cpp +++ /dev/null @@ -1,315 +0,0 @@ -#include "qmllistmodel.h" - -#include - -QmlListModel::QmlListModel( QObject* a_pParent ) - : QAbstractListModel( a_pParent ) - , m_pPrototype( 0 ) - , m_iCurrentElementIndex( -1 ) -{ - m_aItems = QList(); -} - -QmlListModel::QmlListModel( ListItemInterface* a_pPrototype, QObject* a_pParent ) - : QAbstractListModel( a_pParent ) - , m_pPrototype( a_pPrototype ) - , m_iCurrentElementIndex( -1 ) -{ - m_aItems = QList(); -} - -QmlListModel::~QmlListModel() -{ - clear(); - if ( m_pPrototype ) - { - delete m_pPrototype; - m_pPrototype = 0; - } -} - -int QmlListModel::rowCount( const QModelIndex& a_rParent ) const -{ - Q_UNUSED( a_rParent ); - return m_aItems.size(); -} - -QVariant QmlListModel::data( const QModelIndex& a_rIndex, int a_iRole ) const -{ - if ( a_rIndex.row() < 0 ) - { - return QVariant(); - } - if ( a_rIndex.row() > m_aItems.size() ) - { - return QVariant(); - } - ListItemInterface* pValidate = m_aItems.at( a_rIndex.row() ); - if ( pValidate ) - { - return pValidate->GetData( a_iRole ); - } - return QVariant(); -} - -bool QmlListModel::setData( const QModelIndex& a_rIndex, const QVariant& a_rValue, int a_iRole ) -{ - if ( a_rIndex.isValid() && a_iRole > Qt::UserRole ) - { - ListItemInterface* pItem = m_aItems.at( a_rIndex.row() ); - if ( pItem ) - { - if ( pItem->SetData( a_iRole, a_rValue ) ) - { - emit dataChanged( a_rIndex, a_rIndex ); - return true; - } - } - } - return false; -} - -QHash QmlListModel::roleNames() const //NS -{ - if ( m_pPrototype ) - { - return m_pPrototype->RoleNames(); - } - return ( QHash() ); -} - -bool QmlListModel::removeRows( int a_iRow, int a_iCount, const QModelIndex& a_rParent ) //NS -{ - if ( a_iRow < 0 ) - { - return false; - } - if ( a_iCount <= 0 ) - { - return false; - } - if ( ( a_iRow + a_iCount ) > m_aItems.size() ) - { - return false; - } - beginRemoveRows( a_rParent, a_iRow, a_iRow + a_iCount - 1 ); - for ( int i = 0; i < a_iCount; i++ ) - { - ListItemInterface* pItem = m_aItems.takeAt( a_iRow ); - delete pItem; - pItem = 0; - } - endRemoveRows(); - emit signalCountChanged( rowCount() ); - return true; -} - -void QmlListModel::append( ListItemInterface* a_pItem ) //NS -{ - if ( a_pItem != 0 ) - { - beginInsertRows( QModelIndex(), rowCount(), rowCount() ); - m_aItems.append( a_pItem ); - a_pItem->setObjectName( objectName() + "_item_" + QString::number( rowCount() ) ); - endInsertRows(); - emit signalCountChanged( rowCount() ); - } -} - -void QmlListModel::insert( int a_iIndex, ListItemInterface* a_pItem ) //NS -{ - if ( a_pItem != 0 && a_iIndex >= 0 && a_iIndex <= m_aItems.size() ) - { - beginInsertRows( QModelIndex(), a_iIndex, a_iIndex ); - m_aItems.insert( a_iIndex, a_pItem ); - a_pItem->setObjectName( objectName() + "_item_" + QString::number( a_iIndex ) ); - endInsertRows(); - emit signalCountChanged( rowCount() ); - } -} - -QVariant QmlListModel::get( int a_iIndex ) -{ - if ( a_iIndex < 0 ) - { - return QVariant(); - } - if ( a_iIndex >= m_aItems.size() ) - { - return QVariant(); - } - QMap aItemData; - ListItemInterface* pItem = m_aItems.at( a_iIndex ); - if ( pItem ) - { - QHashIterator aRolesItr( pItem->RoleNames() ); - while ( aRolesItr.hasNext() ) - { - aRolesItr.next(); - aItemData.insert( aRolesItr.value(), QVariant( pItem->GetData( aRolesItr.key() ) ) ); - } - return QVariant( aItemData ); - } - return QVariant(); -} - -void QmlListModel::clear() -{ - if ( m_aItems.size() > 0 ) - { - removeRows( 0, m_aItems.size() ); - // signalCountChanged emitted inside removeRows - } -} - -void QmlListModel::refresh() -{ - if ( m_aItems.size() > 0 ) - { - beginResetModel(); - endResetModel(); - } -} - -int QmlListModel::GetItemIndex( int a_iItemRole, QVariant a_variantValue ) const -{ - for ( int i = 0; i < m_aItems.size(); i++ ) - { - if ( m_aItems[i]->GetData( a_iItemRole ) == a_variantValue ) - { - return i; - } - } - return -1; -} - -ListItemInterface* QmlListModel::GetCurrentItem() const -{ - - if ( m_iCurrentElementIndex >= 0 && m_aItems.size() > m_iCurrentElementIndex ) - { - return m_aItems[m_iCurrentElementIndex]; - } - return 0; -} - -void QmlListModel::SetCurrentItemIndex( int a_iIndex ) -{ - - if ( a_iIndex == -1 - || ( a_iIndex >= 0 && a_iIndex < rowCount() ) - ) - { - if ( m_iCurrentElementIndex != a_iIndex ) - { - m_iCurrentElementIndex = a_iIndex; - emit signalCurrentItemIndexChanged(); - } - else - { - if ( m_iCurrentElementIndex != -1 ) - { - emit signalCurrentItemIndexClicked(); - } - } - } -} - -int QmlListModel::GetCurrentItemIndex() const -{ - return m_iCurrentElementIndex; -} - -bool QmlListModel::SetData( int a_iIndex, const QVariant& a_rValue, int a_iRole ) -{ - QModelIndex modelIndex = createIndex( a_iIndex, 0 ); - return setData( modelIndex, a_rValue, a_iRole ); -} - -QVariant QmlListModel::GetData( int a_iIndex, int a_iRole ) -{ - QModelIndex modelIndex = createIndex( a_iIndex, 0 ); - return data( modelIndex, a_iRole ); -} - -void QmlListModel::Sort( int a_iRole, Qt::SortOrder a_eOrder ) -{ - QList aSortedList; - - if ( a_eOrder == Qt::AscendingOrder ) - { - foreach ( ListItemInterface* pItem, m_aItems ) - { - int iSortedIndex = 0; - const int iSortedListCount = aSortedList.count(); - QVariant valueOriginal = pItem->GetData( a_iRole ); - - bool bIndexFound = false; - for ( iSortedIndex = iSortedListCount - 1 ; iSortedIndex >= 0 ; --iSortedIndex ) - { - const ListItemInterface* pSortedItem = aSortedList.at( iSortedIndex ); - if ( pSortedItem ) - { - QVariant valueSorted = pSortedItem->GetData( a_iRole ); - if ( Compare( a_iRole, valueOriginal, valueSorted ) > 0 ) - { - aSortedList.insert( iSortedIndex + 1, pItem ); - bIndexFound = true; - break; - } - } - } - if ( !bIndexFound ) - { - aSortedList.prepend( pItem ); - } - } - } - else if ( Qt::DescendingOrder ) - { - foreach ( ListItemInterface* pItem, m_aItems ) - { - int iSortedIndex = 0; - const int iSortedListCount = aSortedList.count(); - QVariant valueOriginal = pItem->GetData( a_iRole ); - - bool bIndexFound = false; - for ( iSortedIndex = 0 ; iSortedIndex < iSortedListCount ; ++iSortedIndex ) - { - const ListItemInterface* pSortedItem = aSortedList.at( iSortedIndex ); - if ( pSortedItem ) - { - QVariant valueSorted = pSortedItem->GetData( a_iRole ); - if ( Compare( a_iRole, valueOriginal, valueSorted ) > 0 ) - { - aSortedList.insert( iSortedIndex, pItem ); - bIndexFound = true; - break; - } - } - } - if ( !bIndexFound ) - { - aSortedList.append( pItem ); - } - } - } - m_aItems = aSortedList; - - emit dataChanged( createIndex( 0, 0 ), createIndex( rowCount() - 1, 0 ) ); -} - -int QmlListModel::Compare( int a_iRole, QVariant& a_rValue1, QVariant& a_rValue2 ) -{ - Q_UNUSED( a_iRole ); - int iReturn = 0; - if ( a_rValue1 > a_rValue2 ) - { - iReturn = 1; - } - else if ( a_rValue1 < a_rValue2 ) - { - iReturn = -1; - } - return iReturn; -} diff --git a/src/qt/qtquick_controls/cpp/qmllistmodel.h b/src/qt/qtquick_controls/cpp/qmllistmodel.h deleted file mode 100644 index c755b32..0000000 --- a/src/qt/qtquick_controls/cpp/qmllistmodel.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef QMLLISTMODEL_H -#define QMLLISTMODEL_H - -#include -#include - -#include "qmllistitem.h" - -class QmlListModel : public QAbstractListModel -{ - Q_OBJECT - - Q_PROPERTY( int count READ rowCount NOTIFY signalCountChanged ) - Q_PROPERTY( int p_iCurrentElementIndex MEMBER m_iCurrentElementIndex NOTIFY signalCurrentItemIndexChanged ) -public: - ////////////////// - // Methods - explicit QmlListModel( QObject* a_pParent = 0 ); /** Default Constructor **/ - explicit QmlListModel( ListItemInterface* a_pPrototype, QObject* a_pParent = 0 ); /** Constructor with item prototype **/ - virtual ~QmlListModel(); /** Destructor **/ - - int rowCount( const QModelIndex& a_rParent = QModelIndex() ) const; /** size of list getter **/ - QVariant data( const QModelIndex& a_rIndex, int a_iRole = Qt::DisplayRole ) const; /** function returning model data at specific index **/ - virtual bool setData /** Sets the role data for the item at index to value. **/ - ( const QModelIndex& a_rIndex - , const QVariant& a_rValue - , int a_iRole = Qt::EditRole - ); - QHash roleNames() const; /** returns user defined roles for model **/ - bool removeRows( int a_iRow, int a_iCount, const QModelIndex& a_rParent = QModelIndex() ); /** deletes /count/ rows from model starting at /row/ **/ - - // Methods created to match QML Model style of data manipulation - Q_INVOKABLE void append( ListItemInterface* a_pItem ); /** appends /a_pItem/ element to the list **/ - Q_INVOKABLE void insert( int a_iIndex, ListItemInterface* a_pItem ); /** insert /a_pItem/ to the list before the given /a_iIndex/ **/ - Q_INVOKABLE QVariant get( int a_iIndex ); /** returns QMap containing value<->role pa at /a_iIndex/ **/ - Q_INVOKABLE void clear(); /** clears the list **/ - Q_INVOKABLE void refresh(); /** refreshes the list **/ - - inline const ListItemInterface* GetItem( int a_iIndex ) const; /** Get item at index **/ - int GetItemIndex( int a_iItemRole, QVariant a_variantValue ) const; /** Get index of first item having given a_variantValue at given a_iItemRole **/ - - /** NOTE!! - This three methods have their implementation, however whole - currentItem system must be implemented manually for every derived class. **/ - ListItemInterface* GetCurrentItem() const; /** Get current item pointer **/ - virtual void SetCurrentItemIndex( int a_iIndex ); /** Set current item index **/ - int GetCurrentItemIndex() const; /** Get current item index **/ - - bool SetData( int a_iIndex, const QVariant& a_rValue, int a_iRole ); /** Sets the role data for the item at index to value. **/ - QVariant GetData( int a_iIndex, int a_iRole ); /** Get model data at specific index **/ - - void Sort( int a_iRole, Qt::SortOrder a_eOrder = Qt::AscendingOrder ); /** Sort items in list model by role in the given order **/ - -signals: - void signalCountChanged( int a_iNewCount ); /** notify that list contents changed **/ - void signalCurrentItemIndexChanged(); /** notify that currently highlighted/focused item changed **/ - void signalCurrentItemIndexClicked(); /** notify that currently highlighted/focused item was clicked again **/ - void signalTextColorCol1Changed(); /** notify that text color in col1 changed **/ - void signalTextSizeChanged(); /** notify that text size changed **/ - void signalRowHeightChanged(); /** notify that row height changed **/ -protected: - ///////////////// - // Methods - virtual int Compare( int a_iRole, QVariant& a_rValue1, QVariant& a_rValue2 ); /** Compare two values with given role **/ - - ////////////////// - // Properties - ListItemInterface* m_pPrototype; /** information on what type is held in a list **/ - QList m_aItems; /** list with model data **/ - int m_iCurrentElementIndex; /** current element index **/ -}; - -const ListItemInterface* QmlListModel::GetItem( int a_iIndex ) const -{ - if ( m_aItems.size() > a_iIndex && a_iIndex >= 0 ) - { - return m_aItems[a_iIndex]; - } - return 0; -} - - -#endif // QMLLISTMODEL_H diff --git a/src/qt/qtquick_controls/qml/QmlGUIBannerControl.qml b/src/qt/qtquick_controls/qml/QmlGUIBannerControl.qml deleted file mode 100644 index a2171d7..0000000 --- a/src/qt/qtquick_controls/qml/QmlGUIBannerControl.qml +++ /dev/null @@ -1,166 +0,0 @@ -import QtQuick 2.2 -import CasinoCoinControls 1.0 - -GUIBannerControl -{ - id: id_bannerControl - - property color colorBackgroundInWidget: "#F2F0F1" - Rectangle - { - id: id_leftArrow - height: id_bannerControl.height - width: 30 - color: colorBackgroundInWidget - Image - { - id: id_leftArrowImage - - source: "qrc:/icons/res/icons/adverts_arrow_left.png" - - anchors.centerIn: id_leftArrow - } - anchors.left: id_bannerControl.left - - MouseArea - { - id: id_leftArrowMouseArea - anchors.fill: id_leftArrow - - hoverEnabled: true - - onEntered: - { - id_leftArrowImage.source = "qrc:/icons/res/icons/adverts_arrow_left_hover.png" - id_bannerListView.m_PathView.decrementCurrentIndex() - id_animationTimer.restart() - } - onExited: - { - id_leftArrowImage.source = "qrc:/icons/res/icons/adverts_arrow_left.png" - id_animationTimer.stop() - } - onClicked: - { - id_bannerListView.m_PathView.decrementCurrentIndex() - } - } - } - Rectangle - { - id: id_BannersArea - height: id_bannerControl.height - width: id_bannerControl.width - id_leftArrow.width - id_rightArrow.width - color: colorBackgroundInWidget - z: -1 - - anchors.horizontalCenter: id_bannerControl.horizontalCenter - anchors.left: id_leftArrow.left - Rectangle - { - id: id_fadeOutLeft - - height: id_BannersArea.width / 6 - width: id_BannersArea.height - rotation: 270 - z: 1 - - anchors.left: id_BannersArea.left - anchors.verticalCenter: id_BannersArea.verticalCenter - gradient: - Gradient - { - GradientStop { position: 0.0; color: colorBackgroundInWidget } - GradientStop { position: 0.7; color: "transparent" } - GradientStop { position: 1.0; color: "transparent" } - } - } - QmlGUIBannerListView - { - id: id_bannerListView - - anchors.fill: id_BannersArea - Component.onCompleted: - { - id_bannerControl.InitializeAdvertsView( id_bannerListView ) - } - } - Rectangle - { - id: id_fadeOutRight - - height: id_BannersArea.width / 6 - width: id_BannersArea.height - rotation: 90 - z: 1 - - anchors.right: id_BannersArea.right - anchors.verticalCenter: id_BannersArea.verticalCenter - gradient: - Gradient - { - GradientStop { position: 0.0; color: colorBackgroundInWidget } - GradientStop { position: 0.7; color: "transparent" } - GradientStop { position: 1.0; color: "transparent" } - } - } -} - Rectangle - { - id: id_rightArrow - height: id_bannerControl.height - width: 30 - color: colorBackgroundInWidget - Image - { - id: id_rightArrowImage - source: "qrc:/icons/res/icons/adverts_arrow_right.png" - - anchors.centerIn: id_rightArrow - } - - anchors.right: id_bannerControl.right - - MouseArea - { - id: id_rightArrowMouseArea - anchors.fill: id_rightArrow - - hoverEnabled: true - - onEntered: - { - id_rightArrowImage.source = "qrc:/icons/res/icons/adverts_arrow_right_hover.png" - id_bannerListView.m_PathView.incrementCurrentIndex() - id_animationTimer.restart() - } - onExited: - { - id_rightArrowImage.source = "qrc:/icons/res/icons/adverts_arrow_right.png" - id_animationTimer.stop() - } - onClicked: - { - id_bannerListView.m_PathView.incrementCurrentIndex() - } - } - Timer - { - id: id_animationTimer - interval: id_bannerListView.m_PathView.highlightMoveDuration - running: false - repeat: true - onTriggered: - { - if ( id_rightArrowMouseArea.containsMouse ) - { - id_bannerListView.m_PathView.incrementCurrentIndex() - } - if ( id_leftArrowMouseArea.containsMouse ) - { - id_bannerListView.m_PathView.decrementCurrentIndex() - } - } - } - } -} diff --git a/src/qt/qtquick_controls/qml/QmlGUIBannerListView.qml b/src/qt/qtquick_controls/qml/QmlGUIBannerListView.qml deleted file mode 100644 index ce2ee41..0000000 --- a/src/qt/qtquick_controls/qml/QmlGUIBannerListView.qml +++ /dev/null @@ -1,73 +0,0 @@ -import QtQuick 2.0 -import CasinoCoinControls 1.0 - -GUIBannerListView -{ - id: id_bannerView - - property int m_iItemBorderWidth: 1 - property int m_iColumnWidth: 0 - property alias m_ListModel: id_pathView.model - property alias m_PathView: id_pathView - - PathView - { - id: id_pathView - anchors.fill: id_bannerView - - pathItemCount: 3 - highlightRangeMode: PathView.StrictlyEnforceRange - highlightMoveDuration: 1000 - preferredHighlightBegin: 0.5 - preferredHighlightEnd: 0.5 - visible: true - interactive: false - - model: id_bannerView.p_pListModel - delegate: id_elementDelegate - path: Path - { - startX: 30; startY: id_bannerView.height / 2 - PathLine { x: id_bannerView.width - 30; y: id_bannerView.height / 2 } - } - } - - Component - { - id: id_elementDelegate - Rectangle - { - id: id_listElement - objectName: id_bannerView.objectName + "_Element" + index - - width: 115 - height: width - - Image - { - id: id_advertisementImage - source: m_imageSource - scale: ( id_listElement.width / width ) - anchors.centerIn: id_listElement - } - - // coming soon -// QmlImageProvider -// { -// id: id_advertisementImage -// scale: ( id_listElement.width / width ) -// anchors.centerIn: id_listElement -// } - MouseArea - { - id: id_leftItemMouseArea - anchors.fill: id_listElement - onClicked: - { - id_bannerView.OnClicked( index ) - } - } - } - } - -} diff --git a/src/qt/qtquick_controls/qml/QmlGUIBannerWindow.qml b/src/qt/qtquick_controls/qml/QmlGUIBannerWindow.qml deleted file mode 100644 index a1ff692..0000000 --- a/src/qt/qtquick_controls/qml/QmlGUIBannerWindow.qml +++ /dev/null @@ -1,14 +0,0 @@ -import QtQuick 2.2 - -Rectangle -{ - id: id_root - QmlGUIBannerControl - { - id: id_bannerControlMain - } - color: "#F2F0F1" - width: id_bannerControlMain.width - height: id_bannerControlMain.height -} - diff --git a/src/qt/res/icons/adverts_arrow_left.png b/src/qt/res/icons/adverts_arrow_left.png deleted file mode 100644 index 4872786e7464bb074a0047569a70da1527de1743..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^AT}Qd8;}%R+`Ae`NtU=qlmzFem6RtIr7}3CB7*cVo<)SUuAqN46L{BltwR?KjhKVg&knkoq$L3ERm1RR+hETeOviiK>9~I`k?b7M8eqk>AXwk6=JGU3jJ-6ev@v;{WRixt?*%-9CRI?9XXcPjv Oo59o7&t;ucLK6TU32CbU diff --git a/src/qt/res/icons/adverts_arrow_left_hover.png b/src/qt/res/icons/adverts_arrow_left_hover.png deleted file mode 100644 index d3fac2d6d74cca9717c7cf92b624916cb3423af3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^AT}Qd8;}%R+`Ae`NtU=qlmzFem6RtIr7}3CB7*cU7DN;@Md;_xugQ2v*d#1t}1sb229?f;w!`mV3 z$fRQ-vbKE|8&h$^4^Cl5SA`G49s3ovzZ_lkLRx^G;bY*8Lk2QkOcQM%vmH6zFhg>> z(hR3GnSK9z&oFA<;5(A(@JHTr4tK|PhK;tHoFW7o?)>ET{b)8LDMkA_Lm>y>(XUgj1ZWuZl-9-{N!CuK*^>D9j|*G-Y_4zOy zd%9D&!aU~G&5R$ba=IKR-Ea7zK1m|%s6wlIqXk39{^YK49>4^>bP0l+XkKYf59V diff --git a/src/qt/res/icons/adverts_arrow_right_hover.png b/src/qt/res/icons/adverts_arrow_right_hover.png deleted file mode 100644 index c149be2853340d30b02ca76de2003e6527700b45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^AT}Qd8;}%R+`Ae`NtU=qlmzFem6RtIr7}3C|( zT6#gW? z!yX Date: Mon, 9 Nov 2015 13:09:44 +0100 Subject: [PATCH 3/3] Revert "TestCommit" This reverts commit 1b0545c4e89589ace39ebcadc011b2d5d43ace31. --- src/qt/bitcoingui.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 1a1a044..c3e8ed4 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -318,6 +318,7 @@ void BitcoinGUI::setClientModel(ClientModel *clientModel) trayIcon->setToolTip(trayIcon->toolTip() + QString(" ") + tr("[testnet]")); trayIcon->setIcon(QIcon(":/icons/toolbar_testnet")); } + toggleHideAction->setIcon(QIcon(":/icons/toolbar_testnet")); aboutAction->setIcon(QIcon(":/icons/toolbar_testnet")); }